From 6df5a3991fa42264c82b5a721abd6ff46c422c9f Mon Sep 17 00:00:00 2001 From: nhestrompia Date: Fri, 28 Jul 2023 16:08:01 +0300 Subject: [PATCH 1/6] feat: general popup style --- web/src/components/Popup.tsx | 68 ++++++++++++++++++++++++++++++++++++ web/src/pages/Home/index.tsx | 3 ++ 2 files changed, 71 insertions(+) create mode 100644 web/src/components/Popup.tsx diff --git a/web/src/components/Popup.tsx b/web/src/components/Popup.tsx new file mode 100644 index 000000000..7a4a30c41 --- /dev/null +++ b/web/src/components/Popup.tsx @@ -0,0 +1,68 @@ +import React, { useRef } from "react"; +import styled from "styled-components"; +import { Button } from "@kleros/ui-components-library"; +import { useFocusOutside } from "hooks/useFocusOutside"; +import { Overlay } from "./Overlay"; + +interface IPopup { + title: string; + icon: React.FC> | string; +} + +const Header = styled.h1` + display: flex; + padding-top: 32px; + padding-bottom: 20px; + font-size: 24px; + font-weight: 600; + line-height: 32.68px; +`; + +const Icon = styled.svg` + /* display: flex; */ +`; + +const StyledButton = styled(Button)` + margin: 32px 0; +`; + +const Container = styled.div` + display: flex; + position: absolute; + max-height: 60vh; + top: 5%; + left: 50%; + transform: translate(-50%); + z-index: 10; + flex-direction: column; + align-items: center; + justify-content: center; + width: calc(300px + (600 - 300) * (100vw - 375px) / (1250 - 375)); + max-width: 600px; + min-width: 300px; + border-radius: 3px; + border: 1px solid ${({ theme }) => theme.stroke}; + background-color: ${({ theme }) => theme.whiteBackground}; + box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.06); + + svg { + visibility: visible; + } +`; + +const Popup: React.FC = ({ title, icon }) => { + const containerRef = useRef(null); + useFocusOutside(containerRef, () => {}); + + return ( + <> + + +
{title}
+ {/* {icon && } */} + +
+ + ); +}; +export default Popup; diff --git a/web/src/pages/Home/index.tsx b/web/src/pages/Home/index.tsx index 04a215007..17f7aacf9 100644 --- a/web/src/pages/Home/index.tsx +++ b/web/src/pages/Home/index.tsx @@ -5,6 +5,8 @@ import LatestCases from "./LatestCases"; import Community from "./Community"; import { HomePageProvider } from "hooks/useHomePageContext"; import { getOneYearAgoTimestamp } from "utils/date"; +import Popup from "~src/components/Popup"; +import Court from "svgs/icons/kleros.svg"; const Container = styled.div` width: 100%; @@ -19,6 +21,7 @@ const Home: React.FC = () => ( + ); From fb1e2ceb762561e2121d18a9d47194ddefed822a Mon Sep 17 00:00:00 2001 From: marino <102478601+kemuru@users.noreply.github.com> Date: Fri, 28 Jul 2023 22:53:15 +0200 Subject: [PATCH 2/6] feat(web): add stake, withdraw, voting, appeal popups --- web/.parcelrc | 4 +- web/src/assets/svgs/icons/appealed.svg | 35 +++++++ web/src/assets/svgs/icons/info-circle.svg | 10 ++ web/src/assets/svgs/icons/kleros.svg | 2 +- web/src/assets/svgs/icons/polygon-balance.svg | 34 +++++++ .../svgs/icons/voted-without-commit.svg | 59 ++++++++++++ .../components/Popup/Description/Appeal.tsx | 51 ++++++++++ .../Popup/Description/StakeWithdraw.tsx | 93 +++++++++++++++++++ .../Popup/Description/VoteWithCommit.tsx | 31 +++++++ .../Popup/Description/VoteWithoutCommit.tsx | 32 +++++++ .../Popup/ExtraInfo/StakeWithdraw.tsx | 24 +++++ .../Popup/ExtraInfo/VoteWithCommit.tsx | 30 ++++++ .../components/{Popup.tsx => Popup/index.tsx} | 23 +++-- web/src/pages/Dashboard/Courts/CourtCard.tsx | 2 +- web/src/pages/Home/index.tsx | 6 +- 15 files changed, 423 insertions(+), 13 deletions(-) create mode 100644 web/src/assets/svgs/icons/appealed.svg create mode 100644 web/src/assets/svgs/icons/info-circle.svg create mode 100644 web/src/assets/svgs/icons/polygon-balance.svg create mode 100644 web/src/assets/svgs/icons/voted-without-commit.svg create mode 100644 web/src/components/Popup/Description/Appeal.tsx create mode 100644 web/src/components/Popup/Description/StakeWithdraw.tsx create mode 100644 web/src/components/Popup/Description/VoteWithCommit.tsx create mode 100644 web/src/components/Popup/Description/VoteWithoutCommit.tsx create mode 100644 web/src/components/Popup/ExtraInfo/StakeWithdraw.tsx create mode 100644 web/src/components/Popup/ExtraInfo/VoteWithCommit.tsx rename web/src/components/{Popup.tsx => Popup/index.tsx} (57%) diff --git a/web/.parcelrc b/web/.parcelrc index b812a5214..8b6b0a40c 100644 --- a/web/.parcelrc +++ b/web/.parcelrc @@ -1,6 +1,8 @@ { "extends": "@parcel/config-default", "transformers": { - "*.svg": ["...", "@parcel/transformer-svg-react"] + "*.svg": ["...", "@parcel/transformer-svg-react"], + "tsx:*.svg": ["@parcel/transformer-svg-react"], + "tsx:*": ["..."] } } diff --git a/web/src/assets/svgs/icons/appealed.svg b/web/src/assets/svgs/icons/appealed.svg new file mode 100644 index 000000000..395ddb3ff --- /dev/null +++ b/web/src/assets/svgs/icons/appealed.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/src/assets/svgs/icons/info-circle.svg b/web/src/assets/svgs/icons/info-circle.svg new file mode 100644 index 000000000..bcb80ff1e --- /dev/null +++ b/web/src/assets/svgs/icons/info-circle.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/web/src/assets/svgs/icons/kleros.svg b/web/src/assets/svgs/icons/kleros.svg index 532aaf497..e0dc1a0fd 100644 --- a/web/src/assets/svgs/icons/kleros.svg +++ b/web/src/assets/svgs/icons/kleros.svg @@ -1,3 +1,3 @@ - + diff --git a/web/src/assets/svgs/icons/polygon-balance.svg b/web/src/assets/svgs/icons/polygon-balance.svg new file mode 100644 index 000000000..fb42fcf8f --- /dev/null +++ b/web/src/assets/svgs/icons/polygon-balance.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/src/assets/svgs/icons/voted-without-commit.svg b/web/src/assets/svgs/icons/voted-without-commit.svg new file mode 100644 index 000000000..eabf73641 --- /dev/null +++ b/web/src/assets/svgs/icons/voted-without-commit.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/src/components/Popup/Description/Appeal.tsx b/web/src/components/Popup/Description/Appeal.tsx new file mode 100644 index 000000000..cd9f4f839 --- /dev/null +++ b/web/src/components/Popup/Description/Appeal.tsx @@ -0,0 +1,51 @@ +import React from "react"; +import styled from "styled-components"; + +const Container = styled.div` + display: flex; + flex-direction: column; +`; + +const StyledAmountFunded = styled.div` + display: flex; + margin-left: calc(8px + (44 - 8) * ((100vw - 300px) / (1250 - 300))); + margin-right: calc(8px + (44 - 8) * ((100vw - 300px) / (1250 - 300))); + color: ${({ theme }) => theme.secondaryText}; + text-align: center; +`; + +const StyledOptionFunded = styled.div` + display: flex; + margin-bottom: calc(16px + (32 - 16) * ((100vw - 300px) / (1250 - 300))); + margin-left: calc(8px + (44 - 8) * ((100vw - 300px) / (1250 - 300))); + margin-right: calc(8px + (44 - 8) * ((100vw - 300px) / (1250 - 300))); + color: ${({ theme }) => theme.secondaryText}; + text-align: center; +`; + +const AmountContainer = styled.div` + color: ${({ theme }) => theme.primaryText}; +`; + +const OptionContainer = styled.div` + color: ${({ theme }) => theme.primaryText}; +`; + +interface IAppeal { + amount: string; + option: string; +} + +const Appeal: React.FC = ({ amount, option }) => { + return ( + + + You have funded  {amount} ETH + + + Option funded:  {option} + + + ); +}; +export default Appeal; diff --git a/web/src/components/Popup/Description/StakeWithdraw.tsx b/web/src/components/Popup/Description/StakeWithdraw.tsx new file mode 100644 index 000000000..42b87362c --- /dev/null +++ b/web/src/components/Popup/Description/StakeWithdraw.tsx @@ -0,0 +1,93 @@ +import React from "react"; +import styled from "styled-components"; +import { isUndefined } from "utils/index"; +import { useAccount } from "wagmi"; +import { useKlerosCoreGetJurorBalance } from "hooks/contracts/generated"; +import { format } from "src/pages/Dashboard/Courts/CourtCard"; +import KlerosLogo from "tsx:svgs/icons/kleros.svg"; + +const Container = styled.div` + display: flex; + flex-direction: column; + align-items: center; +`; + +const StyledKlerosLogo = styled(KlerosLogo)` + width: 14px; + height: 14px; +`; + +const StyledTitle = styled.div` + display: flex; + margin-bottom: calc(16px + (32 - 16) * ((100vw - 300px) / (1250 - 300))); + margin-left: calc(8px + (44 - 8) * ((100vw - 300px) / (1250 - 300))); + margin-right: calc(8px + (44 - 8) * ((100vw - 300px) / (1250 - 300))); + color: ${({ theme }) => theme.secondaryText}; + text-align: center; +`; + +const AmountStakedOrWithdrawnContainer = styled.div` + font-size: 24px; + font-weight: 600; + color: ${({ theme }) => theme.secondaryPurple}; + margin-bottom: calc(0px + (4 - 0) * ((100vw - 300px) / (1250 - 300))); +`; + +const TotalStakeContainer = styled.div` + display: flex; + font-size: 14px; + align-items: center; + justify-content: center; + margin-bottom: calc(8px + (32 - 8) * ((100vw - 300px) / (1250 - 300))); +`; + +const MyStakeContainer = styled.div` + display: flex; + margin: 0px calc(4px + (8 - 4) * ((100vw - 300px) / (1250 - 300))); + color: ${({ theme }) => theme.secondaryText}; +`; + +const AmountContainer = styled.div` + font-weight: 600; + color: ${({ theme }) => theme.primaryText}; +`; + +interface IStakeWithdraw { + pnkStaked: string; + courtName: string; + isStake: boolean; + courtId: string; +} + +interface IAmountStakedOrWithdrawn { + pnkStaked: string; + isStake: boolean; +} + +const AmountStakedOrWithdrawn: React.FC = ({ pnkStaked, isStake }) => { + return isStake ?
+ {pnkStaked} PNK
:
- {pnkStaked} PNK
; +}; + +const StakeWithdraw: React.FC = ({ pnkStaked, courtName, isStake, courtId }) => { + const { address } = useAccount(); + const { data: jurorBalance } = useKlerosCoreGetJurorBalance({ + enabled: !isUndefined(address), + args: [address, courtId], + watch: true, + }); + + return ( + + 🎉 Your stake in the {courtName} court was successful! 🎉 + + + + + + My Stake:{" "} + {`${format(jurorBalance?.[0])} PNK`} + + + ); +}; +export default StakeWithdraw; diff --git a/web/src/components/Popup/Description/VoteWithCommit.tsx b/web/src/components/Popup/Description/VoteWithCommit.tsx new file mode 100644 index 000000000..26f55658a --- /dev/null +++ b/web/src/components/Popup/Description/VoteWithCommit.tsx @@ -0,0 +1,31 @@ +import React from "react"; +import styled from "styled-components"; + +const Container = styled.div` + display: flex; + flex-direction: column; +`; + +const StyledDescription = styled.div` + display: flex; + margin-bottom: calc(16px + (32 - 16) * ((100vw - 300px) / (1250 - 300))); + margin-left: calc(8px + (32 - 8) * ((100vw - 300px) / (1250 - 300))); + margin-right: calc(8px + (32 - 8) * ((100vw - 300px) / (1250 - 300))); + color: ${({ theme }) => theme.secondaryText}; + text-align: center; +`; + +interface IVoteWithCommit { + date: string; +} + +const VoteWithCommit: React.FC = ({ date }) => { + return ( + + + {`Your vote is confirmed. It's kept secret until all jurors have cast their votes. You'll need to justify and reveal your vote on ${date}`} + + + ); +}; +export default VoteWithCommit; diff --git a/web/src/components/Popup/Description/VoteWithoutCommit.tsx b/web/src/components/Popup/Description/VoteWithoutCommit.tsx new file mode 100644 index 000000000..3f706992f --- /dev/null +++ b/web/src/components/Popup/Description/VoteWithoutCommit.tsx @@ -0,0 +1,32 @@ +import React from "react"; +import styled from "styled-components"; + +const Container = styled.div` + display: flex; + flex-direction: column; +`; + +const StyledDescription = styled.div` + display: flex; + margin-bottom: calc(16px + (32 - 16) * ((100vw - 300px) / (1250 - 300))); + margin-left: calc(8px + (32 - 8) * ((100vw - 300px) / (1250 - 300))); + margin-right: calc(8px + (32 - 8) * ((100vw - 300px) / (1250 - 300))); + color: ${({ theme }) => theme.secondaryText}; + text-align: center; +`; + +interface IVoteWithoutCommit { + date: string; +} + +const VoteWithoutCommit: React.FC = ({ date }) => { + return ( + + + The decision date is {date} with the possibility for appeals. After that time you will be informed about the + jury decision. + + + ); +}; +export default VoteWithoutCommit; diff --git a/web/src/components/Popup/ExtraInfo/StakeWithdraw.tsx b/web/src/components/Popup/ExtraInfo/StakeWithdraw.tsx new file mode 100644 index 000000000..ed9167830 --- /dev/null +++ b/web/src/components/Popup/ExtraInfo/StakeWithdraw.tsx @@ -0,0 +1,24 @@ +import React from "react"; +import styled from "styled-components"; + +const Container = styled.div` + display: flex; + color: ${({ theme }) => theme.secondaryText}; + text-align: center; + margin-left: calc(8px + (44 - 8) * ((100vw - 300px) / (1250 - 300))); + margin-right: calc(8px + (44 - 8) * ((100vw - 300px) / (1250 - 300))); + margin-top: calc(8px + (24 - 8) * ((100vw - 300px) / (1250 - 300))); +`; + +interface IStakeWithdraw {} + +const StakeWithdraw: React.FC = ({}) => { + return ( + + { + "In order not to miss when you're drawn for cases, make sure to subscribe to notifications: Settings > Notifications" + } + + ); +}; +export default StakeWithdraw; diff --git a/web/src/components/Popup/ExtraInfo/VoteWithCommit.tsx b/web/src/components/Popup/ExtraInfo/VoteWithCommit.tsx new file mode 100644 index 000000000..c464e1c92 --- /dev/null +++ b/web/src/components/Popup/ExtraInfo/VoteWithCommit.tsx @@ -0,0 +1,30 @@ +import React from "react"; +import styled from "styled-components"; +import InfoCircle from "tsx:svgs/icons/info-circle.svg"; + +const Container = styled.div` + display: flex; + color: ${({ theme }) => theme.secondaryText}; + text-align: center; + align-items: center; + margin: 0 calc(8px + (32 - 8) * ((100vw - 300px) / (1250 - 300))); + margin-top: calc(8px + (24 - 8) * ((100vw - 300px) / (1250 - 300))); + font-size: 14px; +`; + +const StyledInfoCircle = styled(InfoCircle)` + width: 16px; + height: 16px; +`; + +interface IVoteWithCommit {} + +const VoteWithCommit: React.FC = ({}) => { + return ( + + + Subscribe to receive notifications to be reminded when the reveal time comes. + + ); +}; +export default VoteWithCommit; diff --git a/web/src/components/Popup.tsx b/web/src/components/Popup/index.tsx similarity index 57% rename from web/src/components/Popup.tsx rename to web/src/components/Popup/index.tsx index 7a4a30c41..1557f977a 100644 --- a/web/src/components/Popup.tsx +++ b/web/src/components/Popup/index.tsx @@ -2,7 +2,13 @@ import React, { useRef } from "react"; import styled from "styled-components"; import { Button } from "@kleros/ui-components-library"; import { useFocusOutside } from "hooks/useFocusOutside"; -import { Overlay } from "./Overlay"; +import { Overlay } from "components/Overlay"; +import DescriptionStakeWithdraw from "./Description/StakeWithdraw"; +import DescriptionAppeal from "./Description/Appeal"; +import DescriptionVoteWithoutCommit from "./Description/VoteWithoutCommit"; +import DescriptionVoteWithCommit from "./Description/VoteWithCommit"; +import ExtraInfoStakeWithdraw from "./ExtraInfo/StakeWithdraw"; +import ExtraInfoVoteWithCommit from "./ExtraInfo/VoteWithCommit"; interface IPopup { title: string; @@ -11,8 +17,8 @@ interface IPopup { const Header = styled.h1` display: flex; - padding-top: 32px; - padding-bottom: 20px; + margin-top: calc(12px + (32 - 12) * ((100vw - 300px) / (1250 - 300))); + margin-bottom: calc(12px + (24 - 12) * ((100vw - 300px) / (1250 - 300))); font-size: 24px; font-weight: 600; line-height: 32.68px; @@ -23,13 +29,12 @@ const Icon = styled.svg` `; const StyledButton = styled(Button)` - margin: 32px 0; + margin: calc(16px + (32 - 16) * ((100vw - 300px) / (1250 - 300))); `; const Container = styled.div` display: flex; position: absolute; - max-height: 60vh; top: 5%; left: 50%; transform: translate(-50%); @@ -39,7 +44,6 @@ const Container = styled.div` justify-content: center; width: calc(300px + (600 - 300) * (100vw - 375px) / (1250 - 375)); max-width: 600px; - min-width: 300px; border-radius: 3px; border: 1px solid ${({ theme }) => theme.stroke}; background-color: ${({ theme }) => theme.whiteBackground}; @@ -59,7 +63,12 @@ const Popup: React.FC = ({ title, icon }) => {
{title}
- {/* {icon && } */} + {/* */} + + {/* */} + {icon && } + + {/* */}
diff --git a/web/src/pages/Dashboard/Courts/CourtCard.tsx b/web/src/pages/Dashboard/Courts/CourtCard.tsx index 822d898a1..b7d385d57 100644 --- a/web/src/pages/Dashboard/Courts/CourtCard.tsx +++ b/web/src/pages/Dashboard/Courts/CourtCard.tsx @@ -33,7 +33,7 @@ const tooltipMsg = "The locked stake of incoherent jurors is redistributed as incentives for " + "the coherent jurors."; -const format = (value: bigint | undefined): string => (value !== undefined ? formatEther(value) : "0"); +export const format = (value: bigint | undefined): string => (value !== undefined ? formatEther(value) : "0"); interface ICourtCard { id: string; diff --git a/web/src/pages/Home/index.tsx b/web/src/pages/Home/index.tsx index 17f7aacf9..0e9e52d20 100644 --- a/web/src/pages/Home/index.tsx +++ b/web/src/pages/Home/index.tsx @@ -5,8 +5,8 @@ import LatestCases from "./LatestCases"; import Community from "./Community"; import { HomePageProvider } from "hooks/useHomePageContext"; import { getOneYearAgoTimestamp } from "utils/date"; -import Popup from "~src/components/Popup"; -import Court from "svgs/icons/kleros.svg"; +import Popup from "components/Popup"; +import PolygonBalance from "tsx:svgs/icons/polygon-balance.svg"; const Container = styled.div` width: 100%; @@ -21,7 +21,7 @@ const Home: React.FC = () => ( - + ); From 8fdda48c5c8df1f06e9efcb8fee79f42a5e92873 Mon Sep 17 00:00:00 2001 From: nhestrompia Date: Wed, 2 Aug 2023 18:25:58 +0300 Subject: [PATCH 3/6] feat: logic and behavior implementations --- web/src/assets/svgs/icons/appeal.png | Bin 0 -> 23985 bytes web/src/assets/svgs/icons/appealed.svg | 35 ----- web/src/assets/svgs/icons/balance.png | Bin 0 -> 29518 bytes web/src/assets/svgs/icons/polygon-balance.svg | 34 ----- .../svgs/icons/voted-without-commit.svg | 59 --------- web/src/assets/svgs/icons/voted.png | Bin 0 -> 25021 bytes web/src/components/DisputeCard/index.tsx | 6 +- .../components/Popup/Description/Appeal.tsx | 2 +- .../Popup/Description/StakeWithdraw.tsx | 5 +- .../Popup/Description/VoteWithCommit.tsx | 12 +- .../Popup/Description/VoteWithoutCommit.tsx | 13 +- ...ithdraw.tsx => StakeWithdrawExtraInfo.tsx} | 6 +- ...Commit.tsx => VoteWithCommitExtraInfo.tsx} | 21 +-- web/src/components/Popup/index.tsx | 124 +++++++++++++++--- .../Cases/CaseDetails/Appeal/Classic/Fund.tsx | 21 +-- .../CaseDetails/Appeal/Classic/index.tsx | 51 +++++-- .../pages/Cases/CaseDetails/Appeal/index.tsx | 4 +- .../pages/Cases/CaseDetails/Voting/Binary.tsx | 9 +- .../pages/Cases/CaseDetails/Voting/index.tsx | 51 +++++-- .../CourtDetails/StakePanel/InputDisplay.tsx | 15 ++- .../StakePanel/StakeWithdrawButton.tsx | 19 ++- .../Courts/CourtDetails/StakePanel/index.tsx | 44 ++++--- web/src/pages/Courts/CourtDetails/index.tsx | 8 +- web/src/pages/Home/index.tsx | 3 - 24 files changed, 308 insertions(+), 234 deletions(-) create mode 100644 web/src/assets/svgs/icons/appeal.png delete mode 100644 web/src/assets/svgs/icons/appealed.svg create mode 100644 web/src/assets/svgs/icons/balance.png delete mode 100644 web/src/assets/svgs/icons/polygon-balance.svg delete mode 100644 web/src/assets/svgs/icons/voted-without-commit.svg create mode 100644 web/src/assets/svgs/icons/voted.png rename web/src/components/Popup/ExtraInfo/{StakeWithdraw.tsx => StakeWithdrawExtraInfo.tsx} (83%) rename web/src/components/Popup/ExtraInfo/{VoteWithCommit.tsx => VoteWithCommitExtraInfo.tsx} (56%) diff --git a/web/src/assets/svgs/icons/appeal.png b/web/src/assets/svgs/icons/appeal.png new file mode 100644 index 0000000000000000000000000000000000000000..d0faae6827111e2d3daef5deb2fcd4877bcc6fec GIT binary patch literal 23985 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/web/src/assets/svgs/icons/balance.png b/web/src/assets/svgs/icons/balance.png new file mode 100644 index 0000000000000000000000000000000000000000..f86f5015f7a217fda8f74c4a4033109fac543937 GIT binary patch literal 29518 zcmV*HKxn^-P)timGDME>Nh$lG|E9vg~fRgiueo$Lcl`YNP)|fWrFAf&c=nh#A`< z81P>vMv^r%3WsA_2>0}~q!u7#Tf$>oNNBS_R239Zd%fD;tGCq6$uBd%%oW`bDf|ut8qk1NHyzh{%ZWvO zuL16H^QYUya@xucUuRR)ocMXv>k%!<*=Ibu#E)7iSHAn;St^qoJTHm0? z;ET)fYdfXAMx%eqXyK<}K&zgHU_h&uZ0cu0e^HIX4|@Pyq+Ld{KQ%}#tqmGz-c?El zKzC{l_dyr@+D^#;`M$=8@rRX~fdQ>L8i03|(F*#tozlP`UZpeu?KhHf+Xw2Pq;a*!JTr>81w^kh|LI+e z@UG8a0KfK$?a)IS_`@qq1Mqg4?5v+fxYuZ(o=tpz;hE#`-#+~+4DB5U_eecx?N=SP zo!dDNzxk(^!dq{?5PC&}sfQ~^1Mqf{(68;*RK0cxecC5J{W6^VF2D#319*LFN%@}! zJr2O``@CL&t8bm^wJANAdbk2K0B;wl*CmbU*M9$z1Mp9Od>p3qMBad&s^%MX*rX7| zun0HYy%Daz^}?R|!vj;gdo%!V4eCcpBl@+^J$MpEj9*KnlQt^+lk8+qJ1FCw#vi`> z!k+uX#-#t))-m-Q45(uofVTtcmtXsL4;+T$&uADnYF-)ep-&sEV{m{}{)sY6+3oj@ zbP4HZ+rrK{_~f^*?X@XA@P}*A0KChjUY9hYU;E9^?T158G+@+#)?$wU=z*t7pe*k9 z2o6?s3})fyyjryW@O$s>u|GTn_YF!dmrn!mwn;wqgR5EG06ie`YoCAgq)q);5^5G8 zMX}qJG!n>G@`+O)N{MarumEqqXA1t^-MgWOH1LO)NdxearU7^> zsN1VFwnM-C?s5402M@!sXBsB;gO#gHqk14xFv?+*r-5u!X$Tk0X(f(LgaSFoI-d6& zG+^TT2K??{?;iNWtBeNVEfBtaz)v9P324zo{%@b#2YbId4`T+lLMgKE7Qlp1PKgrD z_Ca}n05Sx;R`$67-XFf_lAflP%yaniz#lHt0KANPUDAl4{d@Fl|NI0DA0N#dlt7vK zy;b0B2Ix-C<7s4P1Kxbc2Ds^tE1-uo@P`XD053Sd)_mO8>Dvc7pTl!r9UKODEIVyn+@*J2Se)l~W!LQxgQ-AnzQ7ysM zzu$9Hdf*RxI&Z<-uc>;!cx2Z4wOpGz?5a$2Y7;zCS|ynB2_dhcbIMgGk1%Vtj{{z_ zfB7-tmx{S!7d(S7q6Jv8ru4h+*fuD&>>-_Z;O*B`y&pb!0)}Qr7~``@k@CROsS_)r zRTe!iXa!IiMuv2AOc$v_>ZsJtZ-LBy4x19;K`G^(OU9JG5Z-m`CD23KYvS^EZ5mhK zfb)#b8}Rm{q|y1culT8Yo~r!Ol(LAk19`iFrRsk8z6u+;m}7!!pE~im7kAFVzkh5u zT>ZYy&?`D0P3iLjy#1J}_l?{4!OSz-izwr2jIt#nADFkku$1{5+}f5%@q4qZUtrVGEj-* zgtGMo8a`mg{n!v7OQYaQHPPfi4Fmoc^dh|do{jL{&s+}ETMGANW$3){hu0-|`!!YX zpC6oYek}!i4EL&nnHwvme9%gH9C#4(;FR*91!gs8S{MLI$mX+*A^_bF#l-^QQOEPi z$qaNNodmg}53Wc66$BJs*U-*$@b0^fKm3W_`orsa>fyQqZ(sb{?;eN0eee(*d*&RB z7>SW;FI{p{JrJYrqks|thN(M;YW5wHNOPs#oA}5v=FIz!Lc_Pn%wTC7hk%3z(pS#0jRHu-3^wb3F@s39h+y%J{>V4yGQ~ zpfwNP{**Mn4nO|$6QGWdutI+jL0iGg;5Gzv8KCUH(&PgkG}5{<5X`#H{9DbGwisJ_ zyqNGHg+Y0Yi8;=$E4Ac#KS>wvpUn-p?lY6{@9xMJTH5yhG5E+|TsiQE+oUxG-hNEg`yUU! z3_pM542-MMjIS+`4Os+WqH4t=Q>;xo!Ct6cRo$)tBq$t~k!m&W5;1TK6`uFa!Ca17 zLnY^tKm7jQ`on8->fxFIZ$C;J|N8^`;3tosf}s;5IT(Wv$?~K`J}?x1W?-eCdCoNW zyS729ve^l$HhEx;j7-Ax^fvQ#80O}V!2H=0%)T#;on05Z%*uciKcBlu|5L}|1an(O z9|5F^BF*yHKkgaZso|}6Y=oQc*a1DHHRTVlYVe|o3}@k?UQg9~;`UcS;Sw|z+DI`+ zSD1^ymY886ar+W~mh-)i=CSgTCZ4{@>{5_EEcx3*!=nbYm%`}ilxTbI+&r8*wI3Si z7MZLlk5zd)Kl-k5JaL&F5P>ieT@TJTM9}Ie72M@1*&iDNT`K`wUAYMV`ksq>S}(m; zOzBk#-hTMCnEHAA_PsFkJq^R!y*yEestE7_9>r$*cyOu2XH6;7V$`&d17?h!k%CMC z(&vzoZsX$@z~tlwW<1p|ew?2_VKs51u>{2xIRMH&GS|q3@p2(mIc^}ZCo`J>GQU2I z!EeJ^OV@s48s2~Rr2~JM(W(P)KS~;{U;F487}XUejTL;E?Q7PyYJaP3Ro^|0k8d{G zc6(FMa%wadEr@3gh%5bJfJ&j$bc|IXuR5-3Uqu@PF`ClvzGM4f>LIKm@E$*{Z%|`) zY1JE{M}#Gf|MlgaR$_~ujtw+VU;`GY7;(&ytq(|B_7qRd1lYBU-~ zd!2*f;n9lyi!eKT!~&Vd#8>brjS*Vh2a#eb^bz_6C=0zpdvWjmeoQU>>$@-Nd8y@U zn|j!H@b+t}-Z%g7Rakg_*#4F|&U{r0@cXE3_?c=SfC9tI_G!_CJhb40Ci8KJhDKq^ zfEG1w6(Jzc%pSA>s|nK%L0&}*3#UxmL&h&&U<(A$=qu{10c37iUPPt9p?>H9RXR?y z^A+l-dE2Ec&%(zZ+YQ&fuP2_B8}%wOrTYrrev~wR{q{ZXl_B=h<>kx#qy{koUZ=l( zn{Y5#f6nn=Zs&>`VBi1&*&mAr#Z_3f0WAXY0+=v|3jM_z{?JvsyG#4y903eipbE2#|@+eD6&M^y{9aZ(;t zStyYlF50nuV`Cd&!}KLq>y`)shoC(>KT|%3r?JtEFg>-s(v&{e@co>fX<_;^JC_Ib zKuAA`v#TIRrG%To`=EVV+}CC+f$-;rMIP7Rv+=xo%R^7W+n=`&9Dt`jcK}9a#z1hS zO6*`u63n!zY(h&gbN)>lN@tKCTI!q$1@vd9CNFO4*Pfj}YQT2Pevf@9sH{^ozsJWm z+kTsY7)@z3sSDK>6~urHfs1y7C7Ia>rGD;%9uZE}``&{G;qWtsSwEgQZwP)#8H*{~>^R2MS=)+p0u(ULb_^K_hi2~N z#05}A^9!fp%$WlgXhN2Nuu6+3$B&U_U*NXQ%xsgTR8K@6g zTb=bq$7uN+&+VFr|NN~tuItp&ii5Wwe(lo_yavDg>KVUEV_A_3zG9Y}rK0wL#4>cf z2=FINBpEs}`6^B|Z8TzYzxIsvO&1ntvwewMTDJ57#EhWfp%Ivx+Ge!zCa9uWYm%RU zh6!o`8+S<=s|Huf?h1JQRK0u6*Im#9LKFGh z555dPedIKZ!f@QdEA@5N(UD1s!NjT)AYn*{r2Q$7I|WX-M)FKUb<)@x15xN_R{6CU zAUbvCH49#TX_nZDG&^5dol5gj$y+0^lbGK8dZ;g)=&)(S4j3JofGRp;OzBx;&T|39 zSJp@c1Ms?Ke-ZrB@L3E&oUdG!K1(SA9pZ6N%?J3Zmg|0h1Kil#{P13LDGzU*P!B;D zs1|tpF;(yXePAE__|X%fW+G^V@%_Z`xNV4ODBj<4 z34>6ZHeBA+uSK60bE^&AXx(9vDU+*I`KD$dZReaQc<`@^md?$?iBqrGQp-xAQy5#8 zDk`m+6{6dpYy|B_mM$;GrQdru! z9BnVpt%EsQS}a|RtwRAs{S2AZ(gtJlH}i+*tUr9%rIwg~TLN_ONkKjvULwkm<7-@p zHKxOEej;f~3!b5ti9kkw_zk@`rSUQ!G9Z3pdpIzeTh z%}nL24M0usc0Lic7QZ3;ZH5ZI{CHuSt9gn=jM+Yrao$pZAb6{V27>)Y8+f8die0A5-=I#g;T4fJ4tLni%qs$4dkZ zq$NECbIPqm0dB<$0G3t&5S2R|lK>L@*?H120AmE#8Jfj7d0?_ddgavY0SjO;kR&?Z zG^kdkSpxvvSR3ZQbLMXpM)HHh1w#Nz({n_QhHN+ruYJ@+(6==8hsl%<{xGEd^07ho z40K4@0px4kQX?@kAyiAm&1tCA5JuqcT!35u`Z~Dc`VG)4YR4Zgg0~+fjsNBLm+aE2 z)~^NmJepZ?VLSPJNs2)5VGyo7{ScW%JWR${Drv_Fr|M0PW4^YvUu#o836Jpc=Yokz zl-LlmxEhta$8dYCO};1OulTqLTH1O zJt{FocxEa6o$?VsCKKXp|DwiH%ZGOXiIJQ@kpa1Q?PmC6-`PS&%tS( zY|?qA@rnl|gHhJ}#+|b!1#k#X80elAO;GzHfVaYi>T_s_0uT!4V$xJM86FY_vo^Fa zrBBZt3Z<5%bXIoy6od)L==nzv#~o0Tf2lCnY-h>!;+q!LIe5qCH^PVSxe9tnMSs{1 zzaLZee(==;@SV@S4#P8}VIZ0H!oFw1w}QC>6X}G-MEj!r%|vsUTAz$(bYv1XPHk`L z*J1?{8nAK+R44{#g!Bg}S{{+)Dic_MkD#4_)6k4I!4zC#AUvi<) zo7B%nV-{jrV-=xkeB#WjmNAR{R{n-ez{GORFlW+u1+3(OM8Aw@89Q|P- zM&dSZ5wN}4%fm{?_b^YMl&Q2&X{F z7|y8%Y2u#!LRL< z5X5LoZ-U7<;B@YyxSmuUK_aC1c8C|{+f9zO=MT@GJzngJkHOnR5T_dg6uyFZD}%o_ zP0!h1pG+>0aF=gS)X9FQG$06r$(=)R^(Q9b!*{Q|KfL1LMH3kpGH<**k_Qb6d_g3( z6&h3)otHZE+i9WnswQdsk)bizJbihkUyF3cXbEIAZ2-)LfBL{xls@IanYS9a|Cm}D zST>1%?J=WsSAtLjUu^yzqlq5u{3;nR7gBD_D!(w0!YUP*Xi8)C8Aj_%bgr=g$4>6G zGpd}jYp*6fJ0A&nUGdx#ZBmlEt=a=fejUBiubnx)-}$wIl1c9cPT&9+mWOS_88n(` zhxG~L+b++q?Uc}z-fVzu{oxi5E8Q*lIzdrsE&*y^)WTEaTPx3j{_v?ezcj5smJ1Ji z3Y}=?Rs(I;hCLtQy#N%gDc&z{inEq>e`Ff|&7baA5mUPB;6)SpTMzDo=N~=k9)5b^ zRo@fJQa)AWeU9)W>ocB6S?y&FZ%7~$eojv~(Bc|WB|-+8F~O)(zLrj}6W>&lW*3-j zOGP?h>SrEaHL&f}ukDoZ*+rwG${@w!&xxs}_ugYn=`NL8 zb_Kk_uiZBi{Igst>aZjYXb@>0Eh7b))+AWSj5=c*|NKk-EU$%4>zQ#gGRdZ?OPfbP z&mOUUE&814nB_!vR!f{pe<3V%5}b>KsRuNX>-x3RTSnmaFTMpH{?w148?@Q_!<%h> z7)dUqm-+?((N<>PX^$>Vh=>42t7m%R0t4dhRl{*^%bEQ)wIpkuX&5R_Ht@jZLN&xo zXdjf~A?_CsUhyjy*XRWUWk50>gm{kOo#)`+{@D(Ad(EkbwZMxdjsN%UFTs&#mSEVv zEnY+V9P=_n0AV`PO-v|65JP|Ni(O?QIYdlax80|=Pc(KC)#PiZCoZyPa+QfZZx{r9 zEn7f9hX;mWmjS%cKHpY;vq1h(5wM3%&bAwV?VVq~9zOWVE8wxu{uG{gXfJe&5Wp9i zxU{Hn^WT~-ERP>r-lufp1U+9;U1&<%oO%;~cy|7H@Q1V0ra?^}R7>Rz*B^oR;`(Q- zQ^*4r!Nikts@SLdWlibd-v}S5ky@$+-oN_vi}2!K&N7+m2byXoe*>lbO)pp#r6(}v z23~rWr;zPtLv$XBSQuftijk+g*5g`MBe8XM9QHSy+H> z&ABdoUUTad{D;S`fldg)+unO2 zD~R8d@F@nYMQwRF2&C<+HD5v|I5YNGu`fMO3ixy|$~^%58ylI13pZW`Tc)ol0vG+- zQ*#I5$jKKiaD#bOMLLs6@!Xp6DZg$-vw#lG{ELn5FBLQ_KFiI<_1V7l z4Ngl7P0Nful?(%tN2leu>>>VO>O&>ZT0zc&5Uy8?^MzZ(lugDv%cRc1%R#A>yg31X zexQnd*Lge6;~X+UaO${6+&~75lu!KqvlUTW4PY4e|F6cJR8-eqpf$?j` z;J49mEiqVROeH_LaOdp>&i#Eovv3@ao_xvV){j7m5X4waV+(3fOOy2n@|o~q2|gr2 z&)RAwho&_0&cwHMXKq>#+l^5(1EWr7K zY2+m%CT5IFgJyD-KaAV(4+D(|^rcWQ?K;&36{>YCf26>sj@B*sLDMjV=^Rk0AzO+m zgkOl!f$@1=wF`B?tDTH;^`mYe_%AZ1UAi+ZX(6NuzI9j3(>US6wb#My25Ek3fVjR< zax+lFZryN2rC*EM^@L%9+4*BorSpTiZgyX|YYg7`$qV4p>nC7p%P<_={)6Uo zQ4WNJlxGl18O-XlaKr?oW>+xv^YQzxtK5g?GXnc-_q_lsL8y80`cCLGHlVfH=7*i$ z5m8z%z=ee#Hu11aZk9-e3ZflO~IB(zrsl)H0aS9-fJ$ zz(8n2v7}Rw)WB_Ci2o|Fk9I5C#mom@o~ecOhgwua^Tr!Z88Uh(4KG#Q{&-Av+6jO(cuZ>|6EpS9#g*d6fPES6900}rwU*td4T76&z%>- zZ{2$dOl*nT8!K1;)omBRx9>jy-@fl4@CY}b6O8%VBl@J(PAf^Mbuqf!jL@Wh;-Nh& zqJ4?b2gb<~r;QiC4YtHJwY@af8Mj7sC~~b>%p(d!i0IHxDB!;+eDRMgtQ5p3ythv8 zuxY2`2JAR#gzDU#W{*OI6i7qMHLL?NRn)F=Q9LaG9Ii&kORx$}YhNV9(uy^Ki`22t z8v{umlq|yRZjjT=zHyL94XuS)75`ZC?f55K4rs-VY=e6J2V6r>vc92g2;ge02 z7VW(s%J=aB509E))D9RQsb0zNl!-E)H0H6^=hDGA$;~8XK}=ej+|s^WLy)5njDH4B z@ch$9;YkzSeg3;gyILSoq7SsGb&1}6%XavQ8DFmn&F5E*J%Yik3t=OSs*#+5*<<4A zV~HyERVVzUNp4;auKgKpE?mZ?eK{n1O{ zvAcc-{US7>@$VwN$*!q2s?%qgmQgy={znwL$v)6RH4q=3oIPMtM#n9Prwgei1o0(X z-empd6LSY#y)@{M#!~!b&J1wl;>w2HJieWPEmEYKrN?R_7rK(?jT%zv2*0r0h+^B4 z@kX5-cZLT+eS)&)%@z|yt^zHZN5{{&)IkgeXc{K)THN4+Fv%`bME*e?H)){Po}07g za~-4jRRKu)s6hV^~MWexr9D4PFz^YsB=4HQ%m4dOPkbG5d5Mv zJ$(0ts+xmXi20}>IrOa-RK}DxsU^c7m^Qk2<5k7f67m>MP&sX_wgW)HQm#$_I195C zT(pXT+H`^f1AE}``na{!Ie39v86#keT8-%gh!&miX}5qcLOpmPrNO_VwM+j1UAbJ$J$a6M@l86WZX? zZCBVoBn0xaj~}#P?!>&_u%)$6UNw$A&#lag9Lpg}EnzzCG6UmrHIlx_Ac9o~2zz#; zylEbKr#bKc>rrIG_Pjkj@QAs zUXh@xhvFJ$GrLiAV_7mitH&VILU~!nFDj9=`11nekKj$NqElW%;(Gz;oc4n~ul#9N zUWyd0{+ORUe!>D6^SmW`;^95;wflZ4v={*xYmC!U#gxdrzWt#$Tks-?mt$UU+try> zFx?^OSBhMn_d(dKoj*LH*&5ztVv-OBU_Ni66q4s1G+)9G2+FyI6LuAk&4sClXi6jh zVUY)F>~ok}49b9|uShXL^ ztzT=*AN*8MLE)h@O#1Vw!ntiR2+r4qJaF|__q_LSL9}`TW=4+0u9H1jI<#FPYbO!u6HrHI8dN65e+#CPff$RMVpR6qpcBe)%<+U48?MxHZsDYjt7QJL0#;|QLf8CM{0)e5f`6v;Md4Uos+H%Z>2?t8{BSuC zT}_U1?R`?s=H~nCn2$Wjej*(?z1NyL{D!%<04z8SlyDDYAj!x4@R)2@(quP3mb9Dl zw%>$Q5Ww#;sTBkbC)9|i4RGFlOM6S2Ab>xA)A!+P_jguXOs4f?dp=sqWFY7}#R~%h39RY>Eg}~P0k&>JJjMMquUSN1SFr&>7f|b|bMOjL!XT%mQy)c-65pdqOQ_Rcf&r8iaKnH~r}hz1 zxF^B}kO^{;6jWi{)ZIDVuo55V*wUKFXeMLz64nH#^yF9eFDu828Wa8F+jl<+-!aE_ zN@QMt;i+HmXs#}5>(vmfYM15>bg^RXpaJp{f|&V`G|9p7Mcjs@#B?*eCx8_Igq0;! zVn#7t8S0x80U#=`fc41)39nnI;_>BDJAu7pozy?`K6U9_0I^Jt zI}P+*M*)#MNG`Q?>@D<#CK`hFm|b2q?!$rx%+r=4!Kh6!1%xKlu1|7N~Ge2oOiSr`D2y|{_>lgdkAee-CxJ2uG+vfOS6 zP_RA~NaZ`LjlW}#-g3s%}lYhwvTbiJtSipfm2EZ<|i8;Xx9^gyD2Hywx!;6wN=H=Wrob_{1&)7AQ ztALAuLe1MuQ(@&403{U-d8365bJ>R^{kD=~t-9tc5h zK=PB_rXkA|1-{UUQLU@7n@v#g{KQRT&5Xa;4idiP+O7J0?NY}gUWb3!KvLw9^RDG4 zai|74FS^3_h&Ll@biSRZ2S^fQFK(fAzdC~PYw^X?D7jnB_(2VbCT+9g3Dmf_N=3IT zmM|cOf0&B0Lc|CN44f^u6fz|Yu;Cv?ub=%XxIfG^f(9Y5C)@gazQh~;12?!Q`5N}Lg9g082?a6AowsRU;~uO;?R75*h4C5lgtvk>r8U?YYhmGZt~>yevPb`~H>1l`r7D|EP*5zF z%e-tV0}agEIn@F$`4;g|xBTrO$fHk<;!98bx6LeAY%G3{4Y0)oknDEy+&f6tg zPFV1^OXP#LvuOFV-#BPZ=am94C)DobCqE27av(Mu8PC7H!)hyDvWfja|MU^Bl~;a7 zR5uAzONR`MG3dA*w!kEe+wJ)TfCSN`Ks?}z#C@O`#81oO(B%w*~p1@6!uaNK9rvSoF&Iq{1V zpY!i|Xw%RwGGSIy5Cn(52}0=_=9s(c{T zv>cO}$eGSq;Jz}eGu9&go5t`08>j<^d zO0A9DE#k!?2*S7Cc##cyp;qoR=(Q@N*WAtxH33{>FjB;a=C~Vz@TES zJFpdAlq$2GO=LvvAgp0tqptz@t6g2pC%!>MfIl1nwWured9_HUu}`I-^0kivsBV9l zvR4H*+MjHTivUE2MAWV>gD~jS>1#nSSVXHc_G5v!ZV*MUkyg^YMoZ=Phu$Lc)E~ds zY3)C{>HA%AJtz}GugD3Y^1$IsBgML7RqluL9; zifDb9U9lUa{B}!B84nTIlmw~>V3kNgc!L7(L!2VqU)7Oq@-DkL+fShrLWV?*{WcSg zU8~^bw9@8viBMqRY^iPlIPjl}Gu-4WXElqJP^z*Ozo?9-g`pWp2W@NlIvSwSrQ@^g zI;76aBiSSak#Oc9MxfD)x4~_1C?=(tdgRwpm2YckS*XEpUc)~Ct>f61b8j#OvcWJZ zMvglrJ8$>v?_5)+b32rp*9hj_H*AKhuHOXHTSs8q&MCirG-y-&-ihgr0LGLQU;LmG z3ih9lIb8yhvy!73%qKN8C2r1fW6y6_1t6;=a2CyM-CxbC#Ynw;i;jjJc_Y{?d0;C` z4-t@c@nlJAi98s0VDvlU>6W8-KX}`Y+SBEn##L+DbZ&u}C7alNWfQv3CWn@(_eXHObfv355=1!wn5Q?^Ojm*Zwlzm;LYpK>`{9w=12KGTa zl-Q_69+s2#a=_jMRX!i?YlMdq{R*)PhlWlpW@`@CnIunyQC2iB2jmFz%jk-rDZCso zcDlG;AdZmaGZa;bLIBlN5o#7N92JIrJXs`;)W72nY!fX74={qe!Go54SF zQ5nhIFU>@PmOC}8^HSj*4Q&ycbErIDK!KTeeXiyKt4eMBrddO7y;XzCP}2&v_H)xkuzKTO)1<& zq1_co(^@6t(XEUiN!>D;i3X-~nQ-Nic7$X%pM_@s+HZ>Ss)}vs{n5>O(zRaqW*`QDbjc>sRj@$o z+09)5FW0`@DQDlbG?$t2U;|KrRCBZZv|L`%bBI%PnT&?LU= z9pAIx(*PDOjf;!(b&E2kq9I0%L3(Q~ly2Z(?iK3f99btS-z5tV`>J`#+y!RW>Z0qa z!#}{#t60r5+g}n$WNmBB=0XM|UF40mj$>;@xFW?$1X6Hm*g@c`OjzWBMJ>2q*X_HX zvY*e}7q4}BJ!u`m)ezgY0B%d<7QU9w0i?X5XDAL$EylW3J75(+6tEIk&Y%k;8=srU z(zNB@blGfX>O0gk`zW5RA*G=xDI=N@mhG+7I>ygGea!m31JgOD58QS|$f+ONJL`%- z{E8&qB1#|frD$ZVM6-XJ^aF9;dEhH8k5kO#bNWRKw8|i>v>xkF{eV@7A_tWhBpdy! zqMZ*}(%EV>*NhL$z&_AP&!b81<&S~)=P(qUF#SX_dYT{=kkV3q$Sb;2PlN zOMHO40114_O?FokuLf;?FstajE}`C&N1@;%gy%botW9Kxkx zKQJ(z1yO)7Ekj+26-gX_O8(+yy+IqeEfsyx%A?w|pN^deH%%(5hUZa!PR;791825U z`z@$*@RI4E*|HzHP({K;9dq<)@_;j`TbsH(N~ierE;=qKa^2QVY4$dRZc(RiRano| zEI^2H0!-U=i{#o>EXtfr-D@=K12of`)B$h{*!LOFSrP|v8Y0vNEm2oeMIvC#fyyqB z-!MBtfn7nvgIt$7f#@2;Cz7R)qmMYL-(+KlmyWp|4#U z>4_U~+?tDV7f7tWs(unqDqGin9W@9_D}5;eKU66F4ymTkOP}(_1Pd2pkf6a#3$}7i zm?9<8JcXO1xfYM^gX@t=Jpd53&n2R{s=at`PqzaxYnfW*)cJ}eb%}UO)DVE@Kg~2` z3uQ>|8CSHlO?+oSBr}=TSSy`CH9KjWRBtkVkSuY9NFvSrfdHkTjkP>31h04`IU%lP z>E;JDtKEVC)Rk{jMa`CWMF4fRFmjSgCm@$?cxu3E+x_}XNVKjK68gayiN;9xT6!x%9m14ZGn1L9TPu=qHdIVW zR8}=<-LyAnFzT2xB0db(r28V?lnId^qh69Py{kiA@OhQI4sQE1e>Ap_U%~=iDm5%h z=i*f{D(@3OM6>aq-?{fPc=(6!wQmx5+bWvngF*vekZs>`Z%pd*f$&9X?dH_c)wtPP zN1c*NJ}o6~oo3(dXUpDPA7z~D%>U(PIqlFgk@fE9^AoS=YP zpL%%ZQ$cm9+tc4xBfYDG$scuBB#FkV`-pE)U@+C`1O;8uQ5Ce4WW7$ov> z=Txga(vph5W6h>RYbX-aQ5(B8fc!7rTvMk+J<{FbX(-nqPEbI9`pJh6bai5Pw+Y|5 zyPC(>4YDr>M}K#jIrX}xv-6zfn<`0B$Yob~!D1Or+8;wpECrK1Byu%~3PUdlvReBv zg|4+QXoormZ_v2`fHAU6ElBzi;8d~>CZ%guB zbBC*qa7^_6p!G}`DD1QhwT|f=Vk#g_-N++cpX$UumZazyj(z{OgizP)RWJFu+6QBW zBh8{&O-|P~)zG{#5bg#UjeLqS=T&90(1HMLe`XUDil+=k-$4&^A6Qf1OD=+grs?gw zpX~ai`%VbQ@JBcO;Jh%Gk+2N)Z#ta(QD;RG!Wt5-PsMALmopKbD-9j=0z00Whn#5aW~9tSE@w@R^h3uzan3)ogr88^`B9rjunVcQ74FB#%qj7Y265-k>vnhzNZ zgDJQ$`1URp!xJH3an33hW8mlcSXI@m47FXtnMOC?xvK+#r*ox&qzb$Qz{+j2USyY? zr*s8Y6D1WkYq`0u0DS4GtN>m1kpIFv+Xy2@V#pN-(Ld5w_cIMWX z>sdK?FR@@_*|p(e+9>_@yh45}ZsTC8m(p$9CI~+Kd-n0_Dj<3t z$&MWYIh0jk)AYi}`kw-xwQl_n>Chgwv7B@NPsir*<+ zXp;gJB)Giw-Sm36EOS=0DmLm?D1NOFny5JWq8Z`-UcG_^$AdA1ZY}QT;s{5VH%VWK z56>`>hvL7Hhns=X?N<p9 zCvB^)M?|7ExzU=Pll8B~0M|XW0xnUnUcrKsEfBcfbT5{@B8lew!HO)rzZ#k;c}$T) zN=V04CEJl{QO2WbH=6M&)U*t{G9^%8#9v&)`xX_-QCx5+wD18Z)x^K|ajSfSf{)>c z$q}mdy;(DaFS%}qc3;0T^OsXXkbUP%-OZ&h+jLgZ$8}i^$B4AXcZ`|HV^WIcxN)^q zt+~qJZDZ;)R$%JHgjdoUs6n+SCeSoLh~YK2-A9ibL7h5O2GC}HgWsrQXuf<#4RL~k zm#Zw05Nb)aK5sPd)GC@%h;x-UnDL}byVfOI8g@CRbI@+gd~I;vD8x=u64qr|T_yWS zaU^jd9m|Cq)MriQQhVLzhNeIgZd2k$MQKG*W(B~Cv+V>0c5|CW=CnXO>kp!N6i8M0 z!|RlO^4()?wd=*I9UnoHd4(4CTbAkUg?L={#{cF{D3Xeno37}_AITuhziAMQv2$S& z*1d{~#kq|&QR}Hot4DeeE1#n!Tv@HGNytSLBrUW68CWP@n(vDY7DYEp1tBWNrFB`7 zu19J&|M|81SH7OQ+pkOIM5c3l3j?~^gGL%O@_&?-(5wczqML9uv7G%-kW5gB?i%T4 zO>SV?XP4Nr_DUKVv1k#C5y)s9)3K~lQv9wwC;8Mm`Ve%};(L*zrG7pTnw0Id!4)l5 zl2+n%shpN$I&08EAq0LPhcx3eUC|Fn6FVAzZB9@~goal*q2C%*YbA~Jp4qDY@Bk#ZDd8e&(la!1#E}3H=)cTRJc$+ovvRgY{IEr`249 z(bMo+*ogtRGDyt}S*&qB&>tJ%wi|&(0I%eNcPnW!6VY20+R9lo9tk|k%-)D)-LwmV zGX;qxP(e8G;1>THd|sw-x}jI{Gj>$6aO~BW^Yx9^KW&~jBZE#P)Q=FCD8;0(hNS}rF>u26BN87DR{fSW~rAT zua*)jS4cG6%mV8xE-zDJXXw_fPbzTUoV zfoiC64d&Ib)-)D`;2&8asHJg{1?P9GIR91!Jz=TA${eNfnDYzAw_sHzTE zZ=OgAh0C2^z8(%5p?2`;CEz}3bk&lBf{?F3n2Jg$SbB;;9T%Y>lUgVuI=4=BlykFq!D`{yCh$Y zq6@oX6Mw7xjix@i1rIFZyxyk;=O41=8&XQ?6X1VQW4rTrU3YwTBhbo8V)G*mirVen*YlyF+v%o_BMr%k!qo* zll~}Zpo1I*9+KCrFMm>4?}W?D9BdPe)+ek{B8kB7#S6*n&_iL_9VOB_z%4b1T9_~H zP|0`U-)P(MT7F>r;{=6RyC3<~wO38fwH&Hf9+}o|@(a=YVv|cFXPKIMzavcNt2iZ> zj+#P%IvElh$N4ZR-z{nT{gwd6c7J5r)t#Jx!eTW77)|-k97%_nj#+fIgbdVtStfE`LapX%9>lOcv&}YY;&%T0N3qe~B~; zAcWiJ{f`vLT@Y?-f)J3O-u)yz@$lZ_eq1;C&UZZ1m03j?B>Te0{t+Jg?9bZP_$y85 zI^gy3w-5%<08~#<@XW@`dNb0APFBI-j433~+q|C;tO6)bQ0NAK)`<7>h*WZcNjn-m zXh@>X?%(ioF>Zxqq~!;ba5`vmZhoJCwCA}K#qEdobpK6+_+oHej~a_JaB;Y9uY27N zA!zZnF;xX8(S(gkg|Ao|JTAtQ87Zb!sb7AK_WYY16SXctqU^)y>QW8x>Tp4+6p-qATg1qpMJIwxOQ@i+a1^Tb1RW)-?VRc*7me7mT@f4PCupYb@|qzVuRuo5r!+A_F|26(GKVJ=RX+(mZeVb8oNea3&L4 z3kX(R`W4sIUe;pvoX-e&j8Po06?^q3gxAbw#1Zc|#N02-*=nxH>6;42lbXR}heE%d zQ!Nom#oghOyu?v#uzY~_LYb7(z!y>1!FQ;>D5{y(6+Ui!*-4D*4XD>duav=8m=fVs zL|5B9YM05u5>2dsCL(|Qv;k~a*2mUbYC|gOp~);1WAQwsf{ISM@&D3ijH-Ge01%_r z5LLa?5-jF8?H;)IpoRp(# z7iWgUfK~~i=IkW}&~Z7h8E5JE5hp0*48#3p;CzQ)dB()^Af<>b8|u<4fY@tLYQnd+ zbHXnmeE17&&_&>nLQo(bdc$kxrmlwu?&=1B+G8mo5rD1gi?;!-Z7T3x*hMazt`_vf zZs9js$OYA@g>>Nhnkg-&uZmXRe%tlWy6nf*Hk;kor~)+w zoJtapn=hm#-BH1uu)P&7l1Go}hAGXZhW}0`dlQMfmTC758{uv5zsUNK&W{{vIfV{q z-SD};_~I_i*J2f}@ze;h$LGh~MLf6r5(TRiz-GYunWE~K$Qi0(6;3s!< zMSD{8m(LKw)C;~_2n#w6t&-x4x)g!JC&IJvGV{Mw_&4o?eR@zjUiUl}*fH{Eno;4w zEnvW{%b)e4%@FI6(^UzSUyYqs)DX6QYXAG+p=zq-RTY3vlGCS=WbxYCB-E_9=2S1H z;o&*xJT`ZG{|m6DiDDs!sfK_e%yBl4(k%K6(89&i*;h)3h8PcN4lfjfw~J{ZuX<%w zV13n6f8Az90Hk60e>K~ejZ>9Ag4xmRK87N1szr-C{HKmVv@YDBeh~r}SB31y{8^lE zkE>Ly2Orsj)PpN<3v<`x1ceg6$g;|~S%avpk~@KU+?5j)>Z;z(7oZDvgdYo2gqdN$ z2I^{)gX;Bj3*yZUOSv{ZdGV{*7$o8vrMtd#eP6-DSEyK%l%k3(L@_~u?Jk9nSyz#p zWgUNNDF$m?iAJ)c?gnOZ?pc&K28@vier5!+ac({q7R+={__geTEtC#3i znA=U1c-!ttTe#3}5ULl1D`))Pz1O-$;BW!BeRH->`ry7bY3L{`auXrEEPnMV(`fVb`^lL9l~)o8!LkMrRPq-o*$jGK`$)ESPcO$&O$of zrXsHdcB|mKz;29JL#l}LuGaZk!&E?sQX&C%9jdhe9aT4lkx(GOkCtF64{-a0{7YVv zs+&ZtvU{v`f_nvgmQp_ej9}gE&CYjybo-hCYA1x(O2Mw1@7!&-(aW$g1=a2M^tMYe z;v4xZpP-<9jKyr$o2C7$%k}Flm(KI1xxK(X{(|QgT;T)_qp&5+p33n@{vsMZ31I{wSzdPZ2 zH)-K3ugIlYSBQp97-t$LT!a@X*uzX^29}8v6!`8kIiTuPj|Ua*O=5^9yE_eQPs0G+ zmFmBGOTT(RhTtwRd%|mBF6yEuDsQC2nGSsvp({34Oi&;J!F=8!Jp`Lz3g!)bXU)Hj z6;j2R(m~)3C?^6kg7~q|{&Yn&F+yb$#?9XtupCb0J2oSRgGVVHT&^X7wJhzt!N;5tMVQ|)>&gb(2$ic9S3i{I{u>rAhzLExH%VX+_ z^AT}Nh%0;hsqz8xStTf$$IWHW87({y-O&K;zO`;Z&{h9`#2CpN3}n$%4m?-|2rm5t zp$2yPtFkl_AX~Rtvp&$eX9$F>%I*llTN6^fCf zgV_XyRCNc{pPtiw4q3lw(n{;0E@)wVm(GBCNBI0U8dnJ2p&=!KE6h~d?ulE04sS{n zPgKQ81@|zX)2YT$`B7;Vq3EzC)p|={Lk!UWaZTt!6$&~C&$ONOMJ9(kwyb;YVGN`s z6)BL#dIRQxhe7bjH||3wKvUWVIJ#^~52#GrYOHnT{Ms?tY@XPt(YHkbO(0GmC*wh` zMPuJk393w?E757>W#UQjX;MhujG)Abp)Pe{J}>y2+nQmA3J~mtv$I z)vqMb>@)F4#mysgIa<36d^)YQ$Y^Y60(NeA18keT0)BPsr?7DDtZ1K|kB>v=Hw*#X z&LUFq+b>^27Gkl3#ws&d71^tnK|e#;cWRuCROcW^+OTiYXsV z?Q!9$nc@pVo`iAg?*;|~VI4~$?|vX(?V5fAY#7~K8jj$bTo^!B_aWFgJ$Jx>>W1R2 zw{CMj={Sy&OCD9wjEa2+-o}3(oj(W{j&IM-IypQIZ{6~1X8!>=F!wT?ZJcG`^L;V% zm@h6CzUyc*2|=Tiu^1XvCNyGzj71*!*No64eE2r^uAFz-)ho8!7hrd~^yyk9s&{_& z@q_S#ZyaoUxmE-$2BZXNRrHMb`<{ay-~v2VfV2^k)m_Zr@X!cs8^7ErgUex9m0@sd zamFZ#d5Cry^(*`2LdEX!mR=)yU$r~l^Bf0Bhg2)i3+zVnJ)ww^O;Cv1Ps%7hL4nsw z?>+r5aOmuQxN5^&V0?HYJO72_m%zr+EpYVgL3nL$pO~P)UuvdVutJ=jp*@x4kc<;e zIF}zDg|kKrFSL;#e)jPL_7BO;9@=a`ywPf9T>f;u0GifT#t8}d_tK9}+BY{Wr-};w zT8uZKwG*n9C>B9H1|aH+V+=C#m;Fi4&NG9U00Zv$i^jIY71LK&f_C0mb^FfzivjP6 za9{wg6(CB~H){q^KL}%~QE{*a9?%g*hc&fty_GaP*un}0VTZdwZoR}?z+OlUz(V>u zOlY91n_W5$KRxjeaDlnmmrm}?K#V5OrBgfM!inwh+U!27jagI*A|m4wv?N#>nt~Nl zsKltEJRUE0$b6l$;jCc`;&w|dQ6uA@1GDpu-J)<)_76dgfJQBipIFGST56*agr{c~ z>?eW~bK3ZM+W&5Q5%dC4>Ss)i`Yk%v8teEJ!o-4LCaF9E99na~EGilN+-Uq-4Y_-FEckkCF{2se|XE-h49Mkube;3&L1^=WD02l z0b>>^gfx5lRKPx_M-0o2*b1%rWq_CyfdT(WL#MROgScw3a=U%=XlU=+jZ~fw=j3ua zv@ZgWqQD3J++EjxVa4i@Ck$Xmwef3}1nLmT>UJ-BLHLOb!0tB%O;ym){Mhl~NekMN z8%BgYwtw~|3t(VcJqEUz^{BX+M$73qE+=Icm4X{d2y$snzhZK6m@FJEHq^xGoM?>oRxMSoq z9vK=ne(hzj-2^$C`L(YbUO8z#!|BAZh^PJN*m=N%IUd7=2{!;p5iyfrd0wwW^=1`m z4^%A~pASiqC=@rDcCy!QMq=wxF(w4gLS{h;(m1t2FHCs5| zw<9yw>k%u&cNo7Gt+EoKUyGnUGJhaFwe2J0Ma?H7fHa8<=La48305=*xT>jkq2_#E zHk9~1L9pgm<+n$Tnwm#RU;c|?ebXT`2D~TC9|EboIi?r$wdR-vmKh!>yaq+GY-zYPXU)=d0`JImqlJPcsHAtIOFDg=a z0P;zYI)&^ac)%e50eB}$-VoL|Jz(@3jw~FoCeLLiaCOmmzF-=H_?nGxwG#HVxxGen z&lfI&J^x_R#B)+uKWJbE+Cln~hX zhX6iea>ya5#RlkVr^SNAk2}1ykoFrd_wK%QydFg006&X>IYq;@e02dP2|_l?uCQKL>A5` zC{d`R6LqiIx#N=rn_d)S4_21~Ze_-!e1D3r%kj19g4RWvPG{F-bHG{( zN9~13OfS(hS4=~*F@Y0i$kZG3q+LgAejWP5c&{*ZhJWFu=kXQ^p&UU%LOW`yup1I_ z$P@t5`0zOFo_=GcUyJmrv9Penhf+WMLAn=W)8p3Oilet|s6>gVXxu11SAhGd5Gck%$x%D^);4SD*3|* z;x})8XYhyTjW0w+0@;!}>{q(-2cg*4r7+6_gn%0}hUAC|-z?bt@cNj*KkBQaf<*=X z(TejW{lAx#dY#s^jB(=(7aDAp(MU` z!&_l$WJA`5{NYy(*b&6x0V>FAw^hzp>B8~62AAI(Vw$lqe|XVGr`ICc)Q=i-er>|2 z!3s(4L;CFU$EJhe~|;vcQQdwGRFd^u|92_Mul8k;jCnL&!(asB}9EG4g%p(J&qymx=fl?IOJA>$1% z!di(+qYE%@MbAiFJrVNfB!rr$>PE|Zyrr(l>9{QxOe76cX6Xym|yzYS7%>0@)e(*0(Jr9c}wZtbnfKa=! zU!6+m@U`MTu)grvMeR)K)e2(rYe$v$Ye|?vF3d!+0wfwLU^NOe5WM5Iqj0^dgV6OYjeWdB80OCdyKh*&ZP}?Y4*s4bowvA+oL%hy~T7n1o^g z3kr9UgBhI9d->GvqCXt2&-la0AXuIm#;JKfiansxxiiTVt_Q?1uGMNZrQNKbQDJq6 zXT*h3`dk>ui3gk}liTQc^lP_|Ut#mLRVMODoBG)UCznpd^8zG=KT$(!GWocK^{3?g zn5s;kNlE8~bBj~@?D3wYwa}Oveb=qq;Uo841sCnCH{ZJ};3azHN2lP=fA={!xoncbNi0<3f@81j` zzI!*k@qHISH>j)NCHmX1z6$@(1AE}azGNY{)TU4|i7f;+nU+bvfyaGg&Go_`(0i<*6hp-6?DQu0-jxKFPyG;|wWYN_|8GzHZ#93{pD z@j0ZtUW`j9&+wGX=jjr5k2YGrb~kKl;@2LWcf#{rV@U{bVCUeam5K{T$k-$b8Q&%r z*a!_$1}YOyx^xdz9M8m-Vfdf^o zfLc`mRJLQrOyxrml9@IYKpe~``&Gll@RSW`HS>o#h@nED1jeoqCP8?`%MnAOc4&Gn zSbunBOlg|+GsOH)5-+8ULQ&{sfY4A1@L(PC_K6)f{ZsAN9=EZElc|Z!PfptkGLM=G zKr$d!9mfSu)`X-2kL4tY*WN__)L*=%wqM(fRvf%UWJ=E%Q@X_CMeD>j6p|AllisvR zmBeP~Gn1!M5|_^JkGpvM(w3(5{@FdYstdb_Os=!@@#$<~Uj^u0i!=)F{NZlSTB6k~ zhU|LC5_odz2xJzJgg3A@I>bE^ePvTWS8aGxlaj_oc-d&$!+fe<@@&O&IDVwDVfh#~ zT-gsmo|l(H4nP*iLe4XnynPD(=RdoyYkqAr>KS;6zV*mnc>0l7;rKqB*;93AEA(h4 zHaRhNvJaxr7fVT{$7Fqgjy{p^>mmcX1Bv*Ppy&LP34|trh#cUtJ*AdV8&?qqv-acELrN_b zgi)xQkFI zmrv}1OD1te-e5`2;wi_{!@72nHf;YZEB{20x`zV+Ny|$(!=Fl z#CEJ9x5+?dk{3M-e)xSz1-83Z z5@PNgsl|~7{EC@|gfGfLQqFBU2eER`1QUN^b( zswHjG=yv6EX6iE-Dj?em1BQ1&_kkUgM#q&$HVK9;JICO*$KKKtzn0P7AqDqs8dG24 z8&#>L(ZsiTQ+gNlh#r6N1(RBO73OE0_DFAHB%w3vaX+`dyhIf~P{yI<@2Fi|cTaFSiplFf9NuVpsMU233C4?g*7H-RruPWUck;cNVxW6~pErJ{_kOLR#|>~lYfR+5RSjB-G6b;!Fq+c0K#vGP z{J(za|8u35!2KA1V|B7kClAH$0MS+!r|XQVi^mHSJJ#Z=lsWtx4DqL(BfRk)m8LXC ziBbE!GW!x6rpm`#!PF_RQbEO!%|R0Ez$7r2UuO=2GSJcDxMJ$6CMAt?7PKdqW^w^V zL*u0QMkR$;aw++7z|wK@eu#UMf!_Z}1mra)U;B}}ukNjhocOiPs3mxb`e90wKkQOV z;P0YG1!)WADzez=)G{1O~qI3W7x&BHCol z2_Iwv%kKy=4v2@KU;BYOcJ$h>#hmT^Reo(VS~hr*`sok<;H$3-Emx#A8B?@Pk7?CM zJ7%2U=KSHSU|S1+_!abrc~Gl~c?hli!8VC0+NS+szV_1bD~vF@vS~>pUITvSLd}CK z+;93_03mRYGtehvYD%pHEh7{fZ@>8>_`N@UNa$&9@ zG5^a35*ArpXY#clx##Mhr+&<^Kh=(3+l*>~m#9Df@P6YD?}20c;`@l2DpBv&@!|&l zaOp_z4FhB*IwZwITAUZMK4X9B;4U7!)JA3}TKK~Uaq6MpR>|~iKY&zn0CK?t8R+uI zvHOw^75!Q?`KwYt=-0k({My&&UN*_8rK~VUo=O)jrqrVmi#32MJWpQPB^5dEP$zBq ziL^D5hv36^U)9r+M)0X01KRtb3)B_x67{3h^4pK>gC`$-B?Ox!u(b4rJeOuGcnF5l zVVl^+`gHzT(pMS*7EBX4hsKB6_cD`Sxpd-6s3K=dzXWG}YAFg92>r#ANEGtfTB)#M zoyng3C7@ZnYwEhDX8s|Y_Ik;`+&mX{vVT5~qzxqPlINxTW-Z$0`aBEZrPXSF8}9$` zJ-d7F*J_im9f$jt>(@4;u7Ve-Z~pLuzk=`oEfl2D%}rfimRLG$+t_6-O=*13 z4mYLQDIquFQ?&}RRyY9;n#R{|cuUigM)YeB&A$d93Pk7}g;hd?d~5<#eqU7HJ~|*$ zi)OW(Y0w=z-PCPtH)u5XvM%w)DM67n~&^;Cm(qQj=#)aC{6c&I zN$O|0wBq1JvZl0xyUcyP6M95wN`K?Q7o91sZdfM~v+JvR&7T+M`r;@1+7w@c7WTxCq;YM=Xr%|ZXnoMSGt zx`7FRs-VJ=Ay21xmf>IqkO435x6vW|c!Aw1lvz069nv z$u%?n;EN4JpOtM8*Ce-Z-8lyT`LVb4+OM4%G8SbzRj*gn7w{4tKdZ@<-UU6PuRr*L zE48$Y!)-9%AYsDjYl2k*ENerpv?)$0}Y6}(9OGNr%qfboZIsU;MHpgF*D%|Hz+CwYth^3@;2`54Ia zvBZ;%8ST5X4SyKT>2rF?rhYDKk@|Vz%ug-gVM7Gp&7`|j~&W+F`LJ3Sxi^)WvqXqMxe1gD>j9v)yRmX8v$W=-0kB@9L))8;i}a zrQ+O8+e7oVvbdzZV`%>cCSQBA0qts^s@E%8b>JoPrIzRqZ-E{VYGIr|jElsR-Xn6F z7>dkQxi6T`>E!v=#|z)ukEGccFzs{M#FcR6vdPz*xD^rj!t%MDylHk&X z{eB;h35Yhy`7mGmn|JK&wO_j;C5_#rRSRCEe)+?X+x+lrZbK4PjXt3JD87{rxZkU@ zfEQK zc)ZBF0{2ttl&u9BB=_$6n=gj{X#Co>G*z!xw5q{NMv1svT+ z>rFY13XF=Ik}CTcXNfanc)-SyE^Umx1V57t1I^D8UYiN>>_8!&&7&8YQz-Hw*gz#YK zW7oSQzyHhEquGh1 zrIjm4C17shD~8DewqKoqKIx~jKL?~(*Br;mn?w`1Svys<3^>K(S?=5K$nHyvvE!zj z@43qOwYvv?ZJV^_z)RFGfB0+0l>XrphYFJ!=pP9lQMdt;e^rIwrxGx6kl5d$NF?Gr zdp~ZX$a7;Ln$PkaaRc{3ivi;F`U=;}uL~f*FF1}jnAFc7{KebW%~ZW!(V7J>kpc0I z2Ebo}KAF;7IdV`|S%v_);^9gu?oYS0epG2c&8hZGtz|yCR50m+ z#^-T?3wKVyA3XNL{;IFFCR18&YO9e}Ets1gA@2RcB@WIdQgpb{QE%cC9MM+~f zY2APqsb5nMAAjHl_`9#Z7R&n5+$9tkyb2K|ZdX+*l(zxMU%JEghemun9MDP%8+Km) zh6VsxCJO1?NJvyXyKX!V^R*va=Tr51Me7Q@ME&xI|F_@$XW0LvQ*mPww8~bnVB2Dv zh8>HPtXLuZ-@@Vma$+qzLiz7H^*@;(&5z*yv+HEG0RypOf<@etjmTqIstle#&OOO|eGl{TFK z5DtReTGoZ_&5o%X#|~b?Xnm3Qb@BRrMIEKv-&1 zwGWycvz&9c>W_9Aq4J(vFSjQ0prmnS>AV3iQ9s`D@bZsN!o$WNK1K`T6}4O*=xX|! zPJkSMzTdXqpir=X%g4zeRGciKnP2XXMSr&Ee(frps@E$z@4!pcPk-3fOLPA-@jF$v zN(E%#N?-lSJ4kDxsXagv9Lu8OP5MZ*ZVa3OOl}^AkN?S=;Jt&XdOfA{7Q96Lc*_HU z7^&$S0C`ZVFbTf-+XG9-gWZr$LT~{r=a7qc53}v1ey6sM*f$US_MoJ(FLd667pZUl z@Pp1DPEF}%08N*e$&L}4n8M0B)6RA24aPM7^kZ-Dy?AUNXseO`%V*7WzeIxv*KYR0Fs@^J~0eB14FMs%P>km5+ z2Ot9EvxJC*0`{5PLQdE9QSg!dam5MpNjo%)KYI7IeVM9vzNCJZO9Sv$P`{=gVrmH| zKE%oOkk=ZA5)1Y#DC#6)90E|{XI4y+gF0^dEnCufUGGa8M~#U*0Bt1=z}tfQ7?g-YTU5c-y4o z^ZFKZv%UzuHl&Ra6hoxPsm`U7{N`WkQbk+dD`e{2=??UJy?Hy8ZU%%cyuoh_m z-epq1rXGIlk-czcW-)(YN&Yo#(|o6IkodvrF=!TJIpbie-rAr6csrnerk1|2DqO+pGq3LNdxfKAfH-7Q~DO@5g~}b@Sz{X z)KV7AlHd)$0g5YVV9MuX_go8a>ZOT1@N2t51Mqf%`juKjO?=e&!*P-JLPL={iXgve z*ChO>KY80QtRnl(P~Hy_<&(o3$?Qo6W2njArkX7O*|vAg#r zjSaYe;MaDS2H@>7_0J#vrP0Q(#t9632^((Uhb?GkNWoo$sd}rA2H;(#)Q|jdLW8M#tDFYlUB%QlQ+iO+ zxF%=--Zelyn|e6#Yu6MFz`KTM1x@KeN#h!%0eIIS`BF=K>){rtNrRHcwMzr=u2HJ( z4-fp>HBSTZu5s$%Ef0f|#sLjzH4*y5GxK_n`O_7D$I;w|0S#zCtCJ9*DR7UU)eqS> xKn!R=16tjLrnLF{^2}NNl=-|72DC2e{|AZuhdgqMrz8LX002ovPDHLkV1n>3Y!(0j literal 0 HcmV?d00001 diff --git a/web/src/assets/svgs/icons/polygon-balance.svg b/web/src/assets/svgs/icons/polygon-balance.svg deleted file mode 100644 index fb42fcf8f..000000000 --- a/web/src/assets/svgs/icons/polygon-balance.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/web/src/assets/svgs/icons/voted-without-commit.svg b/web/src/assets/svgs/icons/voted-without-commit.svg deleted file mode 100644 index eabf73641..000000000 --- a/web/src/assets/svgs/icons/voted-without-commit.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/web/src/assets/svgs/icons/voted.png b/web/src/assets/svgs/icons/voted.png new file mode 100644 index 0000000000000000000000000000000000000000..55e0f28b89949e0e5bf18b781d91f3931c1f5bd4 GIT binary patch literal 25021 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 { +export const getPeriodEndTimestamp = ( + lastPeriodChange: string, + currentPeriodIndex: number, + timesPerPeriod: string[] +) => { const durationCurrentPeriod = parseInt(timesPerPeriod[currentPeriodIndex]); return parseInt(lastPeriodChange) + durationCurrentPeriod; }; diff --git a/web/src/components/Popup/Description/Appeal.tsx b/web/src/components/Popup/Description/Appeal.tsx index cd9f4f839..e994b96c1 100644 --- a/web/src/components/Popup/Description/Appeal.tsx +++ b/web/src/components/Popup/Description/Appeal.tsx @@ -40,7 +40,7 @@ const Appeal: React.FC = ({ amount, option }) => { return ( - You have funded  {amount} ETH + You have funded:  {amount} ETH Option funded:  {option} diff --git a/web/src/components/Popup/Description/StakeWithdraw.tsx b/web/src/components/Popup/Description/StakeWithdraw.tsx index 42b87362c..960d817b8 100644 --- a/web/src/components/Popup/Description/StakeWithdraw.tsx +++ b/web/src/components/Popup/Description/StakeWithdraw.tsx @@ -70,9 +70,10 @@ const AmountStakedOrWithdrawn: React.FC = ({ pnkStaked const StakeWithdraw: React.FC = ({ pnkStaked, courtName, isStake, courtId }) => { const { address } = useAccount(); + const { data: jurorBalance } = useKlerosCoreGetJurorBalance({ - enabled: !isUndefined(address), - args: [address, courtId], + enabled: !isUndefined(address) && !isUndefined(courtId), + args: [address, BigInt(courtId)], watch: true, }); diff --git a/web/src/components/Popup/Description/VoteWithCommit.tsx b/web/src/components/Popup/Description/VoteWithCommit.tsx index 26f55658a..789840385 100644 --- a/web/src/components/Popup/Description/VoteWithCommit.tsx +++ b/web/src/components/Popup/Description/VoteWithCommit.tsx @@ -7,12 +7,19 @@ const Container = styled.div` `; const StyledDescription = styled.div` - display: flex; margin-bottom: calc(16px + (32 - 16) * ((100vw - 300px) / (1250 - 300))); margin-left: calc(8px + (32 - 8) * ((100vw - 300px) / (1250 - 300))); margin-right: calc(8px + (32 - 8) * ((100vw - 300px) / (1250 - 300))); color: ${({ theme }) => theme.secondaryText}; text-align: center; + line-height: 21.8px; +`; + +const EmphasizedDate = styled.span` + font-size: 16px; + font-weight: 400; + line-height: 21.8px; + color: ${({ theme }) => theme.primaryText}; `; interface IVoteWithCommit { @@ -23,7 +30,8 @@ const VoteWithCommit: React.FC = ({ date }) => { return ( - {`Your vote is confirmed. It's kept secret until all jurors have cast their votes. You'll need to justify and reveal your vote on ${date}`} + Your vote is confirmed. It's kept secret until all jurors have cast their votes. + You'll need to justify and reveal your vote on {date} ); diff --git a/web/src/components/Popup/Description/VoteWithoutCommit.tsx b/web/src/components/Popup/Description/VoteWithoutCommit.tsx index 3f706992f..a5b445130 100644 --- a/web/src/components/Popup/Description/VoteWithoutCommit.tsx +++ b/web/src/components/Popup/Description/VoteWithoutCommit.tsx @@ -7,12 +7,19 @@ const Container = styled.div` `; const StyledDescription = styled.div` - display: flex; margin-bottom: calc(16px + (32 - 16) * ((100vw - 300px) / (1250 - 300))); margin-left: calc(8px + (32 - 8) * ((100vw - 300px) / (1250 - 300))); margin-right: calc(8px + (32 - 8) * ((100vw - 300px) / (1250 - 300))); color: ${({ theme }) => theme.secondaryText}; text-align: center; + line-height: 21.8px; +`; + +const EmphasizedDate = styled.span` + font-size: 16px; + font-weight: 400; + line-height: 21.8px; + color: ${({ theme }) => theme.primaryText}; `; interface IVoteWithoutCommit { @@ -23,8 +30,8 @@ const VoteWithoutCommit: React.FC = ({ date }) => { return ( - The decision date is {date} with the possibility for appeals. After that time you will be informed about the - jury decision. + The decision date is {date} with the possibility for appeals. After that time + you will be informed about the jury decision. ); diff --git a/web/src/components/Popup/ExtraInfo/StakeWithdraw.tsx b/web/src/components/Popup/ExtraInfo/StakeWithdrawExtraInfo.tsx similarity index 83% rename from web/src/components/Popup/ExtraInfo/StakeWithdraw.tsx rename to web/src/components/Popup/ExtraInfo/StakeWithdrawExtraInfo.tsx index ed9167830..5ca4b4169 100644 --- a/web/src/components/Popup/ExtraInfo/StakeWithdraw.tsx +++ b/web/src/components/Popup/ExtraInfo/StakeWithdrawExtraInfo.tsx @@ -10,9 +10,7 @@ const Container = styled.div` margin-top: calc(8px + (24 - 8) * ((100vw - 300px) / (1250 - 300))); `; -interface IStakeWithdraw {} - -const StakeWithdraw: React.FC = ({}) => { +const StakeWithdrawExtraInfo: React.FC = () => { return ( { @@ -21,4 +19,4 @@ const StakeWithdraw: React.FC = ({}) => { ); }; -export default StakeWithdraw; +export default StakeWithdrawExtraInfo; diff --git a/web/src/components/Popup/ExtraInfo/VoteWithCommit.tsx b/web/src/components/Popup/ExtraInfo/VoteWithCommitExtraInfo.tsx similarity index 56% rename from web/src/components/Popup/ExtraInfo/VoteWithCommit.tsx rename to web/src/components/Popup/ExtraInfo/VoteWithCommitExtraInfo.tsx index c464e1c92..199264b3d 100644 --- a/web/src/components/Popup/ExtraInfo/VoteWithCommit.tsx +++ b/web/src/components/Popup/ExtraInfo/VoteWithCommitExtraInfo.tsx @@ -4,27 +4,30 @@ import InfoCircle from "tsx:svgs/icons/info-circle.svg"; const Container = styled.div` display: flex; - color: ${({ theme }) => theme.secondaryText}; + gap: 8px; text-align: center; align-items: center; margin: 0 calc(8px + (32 - 8) * ((100vw - 300px) / (1250 - 300))); margin-top: calc(8px + (24 - 8) * ((100vw - 300px) / (1250 - 300))); - font-size: 14px; + small { + font-size: 14px; + font-weight: 400; + color: ${({ theme }) => theme.secondaryText}; + line-height: 19px; + } `; const StyledInfoCircle = styled(InfoCircle)` - width: 16px; - height: 16px; + min-width: 16px; + min-height: 16px; `; -interface IVoteWithCommit {} - -const VoteWithCommit: React.FC = ({}) => { +const VoteWithCommitExtraInfo: React.FC = () => { return ( - Subscribe to receive notifications to be reminded when the reveal time comes. + Subscribe to receive notifications to be reminded when the reveal time comes. ); }; -export default VoteWithCommit; +export default VoteWithCommitExtraInfo; diff --git a/web/src/components/Popup/index.tsx b/web/src/components/Popup/index.tsx index 1557f977a..626dc52c3 100644 --- a/web/src/components/Popup/index.tsx +++ b/web/src/components/Popup/index.tsx @@ -3,18 +3,54 @@ import styled from "styled-components"; import { Button } from "@kleros/ui-components-library"; import { useFocusOutside } from "hooks/useFocusOutside"; import { Overlay } from "components/Overlay"; -import DescriptionStakeWithdraw from "./Description/StakeWithdraw"; -import DescriptionAppeal from "./Description/Appeal"; -import DescriptionVoteWithoutCommit from "./Description/VoteWithoutCommit"; -import DescriptionVoteWithCommit from "./Description/VoteWithCommit"; -import ExtraInfoStakeWithdraw from "./ExtraInfo/StakeWithdraw"; -import ExtraInfoVoteWithCommit from "./ExtraInfo/VoteWithCommit"; +import StakeWithdraw from "./Description/StakeWithdraw"; +import VoteWithCommit from "./Description/VoteWithCommit"; +import VoteWithoutCommit from "./Description/VoteWithoutCommit"; +import Appeal from "./Description/Appeal"; +import VoteWithCommitExtraInfo from "./ExtraInfo/VoteWithCommitExtraInfo"; +import StakeWithdrawExtraInfo from "./ExtraInfo/StakeWithdrawExtraInfo"; +export enum PopupType { + STAKE_WITHDRAW = "STAKE_WITHDRAW", + APPEAL = "APPEAL", + VOTE_WITHOUT_COMMIT = "VOTE_WITHOUT_COMMIT", + VOTE_WITH_COMMIT = "VOTE_WITH_COMMIT", +} + +interface IStakeWithdraw { + popupType: PopupType.STAKE_WITHDRAW; + pnkStaked: string; + courtName: string; + isStake: boolean; + courtId: string; +} + +interface IVoteWithoutCommit { + popupType: PopupType.VOTE_WITHOUT_COMMIT; + date: string; +} + +interface IVoteWithCommit { + popupType: PopupType.VOTE_WITH_COMMIT; + date: string; +} + +interface IAppeal { + popupType: PopupType.APPEAL; + amount: string; + option: string; +} interface IPopup { title: string; icon: React.FC> | string; + popupType: PopupType; + setIsOpen: (val: boolean) => void; + setAmount?: (val: string) => void; + isCommit?: boolean; } +type PopupProps = IStakeWithdraw | IVoteWithoutCommit | IVoteWithCommit | IAppeal; + const Header = styled.h1` display: flex; margin-top: calc(12px + (32 - 12) * ((100vw - 300px) / (1250 - 300))); @@ -26,6 +62,14 @@ const Header = styled.h1` const Icon = styled.svg` /* display: flex; */ + display: block; + min-height: 50px; + min-width: 50px; + visibility: visible; +`; + +const StyledImg = styled.img` + width: calc(150px + (238 - 150) * (100vw - 375px) / (1250 - 375)); `; const StyledButton = styled(Button)` @@ -34,10 +78,11 @@ const StyledButton = styled(Button)` const Container = styled.div` display: flex; - position: absolute; - top: 5%; + position: fixed; + top: 50%; left: 50%; - transform: translate(-50%); + transform: translate(-50%, -50%); + z-index: 10; flex-direction: column; align-items: center; @@ -54,22 +99,65 @@ const Container = styled.div` } `; -const Popup: React.FC = ({ title, icon }) => { +const Popup: React.FC = ({ title, icon, popupType, setIsOpen, setAmount, isCommit, ...props }) => { const containerRef = useRef(null); - useFocusOutside(containerRef, () => {}); + // useFocusOutside(containerRef, () => { + // setIsOpen(false); + // resetValue(); + // }); + + const resetValue = () => { + if (setAmount) { + setAmount(""); + } + }; + + let PopupComponent: JSX.Element | null = null; + + switch (popupType) { + case PopupType.STAKE_WITHDRAW: { + const { pnkStaked, courtName, isStake, courtId } = props as IStakeWithdraw; + PopupComponent = ( + + ); + break; + } + case PopupType.VOTE_WITHOUT_COMMIT: { + const { date } = props as IVoteWithoutCommit; + PopupComponent = ; + break; + } + case PopupType.VOTE_WITH_COMMIT: { + const { date } = props as IVoteWithCommit; + PopupComponent = ; + break; + } + case PopupType.APPEAL: { + const { amount, option } = props as IAppeal; + PopupComponent = ; + break; + } + default: + break; + } return ( <>
{title}
- {/* */} - - {/* */} - {icon && } - - {/* */} - + {PopupComponent} + {typeof icon === "string" ? : } + {popupType === PopupType.STAKE_WITHDRAW && } + {popupType === PopupType.VOTE_WITH_COMMIT && } + { + setIsOpen(false); + resetValue(); + }} + />
); diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx index 3888b2b25..12ab41015 100644 --- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx +++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/Fund.tsx @@ -42,7 +42,13 @@ const useFundAppeal = (parsedAmount) => { return fundAppeal; }; -const Fund: React.FC = () => { +interface IFund { + amount: string; + setAmount: (val: string) => void; + setIsOpen: (val: boolean) => void; +} + +const Fund: React.FC = ({ amount, setAmount, setIsOpen }) => { const needFund = useNeedFund(); const { address, isDisconnected } = useAccount(); const { data: balance } = useBalance({ @@ -51,7 +57,6 @@ const Fund: React.FC = () => { }); const publicClient = usePublicClient(); - const [amount, setAmount] = useState(""); const [debouncedAmount, setDebouncedAmount] = useState(""); useDebounce(() => setDebouncedAmount(amount), 500, [amount]); @@ -79,12 +84,12 @@ const Fund: React.FC = () => { onClick={() => { if (fundAppeal) { setIsSending(true); - wrapWithToast(async () => await fundAppeal().then((response) => response.hash), publicClient) - .then(() => { - setAmount(""); - close(); - }) - .finally(() => setIsSending(false)); + wrapWithToast(async () => await fundAppeal().then((response) => response.hash), publicClient).finally( + () => { + setIsSending(false); + setIsOpen(true); + } + ); } }} /> diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/index.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/index.tsx index 657f6748d..59aca20f4 100644 --- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/index.tsx +++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/index.tsx @@ -1,15 +1,44 @@ -import React from "react"; -import { ClassicAppealProvider } from "hooks/useClassicAppealContext"; +import React, { useState } from "react"; +import { ClassicAppealProvider, useOptionsContext, useSelectedOptionContext } from "hooks/useClassicAppealContext"; import Options from "./Options"; import Fund from "./Fund"; +import Popup, { PopupType } from "components/Popup"; +import AppealIcon from "svgs/icons/appeal.png"; +import { isUndefined } from "utils/index"; -const Classic: React.FC = () => ( - -

Appeal crowdfunding

- - - -
-); +const Classic: React.FC = () => { + const [isPopupOpen, setIsPopupOpen] = useState(false); + const [amount, setAmount] = useState(""); + const { selectedOption } = useSelectedOptionContext(); + const options = useOptionsContext(); -export default Classic; + return ( + <> + {isPopupOpen && ( + + )} +

Appeal crowdfunding

+ + + + + ); +}; + +const ClassicWrapper: React.FC = () => { + return ( + + + + ); +}; + +export default ClassicWrapper; diff --git a/web/src/pages/Cases/CaseDetails/Appeal/index.tsx b/web/src/pages/Cases/CaseDetails/Appeal/index.tsx index d81c37167..b30c6a24f 100644 --- a/web/src/pages/Cases/CaseDetails/Appeal/index.tsx +++ b/web/src/pages/Cases/CaseDetails/Appeal/index.tsx @@ -1,8 +1,8 @@ import React from "react"; -import Classic from "./Classic"; +import ClassicWrapper from "./Classic"; import { Periods } from "consts/periods"; const Appeal: React.FC<{ currentPeriodIndex: number }> = ({ currentPeriodIndex }) => - Periods.appeal === currentPeriodIndex ? :

Not in appeal period

; + Periods.appeal === currentPeriodIndex ? :

Not in appeal period

; export default Appeal; diff --git a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx index 3930271ea..4d4598987 100644 --- a/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx +++ b/web/src/pages/Cases/CaseDetails/Voting/Binary.tsx @@ -44,7 +44,13 @@ const RefuseToArbitrateContainer = styled.div` justify-content: center; `; -const Binary: React.FC<{ arbitrable: `0x${string}`; voteIDs: string[] }> = ({ arbitrable, voteIDs }) => { +interface IBinary { + arbitrable: `0x${string}`; + voteIDs: string[]; + setIsOpen: (val: boolean) => void; +} + +const Binary: React.FC = ({ arbitrable, voteIDs, setIsOpen }) => { const { id } = useParams(); const parsedDisputeID = BigInt(id ?? 0); const parsedVoteIDs = useMemo(() => voteIDs.map((voteID) => BigInt(voteID)), [voteIDs]); @@ -73,6 +79,7 @@ const Binary: React.FC<{ arbitrable: `0x${string}`; voteIDs: string[] }> = ({ ar wrapWithToast(async () => await walletClient.writeContract(request), publicClient).finally(() => { setChosenOption(-1); setIsSending(false); + setIsOpen(true); }); } }; diff --git a/web/src/pages/Cases/CaseDetails/Voting/index.tsx b/web/src/pages/Cases/CaseDetails/Voting/index.tsx index 848525b56..408646559 100644 --- a/web/src/pages/Cases/CaseDetails/Voting/index.tsx +++ b/web/src/pages/Cases/CaseDetails/Voting/index.tsx @@ -1,13 +1,23 @@ -import React from "react"; +import React, { useState } from "react"; import { useParams } from "react-router-dom"; import { useAccount } from "wagmi"; +import { useLockBodyScroll } from "react-use"; import { useDisputeDetailsQuery } from "queries/useDisputeDetailsQuery"; import { useDrawQuery } from "queries/useDrawQuery"; import Binary from "./Binary"; import VotingHistory from "./VotingHistory"; +import Popup, { PopupType } from "components/Popup"; import { Periods } from "consts/periods"; import { isUndefined } from "utils/index"; +import { getPeriodEndTimestamp } from "components/DisputeCard"; import { useDisputeKitClassicIsVoteActive } from "hooks/contracts/generated"; +import VoteIcon from "assets/svgs/icons/voted.png"; + +function formatDate(unixTimestamp: number): string { + const date = new Date(unixTimestamp * 1000); + const options: Intl.DateTimeFormatOptions = { month: "long", day: "2-digit", year: "numeric" }; + return date.toLocaleDateString("en-US", options); +} const Voting: React.FC<{ arbitrable?: `0x${string}`; @@ -24,14 +34,37 @@ const Voting: React.FC<{ args: [BigInt(id ?? 0), roundId, voteId], watch: true, }); - return drawData && - !isUndefined(arbitrable) && - currentPeriodIndex === Periods.vote && - drawData.draws?.length > 0 && - !voted ? ( - draw.voteID)} /> - ) : ( - + const [isPopupOpen, setIsPopupOpen] = useState(false); + useLockBodyScroll(isPopupOpen); + const lastPeriodChange = disputeData?.dispute?.lastPeriodChange; + const timesPerPeriod = disputeData?.dispute?.court?.timesPerPeriod; + const finalDate = + !isUndefined(currentPeriodIndex) && + !isUndefined(timesPerPeriod) && + getPeriodEndTimestamp(lastPeriodChange, currentPeriodIndex, timesPerPeriod); + + return ( + <> + {isPopupOpen && ( + + )} + {drawData && + !isUndefined(arbitrable) && + currentPeriodIndex === Periods.vote && + drawData.draws?.length > 0 && + !voted ? ( + draw.voteID)} /> + ) : ( + + )} + ); }; diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx index f969070ec..a154d1b89 100644 --- a/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx +++ b/web/src/pages/Courts/CourtDetails/StakePanel/InputDisplay.tsx @@ -5,7 +5,6 @@ import { formatEther } from "viem"; import { useDebounce } from "react-use"; import { useAccount } from "wagmi"; import { Field } from "@kleros/ui-components-library"; - import { useParsedAmount } from "hooks/useParsedAmount"; import { usePNKBalance } from "queries/usePNKBalance"; import { useKlerosCoreGetJurorBalance } from "hooks/contracts/generated"; @@ -39,10 +38,19 @@ interface IInputDisplay { action: ActionType; isSending: boolean; setIsSending: (arg0: boolean) => void; + setIsPopupOpen: (arg0: boolean) => void; + amount: string; + setAmount: (arg0: string) => void; } -const InputDisplay: React.FC = ({ action, isSending, setIsSending }) => { - const [amount, setAmount] = useState(""); +const InputDisplay: React.FC = ({ + action, + isSending, + setIsSending, + setIsPopupOpen, + amount, + setAmount, +}) => { const [debouncedAmount, setDebouncedAmount] = useState(""); useDebounce(() => setDebouncedAmount(amount), 500, [amount]); const parsedAmount = useParsedAmount(debouncedAmount); @@ -93,6 +101,7 @@ const InputDisplay: React.FC = ({ action, isSending, setIsSending setAmount, isSending, setIsSending, + setIsPopupOpen, }} /> diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx index 3c94541d8..487f4edf6 100644 --- a/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx +++ b/web/src/pages/Courts/CourtDetails/StakePanel/StakeWithdrawButton.tsx @@ -28,9 +28,17 @@ interface IActionButton { action: ActionType; setIsSending: (arg0: boolean) => void; setAmount: (arg0: string) => void; + setIsPopupOpen: (arg0: boolean) => void; } -const StakeWithdrawButton: React.FC = ({ parsedAmount, action, setAmount, isSending, setIsSending }) => { +const StakeWithdrawButton: React.FC = ({ + parsedAmount, + action, + setAmount, + isSending, + setIsSending, + setIsPopupOpen, +}) => { const { id } = useParams(); const { address } = useAccount(); const { data: balance } = usePnkBalanceOf({ @@ -87,11 +95,10 @@ const StakeWithdrawButton: React.FC = ({ parsedAmount, action, se const handleStake = () => { if (typeof setStake !== "undefined") { setIsSending(true); - wrapWithToast(async () => await setStake().then((response) => response.hash), publicClient) - .then(() => { - setAmount(""); - }) - .finally(() => setIsSending(false)); + wrapWithToast(async () => await setStake().then((response) => response.hash), publicClient).finally(() => { + setIsSending(false); + setIsPopupOpen(true); + }); } }; diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/index.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/index.tsx index 640d2c146..c71a5522d 100644 --- a/web/src/pages/Courts/CourtDetails/StakePanel/index.tsx +++ b/web/src/pages/Courts/CourtDetails/StakePanel/index.tsx @@ -1,18 +1,22 @@ import React, { useState } from "react"; import styled from "styled-components"; - +import { useLockBodyScroll } from "react-use"; import Tag from "components/Tag"; import JurorBalanceDisplay from "./JurorStakeDisplay"; import InputDisplay from "./InputDisplay"; import { ActionType } from "./StakeWithdrawButton"; +import Popup, { PopupType } from "components/Popup/index"; +import BalanceIcon from "assets/svgs/icons/balance.png"; -const StakePanel: React.FC<{ courtName: string }> = ({ - courtName = "General Court", -}) => { +const StakePanel: React.FC<{ courtName: string; id: string }> = ({ courtName = "General Court", id }) => { + const [amount, setAmount] = useState(""); const [isSending, setIsSending] = useState(false); + const [isPopupOpen, setIsPopupOpen] = useState(false); const [isActive, setIsActive] = useState(true); const [action, setAction] = useState(ActionType.stake); + useLockBodyScroll(isPopupOpen); + const handleClick = (action: ActionType) => { setIsActive(action === ActionType.stake); setAction(action); @@ -22,25 +26,30 @@ const StakePanel: React.FC<{ courtName: string }> = ({ return ( - handleClick(ActionType.stake)} - /> - handleClick(ActionType.withdraw)} - /> + handleClick(ActionType.stake)} /> + handleClick(ActionType.withdraw)} /> - + + {isPopupOpen && ( + + )} ); }; @@ -48,6 +57,7 @@ const StakePanel: React.FC<{ courtName: string }> = ({ export default StakePanel; const Container = styled.div` + position: relative; width: 100%; margin-top: 32px; display: flex; diff --git a/web/src/pages/Courts/CourtDetails/index.tsx b/web/src/pages/Courts/CourtDetails/index.tsx index a0fb7e591..7f3958926 100644 --- a/web/src/pages/Courts/CourtDetails/index.tsx +++ b/web/src/pages/Courts/CourtDetails/index.tsx @@ -30,7 +30,7 @@ const CourtDetails: React.FC = () => {

- + @@ -60,11 +60,7 @@ interface IItem { id: string; } -const getCourtsPath = ( - node: CourtTreeQuery["court"], - id: string | undefined, - path: IItem[] = [] -): IItem[] | null => { +const getCourtsPath = (node: CourtTreeQuery["court"], id: string | undefined, path: IItem[] = []): IItem[] | null => { if (!node || !id) return null; if (node.id === id) { diff --git a/web/src/pages/Home/index.tsx b/web/src/pages/Home/index.tsx index 0e9e52d20..04a215007 100644 --- a/web/src/pages/Home/index.tsx +++ b/web/src/pages/Home/index.tsx @@ -5,8 +5,6 @@ import LatestCases from "./LatestCases"; import Community from "./Community"; import { HomePageProvider } from "hooks/useHomePageContext"; import { getOneYearAgoTimestamp } from "utils/date"; -import Popup from "components/Popup"; -import PolygonBalance from "tsx:svgs/icons/polygon-balance.svg"; const Container = styled.div` width: 100%; @@ -21,7 +19,6 @@ const Home: React.FC = () => ( -
); From 923b0af84cf7d3f5d5551ddd960bfc4ae760fdd4 Mon Sep 17 00:00:00 2001 From: nhestrompia Date: Wed, 2 Aug 2023 19:09:04 +0300 Subject: [PATCH 4/6] fix: code smells --- web/src/components/Popup/index.tsx | 6 ------ web/src/pages/Cases/CaseDetails/Appeal/Classic/index.tsx | 2 +- web/src/pages/Courts/CourtDetails/StakePanel/index.tsx | 2 +- web/src/pages/Courts/CourtDetails/index.tsx | 2 +- 4 files changed, 3 insertions(+), 9 deletions(-) diff --git a/web/src/components/Popup/index.tsx b/web/src/components/Popup/index.tsx index 626dc52c3..202b2cab0 100644 --- a/web/src/components/Popup/index.tsx +++ b/web/src/components/Popup/index.tsx @@ -1,7 +1,6 @@ import React, { useRef } from "react"; import styled from "styled-components"; import { Button } from "@kleros/ui-components-library"; -import { useFocusOutside } from "hooks/useFocusOutside"; import { Overlay } from "components/Overlay"; import StakeWithdraw from "./Description/StakeWithdraw"; import VoteWithCommit from "./Description/VoteWithCommit"; @@ -61,7 +60,6 @@ const Header = styled.h1` `; const Icon = styled.svg` - /* display: flex; */ display: block; min-height: 50px; min-width: 50px; @@ -101,10 +99,6 @@ const Container = styled.div` const Popup: React.FC = ({ title, icon, popupType, setIsOpen, setAmount, isCommit, ...props }) => { const containerRef = useRef(null); - // useFocusOutside(containerRef, () => { - // setIsOpen(false); - // resetValue(); - // }); const resetValue = () => { if (setAmount) { diff --git a/web/src/pages/Cases/CaseDetails/Appeal/Classic/index.tsx b/web/src/pages/Cases/CaseDetails/Appeal/Classic/index.tsx index 59aca20f4..995c62ffa 100644 --- a/web/src/pages/Cases/CaseDetails/Appeal/Classic/index.tsx +++ b/web/src/pages/Cases/CaseDetails/Appeal/Classic/index.tsx @@ -22,7 +22,7 @@ const Classic: React.FC = () => { setIsOpen={setIsPopupOpen} setAmount={setAmount} option={!isUndefined(options) && !isUndefined(selectedOption) ? options[selectedOption] : ""} - amount={amount ? amount : ""} + amount={amount} /> )}

Appeal crowdfunding

diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/index.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/index.tsx index c71a5522d..cbf018173 100644 --- a/web/src/pages/Courts/CourtDetails/StakePanel/index.tsx +++ b/web/src/pages/Courts/CourtDetails/StakePanel/index.tsx @@ -43,7 +43,7 @@ const StakePanel: React.FC<{ courtName: string; id: string }> = ({ courtName = " icon={BalanceIcon} popupType={PopupType.STAKE_WITHDRAW} isStake={isStaking} - pnkStaked={amount ? amount : ""} + pnkStaked={amount} courtName={courtName} courtId={id} setIsOpen={setIsPopupOpen} diff --git a/web/src/pages/Courts/CourtDetails/index.tsx b/web/src/pages/Courts/CourtDetails/index.tsx index 7f3958926..dcbe777fc 100644 --- a/web/src/pages/Courts/CourtDetails/index.tsx +++ b/web/src/pages/Courts/CourtDetails/index.tsx @@ -30,7 +30,7 @@ const CourtDetails: React.FC = () => {

- + From c2ce7fdcdcf543554465c2015457e7af4f918222 Mon Sep 17 00:00:00 2001 From: nhestrompia Date: Wed, 2 Aug 2023 19:12:18 +0300 Subject: [PATCH 5/6] fix: code smell --- web/src/pages/Courts/CourtDetails/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/pages/Courts/CourtDetails/index.tsx b/web/src/pages/Courts/CourtDetails/index.tsx index dcbe777fc..82abe751d 100644 --- a/web/src/pages/Courts/CourtDetails/index.tsx +++ b/web/src/pages/Courts/CourtDetails/index.tsx @@ -5,7 +5,7 @@ import { useParams } from "react-router-dom"; import { Card, Breadcrumb } from "@kleros/ui-components-library"; import { useCourtPolicy } from "queries/useCourtPolicy"; import { useCourtTree, CourtTreeQuery } from "queries/useCourtTree"; - +import { isUndefined } from "utils/index"; import Stats from "./Stats"; import Description from "./Description"; import StakePanel from "./StakePanel"; @@ -30,7 +30,7 @@ const CourtDetails: React.FC = () => {

- +
From 26b2cb63c6b4aba7b1395eba011d312a34cd914b Mon Sep 17 00:00:00 2001 From: nhestrompia Date: Thu, 3 Aug 2023 19:00:57 +0300 Subject: [PATCH 6/6] fix: updated icons --- web/src/assets/svgs/icons/appeal.svg | 9 +++++ web/src/assets/svgs/icons/balance.png | Bin 29518 -> 0 bytes web/src/assets/svgs/icons/balance.svg | 11 ++++++ web/src/assets/svgs/icons/voted.png | Bin 25021 -> 0 bytes web/src/assets/svgs/icons/voted.svg | 13 +++++++ web/src/components/Popup/index.tsx | 34 ++++++++++++------ .../CaseDetails/Appeal/Classic/index.tsx | 2 +- .../Cases/CaseDetails/Voting/Classic.tsx | 13 ++++--- .../pages/Cases/CaseDetails/Voting/index.tsx | 2 +- .../Courts/CourtDetails/StakePanel/index.tsx | 2 +- 10 files changed, 67 insertions(+), 19 deletions(-) create mode 100644 web/src/assets/svgs/icons/appeal.svg delete mode 100644 web/src/assets/svgs/icons/balance.png create mode 100644 web/src/assets/svgs/icons/balance.svg delete mode 100644 web/src/assets/svgs/icons/voted.png create mode 100644 web/src/assets/svgs/icons/voted.svg diff --git a/web/src/assets/svgs/icons/appeal.svg b/web/src/assets/svgs/icons/appeal.svg new file mode 100644 index 000000000..a5afa1e66 --- /dev/null +++ b/web/src/assets/svgs/icons/appeal.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/web/src/assets/svgs/icons/balance.png b/web/src/assets/svgs/icons/balance.png deleted file mode 100644 index f86f5015f7a217fda8f74c4a4033109fac543937..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29518 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 diff --git a/web/src/assets/svgs/icons/balance.svg b/web/src/assets/svgs/icons/balance.svg new file mode 100644 index 000000000..25c5a37f9 --- /dev/null +++ b/web/src/assets/svgs/icons/balance.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/web/src/assets/svgs/icons/voted.png b/web/src/assets/svgs/icons/voted.png deleted file mode 100644 index 55e0f28b89949e0e5bf18b781d91f3931c1f5bd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25021 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 + + + + + + + + + + + + diff --git a/web/src/components/Popup/index.tsx b/web/src/components/Popup/index.tsx index 202b2cab0..f9433f1a2 100644 --- a/web/src/components/Popup/index.tsx +++ b/web/src/components/Popup/index.tsx @@ -41,7 +41,7 @@ interface IAppeal { } interface IPopup { title: string; - icon: React.FC> | string; + icon: React.FC>; popupType: PopupType; setIsOpen: (val: boolean) => void; setAmount?: (val: string) => void; @@ -59,15 +59,17 @@ const Header = styled.h1` line-height: 32.68px; `; -const Icon = styled.svg` - display: block; - min-height: 50px; - min-width: 50px; - visibility: visible; -`; +const IconContainer = styled.div` + width: calc(150px + (350 - 150) * (100vw - 375px) / (1250 - 375)); + display: flex; + align-items: center; + justify-content: center; -const StyledImg = styled.img` - width: calc(150px + (238 - 150) * (100vw - 375px) / (1250 - 375)); + svg { + display: inline-block; + width: calc(150px + (350 - 150) * (100vw - 375px) / (1250 - 375)); + height: calc(150px + (350 - 150) * (100vw - 375px) / (1250 - 375)); + } `; const StyledButton = styled(Button)` @@ -97,7 +99,15 @@ const Container = styled.div` } `; -const Popup: React.FC = ({ title, icon, popupType, setIsOpen, setAmount, isCommit, ...props }) => { +const Popup: React.FC = ({ + title, + icon: Icon, + popupType, + setIsOpen, + setAmount, + isCommit, + ...props +}) => { const containerRef = useRef(null); const resetValue = () => { @@ -141,7 +151,9 @@ const Popup: React.FC = ({ title, icon, popupType, setIsOpe
{title}
{PopupComponent} - {typeof icon === "string" ? : } + + + {popupType === PopupType.STAKE_WITHDRAW && } {popupType === PopupType.VOTE_WITH_COMMIT && } { diff --git a/web/src/pages/Cases/CaseDetails/Voting/Classic.tsx b/web/src/pages/Cases/CaseDetails/Voting/Classic.tsx index 01a68ba19..e4e878792 100644 --- a/web/src/pages/Cases/CaseDetails/Voting/Classic.tsx +++ b/web/src/pages/Cases/CaseDetails/Voting/Classic.tsx @@ -76,11 +76,14 @@ const Classic: React.FC = ({ arbitrable, voteIDs, setIsOpen }) => { ], }); if (walletClient) { - wrapWithToast(async () => await walletClient.writeContract(request), publicClient).finally(() => { - setChosenOption(-1); - setIsSending(false); - setIsOpen(true); - }); + wrapWithToast(async () => await walletClient.writeContract(request), publicClient) + .then(() => { + setIsOpen(true); + }) + .finally(() => { + setChosenOption(-1); + setIsSending(false); + }); } }; diff --git a/web/src/pages/Cases/CaseDetails/Voting/index.tsx b/web/src/pages/Cases/CaseDetails/Voting/index.tsx index b880e664c..d9c8ada77 100644 --- a/web/src/pages/Cases/CaseDetails/Voting/index.tsx +++ b/web/src/pages/Cases/CaseDetails/Voting/index.tsx @@ -11,7 +11,7 @@ import { Periods } from "consts/periods"; import { isUndefined } from "utils/index"; import { getPeriodEndTimestamp } from "components/DisputeCard"; import { useDisputeKitClassicIsVoteActive } from "hooks/contracts/generated"; -import VoteIcon from "assets/svgs/icons/voted.png"; +import VoteIcon from "assets/svgs/icons/voted.svg"; function formatDate(unixTimestamp: number): string { const date = new Date(unixTimestamp * 1000); diff --git a/web/src/pages/Courts/CourtDetails/StakePanel/index.tsx b/web/src/pages/Courts/CourtDetails/StakePanel/index.tsx index cbf018173..d814e9e56 100644 --- a/web/src/pages/Courts/CourtDetails/StakePanel/index.tsx +++ b/web/src/pages/Courts/CourtDetails/StakePanel/index.tsx @@ -6,7 +6,7 @@ import JurorBalanceDisplay from "./JurorStakeDisplay"; import InputDisplay from "./InputDisplay"; import { ActionType } from "./StakeWithdrawButton"; import Popup, { PopupType } from "components/Popup/index"; -import BalanceIcon from "assets/svgs/icons/balance.png"; +import BalanceIcon from "assets/svgs/icons/balance.svg"; const StakePanel: React.FC<{ courtName: string; id: string }> = ({ courtName = "General Court", id }) => { const [amount, setAmount] = useState("");