{"version":3,"sources":["util/Constant.js","assets/img/new_icons/checked.png","components/template_1/Loading.js","components/template_1/GameLobbyModal.js","components/custom/Icon.js","components/template_1/VerifyPhoneNumberModal.js","components/template_1/LoadingPlaceholder.js","redux/LanguageAction.js","components/contentheader/header.js","assets/img/new_icons/green.png","components/template_1/AddPhoneModal.js","redux/AppAction.js","assets/img/new_icons/copy.png","pages/template_1/NotFound.js","components/template_1/spinWheel/SpinWheelRecord.js","components/template_1/spinWheel/SpinWheelClaimRecordPopUp.js","components/template_1/spinWheel/SpinWheelListPopUpModal.js","components/spinwheel/SpinWheel.js","components/template_1/MusicPlayerModal.js","components/custom/MusicPlayer.js","components/bannerAPK/BannerAPK.js","components/bannerAPK/BannerAPKMobile.js","components/FloatingChat/FloatingChat.js","components/template_1/Header.js","components/template_1/Footer.js","components/custom/InfoBox.js","components/custom/DynamicLoadTable.js","redux/AuthAction.js","components/custom/Input.js","assets/img/icon/icon-bottom-home.svg","assets/img/icon/icon-bottom-referral.svg","assets/img/icon/icon-bottom-promo.svg","assets/img/icon/icon-bottom-livechat.svg","assets/img/icon/icon-bottom-account.svg","assets/img/template_1/default_lang.png","assets/img/template_1/daily-claim.png","assets/img/trophy-gif.gif","pages/template_1/report/ReferralBonus.js","components/template_1/MyProfileModal.js","components/custom/LiveTransactions.js","components/custom/RecentBigWin.js","components/custom/ReferralBanner.js","components/custom/ProviderList.js","components/custom/RecentPayout.js","components/custom/RecommendedSlots.js","components/custom/FeaturedSlots.js","components/custom/HotProviders.js","components/custom/RecommendedCasino.js","components/custom/SpeakerIcon.js","components/custom/MarqueAnnoucement.js","components/custom/HomePageBanner.js","components/custom/MobileLoginComponents.js","pages/template_1/Login.js","assets/img/template_1/share/fb.png","assets/img/template_1/share/tele.png","assets/img/template_1/share/wa.png","assets/img/new_icons/red.png","util/Util.js","components/custom/DateRangeFilter.js","pages lazy /^/.//.*//Login$/ groupOptions: {} namespace object","pages lazy /^/.//.*//LiveChat$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//Settings$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//Kpi$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//News$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//NewsDetails$/ groupOptions: {} namespace object","pages lazy /^/.//.*//game//GameLobby$/ groupOptions: {} namespace object","components/custom/PaginationBar.js","pages lazy /^/.//.*//game//UnderMaintenance$/ groupOptions: {} namespace object","pages lazy /^/.//.*//report//GameDetails$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//ContactForm$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//LiveChat$/ groupOptions: {} namespace object","pages lazy /^/.//.*//transaction//Transfer$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//Promotion$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//PromotionInfo$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//CustomPage$/ groupOptions: {} namespace object","pages lazy /^/.//.*//game//GameList$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//Referral/.js$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//Vip/.js$/ groupOptions: {} namespace object","pages lazy /^/.//.*//home//Rebate/.js$/ groupOptions: {} namespace object","pages lazy /^/.//.*//game//RecentGames/.js$/ groupOptions: {} namespace object","pages lazy /^/.//.*//game//HotGames/.js$/ groupOptions: {} namespace object","pages lazy /^/.//.*//NotFound/.js$/ groupOptions: {} namespace object","pages lazy /^/.//.*//game//GamePage2$/ groupOptions: {} namespace object","pages lazy /^/.//.*//profile//SpinWheelList$/ groupOptions: {} namespace object","assets/img/icon/spin-wheel-btn.svg","components/template_1/FallBackImage.js","localization/i18n.js","util/ApiEngine.js","assets/img/new_icons/yellow.png","assets/img/template_1/share/ig.png","assets/img/img_404_dark.png","assets/img/template_1/referral-banner.jpg","assets/img/template_1/referral-banner-mobile.jpg","assets/css/theme lazy /^/.//.*/.css$/ groupOptions: {} namespace object","assets/img/error.png","config/page-settings.js","config/page-route.jsx","pages/template_1/transaction/UploadReloadReceipt.js","pages/template_1/transaction/InstantPayDeposit.js","pages/template_1/transaction/Deposit.js","components/template_1/CompleteInfoModal.js","pages/template_1/transaction/WithdrawByBankTransfer.js","pages/template_1/transaction/WithdrawByPhoneNumber.js","pages/template_1/transaction/WithdrawByEWallet.js","pages/template_1/transaction/WithdrawalMethods.js","components/template_1/DepositWithdrawalModal.js","pages/template_1/home/DownlineDetails.js","pages/template_1/home/DownlineSummary.js","pages/template_1/home/DownlineKPI.js","pages/template_1/home/Downline.js","components/template_1/DownlineModal.js","components/template_1/ShareReferralModal.js","components/template_1/LoginModal.js","components/template_1/ResetPasswordModal.js","pages/template_1/report/TransactionHistory.js","pages/template_1/report/GameHistory.js","pages/template_1/report/CommissionHistory.js","pages/template_1/report/RebateHistory.js","pages/template_1/report/DailyCheckInHistory.js","pages/template_1/report/ReportsOverview.js","components/template_1/RegisterModal.js","components/template_1/DailyCheckInModal.js","components/template_1/ReferralBonusModal.js","components/content/content.jsx","app.jsx","index.js","config/theme.js","components/template_1/LoadingGames.js","components/custom/ProviderIcon.js","redux/AppReducer.js","redux/AuthReducer.js","redux/LanguageReducer.js","ApplicationStore.js"],"names":["ApiKey","_API_SUCCESS_KEY","_API_MESSAGE_KEY","_API_DATA_KEY","_API_CODE_KEY","_API_CONTENT_TYPE","_API_ACCEPT","_API_APPLICATION_JSON","_API_XML_HTTP_REQUEST_KEY","_API_FORM_URLENCODED","_API_POST","_API_GET","ApiUrl","_API_LOGIN","_API_LOGOUT","_API_IS_LOGGED_IN","_API_GET_USER_PAYMENT_GATEWAY_INFO","_API_SEND_RESET_PASSWORD_SMS","_API_REGISTER","_API_CREATE_OR_UPDATE_MEMBER","_API_UPDATE_MEMBER_USERFULLNAME","_API_GET_USER_ANNOUNCEMENT","_API_GET_COMPANY_CONTACT_US","_API_VERIFY_RESET_PASSWORD_SMS","_API_UPDATE_USER_DATA","_API_GET_LOGIN_FAILED_COUNT","_API_MANAGE_MEMBER_LOGIN_FAIL_COUNT","_API_GET_MEMBER_DETAILS","_API_GET_MEMBER_DOWNLINE_GAMES_BY_MASTERPRODUCT","_API_GET_MEMBER_DETAILS_DASHBOARD","_API_GET_NOTIFICATION_LIST","_API_MEMBER_RESET_PASSWORD","_API_MEMBER_RESET_PASSWORD_BEFORE_LOGIN","_API_MARK_ANNOUNCEMENT_AS_READ","_API_GET_USER_MEMBERS","_API_GET_USER_MEMBER_LIST","_API_GET_USER_MEMBER_LIST_LATEST","_API_GET_DOWNLINE_MEMBER_STATUS_COUNT","_API_GET_MEMBER_PRODUCT_RATES","_API_GET_MEMBER_UPLINE_PRODUCT_RATES","_API_GET_MEMBER_REFERRAL_CODES","_API_GET_MEMBER_REFERRAL_GROUPS_BY_CODE","_API_GET_MEMBER_REFERRAL_GROUPS_LIST","_API_DEL_REFERRAL","_API_GENERATE_MEMBER_REFERRAL_CODE","_API_GET_UPLINE_BY_REFERRAL_CODE","_API_GET_DOWNLINE_BY_REFERRAL_ID","_API_CHECK_USERNAME","_API_GET_MEMBER_SUMMARY_KPI","_API_GET_MEMBER_DETAIL_KPI","_API_UPDATE_MEMBER_NICKNAME","_API_UPDATE_MEMBER_DOWNLINE","_API_CHECK_MEMBER_PIN_NUMBER","_API_SET_MEMBER_PIN_NUMBER","_API_RESET_MEMBER_PIN_NUMBER","_API_CHECK_SHAREHOLDER_PIN_NUMBER","_API_SET_SHAREHOLDER_PIN_NUMBER","_API_RESET_SHAREHOLDER_PIN_NUMBER","_API_CHECK_IF_PHONE_VERIFIED","_API_GET_COMPANY_SKIN_SETTINGS","_API_GET_MEMBER_PRODUCT_DETAILS","_API_CREATE_OR_UPDATE_DOWNLINE_GROUP","_API_ADD_OR_REMOVE_MEMBER_INTO_GROUP","_API_GET_DOWNLINE_GROUPS","_API_GET_DOWNLINE_GROUP_DETAIL_BY_ID","_API_DELETE_DOWNLINE_GROUP","_API_GET_UNGROUP_MEMBER_LIST","_API_GET_UNCLAIM_COMMISSION_AMT","_API_GET_USER_FULLNAME","_API_GET_REPORT_OVERVIEW_SELECT_DATE","_API_GET_MEMBER_WALLET_STATEMENT","_API_GET_MEMBER_REWARD_HISTORY","_API_GET_TRANSACTION_BY_MEMBER_ID","_API_GET_TRANSACTION_BY_MEMBER_DEPOSIT_AND_WITHDRAWAL","_API_GET_ROLLOVER_RECORD","_API_CREATE_TRANSACTION","_API_GET_BONUS_HISTORY","_API_GET_INTERNAL_TRANSFER","_API_GET_COMMISSION_HISTORY","_API_GET_PENDING_TRANSACTION","_API_GET_CLAIM_HISTORY","_API_GET_VADERPAY_BANK_OPTION","_API_GET_GAME_RECORD_BY_MEMBER","_API_GET_OVERALL_GAME_RECORD_BY_MEMBER","_API_GET_MEMBER_BANK_ACCOUNT_BY_MEMBER","_API_CREATE_OR_UPDATE_MEMBER_BANK_ACCOUNT","_API_DELETE_MEMBER_BANK_ACCOUNT","_API_GET_USER_BANK","_API_GET_BANK_ACCOUNT_BY_BANK_ID","_API_GET_BANK_ACCOUNT","_API_GET_BANK_ACCOUNT_2","_API_CREATE_WALLET_TRANSFER_TRANSACTION","_API_GET_NON_SEAMLESS_PRODUCT_BALANCE","_API_GET_ASSIGNED_MEMBER_PRODUCT","_API_GET_POOL_RESULT","_API_GET_PRODUCT_WITH_MAX_RATE","_API_GET_CATEGORY_GROUP_GAME","_API_GET_CATEGORY_GROUP_GAME_DASHBOARD","_API_GET_MASTER_PRODUCT_GROUP_GAME","_API_GET_MASTER_PRODUCT_GROUP_GAME_BY_GAME_ID","_API_GET_RECOMMENDED_MASTER_PRODUCT_GROUP_GAME","_API_GET_MASTER_PRODUCT_BY_ID","_API_HOMEPAGE_PRODUCTS","_API_GET_PROVIDER_GROUP_GAME","_API_CHECK_IF_NON_SEAMLESS","_API_CHANGE_PRODUCT_PASSWORD","_API_GET_GAME_IS_NEW_WINDOW","_API_START_GAME","_API_GET_BET_DETAILS","_API_GET_COMMUNICATION_CHANNELS","_API_SEND_VERIFICATION_CODE","_API_SEND_PIN_CODE","_API_VERIFY_PHONE_NUMBER","_API_VERIFY_MULTIPLE_PHONE_NUMBER","_API_CHECK_DISPLAY_BANK_DETAIL","_API_GET_USER_BANNER","_API_MANAGE_BANNER_NOTIFICATION","_API_GET_USER_REWARD_BANNER","_API_GET_PRODUCT_CATEGORY","_API_GET_PRODUCT_CATEGORY_WITH_MASTER_PRODUCT","_API_GET_MASTER_PRODUCT_CATEGORY","_API_GET_USER_VIP_LEVEL","_API_GET_MEMBER_SHAREHOLDER_DETAIL","_API_GET_MEMBER_SHAREHOLDER_UNCLAIM","_API_UPDATE_SHAREHOLDER","_API_CLAIM_SHAREHOLDER","_API_CLAIM_COMMISSION","_API_CLAIM_REWARD","_API_UPDATE_MEMBER_THEME","_API_GET_COMPANY_TNG_SYSTEM_SETTINGS","_API_GET_FLAG_TRANSFER_BACK_MAIN_WALLET","_API_SPG_CHECK","_API_SEND_TAC_CODE","_API_VERIFY_TAC_CODE","_API_GET_USER_SYSTEM_SETTINGS","_API_ADD_OPERATION_LOG","_API_GET_CATEGORY_REWARD_RATES","_API_UPDATE_MEMBER_PHONE_NUMBER","_API_UPDATE_MEMBER_LANGUAGE","_API_CHECK_MEMBER_ROLLOVER","_API_GET_COMPANY_CONTENT_LANGUAGE","_API_GET_WALLET_TRANSFER","_API_CHECK_IF_REFERRAL_CODE_EXIST","_API_GET_MEMBER_DETAILS_AND_DATE","_API_GET_COMMISSION_AND_REBATE_AMT","_API_GET_NUMBER_OF_GEN","_API_GET_CHAT_LIST","_API_GET_DEPOSIT_PROMOTION_BY_MASTER_PRODUCT_ID","_API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS","_API_GET_DEPOSIT_PROMOTION","_API_GET_DEPOSIT_PROMOTION_BY_ID","_API_GET_DEPOSIT_PROMOTION_INFO_BY_ID","_API_GET_MEMBER_REFERRAL_LIST","_API_GET_NON_SEAMLESS_PRODUCT","_API_GET_MARQUEE_TAG_CONTENT","_API_GET_MARQUEE_TAG_CONTENT_BY_PLATFORM","_API_GET_RESTORE","_API_GET_ALL_VIP_CRITERIA","_API_GET_VIP_BENEFIT_CONTENT","_API_GET_MEMBER_WALLET_BALANCE","_API_GET_LATEST_ROLLOVER_RECORD","_API_GET_MASTER_PRODUCT_GROUP_GAME_LIST","_API_REDEEM_VOUCHER","_API_CHECK_MEMBER_BANK_ACCOUNT_BY_FULLNAME","_API_GET_APP_LOGIN_CRED","_API_GET_WEEKLY_RESCUE","_API_CHECK_ANY_UNREAD_NOTIFICATION","_API_PRODUCT_COMM_RATE","_API_UPDATE_REFERRAL_CODE","_API_CREATE_REFERRAL_CODE","_API_GET_TYPE_BANK_ACCOUNT","_API_CREATE_TOPKASH_TRANSACTION","_API_CREATE_TRANSACTION_TOPKASH","_API_GET_MEMBER_DETAIL_KPI2","_API_GENERATE_OTP","_API_CHECK_EMAIL","_API_UPDATE_MEMBER_EMAIL_AND_BIRTH_DATE","_API_GET_VIP_COMMISSION_HISTORY","_API_GET_EXTRA_HTML_STYLE","_API_GET_CRYPTO_WALLETS","_API_GET_RECENT_GAMES","_API_GET_DEPOSIT_PROMOTION_CATEGORY","_API_GET_DEPOSIT_PROMOTION_CATEGORY_BY_ID","_API_GET_LATEST_TRANSACTION_BY_MEMBER_DEPOSIT_AND_WITHDRAWAL","_API_GET_LATEST_GAME_RECORD_BY_MEMBER","_API_GET_SUMMARY_GAME_RECORD","_API_GET_LATEST_GAME_RECORD","_API_GET_LATEST_BETS","_API_START","_API_GET_MEMBER_ACCOUNT_BALANCE","_API_GET_PAYMENT_GATEWAY_INFO_BY_ID","_API_GET_MEMBER_UPGRADE_BONUS_RECORD","_API_REDEEM_MEMBER_VIP_BONUS","_API_GET_BONUS_DEPOSIT","_API_CLAIM_PROMOTION_FS","_API_RESTORE_ALL_WALLET","_API_RESTORE_MAIN_WALLET","_API_UPDATE_TRANSACTION_VALID_FOR_PROMO","_API_CHECK_WALLET","_API_GET_MASTER_REFERRAL_CODE","_API_GET_COMPANY_ICON_SETTINGS","_API_GET_COMPANY_DETAILS","_API_SEND_CHAT","_API_SEND_FILE","_API_SEND_VOICE","_API_MARK_LIVECHAT_AS_READ","_API_GET_TOP_DEPOSIT_WITHDRAWAL","_API_MEMBER_FIRST_TIME_RESET_PASSWORD","_API_GET_TOTAL_PROMO_CLAIMABLE","_API_GET_ANNOUNCEMENT","_API_GET_MINIMUM_DEPOSIT_WITHDRAWAL","_API_GET_TOTAL_COMM_EARNED","_API_GET_SETTING","_API_PROMOTION_SLUG","_API_CUSTOM_SLUG","_API_MEMBER_UPDATE_PROFILE","_API_GET_FLOATING_CHANNEL","_API_GET_SEO_META_CONTENT","_API_CHECK_TRANSACTION_REFERENCE","_API_GET_THEME_TEMPLATE_BY_HANDLE","_API_GET_THEME_SECTION_BY_HANDLE","_API_GET_RECENT_PAYOUT","_API_GET_BIG_WIN","_API_GET_REBATES_RECORD","_API_GET_COMPANY_CHANNEL","_API_GET_GAME_TOP_3_WINNER","_API_GET_RECOMMENDED_GAME","_API_RETRIEVE_GAME_BET_RECORDS","_API_RETRIEVE_PRODUCT_GAME_BY_GAME_ID","_API_GET_TRANSACTION_TODAY_BY_USER","_API_GET_DAILY_CHECK_IN","_API_CLAIM_DAILY_CHECK_IN","_API_DAILY_CHECK_IN_STATUS","_API_GET_DAILY_CHECK_IN_RECORD","_API_TEST_DAILY_CHECK_IN","_API_GET_MEMBER_SPINS","_API_GET_MEMBER_SPINS_CLAIMS_RECORD","_API_GET_SPINWHEEL_SETTINGS","_API_IMREWARD_CALLBACK","_API_IMREWARD_SPIN","_API_IMREWARD_GENERATE_TOKEN","_API_IMREWARD_CREATE_CAMPAIGN_TOKEN","_API_IMREWARD_GET_ALL_CAMPAIGNS_BY_SUBSCRIBER","_API_IMREWARD_FIND_ALL_CAMPAIGN_TOKENS_BY_CAMPAIGN_ID","_API_GET_MEMBER_REFERRAL_BONUS","_API_CLAIM_MEMBER_REFERRAL_BONUS","_API_ADD_MEMBER_PHONE_NUMBER","_API_GET_MEMBER_PHONE_NUMBERS","_API_GET_EWALLET_STATUS","_API_GET_USER_E_WALLET","_API_GET_DASHBOARD_COMPONENT_SEQUENCE","_API_GET_COMMISSION_SETTING","_API_UPDATE_MEMBER_FAVORITE_TRACK_IDS","_API_DYNAMIC_PRODUCT_COMM_RATE","_API_CLAIM_REFERRAL_COMMISSION","_API_GET_REBATE_INFO_AMT","_API_CLAIM_REBATE","_API_GET_REFERRAL_COMMISSION","_API_GET_REFERRAL_INFO_AMT","_API_GET_REFERRAL_COMMISSION_RATE","_API_GET_HOT_GAMES","_API_GET_REFERRAL_FAQ","BaseWebUrl","currentLocale","localStorage","getItem","SessionKey","_LANGUAGE","locale","setItem","url","concat","_URL_MAIN","_URL_HOME","_URL_LOGIN","_URL_LIVECHAT","_URL_REGISTER","_URL_NOT_FOUND","_URL_UNDER_MAINTENANCE","_URL_SETTINGS","_URL_NEWS","_URL_NEWS_DETAILS","_URL_GAME_LOBBY","_URL_CONTACT_US","_URL_LIVE_CHAT","_URL_TNC","_URL_PROMOTION","_URL_PROMOTION_INFO","_URL_GAME_LIST","_URL_REFERRAL","_URL_RECENT_GAMES","_URL_VIP","_URL_GAME_LIST_SPORTS","_URL_GAME_LIST_SLOTS","_URL_GAME_LIST_CASINO","_URL_GAME_LIST_FISHHUNT","_URL_GAME_LIST_KENO","_URL_GAME_LIST_SLOTS_NEW","_URL_GAME_LIST_E_SPORT","_URL_GAME_LIST_ARCADE","_URL_GAME_LIST_CRASH","_URL_GAME_LIST_EXCHANGE","_URL_GAME_LIST_POKER","_URL_REBATE","_URL_PROMOTION_INFO_SLUG","_URL_IFRAME_GAME_PAGE","_URL_SPIN_WHEEL_LIST","_URL_HOT_GAMES","WebUrl","Proxy","get","target","prop","receiver","startsWith","urlPath","Reflect","arguments","getCurrentLocale","Status","_ENABLED","_DISABLED","_DELETED","Language","_ENGLISH","_KHMER","_CHINESE","_VIETNAMESE","_INDON","_PORTUGUESE","_BENGALI","_TRADITIONAL_CHINESE","_NEPALI","_URDU","_TOK_PISIN","_HIRI_MOTU","_LOGIN_GUID","_TEMP_GUID","Role","_SUPER_ADMIN","_SHOP","_MANAGER","_MEMBER","_ADMIN_SUB_ACCOUNT","TransactionType","_DEPOSIT","_WITHDRAWAL","_BONUS","_ADJUSTMENT","_REBATE","_TRANSFER","_REFERRALBONUS","_REFUND","_COMMISSION","_BIRTHDAY_REWARD","_DAILY_RESCUE","_CREDIT_REDEMPTION","_VIP_UPGRADE_BONUS","_SPIN_WHEEL","_REWARD","_DAILY_CHECK_IN","TransactionStatus","_OPEN","_IN_REVIEW","_IN_PROGRESS","_APPROVED","_REJECTED","_AUTO_APPROVED","InputValidationKey","_REQUIRED_KEY","_MAX_LENGTH_KEY","_MIN_LENGTH_KEY","AlertTypes","_DEFAULT","_INFO","_SUCCESS","_WARNING","_DANGER","_ERROR","_INPUT","_CUSTOM","FilterStatus","_ACTIVE","_SUSPENDED","LoginType","_LOGIN_TYPE_SHOP","_LOGIN_TYPE_ADMIN","TopUpStatus","_PENDING","_FAILED","CommonStatus","_ALL_STATUS","_PENDING_STATUS","_APPROVE_STATUS","_REJECT_STATUS","_INACTIVE_STATUS","TransferType","_CONVERT_POINTS","_BANK","_DOWNLINE","_UPLINE","BankingChannel","_CHANNEL_OFFLINE_BANKING","_CHANNEL_PAYTRUST","_CHANNEL_GPAY","PanelType","_MEMBERSITE","_MOBILESITE","_BACKOFFICE","_APPS","_SYSTEM","BetStatus","_PENDING_BET_STATUS","_SETTLED_BET_STATUS","_CANCELED_BET_STATUS","LanguageKey","_PRIMARY","PaymentType","_PREPAID","_POSTPAID","DisplayDevice","_DESKTOP_MAIN","_DESKTOP_SUB","_MOBILE_POPOUT","_MOBILE_SLIDER","_DESKTOP_POPUP","_MAIN_WALLET_ID","ClientTemplates","_CHINESE_HK","hostname","template_id","template","TransactionPriority","_NO","_YES","_FIRST_PRIORITY","HIDE_APK_BANNER_DURATION","_DAY_OPTION","value","label","module","exports","Loading","props","_dispatch","useDispatch","companyIcons","useSelector","state","appState","logo","setLogo","useState","useEffect","length","async","setBusy","find","iconCategory","iconImage","defaultImage","setIdle","getCompanyIcon","React","createElement","Fragment","className","src","GameLobbyModal","_memberData$membershi10","t","useTranslation","_history","useHistory","memberData","member","_USER_DATA","s","authState","userData","usernameRef","useRef","passwordRef","showLobby","gameLobbyModal","walletsDetails","walletList","setWalletList","bonus","setBonus","commission","setCommission","clubFee","setClubFee","gameWalletBalanceBeforeTransfer","setGameWalletBalanceBeforeTransfer","masterProductContent","setMasterProductContent","fromOptions","setFromOptions","toOptions","setToOptions","mpData","setMpData","isApp","setIsApp","appUrl","setAppUrl","appDeepLink","setAppDeepLink","packageNameKeyword","setPackageNameKeyword","toLobbyBtn","setToLobbyBtn","showAppCred","setShowAppCred","selectedGameIsSeamless","setSelectedGameIsSeamless","balanceLoading","setBalanceLoading","masterProductId","setMasterProductId","selectedGameName","setSelectedGameName","popupBannerImage","setPopupBannerImage","isDisabled","setDisabled","productCommRate","setProductCommRate","isProductCommRateShowed","setIsProductCommRateShow","guaranteeRebatePercentage","setGuaranteeRebatePercentage","productGameId","setProductGameId","appUsername","setAppUsername","appPassword","setAppPassword","isNewWindow","setIsNewWindow","rolloverBalance","setRolloverBalance","rolloverTarget","setRolloverTarget","mincoinTarget","setMincoinTarget","maxWithdraw","setMaxWithdraw","promoTitle","setPromoTitle","promoSlug","setPromoSlug","isLoading","setIsLoading","isBonusWallet","setIsBonusWallet","isWalletLoaded","setIsWalletLoaded","showRestoreAccBlanceConfirmation","setShowRestoreAccBlanceConfirmation","heartBeat","alertIcon","setAlertIcon","defaultGameBanner","setDefaultGameBanner","seconds","setSeconds","isValidForPromotion","setIsValidForPromotion","isBusy","countdown","setCountdown","intervalId","setIntervalId","promoAlert","setPromoAlert","totalPromoClaimable","isSupportIframe","setIsSupportIframe","iframeAlert","setIsIframeAlert","balanceRefresh","setBalanceRefresh","membershipEnabled","alert","getRolloverProgress","CheckWallet","startGame","checkIsProductCommRateShouldShow","responseJson","ApiEngine","username","password","isNewWindowJson","getProductComRate","providerName","apiUrl","data","_response$find","products","x","categoryName","category","name","isObjectEmpty","productCommRatePercentage","playerComm","toFixed","copyText","textType","current","select","document","execCommand","getRestore","id","stringIsNullOrEmpty","getRestoreAccountBlance","heartBeatDispatch","showResponseMessage","startGame2","gameId","breadcrumbData","pageName","title","location","pathname","search","path","push","window","open","innerWidth","setGameLobbyModal","setTransactionValidForPromo","interval","setInterval","prevSeconds","clearInterval","closeBtn","onClick","VIcon","icon","themeIcons","close","SweetAlert","customIcon","height","width","alt","cancelBtnText","confirmBtnText","onCancel","custom","showCancel","reverseButtons","cancelBtnBsStyle","customButtons","disabled","dangerouslySetInnerHTML","__html","replace","style","marginBottom","fontSize","InfoBox","maxWidth","margin","type","content","onConfirm","Modal","fade","isOpen","contentClassName","backdrop","toggle","fullscreen","ModalHeader","ModalBody","numberWithCurrencyFormat","currentWalletBalance","Spinner","animation","role","size","verticalAlign","marginLeft","refresh","dashboardCommission","_memberData$membershi","_memberData$membershi2","_memberData$membershi3","_memberData$membershi4","_memberData$membershi5","_memberData$membershi6","_memberData$membershi7","_memberData$membershi8","_memberData$membershi9","rebatePercentage","membership","rebateSlot","rebateSport","rebateESport","rebateCasino","rebateFishHunt","rebateKeno","rebateArcade","rebateCrash","rebateExchange","getMembershipRebateRate","lockClosed","bonusWalletBalance","parseFloat","color","lineHeight","ReactNativeWebView","postMessage","JSON","stringify","action","deeplink","process","REACT_APP_ENDPOINT_URL","origin","_URL_GAME_PAGE","selectedTheme","prev","countDownAlert","position","ref","readOnly","cursor","Icon","mdiContentCopy","IcoMoon","Object","assign","iconSet","VerifyPhoneNumberModal","_ref","show","phoneNumber","phoneNumType","onClose","onCallback","_objectWithoutProperties","_excluded","showVerifyOtpModal","setShowVerifyOtpModal","otpValue","setOtpValue","showVerifyOtpError","setShowVerifyOtpError","sentCode","setSentCode","countdownPeriod","setCountdownPeriod","TACcountdownPeriod","setTACCountdownPeriod","TACtimer","setTACtimer","setTimeout","TACtimedOut","setTACtimedOut","attemp","setAttemp","elePin","pinInputDisabled","setPinInputDisabled","tempPinNumber","setTempPinNumber","pinLoading","setPinLoading","selectedPhoneNumber","setSelectedPhoneNumber","selectedPhoneNumType","setSelectedPhoneNumType","countdownPeriodTimeOutId","apiTimeOutId","stopTimeout","clearTimeout","verifyOTP","post","createMultiPartFormBody","verificationCode","pinstr","phoneNum","then","response","clear","PinInput","inputMode","inputStyle","border","regexCriteria","onComplete","index","key","pinStr","keyLength","split","onKeyPress","params","languageCode","TACExist","usage","createFormBody","_TAC_VALID_TIMER","sendOtp","LoadingPlaceholder","_SAVE_LANGUAGE_ID","_COOKIE","Cookies","saveLanguageId","retain","removeItem","set","dispatch","languageId","ContentHeader","enableBackButton","subTitle","topRightTitle","backButtonOnClick","escButtonOnClick","displayYellowAlert","topRightUrl","alertMsg","addEventListener","e","fontWeight","minWidth","require","bottom","defaultProps","history","go","AddPhoneModal","PhoneNumberPrefix","dialingCodes","selectedPhonePrefix","setSelectedPhonePrefix","formattedPhoneNumber","setFormattedPhoneNumber","register","ewalletRegister","handleSubmit","ewalletHandleSubmit","errors","ewalletErrors","setError","ewalletError","useForm","sanitizePhoneNumber","test","slice","onSubmit","accountHolderName","bindMember","required","onChange","map","prefix","autoComplete","minLength","message","maxLength","pattern","onKeyDown","includes","preventDefault","newValue","registerPhone","_BIND_SETTING","_BIND_MEMBER","_BIND_MEMBER_WALLET","_BIND_MEMBER_WALLET_BALANCE","_BIND_GAMES","_BIND_GAMES_RECOMMENDED","_BIND_GAMES_FEATURED","_BUSY","_IDLE","_API_CALLED","_DOWNLINE_SEARCH","_DOWNLINE_QUERY","_REFERRAL_SEARCH","_REFERRAL_QUERY","_GAME_SEARCH","_GAME_QUERY","_SET_Y","_SET_PAGESIZE","_SET_ACTIVE_TAB","_SET_BOTTOM_TAB_INDEX","_SET_PAYMENT_LIST","_SET_WALLET_INFO","_SET_OPEN_MENU","_SET_REPORT_OVERVIEW","_SET_DOWNLINE","_SET_BANNERS","_SET_DEPOSIT_MODAL","_SET_DEPOSIT_TAB","_SET_LOGIN_MODAL","_SET_GAME_LOBBY_MODAL","_SET_REGISTER_MODAL","_SET_PROVIDER","_SET_LATEST_BETS","_SET_RESET_PASSWORD","_SET_DOWNLINE_MODAL","_SET_SHARE_REFERRAL_MODAL","_BUSY_LOADING","_SET_PROFILE_MODAL","_SET_SPIN_WHEEL_LIST_MODAL","_SET_SPIN_WHEEL_REPORT_MODAL","_SET_SEO_CONTENT","_SET_REPORT_OVERVIEW_MODAL","_SET_GAME_IFRAME_MODAL","_SET_COMPLETE_INFO_MODAL","_SET_DAILY_CHECKIN_MODAL","_SET_DAILY_CHECKIN_EXIST","_SET_REFERRAL_BONUS_MODAL","_SET_MUSIC_PLAYER_MODAL","_IS_KEEPED_LOGIN","_BIND_HOT_GAMES","_ALERT_TYPES","SET_ALERT","NONE","setY","y","setBanners","banners","balance","walletDetails","isPromoCleared","isBonusWalletRestored","isActivedPromoExist","promoMaxWithdrawal","minCoinTarget","totalwalletbalance","totalbonuswallet","isNaN","walletBalance","setProvider","availableList","providerList","groupBy","item","productName","providerArray","providerImage","providerImageLight","provider","bindGames","games","bindGamesRecommended","gamesRecommended","slotGamesCount","slotGames","casinoGamesCount","casinoGames","bindGamesFeatured","gamesFeatured","bindHotGames","hotGames","setPaymentList","payments","setPageSize","pagesize","setGameSearchText","setGameQuery","setOpenMenu","openMenu","iconEnabled","setPerformApiCall","status","success","translateRequired","undefined","messageToShow","i18n","showMessage","alertProps","_alertProps$title","customConfirm","disposeMessage","customCancel","allowEscape","setDepositModal","tab","depositModal","depositTab","setDownlineModal","downlineModal","setShareReferralModal","shareReferralModal","setDepositTab","setLoginModal","loginModal","setRegisterModal","registerModal","setResetPassword","isResetPassword","setAppSetting","brandName","presetAmt","currency","medias","channels","htmlStyle","chatSphere","languages","currencySymbol","settingApiComplete","promotionLayout","promotionShowCategoryTitle","showPromoThumbnailClaimButton","isReferralBonusActive","otpEnabled","eWalletOTPEnabled","captchaEnabled","priorityModalTypeId","dashboardComponent","isNormalDepositEnable","isNormalWithdrawalEnable","musicPlayerEnabled","musicTrackList","isEWalletActive","isBankTransferActive","isReferralCommissionManual","isRebateManual","availableProductCategories","isGameLobbyRequired","companyTimeZone","bannerAPK","isLoginAttemptBlockingEnabled","isHotGameEnabled","affiliateLink","isCasinoLobbyEnabled","isEZUsernameEnabled","depositPresetAmt","companyCurrency","setBusyLoading","isBusyLoading","setMyProfileModal","profileModal","setSpinWheelListModal","spinWheelListModal","setSpinWheelReportModal","spinWheelReportModal","setSeoContent","_ref3","seoTitle","seoDescription","setReportOverviewModal","reportOverviewModal","setGameIframeModal","gameIframeModal","setCompleteInfoModal","completeInfoModal","setDailyCheckinModal","dailyCheckinModal","setDailyCheckInExist","dailyCheckInExist","setReferralBonusModal","referralBonusModal","setMusicPlayerModal","musicPlayerModal","userKeepLogin","isKeepedLogin","NotFound","href","SpinWheelRecord","_location$state","_location$state2","_location$state3","_location","useLocation","paginationPageNum","setPaginationPageNum","isResetCurrentPage","setIsResetCurrentPage","loadingFlag","setLoadingFlag","memberSpinList","setMemberSpinList","startDate","setStartDate","date","moment","startOf","endDate","setEndDate","endOf","selectedFilterType","setSelectedFilterType","format","getMemberSpinData","page","keyword","itemsPerPage","start","totalCount","pageValue","Math","ceil","prevValue","err","DateRangeFilter","onSave","end","options","initialType","typeOnSelect","colSpan","textAlign","marginTop","PaginationBar","totalPages","retrieveDataRecords","setIsChangeTab","SpinWheelClaimRecordPopUp","loadingSearchData","setLoadingSearchData","coinIcon","setCoinIcon","recordType","selectedOption","setSelectedOption","angleLeft","SpinWheelListPopUpModal","utcTimeForTooltip","setUtcTimeForTooltip","isLoadingList","setIsLoadingList","spinWheelList","setSpinWheelList","shouldShowSpinWheel","setShouldShowSpinWheel","emptyPromoIcon","setEmptyPromoIcon","iframeSrc","setIframeSrc","isLoadingBtn","setIsLoadingBtn","firstLoad","intervalRef","hasShownError","getMySpins","paginatedData","i","calculateTimeLeft","utcTimezone","utc","spinWheelEnabled","showSpinWheelForGuest","init","expiryDate","expiryDateWithUtc","endsWith","now","Date","expiry","getTime","diff","toLowerCase","days","floor","hours","minutes","parts","dayLabel","hourLabel","minuteLabel","join","alignSelf","unionIcon","clas","display","alignItems","gap","padding","textDecoration","refreshTime","borderBottom","campaignName","expiryDateTxt","completedAt","opacity","memberSpinWheelId","initSpin","SpinWheel","isPromoInfo","onClickPromoInfo","promoInfoId","chatRef","setSpinWheelEnabled","setShowSpinWheelForGuest","clickCloseSpinWheel","setClickCloseSpinWheel","showSpinWheelListPopup","setShowSpinWheelListPopup","spinWheelImg","setSpinWheelImg","iconColor","setIconColor","spinWheelIcon","iconName","showSpinWheelForGuestTemp","parentElement","querySelector","backgroundColor","getComputedStyle","isDarkTheme","isDarkBackground","changeTopPos","changeBtmPos","imgLoad","setImgLoad","bgColor","rgb","match","parseInt","stopPropagation","onLoad","MusicPlayerModal","systemMusicTracks","setSystemMusicPlayList","memberFavoriteTracks","setMemberFavoritePlaylist","setPlayList","playing","setPlaying","currentTrack","setCurrentTrack","currentTrackIndex","setCurrentTrackIndex","trackDuration","trackProgress","setTrackProgress","playedProgress","setPlayed","playerRef","setSeeking","loop","setLoop","isShuffle","setIsShuffle","setShuffleBtnClicked","currentPlayListType","setCurrentPlayListType","durations","setDurations","pendingItems","setPendingItems","activeMusicListTab","setActiveMusicListTab","iconTheme","musicListTab","text","musicListTabId","handleSeekAndProgress","formatTime","secs","handleListPlayPause","selectedTrack","activeMusicListTabType","setTrackAsFavourite","findIndex","updatedPlayList","favorite","updatedFavoriteList","memberFavoriteTrackIds","track","updateMemberFavoriteTrackIds","filter","ReactPlayer","link","onDuration","duration","handleTrackDuration","pendingItem","musicNotes","min","max","step","onMouseDown","newProgress","onMouseUp","seekTo","onTouchStart","onTouchMove","touch","touches","rect","getBoundingClientRect","touchPosition","clientX","left","clampedProgress","onTouchEnd","handleTouchEnd","shuffleBtn","handlePrevious","_targetPlayList$prevI","targetPlayList","prevIndex","previousBtn","handlePlayPause","pauseButton","playButton","handleNext","_targetPlayList$nextI","nextIndex","nextBtn","handleToggleLoop","sessionStorage","d","addedMusic","addFavourite","MusicPlayer","setTrackTitle","setIsTrackLoading","setIsTrackPlaying","clickShuffleBtn","setClickShuffleBtn","shuffleEnabled","setShuffleEnabled","isPlayNextTrack","setIsPlayNextTrack","isPlayPrevTrack","setIsPlayPrevTrack","playButtonClicked","setPlayBtnClicked","systemMusicPlayList","memberFavoritePlaylist","savedState","muted","setMuted","seeking","setDuration","progress","setProgress","played","initFlag","setInitFlag","playList","shuffleBtnClicked","isMobile","setIsMobile","mobileOS","setMobileOS","turnOnPlay","setTurnOnPlay","userAgent","navigator","vendor","opera","detectMobileOS","memberFavoriteTrackList","forEach","memberTrack","shuffledSystemPlaylist","shufflePlaylist","shuffledMemberFavoritePlaylist","setNewCurrentTrackIndex","memberFavoriteList","handleTrackLoading","systemPlayList","memberPlayList","newIndex","_playList$nextIndex","_playList$prevIndex","playlist","sort","random","controls","volume","onPlay","handlePlay","onProgress","playedSeconds","onEnded","handleEnded","onError","handleError","console","log","onReady","handleReady","playsinline","onBuffer","handleBuffer","onBufferEnd","handleBufferEnd","getInternalPlayer","playVideo","musicPlaylist","BannerAPK","shouldShowBannerAPK","setShouldShowBannerAPK","clickCloseBannerAPK","setClickCloseBannerAPK","bannerAPKImg","setBannerAPKImg","bannerAPKUrl","setBannerAPKUrl","bannerAPKIcon","desktopImage","URL","isValidApkUrl","handleResize","removeEventListener","mobileImage","BannerAPKIcon","CloseBtn","handleDownloadAPK","fileName","substring","lastIndexOf","download","body","appendChild","click","removeChild","BannerAPKMobile","isWebView","FloatingChat","forwardRef","shouldShowFloatChannel","setShouldShowFloatChannel","clickCloseFloatChannel","setClickCloseFloatChannel","FloatChannelImg","setFloatChannelImg","floatingChat","channelList","setChannelList","isChannelListOpen","setIsChannelListOpen","spinnerWheelExist","setSpinnerWheelExist","clickCloseRef","prevImageUrlRef","useImperativeHandle","getFloatingChannel","result","newImageUrl","error","AnimatedList","cta","rel","channelImage","Header","SecureLS","URLSearchParams","tacVerifyRegister","tacVerifyHandleSubmit","tacVerifyErrors","watch","tacVerifyWatch","setValue","tacVerifySetValue","unregister","tacVerifyUnregister","ResetPasswordRegister","ResetPasswordHandleSubmit","ResetPasswordErrors","ResetPasswordWatch","ResetPasswordSetValue","ResetPasswordUnregister","showCodeError","setShowCodeError","clearErrors","getValues","control","trigger","phoneNumberChk","PasswordUpdatedHandleSubmit","showModalLogin","setShowModalLogin","hideLoginPassword","setHideLoginPassword","registerSteps","setRegisterSteps","activeLanguage","setActiveLanguage","setCurrentWalletBalance","_userData","referralCode","setReferralCode","formattedPhone","setFormattedPhone","phoneNumberError","setPhoneNumberError","_username","_setUsername","isUsernameAvailable","setIsUsernameAvailable","isDigit","setIsDigit","setPhoneNumber","enteredPinNumber","setEnteredPinNumber","enteredPinNumberConfirm","setEnteredPinNumberConfirm","pinNumberConfirmFocused","setPinNumberConfirmFocused","pinNumber","setPinNumber","TACsent","setTACsent","canSendTAC","setCanSendTAC","TACBtnAble","setTACBtnAble","tempPinNumberFocused","setTempPinNumberFocused","isLiveChatOpen","setIsLiveChatOpen","registerStepsViaEmail","setRegisterStepsViaEmail","registerStepsThreeFirst","setRegisterStepsThreeFirst","_email","_setEmail","_emailText","_setEmailText","isEmailAvailable","setIsEmailAvailable","setPassword","referralCodeString","setReferralCodeString","forgotPassword","setForgotPassword","isModalVisible","setIsModalVisible","isForgetPassword","setIsForgetPassword","isLogin","setIsLogin","verifyPhoneTAC","setVerifyPhoneTAC","isPasswordUpdated","setIsPasswordUpdated","verifyState","button","isUpdatePassword","setIsUpdatePassword","tempPhoneNum","setTempPhoneNum","countdownTAC","setCountdownTAC","setUsername","selectedChannel","setSelectedChannel","toggleModal","setToggleModal","isLoginLoading","setIsLoginLoading","isTACLoading","setIsTACLoading","isRegisterLoading","setIsRegisterLoading","disableRegister","setDisableRegister","disableViaEmail","setDisableViaEmail","viaEmailLoading","setViaEmailLoading","timerPeriod","setTimerPeriod","tabActive","setTabActive","languageState","disabledRefrerral","setDisabledRefrerral","sideMenuList","setSideMenuList","spinWheelMenuItem","setSpinWheelMenuItem","smallLogo","setSmallLogo","profileIcon","setProfileIcon","loginBanner","setLoginBanner","dropdownOpen","setDropdownOpen","openMobileSideMenu","setOpenMobileSideMenu","chatLoading","setChatLoading","affliateItem","setAffliateItem","APKMobileBannerIsVisible","setAPKMobileBannerIsVisible","companyLanguages","languageSelected","setLanguageSelected","code","registerChannel","unreadLivechat","totalUnreadLivechat","languageDetected","setLanguageDetected","isTrackPlaying","trackTitle","isTrackLoading","rolloverData","setRolloverData","sideNavList","spinnerWheelMenu","affliateMenu","profile","fetchData","reference","_companyLanguages$","tempLangCode","storedLanguage","tempLang","isDefault","onInitLanguage","currentDate","localeUserCreatedDate","keys","language","languageSetting","getLatestRolloverRecord","pin","email","TAC","submitPin","onChangeUsername","useCallback","debounce","nativeEvent","handleClick","channel","actionUrl","attachment","parsedReferralCode","indexOf","checkIfReferralExist","findLanguage","onChangeLanguage","selectedLanguage","previousLocale","changeLanguage","locationPathname","regex","RegExp","setCurrentLocale","customEvent","CustomEvent","detail","dispatchEvent","handleImageError","displayMode","viewBox","fill","xmlns","fillRule","clipRule","Number","isFinite","deposit","percentage","formattedPercentage","round","upperCase","focusable","aria-hidden","data-testid","UncontrolledDropdown","toggleDropDown","prevState","direction","DropdownToggle","DropdownMenu","DropdownItem","onClickLanguage","menu1","exclamation","availableProductCategory","sidenavItem","productCategory","trim","ignoreLinks","itemPathname","clipPath","x1","y1","x2","y2","gradientUnits","stopColor","offset","transform","image","description","centered","usernameAvail","avail","checkUsername","phoneError","referralString","referralCheck","checkIfReferralExist2","defaultReferralCode","phoneNo","Array","from","autocomplete","Input","onInput","autoFocus","selectionStart","selectionEnd","setSelectionRange","onchange","eyeBlocked","eye","top","checkmarkOutline","validateReferralCode","background","checkEmail","repeat","substr","_SECONDS_IN_MS","placeholder","event","selectedReferralCode","handleRegisterClick","formData","taccode","formBody","TACjson","newpassword","newPassword","confpassword","confPassword","validate","Footer","bottomNavList","setBottomNavList","displayDefaultIcon","setDisplayDefaultIcon","defaultIcon","setDefaultIcon","footerSections","setFooterSections","sectionSettings","setSectionSettings","activeLanguageId","setActiveLanguageId","activeLanguageCode","defaultGameIcon","setDefaultGameIcon","bottomNav","_BOTTOM_NAV_LIST","sanitizedIconName","activeImage","activeIconImage","subLink","Image","defaultGameIconTemp","_defaultGameIconTemp$","_defaultGameIconTemp$2","navIndex","tempLangId","sections","settings","sectionJson","parse","every","blocks","block_order","validateFooterSections","getFooterSections","currentYear","getFullYear","parsedSettings","parsedTranslatedSettings","translatedSettings","sanitizeUrls","translatedSettingsBlock","b","_objectSpread","defaultSettings","entries","reduce","acc","block_id","block","links","_ref2","link_key","minHeight","_block$defaultSetting","heading","link_index","_block$defaultSetting2","defaultLink","linkItem","FallBackImage","fallbackSrc","_block$defaultSetting3","_block$defaultSetting4","ProviderIcon","containerClassName","imgLightMode","ProviderIconDisplay","imgClassName","imgSrc","imgDarkMode","imgAlt","toUpperCase","variable","parseVersion","whiteSpace","overflow","textOverflow","iconClassName","rest","typeConfig","notice","textColor","highlightColor","danger","default","borderRadius","DynamicLoadTable","_props$infiniteLoadEn","_supportInfiniteLoading","dataList","setDataList","totalRecords","setTotaRecords","searchEnabled","setSearchEnabled","autoscrollEnabled","setAutoscrollEnabled","apiQuery","setApiQuery","setTitle","isTable","setIsTable","pageSize","setTemplate","latestApiQuery","abortControllerRef","noDataBg","setNoDataBg","triggerCount","setTriggerCount","onScrollHandlerModal","popUpModalId","getElementById","windowHeight","clientHeight","docHeight","scrollHeight","offsetHeight","windowBottom","scrollTop","modalElement","modalBottom","scrollTo","behavior","getDataList","onScrollHandler","checkTriggerInfiniteLoading","container","elem","listContainer","bufferTriggerHeight","offsetTop","scrollY","innerHeight","list","signal","abortController","abort","AbortController","pageNumber","isQueryStringAppended","totalDataLoaded","isQueryStringAppended1","currentApiUrl","currentResponseJson","Util","returnRecord","_ClientTemplates$filt","_ClientTemplates$filt2","templateFilter","dataLength","render","justifyContent","paddingTop","paddingBottom","gridColumn","justifySelf","_LOGIN_SUCCESS","_LOGIN_FAILED","_LOGOUT","_GET_SHOP_CREDIT","_UPDATE_USER_DATA","_LOGIN_MODAL","performLoginReturnMessage","getState","jwtToken","userId","updateLoginUser","performLogout","resetLogin","bonusBalance","isAnyTransactionValidForPromo","labelClassName","inputClassName","small","inputGroupType","inputGroupContent","getValidationMessage","TransactionHistory","transactionDetailsActiveTaB","setTransactionDetailsActiveTaB","sortOrder","setSortOrder","searchTransactionHistory","setSearchTransactionHistory","referralBonus","setReferralBonus","isSubmitLoading","setIsSubmitLoading","GetReferralBonus","temp","initRebateCommission","statusHtml","bonusAmount","MyProfileModal","_memberData$phoneNumb","popout","showAlert","setShowAlert","birthDate","setBirthDate","subtract","maxDate","minDate","isEditBirthDate","setIsEditBirthDate","memberBankAccounts","setMemberBankAccounts","showAddPhoneNumberModal","setShowAddPhoneNumberModal","memberEwalletAccounts","setMemberEwalletAccounts","selectedPhoneNumberId","setSelectedPhoneNumberId","showDeletePhoneNumberModal","setShowDeletePhoneNumberModal","setPhoneNumType","completeProfile","completeProfileHandleSubmit","completeProfileErrors","setCompleteProfileError","getMemberEwalletAccounts","checkBirthDate","getMemberBankAccount","birthDateString","bankAccountList","bankAccount","bankName","accountNumber","bankId","accNum","handleVerifyOtp","user","isEmpty","userFullName","calender4","DatePicker","singleDatePicker","onApply","picker","alwaysShowCalendars","applyLabel","cancelLabel","showDropdowns","opens","containerStyles","profilePhone","isPhoneVerify","Skeleton","baseColor","settingsBank","wallet","verified","handleAddPhoneCallback","handleVerifyOtpCallback","LiveTransactions","transLoading","setTransLoading","latestDepositList","setLatestDepositList","latestWithdrawalList","setLatestWithdrawalList","getWithdrawalDepositTransaction","responseJson2","latestDepositData","transactionTypeId","latestWithdrawalData","amount","RecentBigWin","updateMasterProductId","updateSelectedGameIsSeamless","updateSelectedGameName","updateProductGameId","updatePopBannerImage","updateTitle","updateCategoryTitle","UpdateIsSupportIframe","updateProviderName","selectedGameHasOwnLobby","setSelectedGameHasOwnLobby","showPregamePopup","setShowPregamePopup","SetToLobbyBtn","bigWinList","setBigWinList","companyCurrencySymbol","isSupportIframeState","setIsSupportIframeState","categoryTitle","setCategoryTitle","setProviderName","isGameLobbyModal","setIsGameLobbyModal","slides","chunkArray","arr","chunkSize","dots","infinite","speed","slidesToShow","slidesToScroll","vertical","verticalSwiping","autoplay","autoplaySpeed","arrows","responsive","breakpoint","variableWidth","getBigWin","responseJsonBigWin","bigWinResult","pop","hasOwnLobby","gameName","isSeamless","popoutBanner","tempFromOptions","tempToOptions","product","option","productId","Slider","slide","winning","ReferralBanner","showCodeAlert","setShowCodeAlert","referralBanner","setReferralBanner","referralBannerMobile","setReferralBannerMobile","uplineLoading","setUplineLoading","referralDetails","copy1","setCopy1","copy2","setCopy2","_codeRef","_linkRef","registerUrl","setRegisterUrl","tempReferralBanner","tempReferralBannerMobile","copy","copyItem","clipboard","writeText","innerText","copyItem2","ProviderList","SwiperCore","use","Autoplay","gameCategoryActive","setGameCategoryActive","gameCategories","setGameCategories","setGames","latestBets","teamBanner","setTeamBanner","selectedGameCategoryGames","setSelectedGameCategoryGames","setHotgames","containerRef","pathnamesToFilter","gameList","defaultCategory","game","leftButton","rightButton","scrollAmount","scrollLeft","scrollBy","scrollRight","containerCurr","activeElement","activeElementLeft","offsetLeft","containerLeft","scrollAmountActive","selectedCategoryGameList","loading","LoadingGames","cx","cy","r","fillOpacity","stroke","strokeWidth","RecentPayout","payoutList","setPayoutList","payoutSlick","draggable","touchMove","getRecentPayout","responseJsonPayout","RecommendedSlots","_slotSlickRef$current","slotSlickRef","recommendedSlotGames","setRecommendedSlotGames","recommendedSlotGamesCount","setRecommendedSlotGamesCount","recommendedCasinoGames","setRecommendedCasinoGames","recommendedCasinoGamesCount","setRecommendedCasinoGamesCount","dragging","setDragging","loadingRecommendedGames","setLoadingRecommendedGames","slotSlick","lazyLoad","swipe","swipeToSlide","beforeChange","afterChange","recommendedGames","groupedArray","casinoRecommendedGame","casinoGameGrouped","getNewGames","innerSlider","children","_slotSlickRef$current2","slickPrev","_slotSlickRef$current3","slickNext","angleRight","index2","FeaturedSlots","_featuredSlickRef$cur","featuredSlickRef","featuredSlotGames","setFeaturedSlotGames","featuredSlotGamesCount","setFeaturedSlotGamesCount","featuredGame","isFeaturedGame","featuredGameGrouped","_featuredSlickRef$cur2","_featuredSlickRef$cur3","HotProviders","providerSlick","setProviderSlick","RecommendedCasino","_liveSlickRef$current","liveSlickRef","_liveSlickRef$current2","_liveSlickRef$current3","SpeakerIcon","MarqueAnnoucement","setContent","contents","getMarqueeTagContent","Marquee","velocity","HomePageBanner","bannerLoading","setBannerLoading","bannersList","setBannersList","getBanners","flexDirection","Swiper","spaceBetween","slidesPerView","onSlideChange","onSwiper","swiper","delay","disableOnInteraction","pauseOnMouseEnter","breakpoints","1280","1024","480","0","_","SwiperSlide","MobileLoginComponent","minimumDeposit","setMinimumDeposit","minimumWithdrawal","setMinimumWithdrawal","rolloverWarning","setRolloverWarning","getMinumumDepositWithdrawal","_responseJson$ApiKey$","_responseJson$ApiKey$2","vipName","checkMemberRollover","withdraw","Login","isAutoScrolling","isStopScroll","setIsStopScroll","isTransferSuccess","setIsTransferSuccess","transferShow","setTransferShow","toGameAmount","setToGameAmount","promoId","setPromoId","promoCodeList","setPromoCodeList","inputValue","setInputValue","promoShow","setPromoShow","paidAmount","setPaidAmount","transferDate","setTransferDate","transferLoading","setTransferLoading","showDepositSuccess","setShowDepositSuccess","showDepositFailed","setShowDepositFailed","showAnnouncementModal","setShowAnnouncementModal","announcementList","setAnnouncementsList","transcactionNumber","setTranscactionNumber","useMediaQuery","query","handleSubmitPopup","registerPopup","controlPopup","watchPopup","getValuesPopup","setValuePopup","errorsPopup","reset","resetPopup","handleWindowSizeChange","transactionStatus","getAnnouncement","closePopUp","startAutoScroll","startTime","performance","requestAnimationFrame","scroll","currentTime","elapsedTime","easeInOut","cos","PI","scrollToBottom","bool","deviceType","componentStatus","userComponentStatus","MobileLoginComponents","ReferralBannerComponent","fromWallet","toWallet","promotionProductId","gameWalletBalance","updateWalletBalance","transactionId","minDeposit","rollover","promo","PlaceholderLoading","shape","colorStart","colorEnd","announcementLanguages","property","encodedKey","encodeURIComponent","encodedValue","FormData","append","validationMsg","formatNumber","decimalPlaces","toLocaleString","minimumFractionDigits","decimal","force","CURRENCY_DECIMAL","toString","convertedNumber","pow","afterDecimalNumber","decimalDiff","processNumber","charAt","VALID_LOCALES","isValidLocale","hasValidLocale","browserLocale","extractLocaleFromPathname","regex2","pathSegments","segment","abbreviateNumber","number","parsedNumber","adjustFontSizeToFit","querySelectorAll","element","clientWidth","maxHeight","scrollWidth","waitForFbPixel","callback","timeout","checkFbq","_window$fbq","fbq","loaded","warn","sDate","setSDate","eDate","setEDate","calendarOpen","setCalendarOpen","startCalendar","endCalendar","optionClicked","setOptionClicked","currMinDate","setCurrMinDate","currMaxDate","setCurrMaxDate","chgOption","setchgOption","onStartDateChange","onEndDateChange","_DATE_SELECTIONS","to","checkOptionActive","isActive","separator","startDateStr","endDateStr","reverse","isBetween","startDateMoment","endDateMoment","tempMinDate","tempMaxDate","isSameOrBefore","add","isSameOrAfter","object","updateTypeOnSelection","selection","handleTouchStart","startDateTimeRef","endDateTimeRef","handleClickOutside","contains","DateTime","onFocus","inputProps","dateFormat","closeOnSelect","isValidDate","timeFormat","textTransform","webpackAsyncContext","req","Promise","resolve","__webpack_require__","o","Error","ids","all","Pagination","searchKeyword","currentPage","setCurrentPage","startPage","pageLimit","endPage","adjustedStartPage","goToPage","previousPage","nextPage","webpackEmptyAsyncContext","FallbackImage","imageLoaded","setImageLoaded","imageError","setImageError","handleLoad","_resources","common","common_en","common_kh","common_cn","common_vi","common_id","common_pt","common_bn","common_zh_hk","common_ur","common_ne","common_tpi","common_ho","initReactI18next","defaultNS","debug","resources","lng","fallbackLng","keySeparator","interpolation","escapeValue","axios","create","baseURL","withCredentials","headers","interceptors","request","onLine","requestConfig","interceptRequest","config","store","AppActions","reject","interceptResponse","returnData","AuthActions","interceptError","PageSettings","createContext","fetchRoute","themeVar","lazy","LiveChat","Settings","News","NewsDetails","GameLobby","UnderMaintenance","ContactUs","LiveChatPage","Promotion","PromotionInfo","CustomPage","GameList","Referral","Vip","Rebate","RecentGames","HotGames","IframeGamePage","_LOGIN_ROUTE3","exact","component","_ROUTES","authRequired","ConvertToLocalePath","routes","_LOCALED_ROUTES","route","localePath","UploadReloadReceipt","file","setFile","receiptReference","setReceiptReference","selected","setSelected","setAmount","isReloadSuccess","setIsReloadSuccess","reloadDate","setReloadDate","setMin","setMax","bankAccountId","setBankAccountId","selectedBank","setIsDisabled","setBankName","accNumber","setAccNumber","setLabel","bankref","setBankRef","bonusDeposit","setBonusDeposit","bankAccountOption","setBankAccountOption","addAmountList","setAddAmountList","_accNumberRef","_labelRef","_bankRef","copied","setCopied","toobj","setToobj","headerMsg","setHeaderMsg","hasPendingTxn","setHasPendingTxn","transType","setTransType","timeDiffSeconds","setTimeDiffSeconds","countdownTime","setCountdownTime","countdownStr","setCountdownStr","loadingSpinner","setLoadingSpinner","bankLogo","setBankLogo","collapse","setCollapse","bankError","setBankError","amountError","setAmountError","refError","setRefError","fileError","setFileError","errorMessage","setErrorMessage","depositPresetAmtArray","updatedData","pendingTransactionJson","tempS","bankOptions","maximumDeposit","tempPeriod","tempX","tempMM","tempSS","tempStr","getBankAccInfo","debouncedAmount","textToCopy","tagName","catch","bank","bankIndex","formattedCurrency","total","paddingLeft","paddingRight","sanitizedValue","htmlFor","bytes","decimals","k","dm","sizes","formatBytes","hidden","selectedFile","files","accept","panel","handleRedirect","InstantPayDeposit","selectedEwallet","setSelectedEwallet","isDirect","setIsDirect","displayNotes","setDisplayNotes","instantBankSetting","setInstantBankSetting","instantPayGatewayId","setinstantPayGatewayId","phoneOption","setPhoneOption","requirePhone","setRequirePhone","phone","setPhone","errorPhone","setErrorPhone","_props$instantBankSet","_props$instantBankSet2","instantBankSettingModelList","instantBankSettingModel","instantPayGatewayNotes","bankCode","validationError","validatePhone","instantPayBankSettingId","instantPay","Deposit","instantPayOption","setInstantPayOption","paymentOptionList","setPaymentOptionList","paymentOption","setPaymentOption","activeTab","setActiveTab","showFullnamePopup","setShowFullnamePopup","memberId","setMemberId","activePaymentOption","setActivePaymentOption","showConfirmation","setShowConfirmation","showBankOptions","setShowBankOptions","showBackward","setShowBackward","setIsNormalDepositEnable","activeIndex","setActiveIndex","setSelectedBank","filterBankOptions","setFilterBankOptions","initOptions","responseJsonData","tempOptions","responseJsonBank","hasEwallet","some","isEwallet","paymentType","fee","remark","account","instantPayGatewayString","serviceCharge","remarks","notes","normalOptions","warning","confirmBtnBsStyle","borderColor","angleDown","class","instantBankSettingId","CompleteInfoModal","priorityModalType","fullName","WithdrawByBankTransfer","onRenderComplete","onAfterHandleCheck","setAction","addSuccessModelShow","setAddSuccessModelShow","setAccountNumber","setAccountHolderName","isInsufficientAmount","setIsInsufficientAmount","bankOption","setBankOption","isWithdrawalSuccess","setIsWithdrawalSuccess","withdrawalAmount","setWithdrawalAmount","withdrawalDate","setWithdrawalDate","showPinEntry","setShowPinEntry","showVerifyPhone","setShowVerifyPhone","changePinShow","setChangePinShow","mainForm","setSuccess","successMsg","setSuccessMsg","pinEntered","setPinEntered","pinNumberFinal","setPinNumberFinal","enteredPinNumberFinal","setEnteredPinNumberFinal","pinNumberFinalFocused","setPinNumberFinalFocused","initDone","setInitDone","hasRolloverBal","setHasRolloverBal","memberEmail","setMemberEmail","memberPhone","setMemberPhone","transactionData","setTransactionData","showModal","setShowModal","displayDataIndex","setDisplayDataIndex","totalWithdrawAmountToday","setTotalWithdrawAmountToday","totalWithdrawCountToday","setTotalWithdrawCountToday","isWithdrawalLimitError","setIsWithdrawalLimitError","remainingWithdrawalLimit","setRemainingWithdrawalLimit","memberWithdrawalAmountLimit","setMemberWithdrawalAmountLimit","specificElementRef","isWithdrawLoading","setIsWithdrawLoading","getMemberDetails","transactionTodayJson","transactionsToday","totalAmount","accumulator","bankList","maximumWithdrawal","getBankList","bankInfo","maxWithdrawalAmount","maxWithdrawalCount","withdrawAmountLimitRemainingToday","triggerParentFunction","createAccParams","createAccResponseJson","createTransParams","bankAccountNumber","bankAccountHolderName","createTransResponseJson","createTransParams2","submitWithdrawal","defaultValue","handleSelectedBank","pointerEvents","addAccountHolderName","addAccountNumber","WithdrawByPhoneNumber","selectedBankCode","eWalletError","setEWalletError","phoneNumberList","phoneNumberData","handleSelectedPhoneNumber","1","WithdrawalMethods","isHidden","showWithdrawBankTransfer","setShowWithdrawBankTransfer","showWithdrawTopkash","setShowWithdrawTopkash","showWithdrawMethods","setShowWithdrawMethods","showWithdrawBCPay","setShowWithdrawBCPay","isInitFinished","setIsInitFinished","isWithdrawEleReady","setIsWithdrawEleReady","showWithdrawByPhoneNumber1","setShowWithdrawByPhoneNumber1","showWithdrawByPhoneNumber2","setShowWithdrawByPhoneNumber2","showWithdrawByEWallet","setShowWithdrawByEWallet","withdrawMethods","setWithdrawMethods","setIsNormalWithdrawalEnable","selectedWithdrawMethod","setSelectedWithdrawMethod","handleChildRenderComplete","afterHandleCheck","withdrawList","handle","responseJson3","ewalletlList","getBankEwallet","WithdrawByEWallet","DepositWithdrawalModal","isDepositModal","depositAndWithdrawActive","modalRef","handleWithdrawalMethodsModal","scrollIntoView","DownlineDetails","setShowDownlineDetail","showDownlineDetail","setShowDownlineList","setShowDownlineDetailTab","downlineData","setDownlineData","referralUsed","setReferralUsed","categories","setCategories","setProducts","nickname","setNickname","referralCodeDetail","setReferralCodeDetail","referralGroupOptions","setReferralGroupOptions","selectedReferralGroup","setSelectedReferralGroup","loadingDetails","setLoadingDetails","editDownlineShow","setEditDownlineShow","registerNickname","handleSubmitNickname","errorsNickname","setValueNickname","watchNickname","controlNickname","triggerNickname","goBack","referralNickname","DownlineSummary","monthOptions","setMonthOptions","selectedMonth","setSelectedMonth","selectedYear","setSelectedYear","selectedGroup","setSelectedGroup","downlineShow","setDownlineShow","recentData","downline","memberLMData","setMemberLMData","selectedDate","setSelectedDate","queryProduct","setQueryProduct","searchTrigger","setSearchTrigger","isDateFilterOpen","setIsDateFilterOpen","newGen","setNewGen","newAllGens","setNewAllGens","totalGens","setTotalGens","totalAllGen","setTotalAllGen","numberOfGen","setNumberOfGen","memberDetailUrl","setMemberDetailUrl","showDownlineLsit","targetedMonth","controller","apiController","numberOfGens","getRecentMember","getReportDate","month","year","apiUrl2","data2","report","bd","lg","DownlineKPI","activeMemberCount","setActiveMemberCount","inactiveMemberCount","setInactiveMemberCount","showDownlineList","searchL1DownlineMemberData","setSearchL1DownlineMemberData","setSearchKeyword","downlineStatusActiveTab","setDownlineStatusActiveTab","scrollCategory","downlineStatusTabId","getDownlineMemberData","memberDownlineStatus","totalActiveMemberCount","totalInactiveMemberCount","getDownlineMemberStatusCount","downlineMemberData","sortedDownlineMemberData","orderBy","clearSearchField","Trans","i18nKey","getText","handleSort","prevOrder","createdDate","totalDeposit","Downline","isDownlineModal","downlineDetailsActiveTab","setDownlineDetailsActiveTab","showDownlineDetailTab","downlineTabId","DownLineSummary","DownlineModal","ShareReferralModal","isShareReferralModal","getUpline","ShareButton","useMemo","InlineShareButtons","alignment","enabled","font_size","networks","radius","LoginModal","ls","mode","hideNewPassword","setHideNewPassword","hideConfirmPassword","setHideConfirmPassword","visibleLoginAlert","setVisibleLoginAlert","loginMessage","setLoginMessage","isForgotPasswordLoading","setIsForgotPasswordLoading","isTacModal","setIsTacModal","attempt","setAttempt","FPButtonAttempt","setFPButtonAttempt","isResetPasswordLoading","setIsResetPasswordLoading","emailExist","setEmailExist","tacCode","setTacCode","countryCode","setCountryCode","loginRegister","loginHandleSubmit","loginErrors","loginSetValue","forgotPasswordRegister","forgotPasswordHandleSubmit","forgotPasswordErrors","forgotPasswordWatch","forgotPasswordSetValue","forgotPasswordUnregister","submitVerifyTAC","Alert","isKeepedPassword","Do3SwI4cuvqR","gR1IPGBN01dS","PYTLczcty9uH","loginRes","loginType","shouldValidate","ResetPasswordModal","setResetPasswordLoading","resetPassword","resetPasswordHandleSubmit","resetPasswordErrors","setResetPasswordError","confirm_password","getTransactionData","sortedtransactionData","transactionType","card","okup_withdraw","dateTime","GameHistory","gameHistoryData","setGameHistoryData","totalProducts","setTotalProducts","recordUrl","setRecordUrl","dateSelectedOption","setDateSelectedOption","getGameRecords","productList","sortedGameHistoryData","CommissionHistory","commissionData","setCommissionData","commissionUrl","setCommissionUrl","getCommissionData","commData","sortedCommissionMemberData","parsedTime","turnover","RebateHistory","DailyCheckInHistory","dailyRecordData","setDailyRecordData","getDailyCheckInData","rolloverMultiplier","ReportOverview","updatedRecordType","isReportOverviewModal","RegisterModal","registerStepsViaOtherChannel","setRegisterStepsViaOtherChannel","smsChannel","setSmsChannel","chatSphereChannel","setChatSphereChannel","chatSphereChannelList","setChatSphereChannelList","channleClick","setChannleClick","channelType","setChannelType","showModalRegister","setShowModalRegister","chatSphereChannelEnabled","smsChannelEnabled","chatSphereActionType","loadCaptchaEnginge","defaultLang","submitForm","validateCaptcha","loginCaptcha","dialingCode","registerWithoutOTP","LoadCanvasTemplateNoReload","DailyCheckInModal","dailyItems","setDailyItems","disabledClaim","setDisabledClaim","accumulateDay","setAccumulateDay","monthMode","setMonthMode","monthText","setMonthText","dcid","setDcid","timezone","setTimezone","claimedAmount","setClaimedAmount","successAlert","setSuccessAlert","checkDailyCheckInStatus","dailyDetails","timeZone","totalDaysLeft","claimed","today","monthName","getMonth","dailySuccess","credit","day","classDaily","actived","dailyTick","iconReward","activeItem","dcdid","claimDailyCheckIn","ReferralBonusModal","ReferralBonus","Content","Component","constructor","_props$template","super","resetTimeout","this","startTimeout","reload","_TIMEOUT_TIME","currroutes","loginRoute","bottomNavIndex","ComponentRoute","routeComponent","PrivateRoute","routeData","isLoggedIn","shouldRedirect","currentReference","redirectPath","getLocaleUrl","Route","Redirect","Suspense","fallback","renderFallback","componentWillUpdate","loginRouteVar","routesVar","setState","componentDidMount","loadData","componentWillMount","currRoutePath","hotGameWebUrl","normalizedPathname","normalizedCurrRoutePath","normalizedHotGameUrl","routeSegments","hotGameSegments","localeSegment","Consumer","pageContentFullWidth","pageContentClass","pageContentInverseMode","Switch","ReportOverviewModal","connect","withRouter","LoadingOverlay","propTypes","App","handleSetPageContent","pageContent","handleSetPageContentClass","handleSetPageContentFullHeight","pageContentFullHeight","handleSetPageContentFullWidth","handleSetPageContentInverseMode","handleSetPageFooter","pageFooter","handleSetBodyWhiteBg","classList","remove","pageNavBar","errorInfo","handleSetPageBoxedLayout","interval1","appLoad","scrollRef","createRef","hasCustomSkin","activeTheme","backgroundImage","root","fetchSettings","getMeta","componentDidUpdate","prevProps","_this$props$appState$","_this$props$appState$2","_this$props$appState$3","getSetting","seoContent","seoImage","componentDidCatch","getPageSlug","pageSlug","encodedPageSlug","encodedLanguage","seoManagementFlag","customScripts","languageSeoTitle","languageSeoDescription","languageSeoImage","languageCustomScripts","matches","html","contentWithoutScriptTags","tags","pageNameOverride","seoTitleOverride","seoDescriptionOverride","seoImageOverride","rawScripts","hideApkBanner","presetAmtData","chatsphereData","chatsphere","brandNameData","siteTitleData","siteTitle","siteDescriptionData","siteDescription","faviconData","favicon","htmlStyleData","userStatus","userStatusInString","customScriptData","customScript","customScriptFooterData","customScriptFooter","currencyData","languagesData","mediasData","channelsData","styleElement","innerHTML","head","scriptElement","_APPEND_REGISTER_WHATSAPP_URL","_APPEND_REGISTER_TELEGRAM_URL","contentLength","newData","newList","contentLength1","jsonObj","metaType","titleList","meta","script","noscript","base","trimmedContent","jsonObject","replaceAll","scriptList","metaList","linkList","noscriptList","baseList","contentAll","scrips","metas","listPage","filterList","obj","splice","a","noscripts","bases","seo","objectFit","marginRight","Provider","Helmet","loginStateInitialized","active","styles","overlay","zIndex","classNames","userSelect","WebkitTouchCallout","WebkitUserSelect","MozUserSelect","msUserSelect","pageSidebarToggled","toggleMobileSidebar","withTranslation","ReactDOM","BrowserRouter","menu","menu3","angleUp","moreVertical","home","activity","downlines","referral","sales","home1","star","qrcode","delete","upload","claim","eyeblocked","info","cog","alertCircle","edit","statistic","checkmark","huione","usdt","bubbles","usercheck","giftpace","topkash","sliderArrowRight","sliderArrowLeft","wingWeiluy","facebook2","telegram","whatsapp","instagram","exclamation_solid","livechat_mobile","envelope4","gameCount","starEmpty","starFull","exitFullScreen","mlmIcon","dashboardAnnouncement","dashboardNotification","dashboardBalanceDeposit","dashboardBalanceWithdraw","dashboardBalanceRestore","dashboardBalanceTransfer","dashboardBalanceWallet","dashboardCommissionClaim","dashboardCommissionDownlines","dashboardCommissionReferral","dashboardCommissionSales","dashboardPoints","dashboardPointsCheckin","dashboardPointsShop","dashboardPointsHistory","dashboardPointsRecord","settingsLanguage","settingsPassword","settingsPin","settingsLivechat","settingsTerms","settingsLogout","volumeHigh","volumeMute","profileMail","rows","columns","covers","LazyLoad","banner","_INITIAL_STATE","apiCalledResponse","savedText","savedReferralText","gameSavedText","savedQuery","savedReferralQuery","gameQuery","bottomTabIndex","walletInfo","reportOverview","displayData","newDisplayData","totalTransferToWallet","totalTransferToWalletLM","totalTransferToMember","totalTransferToMemberLM","totalBetAmount","totalBetAmountLM","totalCommission","totalCommissionLM","totalVipCommission","totalBonus","themeName","_busyCount","creditLimit","isToggleLoginModal","_INITIALSTATE","createStore","combineReducers","composeWithDevTools","applyMiddleware","thunk"],"mappings":"oGAAA,kkBAIO,MAAMA,KACFC,iBAAmB,UADjBD,EAEFE,iBAAmB,UAFjBF,EAGFG,cAAgB,OAHdH,EAIFI,cAAgB,OAJdJ,EAMFK,kBAAoB,eANlBL,EAOFM,YAAc,SAPZN,EAQFO,sBAAwB,mBARtBP,EASFQ,0BAA4B,iBAT1BR,EAUFS,qBAAuB,oCAVrBT,EAWFU,UAAY,OAXVV,EAYFW,SAAW,MASf,MAAMC,KACJC,WAAa,iBADTD,EAEJE,YAAc,kBAFVF,EAGJG,kBAAoB,qBAHhBH,EAIJI,mCAAqC,sCAJjCJ,EAKJK,6BAA+B,gCAL3BL,EAMJM,cAAgB,oBANZN,EAQJO,6BAA+B,kCAR3BP,EASJQ,gCAAkC,oCAT9BR,EAUJS,2BAA6B,oCAVzBT,EAWJU,4BAA8B,oCAX1BV,EAYJW,+BAAiC,oCAZ7BX,EAcJY,sBAAwB,0BAdpBZ,EAgBJa,4BAA8B,kCAhB1Bb,EAiBJc,oCACL,sCAlBSd,EAoBJe,wBAA0B,kBApBtBf,EAqBJgB,gDACL,oDAtBShB,EAuBJiB,kCACL,yCAxBSjB,EAyBJkB,2BAA6B,mCAzBzBlB,EA0BJmB,2BAA6B,wBA1BzBnB,EA2BJoB,wCACL,mCA5BSpB,EA6BJqB,+BAAiC,+BA7B7BrB,EA8BJsB,sBAAwB,6BA9BpBtB,EA+BJuB,0BAA4B,iCA/BxBvB,EAgCJwB,iCAAmC,uCAhC/BxB,EAiCJyB,sCAAwC,4CAjCpCzB,EAkCJ0B,8BAAgC,qCAlC5B1B,EAmCJ2B,qCAAuC,qCAnCnC3B,EAoCJ4B,+BAAiC,sCApC7B5B,EAqCJ6B,wCACL,6CAtCS7B,EAuCJ8B,qCACL,2CAxCS9B,EAyCJ+B,kBAAoB,gCAzChB/B,EA0CJgC,mCAAqC,+BA1CjChC,EA2CJiC,iCAAmC,uCA3C/BjC,EA4CJkC,iCAAmC,uCA5C/BlC,EA6CJmC,oBAAsB,yBA7ClBnC,EA8CJoC,4BAA8B,mCA9C1BpC,EA+CJqC,2BAA6B,kCA/CzBrC,EAgDJsC,4BAA8B,+BAhD1BtC,EAiDJuC,4BAA8B,+BAjD1BvC,EAkDJwC,6BAA+B,gCAlD3BxC,EAmDJyC,2BAA6B,6BAnDzBzC,EAoDJ0C,6BAA+B,+BApD3B1C,EAqDJ2C,kCACL,qCAtDS3C,EAuDJ4C,gCAAkC,kCAvD9B5C,EAwDJ6C,kCACL,oCAzDS7C,EA0DJ8C,6BAA+B,gCA1D3B9C,EA2DJ+C,+BAAiC,sCA3D7B/C,EA6DJgD,gCAAkC,uCA7D9BhD,EA+DJiD,qCACL,wCAhESjD,EAiEJkD,qCACL,qCAlESlD,EAmEJmD,yBAA2B,iCAnEvBnD,EAoEJoD,qCACL,0CArESpD,EAsEJqD,2BAA6B,8BAtEzBrD,EAuEJsD,6BAA+B,oCAvE3BtD,EAyEJuD,gCAAkC,uCAzE9BvD,EA4EJwD,uBAAyB,+BA5ErBxD,EA8EJyD,qCACL,2CA/ESzD,EAgFJ0D,iCACL,6CAjFS1D,EAkFJ2D,+BAAiC,2CAlF7B3D,EAmFJ4D,kCACL,6CApFS5D,EAqFJ6D,sDACL,+DAtFS7D,EAuFJ8D,yBAA2B,sCAvFvB9D,EAwFJ+D,wBAA0B,mCAxFtB/D,EAyFJgE,uBAAyB,oCAzFrBhE,EA0FJiE,2BAA6B,+CA1FzBjE,EA2FJkE,4BAA8B,yCA3F1BlE,EA4FJmE,6BAA+B,wCA5F3BnE,EA8FJoE,uBAAyB,oCA9FrBpE,EA+FJqE,8BAAgC,0CA/F5BrE,EAiGJsE,+BAAiC,0CAjG7BtE,EAkGJuE,uCACL,iDAnGSvE,EAqGJwE,uCACL,0CAtGSxE,EAuGJyE,0CACL,0CAxGSzE,EAyGJ0E,gCAAkC,gCAzG9B1E,EA0GJ2E,mBAAqB,yBA1GjB3E,EA2GJ4E,iCAAmC,oCA3G/B5E,EA4GJ6E,sBAAwB,4BA5GpB7E,EA6GJ8E,wBAA0B,6BA7GtB9E,EA+GJ+E,wCACL,iDAhHS/E,EAkHJgF,sCACL,0CAnHShF,EAoHJiF,iCAAmC,sCApH/BjF,EAqHJkF,qBAAuB,2BArHnBlF,EAsHJmF,+BAAiC,2CAtH7BnF,EAuHJoF,6BAA+B,oCAvH3BpF,EAwHJqF,uCACL,6CAzHSrF,EA2HJsF,mCACL,yCA5HStF,EA6HJuF,8CACL,iDA9HSvF,EA+HJwF,+CACL,oDAhISxF,EAiIJyF,8BAAgC,kCAjI5BzF,EAkIJ0F,uBACL,4BAnIS1F,EAqIJ2F,6BACL,kCAtIS3F,EAwIJ4F,2BAA6B,4BAxIzB5F,EAyIJ6F,6BAA+B,8BAzI3B7F,EA0IJ8F,4BAA8B,gCA1I1B9F,EA4IJ+F,gBAAkB,kBA5Id/F,EA6IJgG,qBAAuB,sCA7InBhG,EA8IJiG,gCAAkC,uCA9I9BjG,EAgJJkG,4BAA8B,+BAhJ1BlG,EAiJJmG,mBAAqB,sBAjJjBnG,EAkJJoG,yBAA2B,8BAlJvBpG,EAmJJqG,kCAAoC,mCAnJhCrG,EAoJJsG,+BAAiC,0BApJ7BtG,EAsJJuG,qBAAuB,6BAtJnBvG,EAuJJwG,gCAAkC,mCAvJ9BxG,EAwJJyG,4BAA8B,mCAxJ1BzG,EAyJJ0G,0BAA4B,kCAzJxB1G,EA0JJ2G,8CACL,mDA3JS3G,EA4JJ4G,iCAAmC,wCA5J/B5G,EA6JJ6G,wBAA0B,+BA7JtB7G,EA+JJ8G,mCACL,0CAhKS9G,EAiKJ+G,oCACL,2CAlKS/G,EAmKJgH,wBAA0B,4BAnKtBhH,EAoKJiH,uBAAyB,2BApKrBjH,EAqKJkH,sBAAwB,0BArKpBlH,EAsKJmH,kBAAoB,sBAtKhBnH,EAwKJoH,yBAA2B,4BAxKvBpH,EA4KJqH,qCACL,2CA7KSrH,EA8KJsH,wCACL,2CA/KStH,EAiLJuH,eAAiB,wBAjLbvH,EAmLJwH,mBAAqB,sBAnLjBxH,EAoLJyH,qBAAuB,0BApLnBzH,EAsLJ0H,8BAAgC,qCAtL5B1H,EAwLJ2H,uBAAyB,2BAxLrB3H,EA0LJ4H,+BAAiC,sCA1L7B5H,EA4LJ6H,gCAAkC,kCA5L9B7H,EA6LJ8H,4BAA8B,+BA7L1B9H,EA8LJQ,gCAAkC,oCA9L9BR,EAgMJ+H,2BAA6B,+BAhMzB/H,EAkMJgI,kCACL,0CAnMShI,EAqMJiI,yBAA2B,kCArMvBjI,EAsMJkI,kCAAoC,6BAtMhClI,EAuMJmI,iCACL,yBAxMSnI,EA0MJoI,mCAAqC,yCA1MjCpI,EA2MJqI,uBAAyB,8BA3MrBrI,EA4MJsI,mBAAqB,kBA5MjBtI,EA6MJuI,gDACL,6CA9MSvI,EAgNJwI,6CACL,4CAjNSxI,EAmNJyI,2BAA6B,4BAnNzBzI,EAoNJ0I,iCAAmC,gCApN/B1I,EAqNJ2I,sCACL,oCAtNS3I,EAwNJ4I,8BAAgC,yCAxN5B5I,EA0NJ6I,8BAAgC,mCA1N5B7I,EA2NJ8I,6BAA+B,oCA3N3B9I,EA4NJ+I,yCACL,8CA7NS/I,EA+NJgJ,iBAAmB,wBA/NfhJ,EAgOJiJ,0BAA4B,0CAhOxBjJ,EAiOJkJ,6BAA+B,oCAjO3BlJ,EAmOJmJ,+BAAiC,uCAnO7BnJ,EAqOJoJ,gCACL,4CAtOSpJ,EAuOJqJ,wCACL,6CAxOSrJ,EAyOJsJ,oBAAsB,6BAzOlBtJ,EA0OJuJ,2CACL,0CA3OSvJ,EA4OJwJ,wBAA0B,+BA5OtBxJ,EA6OJyJ,uBAAyB,+BA7OrBzJ,EA8OJ0J,mCACL,sCA/OS1J,EAgPJ2J,uBAAyB,gCAhPrB3J,EAiPJ4J,0BAA4B,6BAjPxB5J,EAkPJ6J,0BAA4B,+BAlPxB7J,EAmPJ8J,2BAA6B,gCAnPzB9J,EAoPJ+J,gCACL,0CArPS/J,EAuPJgK,gCACL,0CAxPShK,EAyPJiK,4BAA8B,mCAzP1BjK,EA2PJkK,kBAAoB,sBA3PhBlK,EA4PJmK,iBAAmB,sBA5PfnK,EA6PJoK,wCACL,yCA9PSpK,EAgQJqK,gCACL,4CAjQSrK,EAkQJsK,0BAA4B,iCAlQxBtK,EAmQJuK,wBAA0B,8BAnQtBvK,EAoQJwK,sBAAwB,2BApQpBxK,EAuQJyK,oCACL,oCAxQSzK,EAyQJ0K,0CACL,wCA1QS1K,EA2QJ2K,6DACL,qEA5QS3K,EA6QJ4K,sCACL,gDA9QS5K,EA+QJ6K,6BAA+B,yCA/Q3B7K,EAgRJ8K,4BAA8B,wCAhR1B9K,EAiRJ+K,qBAAuB,2BAjRnB/K,EAkRJgL,WAAa,cAlRThL,EAmRJiL,gCAAkC,wCAnR9BjL,EAqRJkL,oCAAsC,0CArRlClL,EAsRJmL,qCAAuC,4CAtRnCnL,EAuRJoL,6BAA+B,oCAvR3BpL,EAwRJqL,uBAAyB,+BAxRrBrL,EA0RJsL,wBAA0B,8BA1RtBtL,EA2RJuL,wBAA0B,gCA3RtBvL,EA6RJwL,yBAA2B,iCA7RvBxL,EA8RJyL,wCAA0C,8CA9RtCzL,EAgSJ0L,kBAAoB,oBAhShB1L,EAkSJ2L,8BAAgC,4CAlS5B3L,EAoSJ4L,+BAAiC,sCApS7B5L,EAqSJ6L,yBAA2B,6BArSvB7L,EAwSJ8L,eAAiB,sBAxSb9L,EAySJ+L,eAAiB,sBAzSb/L,EA0SJgM,gBAAkB,uBA1SdhM,EA2SJiM,2BAA6B,2BA3SzBjM,EA6SJkM,gCAAkC,qCA7S9BlM,EA8SJmM,sCAAwC,iCA9SpCnM,EA+SJoM,+BAAiC,iCA/S7BpM,EAiTJqM,sBAAwB,gCAjTpBrM,EAkTJsM,oCAAsC,oCAlTlCtM,EAoTJuM,2BAA6B,6BApTzBvM,EAqTJwM,iBAAmB,sBArTfxM,EAsTJyM,oBAAsB,yBAtTlBzM,EAuTJ0M,iBAAmB,sBAvTf1M,EAwTJ2M,2BAA6B,8BAxTzB3M,EAyTJ4M,0BAA0B,2BAzTtB5M,EA2TJ6M,0BAA4B,iCA3TxB7M,EA4TJ8M,iCAAmC,0CA5T/B9M,EAgUJ+M,kCAAoC,kCAhUhC/M,EAiUJgN,iCAAmC,iCAjU/BhN,EAmUJiN,uBAAyB,2BAnUrBjN,EAqUJkN,iBAAmB,qBArUflN,EAsUJmN,wBAA0B,2BAtUtBnN,EAwUJoN,yBAA2B,6BAxUvBpN,EA0UJqN,2BAA6B,2BA1UzBrN,EA2UJsN,0BAA4B,2BA3UxBtN,EA4UJuN,+BAAiC,+BA5U7BvN,EA6UJwN,sCAAwC,oCA7UpCxN,EA8UJyN,mCAAqC,2CA9UjCzN,EAgVJ0N,wBAA0B,mCAhVtB1N,EAiVJ2N,0BAA4B,qCAjVxB3N,EAkVJ4N,2BAA6B,gCAlVzB5N,EAmVJ6N,+BAAiC,gCAnV7B7N,EAsVJ8N,yBAA2B,iCAtVvB9N,EA0VJ+N,sBAAwB,yBA1VpB/N,EA2VJgO,oCAAsC,oCA3VlChO,EA4VJiO,4BAA8B,+BA5V1BjO,EA6VJkO,uBAAyB,yBA7VrBlO,EA8VJmO,mBAAqB,qBA9VjBnO,EA+VJoO,6BAA+B,+BA/V3BpO,EAgWJqO,oCAAsC,gEAhWlCrO,EAiWJsO,8CAAgD,8DAjW5CtO,EAkWJuO,sDAAwD,kEAlWpDvO,EAoWJwO,+BAAiC,iCApW7BxO,EAqWJyO,iCAAmC,6BArW/BzO,EAwWJ0O,6BAA+B,+BAxW3B1O,EAyWJ2O,8BAAgC,gCAzW5B3O,EA2WJ4O,wBAA0B,yBA3WtB5O,EA4WJ6O,uBAAyB,4BA5WrB7O,EA8WJ8O,sCAAwC,6CA9WpC9O,EAiXJ+O,4BAA8B,gCAjX1B/O,EAmXFgP,sCAAwC,uCAnXtChP,EAqXJiP,+BAAiC,uCArX7BjP,EAuXJkP,+BAAiC,kCAvX7BlP,EAwXJmP,yBAA0B,2BAxXtBnP,EAyXJoP,kBAAmB,sBAzXfpP,EA0XJqP,6BAA+B,gCA1X3BrP,EA2XJsP,2BAA6B,6BA3XzBtP,EA4XJuP,kCAAoC,qCA5XhCvP,EA6XJwP,mBAAqB,oBA7XjBxP,EA8XJyP,sBAAwB,0BAO1B,MAAMC,EAGX,0BAKE,OAJKA,EAAWC,gBAEdD,EAAWC,cAAgBC,aAAaC,QAAQC,EAAWC,YAAc,MAEpEL,EAAWC,cAIpB,wBAAwBK,GACtBJ,aAAaK,QAAQH,EAAWC,UAAWC,GAC3CN,EAAWC,cAAgBK,EAI7B,oBAAoBE,GAIlB,MAHY,MAARA,IACFA,EAAM,IAEF,IAANC,OAAWT,EAAWC,eAAaQ,OAAGD,IAtB7BR,EACJC,cAAgB,KADZD,EA6DJU,UAAY,IA7DRV,EA8DJW,UAAY,IA9DRX,EAgEJY,WAAa,SAhETZ,EAiEJa,cAAgB,YAjEZb,EAoEJc,cAAgB,YApEZd,EAsEJe,eAAiB,aAtEbf,EAuEJgB,uBAAyB,qBAvErBhB,EA0FJiB,cAAgB,YA1FZjB,EA2FJkB,UAAY,QA3FRlB,EA4FJmB,kBAAoB,gBA5FhBnB,EAgGJoB,gBAAkB,cAhGdpB,EAsHJqB,gBAAkB,cAtHdrB,EAuHJsB,eAAiB,YAvHbtB,EA6HJuB,SAAW,OA7HPvB,EA2JJwB,eAAiB,aA3JbxB,EA4JJyB,oBAAsB,SA5JlBzB,EA2KJ0B,eAAiB,aA3Kb1B,EA4KJ2B,cAAgB,YA5KZ3B,EA6KJ4B,kBAAoB,gBA7KhB5B,EA8KJ6B,SAAW,cA9KP7B,EAoLJ8B,sBAAwB,UApLpB9B,EAqLJ+B,qBAAuB,SArLnB/B,EAsLJgC,sBAAwB,UAtLpBhC,EAuLJiC,wBAA0B,QAvLtBjC,EAwLJkC,oBAAsB,QAxLlBlC,EAyLJmC,yBAA2B,aAzLvBnC,EA0LJoC,uBAAyB,WA1LrBpC,EA2LJqC,sBAAwB,UA3LpBrC,EA4LJsC,qBAAuB,SA5LnBtC,EA6LJuC,wBAA0B,YA7LtBvC,EA8LJwC,qBAAuB,SA9LnBxC,EAgMJyC,YAAc,UAhMVzC,EAiMJ0C,yBAA2B,eAjMvB1C,EAmMJ2C,sBAAwB,aAnMpB3C,EAoMJ4C,qBAAuB,cApMnB5C,EAqMJ6C,eAAiB,aAInB,MAAMC,EAAS,IAAIC,MAAM/C,EAAY,CAC1CgD,IAAIC,EAAQC,EAAMC,GAChB,GAAID,EAAKE,WAAW,QAAS,CAC3B,MAAMC,EAAUC,QAAQN,OAAOO,WACzBjD,EAASN,EAAWwD,mBAI1B,MAAM,IAAN/C,OAAWH,GAAMG,OAAG4C,GAGtB,OAAOC,QAAQN,OAAOO,cAOnB,MAAME,KACJC,SAAW,EADPD,EAEJE,UAAY,EAFRF,EAGJG,SAAW,EAMb,MAAMC,KACJC,SAAW,KADPD,EAEJE,OAAS,KAFLF,EAGJG,SAAW,KAHPH,EAIJI,YAAc,KAJVJ,EAKJK,OAAS,KALLL,EAMJM,YAAc,KANVN,EAOJO,SAAW,KAPPP,EAQJQ,qBAAuB,KARnBR,EASJS,QAAU,KATNT,EAUJU,MAAQ,KAVJV,EAWJW,WAAa,MAXTX,EAYJY,WAAa,KAMf,MAAMrE,KACJC,UAAY,WADRD,EAEJsE,YAAc,YAFVtE,EAGJuE,WAAa,WAMf,MAAMC,KACJC,aAAe,EADXD,EAEJE,MAAQ,EAFJF,EAGJG,SAAW,EAHPH,EAIJI,QAAU,EAJNJ,EAKJK,mBAAqB,EAMvB,MAAMC,KACJC,SAAW,EADPD,EAEJE,YAAc,EAFVF,EAGJG,OAAS,EAHLH,EAIJI,YAAc,EAJVJ,EAKJK,QAAU,EALNL,EAMJM,UAAY,EANRN,EAOJO,eAAiB,EAPbP,EAQJQ,QAAU,EARNR,EASJS,YAAc,EATVT,EAUJU,iBAAmB,GAVfV,EAWJW,cAAgB,GAXZX,EAYJY,mBAAqB,GAZjBZ,EAaJa,mBAAqB,GAbjBb,EAcJc,YAAc,GAdVd,EAeJe,QAAU,IAfNf,EAgBJgB,gBAAkB,GAMpB,MAAMC,KACJC,MAAQ,EADJD,EAEJE,WAAa,EAFTF,EAGJG,aAAe,EAHXH,EAIJI,UAAY,EAJRJ,EAKJK,UAAY,EALRL,EAMJM,eAAiB,EAMnB,MAAMC,KACJC,cAAgB,WADZD,EAEJE,gBAAkB,YAFdF,EAGJG,gBAAkB,YAMpB,MAAMC,KACJC,SAAW,UADPD,EAEJE,MAAQ,OAFJF,EAGJG,SAAW,UAHPH,EAIJI,SAAW,UAJPJ,EAKJK,QAAU,SALNL,EAMJM,OAAS,QANLN,EAOJO,OAAS,QAPLP,EAQJQ,QAAU,SAMZ,MAAMC,KACJC,QAAU,EADND,EAEJ3D,SAAW,EAFP2D,EAGJE,WAAa,EAMf,MAAMC,KACJC,iBAAmB,EADfD,EAEJE,kBAAoB,EAOtB,MAAMC,KACJC,SAAW,EADPD,EAEJZ,SAAW,EAFPY,EAGJE,QAAU,EAMZ,MAAMC,KACJC,aAAe,EADXD,EAEJE,gBAAkB,EAFdF,EAGJG,gBAAkB,EAHdH,EAIJI,eAAiB,EAJbJ,EAKJK,iBAAmB,EAGrB,MAAMC,KACJvB,SAAW,UADPuB,EAEJC,gBAAkB,iBAFdD,EAGJE,MAAQ,OAHJF,EAIJG,UAAY,WAJRH,EAKJI,QAAU,SAMZ,MAAMC,KACJC,yBAA2B,EADvBD,EAEJE,kBAAoB,EAFhBF,EAGJG,cAAgB,EAMlB,MAAMC,KACJC,YAAc,aADVD,EAEJE,YAAc,aAFVF,EAGJG,YAAc,aAHVH,EAIJI,MAAQ,OAJJJ,EAKJK,QAAU,UAMZ,MAAMC,KACJC,oBAAsB,EADlBD,EAEJE,oBAAsB,EAFlBF,EAGJG,qBAAuB,EAMzB,MAAMC,KACJC,SAAW,SAMb,MAAMC,KACJC,SAAW,EADPD,EAEJE,UAAY,EAOd,MAAMC,KACJC,cAAgB,EADZD,EAEJE,aAAe,EAFXF,EAGJG,eAAiB,EAHbH,EAIJI,eAAiB,EAJbJ,EAKJK,eAAiB,EAMnB,MAUMC,EAAkB,EA0HlBC,GAlHFxG,EAASM,YAOTN,EAASC,SAOTD,EAASG,SAWTH,EAASC,SAOTD,EAASE,OAOTF,EAASG,SAOTH,EAASI,YAOTJ,EAASK,OAOTL,EAASM,YAOTN,EAASO,SAOTP,EAASyG,YAOTzG,EAASS,QAOTT,EAASU,MAOTV,EAASW,WAOTX,EAASY,WAYW,CAC7B,CACE8F,SAAU,YACVC,YAAa,EACbC,SAAU,cAEZ,CACEF,SAAU,WACVC,YAAa,EACbC,SAAU,cAEZ,CACEF,SAAU,kCACVC,YAAa,EACbC,SAAU,cAEZ,CACEF,SAAU,0BACVC,YAAa,EACbC,SAAU,cAEZ,CACEF,SAAU,uBACVC,YAAa,EACbC,SAAU,gBA4FP,MAAMC,KACJC,IAAM,EADFD,EAEJE,KAAO,EAFHF,EAGJG,gBAAkB,EAGpB,MAMMC,EAA2B,MAE3BC,EAAc,CACvB,CAAEC,MAAO,EAAGC,MAAO,UACnB,CAAED,MAAO,EAAGC,MAAO,UACnB,CAAED,MAAO,EAAGC,MAAO,WACnB,CAAED,MAAO,EAAGC,MAAO,aACnB,CAAED,MAAO,EAAGC,MAAO,YACnB,CAAED,MAAO,EAAGC,MAAO,UACnB,CAAED,MAAO,EAAGC,MAAO,c,kBCplCvBC,EAAOC,QAAU,s4P,sMCsCFC,MAjCEC,IAChB,IAAIC,EAAYC,cAChB,MAAMC,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDI,EAAMC,GAAWC,qBAqBxB,OAnBAC,oBAAU,OAEP,IAEHA,oBAAU,KACLP,EAAaQ,OAAS,GAK3BC,iBACCX,EAAUY,gBACV,MAAMN,EAAOO,eAAKX,EAAc,CAAEY,aAAc,SAC5CR,GACHC,EAAQD,EAAKS,WAAWT,EAAKU,cAE9BhB,EAAUiB,gBAVTC,IAEC,CAAChB,IAYHiB,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,6BACdH,IAAAC,cAAA,OAAKG,IAAKjB,O,kCCwwCCkB,IAtwCSzB,IAAW,IAAD0B,GAC5B,EAAEC,GAAMC,cACZ,MAAMC,EAAWC,cACjB,IAAI7B,EAAYC,cAChB,MAAM6B,EAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,QACnDC,EAAa7B,YAAa8B,GAAMA,EAAEC,UAAUC,UAClD,IAAIC,EAAcC,mBACdC,EAAcD,mBAElB,MAAME,EAAYpC,YAAaC,GAAUA,EAAMC,SAASmC,gBAClDC,EAAiBtC,YAAaC,GAAUA,EAAMC,SAASoC,iBAEtDC,EAAYC,GAAiBnC,mBAAS,KACtCoC,EAAOC,GAAYrC,mBAAS,IAC5BsC,EAAYC,GAAiBvC,mBAAS,IACtCwC,EAASC,GAAczC,mBAAS,IAChC0C,EAAiCC,GACtC3C,mBAAS,IACJ4C,EAAsBC,GAA2B7C,mBAAS,KAC1D8C,EAAaC,GAAkB/C,mBAAS,KACxCgD,EAAWC,GAAgBjD,mBAAS,KACpCkD,EAAQC,GAAanD,mBAAS,KAC9BoD,EAAOC,GAAYrD,oBAAS,IAC5BsD,EAAQC,IAAavD,mBAAS,KAC9BwD,GAAaC,IAAkBzD,mBAAS,KACxC0D,GAAoBC,IAAyB3D,mBAAS,KACtD4D,GAAYC,IAAiB7D,oBAAS,IACtC8D,GAAaC,IAAkB/D,oBAAS,IACxCgE,GAAwBC,IAA6BjE,oBAAS,IAC9DkE,GAAgBC,IAAqBnE,oBAAS,IAC9CoE,GAAiBC,IAAsBrE,mBAAS,IAChDsE,GAAkBC,IAAuBvE,mBAAS,KAClDwE,GAAkBC,IAAuBzE,mBAAS,KAElD0E,GAAYC,IAAe3E,oBAAS,IACpC4E,GAAiBC,IAAsB7E,mBAAS,KAChD8E,GAAyBC,IAA4B/E,oBAAS,IAC9DgF,GAA2BC,IAAgCjF,mBAAS,IACpEkF,GAAeC,IAAoBnF,mBAAS,IAC5CoF,GAAaC,IAAkBrF,mBAAS,KACxCsF,GAAaC,IAAkBvF,mBAAS,KACxCwF,GAAaC,IAAkBzF,oBAAS,IACxC0F,GAAiBC,IAAsB3F,mBAAS,KAChD4F,GAAgBC,IAAqB7F,mBAAS,KAC9C8F,GAAeC,IAAoB/F,mBAAS,KAC5CgG,GAAaC,IAAkBjG,mBAAS,KACxCkG,GAAYC,IAAiBnG,mBAAS,KACtCoG,GAAWC,IAAgBrG,mBAAS,KACpCsG,GAAWC,IAAgBvG,oBAAS,IACpCwG,GAAeC,IAAoBzG,oBAAS,IAC5C0G,GAAgBC,IAAqB3G,oBAAS,IAC9C4G,GAAkCC,IAAuC7G,oBAAS,GACzF,IAAI,UAAE8G,IAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAMhC,GAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDqH,GAAWC,IAAgBhH,sBAC3BiH,GAAmBC,IAAwBlH,sBAC3CmH,GAASC,IAAcpH,oBAAU,IAIjCqH,GAAqBC,KAHb3H,YACZC,GAAUA,EAAMC,SAAS0H,QAE0BvH,oBAAS,KACxDwH,GAAWC,IAAgBzH,mBAAS,IACpC0H,GAAYC,IAAiB3H,mBAAS,OACtC4H,GAAYC,IAAiB7H,oBAAS,GAC7C,IAAI8H,GAAsBnI,YAAaC,GACrCA,EAAM8B,UAAUoF,UAAYlH,EAAM8B,UAAUC,SAASmG,oBAAsB,GAE7E,MAAOC,GAAiBC,IAAsBhI,oBAAS,IAChDiI,GAAaC,IAAoBlI,oBAAS,IAC1CmI,GAAgBC,IAAqBpI,oBAAS,GAE/CqI,GAAoB1I,YACrBC,GAAUA,EAAMC,SAASwI,mBAG9BpI,oBAAU,OAEP,IAEHA,oBAAU,KACJP,GAAaQ,OAAS,GA+Q5BC,iBACEX,EAAUY,gBACV,MAAMkI,EAAQjI,eAAKX,GAAc,CAAEY,aAAc,UAC7CgI,GACFtB,GAAasB,EAAM/H,WAAW+H,EAAM9H,cAGtC,MAAMyG,EAAoB5G,eAAKX,GAAc,CAAEY,aAAc,wBACzD2G,GACFC,GAAqBD,EAAkB1G,WAAW0G,EAAkBzG,cAEtEhB,EAAUiB,gBAzRRC,IAED,CAAChB,KAEJO,oBAAU,KACJ8B,IACFwG,KACAC,GAAYjJ,EAAM6E,iBAClBe,GAAiB5F,EAAM2F,eACvBjB,GAA0B1E,EAAMyE,wBAChCK,GAAmB9E,EAAM6E,iBACzBG,GAAoBhF,EAAM+E,kBAC1BG,GAAoBlF,EAAMiF,kBAC1BwD,GAAmBzI,EAAMwI,iBACzBU,GAAUlJ,EAAM6E,mBAIjB,CAACrC,IAEJ9B,oBAAU,KACRyI,MACC,CAAC9D,KAEJ,MAAM6D,GAAYtI,UAGhB,GADAoG,IAAa,GAEe,YAA1BhH,EAAM+E,kBACoB,WAA1B/E,EAAM+E,kBACoB,UAA1B/E,EAAM+E,iBACN,CACA,IAAIqE,QAAqBC,IAAU1R,IACjC1S,IAAOwJ,wBAA0B,cAAgBoW,GAE/CuE,EAAa/kB,IAAOC,oBACtBkgB,IAAe,GACfsB,GAAesD,EAAa/kB,IAAOG,eAAe8kB,UAClDtD,GAAeoD,EAAa/kB,IAAOG,eAAe+kB,WAItD,IAAIC,QAAwBH,YAC1BpkB,IAAO8F,4BAA8B,WAAaiV,EAAM2F,eAE1DO,GAAesD,EAAgBnlB,IAAOG,gBAEtCilB,GAAkBzJ,EAAM+E,iBAAkB/E,EAAM0J,cAChDV,GAAoBhJ,EAAM2F,eAC1BqB,IAAa,IAqDTyC,GAAoB7I,MAAOmE,EAAkB2E,KACjD,IAAIC,EAAS1kB,IAAO2J,uBAChBgb,EAAO,GACPR,QAAqBC,IAAU1R,IAAIgS,GACvC,GACEP,EAAa/kB,IAAOC,mBACpB8kB,EAAa/kB,IAAOG,eAAemc,OAAS,EAC5C,CAAC,IAADkJ,EAEMC,EAAkE,QAA1DD,EADGT,EAAa/kB,IAAOG,eACXsc,KAAMiJ,GAAMA,EAAEC,eAAiBhK,EAAMiK,iBAAS,IAAAJ,OAAA,EAAvDA,EAAyDC,SACpEA,IACAF,EAAOE,EAAShJ,KAAMiJ,GAAMA,EAAEG,OAASnF,GAAoBgF,EAAEG,OAASR,IAG9D,MAARE,GACAtE,GAAmBsE,KAIvBZ,GAAsBpI,UAC1B,GAA8B,IAA1BZ,EAAM6E,gBAAuB,CAC/B,IAAIuE,QAAqBC,IAAU1R,IACjC1S,IAAOwI,6CACP,oBACAuS,EAAM6E,iBAEJuE,EAAa/kB,IAAOC,mBACoB,MAAtC8kB,EAAa/kB,IAAOG,gBACyB,MAA3C4kB,EAAa/kB,IAAOG,eAAeolB,OACrCxD,GACEgD,EAAa/kB,IAAOG,eAAeolB,KAAsB,iBAE3DtD,GACE8C,EAAa/kB,IAAOG,eAAeolB,KAAqB,gBAE1DpD,GACE4C,EAAa/kB,IAAOG,eAAeolB,KAAoB,eAEzDlD,GACE0C,EAAa/kB,IAAOG,eAAeolB,KAAkB,aAEvDhD,GACEwC,EAAa/kB,IAAOG,eAAeolB,KAAY,OAEjD9C,GACEsC,EAAa/kB,IAAOG,eAAeolB,KAAW,SAQpDT,GAAmCA,KACrC,GAAIgB,YAAc9E,IACdG,IAAyB,OAD7B,CAKA,IAAI4E,EAA4B/E,GAAgBgF,WAChD7E,GAAsD,GAA7B4E,GACzB1E,GAA6B0E,EAA0BE,QAAQ,MAG7DC,GAAW3J,UACE,aAAb4J,EACFnI,EAAYoI,QAAQC,SACE,aAAbF,GACTjI,EAAYkI,QAAQC,SAEtBC,SAASC,YAAY,SAKvBhK,eAAeiK,KACb5K,EAAUY,gBACVgI,IAAkB,SACOQ,IAAU1R,IAAI1S,IAAOuL,yBAQ9CqY,IAAkB,GAClB5I,EAAUiB,gBAGZN,eAAeqI,GAAY6B,GAGzB,GAFA1D,IAAkB,IAEb2D,YAAoBD,GAAK,CAC5B,IAAI1B,QAAqBC,IAAU1R,IACjC1S,IAAO0L,kBACP,OACAma,GAGE1B,EAAa/kB,IAAOC,oBACtB4iB,GAAiBkC,EAAa/kB,IAAOG,gBACrC4iB,IAAkB,KAKxB,MAKM4D,GAA0BpK,UAC9B0G,IAAoC,GAEpCrH,EAAUY,gBAGV,IAAIuI,QAAqBC,IAAU1R,IAAI1S,IAAOwL,0BAE9CwP,EAAUgL,eAEN7B,EAAa/kB,IAAOC,oBACtB2kB,GAAYjJ,EAAM6E,iBAClBmE,MAGF/I,EACEiL,aACE9B,EAAa/kB,IAAOC,kBACpB8kB,EAAa/kB,IAAOE,oBAMxB0b,EAAUiB,iBAIZN,eAAeuK,GAAWC,GACxB,GAAI5C,GAAiB,CACnB,IAAI6C,EAAiB,CAAC,CACpBC,SAAUtL,EAAMuL,MAChBC,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,QAGvBsL,EAAOlU,IAAOH,sBAAwB,WAAa8T,EACvDvJ,EAAS+J,KAAKD,EAAM,CAClBN,eAAgBA,SAIlB1C,IAAiB,GACjBkD,OAAOC,KACL7mB,IAAOgL,WACP,WACAmb,EAAS,YAAcS,OAAOE,YAAc,IAAM,IAAM,MAG5D9L,EAAU+L,cAAkB,IAC5B1H,IAAc,GACdE,IAAe,GAgCjB5D,eAAeqL,KACbhM,EAAUY,uBACewI,IAAU1R,IACjC1S,IAAOyL,0CAEQrM,IAAOC,mBACtByjB,IAAuB,GAEzB9H,EAAUiB,gBArBZR,oBAAU,KACR,GAAgB,IAAZkH,GAAe,OAEnB,MAAMsE,EAAWC,YAAY,KACH,KAApBhG,IAA6C,KAAnBE,IAC5B2C,GAAoBhJ,EAAM2F,eAE5BkC,GAAWuE,GAAeA,EAAc,IACvC,MAEH,MAAO,IAAMC,cAAcH,IAC1B,CAACtE,KAiCJ,MAAM0E,GACJlL,IAAAC,cAAA,OACEE,UAAU,QACVgL,QAASA,KACPtM,EAAU+L,cAAkB,IAC5B1H,IAAc,GACdE,IAAe,KAGjBpD,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,WAyC7C,OACEH,IAAAC,cAAAD,IAAAE,SAAA,KACG+G,IACCjH,IAAAC,cAAA,OAAKE,UAAU,kDACbH,IAAAC,cAACuL,IAAU,CACTC,WAAazL,IAAAC,cAAA,OACXE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,OACPC,MAAM,OACNC,IAAI,gBAENC,cAAetL,EAAE,UACjBuL,eAAgBvL,EAAE,YAClB8K,MAAI,EAIJU,SAAUA,KACR7E,IAAc,GACdJ,GAAa,IAEfkF,QAAM,EACNC,YAAU,EACVC,gBAAgB,EAChBC,iBAAiB,SACjBC,cACEpM,IAAAC,cAACD,IAAME,SAAQ,KACbF,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,UACEE,UAAW,eAA8B,GAAb0G,GAAiB,aAAe,eAC5DwF,SAAuB,GAAbxF,GACVsE,QAASA,KACPN,KACA3D,IAAc,GACdJ,GAAa,GACTM,GACF2C,GACEnL,EAAM2F,gBAGR2C,IAAc,GACdK,IAAiB,MAMpBhH,EAAE,mBAAmB,IAAe,GAAbsG,GAAiB,IAAMA,GAAY,IAAM,OAazE7G,IAAAC,cAAA,QAAME,UAAU,2BACdH,IAAAC,cAAA,OAAKqM,wBAAyB,CAAEC,OAAQhM,EAAE,gDAAgDiM,QAAQ,KAAM,UAAYC,MAAO,CAAEC,aAAc,OAAQC,SAAU,UAC7J3M,IAAAC,cAAM2M,IAAO,CAACH,MAAO,CAAEI,SAAU,OAAQC,OAAQ,SAAUJ,aAAc,OAASK,KAAK,SAASC,QAASzM,EAAE,qDAMlH+G,IACCtH,IAAAC,cAAA,OAAKE,UAAU,kDACbH,IAAAC,cAACuL,IAAU,CACTC,WAAazL,IAAAC,cAAA,OACXE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,OACPC,MAAM,OACNC,IAAI,gBAENC,cAAetL,EAAE,UACjBuL,eAAgBvL,EAAE,YAClB8K,MAAI,EAIJU,SAAUA,KACRxE,IAAiB,GACjBT,GAAa,IAEfkF,QAAM,EACNC,YAAU,EACVC,gBAAgB,EAChBC,iBAAiB,SACjBC,cACEpM,IAAAC,cAACD,IAAME,SAAQ,KACbF,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,UACEE,UAAW,yBACXgL,QAASA,KACPN,KACA3D,IAAc,GACdJ,GAAa,GACbiD,GACEnL,EAAM2F,eAERgD,IAAiB,KAGlBhH,EAAE,aAELP,IAAAC,cAAA,KACEkL,QAASA,KAAOjE,IAAc,GAAQrI,EAAU+L,cAAkB,IAASrD,IAAiB,IAC5FpH,UAAU,0BAETI,EAAE,aAOXP,IAAAC,cAAA,QAAME,UAAU,2BACdH,IAAAC,cAAA,OAAKqM,wBAAyB,CAAEC,OAAQhM,EAAE,gBAAgBiM,QAAQ,KAAM,UAAYC,MAAO,CAAEC,aAAc,OAAQC,SAAU,aAKpI1G,IACCjG,IAAAC,cAAA,OAAKE,UAAU,kDAEbH,IAAAC,cAACuL,IAAU,CACTK,cAAetL,EAAE,UACjBuL,eAAgBvL,EAAE,YAClB8K,MAAI,EACJ4B,UAAWA,KACTrD,MAEFmC,SAAUA,KACR7F,IAAoC,IAEtC8F,QAAM,EACNC,YAAU,EACVC,gBAAgB,EAChBC,iBAAiB,SACjBV,WAAYrF,GAEZgG,cACEpM,IAAAC,cAACD,IAAME,SAAQ,KACbF,IAAAC,cAAA,UAAQE,UAAU,yBAAyBgL,QAASA,IAAMvB,MAA2B,YAErF5J,IAAAC,cAAA,UAAQE,UAAU,wBAAwBgL,QAASA,KACjDjF,IAAoC,KACnC,YAKPlG,IAAAC,cAAA,QAAME,UAAU,2BACbI,EAAE,sBAKXP,IAAAC,cAACiN,IAAK,CACJxD,GAAG,kBACHyD,MAAM,EACNC,OAAQhM,EACRjB,UAAU,0BACVkN,iBAAkB,kBAClBC,SAAU,SACVC,OAAQA,KACN1O,EAAU+L,cAAkB,IAE5B1H,IAAc,IAGhBsK,WAAY,QAGZxN,IAAAC,cAACwN,IAAW,CAAClC,MAAOL,IACjBtM,EAAM+E,kBAET3D,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,OAAKE,UAAU,gCACbH,IAAAC,cAAA,OAAKyJ,GAAG,kBACL/D,GACE3F,IAAAC,cAACtB,EAAO,MACRqB,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,IACbH,IAAAC,cAAA,OAAKE,UAAU,oBACXwJ,YAAoB/K,EAAMiF,kBAO1B7D,IAAAC,cAAA,OACEG,IAAKkG,GACLnG,UAAU,2BACVyL,IAAI,WATN5L,IAAAC,cAAA,OACEG,IAAKxB,EAAMiF,iBACX1D,UAAU,2BACVyL,IAAI,cAWVhN,EAAMyE,wBAA0B0C,IAChC/F,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,OAAKE,UAAU,oCAKbH,IAAAC,cAAA,OACEE,UAAS,wBAAAnM,OAA0B6R,GAAgB,kDAAoD,GAAE,KAAA7R,OAAM0T,IAAsBvD,GAAgE,GAArC,sCAE9J0B,IAAiB7F,IAAAC,cAAAD,IAAAE,SAAA,KAEjBF,IAAAC,cAAA,OACEE,UAAU,WAEVH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OAAKE,UAAU,gCACZI,EAAE,gBAELP,IAAAC,cAAA,OAAKE,UAAU,mCACZwN,YACCrM,EAAesM,qBACf,GACA,KAIN5N,IAAAC,cAAA,OAAKE,UAAU,kBACbH,IAAAC,cAAA,OAAKE,UAAU,UACZqH,GACCxH,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,WACPD,OAAQ,WACRwC,WAAY,KAIhBlO,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW6C,QACjBhO,UAAU,qBACVgL,QAASA,KACP1B,MAEF4C,SAAUtI,QAQnBI,IACGnE,IAAAC,cAAA,OAAKE,UAAU,WACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OAAKE,UAAU,gCACZI,EAAE,sBAELP,IAAAC,cAAA,OAAKE,UAAU,mCACZkE,GAA0B,MAI/BrE,IAAAC,cAAA,OAAKE,UAAU,kBACbH,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW8C,oBACjBjO,UAAU,0BAOrBuH,IACG1H,IAAAC,cAAA,OAAKE,UAAU,WACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OAAKE,UAAU,gCACZI,EAAE,sBAELP,IAAAC,cAAA,OAAKE,UAAU,mCAxUjD,WAAoC,IAADkO,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAC3BC,EAAmB,EACvB,OAAQlQ,EAAMiK,UACV,IAAK,QACDiG,EAAwC,QAAxBT,EAAG1N,EAAWoO,kBAAU,IAAAV,OAAA,EAArBA,EAAuBW,WAC1C,MACJ,IAAK,SACDF,EAAwC,QAAxBR,EAAG3N,EAAWoO,kBAAU,IAAAT,OAAA,EAArBA,EAAuBW,YAC1C,MACJ,IAAK,SACDH,EAAwC,QAAxBP,EAAG5N,EAAWoO,kBAAU,IAAAR,OAAA,EAArBA,EAAuBW,aAC1C,MACJ,IAAK,SACDJ,EAAwC,QAAxBN,EAAG7N,EAAWoO,kBAAU,IAAAP,OAAA,EAArBA,EAAuBW,aAC1C,MACJ,IAAK,YACDL,EAAwC,QAAxBL,EAAG9N,EAAWoO,kBAAU,IAAAN,OAAA,EAArBA,EAAuBW,eAC1C,MACJ,IAAK,OACDN,EAAwC,QAAxBJ,EAAG/N,EAAWoO,kBAAU,IAAAL,OAAA,EAArBA,EAAuBW,WAC1C,MACJ,IAAK,SACDP,EAAwC,QAAxBH,EAAGhO,EAAWoO,kBAAU,IAAAJ,OAAA,EAArBA,EAAuBW,aAC1C,MACJ,IAAK,QACDR,EAAwC,QAAxBF,EAAGjO,EAAWoO,kBAAU,IAAAH,OAAA,EAArBA,EAAuBW,YAC1C,MACJ,IAAK,WACDT,EAAwC,QAAxBD,EAAGlO,EAAWoO,kBAAU,IAAAF,OAAA,EAArBA,EAAuBW,eAC1C,MACJ,QACIV,EAAmB,EAG3B,OAAOA,EAAiB5F,QAAQ,GAuSCuG,GAA0B,MAI/BzP,IAAAC,cAAA,OAAKE,UAAU,kBACbH,IAAAC,cAAA,OAAKE,UAAU,WACS,QAArBG,EAAAK,EAAWoO,kBAAU,IAAAzO,OAAA,EAArBA,EAAuByO,YAAa,EACnC/O,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW8C,oBACjBjO,UAAU,uBAGZH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWoE,WACjBvP,UAAU,2BASzB0F,IAAiB7F,IAAAC,cAAAD,IAAAE,SAAA,KAGhBF,IAAAC,cAAA,OAAKE,UAAU,WACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OAAKE,UAAU,gCACZI,EAAE,cAELP,IAAAC,cAAA,OAAKE,UAAU,mCACZoF,KAGLvF,IAAAC,cAAA,OAAKE,UAAU,kBACbH,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW8C,oBACjBjO,UAAU,0BAOlBH,IAAAC,cAAA,OACEE,UAAU,WAEVH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OAAKE,UAAU,gCACZI,EAAE,UAELP,IAAAC,cAAA,OAAKE,UAAU,mCACZwN,YACCrM,EAAeqO,mBACf,GACA,KAIN3P,IAAAC,cAAA,OAAKE,UAAU,kBACbH,IAAAC,cAAA,OAAKE,UAAU,UACZqH,GACCxH,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,WACPD,OAAQ,WACRwC,WAAY,KAIhBlO,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW6C,QACjBhO,UAAU,qBACVgL,QAASA,KACP1B,MAEF4C,SAAUtI,QAMnB8B,IAAqC,KAApBd,IAA6C,KAAnBE,IAC1CjF,IAAAC,cAAA,OACEE,UAAU,WAEVH,IAAAC,cAAA,OAAKE,UAAU,QAAQsM,MAAO,CAAEd,MAAO,SACrC3L,IAAAC,cAAA,OAAKE,UAAU,gCACZI,EAAE,aAELP,IAAAC,cAAA,OAAKE,UAAU,qCAAqCsM,MAAO,CAAEyB,WAAY,QACvElO,IAAAC,cAAA,QACEE,UAAU,sBACVsM,MAAO,CACLd,MACE1G,IAAkBF,GACd,MACEE,GAAiBF,IACnBE,GACF,IACA,QAKVjF,IAAAC,cAAA,OAAKE,UAAU,sBACZwN,YACCiC,WAAW3K,GAAiBF,IAC5B,GACA,GACC,IAAI,IACL,IACD4I,YACCiC,WAAW3K,IACX,GACA,MAMTY,IAAqC,KAApBd,IAA6C,KAAnBE,IAC1CjF,IAAAC,cAAA,OACEE,UAAU,WAEVH,IAAAC,cAAA,OAAKE,UAAU,QAAQsM,MAAO,CAAEd,MAAO,SACrC3L,IAAAC,cAAA,OAAKE,UAAU,gCACZI,EAAE,WAELP,IAAAC,cAAA,OAAKE,UAAU,qCAAqCsM,MAAO,CAAEyB,WAAY,QACvElO,IAAAC,cAAA,QACEE,UAAU,sBACVsM,MAAO,CACLd,MACExG,IAAiB7D,EAAeqO,mBAC5B,OACErO,EAAeqO,mBACjBxK,GACF,IACA,QAKVnF,IAAAC,cAAA,OAAKE,UAAU,sBACbwN,YACAiC,WAAWtO,EAAeqO,mBAAqBxK,GAAgBA,GAAgB7D,EAAeqO,oBAC9F,GACA,GACC,IAAI,IACH,IACDhC,YACCiC,WAAWzK,IACX,GACA,SAwLW,YAA1BvG,EAAM+E,kBACqB,WAA1B/E,EAAM+E,kBACoB,UAA1B/E,EAAM+E,iBACN3D,IAAAC,cAAA,OAAKE,UAAU,QACbH,IAAAC,cAAA,KACEwM,MAAO,CACLoD,MAAO,UACPlD,SAAU,OACVmD,WAAY,SAGbvP,EAAE,8BAGL,KAEJP,IAAAC,cAAA,OAAKE,UAAU,qBACXsC,GAAUA,GAAwB,IAAfI,GACnB7C,IAAAC,cAAAD,IAAAE,SAAA,KACI+C,GA8EAjD,IAAAC,cAAAD,IAAAE,SAAA,MA7EAF,IAAAC,cAAA,UACE8M,KAAK,SACL5B,QAASA,KACFV,OAAOsF,mBAkBNtN,EAEFgI,OAAOsF,mBAAmBC,YACxBC,KAAKC,UAAU,CACbC,OAAQ,WACRpc,IAAK4O,EACLyN,SAAUvN,GACP2J,QACC,aACAjK,EAAiB,UAElBiK,QACC,aACAjK,EAAiB,cAOL,IAAhBsC,IAEA4F,OAAOsF,mBAAmBC,YAAY,eACtCvF,OAAOsF,mBAAmBC,YACtBC,KAAKC,UAAU,CACXnc,IAAI,GAADC,OAAKqc,0KACPC,wBACD7F,OAAOL,SAASmG,QAAMvc,OACnBnQ,IAAOgL,WAAU,YAAAmF,OACT4K,EAAM2F,cAAa,YAAAvQ,OAAWyW,OAAOE,YAAc,IAAM,IAAM,UAMlFF,OAAOsF,mBAAmBC,YAAY,gBACtCvF,OAAOsF,mBAAmBC,YACtBC,KAAKC,UAAU,CACXnc,IAAI,GAADC,OAAKqc,0KACPC,wBACD7F,OAAOL,SAASmG,QAAMvc,OACnBqC,IAAOma,eAAc,YAAAxc,OACb4K,EAAM2F,eACjBkM,cACA5P,EAAW4P,kBA7DrBnP,EAAeoF,qBAAuBS,GAAsB,GAE9DD,IAAc,GACdJ,GAAa,GA9tBnD,WAEMC,IAAYkE,cAAclE,IAG9B,MAAM2C,EAAKqB,YAAY,KACrBjE,GAAa4J,GACPA,GAAQ,GACVzF,cAAcvB,GACP,GAEFgH,EAAO,IAEf,KAEH1J,GAAc0C,GAgtBsBiH,IAIIvJ,GACF2C,GAAWnL,EAAM2F,eAEjBgD,IAAiB,IAyDzBpH,UAAU,uBAETI,EAAE,gBAOTP,IAAAC,cAAA,UACE8M,KAAK,SACL5B,QAASA,KACHV,OAAOsF,mBACTtF,OAAOsF,mBAAmBC,YACxBC,KAAKC,UAAU,CAAEnc,IAAK4O,KAGxB8H,OAAOC,KAAK/H,IAGhBxC,UAAU,uBAETI,EAAE,kBAIR4C,IACCnD,IAAAC,cAAA,OAAKE,UAAU,iCACbH,IAAAC,cAAA,OACEE,UAAU,uBACVsM,MAAO,CAAEmE,SAAU,aAEnB5Q,IAAAC,cAAA,OAAKE,UAAU,iBACZI,EAAE,YAAc,MACjBP,IAAAC,cAAA,SACEE,UAAU,+BACV4M,KAAK,OACLxO,MAAOkG,GACPoM,IAAK5P,EACL6P,UAAQ,KAIZ9Q,IAAAC,cAAA,OACEkL,QAASA,IAAMhC,GAAS,YACxBsD,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAC+Q,IAAI,CACHzG,KAAM0G,IACNjD,KAAM,EACN6B,MAAM,cAIZ7P,IAAAC,cAAA,OACEE,UAAU,uBACVsM,MAAO,CAAEmE,SAAU,aAEnB5Q,IAAAC,cAAA,OAAKE,UAAU,iBACZI,EAAE,YAAc,MACjBP,IAAAC,cAAA,SACEE,UAAU,+BACV4M,KAAK,OACLxO,MAAOoG,GACPkM,IAAK1P,EACL2P,UAAQ,KAIZ9Q,IAAAC,cAAA,OACEkL,QAASA,IAAMhC,GAAS,YACxBsD,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAC+Q,IAAI,CACHzG,KAAM0G,IACNjD,KAAM,EACN6B,MAAM,yB,yFClxCxC,+CAMemB,IAFDpS,GAAUoB,IAAAC,cAACiR,IAAOC,OAAAC,OAAA,CAACC,QAASA,GAAazS,K,0QCqUxC0S,IAvTgBC,IAAuE,IAAtE,KAACC,EAAI,YAAEC,EAAW,aAAEC,EAAY,QAAEC,EAAO,WAAEC,GAAqBL,EAADM,YAAAN,EAAAO,GAC7F,IAAI,EAAEvR,GAAMC,cACR3B,EAAYC,cAEGE,YAAaC,GAAUA,EAAMC,SAAS0B,QACzD,IAAI,UAAEuF,GAAcnH,YAAaC,GAAUA,EAAM8B,WAEjD,MAAOgR,EAAoBC,GAAyB3S,oBAAS,IACtD4S,EAAUC,GAAe7S,mBAAS,KAClC8S,EAAoBC,GAAyB/S,oBAAS,IACtDgT,EAAUC,GAAejT,oBAAS,IAElCkT,EAAiBC,GAAsBnT,mBAAS,IAChDoT,EAAoBC,GAAyBrT,mBAAS,IACtDsT,EAAUC,GAAevT,mBAASwT,WAAW,OAAW,OACxDC,EAAaC,GAAkB1T,oBAAS,IACxC2T,EAAQC,GAAa5T,mBAAS,GAC/B6T,EAAShS,iBAAO,OACfiS,EAAkBC,GAAuB/T,oBAAS,IAClDgU,EAAeC,GAAoBjU,sBACnCkU,EAAYC,GAAiBnU,oBAAS,IAGtCoU,EAAqBC,GAA0BrU,mBAAS,KACxDsU,EAAsBC,GAAyBvU,mBAAS,IAK/D,IAAIwU,GAA0BC,GAE9BxU,oBAAU,KACJkS,IACAkC,EAAuBjC,GACvBmC,EAAwBlC,GAGxBY,GAAY,GACZS,GAAe,GACfP,EAAmB,KAEtB,CAAChB,EAAMC,EAAaC,IAGvBpS,oBAAU,KACJiT,EAAkB,IACpBsB,GAAyBhB,WAAW,KAElCL,EADiBD,EAAkB,IApBlB,OAwBpB,CAACA,IAEJjT,oBAAU,KACJmT,EAAqB,GACvBG,EACEC,WAAW,KAETH,EADiBD,EAAqB,IA9BvB,OAmCpB,CAACA,IAEJ,MAuCMsB,GAAcA,KAClBC,aAAaH,IACbG,aAAaF,KAyCf,MAAMG,GAAYzU,gBACVyI,IAAUiM,KACdrwB,IAAOqG,kCACPiqB,YAAwB,CACtBC,iBAAkBC,EAClBC,SAAUb,EACV/B,aAAciC,KAEhBY,KAAMC,IACFA,EAASvxB,IAAOC,mBACf0uB,GACCA,EAAW4C,GAWjB3V,EACEiL,aACE0K,EAASvxB,IAAOC,kBAChBsxB,EAASvxB,IAAOE,oBAKpB+vB,EAAO7J,QAAQoL,WAWnB,OACEzU,IAAAC,cAAAD,IAAAE,SAAA,KAEEF,IAAAC,cAACiN,IAAK,CACJ/M,UAAU,mDACVkN,iBAAkB,gDAClBF,MAAM,EACNC,OAAQoE,EACRjE,OAAQA,KACNwG,KACIpC,GACFA,MAIJ3R,IAAAC,cAACwN,IAAW,KACVzN,IAAAC,cAAA,OAAKE,UAAU,SAabH,IAAAC,cAAA,WAAMM,EAAE,yBAEVP,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OACIE,UAAU,wBACVgL,QAASA,KACL4I,KACIpC,GACFA,MAIR3R,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,aAI/CH,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,OAAKE,UAAU,cACbH,IAAAC,cAAA,WACGoS,EACCrS,IAAAC,cAAA,OAAKE,UAAU,8FACbH,IAAAC,cAAA,MAAIE,UAAU,qBACXI,EAAE,uBAELP,IAAAC,cAAA,OAAKE,UAAU,sBACZI,EAAE,6BAA8B,IAChCkT,EAAoB,KAEvBzT,IAAAC,cAACyU,IAAQ,CACPnV,OAAQ,EAERsR,IAAKqC,EAELnG,KAAK,UACLV,SAAU8G,EACVwB,UAAU,UACVC,WAAY,CAAEC,OAAQ,IAAK/H,OAAQ,WACnCgI,cAAe,oBACfC,WAAYA,CAACxW,EAAOyW,MAzIxCxV,eAA0ByV,EAAKD,GAO7B,IAAIE,EAAS7B,EACT8B,EAAYF,EAAIG,MAAM,IACd,WAARH,GAA4B,WAARA,GACtBC,EAASD,EACT3B,EAAiB4B,GACQ,IAArBC,EAAU5V,SAEZ+T,EAAiB,IACjBF,GAAoB,GACpBI,GAAc,SAERS,GAAUiB,GAEhB1B,GAAc,GACdJ,GAAoB,KAGtBF,EAAO7J,QAAQoL,QAkHGY,CAAW9W,MAGd8T,GAA+B,GAAnBE,GACXvS,IAAAC,cAAA,KAAGE,UAAU,6BACVI,EAAE,YAAY,IAAEgS,EAAgB,MA6BvCvS,IAAAC,cAAA,OAAKE,UAAU,6EACbH,IAAAC,cAAA,WAAMM,EAAE,sBAAuB,CAAEkR,YAAagC,KAC9CzT,IAAAC,cAAA,UACEE,UAAU,2BACVgL,QAASA,KAtOb3L,WAId,IAAI8V,EAAS,CACX7D,YAAagC,EACb8B,aAAc,KACd1O,UAAW0L,EACXiD,UAAW1C,EACX/F,KARkB,EASlB0I,MAAO,qBAGLzN,QAAqBC,IAAUiM,KACjCrwB,IAAOkK,kBACP2nB,YAAeJ,IAGZtN,EAAa/kB,IAAOC,mBAEvBovB,GAAY,GACZS,GAAe,GACfP,EAAmB,GACnBA,EAAmBmD,IACnB1C,EAAUD,EAAS,GACnBc,GAAajB,WAAW,KACtBE,GAAe,IAhEI,OAmErBf,GAAsB,GACtBnT,EACEiL,aACE9B,EAAa/kB,IAAOC,kBACpB8kB,EAAa/kB,IAAOE,sBAsMNyyB,KAGDrV,EAAE,sB,iCC5TzB,yCAsCesV,IAjCajX,IACXE,cAChB,MAAMC,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDI,EAAMC,GAAWC,qBAqBxB,OAnBAC,oBAAU,OAEP,IAEHA,oBAAU,KACLP,EAAaQ,OAAS,GAK3BC,iBAEC,MAAML,EAAOO,eAAKX,EAAc,CAAEY,aAAc,SAC5CR,GACHC,EAAQD,EAAKS,WAAWT,EAAKU,cAR7BE,IAEC,CAAChB,IAYHiB,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,wBACdH,IAAAC,cAAA,OAAKG,IAAKjB,Q,iCChCd,wFAGO,MAAM2W,EAAoB,iBACpBC,EAAU,IAAIC,IAKdC,EAAiBA,CAACvM,EAAIwM,KAClCziB,aAAaK,QAAQH,IAAWC,UAAW8V,GAC3CjW,aAAa0iB,WAAW,iBACxBJ,EAAQK,IAAIziB,IAAWC,UAAW8V,EAAI,CAAEa,KAAM,MAEvC/K,UACN6W,EAAS,CACRtJ,KAAM+I,EACNQ,WAAY5M,EACZwM,OAAQA,O,iCClBX,mCAKA,MAAMK,EAAgBhF,IAUf,IAVgB,iBACtBiF,EAAgB,MAChBrM,EAAK,SACLsM,EAAQ,cACRC,EAAa,kBACbC,EAAiB,iBACjBC,EAAgB,mBAChBC,EAAkB,YAClBC,EAAW,SACXC,GACAxF,EACA,MAAM9Q,EAAWC,cAUjB,OARApB,oBAAU,KACTmL,OAAOuM,iBAAiB,UAAYC,IACrB,WAAVA,EAAEhC,KACLxU,EAAS+L,QAAQnW,IAAOpC,cAGxB,IAGF+L,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,eACdH,IAAAC,cAAA,OAAKE,UAAU,oCACdH,IAAAC,cAAA,OAAKE,UAAW,4CACfH,IAAAC,cAAA,OAAKE,UAAU,cACdH,IAAAC,cAAA,WACEuW,GACAxW,IAAAC,cAAA,UACC8M,KAAK,SACL5M,UAAU,eACVgL,QAASA,IAAMwL,KAEf3W,IAAAC,cAAA,KAAGE,UAAW,yBAMnBH,IAAAC,cAAA,KACCE,UAAU,6BACVgL,QAASA,IAAM2L,IACfrK,MAAO,CAAEyK,WAAY,OAAQnG,OAAQ,UAAWoG,SAAS,KAExDT,KAIHG,GACA7W,IAAAC,cAAA,OAAKE,UAAU,6BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,4BAA4B4W,MAK7C/W,IAAAC,cAAA,OAAKwM,MAAO,CAAEmE,SAAU,WAAYyG,OAAQ,SAC3CrX,IAAAC,cAAA,MAAIE,UAAU,QAAQgK,GACrBsM,GAAYzW,IAAAC,cAAA,KAAGE,UAAU,2BAA2BsW,MAkBzDF,EAAce,aAAe,CAC5Bd,kBAAkB,EAClBG,kBAAmBA,IAAMlM,OAAO8M,QAAQC,IAAI,GAC5CZ,iBAAkBA,OAClBE,YAAaA,OACbD,oBAAoB,GAGNN,O,kBClGf9X,EAAOC,QAAU,0c,yMC4QF+Y,IA7POlG,IAA4C,IAA3C,KAACC,EAAI,QAAEG,EAAO,WAAEC,GAAqBL,EAADM,YAAAN,EAAAO,GACvD,IAAIjT,EAAYC,eACZ,EAAEyB,GAAMC,cACZ,MAAMkX,EAAoB1Y,YAAaC,GAAUA,EAAMC,SAASyY,eACzDC,EAAqBC,GAA0BxY,mBAAS,KACxDyY,EAAsBC,GAA2B1Y,oBAAS,IAG/D2Y,SAAUC,EACVC,aAAcC,EACdC,OAAQC,EACRC,SAAUC,GACRC,cAEJ,SAASC,EAAoBxB,GAEzB,IAAI1Y,EAAQ0Y,EAAEzgB,OAAO+H,MAGrB,IAJW,aAIJma,KAAKna,GASR,OAAO,EAPHA,EAAMgB,OAAS,KACnBhB,EAAQA,EAAMoa,MAAM,EAAG,KAIvBZ,EAAwBxZ,GA0ChC6M,IAAYE,IAAWC,MAGvB,OACEvL,IAAAC,cAAA,WACID,IAAAC,cAACiN,IAAK,CACJ/M,UAAU,0BACVkN,iBAAkB,gDAClBF,MAAM,EACNC,OAAQoE,EACRjE,OAAQA,KACFoE,GACFA,MAIJ3R,IAAAC,cAACwN,IAAW,KACVzN,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,WAAMM,EAAE,sBAEVP,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OAAKE,UAAU,wBAAwBgL,QAASA,KACxCwG,GACFA,MAGJ3R,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,aAI/CH,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,OAAKE,UAAU,cACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKE,UAAU,oFACbH,IAAAC,cAAA,QACEE,UAAU,QACVyY,SAAUT,EAvEX3Y,MAAOgJ,EAAMyO,KAC5B,IAAI3B,EAAS,CACTuD,kBAAmBrQ,EAAKqQ,kBACxBpH,aAAqC,IAAvBmG,EAA4BF,EAAkB,GAAGnZ,MAAQqZ,GAAuBE,GAG9F9P,QAAqBC,IAAUiM,KAC/BrwB,IAAO0O,6BACPmjB,YAAeJ,IAGkC,qBAA1CtN,EAAa/kB,IAAOC,oBACvB41B,aAAWja,GACXA,EACIiL,aACI9B,EAAa/kB,IAAOC,kBACpB8kB,EAAa/kB,IAAOE,oBAIzB6kB,EAAa/kB,IAAOC,mBAChB0uB,GACCA,EAAW5J,OAsDXhI,IAAAC,cAAA,OAAKE,UAAU,sBACbH,IAAAC,cAAA,OAAKE,UAAU,sBACbH,IAAAC,cAAA,aAAQM,EAAE,yBAEZP,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,SACE6I,KAAK,oBACL3I,UAAU,uBACV0Q,IAAKoH,EAAgB,CACnBc,UAAU,IAEZX,OAAQC,EACRW,SAAW/B,GAAMwB,EAAoBxB,QAK7CjX,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAAA,OAAKE,UAAU,sBACbH,IAAAC,cAAA,aAAQM,EAAE,mBAEZP,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,UACE+Y,SAAW/B,IACTY,EAAuBZ,EAAEzgB,OAAO+H,SAGjCmZ,EAAkBuB,IAAI,CAACC,EAAQlE,IAE5BhV,IAAAC,cAAA,UACEgV,IAAKD,EACL7U,UAAW,iBAAmB6U,EAAQ,GACtCzW,MAAO2a,EAAO3a,OAEb2a,EAAO1a,UAMlBwB,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,SACE6I,KAAK,gBACL3I,UAAU,uBACVgZ,aAAa,eACbtI,IAAKoH,EAAgB,CACnBc,UAAU,EACVK,UAAW,CACT7a,MAAO,EACP8a,QAAS9Y,EAAE,iBAAkB,CAAEhB,OAAQ,KAEzC+Z,UAAW,CACT/a,MAAO,GACP8a,QAAS9Y,EAAE,iBAAkB,CAAEhB,OAAQ,MAEzCga,QAAS,CACPhb,MAAO,YACP8a,QACE9Y,EAAE,iBAAkB,CAAEhB,OAAQ,IAC9B,IACAgB,EAAE,OACF,IACAA,EAAE,mBAGR6X,OAAQC,EACRmB,UAAYvC,IACV,MAAMhC,EAAMgC,EAAEhC,IAUX,QAAQyD,KAAKzD,IATI,CAClB,YACA,YACA,aACA,SACA,OAKawE,SAASxE,IAEtBgC,EAAEyC,kBAUNV,SAAW/B,IACT,IAAI0C,EAAW1C,EAAEzgB,OAAO+H,MAMxBka,EAAoBxB,GAGpBA,EAAEzgB,OAAO+H,MAAQob,KAIJ,GAAhBpB,EACCvY,IAAAC,cAAA,OAAKE,UAAU,4CACbH,IAAAC,cAAA,OAAKE,UAAU,4CACZI,EAAE,0BAGL8X,EAAcuB,cAChB5Z,IAAAC,cAAA,OAAKE,UAAU,4CACbH,IAAAC,cAAA,OAAKE,UAAU,4CACZI,EAAE8X,EAAcuB,cAAcP,WAInC,MAKRrZ,IAAAC,cAAA,OAAKE,UAAU,iCACbH,IAAAC,cAAA,UACEE,UAAU,2BACVsM,MAAO,CAAEd,MAAO,UAEfpL,EAAE,oB,+BC9P/B,kpGAOO,MAAMsZ,EAAgB,cAChBC,EAAe,aACfC,EAAsB,mBACtBC,EAA8B,0BAC9BC,EAAc,YACdC,EAA0B,uBAC1BC,EAAuB,oBACvBC,EAAQ,OACRC,EAAQ,OACRC,EAAc,eACdC,EAAmB,8BACnBC,EAAkB,yBAClBC,EAAmB,8BACnBC,EAAkB,yBAClBC,EAAe,0BACfC,EAAc,qBACdC,EAAS,OACTC,EAAgB,cAChBC,EAAkB,eAClBC,EAAwB,oBACxBC,EAAoB,iBACpBC,EAAmB,gBACnBC,EAAiB,cACjBC,EAAuB,oBACvBC,EAAgB,cAChBC,EAAe,aACfC,EAAqB,kBACrBC,EAAmB,gBACnBC,EAAmB,gBACnBC,EAAwB,oBACxBC,EAAsB,mBACtBC,EAAgB,cAChBC,EAAmB,gBACnBC,EAAsB,mBACtBC,EAAsB,mBACtBC,EAA4B,wBAC5BC,EAAgB,iBAChBC,EAAqB,oBACrBC,EAA2B,wBAC3BC,EAA6B,0BAC7BC,EAAmB,gBACnBC,EAA6B,yBAC7BC,EAAyB,qBACzBC,EAA2B,uBAC3BC,EAA2B,uBAC3BC,EAA2B,uBAC3BC,GAA4B,wBAC5BC,GAA0B,sBAC1BC,GAAmB,gBACnBC,GAAkB,eAElBC,GAAe,CAC1BC,UAAW,WACXC,KAAM,aAGKC,GAAQC,GACX9G,IACNA,EAAS,CACPtJ,KAAM8N,EACNsC,OAcOC,GAAcC,GACjBhH,IACNA,EAAS,CACPtJ,KAAMuO,EACN+B,aAKOvE,GAAatZ,UACtB,IAAIoB,EAAS,GACT0c,EAAU,EAEVtV,QAAqBC,IAAU1R,IAAI1S,IAAOe,yBAE9C,IAAKojB,EAAa/kB,IAAOC,kBAErB,MADAmzB,EAASvM,IAAoB,EAAO9B,EAAa/kB,IAAOE,oBAClD6kB,EAAa/kB,IAAOE,kBAG9Byd,EAASoH,EAAa/kB,IAAOG,eAG7B,IAAIm6B,EAAgB,CAChB3P,qBAAsB,EACtB+B,mBAAoB,EACpB6N,gBAAgB,EAChBC,uBAAuB,EACvB/W,qBAAqB,EACrBgX,qBAAqB,EACrBC,mBAAoB,EACpBC,cAAe,GAGnB,IAAIC,EACAjd,EAAsB,cACtBA,EAA0B,kBAC1Bkd,EACAld,EAAoB,YACpBA,EAAwB,gBAE5B0c,EAAUS,MAAMnO,WAAWiO,EAAqBC,GAAmB,GAC7D,OACAnQ,YAAyBiC,WAAWiO,EAAqBC,GAAmB,GAAG,GAErFP,EAAgB,CACZ3P,qBAAsBiQ,EACtBlO,mBAAoBmO,EACpBN,eAAgB5c,EAAuB,eACvC6c,sBAAuB7c,EAA8B,sBACrD8F,oBAAqB9F,EAAsC,8BAC3D8c,oBAAqB9c,EAA4B,oBACjD+c,mBAAoB/c,EAA2B,mBAC/Cgd,cAAehd,EAAsB,eAGzCyV,EAAS,CACLtJ,KAAM+M,EACNlZ,OAAQA,EACRod,cAAeV,EACfhc,eAAgBic,KAIXU,GAAcze,UAEzB,IAAIwI,QAAqBC,IAAU1R,IAAI1S,IAAO2F,8BAC9C,IAAKwe,EAAa/kB,IAAOC,kBAEvB,MADAmzB,EAASvM,IAAoB,EAAO9B,EAAa/kB,IAAOE,oBAClD6kB,EAAa/kB,IAAOE,kBAG5B,MAAM+6B,EAAgBlW,EAAa/kB,IAAOG,eACpC+6B,EAAeC,kBAASF,EAAgBG,GAAQA,EAAKC,YAAYlJ,MAAM,KAAK,IAElF,IAAImJ,EAAgB,GAClBtF,cAAIkF,EAAeE,IACb1U,YAAoB0U,EAAK,GAAGG,gBAC1B7U,YAAoB0U,EAAK,GAAGI,qBAElCF,EAAc/T,KAAK,CACjBlC,aAAa+V,EAAK,GAAGC,YACrBE,cAAcH,EAAK,GAAGG,cACtBC,mBAAmBJ,EAAK,GAAGI,uBAIjCpI,EAAS,CACPtJ,KAAM6O,EACN8C,SAAUH,KAIDI,GAAaC,GAChBvI,IACNA,EAAS,CACPtJ,KAAMkN,EACN2E,WAKOC,GAAwBC,GAC3BzI,IACNA,EAAS,CACPtJ,KAAMmN,EACN6E,eAAeD,EAAiBC,eAChCC,UAAUF,EAAiBE,UAC3BC,iBAAiBH,EAAiBG,iBAClCC,YAAYJ,EAAiBI,eAKtBC,GAAqBC,GACxB/I,IACNA,EAAS,CACPtJ,KAAMoN,EACN4E,eAAeK,EAAcL,eAC7BC,UAAUI,EAAcJ,aAMjBK,GAAgBC,GACnBjJ,IACNA,EAAS,CACPtJ,KAAM+P,GACNwC,SAASA,KAMFC,GAAkBC,GACrBnJ,IACNA,EAAS,CACPtJ,KAAMkO,EACNuE,cAKOC,GAAeC,GAClBrJ,IACNA,EAAS,CACPtJ,KAAM+N,EACNtS,KAAMkX,KAkDCC,GAAqB1I,GACzBzX,UACL6W,EAAS,CACPtJ,KAAM4N,EACNnS,KAAMyO,KAKC2I,GAAgB3I,GACpBzX,UACL6W,EAAS,CACPtJ,KAAM6N,EACNpS,KAAMyO,KAcC4I,GAAeC,GACnBtgB,UACL6W,EAAS,CACPtJ,KAAMoO,EACN3S,KAAMsX,KAkDCrgB,GAAUA,CAACsgB,EAAa1G,IAC5B7Z,UACL6W,EAAS,CACPtJ,KAAMqN,EACNf,QAASA,EACT0G,YAAaA,KASNjgB,GAAUA,IACdN,UACL6W,EAAS,CACPtJ,KAAMsN,KASC2F,GAAoBA,CAACC,EAAQlsB,IACjCyL,UACL6W,EAAS,CACPtJ,KAAMuN,EACN9R,KAAM,CAAE0X,QAASD,EAAQlsB,IAAKA,MAQvB+V,GAAsB,SACjCmW,EACA5G,GAEI,IADJ8G,IAAiBrpB,UAAAyI,OAAA,QAAA6gB,IAAAtpB,UAAA,KAAAA,UAAA,GAEjB,OAAQuf,IACN,IAAIgK,EAAgBhH,EAChB8G,IACFE,EAAgBC,IAAK/f,EAAE8Y,IAEzBhD,EACEkK,GAAY,CACVxT,KAAMkT,EAAS5lB,IAAWG,SAAWH,IAAWM,OAChDqS,QAASqT,OA4BJE,GAAeC,GAClBnK,IAAc,IAADoK,EACnB,MAAMC,EAAgBF,EAAWvT,UACjCuT,EAAWvT,UAAYzN,iBACrBmhB,WAAuBtK,GACnBqK,GACFA,KAAc5pB,YAIlB,MAAM8pB,EAAeJ,EAAWzU,SAChCyU,EAAWzU,SAAWvM,iBACpBmhB,WAAuBtK,GACnBuK,GACFA,KAAa9pB,YAIjB0pB,EAAWrU,iBAAmB,SAC9BqU,EAAWrW,MAAwB,QAAnBsW,EAAGD,EAAWrW,aAAK,IAAAsW,IAAI,GACvCD,EAAWK,aAAc,EACzBL,EAAWtU,gBAAiB,EAE5BmK,EAAS,CAAEtJ,KAAMgQ,GAAaC,UAAWrV,MAAO6Y,KAOvCG,GAAiBA,IACpBtK,IACNA,EAAS,CAAEtJ,KAAMgQ,GAAaE,QAOrB6D,GAAkB,SAACviB,GAAoB,IAAbwiB,EAAGjqB,UAAAyI,OAAA,QAAA6gB,IAAAtpB,UAAA,GAAAA,UAAA,GAAG,EAC3C,OAAQuf,IACNA,EAAS,CAAEtJ,KAAMwO,EAAoByF,aAAaziB,EAAO0iB,WAAWF,MAO3DG,GAAoB3iB,GAEvB8X,IACNA,EAAS,CAAEtJ,KAAMgP,EAAqBoF,cAAc5iB,KAI3C6iB,GAAyB7iB,GAE5B8X,IACNA,EAAS,CAAEtJ,KAAMiP,EAA2BqF,mBAAmB9iB,KAQtD+iB,GAAiBP,GACpB1K,IACNA,EAAS,CAAEtJ,KAAMyO,EAAkByF,WAAWF,KAQrCQ,GAAiBhjB,GACpB8X,IACNA,EAAS,CAAEtJ,KAAM0O,EAAkB+F,WAAWjjB,KAIrCqM,GAAqBrM,GACxB8X,IACNA,EAAS,CAAEtJ,KAAM2O,EAAuBra,eAAe9C,KAI9CkjB,GAAoBljB,GACvB8X,IACNA,EAAS,CAAEtJ,KAAM4O,EAAqB+F,cAAcnjB,KAW3CojB,GAAoBpjB,GACvB8X,IACNA,EAAS,CAAEtJ,KAAM+O,EAAqB8F,gBAAgBrjB,KAI7CsjB,GAAgBA,CAC3BC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA3a,EACA4a,EACA3K,EACA4K,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,IAEQ5N,IACNA,EAAS,CAAEtJ,KAAM8M,EACfiI,UAAWA,EACXoC,iBAAkBnC,EAClBoC,gBAAiBnC,EACjBjjB,aAAckjB,EACdC,SAAUA,EACVC,UAAWA,EACXC,WAAYA,EACZC,UAAWA,EACX3a,kBAAmBA,EACnB4a,eAAgBA,EAChB3K,aAAcA,EACd4K,mBAAoBA,EACpBC,gBAAiBA,EACjBC,2BAA4BA,EAC5BC,8BAA+BA,EAC/BC,sBAAuBA,EACvBC,WAAYA,EACZC,kBAAmBA,EACnBC,eAAgBA,EAChBC,oBAAqBA,EACrBC,mBAAoBA,EACpBC,sBAAuBA,EACvBC,yBAA0BA,EAC1BC,mBAAoBA,EACpBC,eAAgBA,EAChBC,gBAAiBA,EACjBC,qBAAsBA,EACtBC,2BAA4BA,EAC5BC,eAAgBA,EAChBC,2BAA4BA,EAC5BC,oBAAqBA,EACrBC,gBAAgBA,EAChBC,UAAUA,EAEVC,8BAA+BA,EAC/BC,iBAAkBA,EAClBC,cAAeA,EACfC,qBAAsBA,EACtBC,oBAAqBA,KAKdG,GAAkB7lB,GACtBiB,UACL6W,EAAS,CACPtJ,KAAMkP,EACNoI,cAAc9lB,KAKP+lB,GAAqB/lB,GACxB8X,IACNA,EAAS,CAAEtJ,KAAMmP,EAAoBqI,aAAahmB,KAIzCimB,GAAyBjmB,GAC5B8X,IACNA,EAAS,CAAEtJ,KAAMoP,EAA4BsI,mBAAmBlmB,KAIvDmmB,GAA2BnmB,GAC9B8X,IACNA,EAAS,CAAEtJ,KAAMqP,EAA8BuI,qBAAqBpmB,KAI3DqmB,GAAgBC,IAItB,IAJuB,SAC5B3a,EAAQ,SACR4a,EAAQ,eACRC,GACDF,EACC,OAAOrlB,UACL6W,EAAS,CACPtJ,KAAMsP,EACNnS,WACA4a,WACAC,qBAKOC,GAA0BzmB,GAE7B8X,IACNA,EAAS,CAAEtJ,KAAMuP,EAA4B2I,oBAAoB1mB,KAGxD2mB,GAAsB3mB,GACzB8X,IACNA,EAAS,CAAEtJ,KAAMwP,EAAwB4I,gBAAiB5mB,KAIjD6mB,GAAwB7mB,GAC3B8X,IACNA,EAAS,CAAEtJ,KAAMyP,EAA0B6I,kBAAkB9mB,KAIpD+mB,GAAwB/mB,GAC3B8X,IACNA,EAAS,CAAEtJ,KAAM0P,EAA0B8I,kBAAkBhnB,KAIpDinB,GAAwBjnB,GAC3B8X,IACNA,EAAS,CAAEtJ,KAAM2P,EAA0B+I,kBAAkBlnB,KAKpDmnB,GAAyBnnB,GAC5B8X,IACNA,EAAS,CAAEtJ,KAAM4P,GAA2BgJ,mBAAoBpnB,KAIvDqnB,GAAuBrnB,GACxB8X,IACJA,EAAS,CAAEtJ,KAAM6P,GAAyBiJ,iBAAkBtnB,KAIvDunB,GAAiBC,GACpB1P,IACNA,EAAS,CACPtJ,KAAM8P,GACNrU,KAAMud,M,kBCjtBZtnB,EAAOC,QAAU,8U,iCCAjB,iDA0BesnB,UArBEA,KACb,MAAM,EAAEzlB,GAAMC,cACRsf,EAAW9gB,YAAaC,GAAUA,EAAMC,SAAS4gB,UAEvD,OACI9f,IAAAC,cAAA,OAAKE,UAAU,6BACXH,IAAAC,cAAA,OAAKE,UAAW2f,EAAW,cAAgB,SAC3C9f,IAAAC,cAAA,OAAKE,UAAW2f,EAAW,eAAiB,SACxC9f,IAAAC,cAAA,OAAKE,UAAU,sBACXH,IAAAC,cAAA,OAAKE,UAAU,qBACXH,IAAAC,cAAA,OAAKG,IAAKgX,EAAQ,KAAsC1L,OAAO,QAAQC,MAAM,QAAQC,IAAI,uBACzF5L,IAAAC,cAAA,UAAKM,EAAE,mBACPP,IAAAC,cAAA,SAAIM,EAAE,+BACNP,IAAAC,cAAA,KAAGgmB,KAAM5vB,IAAOnC,UAAWiM,UAAU,4BAA4BI,EAAE,yB,4TC2L5E2lB,MA3LSA,KAAO,IAADC,EAAAC,EAAAC,EAC7B,IAAIC,EAAYC,cAChB,MAAM1nB,EAAYC,eACZ,EAACyB,GAAKC,eACLgmB,EAAmBC,GAAwBpnB,mBAAS,IACpDqnB,EAAoBC,GAAyBtnB,oBAAS,IACtDunB,EAAaC,GAAkBxnB,oBAAS,IACxCynB,EAAgBC,GAAqB1nB,mBAAS,KAC9C2nB,EAAWC,GAAgB5nB,oBACxB,OAATinB,QAAS,IAATA,GAAgB,QAAPH,EAATG,EAAWrnB,aAAK,IAAAknB,OAAP,EAATA,EAAkBe,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAC/C4mB,MAASC,QAAQ,aAEdC,EAASC,GAAcjoB,oBACpB,OAATinB,QAAS,IAATA,GAAgB,QAAPF,EAATE,EAAWrnB,aAAK,IAAAmnB,OAAP,EAATA,EAAkBc,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAC/C4mB,MAASI,MAAM,SAGZC,EAAoBC,GAAyBpoB,oBAC1C,OAATinB,QAAS,IAATA,GAAgB,QAAPD,EAATC,EAAWrnB,aAAK,IAAAonB,OAAP,EAATA,EAAkBa,MACfZ,EAAUrnB,MAAMioB,KAChBC,MAASC,QAAQ,WAAWM,OAAO,cACnCnnB,EAAE,MACF4mB,MAASI,MAAM,OAAOG,OAAO,eAYjCloB,eAAemoB,EAAkBC,EAAMC,GACtCd,EAAkB,IAClBF,GAAe,GACf,IAEC,MAAMiB,EAAe,GACrB,IAAIC,IAFJH,EAAOA,GAAc,GAED,GAAKE,EAErBvf,EAAM,GAAAvU,OACTnQ,IAAOgO,oCACP,cACAs1B,IAAOH,GAAWU,OAAO,cACzB,YACAP,IAAOE,GAASK,OAAO,eAGxBnf,EAASA,EAAS,UAAYwf,EAAQ,UAAUD,EAGhD,IAAI9f,QAAqBC,IAAU1R,IAAIgS,GAEvC,GAAIP,EAAa/kB,IAAOC,kBAAmB,CAC1C6jC,EACC/e,EAAa/kB,IAAOG,eAAeH,IAAOG,gBAG3C,IAAI4kC,EAAahgB,EAAa/kB,IAAOG,eAAe4kC,WAiBrBC,EAhBNC,KAAKC,KAAKH,EAAaF,GAiBlDrB,EAAsB2B,GAAcH,QAflCppB,EACC0hB,aACCvY,EAAa/kB,IAAOC,kBACpBqd,EAAEyH,EAAa/kB,IAAOE,qBAIxB,MAAOklC,GACRxpB,EAAUiL,cAAoB,EAAOue,IAMvC,IAAkCJ,EAJjCpB,GAAe,GAQhB,OApDAvnB,oBAAU,KACTqoB,KACE,CAACX,EAAWK,IAmDdrnB,IAAAC,cAAA,OAAKE,UAAU,mCAAmCuJ,GAAG,cACpD1J,IAAAC,cAAA,MAAIE,UAAU,wBAAwBI,EAAE,sBACxCP,IAAAC,cAACqoB,IACA,CACAtB,UAAWA,EACXK,QAASA,EACTJ,aAAcA,EACdK,WAAYA,EACZiB,OAAQA,CAACR,EAAOS,KACfvB,EAAac,GACbT,EAAWkB,IAEZC,SAAS,EACTC,YAAalB,EAEbmB,aAxEyBpqB,IAC3BkpB,EAAsBlpB,MA2ErByB,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,sBACdH,IAAAC,cAAA,SAAOE,UAAU,mBAChBH,IAAAC,cAAA,aACCD,IAAAC,cAAA,UACCD,IAAAC,cAAA,UAAKM,EAAE,kBACPP,IAAAC,cAAA,UAAKM,EAAE,aACPP,IAAAC,cAAA,UAAKM,EAAE,iBACPP,IAAAC,cAAA,UAAKM,EAAE,aAGTP,IAAAC,cAAA,aACE6mB,GACwB,GAAzBA,EAAevnB,OACdunB,EAAe7N,IAAI,CAACzQ,EAAMwM,IAGxBhV,IAAAC,cAAA,MAAIgV,IAAKD,GACRhV,IAAAC,cAAA,UACEuI,EAAkB,aAEpBxI,IAAAC,cAAA,UACIuI,EAAmB,cAEvBxI,IAAAC,cAAA,MAAIwM,MAAO,CAAEoD,MAAgC,YAAzBrH,EAAqB,eAAgB,UAAY,SAEvC,YAAzBA,EAAqB,eACajI,EAAE,WACtCiI,EAAqB,gBAIxBxI,IAAAC,cAAA,UACEuI,EAAa,UAKfoe,EACH5mB,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GACZ5oB,IAAAC,cAAA,OACCwM,MAAO,CACNoc,UAAW,SACXC,UAAW,OACXpc,aAAc,SAGf1M,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,SAGT1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,WAM5CP,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GAAIroB,EAAE,uBAOxBimB,EAAoB,GACpBxmB,IAAAC,cAAC8oB,IAAa,CACbC,WAAYxC,EACZyC,oBAAqBtB,EACrBjB,mBAAoBA,EACpBwC,eAAgBvC,MCjCNwC,MA1JoBvqB,IACjC,IAAI,EAAE2B,GAAMC,cACR3B,EAAYC,cAEhB,MAAMwC,EAAiBtC,YAAaC,GAAUA,EAAMC,SAASoC,gBACvDqjB,EAAuB3lB,YAAaC,GAAUA,EAAMC,SAASylB,sBAC7D5lB,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDqqB,EAAmBC,GAAwBhqB,oBAAS,IACrDiqB,EAAUC,GAAelqB,qBAGzBmqB,EAAa,CACnB,CACChrB,MAAO,oBACPD,MAAO,KAIFkrB,EAAgBC,GAAqBrqB,mBAAS,GAgBpD,OAbFC,oBAAU,KACJP,EAAaQ,OAAS,GAK5BC,iBACE,MAAM8pB,EAAW5pB,eAAKX,EAAc,CAAEY,aAAc,cAChD2pB,GACFC,EAAYD,EAAS1pB,WAAW0pB,EAASzpB,cAPzCE,IAED,CAAChB,IAUAiB,IAAAC,cAAA,WAEED,IAAAC,cAACiN,IAAK,CACJxD,GAAG,kBACHvJ,UAAU,0BACVkN,iBAAkB,iEAClBF,MAAM,EACNC,OAAQuX,EACRpX,OAAQA,KACN1O,EAAU6lB,cAAwB,MAGpC1kB,IAAAC,cAACwN,IAAW,KACVzN,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OACKkL,QAASA,KACRtM,EAAU6lB,cAAwB,IAClC7lB,EAAU2lB,cAAsB,MAGpCxkB,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWqe,UACjBxpB,UAAU,8BAGdH,IAAAC,cAAA,WAAMM,EAAE,kBAEVP,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OACEE,UAAU,wBACVgL,QAASA,IAAMtM,EAAU6lB,cAAwB,KAEjD1kB,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,aAI/CH,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,OAAKE,UAAU,4BAGfH,IAAAC,cAAA,OAAKE,UAAU,yBACdH,IAAAC,cAAA,OAAKE,UAAU,cACfH,IAAAC,cAAA,OAAKE,UAAU,eACtBH,IAAAC,cAAA,OACEG,IAAKkpB,EACL7c,MAAO,CAAEd,MAAO,OAAQD,OAAQ,QAChCE,IAAI,oBAEN5L,IAAAC,cAAA,WACED,IAAAC,cAAA,WAAK,IAAC,GAAAjM,OAAIuM,EAAE,kBAAiB,MAC7BP,IAAAC,cAAA,OACEwM,MAAO,CACLyK,WAAY,OACZrH,MAAO,qCAGRlC,YACCrM,EAAesM,qBACf,GACA,QAQF5N,IAAAC,cAAA,OAAKE,UAAU,0CACpBH,IAAAC,cAAA,OAAKE,UAAU,2CACdH,IAAAC,cAAA,OAAKE,UAAU,cAAcI,EAAE,gBAC/BP,IAAAC,cAAA,OAAKE,UAAU,UACZipB,EAqBDppB,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLtB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,UA1BV8d,GAAcA,EAAWjqB,OAAS,EACjCS,IAAAC,cAAA,UACC6I,KAAK,aACLvK,MAAOkrB,EACPzQ,SAAW/B,IACVyS,EAAkBzS,EAAEzgB,OAAO+H,SAG3BirB,EAAWvQ,IAAI,CAACoF,EAAMrJ,IAErBhV,IAAAC,cAAA,UAAQgV,IAAKD,EAAOzW,MAAO8f,EAAK9f,OAC9BgC,EAAE8d,EAAK7f,UAMZwB,IAAAC,cAAA,OAAKE,UAAU,gBAAgBI,EAAE,oBAerCP,IAAAC,cAAA,MAAIE,UAAU,gCAGS,IAAnBspB,GAAwB9E,GAAwB3kB,IAAAC,cAACimB,EAAe,YC+R1D0D,MAxakBhrB,IAC/B,IAAI,EAAE2B,GAAMC,cACR3B,EAAYC,cAEhB,MACO0nB,EAAmBC,GAAwBpnB,mBAAS,KACpDqnB,EAAoBC,GAAyBtnB,oBAAS,GACvDiC,EAAiBtC,YAAaC,GAAUA,EAAMC,SAASoC,gBAC7D,IAAI,UAAE6E,GAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAO8oB,EAAmBC,GAAwBzqB,qBAG5ColB,EAAqBzlB,YAAaC,GAAUA,EAAMC,SAASulB,qBAC1DsF,EAAeC,GAAoB3qB,oBAAS,IAC5C4qB,EAAeC,GAAoB7qB,mBAAS,KAC5C8qB,EAAqBC,GAA0B/qB,oBAAS,GACzDN,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDuqB,EAAUC,GAAelqB,sBACzBgrB,EAAgBC,GAAqBjrB,sBACrCkrB,EAAWC,GAAgBnrB,mBAAS,KACpCorB,EAAcC,GAAmBrrB,oBAAS,GAEjD,IAAIsrB,GAAY,EAChB,MAAMC,EAAc1pB,iBAAO,MACrB2pB,EAAgB3pB,kBAAO,GAiF7B1B,eAAesrB,EAAWlD,GACxB,IACM+C,IACF9rB,EAAUY,gBACVuqB,GAAiB,IAInB,MAAMlC,EAAe,GACrB,IAAIC,IAFJH,EAAOA,GAAc,GAED,GAAKE,EAGzB,IAAIvf,EAAS1kB,IAAO+N,sBAClB,UAAYm2B,EAAQ,UAAYD,EAElC,IAAI9f,QAAqBC,IAAU1R,IAAIgS,GAEvC,GAAIP,EAAa/kB,IAAOC,kBAAmB,CAIzC,IAFA,IAAI6nC,EAAgB/iB,EAAa/kB,IAAOG,eAAeH,IAAOG,eAErD4nC,EAAI,EAAGA,EAAID,EAAcxrB,OAAQyrB,IACxCD,EAAcC,GAAkB,cAAIC,EAAkBF,EAAcC,GAAe,YAGrFd,EAAiBa,GACjB,IAAI/C,EAAahgB,EAAa/kB,IAAOG,eAAe4kC,WAqExBC,EApEHC,KAAKC,KAAKH,EAAaF,GAqEpDrB,EAAqB2B,GAAaH,QAnE9BppB,EACEiL,cAAoB,EAAO,2BAIxB+gB,EAAcxhB,UACjBwhB,EAAcxhB,SAAU,EACxB4B,cAAc2f,EAAYvhB,SAC1BxK,EAAUiL,cAAoB,EAAO,4BAIrC6gB,IACF9rB,EAAUiB,gBACVkqB,GAAiB,GACjBW,GAAY,GAEd,MAAOtC,GACPxpB,EAAUiL,cAAoB,EAAOue,IAgDzC,IAAkCJ,EA9KlC3oB,oBAAU,KACR,MAAM4rB,EAAc/D,IAAOgE,MAAMzD,OAAO,aACxCoC,EAAqBoB,GACrBP,GAAY,GACX,IAGHrrB,oBAAU,KACR,GAAI6qB,GAAuB1F,EASzB,OARAqG,IAGAF,EAAYvhB,QAAU0B,YAAY,KAEhC+f,KACC,KAEI,KAEL7f,cAAc2f,EAAYvhB,WAG7B,CAAC8gB,EAAqB1F,IAEzBnlB,oBAAU,KAEJ6G,GA2BN3G,iBAEE,IAAIwI,QAAqBC,IAAU1R,IACjC1S,IAAOiO,6BAGT,GAAIkW,EAAa/kB,IAAOC,kBAAmB,CACzC,IAAIkoC,GAAmB,EACnBC,GAAwB,EAE+B,KAAvDrjB,EAAa/kB,IAAOG,eAAegoC,mBACrCA,GAAmB,GAG2C,KAA5DpjB,EAAa/kB,IAAOG,eAAeioC,wBACrCA,GAAwB,IAGtBllB,GAAailB,IAELjlB,GAAailB,GAAoBC,IAD3CjB,GAAuB,IA5CzBkB,IAED,CAACnlB,IAGJ7G,oBAAU,KACJP,EAAaQ,OAAS,GAK5BC,iBACE,MAAM8pB,EAAW5pB,eAAKX,EAAc,CAAEY,aAAc,cAChD2pB,GACFC,EAAYD,EAAS1pB,WAAa0pB,EAASzpB,cAG7C,MAAMwqB,EAAiB3qB,eAAKX,EAAc,CAAEY,aAAc,oBACtD0qB,GACFC,EAAkBD,EAAezqB,WAAayqB,EAAexqB,cAZ7DE,IAED,CAAChB,IA6IJ,MAAMksB,EAAqBM,IAEzB,IAAKA,EACH,MAAO,MAGT,MAAMC,EAAoBD,EAAWE,SAAS,KAAOF,EAAaA,EAAa,IACzEG,EAAM,IAAIC,KACVC,EAAS,IAAID,KAAKH,GAKxB,GAAIzN,MAAM6N,EAAOC,WACf,MAAO,IAGT,MAAMC,EAAOF,EAASF,EAEtB,GAAII,GAAQ,EACV,MAAO,IAAA93B,OAAKuM,EAAE,QAAUwrB,cAG1B,MAAMC,EAAO9D,KAAK+D,MAAMH,EAAI,OACtBI,EAAQhE,KAAK+D,MAAOH,EAAI,MAAwB,MAChDK,EAAUjE,KAAK+D,MAAOH,EAAI,KAAmB,KAE7CM,EAAQ,GAEd,GAAIJ,EAAO,EAAG,CACZ,MAAMK,EAAwB9rB,EAAJ,IAATyrB,EAAe,MAAW,QAC3CI,EAAM5hB,KAAK,GAADxW,OAAIg4B,GAAIh4B,OAAGq4B,IAGvB,GAAIH,EAAQ,EAAG,CACb,MAAMI,EAA0B/rB,EAAJ,IAAV2rB,EAAgB,KAAU,OAC5CE,EAAM5hB,KAAK,GAADxW,OAAIk4B,GAAKl4B,OAAGs4B,IAGxB,GAAIH,EAAU,EAAG,CACf,MAAMI,EAA8BhsB,EAAJ,IAAZ4rB,EAAkB,OAAY,QAClDC,EAAM5hB,KAAK,GAADxW,OAAIm4B,GAAOn4B,OAAGu4B,IAG1B,OAAOH,EAAMI,KAAK,KAAKT,eAEzB,OACE/rB,IAAAC,cAAA,WAEED,IAAAC,cAACiN,IAAK,CACJxD,GAAG,kBACHvJ,UAAU,0BACVkN,iBAAkB,iEAClBF,MAAM,EACNC,OAAQqX,EACRlX,OAAQA,KACN1O,EAAU2lB,cAAsB,MAGlCxkB,IAAAC,cAACwN,IAAW,KACVzN,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,WAAMM,EAAE,uBAEVP,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OACEE,UAAU,wBACVgL,QAASA,IAAMtM,EAAU2lB,cAAsB,KAE/CxkB,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,aAI/CH,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,OAAKE,UAAU,4BAGbH,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKE,UAAU,cACbH,IAAAC,cAAA,OAAKE,UAAU,cAAcsM,MAAO,CAAEggB,UAAW,UAC/CzsB,IAAAC,cAAA,OACEG,IAAKkpB,EACL7c,MAAO,CAAEd,MAAO,OAAQD,OAAQ,QAChCE,IAAI,oBAEN5L,IAAAC,cAAA,WACED,IAAAC,cAAA,WAAK,IAAC,GAAAjM,OAAIuM,EAAE,kBAAiB,MAC7BP,IAAAC,cAAA,OACEwM,MAAO,CACLyK,WAAY,OACZrH,MAAO,4BAGRlC,YACCrM,EAAesM,qBACf,GACA,MAKR5N,IAAAC,cAAA,UACEE,UAAU,oCACVgL,QAASA,KACPtM,EAAU6lB,cAAwB,IAClC7lB,EAAU2lB,cAAsB,MAOlCxkB,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWohB,UACjBvsB,UAAU,uBAEZH,IAAAC,cAAA,QAAM0sB,MAAI,GAAEpsB,EAAE,cAIpBP,IAAAC,cAAA,OAAKE,UAAU,WAAWsM,MAAO,CAC/BmgB,QAAS,OACTC,WAAY,SACZC,IAAK,SACLC,QAAS,WACTC,eAAgB,SAEhBhtB,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW2hB,YACjB9sB,UAAU,uBAEZH,IAAAC,cAAA,YAAOM,EAAE,0BAIVwpB,GACC/pB,IAAAC,cAAA,OAAKE,UAAU,kCAAkCsM,MAAO,CAAEygB,aAAc,SACtEltB,IAAAC,cAAA,OAAKE,UAAU,oDACbH,IAAAC,cAAC4N,IAAO,CAACC,UAAU,SAASE,KAAK,KAAKvB,MAAO,CAAEoD,MAAO,gCAI1Dka,GAAiBE,GAAiBA,EAAc1qB,OAAS,GACzDS,IAAAC,cAAAD,IAAAE,SAAA,KAAE,IAACF,IAAAC,cAAA,OAAKE,UAAU,6BACf8pB,EAAchR,IAAI,CAACoF,EAAMrJ,IACxBhV,IAAAC,cAAA,OAAKE,UAAU,kBAAkB8U,IAAKD,GACpChV,IAAAC,cAAA,OAAKE,UAAU,oBAAkB,GAAAnM,OAC3BuM,EAAE,cAAa,MAAAvM,OAAKqqB,EAAK3U,KAE/B1J,IAAAC,cAAA,cAAAjM,OACMuM,EAAE,YAAW,MAAAvM,OAAKqqB,EAAK8O,eAE7BntB,IAAAC,cAAA,OAAKE,UAAU,kBACbH,IAAAC,cAAA,KAAGE,UAAU,sBACbH,IAAAC,cAAA,YACGM,EAAE,cAAc,KAAG8d,EAAK+O,gBAIR,MAApB/O,EAAKgP,YACJ5C,GAAgBpM,EAAK3U,GACnB1J,IAAAC,cAAA,OAAKE,UAAU,0BAA0BsM,MAAO,CAAE6gB,QAAS,MAAO3hB,MAAO,SACvE3L,IAAAC,cAAC4N,IAAO,CAACC,UAAU,SAASE,KAAK,QAGnChO,IAAAC,cAAA,UACEE,UAAU,0BACVgL,QAASA,MAtNnC3L,eAAwB+tB,GAQtB1uB,EAAUY,gBACVirB,EAAgB6C,GAEhB,IAAIvlB,QAAqBC,IAAUiM,KACjCrwB,IAAOmO,mBACP,CACE,kBAAqBu7B,IAIzB1uB,EAAUiB,gBACV4qB,GAAgB,GAEZ1iB,EAAa/kB,IAAOC,kBACjBymB,YAAoB3B,EAAa/kB,IAAOG,eAAe2Q,MAMtD0W,OAAOC,KAAK1C,EAAa/kB,IAAOG,eAAe2Q,IAAK,UAK1D8K,EACE0hB,aAAY,CACVxT,KAAM1S,IAAWM,OACjBqS,QAASzM,EAAEyH,EAAa/kB,IAAOE,sBAmLXqqC,CAASnP,EAAK3U,MAIhB1J,IAAAC,cAAA,WAAMM,EAAE,cAIZP,IAAAC,cAAA,OAAKE,UAAU,qCACZI,EAAE,gBAAgB,IAACP,IAAAC,cAAA,YAAOoe,EAAKgP,iBAQvC7G,EAAoB,GACnBxmB,IAAAC,cAAC8oB,IAAa,CACZC,WAAYxC,EACZyC,oBAAqB6B,EACrBpE,mBAAoBA,EACpBwC,eAAgBvC,MAOtBoD,GAAiBE,GAAyC,GAAxBA,EAAc1qB,QAClDS,IAAAC,cAAA,OAAKE,UAAU,gCAAgCsM,MAAO,CAAEoI,OAAQ,SAC9D7U,IAAAC,cAAA,OAAKE,UAAU,gEACbH,IAAAC,cAAA,OACEG,IAAKiqB,EACLze,IAAI,oBAGN5L,IAAAC,cAAA,OAAKE,UAAU,eAAeI,EAAE,+BAS5CP,IAAAC,cAACkpB,EAAyB,Q,OCvIjBsE,MAlRGlc,IAA6D,IAA5D,YAAEmc,EAAW,iBAAEC,EAAgB,YAAEC,EAAW,QAACC,GAAStc,EACxE,MAAM,EAAEhR,EAAC,KAAE+f,GAAS9f,cACLE,cAAf,IACI4lB,EAAYC,cAChB,MAAM1nB,EAAYC,eAGVyrB,EAAWC,IAFDxrB,YAAaC,GAAUA,EAAM8B,UAAUC,UACtChC,YAAaC,GAAUA,EAAMC,SAAS0B,QACtBvB,mBAAS,KAC3C,IAAI,UAAE8G,GAAcnH,YAAaC,GAAUA,EAAM8B,WAEjD,MAAOqqB,EAAkB0C,GAAuBzuB,oBAAS,IAClDgsB,EAAuB0C,GAA4B1uB,oBAAS,IAC5D8qB,EAAqBC,GAA0B/qB,oBAAS,IACxD2uB,EAAqBC,GAA0B5uB,oBAAS,IACxD6uB,EAAuBC,GAA6B9uB,oBAAS,GAC9DN,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDqvB,EAAaC,GAAiBhvB,mBAAS+X,EAAQ,OAC/CkX,EAAWC,GAAgBlvB,mBAAS,QAgC3CG,eAAe8rB,IAGb,IAAIkD,EAAgB9uB,eAAKX,EAAc,CAAEY,aAAc,WAAW8uB,SAAU,qBAEzED,GACDH,EAAgBG,EAAc5uB,WAGhC,IAAIoI,QAAqBC,IAAU1R,IACjC1S,IAAOiO,6BAGT,GAAGkW,EAAa/kB,IAAOC,kBAAkB,CACvC,IAAIkoC,GAAmB,EACnBsD,GAA4B,EAE0B,KAAvD1mB,EAAa/kB,IAAOG,eAAegoC,mBACpCA,GAAmB,GAG0C,KAA5DpjB,EAAa/kB,IAAOG,eAAeioC,wBACpCqD,GAA4B,EAC5BX,GAAyB,IAIzB3D,KADCjkB,IAAailB,GAAqB4C,MAE1B7nB,IAAailB,IAAoBsD,GAA8BV,KA1D/E1uB,oBAAU,KACTgsB,IAEE,MAAMqD,EAAgBplB,SAASqlB,cAAc,mBAE7C,GAAGD,EAAc,CACjB,MAAME,EAAkBpkB,OAAOqkB,iBAAiBH,GAAeE,gBACzDE,EAAcC,EAAiBH,GACrCN,EAAaQ,EAAc,OAAS,aAEpC,IAEFzvB,oBAAU,KACRgsB,KACC,CAACnlB,IAEJ7G,oBAAU,KAEJ6qB,EAKE0D,EAAQxkB,SACVwkB,EAAQxkB,QAAQ4lB,eALdpB,EAAQxkB,SACVwkB,EAAQxkB,QAAQ6lB,gBAQpB,CAAC/E,IAsCH,MAAOgF,EAASC,GAAc/vB,oBAAS,GA+HjC2vB,EAAoBK,IACxB,MAAMC,EAAMD,EAAQE,MAAM,QAC1B,GAAID,EAAK,CAIP,MAAY,KAHFE,SAASF,EAAI,GAAI,IAGH,KAFdE,SAASF,EAAI,GAAI,IAES,KAD1BE,SAASF,EAAI,GAAI,IACkB,IAE/C,OAAO,GAgBV,OACGtvB,IAAAC,cAAAD,IAAAE,SAAA,KACGiqB,GAAuB7D,EAAUjc,WAAa,IAAKhU,IAAOU,mBAAoB,aAC7EiJ,IAAAC,cAAA,OAAKyJ,GAAG,cACN1J,IAAAC,cAAA,OACEwM,MAAO,CAAEmE,SAAU,WAAYgc,QAAS,eAAgBG,QAAS,QACjE5hB,QAASA,KAELtM,GADGsH,GAAaklB,EACN9J,cAAc,GAGdiD,cAAsB,MAKnC2K,GACCnvB,IAAAC,cAAA,OACEE,UAAU,mBAAmBsM,MAAO,CAAEoD,MAAOye,GAC7CnjB,QAAU8L,IACRA,EAAEwY,kBACFrF,GAAuB,GACvB6D,GAAuB,KAGzBjuB,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,WAG7CH,IAAAC,cAAA,OAAKE,UAAU,aAAayL,IAAI,kBAAkBxL,IAAKguB,EAAcsB,OAAQA,IAAMN,GAAW,KAC7FD,GAAYnvB,IAAAC,cAAA,OAAKE,UAAU,oBAAoBI,EAAE,eAIxDP,IAAAC,cAAC2pB,EAAuB,Q,kBC8Qf+F,MAtiBW/wB,IACtB,IAAI,EAAE2B,GAAMC,cACR3B,EAAYC,eAEZ,kBACA8wB,EAAiB,uBACjBC,EAAsB,qBACtBC,EAAoB,0BACpBC,EAAyB,YACzBC,EAAW,QACXC,EAAO,WACPC,EAAU,aACVC,EAAY,gBACZC,EAAe,kBACfC,EAAiB,qBACjBC,EAAoB,cACpBC,EAAa,cACbC,EAAa,iBACbC,EAAgB,eAChBC,EAAc,UACdC,EAAS,UACTC,EAAS,WACTC,EAAU,UACVlrB,EAAS,aACTC,EAAY,KACZkrB,EAAI,QACJC,EAAO,UACPC,EAAS,aACTC,EAAY,qBACZC,EAAoB,oBACpBC,EAAmB,uBACnBC,GACAxyB,EAEJ,MAAMinB,EAAmB7mB,YAAaC,GAAUA,EAAMC,SAAS2mB,kBAC/D,IAAI,UAAE1f,GAAcnH,YAAaC,GAAUA,EAAM8B,WAEjD,MAAOswB,EAAWC,GAAgBjyB,mBAAS,KACpCkyB,EAAcC,GAAmBnyB,mBAASuwB,IAC1C6B,EAAoBC,GAAyBryB,mBAAS,GACvDsyB,GAAY,gCAEZC,GAAe,CACvB,CACUC,KAAMtxB,EAAE,gBACRuxB,eAAgB,GAE1B,CACCD,KAAMtxB,EAAE,YACCuxB,eAAgB,IAIlB5mB,GACLlL,IAAAC,cAAA,OACOE,UAAU,QACVgL,QAASA,KACLtM,EAAU+mB,cAAoB,MAGxC5lB,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,WAI3Cb,oBAAU,OAEP,CAACumB,IAGJ,MAyBMkM,GAAwBA,KAC1BnsB,GAAa,GACb6qB,EAAiB,GACjBE,EAAU,IAORqB,GAAcxrB,IAChB,MAAM0lB,EAAQhE,KAAK+D,MAAMzlB,EAAU,MAC7B2lB,EAAUjE,KAAK+D,MAAOzlB,EAAU,KAAQ,IACxCyrB,EAAO/J,KAAK+D,MAAMzlB,EAAU,IAElC,OAAI0lB,EAAQ,EAEF,GAANl4B,OAAUk4B,EAAK,KAAAl4B,OAAIm4B,EAAU,GAAK,IAAM,IAAEn4B,OAAGm4B,EAAO,KAAAn4B,OAAIi+B,EAAO,GAAK,IAAM,IAAEj+B,OAAGi+B,GAGzE,GAANj+B,OAAUm4B,EAAO,KAAAn4B,OAAIi+B,EAAO,GAAK,IAAM,IAAEj+B,OAAGi+B,IAwD9CC,GAAsBA,CAACC,EAAend,KACpCmb,EAAazmB,KAAOyoB,EAAczoB,IAClCqoB,KACAX,EAA6C,GAAtBK,EAA0B,SAAW,UAC5DzB,EAAkC,GAAtByB,EAA0B7B,EAAoBE,GAC1DM,EAAgB+B,GAChB7B,EAAqBtb,GAEhBib,GACDC,GAAW,IAIfA,GAAYD,GAGhB,IAAImC,EAA+C,GAAtBX,EAA0B,SAAW,SAC9DL,GAA0BgB,IAC1BhB,EAAuBgB,GACvBpC,EAAkC,GAAtByB,EAA0B7B,EAAoBE,GAC1DQ,EAAqBtb,KAIvBqd,GAAuBhU,IACzB,IAAIrJ,EAAQ4a,EAAkB0C,UAAW3pB,GAC9BA,EAAEe,IAAM2U,EAAK3U,IAGpB6oB,EAAkB,IAAI3C,GAC1B2C,EAAgBvd,GAAOwd,UAAYD,EAAgBvd,GAAOwd,SAC1D3C,EAAuB0C,GAM3B/yB,eAA4CizB,GACxC1C,EAA0B0C,GAG1B,IAAInd,EAAS,CACTod,uBAHQD,EAAoBxZ,IAAI0Z,GAASA,EAAMjpB,IAAI8iB,KAAK,MAMxDxkB,QAAqBC,IAAUiM,KAC/BrwB,IAAOgP,sCACP6iB,YAAeJ,IAGkC,qBAA1CtN,EAAa/kB,IAAOC,mBACvB8kB,EAAa/kB,IAAOC,oBACpB6sC,EAA0B0C,GAEC,UAAvBtB,GACAb,EAAqBmC,EAAoBH,UAAW3pB,GAAMA,EAAEe,IAAMymB,EAAazmB,MArB3FkpB,CAD0BL,EAAgBM,OAAQF,GAAUA,EAAMH,YA4BtE,OACIxyB,IAAAC,cAAAD,IAAAE,SAAA,KACIF,IAAAC,cAACiN,IAAK,CACFC,MAAM,EACNzD,GAAG,kBACH0D,OAAQyY,EACRxY,iBAAkB,kBAElBE,OAAQA,KACJ1O,EAAU+mB,cAAqBC,MAGnC7lB,IAAAC,cAACwN,IAAW,CAAClC,MAAOL,IACf3K,EAAE,iBAEPP,IAAAC,cAACyN,IAAS,KACN1N,IAAAC,cAAA,OAAKE,UAAU,6BACXH,IAAAC,cAAA,OAAKE,UAAU,eACXH,IAAAC,cAAA,OAAKE,UAAU,gBACXH,IAAAC,cAAA,OAAKE,UAAU,0BACVoxB,EAAatY,IAAKoF,GACfre,IAAAC,cAAC6yB,IAAW,CACR7d,IAAKoJ,EAAK3U,GACV3V,IAAKsqB,EAAK0U,KACVC,WAAaC,GAhGzBC,EAACxpB,EAAIupB,KAC7B3B,EAAc5gB,GAAS,IAChBA,EACH,CAAEhH,GAAIA,EAAIupB,cAGdzB,EAAiB9gB,GACbA,EAAKmiB,OAAQM,GAAgBA,EAAYzpB,KAAOA,KAyFUwpB,CAAoB7U,EAAK3U,GAAIupB,GACvDxmB,MAAO,CAAEmgB,QAAS,WAG1B5sB,IAAAC,cAAA,OAAKE,UAAU,oBACXH,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAW8nB,aAER,OAAZjD,QAAY,IAAZA,OAAY,EAAZA,EAAchmB,OAEnBnK,IAAAC,cAAA,OAAKE,UAAU,kCACXH,IAAAC,cAAA,OAAKE,UAAU,wBACXH,IAAAC,cAAA,SACIE,UAAU,iBACV4M,KAAK,QACLsmB,IAAI,IACJC,IAAK/C,GAAiB,EACtBgD,KAAK,MACLh1B,MAAOiyB,EACPgD,YA5Jfvc,IACzB4Z,GAAW,IA4J6B7X,SAzJlB/B,IACtB,MAAMwc,EAAc7jB,WAAWqH,EAAEzgB,OAAO+H,OACxCkyB,EAAiBgD,GACjB9C,EAAU8C,EAAclD,IAuJgBmD,UApJjBzc,IACvB4Z,GAAW,GACXD,EAAUvnB,QAAQsqB,OAAO/jB,WAAWqH,EAAEzgB,OAAO+H,OAAQ,YAmJbq1B,aAhJlB3c,IACtB4Z,GAAW,IAgJ6BgD,YA7InB5c,IACrB,MAAM6c,EAAQ7c,EAAE8c,QAAQ,GAClBC,EAAO/c,EAAEzgB,OAAOy9B,wBAChBC,GAAkBJ,EAAMK,QAAUH,EAAKI,MAAQJ,EAAKroB,MAAS4kB,EAG7D8D,EAAkBnM,KAAKmL,IAAInL,KAAKoL,IAAIY,EAAe,GAAI3D,GAC7DI,EAAU0D,EAAkB9D,GAC5BE,EAAiB4D,IAsIuBC,WAnIrBC,KACnB1D,GAAW,GACXD,EAAUvnB,QAAQsqB,OAAOnD,EAAe,YAkIA/jB,MAAO,CACH,aAAcikB,MAI1B1wB,IAAAC,cAAA,OAAKE,UAAU,wBACXH,IAAAC,cAAA,WACK+xB,GAAWxB,IAEhBxwB,IAAAC,cAAA,WACK0F,EACG3F,IAAAC,cAAC4N,IAAO,CACJ1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,OACPD,OAAQ,OACRmE,MAAO,UAIfmiB,GAAWzB,MAK3BvwB,IAAAC,cAAA,OAAKE,UAAU,mCACfH,IAAAC,cAAA,OACQE,UAAW6wB,EAAY,wBAA0B,iBACjD7lB,QAASA,KACL+lB,GAAqB,GACrBD,EAAcvgB,IAAUA,KAG5B1Q,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWkpB,WACjBr0B,UAAS,iCAAAnM,OAAmCg9B,EAAY,iBAAmB,OAGnFhxB,IAAAC,cAAA,OACIE,UAAU,iBACVgL,QAlPjBspB,KAAO,IAADC,EACrBC,EAAwC,UAAvBxD,EAAkCvB,EAAoBE,EACvE8E,GAAavE,EAAoB,EAAIsE,EAAep1B,QAAUo1B,EAAep1B,QACtC,QAAzBm1B,EAAAC,EAAeC,UAAU,IAAAF,OAAA,EAAzBA,EAA2BhrB,KAAMymB,EAAazmB,KAG5DqoB,KACA3B,EAAgBuE,EAAeC,IAC/BtE,EAAqBsE,MA4OW50B,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWupB,YACjB10B,UAAWwxB,MAGnB3xB,IAAAC,cAAA,OACIE,UAAU,iBACVgL,QAzOhB2pB,KACpB5E,GAAYD,KA0OyBA,EACGjwB,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWypB,YACjB50B,UAAWwxB,KAEf3xB,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAW0pB,WACjB70B,UAAWwxB,MAIvB3xB,IAAAC,cAAA,OACIE,UAAU,iBACVgL,QAvRrB8pB,KAAO,IAADC,EACjBP,EAAwC,UAAvBxD,EAAkCvB,EAAoBE,EACvEqF,GAAa9E,EAAoB,GAAKsE,EAAep1B,QACd,QAAzB21B,EAAAP,EAAeQ,UAAU,IAAAD,OAAA,EAAzBA,EAA2BxrB,KAAMymB,EAAazmB,KAG5DqoB,KACA3B,EAAgBuE,EAAeQ,IAC/B7E,EAAqB6E,MAiRWn1B,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAW8pB,QACjBj1B,UAAWwxB,MAGnB3xB,IAAAC,cAAA,OACIE,UAAW2wB,EAAO,wBAA0B,iBAC5C3lB,QA3MfkqB,KACrBtE,GAASD,GACTwE,eAAexhC,QAAQ,QAASg9B,KA2MI9wB,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWwlB,KACjB3wB,UAAS,iCAAAnM,OAAmC88B,EAAO,iBAAmB,UAM1F9wB,IAAAC,cAAA,OAAKE,UAAU,4BACXH,IAAAC,cAAA,OAAKE,UAAU,sBACVgG,GAAayrB,IACVA,GAAaryB,QACb0Z,cAAI2Y,GAAc,CAACvT,EAAMrJ,IAChB7O,GAAqC,IAAxBkY,EAAKyT,eAKnB9xB,IAAAC,cAAA,UACIgV,IAAKD,EACL7U,UACIsxB,IAAuBpT,EAAKyT,eACtB,SACA,GAEV3mB,QAASA,KACLumB,EAAsBrT,EAAKyT,kBAG/B9xB,IAAAC,cAAA,OACIwM,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE8d,EAAKwT,QAlBT,OAwBvB7xB,IAAAC,cAAA,OAAKE,UAAU,kBACXH,IAAAC,cAAA,OAAKE,UAAU,yBACa,IAAvBsxB,GACG7B,EAAkBrwB,QAClB0Z,cAAI2W,EAAmB,CAACvR,EAAMrJ,KAC1B,MAAMub,EAAgBc,EAAU3xB,KAAM61B,GAAMA,EAAE7rB,KAAO2U,EAAK3U,IAC1D,OACI1J,IAAAC,cAAA,OAAKgV,IAAKD,GACNhV,IAAAC,cAAA,OAAKE,UAAU,eACXH,IAAAC,cAAA,OAAKE,UAAU,eACXH,IAAAC,cAAA,OAAKE,UAAU,cACXH,IAAAC,cAAA,OAAKE,UAAU,eACVgwB,GAAgBA,EAAazmB,IAAM2U,EAAK3U,IACrC1J,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAW8nB,aAGxB/U,EAAKlU,OAEVnK,IAAAC,cAAA,OAAKE,UAAU,eACXH,IAAAC,cAAA,QAAME,UAAU,qBACXgwB,GAAgBA,EAAazmB,IAAM2U,EAAK3U,GAAKsoB,GAAWxB,GAAiB,QAE9ExwB,IAAAC,cAAA,YAAM,aACND,IAAAC,cAAA,QAAME,UAAU,mBACXowB,EAAgByB,GAAWzB,EAAc0C,UAAY1yB,EAAE,uBAIpEP,IAAAC,cAAA,OAAKE,UAAU,gCACXH,IAAAC,cAAA,OACIE,UAAU,WACVgL,QAASA,IAAM+mB,GAAoB7T,EAAMrJ,IAExCib,GAAYE,GAAgBA,EAAazmB,IAAM2U,EAAK3U,GACjD1J,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWypB,cAErB/0B,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAW0pB,cAI5B7uB,GACGnG,IAAAC,cAAA,OACIE,UAAWke,EAAKmU,SAAW,eAAiB,mBAC5CrnB,QAASA,IAAMknB,GAAoBhU,IAElCA,EAAKmU,SACFxyB,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWkqB,WACjBr1B,UAAW,oBAEfH,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWmqB,aACjBt1B,UAAW,kBAQvCH,IAAAC,cAAA,OAAKE,UAAU,YAMP,IAAvBsxB,IACI3B,EAAqBvwB,OACtB0Z,cAAI6W,EAAsB,CAACzR,EAAMrJ,KAC7B,MAAMub,EAAgBc,EAAU3xB,KAAM61B,GAAMA,EAAE7rB,KAAO2U,EAAK3U,IACtD,OACI1J,IAAAC,cAAAD,IAAAE,SAAA,KACIF,IAAAC,cAAA,OAAKE,UAAU,cAAc8U,IAAKD,GAC9BhV,IAAAC,cAAA,OAAKE,UAAU,eACXH,IAAAC,cAAA,OAAKE,UAAU,cACXH,IAAAC,cAAA,OAAKE,UAAU,eACVgwB,GAAgBA,EAAazmB,KAAO2U,EAAK3U,IACtC1J,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAW8nB,aAE3B/U,EAAKlU,OAEVnK,IAAAC,cAAA,OAAKE,UAAU,eACXH,IAAAC,cAAA,QAAME,UAAU,qBACXgwB,GAAgBA,EAAazmB,KAAO2U,EAAK3U,GACpCsoB,GAAWxB,GACX,QAEVxwB,IAAAC,cAAA,YAAM,aACND,IAAAC,cAAA,QAAME,UAAU,mBACXowB,EAAgByB,GAAWzB,EAAc0C,UAAY1yB,EAAE,uBAIpEP,IAAAC,cAAA,OAAKE,UAAU,gCACXH,IAAAC,cAAA,OACIE,UAAU,WACVgL,QAASA,IAAM+mB,GAAoB7T,EAAMrJ,IAExCib,GACGE,GACAA,EAAazmB,KAAO2U,EAAK3U,GACzB1J,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWypB,cAExB/0B,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAW0pB,cAGhCh1B,IAAAC,cAAA,OACIE,UACIke,EAAKmU,SACC,eACA,mBAEVrnB,QAASA,IAAMknB,GAAoBhU,IAElCA,EAAKmU,SACFxyB,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWkqB,WACjBr1B,UAAW,oBAGfH,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWmqB,aACjBt1B,UAAW,kBAOnCH,IAAAC,cAAA,OAAKE,UAAU,YAK3BH,IAAAC,cAAA,OAAKE,UAAU,wBACVI,EAAE,gCCrDxCm1B,MAxeM92B,IACjB,IAAI,eACAwkB,EAAc,cACduS,EAAa,kBACbC,EAAiB,iBACjBnF,EAAgB,kBAChBoF,EAAiB,gBACjBC,EAAe,mBACfC,EAAkB,eAClBC,EAAc,kBACdC,EAAiB,gBACjBC,EAAe,mBACfC,EAAkB,gBAClBC,EAAe,mBACfC,EAAkB,kBAClBC,EAAiB,kBACjBC,GACA33B,EACAC,EAAYC,eACZ,UAAEqH,GAAcnH,YAAaC,GAAUA,EAAM8B,WAC7CJ,EAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,QAEvD,MAAO41B,EAAqB3G,GAA0BxwB,mBAAS+jB,IACxDqT,EAAwB1G,GAA6B1wB,mBAAS,KAC9D8wB,EAAcC,GAAmB/wB,mBAAS,OAC1CgxB,EAAmBC,GAAwBjxB,mBAAS,KACvD,MAAMq3B,EAAapB,eAAe5hC,QAAQ,qBAC1C,OAAOgjC,EAAalH,SAASkH,EAAY,IAAM,KAE5CzG,EAASC,GAAc7wB,mBAAS,IAEb,SADHi2B,eAAe5hC,QAAQ,aAGvCs9B,EAAWC,GAAgB5xB,mBAAS,IAEjB,SADHi2B,eAAe5hC,QAAQ,eAIvCo9B,EAAMC,GAAW1xB,mBAAS,IAEP,SADHi2B,eAAe5hC,QAAQ,UAIvCijC,EAAOC,GAAYv3B,oBAAS,IAC5Bw3B,EAAShG,GAAcxxB,oBAAS,IAChC4zB,EAAU6D,GAAez3B,oBAAS,IAClC03B,EAAUC,GAAe33B,mBAAS,IAClC43B,EAAQtG,GAAatxB,mBAAS,IAC9BsG,EAAWC,GAAgBvG,oBAAS,IACpC8xB,GAAqBC,IAA0B/xB,mBAAS,OACxD63B,GAAUC,IAAe93B,oBAAS,GAEnCsyB,GAAY,iCACXyF,GAAUpH,IAAe3wB,mBAAS+jB,IAClCiU,GAAmBnG,IAAwB7xB,oBAAS,IACpDi4B,GAAUC,IAAel4B,oBAAS,IAClCm4B,GAAUC,IAAep4B,mBAAS,KAClCq4B,GAAYC,IAAiBt4B,oBAAS,GAE7C,IAAIuxB,GAAY1vB,iBAAO,MAEvB5B,oBAAU,KACN0wB,GAAY5M,GACZgN,EAAgBhN,EAAeiN,IAC/Be,GAAuB,UACvBmG,GAAY9sB,OAAOE,WAAa,KA8PpC,WACI,MAAMitB,EAAYC,UAAUD,WAAaC,UAAUC,QAAUrtB,OAAOstB,MAEpE,GAAI,WAAWrf,KAAKkf,GAEhB,YADAH,GAAY,WAKhB,GAAI,oBAAoB/e,KAAKkf,GAEzB,YADAH,GAAY,OAKhBA,GAAY,UA5QZO,IACD,IAEH14B,oBAAU,KACN,GAAI6G,GAAa+wB,GAAU,CACvB,IAAIe,EAA0Bt3B,EAAWs3B,wBACrCA,GAA2BA,EAAwB14B,SACnDwwB,EAA0BkI,GAC1BjI,GAAYiI,GACZ7H,EAAgB6H,EAAwB,IACxC7G,GAAuB,UAEvBoF,EAAoB0B,QAAQvF,IAEJsF,EAAwBv4B,KAAKy4B,GAAeA,EAAYzuB,KAAOipB,EAAMjpB,MAErFipB,EAAMH,UAAW,KAIzB2E,IAAY,SAGVx2B,EAAWs3B,0BACU,UAAvB9G,KACApB,EAA0B,IAC1BC,GAAYwG,GACZpG,EAAgBoG,EAAoB,IACpCpF,GAAuB,WAE3B+F,IAAY,KAGjB,CAAChxB,EAAWxF,IAEfrB,oBAAU,KACN,GAAI+3B,GAAmB,CACnB,GAAIrG,EAAW,CAEX,IAAIoH,EAAyBC,GAAgB7B,GAC7C3G,EAAuBuI,GAEvB,IAAIE,EAAiCD,GAAgB5B,GACrD1G,EAA0BuI,GAE1BtI,GAAmC,UAAvBmB,GAAkCiH,EAAyBE,GACnEnI,GACAoI,GAAwBH,EAAwBE,OAGjD,CACHzI,EAAuB,IAAIzM,IAC3B,IAAIoV,EAAqB73B,EAAWs3B,wBAA0Bt3B,EAAWs3B,wBAA0B,GACnGlI,EAA0ByI,GAC1BxI,GAAmC,UAAvBmB,GAAkC/N,EAAiBoV,GAE3DrI,GACAoI,GAAwBnV,EAAgBoV,GAIhDlD,eAAexhC,QAAQ,YAAak9B,GACpCE,IAAqB,GACrB+E,EAAkBjF,KAGvB,CAACqG,KAEJ/3B,oBAAU,KACNg2B,eAAexhC,QAAQ,oBAAqBu8B,IAC7C,CAACA,IAEJ/wB,oBAAU,KACF6wB,GACAwF,EAAcxF,EAAahmB,QAEhC,CAACgmB,IAEJ7wB,oBAAU,KACFg3B,IACAxB,KACAyB,GAAkB,KAEvB,CAACD,IAEJh3B,oBAAU,KACN,GAAIw2B,EAAiB,CACjB,GAAIE,EAAgB,CAEhB,IAAIoC,EAAyBC,GAAgB7B,GAC7C3G,EAAuBuI,GAEvB,IAAIE,EAAiCD,GAAgB5B,GACrD1G,EAA0BuI,GAE1BtI,GAAmC,UAAvBmB,GAAkCiH,EAAyBE,GAEnEnI,GACAoI,GAAwBH,EAAwBE,OAGjD,CACHzI,EAAuB,IAAIzM,IAC3B,IAAIoV,EAAqB73B,EAAWs3B,wBAA0Bt3B,EAAWs3B,wBAA0B,GACnGlI,EAA0ByI,GAC1BxI,GAAmC,UAAvBmB,GAAkC/N,EAAiBoV,GAE3DrI,GACAoI,GAAwBnV,EAAgBoV,GAIhDlD,eAAexhC,QAAQ,YAAakiC,GACpCD,GAAmB,GACnB9E,EAAa+E,KAElB,CAACF,IAEJx2B,oBAAU,KACF42B,IACAjB,KACAkB,GAAmB,KAExB,CAACD,IAEJ52B,oBAAU,KACF82B,IACA3B,KACA4B,GAAmB,KAExB,CAACD,IAEJ,MAAMqC,GAAqBA,KACvB7yB,GAAa,GACbgwB,GAAkB,GAClBoB,EAAY,GACZvG,EAAiB,IAGf8H,GAA0BA,CAACG,EAAgBC,KAC7C,IAAIC,EAAkC,UAAvBzH,GACTuH,EAAepG,UAAW3pB,GAAMA,EAAEe,IAAMymB,EAAazmB,IACrDivB,EAAerG,UAAW3pB,GAAMA,EAAEe,IAAMymB,EAAazmB,IAE3D4mB,EAAqBsI,IAInB3D,GAAaA,KAAO,IAAD4D,EACjB1D,GAAa9E,EAAoB,GAAK+G,GAAS73B,QACd,QAAnBs5B,EAAAzB,GAASjC,UAAU,IAAA0D,OAAA,EAAnBA,EAAqBnvB,KAAMymB,EAAazmB,KAGtD+uB,KACArI,EAAgBgH,GAASjC,IACzB7E,EAAqB6E,KAKvBV,GAAiBA,KAAO,IAADqE,EACrBlE,GAAavE,EAAoB,EAAI+G,GAAS73B,QAAU63B,GAAS73B,QAChC,QAAnBu5B,EAAA1B,GAASxC,UAAU,IAAAkE,OAAA,EAAnBA,EAAqBpvB,KAAMymB,EAAazmB,KAGtD+uB,KACArI,EAAgBgH,GAASxC,IACzBtE,EAAqBsE,KAIvBE,GAAkBA,KACpB5E,GAAYD,GACZ4F,GAAmB5F,GACnBqF,eAAexhC,QAAQ,WAAYm8B,IAgCjCoI,GAAmBU,GACd,IAAIA,GAAUC,KAAK,IAAM9Q,KAAK+Q,SAAW,IAgEpD,OACIj5B,IAAAC,cAAA,OAAKE,UAAU,gBACXH,IAAAC,cAAA,OACIE,UAAU,QACVgL,QAASA,KACLtM,EAAU+mB,cAAoB,MAGlC5lB,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAW8nB,cAGzBpzB,IAAAC,cAAA,OAAKE,UAAU,0BACXH,IAAAC,cAAC6yB,IAAW,CACRjiB,IAAK+f,GACL78B,IAAiB,OAAZo8B,QAAY,IAAZA,OAAY,EAAZA,EAAc4C,KACnB9C,QAASA,EACTiJ,UAAU,EACVC,OAAQ,EACRxtB,MAAM,MACND,OAAO,MACP0tB,OAnHGC,KACfnJ,GAAW,IAmHCyG,MAAOA,EACP7F,KAAMA,EACNwI,WAjFQr6B,IACf43B,IACDpG,EAAiBxxB,EAAMs6B,eACvBvC,EAAY/3B,EAAMs6B,eAClB5I,EAAU1xB,EAAMg4B,UA8ERuC,QAlGIC,KAChBhB,KACA,IAAItD,EAAY9E,EAAoB,EAAI+G,GAAS73B,OAAS8wB,EAAoB,EAAI,EAClFC,EAAqB6E,GACrB/E,EAAgBgH,GAASjC,KA+FbuE,QA7DIC,KAChBC,QAAQC,IAAI,cAEZ,IAAI1E,EAAY9E,EAAoB,EAAI+G,GAAS73B,OAAS8wB,EAAoB,EAAI,EAClFC,EAAqB6E,GACrB/E,EAAgBgH,GAASjC,KAyDb2E,QAlDIC,KAChBn0B,GAAa,GACbgwB,GAAkB,IAiDN5C,WAzFQC,IACpB6D,EAAY7D,IAyFA+G,aAAa,EACbC,SAxHKC,KACjBN,QAAQC,IAAI,kBAwHAM,YArHQC,KACpBR,QAAQC,IAAIjJ,GAAUvnB,QAAQgxB,qBAC1B/C,IAAyB,QAAbE,IAAsBE,KAClCkC,QAAQC,IAAI,aACZ3J,GAAW,GACXyH,IAAc,GACV/G,GAAUvnB,QAAQgxB,oBAAoBC,WACtC1J,GAAUvnB,QAAQgxB,oBAAoBC,gBAgHtCt6B,IAAAC,cAAA,OAAKE,UAAU,mCACXH,IAAAC,cAAA,OACIE,UAAU,iBACVgL,QAASspB,IAETz0B,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWupB,YACjB10B,UAAWwxB,MAGnB3xB,IAAAC,cAAA,OACIE,UAAU,iBACVgL,QAAS2pB,IAER7E,EACGjwB,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWypB,YACjB50B,UAAWwxB,KAEf3xB,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAW0pB,WACjB70B,UAAWwxB,MAIvB3xB,IAAAC,cAAA,OACIE,UAAU,iBACVgL,QAAS8pB,IAETj1B,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAW8pB,QACjBj1B,UAAWwxB,MAGnB3xB,IAAAC,cAAA,OACIE,UAAW6wB,EAAY,wBAA0B,iBACjD7lB,QAASA,KACL+lB,IAAqB,GACrBD,EAAcvgB,IAAUA,KAG5B1Q,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWkpB,WACjBr0B,UAAS,iCAAAnM,OAAmCg9B,EAAY,iBAAmB,OAGnFhxB,IAAAC,cAAA,OACIE,UAAU,iBACVgL,QAASA,KACLtM,EAAU+mB,cAAoB,MAGlC5lB,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWivB,cACjBp6B,UAAWwxB,OAIvB3xB,IAAAC,cAAA,OAAKE,UAAU,oBACXH,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAW8nB,aAErBpzB,IAAAC,cAAA,OAAKE,UAAU,eACE,OAAZgwB,QAAY,IAAZA,OAAY,EAAZA,EAAchmB,OAEnBnK,IAAAC,cAAA,OAAKE,UAAU,cACVwF,EACG3F,IAAAC,cAAC4N,IAAO,CACJ1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,MACPD,OAAQ,MACRmE,MAAO,UA9JnBrJ,KAChB,MAAM0lB,EAAQhE,KAAK+D,MAAMzlB,EAAU,MAC7B2lB,EAAUjE,KAAK+D,MAAOzlB,EAAU,KAAQ,IACxCyrB,EAAO/J,KAAK+D,MAAMzlB,EAAU,IAElC,OAAI0lB,EAAQ,EAEF,GAANl4B,OAAUk4B,EAAK,KAAAl4B,OAAIm4B,EAAU,GAAK,IAAM,IAAEn4B,OAAGm4B,EAAO,KAAAn4B,OAAIi+B,EAAO,GAAK,IAAM,IAAEj+B,OAAGi+B,GAGzE,GAANj+B,OAAUm4B,EAAO,KAAAn4B,OAAIi+B,EAAO,GAAK,IAAM,IAAEj+B,OAAGi+B,IAwJ5BD,CAAW+E,MAK3B/2B,IAAAC,cAAC0vB,EAAgB,CACbC,kBAAmB4G,EACnB3G,uBAAwBA,EACxBC,qBAAsB2G,EACtB1G,0BAA2BA,EAC3BC,YAAaA,GACbY,UAAWA,GACXX,QAASA,EACTC,WAAYA,EACZC,aAAcA,EACdC,gBAAiBA,EACjBC,kBAAmBA,EACnBC,qBAAsBA,EACtBC,cAAe0C,EACfzC,cAAeuG,EACftG,iBAAkBuG,EAClBtG,eAAgBuG,EAChBtG,UAAWA,EACXE,WAAYA,EACZlrB,UAAWA,EACXC,aAAcA,EACdkrB,KAAMA,EACNC,QAASA,EACTC,UAAWA,EACXC,aAAcA,EACdC,qBAAsBA,GACtBC,oBAAqBA,GACrBC,uBAAwBA,O,OC5UzBoJ,MApJGA,KAChB,IAAI,UAAEr0B,GAAcnH,YAAaC,GAAUA,EAAM8B,WAEjD,MAAO05B,EAAqBC,GAA0Br7B,oBAAS,IACxDs7B,EAAqBC,GAA0Bv7B,oBAAS,IACxDw7B,EAAaC,GAAiBz7B,mBAAS,KACvC07B,EAAaC,GAAiB37B,mBAAS,KAEvCivB,EAAWC,GAAgBlvB,mBAAS,QACrCukB,EAAU5kB,YAAaC,GAAQA,EAAMC,SAAS0kB,YAC7C0T,EAAUC,GAAel4B,mBAASoL,OAAOE,YAAc,KACxDP,EAAWmc,cAIlBjnB,oBAAU,MA4CTE,iBAEE,IAAIy7B,EAAcrX,EAEfqX,IACCtxB,YAAiC,OAAbsxB,QAAa,IAAbA,OAAa,EAAbA,EAAeC,eAgBzC,SAAuBnnC,GACrB,IAEE,GAAG4V,YAAoB5V,GAAK,OAAO,EAGnC,OADkB,IAAIonC,IAAIpnC,GACTkyB,KAAK8F,cAAcN,SAAS,QAC7C,MAAOxU,GACP,OAAO,GAxB+CmkB,CAA2B,OAAbH,QAAa,IAAbA,OAAa,EAAbA,EAAelnC,MAEnFinC,EAAgBC,EAAclnC,KAE1B4mC,GACFD,GAAuB,IAOzBA,GAAuB,GA3D3BpP,GAEE,MAAMqD,EAAgBplB,SAASqlB,cAAc,mBAE7C,GAAGD,EAAc,CACjB,MAAME,EAAkBpkB,OAAOqkB,iBAAiBH,GAAeE,gBACzDE,EAAcC,EAAiBH,GACrCN,EAAaQ,EAAc,OAAS,WAGpC,MAAMsM,EAAeA,KACnB9D,EAAY9sB,OAAOE,YAAc,MAKnC,OAFAF,OAAOuM,iBAAiB,SAAUqkB,GAE3B,KACL5wB,OAAO6wB,oBAAoB,SAAUD,KAGvC,IAEF/7B,oBAAU,KAER,IAAI27B,EAAcrX,EAEfqX,IACGtxB,YAAiC,OAAbsxB,QAAa,IAAbA,OAAa,EAAbA,EAAeC,eACxCJ,EAAgBG,EAAcC,cAG3B5D,IAAa3tB,YAAiC,OAAbsxB,QAAa,IAAbA,OAAa,EAAbA,EAAeM,cAClDT,EAAgBG,EAAcM,eAIhC,CAACjE,IAuCH,MAUOnI,EAASC,GAAc/vB,oBAAS,GAEjCm8B,EAAiB58B,GACrBoB,IAAAC,cAAA,OAAKE,UAAU,kBAAkByL,IAAI,kBAAkBxL,IAAKy6B,EAAcnL,OAAQA,IAAMN,GAAW,KAG/FJ,EAAoBK,IACxB,MAAMC,EAAMD,EAAQE,MAAM,QAC1B,GAAID,EAAK,CAIP,MAAY,KAHFE,SAASF,EAAI,GAAI,IAGH,KAFdE,SAASF,EAAI,GAAI,IAES,KAD1BE,SAASF,EAAI,GAAI,IACkB,IAE/C,OAAO,GAGHmM,EAAY78B,GAChBoB,IAAAC,cAAA,OACME,UAAU,mBAAmBsM,MAAO,CAAEoD,MAAOye,GAC7CnjB,QAAU8L,IACNA,EAAEwY,kBACFiL,GAAuB,GACvBE,GAAuB,KAG/B56B,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,WAI9C,OACGH,IAAAC,cAAAD,IAAAE,SAAA,KACGu6B,GAAuBrwB,EAASC,WAAa,IAAKhU,IAAOU,mBAAoB,aAC5EiJ,IAAAC,cAAA,OAAKyJ,GAAG,cACN1J,IAAAC,cAAA,OACAwM,MAAO,CAAEmE,SAAU,WAAYgc,QAAS,eAAeG,QAAQ,QAC/D5hB,QA9CkBuwB,KACxB,MAAMC,EAAWZ,EAAaa,UAAUb,EAAac,YAAY,KAAO,GAClE9I,EAAOxpB,SAAStJ,cAAc,KACpC8yB,EAAK9M,KAAO8U,EACZhI,EAAK+I,SAAWH,EAChBpyB,SAASwyB,KAAKC,YAAYjJ,GAC1BA,EAAKkJ,QACL1yB,SAASwyB,KAAKG,YAAYnJ,KAwChB5D,GAAWnvB,IAAAC,cAACw7B,EAAQ,MACtBz7B,IAAAC,cAAEu7B,EAAa,CAACr7B,UAAU,wBCNvBg8B,MApISA,KAEtB,MAAO1B,EAAqBC,GAA0Br7B,oBAAS,IACxDs7B,EAAqBC,GAA0Bv7B,oBAAS,IACxD07B,EAAaC,GAAiB37B,mBAAS,IAExCukB,EAAU5kB,YAAaC,GAAQA,EAAMC,SAAS0kB,YAC7C0T,EAAUC,GAAel4B,mBAASoL,OAAOE,YAAc,KACxDP,EAAWmc,cACjB,IAAI,EAAEhmB,GAAMC,cACRshB,EAAY9iB,YAAaC,GAAUA,EAAMC,SAAS4iB,WAIvDxiB,oBAAU,MAoBTE,iBAEE,IAAIy7B,EAAcrX,EAEfqX,IACCtxB,YAAiC,OAAbsxB,QAAa,IAAbA,OAAa,EAAbA,EAAeC,eAgBzC,SAAuBnnC,GACrB,IAEE,GAAG4V,YAAoB5V,GAAK,OAAO,EAEjB,IAAIonC,IAAIpnC,GAG1B,OAAO,EACP,MAAOkjB,GACP,OAAO,GA1B+CmkB,CAA2B,OAAbH,QAAa,IAAbA,OAAa,EAAbA,EAAelnC,MAEnFinC,EAAgBC,EAAclnC,KAE1B4mC,GACFD,GAAuB,IAOzBA,GAAuB,GAnC5BpP,GAEG,MAAM+P,EAAeA,KACnB9D,EAAY9sB,OAAOE,YAAc,MAKnC,OAFAF,OAAOuM,iBAAiB,SAAUqkB,GAE3B,KACL5wB,OAAO6wB,oBAAoB,SAAUD,KAGvC,IAyCF,MAUKI,EAAY78B,GACfoB,IAAAC,cAAA,UAAQE,UAAU,eAAegL,QAAU8L,IACvCA,EAAEwY,kBACFiL,GAAuB,GACvBE,GAAuB,GAGvBnnC,aAAaK,QAAQ,gBAAiBmc,KAAKC,UAAU,CAAE0b,OAAQD,KAAKD,MAAQrtB,SAEhF2B,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,SAK5C,OACGH,IAAAC,cAAAD,IAAAE,SAAA,KACGu6B,GAAuBrwB,EAASC,WAAa,IAAKhU,IAAOU,mBAAoB,cAAgB0T,OAAO2xB,WACnGp8B,IAAAC,cAAAD,IAAAE,SAAA,KACIF,IAAAC,cAAA,OAAKE,UAAU,qBACbH,IAAAC,cAAA,OAAKE,UAAU,eACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,OACEG,IAAKwjB,EAAmB,QACxBzjB,UAAU,MACVyL,IAAKgY,EAAmB,WAG5B5jB,IAAAC,cAAA,WACAD,IAAAC,cAAA,OAAKE,UAAU,WAAWI,EAAE,aAAc,CAAEuhB,eAC5C9hB,IAAAC,cAAA,OAAKE,UAAU,WAAWI,EAAE,kBAIhCP,IAAAC,cAAA,OACIE,UAAU,kBACVgL,QA7CYuwB,KACxB,MAAMC,EAAWZ,EAAaa,UAAUb,EAAac,YAAY,KAAO,GAClE9I,EAAOxpB,SAAStJ,cAAc,KACpC8yB,EAAK9M,KAAO8U,EACZhI,EAAK+I,SAAWH,EAChBpyB,SAASwyB,KAAKC,YAAYjJ,GAC1BA,EAAKkJ,QACL1yB,SAASwyB,KAAKG,YAAYnJ,KAwCd/yB,IAAAC,cAAA,WACED,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWwwB,SACjB37B,UAAU,SAGdH,IAAAC,cAAA,OAAKE,UAAU,QAAQI,EAAE,cAE7BP,IAAAC,cAACw7B,EAAQ,U,kBCwDNY,MArLMC,qBAAW,CAAC19B,EAAOiS,KACtC,IAAI,UAAE1K,GAAcnH,YAAaC,GAAUA,EAAM8B,WAEjD,MAAOw7B,EAAwBC,GAA6Bn9B,oBAAS,IAC9Do9B,EAAwBC,GAA6Br9B,oBAAS,IAC9Ds9B,EAAgBC,GAAoBv9B,mBAAS,KAE7CivB,EAAWC,GAAgBlvB,mBAAS,QAErC+K,GADapL,YAAaC,GAAQA,EAAMC,SAAS29B,cACtCtW,gBACXuW,EAAYC,GAAgB19B,sBAG3B29B,EAAmBC,GAAwB59B,oBAAS,IACpD69B,EAAkBC,GAAsB99B,oBAAS,GAElD+9B,EAAgBl8B,iBAAOu7B,GACvBY,EAAkBn8B,iBAAO,MAE/B5B,oBAAU,KAER89B,EAAc/zB,QAAUozB,GACvB,CAACA,IAEJa,8BAAoBzsB,EAAK,MACvBqe,aAAcA,KACZiO,GAAqB,IAEvBlO,aAAcA,KACZkO,GAAqB,OAK1B79B,oBAAU,KACH,MAAMqvB,EAAgBplB,SAASqlB,cAAc,mBAE7C,GAAGD,EAAc,CACb,MAAME,EAAkBpkB,OAAOqkB,iBAAiBH,GAAeE,gBACzDE,EAAcC,EAAiBH,GACrCN,EAAaQ,EAAc,OAAS,WAGxCwO,KACJ,IAGF,MAAMA,EAAqB/9B,UACzB,IACE,IAAIwI,QAAqBC,IAAU1R,IAAI,GAADvC,OAAInQ,IAAO4M,4BAEjD,GAAIuX,EAAa/kB,IAAOC,kBAAmB,CACzC,MAAMs6C,EAASx1B,EAAa/kB,IAAOG,eAEnC,GAAIo6C,EAAOX,aAAc,CACvB,MAAMY,EAAcD,EAAOX,aAAuB,SAE9CQ,EAAgBh0B,UAAYo0B,IAC9BjB,GAA0B,GAC1BpN,GAAW,GACX6N,GAAqB,GACrBI,EAAgBh0B,QAAUo0B,GAG5Bb,EAAmBa,GACnBV,EAAeS,EAAOX,aAA0B,aAE3CO,EAAc/zB,QAGjBmzB,GAA0B,GAF1BA,GAA0B,QAK5BA,GAA0B,IAG9B,MAAOkB,GACPlB,GAA0B,KA6BxBxN,EAAoBK,IACxB,MAAMC,EAAMD,EAAQE,MAAM,QAC1B,GAAID,EAAK,CAIP,MAAY,KAHFE,SAASF,EAAI,GAAI,IAGH,KAFdE,SAASF,EAAI,GAAI,IAES,KAD1BE,SAASF,EAAI,GAAI,IACkB,IAE/C,OAAO,IAkBFH,EAASC,GAAc/vB,oBAAS,GAEvC,OACEW,IAAAC,cAAAD,IAAAE,SAAA,KACCq8B,GAA0BnyB,EAASC,WAAa,IAAKhU,IAAOU,mBAAoB,aACjFiJ,IAAAC,cAAA,OAAKE,UAAS,2BAAAnM,OAA6BkpC,EAAoB,GAAK,QAChEF,GACDh9B,IAAAC,cAAA,OAAKE,UAAS,4BAAAnM,OAA8BgpC,EAAoB,OAAS,KACzEh9B,IAAAC,cAAC09B,IAAY,CAAC7vB,UAAW,QACxBgvB,GAAeA,EAAY7jB,IAAI,CAAC5N,EAAM2J,IACtChV,IAAAC,cAAA,KACIgV,IAAKD,EACLiR,KAAM5a,EAAKuyB,IACXpnC,OAAO,SACPqnC,IAAI,sBACJ19B,UAAU,4BACVgL,QAASA,KACP8xB,GAAqB,KAGvBj9B,IAAAC,cAAA,OAAKG,IAAKiL,EAAKyyB,aAAclyB,IAAI,aAIvC5L,IAAAC,cAAA,UAAQE,UAAU,2BAA2BgL,QAASA,KACpD8xB,GAAsBD,KAEtBh9B,IAAAC,cAAA,OAAKG,IAAKu8B,EAAiB/wB,IAAI,MAAMzL,UAAU,0BAA0BuvB,OAAQA,IAAMN,GAAW,KACjGD,GACAnvB,IAAAC,cAAA,OACCE,UAAU,6BAA6BsM,MAAO,CAAEoD,MAAOye,GACvDnjB,QAAU8L,IACNA,EAAEwY,kBACF+M,GAA0B,GAC1BE,GAA0B,KAGhC18B,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,gBCuiGlC49B,IA9pGCn/B,IACf,IAAI,EAAE2B,GAAMC,cACRC,EAAWC,cACX7B,EAAYC,cAChB,MAAMsL,EAAWmc,cAER,IAAIyX,IACb,MAAM1zB,EAASG,OAAOL,SAASE,OACzBgL,EAAS,IAAI2oB,gBAAgB3zB,IAElC0N,SAAUkmB,EACVhmB,aAAcimB,EACd/lB,OAAQgmB,EACRC,MAAOC,EACPC,SAAUC,EACVC,WAAYC,GACTlmB,eAEHR,SAAU2mB,EACVzmB,aAAc0mB,EACdxmB,OAAQymB,EACRR,MAAOS,EACPP,SAAUQ,EACVN,WAAYO,GACTxmB,cACYxZ,YAAaC,GAAUA,EAAMC,SAAS4iB,WACtD,MAAOmd,EAAeC,GAAoB7/B,oBAAS,IAC7C,SACL2Y,EAAQ,aACRE,EAAY,OACZE,GAAM,YACN+mB,GAAW,SACX7mB,GAAQ,SACRimB,GAAQ,UACRa,GAAS,MACTf,GAAK,QACLgB,GAAO,QACPC,GAAO,eACPC,IACG/mB,eACIN,aAAcsnB,IAAgChnB,cAMhDd,GAAoB1Y,YAAaC,GAAUA,EAAMC,SAASyY,eACzD8nB,GAAgBC,IAAqBrgC,oBAAS,GAC/CqiB,GAAgB1iB,YAAaC,GAAUA,EAAMC,SAASwiB,gBACrDie,GAAmBC,IAAwBvgC,oBAAS,IACpDwgC,GAAeC,IAAoBzgC,mBAAS,GAC7CygB,GAAW9gB,YAAaC,GAAUA,EAAMC,SAAS4gB,WAChDigB,GAAgBC,IAAqB3gC,mBAC3C5L,aAAaC,QAAQC,IAAWC,YAAc,OAExCga,GAAsBqyB,IAA2B5gC,mBAAS,GACjE,IAAI6gC,GAAYlhC,YAAaC,GAAUA,EAAM8B,UAAUC,WACnD,UAAEmF,IAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAOo/B,GAAcC,IAAmB/gC,mBAAS,KAC1CghC,GAAgBC,IAAqBjhC,mBAAS,KAC9CkhC,GAAkBC,IAAuBnhC,oBAAS,IAClDohC,GAAWC,IAAgBrhC,mBAAS,KACpCshC,GAAqBC,IAA0BvhC,sBAC/CwhC,GAASC,IAAczhC,oBAAS,IAChCuY,GAAqBC,IAA0BxY,mBAAS,KAExDoS,GAAasvB,IAAkB1hC,mBAAS,KACxC2hC,GAAkBC,IAAuB5hC,mBAAS,KAClD6hC,GAAyBC,IAA8B9hC,mBAAS,KAChE+hC,GAAyBC,IAA8BhiC,mBAAS,IAChEiiC,GAAWC,IAAgBliC,mBAAS,KAKpCsT,GAAUC,IAAevT,mBAASwT,WAAW,OAAU,OACvDN,GAAiBC,IAAsBnT,mBAAS,IAChDoT,GAAoBC,IAAyBrT,mBAAS,IACtDmiC,GAASC,IAAcpiC,oBAAS,IAChCyT,GAAaC,IAAkB1T,oBAAS,IACxCqiC,GAAYC,IAAiBtiC,oBAAS,IACtCuiC,GAAYC,IAAiBxiC,oBAAS,IACtC2T,GAAQC,IAAa5T,mBAAS,GAE/B6T,GAAShS,iBAAO,OACf4gC,GAAsBC,IAA2B1iC,mBAAS,IAC1DgU,GAAeC,IAAoBjU,sBAInC2iC,GAAgBC,IAAqB5iC,oBAAS,IAC9C6iC,GAAuBC,IAA4B9iC,oBAAS,IAC5D+iC,GAAyBC,IAA8BhjC,oBAAS,IAChEijC,GAAQC,IAAaljC,mBAAS,KAC9BmjC,GAAYC,IAAiBpjC,mBAAS,KACtCqjC,GAAkBC,IAAuBtjC,sBAEzC8I,GAAUy6B,IAAevjC,mBAAS,KAClCwjC,GAAoBC,IAAyBzjC,mBAAS,KAItD0jC,GAAgBC,IAAqB3jC,oBAAS,IAC9C4jC,GAAgBC,IAAqB7jC,oBAAS,IAC9C8jC,GAAkBC,IAAuB/jC,oBAAS,IAClDgkC,GAASC,IAAcjkC,oBAAS,IAChCkkC,GAAgBC,IAAqBnkC,oBAAS,IAC9CokC,GAAmBC,IAAwBrkC,oBAAS,GACrDskC,GAAc,CACnBC,OAAQ,IAEFC,GAAkBC,IAAuBzkC,oBAAS,IAClD0kC,GAAcC,IAAmB3kC,mBAAS,KAC1C4kC,GAAcC,IAAmB7kC,oBAAS,IAC1C6I,GAAUi8B,IAAe9kC,mBAAS,IAEnC6iB,GAAWljB,YAAaC,GAAUA,EAAMC,SAASgjB,WAEhDkiB,GAAiBC,IAAsBhlC,sBACvCilC,GAAaC,IAAkBllC,sBAC/BmlC,GAAgBC,IAAqBplC,oBAAS,IAC9CqlC,GAAcC,IAAmBtlC,oBAAS,IAC1CulC,GAAmBC,IAAwBxlC,oBAAS,IACpDylC,GAAiBC,IAAsB1lC,oBAAS,IAChD2lC,GAAiBC,IAAsB5lC,oBAAS,IAChD6lC,GAAiBC,IAAsB9lC,oBAAS,IAEhDkU,GAAYC,IAAiBnU,oBAAS,IACtC+lC,GAAaC,IAAkBhmC,mBAAS,OACxC8T,GAAkBC,IAAuB/T,oBAAS,IAIlDimC,GAAWC,KAHSvmC,YACzBC,GAAUA,EAAMumC,cAAclvB,YAEEjX,uBAC3BomC,GAAmBC,IAAwBrmC,oBAAS,GACrDiC,GAAiBtC,YAAaC,GAAUA,EAAMC,SAASoC,gBACvD0c,GAAgBhf,YAAaC,GAAUA,EAAMC,SAAS8e,eACtDjf,GAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpD4mC,GAAcC,IAAmBvmC,sBACjCwmC,GAAmBC,IAAwBzmC,sBAC3C8qB,GAAqBC,IAA0B/qB,oBAAS,IAExDF,GAAMC,IAAWC,sBACjB0mC,GAAWC,IAAgB3mC,sBAC3B+G,GAAWC,IAAgBhH,sBAC3B4mC,GAAaC,IAAkB7mC,sBAC/B8mC,GAAaC,IAAkB/mC,sBAC/BgnC,GAAcC,IAAmBjnC,oBAAS,IAE1CknC,GAAoBC,IAAyBnnC,oBAAS,IACtDmI,GAAgBC,IAAqBpI,oBAAS,IAC9ConC,GAAaC,IAAkBrnC,oBAAS,IACxCsnC,GAAcC,IAAmBvnC,qBAElCukB,GAAY5kB,YAAaC,GAAQA,EAAMC,SAAS0kB,WAChDiZ,GAAa79B,YAAaC,GAAQA,EAAMC,SAAS29B,cACjD/Y,GAAmB9kB,YACvBC,GAAUA,EAAMC,SAAS4kB,mBAEpB+iB,GAA0BC,IAA6BznC,oBAAS,GAEvE,IAAI0nC,GAAmB/nC,YAAaC,GAAUA,EAAMC,SAASmjB,WAC7D,MAAO2kB,GAAkBC,IAAuB5nC,mBAC/C0nC,GAAiBrnC,KACfiJ,GAAMA,EAAEu+B,MAAQzzC,aAAaC,QAAQC,IAAWC,aAInD,IAAIuzC,GAAkBnoC,YAAaC,GAAUA,EAAMC,SAASkjB,YACxDjb,GAAsBnI,YAAaC,GACtCA,EAAM8B,UAAUoF,UAAYlH,EAAM8B,UAAUC,SAASmG,oBAAsB,GAExEigC,GAAiBpoC,YAAaC,GACjCA,EAAM8B,UAAUoF,UAAYlH,EAAM8B,UAAUC,SAASqmC,oBAAsB,GAE5E,MACOC,GAAkBC,IAAuBloC,oBAAS,GAEnDqI,GAAoB1I,YACxBC,GAAUA,EAAMC,SAASwI,mBAErB/G,GAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,QAChD6kB,GAAoBzmB,YAAaC,GAAUA,EAAMC,SAASumB,oBAE5D4F,GAAuB0C,IAA4B1uB,oBAAS,GAE7D8jB,GAAqBnkB,YACzBC,GAAUA,EAAMC,SAASikB,oBAIrBC,GAAiBpkB,YACrBC,GAAUA,EAAMC,SAASkkB,gBAGrBK,GAA6BzkB,YACjCC,GAAUA,EAAMC,SAASukB,6BAGpB+jB,GAAgB3R,IAAqBx2B,oBAAS,IAC9CooC,GAAY9R,IAAiBt2B,mBAAS,OACtC22B,GAAgBC,IAAqB52B,oBAAS,IAC9CmxB,GAAeC,IAAoBpxB,oBAAS,IAC5CqoC,GAAgB9R,IAAqBv2B,oBAAS,IAC9Cg4B,GAAmBnG,IAAwB7xB,oBAAS,IACpD62B,GAAiBC,IAAsB92B,oBAAS,IAChD+2B,GAAiBC,IAAsBh3B,oBAAS,IAChDi3B,GAAmBC,IAAqBl3B,oBAAS,GAClDwuB,GAAU3sB,iBAAO,MAEjBywB,GAAY,iCAEXgW,GAAcC,IAAmBvoC,mBAAS,IAE3C0kB,GAAgB/kB,YACpBC,GAAUA,EAAMC,SAAS6kB,eAkB3BzkB,oBAAU,KACLP,GAAaQ,OAAS,GA43B3BC,iBACCX,EAAUY,gBACVinC,IAAe,GAEf,IAAImB,EAAc9oC,GAAa8zB,OAC7BxnB,GAA+B,aAAtBA,EAAK1L,cAAiD,qBAAlB0L,EAAKojB,UAGhDqZ,EAAiB/oC,GAAaW,KAChC2L,GAA+B,aAAtBA,EAAK1L,cAAgD,oBAAjB0L,EAAKojB,UAGhDsZ,EAAahpC,GAAaW,KAC5B2L,GAA+B,aAAtBA,EAAK1L,cAAgD,aAAjB0L,EAAKojB,UAGlDmY,GAAgBmB,GAEfD,GACKhC,GAAqBgC,GAGzBD,IAEEngC,KAEJmgC,EAAchV,iBACbgV,EACCxpB,GAA2B,gBAAlBA,EAAKhU,WAIjBu7B,GAAgBiC,IAGjB,MAAM1oC,EAAOO,eAAKX,GAAc,CAAEY,aAAc,SAC5CR,GACHC,GAAQD,EAAKS,WAAWT,EAAKU,cAG9B,MAAMkmC,EAAYrmC,eAAKX,GAAc,CAAEY,aAAc,eACjDomC,GACHC,GAAaD,EAAUnmC,WAAWmmC,EAAUlmC,cAG7C,MAAM8H,EAAQjI,eAAKX,GAAc,CAAEY,aAAc,UAC7CgI,GACHtB,GAAasB,EAAM/H,WAAW+H,EAAM9H,cAGrC,MAAMmoC,EAAUtoC,eAAKX,GAAc,CAAEY,aAAc,YAC/CqoC,GACH9B,GAAe8B,EAAQpoC,WAAWooC,EAAQnoC,cAG3C,MAAMsmC,EAAczmC,eAAKX,GAAc,CAAEY,aAAc,gBACnDwmC,GACHC,GAAeD,EAAYvmC,WAAWumC,EAAYtmC,cAEnD6mC,IAAe,GACf7nC,EAAUiB,gBAv7BTC,IAEC,CAAChB,KAEJO,oBAAU,KACTs6B,QAAQC,IAAI,eAAegD,IACtB12B,GAGJ2S,aAAWja,GAFXohC,GAAwB,GAIPzgC,WACb0gC,GAAyB,eAC5BD,GAAwBC,GAAyB,gBAGnD+H,IACE,CAAC9hC,GAAW1S,aAAaC,QAAQC,IAAWuE,cAE/CoH,oBAAU,KACL8K,EAASnL,MACZsmC,GAAan7B,EAASnL,MAAMipC,WAEH,KAArB99B,EAASC,SACZk7B,GAAa,QAEbA,MAGA,CAACn7B,IAQJ9K,oBAAU,KACJoiB,KACJoe,GAAiB,GACjB7sB,GAAU,GACVsvB,GAAU,IACVE,GAAc,IACdzuB,aAAaoxB,IACbpxB,aAAarB,MAEZ,CAAC+O,KAEJpiB,oBAAU,KACLiT,GAAkB,GACrB8yB,GACCxyB,WAAW,KAEVL,GADiBD,GAAkB,IAvNhB,OA4NpB,CAACA,KAEJjT,oBAAU,KACLmT,GAAqB,GACxBG,GACCC,WAAW,KAEVH,GADiBD,GAAqB,IAlOnB,OAuOpB,CAACA,KAEJnT,oBAAU,KAET,GAAoB,OAAhBynC,SAAgB,IAAhBA,QAAgB,EAAhBA,GAAkBxnC,OAAQ,CAAC,IAAD4oC,EAC7B,MAAMC,EAAkC,QAAtBD,EAAGpB,GAAiB,UAAE,IAAAoB,OAAA,EAAnBA,EAAqBjB,KACpCmB,EAAiB50C,aAAaC,QAAQC,IAAWC,WACjD00C,EAAWvB,GAAiBrnC,KAAMiJ,IAAsB,IAAhBA,EAAE4/B,WAO/CC,GADGH,GAAqC,cAAnBA,EACNA,EACLC,EACKA,EAASpB,KAETkB,GAMjB,MAAMK,EAAc,IAAI9c,KAElB+c,EAAwB,IAAI/c,KACjCl4B,aAAaC,QAAQ,sCAAwC,GAElC,IAAIi4B,KAC/Bl4B,aAAaC,QAAQ,gBAAkB,GAGxC,GACCyS,IACAgL,OAAOw3B,KAAKhoC,IAAYpB,OAAS,QACb6gB,GAApB2mB,IACA0B,EAAcC,EAZc,MAa3B,CACD,MAAME,EAAW7B,GAAiBrnC,KAChCiJ,GAAMA,EAAEe,IAAM/I,GAAWkoC,iBAE3Bp1C,aAAaK,QAAQ,2BAA4B80C,EAAS1B,MAC1DzzC,aAAaK,QAAQ,oCAAqC,IAAI63B,MAE9D6c,GAAeI,EAAS1B,WAGvBzzC,aAAaC,QAAQ,6BACrB+0C,EAAcC,GAxBa,MA2B3BF,GAAe/0C,aAAaC,QAAQ,6BAGlCD,aAAaC,QAAQ,mBAQvB,CACFqzC,GACApmC,GACAwF,GACA6gC,GACAvzC,aAAaC,QAAQC,IAAWC,aAGjC0L,oBAAU,KACL6G,IAKL3G,iBACC,IAAIwI,QAAqBC,IAAU1R,IACjC1S,IAAOoJ,iCAGL+a,EAAa/kB,IAAOC,kBACtB0kD,GAAgB5/B,EAAa/kB,IAAOG,gBAErCwkD,GAAgB,IAZfkB,IAEE,CAAC9qB,GAAe1c,GAAgB6E,GAAWpH,KAmVhDS,eAAe6V,GAAWJ,EAAKD,GAO9B,IAAIE,EAAS7B,GACT8B,EAAYF,EAAIG,MAAM,IACd,WAARH,GAA4B,WAARA,GACvBC,EAASD,EACT3B,GAAiB4B,GACQ,IAArBC,EAAU5V,SAEb+T,GAAiB,IACjBF,IAAoB,GACpBI,IAAc,SA9DjBhU,eAAyBupC,GACxB,IAAIzzB,EAAS,CACZpN,SAAUu4B,GACVuI,MAAO1G,GACPn6B,SAAUA,GACVsJ,YAAamG,GAAsByoB,GACnCF,aAAc0C,GACdgG,gBAAiB,KACjBI,IAAKF,GAEF/gC,QAAqBC,IAAUiM,KAClCrwB,IAAOM,cACPuxB,YAAeJ,IAEZtN,EAAa/kB,IAAOC,mBACvB48C,GAAiB,GACjBjhC,EACC0hB,aAAY,CACXxT,KAAM1S,IAAWG,SACjBwS,QAASzM,EAAE,0BACX0M,UAAWzN,UACNwI,EAAa/kB,IAAOC,oBACnB8kB,EAAa/kB,IAAOG,gBAEvByb,EAAU4iB,cAAiB,IAC3B5iB,EAAUiiB,cAAgB,KAE1BrW,OAAOL,SAASoC,QAAQ,iCAQ7B3N,EACCiL,cAAoB,EAAOvJ,EAAEyH,EAAa/kB,IAAOE,qBAElD+vB,GAAgB,QAAEuB,QAClB8sB,GAAa,IACbN,GAAoB,IACpBE,GAA2B,IAC3BE,GAA2B,IAsBpB6H,CAAUh0B,GAEhB1B,IAAc,GACdJ,IAAoB,MAGrBF,GAAgB,QAAEuB,QAClB8sB,GAAa,IACbjuB,GAAiB,IACjB+tB,GAA2B,GAC3BU,GAAwB,IAwN1B,MAYMoH,GAAmBC,sBACxBC,mBAAS7pC,WAEmB,OAAvByX,EAAEqyB,YAAY9gC,MADL,qDAC6BkQ,KAAKzB,EAAEqyB,YAAY9gC,QAC5Dk4B,GAAazpB,EAAEzgB,OAAO+H,QAErB,KACH,IAmCD,SAASgrC,GAAYC,GAChB/+B,OAAOsF,mBACVtF,OAAOsF,mBAAmBC,YACzBC,KAAKC,UAAU,CACdC,OAAQ,OAERpc,IACyC,MAAxCy1C,EAAQC,UAAUla,MAAM,aAAoB,GAAAv7B,OACtCyW,OAAOL,SAASmG,QAAMvc,OAAGw1C,EAAQ5L,KAAG,GAAA5pC,OACpCw1C,EAAQ5L,QAIZj0B,YAAoB6/B,EAAQ5L,MAKhCyG,GAAmBmF,GACnBjF,IAAe,KALfA,IAAe,GACf95B,OAAOC,KAAK8+B,EAAQ5L,IAAK,WAzC5Bt+B,oBAAU,KACL8kC,KACEz6B,YAAoBy6B,GAAgBsF,aACxCnF,IAAe,KAGf,CAACH,KAEJ9kC,oBAAU,KACT,MAAMqqC,EAAqBr0B,EAAO/e,IAAI,QACZ,MAAtBozC,GAA+BxjC,GAMF,MAAtBwjC,GAA8BxjC,IACxCtH,EACC0hB,aAAY,CAEXvT,QAASzM,EAAE,qBARb1B,EAAU4iB,cAAiB,IAC3B2e,GAAgBuJ,GArflBnqC,eAAoC0nC,GACnC,IAAI/G,EAAe+G,EACfA,EAAKztB,SAAS,QACjB0mB,EAAe+G,EAAKtL,UAAU,EAAGsL,EAAK0C,QAAQ,QAE/C,IAAIrhC,EACH1kB,IAAOkI,kCAAoC,SAAWo0C,EACnDn4B,QAAqBC,IAAU1R,IAAIgS,GACnCP,EAAa/kB,IAAOC,mBACvBwiD,IAAqB,GACrB5F,GAAiB,IAEjBjhC,EACCiL,aACC9B,EAAa/kB,IAAOC,kBACpBqd,EAAE,yCAweJspC,CAAqBF,KASpB,IA0BH,MACMnB,GAAkBjqC,IAEvB,IAAIurC,EAAepqC,eAAKqnC,GAAkB,CAAEG,KAAM3oC,IAClDwrC,GAAiBD,IAuBZC,GAAmBvqC,UACxBynC,GAAoB+C,GAEpB,MAAMC,EAAiBx2C,aAAaC,QAAQC,IAAWC,WACvD,GAAIo2C,IACH1pB,IAAK4pB,eAAeF,EAAiB9C,MACrCroC,EAAUoX,YAAe+zB,EAAiB9C,MAAM,IAG5C+C,IAAmBD,EAAiB9C,MAAM,CAC7C,IAAIiD,EAAmB//B,EAASC,SAGhC,GAAI8/B,EAAiBxzC,WAAW,IAAD3C,OAAKi2C,IAAmB,CACtD,MAAMG,EAAQ,IAAIC,OAAO,KAADr2C,OAAMi2C,EAAc,UAC5CE,EAAmB//B,EAASC,SAASmC,QACpC49B,EAAM,IAADp2C,OACDg2C,EAAiB9C,KAAI,MAI3BiD,EACCA,IAAgB,IAAAn2C,OAASg2C,EAAiB9C,KAAI,KAAG,IAAAlzC,OAC1Cg2C,EAAiB9C,MACrBiD,EAEJA,GAAoB//B,EAASE,OAE7B7J,EAAS+L,QAAQ29B,GAIjB9zC,IAAOi0C,iBAAiBN,EAAiB9C,MAGzC,MAAMqD,EAAc,IAAIC,YAAY,gBAAiB,CACpDC,OAAQ,CAAEpxB,QAAS,qBAIpB5O,OAAOigC,cAAcH,KA+HxB,MAAMI,GAAoB1zB,IAEzBA,EAAEzgB,OAAOiW,MAAMmgB,QAAU,QAQ1B,MAAM8O,GAAoBA,KACzB,IAAIX,EAAwB,OAATnX,SAAS,IAATA,QAAS,EAATA,GAAW7vB,IAE9B,IAAI4V,YAAoBoxB,GAAc,CACrC,MAAMY,EAAWZ,EAAaa,UAAUb,EAAac,YAAY,KAAO,GAClE9I,EAAOxpB,SAAStJ,cAAc,KACpC8yB,EAAK9M,KAAO8U,EACZhI,EAAK+I,SAAWH,EAChBpyB,SAASwyB,KAAKC,YAAYjJ,GAC1BA,EAAKkJ,QACL1yB,SAASwyB,KAAKG,YAAYnJ,KAoB5B,OAhBAzzB,oBAAU,KACT,MAAM+7B,EAAeA,KAEjBjxB,EAASC,WAAa,IAAM5W,aAAaC,QAAQC,IAAWC,YAAcwW,EAASC,WAAa,IAAM5W,aAAaC,QAAQC,IAAWC,WAAa,IACrJkzC,GAA4Br8B,OAAOE,YAAc,KAAkC,KAAlB,OAATiZ,SAAS,IAATA,QAAS,EAATA,GAAWgnB,cAEnE9D,IAA4B,IAO9B,OAHAzL,IACA5wB,OAAOuM,iBAAiB,SAAUqkB,GAE3B,IAAM5wB,OAAO6wB,oBAAoB,SAAUD,IAChD,CAAC5wB,OAAOL,SAAUwZ,KAGrB5jB,IAAAC,cAAAD,IAAAE,SAAA,KAEe,IAAb0jB,IAAmBijB,IACnB7mC,IAAAC,cAACk8B,EAAe,MAIhBn8B,IAAAC,cAACo8B,EAAY,CAACxrB,IAAKgd,KAGnB7tB,IAAAC,cAAA,OAAKE,UAAU,aACdH,IAAAC,cAAA,OAAKE,UAAW2f,GAAW,eAAiB,SAC3C9f,IAAAC,cAAA,OACCE,UAAU,wBACVgL,QAASA,IAAMtM,EAAUghB,cAAaC,MAEtC9f,IAAAC,cAAA,OACC0L,MAAM,KACND,OAAO,KACPm/B,QAAQ,YACRC,KAAK,OACLC,MAAM,6BACN5qC,UAAU,mBAEVH,IAAAC,cAAA,QACC+qC,SAAS,UACTC,SAAS,UACT1V,EAAE,qaAILv1B,IAAAC,cAAA,OACCE,UAAW2f,IAAY3gB,GAAO,iBAAmB,UACjDgM,QAASA,IAAM1K,EAAS+J,KAAKnU,IAAOpC,YAEnCkL,GACAa,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OACCG,IAAKjB,GACLgB,UAAU,sBACVyL,IAAI,OACJ8tB,QAASiR,GACTl+B,MAAO,CAAEf,OAAQ,UAElB1L,IAAAC,cAAA,OACCG,IAAK2lC,GACL5lC,UAAU,sBACVu5B,QAASiR,GACT/+B,IAAI,UAIN5L,IAAAC,cAAAD,IAAAE,SAAA,QAKHF,IAAAC,cAAA,OAAKE,UAAU,UACA,GAAbgG,GACAnG,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OACCE,UAAU,uEAEVgL,QAASA,KACRtM,EAAU0iB,cAAc,MAGxBhhB,EAAE,UAEJP,IAAAC,cAAA,OACCE,UAAU,kDAEVgL,QAASA,IAAMtM,EAAU4iB,cAAiB,KAEzClhB,EAAE,cAMLP,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,iCACdH,IAAAC,cAAA,OACCwM,MAAO,CACNsE,OAAQ,UACR6b,QAAS,OACTC,WAAY,SACZjc,SAAU,YAEXzF,QAASA,KACR1K,EAAS+J,KAAKnU,IAAO7B,iBAoBtBwL,IAAAC,cAAA,OAAKE,UAAU,yBACdH,IAAAC,cAAA,QAAME,UAAU,4BACdI,EAAE,YAEJP,IAAAC,cAAA,KAAGE,UAAU,4BArJG,kBADP5B,GAuJGyf,KAtJgBktB,OAAOC,SAAS5sC,IAwJxCoP,YAAyBqQ,GAAe,GAAG,GAD3CA,MAKNhe,IAAAC,cAAA,OAAKE,UAAU,iBAAiBgL,QAASA,IA5RhD3L,iBACCiI,IAAkB,SACOQ,IAAU1R,IAAI1S,IAAOuL,yBAS9C0pB,aAAWja,GACX4I,IAAkB,GAgRmCgC,IAE7CjC,GACAxH,IAAAC,cAAC4N,IAAO,CACP1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,WACPD,OAAQ,WACRwC,WAAY,KAIdlO,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAW6C,QAAShO,UAAU,WAG7CH,IAAAC,cAAA,OACCE,UAAU,oBAEVgL,QAASA,KACRtM,EAAUiiB,cAAgB,MAG3B9gB,IAAAC,cAAA,WACCD,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAW8/B,QAASjrC,UAAU,WAE5CH,IAAAC,cAAA,OAAKE,UAAU,QAAQI,EAAE,cAI1BonC,IACAA,GAAapoC,OAAS,GACtB0Z,cAAI0uB,GAAc,CAACtpB,EAAMrJ,KACxB,GAA+B,IAA3BqJ,EAAqB,eACxB,OAAO,KAGR,IAAIgtB,EACA9sC,EAAkC,GAA1B8f,EAAqB,eAC9BA,EAAuB,iBAAI,EAAI,EAAIA,EAAuB,iBAC3DA,EAAqB,eAGtBgtB,EADY,GAAT9sC,GAAwC,GAA1B8f,EAAqB,eACzB,EAEC9f,EAAQ8f,EAAqB,eAAK,IAEjD,MAAMitB,EAAsBpjB,KAAKqjB,MAAMF,GAEvC,OACCrrC,IAAAC,cAAA,OAAKE,UAAU,6BACdH,IAAAC,cAAA,OAAKE,UAAU,uCACdH,IAAAC,cAAA,OAAKE,UAAU,uBACbI,EAAE,6BAA8B,IACjCP,IAAAC,cAAA,SAC4B,GAA1Boe,EAAqB,eACpBA,EAAuB,iBAAI,EAC1B,EACAA,EAAuB,iBACxBA,EAAqB,eAAG,IAAI,KAC3BA,EAAqB,gBACpB,KAENre,IAAAC,cAAA,OAAKE,UAAU,+BACfH,IAAAC,cAAA,OAAKE,UAAU,yBACdH,IAAAC,cAAA,QACAE,UAAU,2BACVsM,MAAO,CACNd,MAG8B,IAFH,GAA1B0S,EAAqB,eACnBA,EAAuB,iBACvBA,EAAqB,iBACE,GAA1BA,EAAqB,eAClB,MAC4B,GAA1BA,EAAqB,eACtBA,EAAuB,iBACvBA,EAAqB,gBACvBA,EAAqB,eACrB,IACD,QAIHre,IAAAC,cAAA,YAAOqrC,EAAoB,UAQhCtrC,IAAAC,cAAA,OACCE,UAAU,wBACVgL,QAASA,KACR1K,EAAS+J,KAAKnU,IAAO7B,iBAGtBwL,IAAAC,cAAA,OAAKE,UAAU,UACdH,IAAAC,cAAA,WAAMigC,GAAoB,UACzBx4B,IACA1H,IAAAC,cAAA,WACCD,IAAAC,cAAA,YAAOM,EAAEirC,oBAAUtL,GAAmB,aAIzClgC,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCwrC,UAAU,QACV57B,MAAM,UACN67B,cAAY,OACZb,QAAQ,YACRc,cAAY,iBACZb,KAAK,QACLp/B,OAAO,QAEP1L,IAAAC,cAAA,QAAMs1B,EAAE,qDAUc,KAAhB,OAAT3R,SAAS,IAATA,QAAS,EAATA,GAAWgnB,cACX5qC,IAAAC,cAAA,OACAE,UAAU,uBACVgL,QAASuwB,IAET17B,IAAAC,cAAA,WACAD,IAAAC,cAAA,OACAG,IAAKwjB,GAAmB,QACxBzjB,UAAU,MACVyL,IAAKgY,GAAmB,YAMzBmjB,IAAoBA,GAAiBxnC,OAAS,GAC9CS,IAAAC,cAAC2rC,IAAoB,CACpBzrC,UAAU,qBACViN,OAAQi5B,GACR94B,OAvfiBs+B,IAAMvF,GAAiBwF,IAAeA,GAwfvDC,UAAU,QAEV/rC,IAAAC,cAAC+rC,IAAc,KACb,IACAhF,IAAoBA,GAAiB37B,KACrCrL,IAAAC,cAAA,OACCG,IAAqB,OAAhB4mC,SAAgB,IAAhBA,QAAgB,EAAhBA,GAAkB37B,KACvBlL,UAAU,+BACVyL,IAAI,YAGL5L,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,+BACVyL,IAAI,YAGN5L,IAAAC,cAAA,OACCwrC,UAAU,QACV57B,MAAM,UACN67B,cAAY,OACZb,QAAQ,YACRc,cAAY,iBACZb,KAAK,QACLp/B,OAAO,QAEP1L,IAAAC,cAAA,QAAMs1B,EAAE,mDAGVv1B,IAAAC,cAACgsC,IAAY,CAACzjB,IAAK,QACjBue,IACAA,GAAiBxnC,OAAS,GAC1B0Z,cAAI8tB,GAAkB,CAAC1oB,EAAMrJ,IAE3BhV,IAAAC,cAACisC,IAAY,CACZj3B,IAAKD,EACL7J,QAASA,IAthBI3L,WACvB,IAAIsqC,EAAepqC,eAAKqnC,GAAkB,CAAEG,KAAM3oC,IAMlD,GALAwrC,GAAiBD,GAEjBr2C,aAAaK,QAAQ,2BAA4Bg2C,EAAa5C,MAC9DzzC,aAAaK,QAAQ,oCAAqC,IAAI63B,MAE1DxlB,GAAW,CACd,IAAIqC,EAAO,GACXA,EAAsB,gBAAIshC,EAAa5C,WAEjCj/B,IAAUiM,KACfrwB,IAAO8H,4BACPwoB,YAAwB3L,MAygBD2jC,CAAgB9tB,EAAK6oB,OAEnC7oB,EAAKhT,KACLrL,IAAAC,cAAA,OAAKG,IAAKie,EAAKhT,KAAMO,IAAI,OAAOF,OAAO,SAEvC1L,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,UACJD,MAAM,SAEL,IACH3L,IAAAC,cAAA,QAAME,UAAU,QAAQke,EAAKvV,UAQpC9I,IAAAC,cAAA,OACCE,UAAU,iCACVgL,QAASA,IAAMq7B,IAAuBD,KAEtCvmC,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAW8gC,MACjBjsC,UAAU,0CAOdH,IAAAC,cAAA,OAAKE,UAAU,gBACdH,IAAAC,cAAA,OAAKE,UAAW2f,GAAW,cAAgB,QAC1C9f,IAAAC,cAAA,OAAKE,UAAU,mBACbslB,IACAzlB,IAAAC,cAAA,OACCE,UAAU,wCACVgL,QAASA,KAINtM,EAHCsH,GAECsf,GACQH,cAAqB,GAG9B/E,aAAY,CACXvU,QAAQ,EACRP,WACCzL,IAAAC,cAAA,OAAKE,UAAU,eACdH,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAW+gC,YAAalsC,UAAU,mBAGjD6M,QAASzM,EAAE,yBAKJghB,cAAc,MAG1BvhB,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,kBAEL5L,IAAAC,cAAA,OAAKE,UAAU,uBACdH,IAAAC,cAAA,MAAIE,UAAU,SAASI,EAAE,wBAO1BslC,IAAqB1b,IACtBnqB,IAAAC,cAAA,OAAKE,UACJ,yBAEA0lC,GAAsB,IACrBP,IAAaO,GAA4B,SAAI,UAAY,IAC1D,iCAEA16B,QAASA,KAENtM,GADIsH,IAAaklB,GACP9J,cAAc,GAEdiD,cAAsB,MAInCxkB,IAAAC,cAAA,OAAKE,UAAU,SACfH,IAAAC,cAAA,OACAG,IAAKylC,GAA6B,WAAKA,GAAgC,aACvE1lC,UAAU,iBACVyL,IAAKi6B,GAA4B,YAGjC7lC,IAAAC,cAAA,UAAKM,EAAE,sBAIkB,KAAhB,OAATqjB,SAAS,IAATA,QAAS,EAATA,GAAWgnB,cACZ5qC,IAAAC,cAAA,OACCE,UACA,yBAEAyjB,GAAc,GACd,2BAEAzY,QAASuwB,IAER17B,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKwjB,GAAmB,QACxBzjB,UAAU,iBACVyL,IAAKgY,GAAmB,WAG1B5jB,IAAAC,cAAA,UAAKM,EAAE,cAIT4iB,IACAnjB,IAAAC,cAACy1B,EAAW,CACXtS,eAAgBA,IAAkB,GAClCuS,cAAeA,GACfC,kBAAmBA,GACnBnF,iBAAkBA,GAClBoF,kBAAmBA,GACnBC,gBAAiBuB,GACjBtB,mBAAoB7E,GACpB8E,eAAgBA,GAChBC,kBAAmBA,GACnBC,gBAAiBA,GACjBC,mBAAoBA,GACpBC,gBAAiBA,GACjBC,mBAAoBA,GACpBC,kBAAmBA,GACnBC,kBAAmBA,KAMpBoP,IACAA,GAAapmC,QACb0Z,cAAI0sB,GAAc,CAACtnB,EAAMrJ,KAGxB,GAAGyO,GAA2BlkB,OAAS,EAAG,CAEzC,IAAI+sC,EAA2B7oB,GAA2BoP,OAAQ0Z,GAC1DA,EAAYC,gBAAgBriC,MAAMsiC,QAAUpuB,EAAKoQ,SAASge,QAI9DC,EAAc,CAAC,OAAQ,aAAc,WAAY,SAAU,YAAa,cAAe,aAK3F,GAHG5oB,IACF4oB,EAAYliC,KAAK,cAEbkiC,EAAYjzB,SAAS4E,EAAKoQ,WAAgD,GAAnC6d,EAAyB/sC,OACpE,OAAO,KAIT,OACCS,IAAAC,cAAA,OACCgV,IAAKD,EACL7U,UACC,yBAEAke,EAAS,IACRinB,IAAajnB,EAAe,SAAI,UAAY,IAC7C,iBACAA,EAAe,SAAE0N,cAAcvf,QAAQ,IAAK,KAE7CrB,QAASA,KAER,IAAItX,EAASJ,aAAaC,QAAQC,IAAWC,WAC7C,IAAI+4C,EAAehjC,YAAoB0U,EAAe,UACnD,GACAA,EAAe,SAClBsuB,EAAe94C,EACZ,IAAMA,EAAS84C,EACfA,EAECxmC,GAEoB,aAApBkY,EAAe,SAEjB5T,OAAOC,KAAKqZ,GAAe,UAE3BtjB,EAAS+J,KAAK,CACbH,SAAUsiC,EACV1tC,MAAO,CACNipC,UAAW7pB,EAAe,YAKL,iBAApBA,EAAe,SAClBxf,EAAU0iB,cAAc,IAED,aAApBlD,EAAe,SACjB5T,OAAOC,KAAKqZ,GAAe,UAE3BtjB,EAAS+J,KAAK,CACbH,SAAUV,YAAoB0U,EAAe,UAC1C,GACAA,EAAe,SAClBpf,MAAO,CACNipC,UAAW7pB,EAAe,cAQhCre,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKie,EAAgB,WAAKA,EAAmB,aAC7Cle,UAAU,iBACVyL,IAAKyS,EAAe,YAGtBre,IAAAC,cAAA,UAAKM,EAAE8d,EAAe,WACA,eAArBA,EAAe,UACflX,GAAsB,GACrBnH,IAAAC,cAAA,OAAKE,UAAU,yCACbgH,SASPs/B,IACDzmC,IAAAC,cAAA,OACCE,UACC,+BAAiC2f,GAAW,SAAW,KAIxD9f,IAAAC,cAAA,OAAKE,UAAU,mBAwBdH,IAAAC,cAAA,OACCE,UAAW,oBACXgL,QAASA,KACRtM,EAAUghB,cAAY,IACtBpf,EAAS+J,KAAKnU,IAAOjC,gBAEtBqY,MAAO,CAAEmE,SAAU,aAEnB5Q,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCE,UAAU,eACVwL,MAAM,KACND,OAAO,KACPm/B,QAAQ,cACRC,KAAK,OACLC,MAAM,8BAEN/qC,IAAAC,cAAA,KAAG2sC,SAAS,2BACX5sC,IAAAC,cAAA,QACC+qC,SAAS,UACTC,SAAS,UACT1V,EAAE,kmCACFuV,KAAK,qCAGP9qC,IAAAC,cAAA,YACCD,IAAAC,cAAA,kBACCyJ,GAAG,4BACHmjC,GAAG,OACHC,GAAG,WACHC,GAAG,OACHC,GAAG,UACHC,cAAc,kBAEdjtC,IAAAC,cAAA,QAAME,UAAU,kBAAkB+sC,UAAU,YAC5CltC,IAAAC,cAAA,QAAME,UAAU,kBAAkBgtC,OAAO,IAAID,UAAU,aAExDltC,IAAAC,cAAA,YAAUyJ,GAAG,qBACZ1J,IAAAC,cAAA,QACC0L,MAAM,KACND,OAAO,KACPo/B,KAAK,QACLsC,UAAU,+BAMfptC,IAAAC,cAAA,UAAKM,EAAE,cACN6mC,GAAiB,GACjBpnC,IAAAC,cAAA,OAAKE,UAAU,yCACbinC,KAMHllB,IAAYA,GAAS3iB,OAAS,GAC9BS,IAAAC,cAAA,OAAKE,UAAU,QACdH,IAAAC,cAAA,OAAKE,UAAU,oBACb8Y,cAAIiJ,GAAU,CAACsnB,EAASx0B,IAEvBhV,IAAAC,cAAA,OACCgV,IAAKD,EACL7U,UAAU,aACVgL,QAASA,KACHxB,YAAoB6/B,EAAQ5L,KAEN,YAAhB4L,EAAQ1gC,MAClBm5B,IAAkB,GAFlBsH,GAAYC,IAKd/8B,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKopC,EAAQ6D,MACbltC,UAAU,iBACVyL,IAAK49B,EAAQ8D,kBAOnBttC,IAAAC,cAAA,OAAKE,UAAU,aACb8Y,cAAIiJ,GAAU,CAACsnB,EAASx0B,IAEvBhV,IAAAC,cAAA,OACCgV,IAAKD,EACL7U,UAAU,aACVgL,QAASA,KACHxB,YAAoB6/B,EAAQC,WAEN,YAAhBD,EAAQ1gC,MAClBm5B,IAAkB,GAFlBsH,GAAYC,IAKd/8B,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKopC,EAAQ6D,MACbltC,UAAU,iBACVyL,IAAK49B,EAAQ8D,uBA8EzB/G,IACAvmC,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,iCACdH,IAAAC,cAAA,OAAKE,UAAU,kBACdH,IAAAC,cAAA,OAAKE,UAAU,WACdH,IAAAC,cAAA,OAAKG,IAAKjB,GAAMgB,UAAU,iBAAiByL,IAAI,UAEhD5L,IAAAC,cAAA,OACCE,UAAU,iBACVgL,QAASA,IAAMq7B,IAAuBD,KAEtCvmC,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,YAG3CH,IAAAC,cAAA,OAAKE,UAAU,+BACdH,IAAAC,cAAA,OAAKE,UAAU,mBAEbslB,IACCzlB,IAAAC,cAAA,OACCE,UAAU,mCACVgL,QAASA,KACLhF,IAGDtH,EADE4mB,GACQH,cAAqB,GAI9B/E,aAAY,CACXvU,QAAQ,EACRP,WACCzL,IAAAC,cAAA,OAAKE,UAAU,eACdH,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAW+gC,YAAalsC,UAAU,mBAGjD6M,QAASzM,EAAE,uBACX0M,UAAWA,UAMdu5B,IAAuBD,MAIvB1nC,EAAU0iB,cAAc,IACxBilB,IAAsB,MAMxBxmC,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,kBAIL5L,IAAAC,cAAA,OAAKE,UAAU,uBACdH,IAAAC,cAAA,MAAIE,UAAU,SAASI,EAAE,wBAO5B4iB,IACAnjB,IAAAC,cAAA,OAAKE,UAAU,gBACdH,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,mCACdH,IAAAC,cAAA,OACCE,UAAU,iBACVgL,QAASA,IAAMkrB,IAAmB,IAElCr2B,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAWupB,YACjB10B,UAAWwxB,MAGb3xB,IAAAC,cAAA,OACCE,UAAU,iBACVgL,QAASA,KACRorB,IAAkB,KAGlBiR,GACAxnC,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAWypB,YACjB50B,UAAWwxB,KAEZ3xB,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAW0pB,WACjB70B,UAAWwxB,MAId3xB,IAAAC,cAAA,OACCE,UAAU,iBACVgL,QAASA,IAAMgrB,IAAmB,IAElCn2B,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAW8pB,QACjBj1B,UAAWwxB,MAGb3xB,IAAAC,cAAA,OACCE,UAAW61B,GAAiB,wBAA0B,iBACtD7qB,QAASA,KACR+lB,IAAqB,GACrB+E,GAAmBvlB,IAAUA,KAG9B1Q,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAWkpB,WACjBr0B,UAAS,iCAAAnM,OAAmCgiC,GAAiB,iBAAmB,OAGlFh2B,IAAAC,cAAA,OACCE,UAAU,iBACVgL,QAASA,KACRtM,EAAU+mB,cAAoB,IAC1B4gB,IACHA,IAAsB,KAIxBxmC,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAWivB,cACjBp6B,UAAWwxB,OAId3xB,IAAAC,cAAA,OAAKE,UAAU,oBACdH,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAW8nB,aAEjBqU,GACDznC,IAAAC,cAAA,OAAKE,UAAU,cACbunC,GACA1nC,IAAAC,cAAC4N,IAAO,CACP1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,MACPD,OAAQ,MACRmE,MAAO,UA36DFrJ,KACnB,MAAM0lB,EAAQhE,KAAK+D,MAAMzlB,EAAU,MAC7B2lB,EAAUjE,KAAK+D,MAAOzlB,EAAU,KAAQ,IACxCyrB,EAAO/J,KAAK+D,MAAMzlB,EAAU,IAElC,OAAI0lB,EAAQ,EAEL,GAANl4B,OAAUk4B,EAAK,KAAAl4B,OAAIm4B,EAAU,GAAK,IAAM,IAAEn4B,OAAGm4B,EAAO,KAAAn4B,OAAIi+B,EAAO,GAAK,IAAM,IAAEj+B,OAAGi+B,GAGzE,GAANj+B,OAAUm4B,EAAO,KAAAn4B,OAAIi+B,EAAO,GAAK,IAAM,IAAEj+B,OAAGi+B,IAq6DjCD,CAAWxB,QAQfqV,IAAqB1b,IACtBnqB,IAAAC,cAAA,OAAKE,UACJ,yBAEA0lC,GAAsB,GACtB,iCAEA16B,QAASA,KAENtM,GADIsH,IAAaklB,GACP9J,cAAc,GAEdiD,cAAsB,IAEhCgiB,IAAsB,KAGzBxmC,IAAAC,cAAA,OAAKE,UAAU,SACfH,IAAAC,cAAA,OACAG,IAAKylC,GAA6B,WAAKA,GAAgC,aACvE1lC,UAAU,iBACVyL,IAAKi6B,GAA4B,YAGjC7lC,IAAAC,cAAA,UAAKM,EAAE,sBAIRolC,IACAA,GAAapmC,QACb0Z,cAAI0sB,GAAc,CAACtnB,EAAMrJ,KAGxB,GAAGyO,GAA2BlkB,OAAS,EAAG,CAEzC,IAAI+sC,EAA2B7oB,GAA2BoP,OAAQ0Z,GAC1DA,EAAYC,gBAAgBriC,MAAMsiC,QAAUpuB,EAAKoQ,SAASge,QAMlE,IAFkB,CAAC,OAAQ,aAAc,WAAY,SAAU,YAAa,cAAe,aAE1EhzB,SAAS4E,EAAKoQ,WAAgD,GAAnC6d,EAAyB/sC,OACpE,OAAO,KAGT,OACCS,IAAAC,cAAA,OACCgV,IAAKD,EACL7U,UACC,yBACUke,EAAS,IAClBinB,IAAajnB,EAAe,SAAI,UAAY,IAE9ClT,QAASA,KAER,IAAItX,EAASJ,aAAaC,QACzBC,IAAWC,WAEZ,IAAI+4C,EAAehjC,YAClB0U,EAAe,UAEb,GACAA,EAAe,SAClBsuB,EAAe94C,EACZ,IAAMA,EAAS84C,EACfA,EAECxmC,IACHqgC,IAAuBD,IAEA,aAApBloB,EAAe,SAEjB5T,OAAOC,KAAKqZ,GAAe,UAE3BtjB,EAAS+J,KAAK,CACbH,SAAUsiC,EACV1tC,MAAO,CACNipC,UAAW7pB,EAAe,YAIL,SAApBA,EAAe,SAClB5qB,aAAaK,QAAQ,mBAAoB,GACX,cAApBuqB,EAAe,SACzB5qB,aAAaK,QAAQ,mBAAoB,GAEzCL,aAAaK,QAAQ,mBAAoB,IAGlB,iBAApBuqB,EAAe,UAClBxf,EAAU0iB,cAAc,IACxBilB,IAAuBD,MAEvBC,IAAuBD,IAEA,aAApBloB,EAAe,SAEjB5T,OAAOC,KAAKqZ,GAAe,UAE3BtjB,EAAS+J,KAAK,CACbH,SAAUsiC,EACV1tC,MAAO,CACNipC,UAAW7pB,EAAe,YAKL,SAApBA,EAAe,SAClB5qB,aAAaK,QAAQ,mBAAoB,GAEzCL,aAAaK,QAAQ,mBAAoB,MAM7CkM,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKie,EAAgB,WAAGA,EAAmB,aAC3Cle,UAAU,iBACVyL,IAAKyS,EAAe,YAGtBre,IAAAC,cAAA,UAAKM,EAAE8d,EAAe,gBAwB3B6D,IAAYA,GAAS3iB,OAAS,GAC9BS,IAAAC,cAAA,OAAKE,UAAU,qBACdH,IAAAC,cAAA,MAAIE,UAAU,eAAeI,EAAE,iBAC/BP,IAAAC,cAAA,OAAKE,UAAU,aACb+hB,IACAA,GAAS3iB,QACT0Z,cAAIiJ,GAAU,CAACsnB,EAASx0B,IAEtBhV,IAAAC,cAAA,OACCgV,IAAKD,EACL7U,UAAU,aACVgL,QAASA,KACHxB,YAAoB6/B,EAAQ5L,MAChC2L,GAAYC,IAGd/8B,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKopC,EAAQ6D,MACbltC,UAAU,iBACVyL,IAAK49B,EAAQ8D,mBAUrBttC,IAAAC,cAAA,OAAKE,UAAU,wCAAuC,UAC7CkQ,cAQbrQ,IAAAC,cAACiN,IAAK,CACLxD,GAAG,0BACHyD,MAAM,EACNE,iBAAkB,0BAElBD,QAAQ,EACRG,OAAQA,KACP1O,EAAU4iB,cAAiB,KAG5BnU,SAAU,SACVigC,UAAQ,GAERvtC,IAAAC,cAACyN,IAAS,KACT1N,IAAAC,cAAA,OAAKE,UAAU,yBACdH,IAAAC,cAAA,OAAKE,UAAU,sBACdH,IAAAC,cAAA,OAAKE,UAAU,WACdH,IAAAC,cAAA,OAAKG,IAAKjB,GAAMgB,UAAU,iBAAiByL,IAAI,UAEhD5L,IAAAC,cAAA,OACCE,UAAU,iBAEVgL,QAASA,KACJmK,EAAO/e,IAAI,SAAW4pC,IACzBC,GAAgB,IAEjBvhC,EAAU4iB,cAAiB,MAG5BzhB,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,YAG3CH,IAAAC,cAAA,OAAKE,UAAU,6BACdH,IAAAC,cAAA,OAAKE,UAAU,QAIdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAK+lC,GACLhmC,UAAU,iBACVyL,IAAI,qCAIP5L,IAAAC,cAAA,OAAKE,UAAU,SACI,GAAjB0/B,IACA7/B,IAAAC,cAAA,QACC2Y,SAAUV,EA90DS1Y,MAAOgJ,EAAMyO,KACxC8tB,IAAmB,GACnBF,IAAqB,GAErBjC,GAAYp6B,EAAKL,UACjB,IAAIqlC,QA3CLhuC,eAA6B0I,GAC5B,IAAIulC,GAAQ,EACRzlC,QAAqBC,IAAU1R,IAClC1S,IAAOmC,oBACN,aACAkiB,EACA,SACAi4B,IASF,OAPAsN,EAAQzlC,EAAa/kB,IAAOC,kBACxB8kB,EAAa/kB,IAAOC,kBACvB09C,IAAuB,GAEvBA,IAAuB,GAGjB6M,EA2BmBC,CAAcllC,EAAKN,UACzCylC,GAAa,EACZH,GACJl1B,GAAS,WAAY,CAAEe,QAAS9Y,EAAE,oBAGnC,IAAIqtC,EAAiB,GACjBC,GAAgB,EACpB,GAAqB,KAAjB1N,GACH,GAAIA,GAAa5gC,QAAU,GAK1B,GAJA2/B,GAAiB,GACjB0O,EAAiBzN,GACjB2C,GAAsB8K,GACtBC,QA3FHruC,eAAqC0nC,GACpC,IAAI/G,EAAe+G,EACfA,EAAKztB,SAAS,QACjB0mB,EAAe+G,EAAKtL,UAAU,EAAGsL,EAAK0C,QAAQ,QAE/C,IAAIrhC,EACH1kB,IAAOkI,kCAAoC,SAAWo0C,EAEvD,eADyBl4B,IAAU1R,IAAIgS,IACtBtlB,IAAOC,kBAmFA4qD,CAAsBF,IACvCC,EAMJ,OALAhvC,EACCiL,cAAoB,EAAOvJ,EAAE,yCAE9BskC,IAAqB,GACrBE,IAAmB,IACZ,OAGR7F,GAAiB,OAEZ,CACN,IAAI6O,QAA4B9lC,IAAU1R,IACzC1S,IAAO2L,+BAER,IAAIu+C,EAAoB9qD,IAAOC,kBAU9B,OALA2b,EACCiL,cAAoB,EAAOvJ,EAAE,yCAE9BskC,IAAqB,GACrBE,IAAmB,IACZ,EATP6I,EAAiBG,EAAoB9qD,IAAOG,eAAe8jD,KAE3DpE,GAAsB8K,GAWxB,GAC2B,qBAAnBvN,KACNzoB,GAAsByoB,IAAgB9gC,QAAU,IAEjD,IAAK6Y,GAAO3G,aAAe+7B,EAAe,CACzC,IAAIl4B,EAAS,CACZ7D,YAAamG,GAAsByoB,GACnCF,aAAcyN,EACdr4B,aAAc,KACd1O,UAAW,EACX2O,UAAU,EACVzI,KAAM,EACN0I,MAAO,gBAGJzN,QAAqBC,IAAUiM,KAClCrwB,IAAOkK,kBACP2nB,YAAeJ,IAEhB,GAAItN,EAAa/kB,IAAOC,kBAAmB,CAC1C,MAAM8qD,EAAUp2B,GAAsByoB,GAChC/rB,EACL25B,MAAMC,KAAK,CAAE3uC,OAAQyuC,EAAQzuC,OAAS,EAAI,GAAK,IAAM,KAAKitB,KAAK,IAC/DwhB,EAAQr1B,OAAO,GAChBooB,GAAezsB,GACfosB,GAAal4B,EAAKN,UAClBs4B,IAAoB,GACpBmN,GAAa,OAEb9uC,EACC0hB,aAAY,CACXvU,QAAQ,EACRP,WACCzL,IAAAC,cAAA,OACCE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,QACPC,MAAM,QACNC,IAAI,gBAGNoB,QAASzM,EAAEyH,EAAa/kB,IAAOE,sBAGjCwqD,GAAa,EACbnN,IAAoB,SAItBloB,GAAS,gBAAiB,CAAEe,QAAS9Y,EAAE,0BAGpCitC,IAAkBG,GAAcE,IACnCn7B,GAAsBiD,IACtBnD,GAAmBmD,IACnBmqB,GAAiB,GACjBuC,IAA2B,IAG5BwC,IAAqB,GACrBE,IAAmB,KAmuDXoJ,aAAa,OAEbnuC,IAAAC,cAAA,OAAKE,UAAU,cACdH,IAAAC,cAAA,OAAKE,UAAU,2BACdH,IAAAC,cAAA,aAAQM,EAAE,mBACVP,IAAAC,cAAA,WACCD,IAAAC,cAACmuC,IAAK,CACLv9B,IAAKmH,EAAS,CACbe,UAAU,EAIVQ,QAAS,CACRhb,MAAO,uCACP8a,QAAS9Y,EACR,gFAIHmJ,GAAG,gBACHZ,KAAK,WAILulC,QAASlF,GACT/wB,OAAQA,GACRjY,UAAU,uBACVmuC,WAAS,EACTn1B,aAAa,MACbK,UAAYvC,IACX,MAAMhC,EAAMgC,EAAEhC,IAUd,IACE,WAAWyD,KAAKzD,KAVE,CACnB,YACA,YACA,aACA,SACA,OAMawE,SAASxE,GAEtB,GAAI,QAAQyD,KAAKzD,GAAM,CACtBgC,EAAEyC,iBACF,MAAMqO,EAAQ9Q,EAAEzgB,OAAO+3C,eACjB/lB,EAAMvR,EAAEzgB,OAAOg4C,aAGrBv3B,EAAEzgB,OAAO+H,MACR0Y,EAAEzgB,OAAO+H,MAAMoa,MAAM,EAAGoP,GACxB9S,EAAI8W,cACJ9U,EAAEzgB,OAAO+H,MAAMoa,MAAM6P,GAEtBvR,EAAEzgB,OAAOi4C,kBACR1mB,EAAQ,EACRA,EAAQ,QAIT9Q,EAAEyC,sBAgBR1Z,IAAAC,cAAA,OAAKE,UAAU,2BACdH,IAAAC,cAAA,aAAQM,EAAE,mBAEXP,IAAAC,cAAA,OAAKE,UAAU,yBACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,UACC+Y,SAAW/B,IACVY,GAAuBZ,EAAEzgB,OAAO+H,cAGX6hB,GAArB1I,IACAA,GAAkBuB,IAAI,CAACC,EAAQlE,IAE7BhV,IAAAC,cAAA,UACCgV,IAAKD,EACL7U,UAAW,iBAAmB6U,EAAQ,GACtCzW,MAAO2a,EAAO3a,OAEb2a,EAAO1a,UAMdwB,IAAAC,cAAA,OAAKE,UAAU,UACdH,IAAAC,cAAA,SACC6I,KAAK,gBACL3I,UAAU,uBACVgZ,aAAa,eACbtI,IAAKmH,EAAS,CACbe,UAAU,EACVK,UAAW,CACV7a,MAAO,EACP8a,QAAS9Y,EAAE,iBAAkB,CAAEhB,OAAQ,KAExC+Z,UAAW,CACV/a,MAAO,GACP8a,QAAS9Y,EAAE,iBAAkB,CAAEhB,OAAQ,MAExCga,QAAS,CACRhb,MAAO,YACP8a,QACC9Y,EAAE,iBAAkB,CAAEhB,OAAQ,IAC9B,IACAgB,EAAE,OACF,IACAA,EAAE,mBAGL6X,OAAQA,GACRoB,UAAYvC,IACX,MAAMhC,EAAMgC,EAAEhC,IAUZ,QAAQyD,KAAKzD,IATK,CACnB,YACA,YACA,aACA,SACA,OAKawE,SAASxE,IAEtBgC,EAAEyC,iBAKuB,IADPzC,EAAEzgB,OAAO+H,MACbgB,QAAwB,MAAR0V,GAC9BgC,EAAEyC,kBAGJV,SAAW/B,IACV,IAAI0C,EAAW1C,EAAEzgB,OAAO+H,MAGxBob,EAAWA,EAASnN,QAAQ,MAAO,IA5/DjD,SAAkByK,GAEjB,IAAI1Y,EAAQ0Y,EAAEzgB,OAAO+H,MAGrB,IAJW,aAIJma,KAAKna,GASX,OAAO,EAPHA,EAAMgB,OAAS,KAClBhB,EAAQA,EAAMoa,MAAM,EAAG,KAGxBmoB,IAAW,GACXR,GAAkB/hC,GAm/DNmwC,CAASz3B,GAGTA,EAAEzgB,OAAO+H,MAAQob,KAIE,GAApB4mB,GACAvgC,IAAAC,cAAA,OAAKE,UAAU,4CACdH,IAAAC,cAAA,OAAKE,UAAU,4CACbI,EAAE,0BAGF6X,GAAOwB,cACV5Z,IAAAC,cAAA,OAAKE,UAAU,4CACdH,IAAAC,cAAA,OAAKE,UAAU,4CACbI,EAAE6X,GAAOwB,cAAcP,WAI1B,KAIHrZ,IAAAC,cAAA,OAAKE,UAAU,2BACdH,IAAAC,cAAA,aAAQM,EAAE,wBACVP,IAAAC,cAAA,OAAKwM,MAAO,CAAEmE,SAAU,aACvB5Q,IAAAC,cAACmuC,IAAK,CACLv9B,IAAKmH,EAAS,CACbe,UAAU,EACVK,UAAW,CACV7a,MAv9Ec,EAw9Ed8a,QAAS9Y,EAAE,iBAAkB,CAC5BhB,OAz9Ea,KA49Efga,QAAS,CACRhb,MACC,6CACD8a,QAAS9Y,EAAE,uBAGbiZ,UAAYvC,IACX,MAAMhC,EAAMgC,EAAEhC,IAUZ,cAAcyD,KAAKzD,IATD,CACnB,YACA,YACA,aACA,SACA,OAKawE,SAASxE,IAEtBgC,EAAEyC,kBAGJtB,OAAQA,GACR1O,GAAG,WACHZ,KAAK,WACLiE,KAAM4yB,GAAoB,WAAa,OACvCx/B,UAAU,uBACVguC,aAAa,eACbG,WAAS,IAEVtuC,IAAAC,cAACmL,IAAK,CACLC,KACCs0B,GACGr0B,IAAWqjC,WACXrjC,IAAWsjC,IAEfzuC,UAAU,uBACVsM,MAAO,CAAEoiC,IAAK,QACd1jC,QAASA,IACRy0B,IAAsBD,QAM1B3/B,IAAAC,cAAA,OAAKE,UAAU,aACdH,IAAAC,cAAA,OAAKE,UAAU,6BACdH,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAWwjC,iBACjB3uC,UAAU,4BAEVI,EAAE,8BAEJP,IAAAC,cAAA,OAAKE,UAAU,6BACdH,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAWwjC,iBACjB3uC,UAAU,4BAEVI,EAAE,2BAEJP,IAAAC,cAAA,OAAKE,UAAU,6BACdH,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAWwjC,iBACjB3uC,UAAU,4BAEVI,EAAE,wBAGLP,IAAAC,cAAA,OAAKE,UAAU,2BACdH,IAAAC,cAAA,aACEM,EAAE,6BAA6B,KAAGA,EAAE,YAAY,KAElDP,IAAAC,cAAA,WACCD,IAAAC,cAACmuC,IAAK,CACL1kC,GAAG,WACHZ,KAAK,WACL3I,UACC,wBACCslC,GAAoB,YAAc,IAEpC4I,QAAUp3B,GA3sDOA,MAEF,OAAvBA,EAAEqyB,YAAY9gC,MADL,kBAC6BkQ,KAAKzB,EAAEqyB,YAAY9gC,QAC5D43B,GAAgBnpB,EAAEzgB,OAAO+H,QAwsDEwwC,CAAqB93B,GACrC1Y,MAAO4hC,GACPmO,WAAS,KAIVrP,GACAj/B,IAAAC,cAAA,OAAKE,UAAU,iDACdH,IAAAC,cAAA,OAAKE,UAAU,4CACbI,EAAE,4BAKPP,IAAAC,cAAA,OAAKE,UAAU,yBACdH,IAAAC,cAAA,WACCD,IAAAC,cAAA,UACCE,UAAU,sBACV4M,KAAK,SACL5B,QAASA,IAAMyuB,QAAQC,IAAI,aAC3BxtB,SAAUy4B,IAETF,GACA5kC,IAAAC,cAAC4N,IAAO,CACP1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAId3N,EAAE,eAKNP,IAAAC,cAAA,OAAKE,UAAU,yBACdH,IAAAC,cAAA,YAAOM,EAAE,4BAAmC,IAC5CP,IAAAC,cAAA,KACCE,UAAU,mBACVgL,QAASA,KACRtM,EAAU4iB,cAAiB,IAC3B5iB,EAAU0iB,cAAc,MAGxBhhB,EAAE,iBAOU,GAAjBs/B,IACA7/B,IAAAC,cAAAD,IAAAE,SAAA,KACEkiC,IACApiC,IAAAC,cAAA,OAAKE,UAAU,iBACdH,IAAAC,cAAA,MAAIE,UAAU,qBACZI,EAAE,uBAEJP,IAAAC,cAAA,OAAKE,UAAU,sBACbI,EAAE,6BAA8B,IAClB,IAAdiiC,GAAmBA,GAAa/wB,GAAY,KAE9CzR,IAAAC,cAACyU,IAAQ,CACRnV,OAAQ,EAERsR,IAAKqC,GAELnG,KAAK,UACLV,SAAU8G,GACVwB,UAAU,UACVC,WAAY,CAAEC,OAAQ,IAAK/H,OAAQ,WACnCgI,cAAe,oBACfC,WAAYA,CAACxW,EAAOyW,KACnBK,GAAW9W,MAOZijC,IAA8B,GAAnBjvB,IACXvS,IAAAC,cAAA,KAAGE,UAAU,6BACXI,EAAE,YAAY,IAAEgS,GAAgB,KAIlCgB,GACAvT,IAAAC,cAAA,OAAKE,UAAU,QACdH,IAAAC,cAAC4N,IAAO,CACP1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,MAKf,GAGmB,GAAnBqE,IACAvS,IAAAC,cAAA,WACCD,IAAAC,cAAA,UACCE,UAAU,gBACVsM,MAAO,CACNuiC,WAAY,OACZn6B,OAAQ,OACRkY,QAAS,EACThc,OAAQ,YAGRxQ,EAAE,yCACHP,IAAAC,cAAA,WACAD,IAAAC,cAAA,QACCqM,wBAAyB,CACxBC,OAAQhM,EACP,sCACA,CAAExM,IAlmFQ,qBAsoFhBquC,IAA2BF,IAC5BliC,IAAAC,cAAA,QAAM2Y,SAAUV,EA1jEP1Y,MAAOgJ,EAAMyO,KAM/B,GALAguB,IAAmB,GACnBE,IAAmB,GACQ,IAAvBvtB,IACHC,GAAuBH,GAAkB,GAAGnZ,OAEzCmjC,KACC5uB,IAAeP,GAAkB,GAAG,CAEvC,SAxBH/S,eAA0BwpC,GACzB,IAAIyE,GAAQ,EACRzlC,QAAqBC,IAAU1R,IAClC1S,IAAOmK,iBAAmB,UAAYg7C,EAAQ,SAAW7I,IAS1D,OAPAsN,EAAQzlC,EAAa/kB,IAAOC,kBACxB8kB,EAAa/kB,IAAOC,kBACvBy/C,IAAoB,GAEpBA,IAAoB,GAGd8K,EAWkBwB,CAAWzmC,EAAKwgC,OACvB,CACf,IAAI1zB,EAAS,CACZ7D,YAAamG,GAAsByoB,GACnCF,aAAcA,GACd6I,MAAOxgC,EAAKwgC,MACZzzB,aAAc,KACd1O,UAAW0L,GACXiD,UAAW1C,GACX/F,KArrBiB,EAsrBjB0I,MAAO,uBAGiBxN,IAAUiM,KAClCrwB,IAAOkK,kBACP2nB,YAAeJ,KAECryB,IAAOC,oBACvBq/C,GAAU/5B,EAAKwgC,OACfvG,GAAc,IAAIyM,OAAO,GAAK1mC,EAAKwgC,MAAMmG,OAAO,IAChD1N,IAAW,GACX1uB,IAAe,GACfP,GAAmB,GACnBA,GAAmBmD,IACnBksB,IAAc,GACd5uB,GAAUD,GAAS,GACnBH,WAAW,KACVgvB,IAAc,GACd9uB,IAAe,IAztBI,KA2tBpBovB,IAAyB,GACzBrC,GAAiB,GACjBuC,IAA2B,SAG5B/pB,GAAS,QAAS,CAAEe,QAAS9Y,EAAE,iBAC/B0kC,IAAmB,GACnBE,IAAmB,GAKtBxD,IAAc,GACd3tB,aAAarB,IACbqB,aAAaoxB,IACb1yB,GAAsBiD,IACtB9C,WAAW,KACV8uB,IAAc,IACZyN,KAEHnK,IAAmB,GACnBE,IAAmB,MAggETnlC,IAAAC,cAAA,OAAKE,UAAU,cACdH,IAAAC,cAAA,OAAKE,UAAU,2BACdH,IAAAC,cAAA,aAAQM,EAAE,0BACVP,IAAAC,cAACmuC,IAAK,CACLv9B,IAAKmH,EAAS,CACbe,UAAU,EAEVQ,QAAS,CACRhb,MACC,uEACD8a,QAAS9Y,EAAE,oBAGbmJ,GAAG,gBACHZ,KAAK,QACLumC,YAAa9uC,EAAE,SACfyY,SAh3DQs2B,IAErB,MAAM31B,EAAW21B,EAAM94C,OAAO+H,MAAMiO,QAAQ,MAAO,IAAIuf,cACvDwW,GAAU5oB,IA82DGvB,OAAQA,GACRjY,UAAU,uBACVmuC,WAAS,IAGVtuC,IAAAC,cAAA,OAAKE,UAAU,yBACdH,IAAAC,cAAA,WACCD,IAAAC,cAAA,UACCE,UAAU,sBACVkM,SAAU24B,IAETE,GACAllC,IAAAC,cAAC4N,IAAO,CACP1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAId3N,EAAE,mBAWM,GAAjBs/B,IACA7/B,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,iBACdH,IAAAC,cAAA,MAAIE,UAAU,yBACZI,EAAE,+BAmCR4mC,IAAmBA,GAAgB5nC,OAAS,GAC5CS,IAAAC,cAAA,OACCE,UAAU,+DACVsM,MAAO,CAAEoc,UAAW,WAEpB7oB,IAAAC,cAAA,OAAKE,UAAU,iCACdH,IAAAC,cAAA,OAAKE,UAAU,QACbI,EAAE,kCAEJP,IAAAC,cAAA,YACAD,IAAAC,cAAA,OAAKE,UAAU,yBACb8Y,cAAIkuB,GAAiB,CAACqC,EAASx0B,IAE9BhV,IAAAC,cAAA,OACCgV,IAAKD,EACL7U,UAAU,wBACVgL,QAASA,KACHxB,YAAoB6/B,EAAQz1C,MA/vD9CyL,eAAmCgqC,GAClC,GAAI/+B,OAAOsF,mBACVtF,OAAOsF,mBAAmBC,YACzBC,KAAKC,UAAU,CACdC,OAAQ,OAERpc,IACyC,MAAxCy1C,EAAQC,UAAUla,MAAM,aAAoB,GAAAv7B,OACtCyW,OAAOL,SAASmG,QAAMvc,OAAGw1C,EAAQz1C,KAAG,GAAAC,OACpCw1C,EAAQz1C,YAGX,CACN,IAAIw7C,EACa,IAAhBpP,GAAqB0C,GAAqB1C,GAC3C,GAAKx2B,YAAoB6/B,EAAQz1C,KAwBhCswC,GAAmBmF,GACnBjF,IAAe,OAzBuB,CACtCA,IAAe,GACf,IAAIqJ,EAAiB,GAErB,GAAIjkC,YAAoB4lC,GAAuB,CAC9C,IAAIxB,QAA4B9lC,IAAU1R,IACzC1S,IAAO2L,+BAEJu+C,EAAoB9qD,IAAOC,mBAC9B0qD,EAAiBG,EAAoB9qD,IAAOG,eAAe8jD,KAE3DqI,EAAuB3B,GAEvB/uC,EACCiL,cACC,EACAvJ,EAAE,yCAMNkK,OAAOL,SAAS6b,KAAOujB,EAAQz1C,IAAMw7C,IA2tD1BC,CAAoBhG,IAGtB/8B,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKopC,EAAQ6D,MACbltC,UAAU,iBACVyL,IAAK49B,EAAQ/zB,iBAezBzV,IAAAC,cAACiN,IAAK,CACLxD,GAAG,0BACHyD,MAAM,EACNE,iBAAkB,0BAClBD,OAAQ61B,GACR31B,SAAU,SACVC,OAAQA,KACP21B,IAAkB,GAClBE,IAAoB,GACpBI,IAAkB,GAClBM,IAAoB,GACpBJ,IAAqB,GACrBJ,IAAW,IAEZiK,UAAQ,GAERvtC,IAAAC,cAACyN,IAAS,KACT1N,IAAAC,cAAA,OAAKE,UAAU,yBACdH,IAAAC,cAAA,OAAKE,UAAU,sBACdH,IAAAC,cAAA,OAAKE,UAAU,WACdH,IAAAC,cAAA,OAAKG,IAAKjB,GAAMgB,UAAU,iBAAiByL,IAAI,UAEhD5L,IAAAC,cAAA,OACCE,UAAU,iBACVgL,QAASA,IAAM+3B,IAAmBD,KAElCjjC,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,YAG3CH,IAAAC,cAAA,OAAKE,UAAU,oBACdH,IAAAC,cAAA,OAAKE,UAAU,QAIdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAK+lC,GACLhmC,UAAU,iBACVyL,IAAI,qCAIP5L,IAAAC,cAAA,OAAKE,UAAU,SACbojC,IACAvjC,IAAAC,cAAA,QAAM2Y,SAAUulB,GA/qExB3+B,eAA+BgJ,GAE9B,GADAm8B,IAAgB,GACU,GAAtBhB,GAAYC,OAAa,CAC5B,IAAI6L,EAAW,CACdC,QAASlnC,EAAKknC,QACdxnC,SAAUA,IAEPynC,EAAWx7B,YAAwBs7B,GACnCG,QAAgB3nC,IAAUiM,KAC7BrwB,IAAOW,+BACPmrD,GAEGC,EAAQ3sD,IAAOC,mBAClBsgD,IAAkB,GAClBM,IAAoB,IAEpBjlC,EACC0hB,aAAY,CACXvU,QAAQ,EACRP,WACCzL,IAAAC,cAAA,OACCE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,QACPC,MAAM,QACNC,IAAI,gBAGNoB,QAASzM,EAAEqvC,EAAQ3sD,IAAOE,2BAIvB,GAA0B,GAAtBwgD,GAAYC,OAAa,CACnC,IAAI6L,EAAW,CACd7G,SAAU,KACV1gC,SAAUA,GACV6E,KAAM42B,GAAYC,OAClBnuB,MAAO,iBAEJk6B,EAAWx7B,YAAwBs7B,GAEvCjnC,EAAe,SAAI,KACnB,IAAIR,QAAqBC,IAAUiM,KAClCrwB,IAAOkK,kBACP4hD,GAGG3nC,EAAa/kB,IAAOC,mBACvBghD,IAAgB,GAChBnD,GAAe/4B,EAAaQ,MAC5Bw7B,GACCh8B,EAAaQ,KAAKgE,QACjBxE,EAAaQ,KAAK2mC,OAAO,EAAGnnC,EAAaQ,KAAKjJ,OAAS,GACvDyI,EAAaQ,KACX2mC,OAAO,EAAGnnC,EAAaQ,KAAKjJ,OAAS,GACrCiN,QAAQ,KAAM,OAGlBg3B,IAAkB,GAClBJ,IAAoB,GACpBnwB,GAAUD,GAAS,GACnB2wB,GAAYC,OAASD,GAAYC,OAAS,EAC1CjC,IAAc,GACd3tB,aAAarB,IACbqB,aAAaoxB,IACb1yB,GAAsBiD,IACtB8rB,IAAW,GACX1uB,IAAe,GACfP,GAAmB,GACnBA,GAAmBmD,IACnB3B,aAAarB,IACbqB,aAAaoxB,IAEbvyB,WAAW,KACV8uB,IAAc,GACduC,IAAgB,IACdkL,MAIHvwC,EACC0hB,aAAY,CACXvU,QAAQ,EACRP,WACCzL,IAAAC,cAAA,OACCE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,QACPC,MAAM,QACNC,IAAI,gBAGNoB,QAASzM,EAAEyH,EAAa/kB,IAAOE,sBAKnCwhD,IAAgB,OA+kER3kC,IAAAC,cAAA,aAAQM,EAAE,4BACVP,IAAAC,cAACmuC,IAAK,CACLrhC,KAAK,OACLrD,GAAG,UACHZ,KAAK,UACL+H,IAAKqtB,IACL/9B,UAAU,uBACVkvC,YAAa9uC,EAAE,YACf4Y,aAAa,QAEdnZ,IAAAC,cAAA,QAAME,UAAU,sCACdI,EAAE,qBACFwjC,IAEDvC,IAA8B,GAAnBjvB,IACXvS,IAAAC,cAAA,KAAGE,UAAU,6CACXI,EAAE,YAAY,IAAEgS,GAAgB,KAGnCvS,IAAAC,cAAA,WACCD,IAAAC,cAAA,UACCE,UAAU,sBACV4M,KAAK,SACL5B,QAASA,IAAOw4B,GAAYC,OAAS,KAEpCrjC,EAAE,YACFmkC,GACA1kC,IAAAC,cAAC4N,IAAO,CACP1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,WACPD,OAAQ,WACRwC,WAAY,KAId,KAKF+1B,IAAmC,GAAnB1xB,IAChBvS,IAAAC,cAAA,WACCD,IAAAC,cAAA,UACCE,UAAU,yDACVsM,MAAO,CACNuiC,WAAY,OACZn6B,OAAQ,OACRkY,QAAS,EACThc,OAAQ,YAGRxQ,EAAE,0CAGO,GAAVyS,IACAhT,IAAAC,cAAA,WACCD,IAAAC,cAAA,UACCE,UAAU,sBACV4M,KAAK,SACL5B,QAASA,IAAOw4B,GAAYC,OAAS,GAEpCrjC,EAAE,2BAIK,GAAVyS,IACAhT,IAAAC,cAAA,WACCD,IAAAC,cAAA,UACCE,UAAU,sBACV4M,KAAK,SACL5B,QAASA,IAAM82B,IAAkB,IAEhC1hC,EAAE,gCAQTsjC,IACA7jC,IAAAC,cAAA,QAAM2Y,SAAUgmB,GAlqExBp/B,eAAiCgJ,GAChC3J,EAAUY,gBACV,IAAIgwC,EAAW,CACdI,YAAarnC,EAAKsnC,YAClBC,aAAcvnC,EAAKwnC,aACnB9nC,SAAUA,IAGPynC,EAAWx7B,YAAwBs7B,GAEvC,IAAIznC,QAAqBC,IAAUiM,KAClCrwB,IAAOoB,wCACP0qD,GAGG3nC,EAAa/kB,IAAOC,mBACvB4gD,IAAoB,GACpBJ,IAAqB,IAErB7kC,EACCiL,aACC9B,EAAa/kB,IAAOC,kBACpBqd,EAAEyH,EAAa/kB,IAAOE,qBAIzB0b,EAAUiB,oBAyoEFE,IAAAC,cAAA,aAAQM,EAAE,uBACVP,IAAAC,cAACmuC,IAAK,CACLrhC,KAAK,WACLjE,KAAK,cACLY,GAAG,cACHvJ,UAAU,uBACVkvC,YAAa9uC,EAAE,gBACf4Y,aAAa,MACbtI,IAAK8tB,EAAsB,CAC1B5lB,UAAU,EACVK,UAAW,CACV7a,MAx+FiB,EAy+FjB8a,QAAS9Y,EAAE,iBAAkB,CAC5BhB,OA1+FgB,KA6+FlB0wC,SAAW1xC,GACe,IAAzB8/B,GAAM,iBACN9/B,GAAS8/B,GAAM,iBACf,sBAEFjmB,OAAQymB,IAET7+B,IAAAC,cAAA,aAAQM,EAAE,2BACVP,IAAAC,cAACmuC,IAAK,CACLrhC,KAAK,WACLjE,KAAK,eACLY,GAAG,eACHvJ,UAAU,uBACVkvC,YAAa9uC,EAAE,wBACf4Y,aAAa,MACbtI,IAAK8tB,EAAsB,CAC1B5lB,UAAU,EACVK,UAAW,CACV7a,MA//FiB,EAggGjB8a,QAAS9Y,EAAE,iBAAkB,CAC5BhB,OAjgGgB,KAogGlB0wC,SAAW1xC,GACc,IAAxB8/B,GAAM,gBACN9/B,GAAS8/B,GAAM,gBACf,sBAEFjmB,OAAQymB,IAET7+B,IAAAC,cAAA,WACCD,IAAAC,cAAA,UAAQE,UAAU,uBAChBI,EAAE,qBAKNkjC,IACAzjC,IAAAC,cAAA,QACC2Y,SAAU4mB,IA9rEnBhgC,eAAqCgJ,GACpCs7B,IAAoB,GACpBJ,IAAqB,GACrBJ,IAAW,GACXJ,IAAkB,OA8rEVljC,IAAAC,cAAA,OAAKE,UAAU,iBACdH,IAAAC,cAAA,MAAIE,UAAU,yBACZI,EAAE,2BAEJP,IAAAC,cAAA,OAAKE,UAAU,yBACdH,IAAAC,cAAA,OACCkL,QAASA,KACR+3B,IAAmBD,IACnBD,IAAkB,GAClBtD,IAAkB,KAGnB1/B,IAAAC,cAAA,UAAQE,UAAU,uBAChBI,EAAE,mBAadP,IAAAC,cAACwtB,EAAS,CAACI,QAASA,KACN,IAAbjK,IAA8C,KAAlB,OAATA,SAAS,IAATA,QAAS,EAATA,GAAWgnB,cAC9B5qC,IAAAC,cAACu6B,EAAS,OAl8Db,IAAkBj8B,K,oMClXJ2xC,IA92BCtxC,IACf,IAAI,EAAE2B,GAAMC,cACRC,EAAWC,cACX7B,EAAYC,cAChB,MAAMsL,EAAWmc,cACR,IAAIyX,IACb,MAAM1zB,EAASG,OAAOL,SAASE,OAGzBwV,GAFS,IAAIme,gBAAgB3zB,GAElBtL,YAAaC,GAAUA,EAAMC,SAAS4gB,YAChDlS,EAAsBqyB,GAA2B5gC,mBAAS,GAC9CL,YAAaC,GAAUA,EAAMC,SAAS0B,QACzD,IAAI,UAAEuF,GAAcnH,YAAaC,GAAUA,EAAM8B,WAC7CgmC,EAAmB/nC,YAAaC,GAAUA,EAAMC,SAASmjB,WAE7D,MAAOoe,EAAWC,GAAgBrhC,mBAAS,KAGpCsT,EAAUC,GAAevT,mBAASwT,WAAW,OAAU,OACvDN,EAAiBC,GAAsBnT,mBAAS,IAChDoT,EAAoBC,GAAyBrT,mBAAS,IAEtDijC,EAAQC,GAAaljC,mBAAS,KAC9BmjC,EAAYC,GAAiBpjC,mBAAS,IACvC6iB,EAAWljB,YAAaC,GAAUA,EAAMC,SAASgjB,UACjDK,EAAqBvjB,YAAaC,GAAUA,EAAMC,SAASqjB,qBAE1D6hB,EAAiBC,GAAsBhlC,sBACvCilC,EAAaC,GAAkBllC,sBAC/BknC,EAAoBC,GAAyBnnC,oBAAS,GAEvD8e,EAAenf,YAAaC,GAAUA,EAAMC,SAASwf,UACrD3f,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpD4mC,EAAcC,GAAmBvmC,sBACjCF,EAAMC,IAAWC,sBACjB+G,GAAWC,IAAgBhH,sBAC3BimC,GAAWC,IAAgBlmC,sBAC3B8wC,GAAeC,IAAoB/wC,sBACnCgxC,GAAmBC,IAAuBjxC,oBAAS,IACnDkxC,GAAYC,IAAgBnxC,qBAEnC,IAAIyiB,GAAY9iB,YAAaC,GAAUA,EAAMC,SAAS4iB,WAClD3a,GAAsBnI,YAAaC,GACtCA,EAAM8B,UAAUoF,UAAYlH,EAAM8B,UAAUC,SAASmG,oBAAsB,GAExEigC,GAAiBpoC,YAAaC,GACjCA,EAAM8B,UAAUoF,UAAYlH,EAAM8B,UAAUC,SAASqmC,oBAAsB,GAG5E,MAAOoJ,GAAgBC,IAAqBrxC,mBAAS,KAC9CsxC,GAAiBC,IAAsBvxC,mBAAS,KAChD0gC,GAAgBC,IAAqB3gC,mBAAS,KAC9CwxC,GAAkBC,IAAuBzxC,mBAAS,GACnD0xC,GAAqB/xC,YACzBC,GAAUA,EAAMumC,cAAclvB,aAEzB06B,GAAiBC,IAAsB5xC,qBAuG9C,SAASkqC,GAAYC,GAChB/+B,OAAOsF,mBACVtF,OAAOsF,mBAAmBC,YACzBC,KAAKC,UAAU,CACdC,OAAQ,OAERpc,IACyC,MAAxCy1C,EAAQC,UAAUla,MAAM,aAAoB,GAAAv7B,OACtCyW,OAAOL,SAASmG,QAAMvc,OAAGw1C,EAAQ5L,KAAG,GAAA5pC,OACpCw1C,EAAQ5L,QAIZj0B,YAAoB6/B,EAAQ5L,MAIhCyG,EAAmBmF,GACnBjF,GAAe,KAJfA,GAAe,GACf95B,OAAOL,SAAS6b,KAAOujB,EAAQ5L,KApHlCt+B,oBAAU,KACLP,EAAaQ,OAAS,GA2H3BC,iBACCX,EAAUY,gBACV,MAAMooC,EAAchV,iBAAO9zB,EAAc,CAAEY,aAAc,aACrDkoC,GACHjC,EAAgBiC,GAGjB,MAAMsI,EAAgBtd,iBAAO9zB,EAAc,CAAEY,aAAc,eAM3D,GAAIwwC,GAAiBA,EAAc5wC,OAAS,EAAG,CAC9C,MAAM2xC,EAAY,GAElBf,EAAcl3B,IAAKtQ,IAClB,MAAM4nC,EAAcY,GAAiBzxC,KAAK2e,GAAQA,EAAKlU,QAAUxB,EAAE8lB,WAAa,GAE1E2iB,EAAoBzoC,EAAE8lB,SAASjiB,QAAQ,mBAAoB,IAEjE0kC,EAAU1mC,KAAK,CACdL,MAAOinC,EACP/mC,SAAU1B,EAAE0B,SAAW,IAAMhU,IAAOU,mBAAqB4R,EAAE0B,SAAWkmC,EAAYlmC,SAClFgjC,MAAO1kC,EAAE/I,UAAY+I,EAAE/I,UAAuB,OAAX2wC,QAAW,IAAXA,OAAW,EAAXA,EAAalD,MAChDgE,YAAa1oC,EAAE2oC,gBAAkB3oC,EAAE2oC,gBAAkB3oC,EAAE/I,UAAY+I,EAAE/I,UAAuB,OAAX2wC,QAAW,IAAXA,OAAW,EAAXA,EAAac,YAC9FE,QAAS,GACM1f,KAAMsf,GAAiBte,OAAO1V,GAAKxU,EAAE8lB,UAAYtR,EAAEhT,QAAUinC,GAAmB,GAAGvf,MAAQuf,MAM5GhB,GAAiBc,GACJA,EAjOThZ,QAAS7sB,KACF,IAAImmC,OACZpxC,IAAMiL,EAAKgiC,OAEG,IAAImE,OACZpxC,IAAMiL,EAAKgmC,kBA6NhB,CACJ,MAAMH,EAAY,GAIlBC,GAAiBl4B,IAAKtQ,IACrBixB,QAAQC,IAAIlxB,GACZuoC,EAAU1mC,KAAK,CACdL,MAAOxB,EAAEwB,MACTE,SAAW1B,EAAE0B,SACbgjC,MAAO1kC,EAAE0kC,MACTgE,YAAa1oC,EAAE0oC,YACfE,QAAS,GACM1f,KAAMlpB,EAAEkpB,SAGzBue,GAAiBc,GAIlB,MAAM/xC,EAAOO,eAAKX,EAAc,CAAEY,aAAc,SAC5CR,GACHC,GAAQD,EAAKS,WAAWT,EAAKU,cAG9B,MAAM8H,EAAQjI,eAAKX,EAAc,CAAEY,aAAc,UAC7CgI,GACHtB,GAAasB,EAAM/H,WAAW+H,EAAM9H,cAGrC,MAAM4xC,EAAsB5e,iBAAO9zB,EAAesM,GACpB,sBAAtBA,EAAK1L,cAEa,IAAD+xC,EAAAC,EAArBF,GACHR,IAAyC,QAAtBS,EAAAD,EAAoB,UAAE,IAAAC,OAAA,EAAtBA,EAAwB9xC,aAAiC,QAAxB+xC,EAAEF,EAAoB,UAAE,IAAAE,OAAA,EAAtBA,EAAwB9xC,eAG/EhB,EAAUiB,gBAlMTC,IAEC,CAAChB,IAEJO,oBAAU,KACT,GACC8K,EAASC,WAAahU,IAAOtB,gBAC7BqV,EAASC,WAAahU,IAAOrB,qBAC7BoV,EAASC,SAASoP,SAAS,WAK1B,CACD,IAAIm4B,EAAWtf,oBAAU6d,GAAe,CACvC9lC,SAAUhU,IAAOtB,iBAElBwwC,GAAaqM,QACP,GACNxnC,EAASC,WAAahU,IAAOnB,eAC7BkV,EAASC,WAAahU,IAAOjC,eAC7BgW,EAASC,WAAahU,IAAO7B,cAC5B,CACD,IAAIo9C,EAAWtf,oBAAU6d,GAAe,CACvC9lC,SAAUD,EAASC,WAEpBk7B,GAAaqM,QAEbrM,GAAa,IAEZ,CAACn7B,IAEJ9K,oBAAU,KACLiT,EAAkB,GACrBM,WAAW,KAEVL,EADiBD,EAAkB,IA9Ef,MAkFpB,CAACA,IAEJjT,oBAAU,KACLmT,EAAqB,GACxBG,EACCC,WAAW,KAEVH,EADiBD,EAAqB,IAxFnB,OA6FpB,CAACA,IAEJnT,oBAAU,KACL8kC,IACEz6B,YAAoBy6B,EAAgBsF,aACxCnF,GAAe,KAGf,CAACH,IAEJ9kC,oBAAU,KACT,QAAwB8gB,GAApB2mB,EAA+B,CAClC,MAAMqB,EAAe7xC,cAAIwwC,EAAiB,GAAI,QACxC8K,EAAat7C,cAAIwwC,EAAiB,GAAI,MAC5C,GACCtzC,aAAaC,QAAQC,IAAWC,YACe,cAA/CH,aAAaC,QAAQC,IAAWC,WAC/B,CACD,IAAI00C,EAAWvB,EAAiBlU,OAC9BlqB,GAAMA,EAAEu+B,MAAQzzC,aAAaC,QAAQC,IAAWC,YAChD,QAEcwsB,GAAZkoB,GACHtI,GAAkBsI,EAASpB,MAC3B4J,GAAoBxI,EAAS5+B,MAE7Bs2B,GAAkBoI,GAClB0I,GAAoBe,SAGrB7R,GAAkBoI,GAClB0I,GAAoBe,QAGrB7R,GAAkB,MAClB8Q,GAAoB,IAEnB,CAAC/J,EAAkBgK,KAEtBzxC,oBAAU,KACLuxC,GAAmB,GA2JxBrxC,iBACC,IACC,IAAIwI,QAAqBC,IAAU1R,IAClC1S,IAAOgN,iCAAmC,6BAA+BggD,IAE1E,GACC7oC,EAAa/kB,IAAOC,mBACpBiuB,OAAOw3B,KAAK3gC,EAAa/kB,IAAOG,gBAAgBmc,OAAS,EACxD,CACD,IAAIkxC,EAAiBzoC,EAAa/kB,IAAOG,gBA/B5C,SAAgC0uD,GAC/B,GAA2B,kBAAhBA,EAASpoC,GAAiB,OAAO,EAC5C,GAA8B,kBAAnBooC,EAAS3nC,MAAoB,OAAO,EAC/C,GAAiC,kBAAtB2nC,EAASC,SAAuB,OAAO,EAElD,MAAMC,EAAc/hC,KAAKgiC,MAAMH,EAASC,UAExC,GAA2B,kBAAhBC,EAA0B,OAAO,EAU5C,QAReA,EAAYE,MAAOvpC,GACX,kBAAXA,EAAEoE,OACW,kBAAbpE,EAAEwpC,SACgB,kBAAlBxpC,EAAEypC,aACa,kBAAfzpC,EAAEopC,aAoBRM,CAAuB5B,IAC1BC,GAAkBD,IAMnB,MAAO/S,KA5KR4U,IAEC,CAACzB,KAEJvxC,oBAAU,KACT2e,aAAYpf,IACV,IAoGH,MAAM0zC,IAAc,IAAI5mB,MAAO6mB,cAE/B,SAASjJ,GAAYC,GAChB/+B,OAAOsF,mBACVtF,OAAOsF,mBAAmBC,YACzBC,KAAKC,UAAU,CACdC,OAAQ,OAERpc,IACyC,MAAxCy1C,EAAQC,UAAUla,MAAM,aAAoB,GAAAv7B,OACtCyW,OAAOL,SAASmG,QAAMvc,OAAGw1C,EAAQ5L,KAAG,GAAA5pC,OACpCw1C,EAAQ5L,QAIZj0B,YAAoB6/B,EAAQ5L,MAKhCyG,EAAmBmF,GACnBjF,GAAe,KALfA,GAAe,GAEf95B,OAAOC,KAAK8+B,EAAQ5L,IAAK,WAuD5B,MAAMuT,GAAmB,CAElB,CACIhnC,MAAO,OAChB0nB,KAAM,OACNxnB,SAAUhU,IAAOnC,UACjBm5C,MAAM,GAADr5C,OAAKojB,EAAQ,MAClBi6B,YAAY,GAADr9C,OAAKojB,EAAQ,OAEnB,CACIjN,MAAO,WAChB0nB,KAAM,WACNxnB,SAAUhU,IAAOnB,cACjBm4C,MAAOj2B,EAAQ,KACfi6B,YAAaj6B,EAAQ,MAEhB,CACKjN,MAAO,aAChB0nB,KAAM,YACNxnB,SAAUhU,IAAOtB,eACjBs4C,MAAOj2B,EAAQ,KACfi6B,YAAaj6B,EAAQ,MAGjB,CACIjN,MAAO,WAChB0nB,KAAM,WACNxnB,SAAUhU,IAAOxB,eACjBw4C,MAAOj2B,EAAQ,KACfi6B,YAAaj6B,EAAQ,MAGhB,CACIjN,MAAO,UAChB0nB,KAAM,UACNxnB,SAAUhU,IAAO7B,cACjB64C,MAAOj2B,EAAQ,KACfi6B,YAAaj6B,EAAQ,OA+DvB,OATA9X,oBAAU,KACT,GAAI6R,OAAOw3B,KAAK8H,IAAgBlxC,OAAQ,CACvC,IAAIkzC,EAAiBxiC,KAAKgiC,MAAMxB,GAAesB,UAC3CW,EAA2BziC,KAAKgiC,MAAMxB,GAAekC,oBAEzD/B,GAtDmBgC,EAACb,EAAUY,KAC/B,IAAKZ,EAASI,OACb,OAAOJ,EAGR,GAAIY,GAAoD,IAA9BA,EAAmBpzC,OAAc,CAC1D,IAAIszC,EAA0Bd,EAASI,OAAOl5B,IAAI,CAAC65B,EAAG99B,KACrD,IAAIua,EAAQojB,EAAmBG,EAAEppC,IAChC,OAAAqpC,wBAAA,GACGD,GAAC,IACJf,SAAWxiB,GAAgBujB,EAAEf,SAC7BiB,gBAAkBjB,EAASI,OAAOn9B,GAAO+8B,aAI3CA,EAASI,OAASU,EA+BnB,OA5BAd,EAASI,OAAShhC,OAAO8hC,QAAQlB,EAASI,QAAQe,OACjD,CAACC,EAAG5hC,KAAyB,IAAtB6hC,EAAUC,GAAM9hC,EAsBtB,OArBI8hC,GAAwB,cAAfA,EAAMtmC,KAClBoE,OAAO8hC,QAAQI,EAAMtB,SAASuB,OAAOpb,QAAQqb,IAAuB,IAArBC,EAAUzgB,GAAKwgB,EACxDxgB,EAAKh/B,MAGVg/B,EAAKh/B,IAAMg/B,EAAKh/B,IAAIyY,QAAQ,UAAW,eAO9B6mC,GAAwB,UAAfA,EAAMtmC,MACW,kBAAzBsmC,EAAMtB,SAAS1E,QACzBgG,EAAMtB,SAAS1E,MAAQgG,EAAMtB,SAAS1E,MAAM7gC,QAC3C,UACA,aAIH2mC,EAAIC,GAAYC,EACTF,GAER,IAGMpB,GAQaa,CAAaH,EAAe,GAAIC,MAElD,CAACjC,KAGHzwC,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OACCE,UAAU,wCACVsM,MAAO,CAAEgnC,UAAW,SAEpBzzC,IAAAC,cAAA,OAAKE,UAAW2f,EAAW,cAAgB,SAC3C9f,IAAAC,cAAA,OAAKE,UAAW2f,EAAW,eAAiB,SAC3C9f,IAAAC,cAAA,OAAKE,UAAU,aAMbwwC,IACAA,GAAgByB,aAChBzB,GAAgByB,YAAY7yC,OAAS,GACpCS,IAAAC,cAAA,OAAKE,UAAU,wBACdwwC,GAAgByB,YAAYn5B,IAAI,CAACm6B,EAAUp+B,KAAW,IAAD0+B,EACpD,MAAML,EAAQ3zC,eAAKixC,GAAgBwB,OAAQ,CAC1CzoC,GAAI0pC,IAGL,OAAwB,QAAxBM,EAAGL,EAAML,uBAAe,IAAAU,OAAA,EAArBA,EAAuBrnC,UAClB,KAGW,cAAfgnC,EAAMtmC,KAER/M,IAAAC,cAAA,OAAKE,UAAU,sBAAsB8U,IAAKD,GACzChV,IAAAC,cAAA,OAAKE,UAAU,uBACbkzC,EAAMtB,SAAS4B,QAAUN,EAAMtB,SAAS4B,QAAUN,EAAML,gBAAgBW,SAEzExiC,OAAOw3B,KAAK0K,EAAMtB,SAASuB,OAAOr6B,IAClC,CAACu6B,EAAUI,KAAgB,IAADC,EAC1B,MAAM9gB,EAAOsgB,EAAMtB,SAASuB,MAAME,GAC5BM,EAAmC,QAAxBD,EAAGR,EAAML,uBAAe,IAAAa,OAAA,EAArBA,EAAuBP,MAAM5zC,KAAKq0C,GAAYA,EAASrqC,IAAM8pC,GAEjF,OASCxzC,IAAAC,cAACD,IAAME,SAAQ,CAAC+U,IAAK2+B,GACnB7gB,EAAKjqB,KACL9I,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,KAAGgV,IAAK2+B,EAAY3tB,KAAM8M,EAAKh/B,IAAKoM,UAAU,sBAC5C4yB,EAAKjqB,OAIR9I,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,KAAGgV,IAAK2+B,EAAY3tB,KAAiB,OAAX6tB,QAAW,IAAXA,OAAW,EAAXA,EAAa//C,IAAKoM,UAAU,sBACzC,OAAX2zC,QAAW,IAAXA,OAAW,EAAXA,EAAahrC,WASG,UAAfuqC,EAAMtmC,KAEf/M,IAAAC,cAAA,OAAKE,UAAU,sBAAsB8U,IAAKD,GAGzChV,IAAAC,cAAA,OAAKE,UAAU,sBACbkzC,GAASA,EAAMtB,SAAS1E,MACxBrtC,IAAAC,cAAC+zC,IAAa,CACb5zC,IAAKizC,EAAMtB,SAAS1E,MAAM7gC,QACzB,UACA,YAEDZ,IAAI,YACJqoC,YAAajD,KAGdhxC,IAAAC,cAAC+zC,IAAa,CACb5zC,IAA0B,QAAvB8zC,EAAEb,EAAML,uBAAe,IAAAkB,OAAA,EAArBA,EAAuB7G,MAAM7gC,QACjC,UACA,YAEDZ,IAAI,YACJqoC,YAAajD,OAMO,cAAfqC,EAAMtmC,KAEf/M,IAAAC,cAAA,OAAKgV,IAAKD,EAAO7U,UAAU,uBAC1BH,IAAAC,cAAA,OAAKE,UAAU,uBACbkzC,EAAMtB,SAAS4B,QAAUN,EAAMtB,SAAS4B,QAAUN,EAAML,gBAAgBW,SAEzEN,EAAMtB,SAAS/kC,QACfhN,IAAAC,cAAA,OACCqM,wBAAyB,CACxBC,OAAQ8mC,EAAMtB,SAAS/kC,WAOzBhN,IAAAC,cAAA,OACCqM,wBAAyB,CACxBC,QAAa,OAAL8mC,QAAK,IAALA,GAAsB,QAAjBc,EAALd,EAAOL,uBAAe,IAAAmB,OAAjB,EAALA,EAAwBnnC,UAAW,OAUzC,KAxD4B,IAADknC,EA4BIC,KAiC3Cn0C,IAAAC,cAAA,OAAKE,UAAU,kBACD,OAAZge,QAAY,IAAZA,OAAY,EAAZA,EAAc5e,QAAO,GACtBS,IAAAC,cAAA,OAAKE,UAAU,SACbge,GACAA,EAAa5e,OAAO,GACpB0Z,cAAIkF,EAAc,CAACE,EAAMrJ,IAEvBqJ,GACCre,IAAAC,cAAA,OAAKgV,IAAKD,EAAO7U,UAAU,uBAQ1BH,IAAAC,cAACm0C,IAAY,CACZC,mBAAmB,QACnBC,aAAc,IAAIC,IAAoB,CACrCC,aAAa,sBAADxgD,OAAuBqqB,EAAK/V,aAAakE,QAAQ,OAAQ,KACrEioC,OAAOp2B,EAAKI,qBAEbi2B,YAAa,IAAIH,IAAoB,CACpCC,aAAa,sBAADxgD,OAAuBqqB,EAAK/V,aAAakE,QAAQ,OAAQ,KACrEioC,OAAOp2B,EAAKG,gBAEbm2B,OAAQt2B,EAAK/V,kBAQpBtI,IAAAC,cAAA,OAAKE,UAAU,UACdH,IAAAC,cAAA,OAAKE,UAAU,oBACZoiB,EAeDA,GACAL,GACAA,EAAS3iB,OAAS,GAClB0Z,cAAIiJ,EAAU,CAAC7D,EAAMrJ,IAEnBhV,IAAAC,cAAA,OACCgV,IAAKD,EACL7U,UAAU,oBACVgL,QAASA,KACHxB,YAAoB0U,EAAKuf,MAC7B2L,GAAYlrB,KAIdre,IAAAC,cAAA,OAAKE,UAAU,IACdH,IAAAC,cAAA,OACCG,IAAKie,EAAKgvB,MACVltC,UAAU,iBACVyL,IAAI,oBAhCT5L,IAAAC,cAAA,OAAKE,UAAU,mBACdH,IAAAC,cAAC4N,IAAO,CACP1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,YA+Bb1L,IAAAC,cAAA,KAAGwM,MAAO,CACeqc,UAAY5G,GAAYA,EAAS3iB,OAAS,EAAK,OAAS,QACtDgB,EAAE,mBAG/BP,IAAAC,cAAA,OAAKE,UAAU,gBAAe,OACtBoyC,GAAY,IAAEzwB,GAAU8yB,cAAc,gCAAgE50C,IAAAC,cAAA,YAAM,MAppB1H,SAAsB40C,GAErB,MAAMzoB,EAAQyoB,EAASz/B,MAAM,KAK7B,MAFY,GAAAphB,OAAMo4B,EAAM,GAAE,KAAAp4B,OAAIw7B,SAASpD,EAAM,IAAI,KA+oB4E0oB,CAAazkC,iBASxIrQ,IAAAC,cAAA,OAAKE,UAAU,iBAQZgwC,IACAA,GAAc5wC,OAAS,GACxB0Z,cAAIk3B,GAAe,CAAC9xB,EAAMrJ,IAEvBhV,IAAAC,cAAA,OACCgV,IAAKD,EACL7U,UAAS,sBAAAnM,OACcsxC,KAActwB,EAAQ,SAAW,IAExD7J,QAASA,KACRtM,EAAUiiB,cAAgB,IACtB3a,GACH1F,EAAS+J,KAAK,CACbH,SAAUgU,EAAKhU,SACfpL,MAAO,CACNipC,UAAW7pB,EAAKpf,SAGlBxL,aAAaK,QAAQ,mBAAoBkhB,IAErCqJ,EAAe,WAAM,IAAIhoB,IAAOU,mBAAoB,aACvD0J,EAAS+J,KAAK,CACbH,SAAUV,YAAoB0U,EAAe,UAC1C,GACAA,EAAe,WAGnB5qB,aAAaK,QAAQ,mBAAoBkhB,IAEzCnW,EAAU0iB,cAAc,KAI3B9U,MAAO,IA0BPzM,IAAAC,cAAA,OAAKE,UAAU,kBACdH,IAAAC,cAAA,OACCG,IAAKklC,KAActwB,EAAQqJ,EAAkB,YAAIA,EAAY,MAC7DzS,IAAG,QAAA5X,OAAUqqB,EAAY,OACzB5R,MAAO,CACNd,MAAM,GAAD3X,OAAKqqB,EAAKwT,KAAO,OAAS,QAC/BnmB,OAAO,GAAD1X,OAAKqqB,EAAKwT,KAAO,OAAS,WAIjCxT,EAAe,UAAKhoB,IAAOjC,eAAiBgzC,GAAiB,GAC7DpnC,IAAAC,cAAA,OAAKyJ,GAAG,iBAAiBvJ,UAAU,2BACjCinC,IAIF/oB,EAAe,UAAKhoB,IAAOtB,gBAAkBoS,GAAsB,GACnEnH,IAAAC,cAAA,OAAKyJ,GAAG,cAAcvJ,UAAU,2BAC9BgH,KAKHkX,EAAKwT,MACL7xB,IAAAC,cAAA,OACCwM,MAAO,CAGNE,SAAS,OACTooC,WAAW,SACXC,SAAS,SACTC,aAAc,WACdpoC,SAAS,SAGTtM,EAAE8d,EAAKwT,UAaf0U,GACAvmC,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,iCACdH,IAAAC,cAAA,OAAKE,UAAU,kBACdH,IAAAC,cAAA,OAAKE,UAAU,WACdH,IAAAC,cAAA,OAAKG,IAAKjB,EAAMgB,UAAU,iBAAiByL,IAAI,UAEhD5L,IAAAC,cAAA,OACCE,UAAU,iBACVgL,QAASA,IAAMq7B,GAAuBD,IAEtCvmC,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,YAG3CH,IAAAC,cAAA,OAAKE,UAAU,+BACdH,IAAAC,cAAA,OAAKE,UAAU,mBACbwlC,GACAA,EAAapmC,OAAS,GACtB0Z,cAAI0sB,EAAc,CAACtnB,EAAMrJ,IAEvBhV,IAAAC,cAAA,OACCgV,IAAKD,EACL7U,UAAW,yBAAgCke,EAAS,GACpDlT,QAASA,KACJhF,GACHqgC,GAAuBD,GACvB9lC,EAAS+L,QAAQ,CAChBnC,SAAUV,YAAoB0U,EAAe,UAC1C,GACAA,EAAe,SAClBpf,MAAO,CACNipC,UAAW7pB,EAAe,YAGJ,SAApBA,EAAe,SAClB5qB,aAAaK,QAAQ,mBAAoB,GACX,cAApBuqB,EAAe,SACzB5qB,aAAaK,QAAQ,mBAAoB,GAEzCL,aAAaK,QAAQ,mBAAoB,IAGlB,iBAApBuqB,EAAe,SAClBxf,EAAU0iB,cAAc,KAGxBilB,GAAuBD,GACvB9lC,EAAS+L,QAAQ,CAChBnC,SAAUV,YAAoB0U,EAAe,UAC1C,GACAA,EAAe,SAClBpf,MAAO,CACNipC,UAAW7pB,EAAe,YAIJ,SAApBA,EAAe,SAClB5qB,aAAaK,QAAQ,mBAAoB,GAEzCL,aAAaK,QAAQ,mBAAoB,MAM7CkM,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKie,EAAgB,WAAGA,EAAmB,aAC3Cle,UAAU,iBACVyL,IAAKyS,EAAe,YAGtBre,IAAAC,cAAA,UAAKM,EAAE8d,EAAe,eAM5Bre,IAAAC,cAAA,OAAKE,UAAU,qBACdH,IAAAC,cAAA,MAAIE,UAAU,eAAeI,EAAE,iBAC/BP,IAAAC,cAAA,OAAKE,UAAU,aACb+hB,GACAA,EAAS3iB,QACT0Z,cAAIiJ,EAAU,CAACsnB,EAASx0B,IAEtBhV,IAAAC,cAAA,OACCgV,IAAKD,EACL7U,UAAU,aACVgL,QAASA,KACHxB,YAAoB6/B,EAAQ5L,MAChC2L,GAAYC,IAGd/8B,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKopC,EAAQ6D,MACbltC,UAAU,iBACVyL,IAAK49B,EAAQ8D,wB,mKC94BrB1gC,EAAU5M,IAAMs8B,WAAW,CAAC19B,EAAOiS,KACxC,MAAM,KACL/H,EAAI,UACJ3I,EAAU,GAAE,mBACZk0C,EAAqB,GAAE,cACvBa,EAAgB,GAAE,iBAClB7nC,EAAmB,GAAE,QACrBL,EAAQ,GAAE,KACVD,EAAK,WAEFnO,EADAu2C,EAAItjC,YACJjT,EAAKkT,GAEHsjC,EAAa,CAClBC,OAAQ,CACN/mB,UAAW,UACXgnB,UAAW,UACXC,eAAgB,UAChBlmB,QAAS,wBAEXmmB,OAAQ,CACNlnB,UAAW,UACXgnB,UAAW,UACXC,eAAgB,UAChBlmB,QAAS,wBAEXomB,QAAS,CACPnnB,UAAW,UACXgnB,UAAW,UACXC,eAAgB,UAChBlmB,QAAS,0BAIN,UAAEf,EAAS,UAAEgnB,EAAS,eAAEC,EAAc,QAAElmB,GAAY+lB,EAAWroC,IAASqoC,EAAWK,QAEzF,OACCz1C,IAAAC,cAAA,OAAKE,UAAWA,EAAWsM,MAAO0oC,EAAK1oC,OACtCzM,IAAAC,cAAA,OAAKE,UAAS,YAAAnM,OAAcqgD,GAAsB5nC,MAAO,CACvDmgB,QAAS,OACTiC,gBAAiBQ,EAAU,cAC3BtC,QAAS,OACTlY,OAAQ,aAAe0gC,EACvBG,aAAc,MACd7sB,UAAW,OACXiE,IAAK,OACLngB,SAAU,OACVuK,WAAY,QAEblX,IAAAC,cAAA,OAAKE,UAAU,iBAEdH,IAAAC,cAAA,OAAK0L,MAAM,KAAKD,OAAO,KAAKm/B,QAAQ,YAAYC,KAAK,OAAOC,MAAM,8BACjE/qC,IAAAC,cAAA,QAAMs1B,EAAE,g8BAAg8BuV,KAAMxc,IAC98BtuB,IAAAC,cAAA,QAAMs1B,EAAE,iZAAiZuV,KAAMxc,IAC/ZtuB,IAAAC,cAAA,QAAMs1B,EAAE,uMAAuMuV,KAAMxc,MAGvNtuB,IAAAC,cAAA,OAAKE,UAAW,oBAAsBkN,GACrCrN,IAAAC,cAAA,QAAME,UAAU,gBAAgBsM,MAAO,CAAEoD,MAAOylC,IAActoC,QAOpDJ,O,iCCrEf,gGAwgBe+oC,IAxfW/2C,IAAW,IAADg3C,EACnC,MAAM,EAAEr1C,EAAC,KAAE+f,GAAS9f,cACpB,IAAIq1C,EAAqD,QAA9BD,EAAGh3C,EAA0B,0BAAC,IAAAg3C,KACzD,MAAM/2C,EAAYC,eACXg3C,EAAUC,GAAe12C,mBAAS,KAClC22C,EAAcC,GAAkB52C,mBAAS,IACzCsG,EAAWC,GAAgBvG,oBAAS,IACpC62C,EAAeC,GAAoB92C,oBAAS,IAC5C+2C,EAAmBC,GAAwBh3C,oBAAS,IAEpDi3C,EAAUC,GAAel3C,mBAAST,EAAgB,WAClDuL,EAAOqsC,GAAYn3C,mBAAS,iBAC5Bo3C,EAASC,GAAcr3C,oBAAS,GACjC8d,EAAIne,YAAaC,GAAUA,EAAMC,SAASie,IAIzCw5B,EAAUl3B,GAAepgB,mBAFL,KAGpBrB,EAAU44C,GAAev3C,mBAAS,cACnCw3C,EAAiB31C,iBAAOtC,EAAM03C,UAE9BQ,EAAsB51C,iBAAO,MAC7BnC,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDg4C,EAAUC,GAAe33C,sBAEzB43C,EAAcC,GAAmB73C,mBAAS,GAmHjDG,eAAe23C,IACd,GAAIxxC,EACH,OAGD,IAAIyxC,EAAe7tC,SAAS8tC,eAAe,aAE3C,MAAMC,EAAeF,EAAaG,aAC5BC,EAAYtvB,KAAKoL,IACtB8jB,EAAaK,aACbL,EAAaM,aACbN,EAAaG,cAGRI,EAAeL,EAAepvB,KAAKC,KAAKivB,EAAaQ,WAM3D,GAJIxB,GAAqBgB,EAAaQ,UAAY,GACjD/4C,EAAUqe,aAAKk6B,EAAaQ,YAGzBR,EAAc,CACjB,MAAMS,EAAetuC,SAAS8tC,eAAe,aACvCS,EAAcD,EAAaJ,aAAeI,EAAaN,aACzCrvB,KAAKC,KAAK0vB,EAAaD,YAExBE,IAAgBnyC,GAC9BmwC,EAASv2C,OAASy2C,IACrB6B,EAAaE,SAAS,CAAElJ,IAAKiJ,EAAaE,SAAU,WACpDpyC,GAAa,GACbqyC,EAAYnC,SAGJ6B,GAAgBH,IAAc7xC,GACpCmwC,EAASv2C,OAASy2C,IACrBpwC,GAAa,GACbqyC,KAKHz4C,eAAe04C,IACd,GAAIvyC,EACH,OAIDwyC,EAA4B,qBAE5B,IAAIC,EAAY7uC,SAASqlB,cAAc,6BAkBvC,MAAM0oB,EAAec,EAAUb,aACzBC,EAAYtvB,KAAKoL,IACtB8kB,EAAUX,aACVW,EAAUV,aACVU,EAAUb,cAGLI,EAAeL,EAAepvB,KAAKC,KAAKiwB,EAAUR,WAQxD,GANIxB,GAAqBgC,EAAUR,UAAY,GAC9C/4C,EAAUqe,aAAKk7B,EAAUR,YAGPruC,SAAS8tC,eAAe,4BAEzB,CACjB,MAAMQ,EAAetuC,SAAS8tC,eAAe,cAE7C,GAAGQ,EAAa,CAChB,MAAMC,EAAcD,EAAaJ,aAAeI,EAAaN,aACzCrvB,KAAKC,KAAK0vB,EAAaD,YAQxBE,IAAgBnyC,GAC9BmwC,EAASv2C,OAASy2C,IACrB6B,EAAaE,SAAS,CAAElJ,IAAKiJ,EAAaE,SAAU,WACpDC,WAIQN,GAAgBH,IAAc7xC,GACpCmwC,EAASv2C,OAASy2C,GACrBiC,IAKH,SAASE,EAA4BE,GAEpC,IAAIC,EAAgB/uC,SAASqlB,cAAcypB,GAE3C,GAAGC,EAAc,CAGhB,IAOIC,EAPgBD,EAAcZ,aAAeY,EAAcE,UAOrB,IAOpB/tC,OAAOguC,QAAUhuC,OAAOiuC,YAAc,IAOtCH,GAClBzC,EAASv2C,OAASy2C,GAClBiB,EAAe,IACdtxC,IAEJuxC,EAAgBD,EAAe,GAC/BgB,MAcHz4C,eAAey4C,EAAYU,EAAMC,GAShC,GARGh6C,EAAMi6C,iBACJ/B,EAAmBztC,SACtBytC,EAAmBztC,QAAQyvC,QAI7BhC,EAAmBztC,QAAU,IAAI0vC,IAE5Bn6C,EAAM03C,SAAX,CAEA,GAAIJ,IAAkBvwC,EAAW,CAChCC,GAAa,GAEb,IAAIozC,EAAa9wB,KAAKC,KAAK2tB,EAASv2C,OAASo3C,GACzCsC,EAAwBpC,EAAextC,QAAQoQ,SAAS,KACxDlR,EACHsuC,EAAextC,SACd4vC,EAAwB,IAAM,KAC/B,SACAtC,EACA,UACAqC,EAAarC,EAGb,IAAI3uC,QAAqBC,IAAU1R,IAAIgS,EAAQ,CAAEqwC,OAAQ9B,EAAmBztC,QAAQuvC,SAGpF,GAAI5wC,EAAa/kB,IAAOC,kBAAmB,CAE1C,GADA0iB,GAAa,GACTixC,EAAextC,UAAYzK,EAAM03C,SACpCP,EAAY,IAAID,KAAa9tC,EAAa/kB,IAAOG,eAAeolB,OAChEytC,EAAejuC,EAAa/kB,IAAOG,eAAe4kC,YAC9CppB,EAAMmW,YACTnW,EAAMmW,WAAW,CAChBmkC,gBAAiB,IACbpD,KACA9tC,EAAa/kB,IAAOG,eAAeolB,MAC7B,aAGN,CACN5C,GAAa,GACb,IAAIuzC,EAAyBtC,EAAextC,QAAQoQ,SAAS,KACzD2/B,EACHvC,EAAextC,SACd8vC,EAAyB,IAAM,KAChC,SACAxC,EACA,UACAqC,EAAarC,EACd,IAAI0C,QAA4BpxC,IAAU1R,IAAI6iD,EAAe,CAAER,OAAQ9B,EAAmBztC,QAAQuvC,SAC9FS,EAAoBp2D,IAAOC,oBAC9B6yD,EAAY,IAAID,KAAauD,EAAoBp2D,IAAOG,eAAeolB,OACvEytC,EAAeoD,EAAoBp2D,IAAOG,eAAe4kC,aAG3D,IAAIowB,EAAY7uC,SAASqlB,cAAc,6BAEnCwnB,GAA4C,GAAvBgC,EAAUR,WAAkBz6B,EAAI,GACxD1S,OAAOstC,SAAS,EAAG56B,QAQQ,GAAzBve,EAAMi6C,iBACRh6C,EACCiL,aACC9B,EAAa/kB,IAAOC,kBACpBqd,EAAEyH,EAAa/kB,IAAOE,0BAgB3B4yD,EAAY,IACZE,EAAe,KAEhBrwC,GAAa,IAId,OA5WAtG,oBAAU,KACLP,EAAaQ,OAAS,GAK3BC,iBACCX,EAAUY,gBACV,MAAMs3C,EAAWr3C,eAAKX,EAAc,CAAEY,aAAc,uBAChDo3C,GACHC,EAAYD,EAASn3C,WAAWm3C,EAASl3C,cAE1ChB,EAAUiB,gBAVTC,IAEC,CAAChB,IAWJO,oBAAU,KACJg6C,IAAyB16C,EAAgB,YAC7Cm3C,EAAY,IACZS,EAAS53C,EAAa,OACtB23C,EAAY33C,EAAgB,YAE3B,CAACA,EAAgB,WAKpBU,oBAAU,KACT62C,EAAiBv3C,EAAqB,eACjCA,EAAqB,eAEzBm3C,EAAY,IAGTn3C,EAAyB,mBAC5By3C,EAAqBz3C,EAAyB,mBAG3CA,EAAe,SAClB83C,EAAW93C,EAAe,UAEzB,CAACA,EAAqB,gBAKzBU,oBAAU,KACLV,EAAoB,cACvBA,EAAM26C,aAAazD,IAGlB,CAACA,IAEJx2C,oBAAU,KACLV,EAAoB,cACvBA,EAAMo3C,aAAaA,IAElB,CAACF,EAAUE,IAKd12C,oBAAU,KACTmgB,EAAY7gB,EAAgB,SAAIA,EAAgB,SA1EtB,KA2ExB,CAACA,EAAgB,WAKpBU,oBAAU,KAAO,IAADk6C,EAAAC,EACf,IAAIC,EACM,QADQF,EAA4E,QAA5EC,EAAI77C,IAAgBi1B,OAAQlqB,GAAMA,EAAE7K,UAAY2M,OAAOL,SAAStM,UAAU,UAAE,IAAA27C,OAAA,EAAxEA,EACpBz7C,gBAAQ,IAAAw7C,IAAI,aACd5C,EAAY8C,GACPJ,IAAyBhD,IAC7B2B,KAEC,CAAC3B,EAAUJ,EAAeS,IAK7Br3C,oBAAU,KACT,GAAIu2C,EAAyB,CAEzBC,EAASv2C,QAAUo3C,GACrBO,EAAgB,GAMjBzsC,OAAOuM,iBAAiB,SAAUkhC,GAElC,MAAMd,EAAe7tC,SAAS8tC,eAAe,aAM7C,OAJID,GACHA,EAAapgC,iBAAiB,SAAUmgC,GAGlC,KACN1sC,OAAO6wB,oBAAoB,SAAU4c,GAGjCd,GACHA,EAAa9b,oBAAoB,SAAU6b,MAI5C,CAACrB,EAAUE,EAAcrwC,EAAWgxC,IAEvCr3C,oBAAU,KACT64C,EAA4B,sBAC1B,CAAClB,IAsJJ33C,oBAAU,KACTu3C,EAAextC,QAAUzK,EAAM03C,UAC7B,CAAC13C,EAAM03C,WAEVh3C,oBAAU,KACT24C,KACE,CAACpB,EAAextC,UAkGlBrJ,IAAAC,cAAAD,IAAAE,SAAA,KACqB,GAAnB41C,EAASv2C,SACRoG,GACgB,gBAAjB/G,EAAY,MACXoB,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAQ,KAAKzoB,UAAU,cACzBI,EAAE,sBAIa,GAAnBu1C,EAASv2C,SACRoG,GACgB,gBAAjB/G,EAAY,MACXoB,IAAAC,cAAAD,IAAAE,SAAA,KACGtB,EAA0B,mBAO3BoB,IAAAC,cAAA,MAAIE,UAAU,8BACbH,IAAAC,cAAA,MAAI2oB,QAAS,GACZ5oB,IAAAC,cAAA,OAAKE,UAAU,gBACdH,IAAAC,cAAA,OACCG,IAAK22C,EACL52C,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,OAAKE,UAAU,2DACbI,EAAE,qBAhBNP,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAQ,KAAKzoB,UAAU,cACzBI,EAAE,oBAuBW,GAAnBu1C,EAASv2C,QACTS,IAAAC,cAAAD,IAAAE,SAAA,KACE41C,EAAS78B,IAAI,CAACzQ,EAAMwiB,KACpBxiB,EAAKmxC,WAAa7D,EAASv2C,OACpBX,EAAMg7C,OAAOpxC,EAAMwiB,MAK5BrlB,GAAa8wC,GACbz2C,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAQ,KAAKzoB,UAAU,cAC1BH,IAAAC,cAAC4N,IAAO,CACP1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CAAEwB,cAAe,SAAUtC,MAAO,OAAQD,OAAQ,SAEzD1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,UAM3CoF,IAAc8wC,GACdz2C,IAAAC,cAAA,MACCE,UAAS,gBAAAnM,OAA8B,cAAZgK,EAA2B,kBAAoB,IAC1EyO,MAAO,CAAEmgB,QAAS,OAAQitB,eAAgB,WAE1C75C,IAAAC,cAAA,MACC2oB,QAAQ,KACRnc,MAAO,CACNoc,UAAW,SACXixB,WAAY,OACZC,cAAe,SAGhB/5C,IAAAC,cAAC4N,IAAO,CACP1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CAAEwB,cAAe,SAAUtC,MAAO,OAAQD,OAAQ,SAEzD1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,UAM3Cu1C,GACEA,EAASv2C,OAAS,GAClBu2C,EAASv2C,OAASy2C,GAClBiB,GAAgB,IACftxC,IACA8wC,GAEHz2C,IAAAC,cAAA,UACCE,UAAS,sBACTgL,QAASA,KACR+rC,EAAgB,IAEjBzqC,MAAO,CAAEsE,OAAQ,UAAWipC,WAAY,SAAUC,YAAa,SAAUnxB,UAAW,SAEnFvoB,EAAE,iB,gCCjgBR,6ZAYO,MAAM25C,EAAiB,eACjBC,EAAgB,cAChBC,EAAU,SACVC,EAAmB,gBACnBC,EAAoB,iBACpBC,EAAe,aAsDrB,SAASC,EACftyC,EACAC,EACA6hC,EACAjkB,EACAlC,GAEA,OAAOrkB,MAAO6W,EAAUokC,KACvBpkC,EAAS,CACRtJ,KAAMqtC,IAEP/jC,EAASyP,aAAcC,IACvB,IAAIzQ,EAAS,CACZpN,SAAUA,EACVC,SAAUA,EACV4d,cAAeA,EACfikB,iBAAkBA,EAClBnmB,8BAA+BA,GAGhC,IAAI7b,QAAqBC,IAAUiM,KAClCrwB,IAAOC,WACPqwB,YAAwBmB,IAGzB,GAAItN,EAAa/kB,IAAOC,kBAAmB,CAC1C,IAAI8d,EAAWgH,EAAa/kB,IAAOG,eAAyB,SAoB5D,OAnBIqnB,OAAOsF,oBACVtF,OAAOsF,mBAAmBC,YACzBC,KAAKC,UAAU,CACdC,OAAQ,QACRuqC,SAAU1yC,EAAa/kB,IAAOG,eAAyB,SACvDu3D,OAAQ35C,EAAiB,UAK5BqV,EAAS,CACRtJ,KAAMmtC,EACNl5C,SAAUA,IAEXqV,EAAS,CACRtJ,KAAM+O,IACN8F,gBAAiB5gB,EAA0B,kBAGrC,CACN+L,KAAMmtC,EACN7gC,QAAS6gC,GAOV,OAJA7jC,EAAS,CACRtJ,KAAMotC,EACN9gC,QAASrR,EAAa/kB,IAAOE,oBAEvB,CACN4pB,KAAMotC,EACN9gC,QAASrR,EAAa/kB,IAAOE,oBAS1B,MAAMy3D,EAAmB55C,IACxB,CACN+L,KAAMmtC,EACNl5C,SAAUA,IA2CC65C,EAAgBA,IACrBr7C,UACN,IAAIwI,QAAqBC,IAAUiM,KAAKrwB,IAAOE,mBAGzCikB,EACFyC,OAAOsF,oBACVtF,OAAOsF,mBAAmBC,YACzBC,KAAKC,UAAU,CAAEmJ,QAAS,0BAA2B6tB,KAAM,YAG7D7wB,EAAS,CACRtJ,KAAMqtC,IAGP/jC,EAAS,CACRtJ,KAAM+M,IACNlZ,OAAQ,GACRod,cAAe,EACf1c,eAAgB,CACfsM,qBAAsB,EACtB+B,mBAAoB,EACpB6N,gBAAgB,EAChBC,uBAAuB,EACvB/W,qBAAqB,EACrBgX,qBAAqB,EACrBC,mBAAoB,EACpBC,cAAe,MAUNk9B,EAAaA,IAClBt7C,UACN6W,EAAS,CACRtJ,KAAMqtC,KAmBIj0C,EAAYA,IACjB3G,MAAO6W,EAAUokC,KACvB,IApGkCz5C,EAoG9BgH,QAAqBC,IAAU1R,IAAI1S,IAAOG,mBAC1CgkB,EAAa/kB,IAAOC,mBACvBmzB,GAtGiCrV,EAsGJgH,EAAa/kB,IAAOG,eApG5C,CACN2pB,KAAMiN,IACNgE,cAAehd,EAASgd,cAAgBhd,EAAS+5C,aACjDz5C,eAAgB,CACfsM,qBAAuB5M,EAASgd,cAChCrO,mBAAoB3O,EAAS+5C,aAC7Bv9B,eAAgBxc,EAASwc,eACzBC,sBAAwBzc,EAASyc,sBACjC/W,oBAAsB1F,EAASg6C,8BAC/Bt9B,oBAAqB1c,EAAS0c,oBAC9BC,mBAAoB3c,EAAS2c,mBAC7BC,cAAe5c,EAAS4c,kBA0FxBvH,EAASukC,EAAgB5yC,EAAa/kB,IAAOG,kBAE5C4kB,EAAa/kB,IAAOC,mBACoB,gBAAzC8kB,EAAa/kB,IAAOE,kBAIpBkzB,EAASykC,KAFTzkC,EAvBK7W,UACN/L,aAAa0iB,WAAW,YAExBE,EAASvM,cAAoB,EAAO,iBAAiB,IACrDuM,EAAS,CACRtJ,KAAMqtC,Q,kRClOHhM,EAAQpuC,IAAMs8B,WAAW,CAAC19B,EAAOiS,KACtC,MAAM,KACL/H,EAAI,mBACJurC,EAAqB,GAAE,eACvB4G,EAAiB,GAAE,eACnBC,EAAiB,GAAE,KACnBnuC,EAAO,OAAM,MACbvO,EAAK,MACL28C,EAAK,YACL9L,EAAc,GAAE,OAChBj3B,EAAM,SACN/L,EAAQ,eACR+uC,EAAc,kBACdC,EAAiB,SACjBriC,EAAQ,aACRG,GAEGva,EADAu2C,EAAItjC,YACJjT,EAAKkT,IACH,EAAEvR,EAAC,KAAE+f,GAAS9f,cAEpB,OACCR,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAW,aAAek0C,GAC7B71C,GACAwB,IAAAC,cAAA,SAAOE,UAAW86C,GACjBj7C,IAAAC,cAAA,SAAIzB,IAGL48C,EACAp7C,IAAAC,cAAA,OAAKE,UAAU,oBACK,WAAlBi7C,GACAp7C,IAAAC,cAAA,OAAKE,UAAS,eAAAnM,OAAiBonD,IAC9Bp7C,IAAAC,cAAA,QAAME,UAAU,oBAAoBk7C,IAGtCr7C,IAAAC,cAAA,QAAAkR,OAAAC,OAAA,CACCtI,KAAMA,EACN+H,IAAKA,EACL9D,KAAMA,EACN5M,UAAW,gBAAkB+6C,EAC7B7L,YAAaA,EACbr2B,SAAUA,GACNm8B,IAEc,UAAlBiG,GACAp7C,IAAAC,cAAA,OAAKE,UAAS,sBACbH,IAAAC,cAAA,QAAME,UAAU,oBAAoBk7C,KAInChvC,EAYJrM,IAAAC,cAAA,OAAKE,UAAU,iBAAiBvB,EAAML,OAXtCyB,IAAAC,cAAA,QAAAkR,OAAAC,OAAA,CACCtI,KAAMA,EACN+H,IAAKA,EACL9D,KAAMA,EACN5M,UAAW,gBAAkB+6C,EAC7B7L,YAAaA,EACbr2B,SAAUA,EACVG,aAAcA,GACVg8B,KAMNgG,GAASn7C,IAAAC,cAAA,OAAKE,UAAU,QAAQsM,MAAO,CAAEoD,MAAO,MAAOkqC,cAAc,SAAWoB,GAChF/iC,EACEA,EAAOtP,IACP9I,IAAAC,cAAA,OAAKE,UAAU,iDACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,WAGN5L,IAAAC,cAAA,OAAKE,UAAU,4CACbwJ,YAAoByO,EAAOtP,GAAM7lB,IAAOE,mBACtCod,EAAE+6C,YAAqBljC,EAAOtP,KAC9BvI,EAAE6X,EAAOtP,GAAM7lB,IAAOE,qBAI3B,MAKSirD,O,oBChGf3vC,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,kD,oBCA3CD,EAAOC,QAAU,IAA0B,+C,oBCA3CD,EAAOC,QAAU,IAA0B,kD,oBCA3CD,EAAOC,QAAU,IAA0B,iD,8DCA3CD,EAAOC,QAAU,s5C,kBCAjBD,EAAOC,QAAU,kpK,oBCAjBD,EAAOC,QAAU,IAA0B,wC,iCCA3C,0HA8BA,MAAM68C,EAAqBjf,qBAAW,CAAC19B,EAAMiS,KAAS,IAADsV,EACrCzlB,cAAf,IACI4lB,EAAYC,cAChB,MAAM1nB,EAAYC,eACZ,EAAEyB,EAAC,KAAE+f,GAAS9f,eACbg7C,EAA6BC,GACnCp8C,mBAAS,IACHmnB,EAAmBC,GAAwBpnB,mBAAS,IACpDqnB,EAAoBC,GAAyBtnB,oBAAS,IACtDq8C,EAAWC,GAAgBt8C,mBAAS,KACpCunB,EAAaC,GAAkBxnB,oBAAS,IACxCu8C,EAA0BC,GAA+Bx8C,mBAAS,KAClE2nB,EAAWC,GAAgB5nB,oBACxB,OAATinB,QAAS,IAATA,GAAgB,QAAPH,EAATG,EAAWrnB,aAAK,IAAAknB,OAAP,EAATA,EAAkBe,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAC/C4mB,MAASC,QAAQ,aAEd00B,EAAeC,GAAoB18C,mBAAS,KAC5C28C,EAAiBC,GAAsB58C,oBAAS,IAEhD03C,EAAUC,GAAe33C,qBAC1BN,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,cA8B3DS,eAAe08C,IACd,IAAI1nC,QAAiBvM,IAAU1R,IAAI1S,IAAOwO,gCAC1C,GAAImiB,EAASvxB,IAAOC,kBAAmB,CACtC,IAAIi5D,EAAO3nC,EAASvxB,IAAOG,eAC3B24D,EAAiBI,GAGlBt1B,GAAe,GAuBhB,OA1DAvnB,oBAAU,KAgBT48C,KAdE,IAEH58C,oBAAU,KACLP,EAAaQ,OAAS,GAc3BC,iBACCX,EAAUY,gBACV,MAAMs3C,EAAWr3C,eAAKX,EAAc,CAAEY,aAAc,uBAChDo3C,GACHC,EAAYD,EAASn3C,WAAWm3C,EAASl3C,cAE1ChB,EAAUiB,gBAnBTC,IAEC,CAAChB,IAEJu+B,8BAAoBzsB,EAAK,MACvBurC,qBAAsBA,KACrBF,QA+CFl8C,IAAAC,cAAA,OAAKyJ,GAAG,cAEP1J,IAAAC,cAAA,OAAKE,UAAU,cACdH,IAAAC,cAAA,OAAKE,UAAU,sBACdH,IAAAC,cAAA,SAAOE,UAAU,uCAChBH,IAAAC,cAAA,aACCD,IAAAC,cAAA,UAECD,IAAAC,cAAA,UAAKM,EAAE,SACPP,IAAAC,cAAA,UAAKM,EAAE,iBAEPP,IAAAC,cAAA,UAAKM,EAAE,WACPP,IAAAC,cAAA,UAAKM,EAAE,mBAKTP,IAAAC,cAAA,aACE67C,GACwB,GAAxBA,EAAcv8C,OACbu8C,EAAc7iC,IAAI,CAACzQ,EAAMwM,KAEzB,IAAIqnC,EAAa,GACjB,OAAQ7zC,EAAgB,WACvB,KAAK,EACJ6zC,EACCr8C,IAAAC,cAAA,QAAME,UAAU,wCACdI,EAAE,YAGL,MACD,KAAK,EACJ87C,EACCr8C,IAAAC,cAAA,QAAME,UAAU,sCACdI,EAAE,cAMP,OACCP,IAAAC,cAAA,MAAIgV,IAAKD,GAERhV,IAAAC,cAAA,UACEuI,EAAkB,aAEpBxI,IAAAC,cAAA,UACE0N,YAAyBiC,WAAWpH,EAAK8zC,aAAc,GAAG,IAK5Dt8C,IAAAC,cAAA,UAAKo8C,GACLr8C,IAAAC,cAAA,UACEuI,EAAkB,gBAQpBoe,EACH5mB,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GACZ5oB,IAAAC,cAAA,OACCwM,MAAO,CACNoc,UAAW,SACXC,UAAW,OACXpc,aAAc,SAGf1M,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,SAGT1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,WAM5CP,IAAAC,cAAA,MAAIE,UAAU,yBACbH,IAAAC,cAAA,MAAI2oB,QAAS,GACZ5oB,IAAAC,cAAA,OAAKE,UAAU,gBACdH,IAAAC,cAAA,OACCG,IAAK22C,EACL52C,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,OAAKE,UAAU,2DACbI,EAAE,4BA+CCg7C,O,iCCjQf,8MAsrBegB,IAjqBQhrC,IAAe,IAADirC,EAAA,IAAb,OAACC,GAAOlrC,EAC9B,IAAI,EAAEhR,GAAMC,cACR3B,EAAYC,cAEhB,MAAOsH,EAAWC,GAAgBhH,mBAAS,KACpCq9C,EAAWC,GAAgBt9C,oBAAS,GACrCklB,EAAevlB,YAAaC,GAAUA,EAAMC,SAASqlB,cAErD5jB,EAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,QACnD7B,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,cACrDskB,EAAkBrkB,YAAaC,GAAUA,EAAMC,SAASmkB,iBACxDT,EAAa5jB,YAAaC,GAAUA,EAAMC,SAAS0jB,YACnDU,EAAuBtkB,YAAaC,GAAUA,EAAMC,SAASokB,uBAC5Ds5B,EAAWC,GAAgBx9C,mBAChC8nB,MAAS21B,SAAS,GAAI,SAASp1B,OAAO,eAGlCq1B,EAAU51B,MAAS21B,SAAS,GAAI,SAChCE,EAAU71B,MAAS21B,SAAS,IAAK,UAEhCG,EAAiBC,GAAsB79C,oBAAS,IAChD89C,EAAoBC,GAAyB/9C,mBAAS,IAC7D,IAAI,UAAE8G,GAAcnH,YAAaC,GAAUA,EAAM8B,WAEjD,MAAOgR,EAAoBC,GAAyB3S,oBAAS,IACtDg+C,EAAyBC,GAA8Bj+C,oBAAS,IAChE4S,EAAUC,GAAe7S,mBAAS,KAClC8S,EAAoBC,GAAyB/S,oBAAS,IACtDgT,GAAUC,IAAejT,oBAAS,IAElCkT,GAAiBC,IAAsBnT,mBAAS,IAChDoT,GAAoBC,IAAyBrT,mBAAS,IACtDsT,GAAUC,IAAevT,mBAASwT,WAAW,OAAW,OACxDC,GAAaC,IAAkB1T,oBAAS,IACxC2T,GAAQC,IAAa5T,mBAAS,IAE9B8T,GAAkBC,KADVlS,iBAAO,MAC0B7B,oBAAS,KAClDgU,GAAeC,IAAoBjU,sBACnCkU,GAAYC,IAAiBnU,oBAAS,IAEtCyY,GAAsBC,IAA2B1Y,oBAAS,IAC1Dk+C,GAAuBC,IAA4Bn+C,mBAAS,KAC5DoU,GAAqBC,IAA0BrU,mBAAS,KACxDo+C,GAAuBC,IAA4Br+C,mBAAS,KAC5Ds+C,GAA4BC,IAAiCv+C,oBAAS,IACtEqS,GAAamsC,IAAiBx+C,mBAAS,KAQ5C2Y,SAAU8lC,GACV5lC,aAAc6lC,GACd3lC,OAAQ4lC,GACR1lC,SAAU2lC,IACRzlC,eAGFR,SAAUC,GACVC,aAAcC,GACdC,OAAQC,GACRC,SAAUC,IACRC,cAEJlZ,oBAAU,KACJilB,GACF25B,MAED,CAAC35B,IAEJjlB,oBAAU,KAEJqB,GAAcwQ,OAAOw3B,KAAKhoC,GAAYpB,OAAS,GACjD4+C,MAED,CAACx9C,IAEJrB,oBAAU,KACJ6G,GACFi4C,MAED,CAACj4C,IAEJ7G,oBAAU,KACJP,EAAaQ,OAAS,GACxBQ,MAED,CAAChB,IAEJ,MAAMgB,GAAiBP,UACrB,MAAMmI,EAAQjI,eAAKX,EAAc,CAAEY,aAAc,UAC7CgI,GACFtB,EAAasB,EAAM/H,WAAW+H,EAAM9H,eA2BlCs+C,GAAiB3+C,UAEnBmK,YAAoBhJ,EAAW09C,kBACD,cAA9B19C,EAAW09C,iBAEP5B,GACFE,GAAa,GAGfO,GAAmB,KAEnBA,GAAmB,GACnBP,GAAa,KAIXyB,GAAuB5+C,UAC3B,IACE,IAAIwI,QAAqBC,IAAU1R,IACjC1S,IAAOwE,wCAET,GAAI2f,EAAa/kB,IAAOC,kBAAmB,CACzC,IAAIo7D,EAAkB,GACtBt2C,EAAa/kB,IAAOG,eAAe61B,IAAKslC,IACtCD,EAAgB9zC,KAAK,CACnBhM,MAAO+/C,EAAYC,SAAW,MAAQD,EAAYE,cAClDlgD,MAAOggD,EAAY70C,GACnBg1C,OAAQH,EAAYG,OACpB7lC,kBAAmB0lC,EAAY1lC,kBAC/B8lC,OAAQJ,EAAYE,cACpBD,SAAUD,EAAYC,SACtBjW,UAAWgW,EAAYhW,cAM3B6U,EAAqC,OAAfkB,QAAe,IAAfA,OAAe,EAAfA,EAAkB,KAG1C,MAAOj2B,GACPxpB,EAAUiL,cAAoB,EAAOue,MAuEzC,MAAMu2B,GAAkBp/C,MAAOgJ,EAAMyO,KAEnC3E,IAAY,GACZS,IAAe,GACfP,GAAmB,GAGnBR,GAAsB,IAqFlBksC,GAA2B1+C,UAC/B,IAAIwI,QAAqBC,IAAU1R,IAAI1S,IAAO2O,+BAC9C,GAAIwV,EAAa/kB,IAAOC,kBAAmB,CACzC,IAAIq6D,EAAwBv1C,EAAa/kB,IAAOG,eAChDo6D,GAAyBD,KAI7B,OACEv9C,IAAAC,cAAA,WACGy8C,GACC18C,IAAAC,cAAA,OAAKE,UAAU,kDACbH,IAAAC,cAACuL,IAAU,CACTK,cAAetL,EAAE,UACjBuL,eAAgBvL,EAAE,YAClB8K,MAAI,EACJW,QAAM,EACNC,YAAU,EACVC,gBAAgB,EAEhBC,iBAAiB,SACjBV,WACEzL,IAAAC,cAAA,OACEE,UAAU,2BACVC,IAAKgG,EACLwF,IAAI,gBAGRQ,cACEpM,IAAAC,cAACD,IAAME,SAAQ,KACbF,IAAAC,cAAA,OAAKE,UAAU,gCACbH,IAAAC,cAAA,UACEE,UAAU,6BACVgL,QAASA,IAAMwxC,GAAa,IAE3Bp8C,EAAE,UAELP,IAAAC,cAAA,UACEE,UAAU,2DACVgL,QAASA,KAAQtM,EAAUylB,cAAkB,IAAQq4B,GAAa,KAEjEp8C,EAAE,gBAOXP,IAAAC,cAAA,QAAME,UAAU,gCACbI,EAAE,0BAELP,IAAAC,cAAA,OAAKE,UAAU,0BACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OACEG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGR5L,IAAAC,cAAA,WACED,IAAAC,cAAA,KAAGE,UAAU,sCACVI,EAAE,iCASjBP,IAAAC,cAACiN,IAAK,CACJxD,GAAG,kBACHvJ,UAAU,0BACVkN,iBAAkB,iEAClBF,MAAM,EACNC,OAAQmX,EACRhX,OAAQA,KACN1O,EAAUylB,cAAkB,MAG9BtkB,IAAAC,cAACwN,IAAW,KACVzN,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OACEkL,QAASA,KAEPtM,EAAUylB,cAAkB,MAI9BtkB,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWqe,UACjBxpB,UAAU,8BAGdH,IAAAC,cAAA,WAAMM,EAAE,gBAEVP,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OACEE,UAAU,wBACVgL,QAASA,IAAMtM,EAAUylB,cAAkB,KAE3CtkB,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,aAI/CH,IAAAC,cAACyN,IAAS,KACP/M,EACCX,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,OAAKE,UAAU,4BACbH,IAAAC,cAAA,QACE2Y,SAAUmlC,GAlVOv+C,MAAOgJ,EAAMyO,KAC5C,IAAI3B,EAAS,CAEXsnC,UAAWz1B,IAAOy1B,EAAW,cAAcl1B,OAAO,eAGpD,IAAI1f,QAAqBC,IAAUiM,KACjCrwB,IAAO2M,2BACPklB,YAAeJ,IAGbtN,EAAa/kB,IAAOC,oBACtB41B,aAAWja,GACXA,EACEiL,aACE9B,EAAa/kB,IAAOC,kBACpB8kB,EAAa/kB,IAAOE,oBAGxB0b,EAAUylB,cAAkB,QAiUhBtkB,IAAAC,cAAA,UACGM,EAAE,YAELP,IAAAC,cAAA,OAAKE,UAAU,+BACbH,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWuzC,KACjB1+C,UAAU,6BAEZH,IAAAC,cAAA,OAAKE,UAAU,QAAQQ,EAAWuH,WAGlCvH,IAAem+C,kBAAkB,OAAVn+C,QAAU,IAAVA,OAAU,EAAVA,EAAYo+C,eACjC/+C,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWuzC,KACjB1+C,UAAU,6BAEZH,IAAAC,cAAA,OAAKE,UAAU,QAAkB,OAAVQ,QAAU,IAAVA,OAAU,EAAVA,EAAYo+C,eAMvC9B,EAEIj9C,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,OAAKE,UAAU,0BAA0BsM,MAAqC,cAA9B9L,EAAW09C,iBAAiE,IAA9B19C,EAAW09C,gBAAwB,KAAO,CAAEtxB,QAAS,qBACjJ/sB,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW0zC,UACjB7+C,UAAU,6BAEmB,cAA9BQ,EAAW09C,iBAAiE,IAA9B19C,EAAW09C,gBACxDr+C,IAAAC,cAAA,OAAKE,UAAU,QAAQQ,EAAW09C,iBAElCr+C,IAAAC,cAACg/C,IAAU,CACTC,kBAAkB,EAClBC,QAASA,CAAC7P,EAAO8P,KACfvC,EACE11B,IAAOi4B,EAAOp4B,WAAWU,OAAO,gBAGpC23B,qBAAqB,EACrBxrD,OAAQ,CACNyrD,WAAY/+C,EAAE,SACdg/C,YAAah/C,EAAE,WAEjBi/C,eAAe,EACfC,MAAM,SACNC,gBAAiB,CAAEh0C,OAAQ,MAAOC,MAAO,OAAQohB,QAAS,oBAC1DiwB,QAASA,EACTD,QAASA,EACT/1B,UAAWG,MAAS21B,SAAS,GAAI,UAEjC98C,IAAAC,cAAA,SAAOE,UAAU,kDAAkD2I,KAAK,YAAYY,GAAG,YAAYqD,KAAK,OAAOsiC,YAAa9uC,EAAE,kBAAmBhC,MAAOq+C,MAI9J58C,IAAAC,cAAA,OAAKE,UAAU,sDACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OACEG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGR5L,IAAAC,cAAA,OAAKE,UAAU,4CAA4CI,EAAE,4BAKjEP,IAAAC,cAAA,OAAKE,UAAU,QACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW0zC,UACjB7+C,UAAU,6BAEZH,IAAAC,cAAA,OAAKE,UAAU,QAAQQ,EAAW09C,kBAI1Cr+C,IAAAC,cAAA,MAAIE,UAAU,QACXI,EAAE,oBAEJI,EACCX,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,OAAKE,UAAU,mDACbH,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWq0C,aACjBx/C,UAAU,kCAEW,QADrBq8C,EACD77C,EAAW8Q,mBAAW,IAAA+qC,IAAI,KACzB77C,EAAWi/C,eAAiBh9B,GAAc5iB,IAAAC,cAAA,OAC1CE,UAAU,kBACVgL,QAASA,KACPuI,GAAuB/S,EAAW8Q,aAClCosC,GAAgB,UAChBe,OAGDr+C,EAAE,kBAOXP,IAAAC,cAAC4/C,IAAQ,CAACn0C,OAAQ,GAAIo0C,UAAU,6BAA6BvK,eAAe,oCAG5E4H,GAAsB75B,GACpBtjB,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,MAAIE,UAAU,QACXI,EAAE,SAELP,IAAAC,cAAA,OAAKE,UAAU,+BACbH,IAAAC,cAAA,OAAKE,UAAU,QACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWuzC,KACjB1+C,UAAU,6BAEZH,IAAAC,cAAA,OAAKE,UAAU,QAAQg9C,EAAmBqB,WAG5Cx+C,IAAAC,cAAA,OAAKE,UAAU,QACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWy0C,aACjB5/C,UAAU,6BAEZH,IAAAC,cAAA,OAAKE,UAAU,QAAQg9C,EAAmBtkC,oBAE5C7Y,IAAAC,cAAA,OAAKE,UAAU,QACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWy0C,aACjB5/C,UAAU,6BAEZH,IAAAC,cAAA,OAAKE,UAAU,QAAQg9C,EAAmBwB,WAQnDt7B,GACCrjB,IAAAC,cAAA,WAEED,IAAAC,cAAA,MAAIE,UAAU,QACXI,EAAE,qBAGJg9C,IAAyBA,GAAsBh+C,OAAS,GACvDS,IAAAC,cAAA,OAAKyJ,GAAG,uBACL6zC,GAAsBtkC,IAAI,CAACoF,EAAMrJ,IAChChV,IAAAC,cAAA,OAAKE,UAAU,kDAAkDsM,MAAO,CAAEsgB,QAAS,aAAe9X,IAAKD,GACrGhV,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW00C,OACjB7/C,UAAU,kCAEZH,IAAAC,cAAA,OAAKE,UAAU,eACbH,IAAAC,cAAA,OAAKE,UAAU,gBACZke,EAAK5M,aACJ4M,EAAK4hC,UACLjgD,IAAAC,cAAA,OACEE,UAAU,kBACVgL,QAASA,KACPuI,GAAuB2K,EAAK5M,aAC5BosC,GAAgB,yBAChBe,OAGDr+C,EAAE,gBAITP,IAAAC,cAAA,OAAKE,UAAU,gBAAgBI,EAAE,kBAAkB,KAAG8d,EAAKxF,kBAAoBwF,EAAKxF,kBAAoB,UASnH0kC,IAAyBA,GAAsBh+C,OAAS,GACvDS,IAAAC,cAAA,OAAKE,UAAU,8DACbH,IAAAC,cAAA,UAAQ8M,KAAK,SAAS5M,UAAU,sBAAsBgL,QAASA,IAAMmyC,GAA2B,IAC7F/8C,EAAE,uBAQX08C,GACAj9C,IAAAC,cAAA,OAAKE,UAAU,6DACbH,IAAAC,cAAA,UAAQ8M,KAAK,SAAS5M,UAAU,wBAC7BI,EAAE,sBASjBP,IAAAC,cAAC4/C,IAAQ,CAACC,UAAU,6BAA6BvK,eAAe,sCAKtEv1C,IAAAC,cAACwX,IAAa,CACZjG,KAAM6rC,EACN1rC,QAASA,IAAM2rC,GAA2B,GAC1C1rC,WAAaqF,IA9UYzX,WAC7B89C,GAA2B,GAC3BY,MA6UMgC,MAIJlgD,IAAAC,cAACqR,IAAsB,CACrBE,KAAMO,EACNJ,QAASA,IAAMK,GAAsB,GACrCP,YAAagC,GACb/B,aAAcA,GACdE,WAAaqF,IAjWazX,WAC9BwS,GAAsB,GACtBksC,KAEiB,UAAdxsC,KACD/Q,EAAWi/C,eAAc,IA6VrBO,S,oQCreKC,MAlLWxhD,IACxB,IAAI,EAAE2B,GAAMC,cACR3B,EAAYC,cAChB,MAAOuhD,EAAcC,GAAmBjhD,sBACjCkhD,EAAmBC,GAAwBnhD,sBAC3CohD,EAAsBC,GAA2BrhD,sBACjD03C,EAAUC,GAAe33C,mBAAS,IACnCN,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,cAE3DO,oBAAU,MAgCVE,iBACEX,EAAUY,gBAEV,MAAMs3C,EAAWr3C,eAAKX,EAAc,CAAEY,aAAc,uBAChDo3C,GACFC,EAAYD,EAASn3C,WAAWm3C,EAASl3C,cAG3ChB,EAAUiB,gBAvCVC,GACA4gD,KACC,IAEH,MAAMA,EAAkCnhD,UACtC8gD,GAAgB,GAChB,IAAIM,QAAsB34C,IAAU1R,IAClC1S,IAAOkM,iCAGT,IAAI6wD,EAAc39D,IAAOC,kBAavB,MAAM09D,EAAc39D,IAAOE,kBAbe,CAE1C,MAAM09D,EAAoBhuB,iBAAO+tB,EAAc39D,IAAOG,eAAgB,CACpE09D,kBAAmB,IAEfC,EAAuBluB,iBAAO+tB,EAAc39D,IAAOG,eAAgB,CACvE09D,kBAAmB,IAGrBN,EAAqBK,GACrBH,EAAwBK,GAM1BT,GAAgB,IAgBlB,OACEtgD,IAAAC,cAAA,OAAKE,UAAU,uCACbH,IAAAC,cAAA,MAAIE,UAAU,wBACZH,IAAAC,cAAA,YAAOM,EAAE,QAAQ,IAAEA,EAAE,uBAEvBP,IAAAC,cAAA,OAAKE,UAAU,sCACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKE,UAAU,uCACbH,IAAAC,cAAA,OAAKE,UAAU,QACbH,IAAAC,cAAA,WAAMM,EAAE,aAGT8/C,EACCrgD,IAAAC,cAAA,OAAKE,UAAU,mBACbH,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,OACPD,OAAQ,OACRoB,OAAQ,WAIdyzC,GAAqBA,EAAkBhhD,OAAS,EAC9C0Z,cAAIsnC,EAAmB,CAACliC,EAAMrJ,IAE1BhV,IAAAC,cAAA,OAAKgV,IAAKD,EAAO7U,UAAS,QAAAnM,OAAUghB,EAAQ,IAAM,EAAI,OAAS,QAC7DhV,IAAAC,cAAA,OAAKE,UAAU,gBACbH,IAAAC,cAAA,OAAKG,IAAKie,EAAKhT,OACdgT,EAAKnW,UAERlI,IAAAC,cAAA,WAAMoe,EAAK2iC,OAAO93C,QAAQ,MAKhClJ,IAAAC,cAAA,OAAKE,UAAU,mBACZ42C,EACC/2C,IAAAC,cAAAD,IAAAE,SAAA,KAAEF,IAAAC,cAAA,OACAG,IAAK22C,EACL52C,UAAU,iBACVwL,MAAO,OACPC,IAAI,SACJ5L,IAAAC,cAAA,KAAGE,UAAU,OAAOI,EAAE,mBAA2BP,IAAAC,cAAC4N,IAAO,CACzD1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,OACPD,OAAQ,OACRoB,OAAQ,aAQxB9M,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKE,UAAU,uCACbH,IAAAC,cAAA,OAAKE,UAAU,QACbH,IAAAC,cAAA,WAAMM,EAAE,gBAET8/C,EACCrgD,IAAAC,cAAA,OAAKE,UAAU,mBACbH,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,OACPD,OAAQ,OACRoB,OAAQ,WAId2zC,GAAwBA,EAAqBlhD,OAAS,EACpD0Z,cAAIwnC,EAAsB,CAACpiC,EAAMrJ,IAE7BhV,IAAAC,cAAA,OAAKgV,IAAKD,EAAO7U,UAAS,QAAAnM,OAAUghB,EAAQ,IAAM,EAAI,OAAS,QAC7DhV,IAAAC,cAAA,OAAKE,UAAU,gBACbH,IAAAC,cAAA,OAAKG,IAAKie,EAAKhT,OACdgT,EAAKnW,UAERlI,IAAAC,cAAA,WAAMoe,EAAK2iC,OAAO93C,QAAQ,MAKhClJ,IAAAC,cAAA,OAAKE,UAAU,mBACZ42C,EACC/2C,IAAAC,cAAAD,IAAAE,SAAA,KAAEF,IAAAC,cAAA,OACAG,IAAK22C,EACL52C,UAAU,iBACVwL,MAAO,OACPC,IAAI,SACJ5L,IAAAC,cAAA,KAAGE,UAAU,OAAOI,EAAE,mBAA2BP,IAAAC,cAAC4N,IAAO,CACzD1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,OACPD,OAAQ,OACRoB,OAAQ,gB,iCC0RjBm0C,MAxbM1vC,IACgG,IAD/F,sBAAE2vC,EAAqB,6BAAEC,EAA4B,uBAAEC,EAAsB,oBAAEC,EAAmB,qBACtHC,EAAoB,YAAEC,EAAW,oBAAEC,EAAmB,sBAAEC,EAAqB,mBAAEC,EAAkB,SAAEx3C,GAAUqH,EAC7G,IAAI,EAAEhR,GAAMC,cACRC,EAAWC,cACX7B,EAAYC,eAEZ,UAAEqH,GAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAMJ,EAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,SAClDiD,EAAkBC,GAAuBzE,mBAAS,KAClDsE,EAAkBC,GAAuBvE,mBAAS,KAClDoE,EAAiBC,GAAsBrE,mBAAS,IAChDoD,EAAOC,GAAYrD,oBAAS,IAC5BwD,EAAaC,GAAkBzD,mBAAS,KACxC0D,EAAoBC,GAAyB3D,mBAAS,KACtDsiD,EAAyBC,GAA8BviD,oBAAS,IAChEgE,EAAwBC,GAA6BjE,oBAAS,IAC9DkC,EAAYC,GAAiBnC,mBAAS,KACtCoC,EAAOC,GAAYrC,mBAAS,IAC5BsC,EAAYC,GAAiBvC,mBAAS,IACtC0C,EAAiCC,IACtC3C,mBAAS,IACJ4C,GAAsBC,IAA2B7C,mBAAS,KAC1D8C,GAAaC,IAAkB/C,mBAAS,KACxCgD,GAAWC,IAAgBjD,mBAAS,KACpCwiD,GAAkBC,IAAuBziD,oBAAS,IAClDkF,GAAeC,IAAoBnF,mBAAS,IAC5C4D,GAAY8+C,IAAiB1iD,oBAAS,IACtCsD,GAAQC,IAAavD,mBAAS,KAC9BwC,GAASC,IAAczC,mBAAS,IAChC63B,GAAUC,IAAe93B,oBAAS,IAClCsG,GAAWC,IAAgBvG,oBAAS,IACpC2xC,GAAiBC,IAAsB5xC,sBACvC2iD,GAAYC,IAAiB5iD,mBAAS,IACvC6iD,GAAwBljD,YAAaC,GAAUA,EAAMC,SAASojB,iBAC7D6/B,GAAsBC,IAA2B/iD,oBAAS,IAC1DgjD,GAAeC,IAAoBjjD,mBAAS,KAC5CiI,GAAaC,IAAoBlI,oBAAS,IAC1CiJ,GAAci6C,IAAmBljD,mBAAS,IAC3CN,GAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDgG,GAAiBC,IAAsB3F,mBAAS,KAChD4F,GAAgBC,IAAqB7F,mBAAS,KAC9C4E,GAAiBC,IAAsB7E,mBAAS,KAChDmjD,GAAkBC,IAAuBpjD,oBAAS,GACnD2kB,GAAwBhlB,YAC3BC,GAAUA,EAAMC,SAAS8kB,sBAYtB0+B,GATaC,EAACC,EAAKC,KACvB,MAAMrlB,EAAS,GACf,IAAK,IAAIxS,EAAI,EAAGA,EAAI43B,EAAIrjD,OAAQyrB,GAAK63B,EACnCrlB,EAAOhzB,KAAKo4C,EAAIjqC,MAAMqS,EAAGA,EAAI63B,IAE/B,OAAOrlB,GAIMmlB,CAAWX,GADJ,GAGhBjQ,GAAW,CACf+Q,MAAM,EACNC,UAAU,EACVC,MAAO,IACPC,aAAcP,GAAOnjD,OAAS,EAAI,EAAI,EACtC2jD,eAAgB,EAChBC,UAAU,EACVC,iBAAiB,EACjBC,UAAU,EACVC,cAAe,IACfC,QAAQ,EACRC,WAAY,CACV,CAEEC,WAAY,IACZ1R,SAAU,CACR5xC,UAAW,GAEXujD,eAAe,EAEfT,aAAc,EACdC,eAAgB,EAChBC,UAAU,EACVC,iBAAiB,EACjBC,UAAU,EACVC,cAAe,IACfC,QAAQ,MAOhBjkD,oBAAU,MA0NVE,iBACEX,EAAUY,gBAEV,MAAMgyC,EAAsB5e,iBAAO9zB,GAAesM,GACnB,sBAAtBA,EAAK1L,cAEY,IAAD+xC,EAAAC,EAArBF,GACFR,IAAyC,QAAtBS,EAAAD,EAAoB,UAAE,IAAAC,OAAA,EAAtBA,EAAwB9xC,aAAiC,QAAxB+xC,EAAEF,EAAoB,UAAE,IAAAE,OAAA,EAAtBA,EAAwB9xC,eAGhFhB,EAAUiB,gBAnOVC,GACA4jD,MAEC,IAGH,MAAMA,GAAYnkD,UAChB,IAAIokD,QAA2B37C,IAAU1R,IACvC1S,IAAOkN,kBAET,GAAI6yD,EAAmB3gE,IAAOC,kBAAmB,CAE/C,IAAI2gE,EAAeD,EAAmB3gE,IAAOG,eAEzCygE,EAAatkD,OAAS,IAAM,GAC9BskD,EAAaC,MAEf7B,GAAc4B,GAGhB1sB,IAAY,IAGd33B,eAAesI,GACbkC,EACA+5C,EACAtgD,EACAugD,EACAC,EACAxhD,EACAE,EACAE,EACAgC,EACA9B,EACAqE,EACAi7C,EACA/5C,EACA47C,GA4BE,GA1BFtgD,EAAoBogD,GACpBtgD,EAAmBD,GACnBf,EAASD,GACTK,EAAeD,GACfG,EAAsBD,GACtB6+C,EAA2BmC,GAC3BzgD,EAA0B2gD,GAC1B7B,GAAwBh7C,GACxBk7C,GAAiBD,GACjBE,GAAgBj6C,GAEA,QAAZ4B,IACFg3C,EAAsBz9C,GACtB09C,EAA6B8C,GAC7B7C,EAAuB4C,GACvB3C,EAAoBr3C,GACpBs3C,EAAqB4C,GACrB3C,EAAYhhD,EAAE,SACdihD,EAAoBa,GACpBZ,EAAsBr6C,GACtBs6C,EAAmBp5C,IAGjB7F,IAAUkH,YAAoBhH,IAChCC,GAAUD,IAEU,IAAhBohD,EACA,GAAkB,GAAdE,EACAz/C,GAAiBwF,GACjBnL,EAAU+L,cAAkB,IAC5B63C,IAAoB,QAEpB,GAAIr7C,EAAiB,CACjB,IAAI6C,EAAiB,CAAC,CAClBC,SAAU3J,EAAE,QACZ6J,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,QAGzBsL,EAAOlU,IAAOH,sBAAwB,WAAa8T,EACvDvJ,EAAS+J,KAAKD,EAAM,CAChBN,eAAgBA,SAGpBQ,OAAOC,KACH7mB,IAAOgL,WACP,WACAmb,EAAS,YAAcS,OAAOE,YAAc,IAAM,IAAM,WAMpE,GAAkB,GAAds5C,EACA,GAAqB,UAAjB5B,GAA8Br+B,GAK7B,CACDpe,IAAa,GACb,IAAIoC,QAAqBC,IAAU1R,IAC/B1S,IAAOgF,sCACP,oBACA4a,GAEJ,GAAIuE,EAAa/kB,IAAOC,kBAAmB,CACvCse,EAAcwG,EAAa/kB,IAAOG,gBAElC,IAAI+gE,EAAkB,GAClBC,EAAgB,GAEpBp8C,EAAa/kB,IAAOG,eAAe61B,IAAKorC,IACpC,IAAIC,EAAS,CACT9lD,MAAO6lD,EAAQ/lC,YACf/f,MAAO8lD,EAAQE,UACfvD,OAAQpxC,WAAWy0C,EAAQ/mC,UAE3B+mC,EAAQE,YAAc5mD,IACtBwmD,EAAgB35C,KAAK85C,GACdD,EAAQE,YAAc9gD,IAC7B/B,EAAS2iD,EAAQ5iD,OACjBG,EAAcyiD,EAAQ1iD,YACM,aAAxB0iD,EAAQ/lC,aACRxc,GAAWuiD,EAAQxiD,SAEvBG,GAAmCqiD,EAAQ/mC,SACN,OAAjC+mC,EAAQpiD,qBACRC,GAAwBmiD,EAAQpiD,sBAEhCC,GAAwB,IAE5BkiD,EAAc55C,KAAK85C,MAG3BliD,GAAe+hD,GACf7hD,GAAa8hD,GAIjBtC,IAAoB,GAoCpCtiD,eAAiCmE,GAC/B,IAAI4E,EAAS1kB,IAAO2J,uBAChBgb,EAAO,GACPR,QAAqBC,IAAU1R,IAAIgS,GAErCP,EAAa/kB,IAAOC,mBACpB8kB,EAAa/kB,IAAOG,eAAemc,OAAS,IAE5CiJ,EAAOR,EAAa/kB,IAAOG,eAAeyvC,OACvClqB,GAAMA,EAAE2V,cAAgB3a,GAGvB6E,EAAKjJ,OAAS,GAChB2E,GAAmBsE,EAAK,KAhDdH,CAAkB27C,GAClBx/C,GAAiBwF,GACjB+3C,IAAc,GAmD9BviD,eAAmCiE,GAGjC,GAFAuB,GAAmB,IACnBE,GAAkB,IACK,KAAnBzB,IAA2BkG,YAAoBlG,GAAkB,CACnE,IAAIuE,QAAqBC,IAAU1R,IACjC1S,IAAOwI,6CACP,oBACAoX,GAEEuE,EAAa/kB,IAAOC,mBACoB,MAAtC8kB,EAAa/kB,IAAOG,gBACyB,MAA3C4kB,EAAa/kB,IAAOG,eAAeolB,OACrCxD,GACEgD,EAAa/kB,IAAOG,eAAeolB,KAAsB,iBAE3DtD,GACE8C,EAAa/kB,IAAOG,eAAeolB,KAAqB,kBAlEpDZ,CAAoBoC,GAEhBO,EAAOlU,IAAO1B,gBACd,SACAqvD,EACA,OACAh6C,EACA,eACArJ,EAA4B,gBAC5B,aACA0hD,EARJ,IAmBIpjD,EAAQ,CACRgL,eAVAA,EAAiB,CAAC,CAClBC,SAAU3J,EAAE,QACZ6J,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,OAC1B,CACCiL,SAAU85C,EACV55C,SAAUG,KAOd9J,EAAS+J,KAAKD,EAAMtL,GACpB2G,IAAa,QA3EbpB,GAAiBwF,GACjBnL,EAAU+L,cAAkB,IAC5B63C,IAAoB,GAuIpC,OACEziD,IAAAC,cAAAD,IAAAE,SAAA,KACGg3B,GACCl3B,IAAAC,cAAAD,IAAAE,SAAA,KACG8hD,IAAcA,GAAWziD,OAAS,GACjCS,IAAAC,cAAA,OAAKE,UAAU,gCACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,MAAIE,UAAU,+BACZH,IAAAC,cAAA,OAAKE,UAAU,MAAMC,IAAKgX,EAAQ,OAAuC7W,EAAE,UAAU,IAACP,IAAAC,cAAA,YAAOM,EAAE,cAEjGP,IAAAC,cAAA,OAAKE,UAAU,eACbH,IAAAC,cAACukD,IAAWzS,GACT2Q,GAAOzpC,IAAI,CAACwrC,EAAOzvC,IAClBhV,IAAAC,cAAA,OAAKgV,IAAKD,EAAO7U,UAAU,gBACxBskD,EAAMxrC,IAAI,CAACoF,EAAMrJ,IAChBhV,IAAAC,cAAA,OAAKgV,IAAKD,EAAO7U,UAAU,eACzBH,IAAAC,cAAC+zC,IAAa,CACZ5zC,IAAKie,EAAKgvB,MACVzhC,IAAKyS,EAAKC,YACV21B,YAAajD,KAGfhxC,IAAAC,cAAA,OAAKE,UAAU,oBACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKE,UAAU,SAASI,EAAE,YAAY,KAAG8d,EAAKC,aAC9Cte,IAAAC,cAAA,OAAKE,UAAU,YAAYke,EAAKnW,SAAS,IAAE3H,EAAE,MAAM,IAACP,IAAAC,cAAA,YAAOoe,EAAK2lC,UAAgB,IAAEzjD,EAAE,QACpFP,IAAAC,cAAA,OAAKE,UAAU,UAAU+hD,GAAuB7jC,EAAKqmC,QAAQx7C,QAAQ,KAEvElJ,IAAAC,cAAA,OAAKE,UAAU,cAAcgL,QAASA,KAChChF,GACFrC,EAAoBua,EAAuB,mBACpB,IAAnBA,EAAa,SACf+jC,GAAwB/jC,EAAsB,iBAC1CA,EAAsB,gBACxBvW,GACEuW,EAAS,GACTA,EAAkB,YAClBA,EAAsB,gBACtBA,EAAe,SACfA,EAA8B,wBAC9BA,EAAY,MACZA,EAAa,OACbA,EAAkB,YAClBA,EAAkB,YAClBA,EAAyB,mBACzBA,EAAsB,gBACtBA,EAAoB,cACpBA,EAAmB,aACnBA,EAAuB,mBAGzBza,EAAoBya,EAAe,UACnC3a,EAAmB2a,EAAsB,iBACzC3b,EAAS2b,EAAY,OACrBvb,EAAeub,EAAkB,aACjCrb,EAAsBqb,EAAyB,oBAC/CujC,EAA2BvjC,EAAkB,aAC7C/a,EAA0B+a,EAAiB,YAC3C+jC,GAAwB/jC,EAAsB,iBAE1C5b,IAAUkH,YAAoBhH,KAChCC,GAAUyb,EAAa,QAEzB7Z,GAAiB6Z,EAAS,IAC1B9W,IAAiB,MAKrB1I,EAAU0iB,cAAc,MAK1BvhB,IAAAC,cAAA,OACEE,UAAU,oBACVwL,MAAM,KACND,OAAO,KACPm/B,QAAQ,YACRE,MAAM,8BAEN/qC,IAAAC,cAAA,QAAMs1B,EAAE,ufAgBlCv1B,IAAAC,cAAC4/C,IAAQ,CAAC1/C,UAAU,OAAOuL,OAAQ,IAAKo0C,UAAU,6BAA6BvK,eAAe,oCAGnF,QAAZrrC,GACClK,IAAAC,cAACI,IAAc,CACboD,gBAAiBA,EACjBJ,uBAAwBA,EACxBM,iBAAkBA,EAClBY,cAAeA,GACfV,iBAAkBA,EAClBsG,MAAO5J,EAAE,QACTsI,SAAUw5C,GACVj7C,gBAAiB+6C,GACjB75C,aAAcA,OChNTq8C,MAnOQA,KACrB,IAAI,EAAEpkD,GAAMC,cACRC,EAAWC,cACX7B,EAAYC,eAEZ,UAAEqH,GAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAO6jD,EAAeC,GAAoBxlD,oBAAS,IAC5CylD,EAAgBC,GAAqB1lD,mBAAS,KAC9C2lD,EAAsBC,GAA2B5lD,mBAAS,KAC1D6lD,EAAeC,GAAoB9lD,oBAAS,GACnD,IAAI+lD,EAAkBpmD,YAAaC,GAAUA,EAAMC,SAAS0B,OAAOu/B,cACnE,MAAMphC,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDsmD,EAAOC,GAAYjmD,oBAAS,IAC5BkmD,EAAOC,GAAYnmD,oBAAS,GACnC,IAAIomD,EAAWvkD,mBACXwkD,EAAWxkD,mBACf,MACOykD,EAAaC,GAAkBvmD,mBAAS,IAwC/C,OATAC,oBAAU,MA5BVE,iBACEX,EAAUY,gBAEV,MAAMomD,EAAqBnmD,eAAKX,EAAc,CAAEY,aAAc,oBAC1DkmD,GACFd,EAAkBc,EAAmBjmD,WAAWimD,EAAmBhmD,cAGrE,MAAMimD,EAA2BpmD,eAAKX,EAAc,CAAEY,aAAc,2BAChEmmD,GACFb,EAAwBa,EAAyBlmD,WAAWkmD,EAAyBjmD,cAEvFhB,EAAUiB,gBAiBVC,IAEC,IAEHT,oBAAU,KACRsmD,EAAen7C,OAAOL,SAASmG,OApCJ,kBAoCoC60C,IAC9D,CAACA,IAGFplD,IAAAC,cAAAD,IAAAE,SAAA,KACGiG,GACCnG,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKE,UAAU,mBAAkB,QAGhCykD,GACC5kD,IAAAC,cAAA,OAAKE,UAAU,4BACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OACEG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,UAGR5L,IAAAC,cAAA,WACED,IAAAC,cAAA,KAAGE,UAAU,4BACVI,EAAE,oBAMbP,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAAA,OAAKE,UAAU,yBACZ2kD,EAEC9kD,IAAAC,cAAA,OACEG,IAAK0kD,EACL3kD,UAAU,2BACVyL,IAAI,aAGN5L,IAAAC,cAAA,OACEG,IAAKgX,EAAQ,KACbjX,UAAU,2BACVyL,IAAI,aAGPo5C,EAEChlD,IAAAC,cAAA,OACEG,IAAK4kD,EACL7kD,UAAU,kBACVyL,IAAI,aAGN5L,IAAAC,cAAA,OACEG,IAAKgX,EAAQ,KACbjX,UAAU,kBACVyL,IAAI,aAGR5L,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAAA,OAAKE,UAAU,YACbH,IAAAC,cAAA,OAAKE,UAAU,wBACZI,EAAE,qBAELP,IAAAC,cAAA,OAAKE,UAAU,0BACbH,IAAAC,cAAA,OAAKE,UAAU,QAAQ0Q,IAAK40C,GAEzBP,EACCllD,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,OACPD,OAAQ,UAIZ05C,GAGJplD,IAAAC,cAAA,OAAKE,UAAU,yBACZklD,EAAQ9kD,EAAE,UAAaP,IAAAC,cAACmL,IAAK,CAC5BC,KAAMC,IAAWy6C,KACjB56C,QAASA,KAAM66C,OAxGnB3nC,EAwG4BonC,EAvG5C5tB,UAAUouB,UAAUC,UAAU7nC,EAAKhV,QAAQ88C,WAE3Cb,GAAS,QACTzyC,WAAW,IAAMyyC,GAAS,GAAQ,CAvBb,MAmBLjnC,OAyGIle,UAAU,aAKlBH,IAAAC,cAAA,OAAKE,UAAU,iBACbH,IAAAC,cAAA,OAAKE,UAAU,wBACZI,EAAE,qBAELP,IAAAC,cAAA,OAAKE,UAAU,0BACbH,IAAAC,cAAA,OAAKE,UAAU,QAAQ0Q,IAAK60C,GACzBR,EACCllD,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,OACPD,OAAQ,UAIZi6C,GAGJ3lD,IAAAC,cAAA,OAAKE,UAAU,yBACZolD,EAAQhlD,EAAE,UAAaP,IAAAC,cAACmL,IAAK,CAC5BC,KAAMC,IAAWy6C,KACjB56C,QAASA,KAAMi7C,OAjIlB/nC,EAiI4BqnC,EAhI7C7tB,UAAUouB,UAAUC,UAAU7nC,EAAKhV,QAAQ88C,WAE3CX,GAAS,QACT3yC,WAAW,IAAM2yC,GAAS,GAAQ,CA7Bb,MAyBJnnC,OAkIGle,UAAU,aAMlBH,IAAAC,cAAA,OAAKE,UAAU,uCACbH,IAAAC,cAAA,OACEE,UAAU,mBACVsM,MAAO,CAAEsE,OAAQ,WACjB5F,QAASA,KAELtM,EADEsH,EACQib,cAAsB,GAEtBG,cAAc,MAI3BhhB,EAAE,UAELP,IAAAC,cAAA,OACEE,UAAU,mBACVgL,QAASA,KAELtM,EADEsH,EACQ+a,cAAiB,GAEjBK,cAAc,KAG5B9U,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE,cAGPP,IAAAC,cAAA,OACEE,UAAU,mBACVgL,QAASA,KACHhF,EACF1F,EAAS+J,KAAKnU,IAAOnB,eAErB2J,EAAU0iB,cAAc,KAG5B9U,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE,oB,QC0kBN8lD,MA1xBM90C,IACgG,IAD/F,sBAAE2vC,EAAqB,6BAAEC,EAA4B,uBAAEC,EAAsB,oBAAEC,EAAmB,qBACtHC,EAAoB,YAAEC,EAAW,oBAAEC,EAAmB,sBAAEC,EAAqB,mBAAEC,EAAkB,SAAGx3C,GAASqH,EAC7G,IAAI,EAAEhR,GAAMC,cACRC,EAAWC,cACX7B,EAAYC,cAGhBwnD,IAAWC,IAAI,CAACC,MAChB,IAAI,UAAErgD,GAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAMJ,EAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,SAElD6lD,EAAoBC,GAAyBrnD,sBAC7CsnD,EAAgBC,GAAqBvnD,mBAAS,KAC9Cuf,EAAOioC,GAAYxnD,mBACxBL,YAAaC,GAAUA,EAAMC,SAAS0f,SAEjC/a,EAAkBC,GAAuBzE,mBAAS,KAClDsE,EAAkBC,GAAuBvE,mBAAS,KAClDoE,EAAiBC,GAAsBrE,mBAAS,IAChDoD,EAAOC,GAAYrD,oBAAS,IAC5BwD,EAAaC,GAAkBzD,mBAAS,KACxC0D,EAAoBC,GAAyB3D,mBAAS,KACtDsiD,EAAyBC,GAA8BviD,oBAAS,IAChEgE,EAAwBC,GAA6BjE,oBAAS,IAC9DkC,EAAYC,IAAiBnC,mBAAS,KACtCoC,GAAOC,IAAYrC,mBAAS,IAC5BsC,GAAYC,IAAiBvC,mBAAS,IACtC0C,GAAiCC,IACtC3C,mBAAS,IACJ4C,GAAsBC,IAA2B7C,mBAAS,KAC1D8C,GAAaC,IAAkB/C,mBAAS,KACxCgD,GAAWC,IAAgBjD,mBAAS,KACpCwiD,GAAkBC,IAAuBziD,oBAAS,IAClDkF,GAAeC,IAAoBnF,mBAAS,IAC5C4D,GAAY8+C,IAAiB1iD,oBAAS,IACtC0F,GAAiBC,IAAsB3F,mBAAS,KAChD4F,GAAgBC,IAAqB7F,mBAAS,KAC9C4E,GAAiBC,IAAsB7E,mBAAS,KAChDsD,GAAQC,IAAavD,mBAAS,KAC9BwC,GAASC,IAAczC,mBAAS,IAEhCsG,GAAWC,KADC5G,YAAaC,GAAUA,EAAMC,SAAS4nD,YACvBznD,oBAAS,IACrCN,GAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDqH,GAAWC,IAAgBhH,sBAC3B0nD,GAAYC,IAAiB3nD,sBAC7BiqB,GAAUC,IAAelqB,sBACzBF,GAAMC,IAAWC,sBACjB03C,GAAUC,IAAe33C,sBACzB2lD,GAAsBC,IAA2B5lD,mBAAS,KAC1D2xC,GAAiBC,IAAsB5xC,sBACvC8iD,GAAsBC,IAA2B/iD,oBAAS,IAC1DgjD,GAAeC,IAAoBjjD,mBAAS,KAC5CiJ,GAAci6C,IAAmBljD,mBAAS,KAC1CylD,GAAgBC,IAAqB1lD,mBAAS,KAC9C63B,GAAUC,IAAe93B,oBAAS,IAClCiI,GAAaC,IAAoBlI,oBAAS,IAE1C4nD,GAA2BC,IAAgC7nD,mBAAS,KACpEwF,GAAaC,IAAkBzF,oBAAS,GAEzCokB,GAA6BzkB,YAAaC,GAAUA,EAAMC,SAASukB,6BAClEnE,GAAU6nC,IAAe9nD,mBAC9BL,YAAaC,GAAUA,EAAMC,SAASogB,YAEjCuxB,GAAkBC,IAAuBzxC,mBAAS,GACnDykB,GAAmB9kB,YACtBC,GAAUA,EAAMC,SAAS4kB,kBAEtBE,GAAwBhlB,YAC3BC,GAAUA,EAAMC,SAAS8kB,sBAEtBojC,GAAelmD,iBAAO,MAyM5B1B,eAAesI,GACbkC,EACA+5C,EACAtgD,EACAugD,EACAC,EACAxhD,EACAE,EACAE,EACAgC,EACA9B,EACAqE,EACAi7C,EACA/5C,EACA47C,GA8BA,GA5BAtgD,EAAoBogD,GACpBtgD,EAAmBD,GACnBf,EAASD,GACTK,EAAeD,GACfG,EAAsBD,GACtB6+C,EAA2BmC,GAC3BzgD,EAA0B2gD,GAC1B7B,GAAwBh7C,GACxBk7C,GAAiBD,GACjB79C,GAAiBwF,GACjBu4C,GAAgBj6C,GAChBsxB,QAAQC,IAAIwoB,GAEI,QAAZn4C,IAAsC,IAAhB65C,IACxB7C,EAAsBz9C,GACtB09C,EAA6B8C,GAC7B7C,EAAuB4C,GACvB3C,EAAoBr3C,GACpBs3C,EAAqB4C,GACrB3C,EAAYhhD,EAAE,SACdihD,EAAoBa,GACpBZ,EAAsBr6C,GACtBs6C,EAAmBp5C,IAGjB7F,IAAUkH,YAAoBhH,IAChCC,GAAUD,IAEQ,IAAhBohD,EACF,GAAkB,GAAdE,EACFplD,EAAU+L,cAAkB,SAE5B,GAAIxD,EAAiB,CACnB,IAAI6C,EAAiB,CAAC,CACpBC,SAAU3J,EAAE,QACZ6J,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,QAGvBsL,EAAOlU,IAAOH,sBAAwB,WAAa8T,EACvDvJ,EAAS+J,KAAKD,EAAM,CAClBN,eAAgBA,SAGlB1C,IAAiB,QAKrB,GAAkB,GAAd08C,EAAqB,CACvB,GAAoB,UAAjB5B,IAA8Br+B,GAa7B,MAZgB,QAAZ9Z,IACAg3C,EAAsBz9C,GACtB09C,EAA6B8C,GAC7B7C,EAAuB4C,GACvB3C,EAAoBr3C,GACpBs3C,EAAqB4C,GACrB3C,EAAYhhD,EAAE,SACdihD,EAAoBa,GACpBZ,EAAsBr6C,GACtBs6C,EAAmBp5C,SAEvBzJ,EAAU+L,cAAkB,IAIhChF,IAAa,GAEbk8C,IAAoB,GA2E1BtiD,eAAiCmE,GAC/B,IAAI4E,EAAS1kB,IAAO2J,uBAChBgb,EAAO,GACPR,QAAqBC,IAAU1R,IAAIgS,GAErCP,EAAa/kB,IAAOC,mBACpB8kB,EAAa/kB,IAAOG,eAAemc,OAAS,IAE5CiJ,EAAOR,EAAa/kB,IAAOG,eAAeyvC,OACvClqB,GAAMA,EAAE2V,cAAgB3a,GAGvB6E,EAAKjJ,OAAS,GAChB2E,GAAmBsE,EAAK,KAvFxBH,CAAkB27C,GAClBx/C,GAAiBwF,GACjB+3C,IAAc,GA0FpBviD,eAAmCiE,GAGjC,GAFAuB,GAAmB,IACnBE,GAAkB,IACK,KAAnBzB,IAA2BkG,YAAoBlG,GAAkB,CACnE,IAAIuE,QAAqBC,IAAU1R,IACjC1S,IAAOwI,6CACP,oBACAoX,GAEEuE,EAAa/kB,IAAOC,mBACoB,MAAtC8kB,EAAa/kB,IAAOG,gBACyB,MAA3C4kB,EAAa/kB,IAAOG,eAAeolB,OACrCxD,GACEgD,EAAa/kB,IAAOG,eAAeolB,KAAsB,iBAE3DtD,GACE8C,EAAa/kB,IAAOG,eAAeolB,KAAqB,kBAzG9DZ,CAAoBoC,GAEhBO,EAAOlU,IAAO1B,gBAChB,SACAqvD,EACA,OACAh6C,EACA,eACArJ,EAA4B,gBAC5B,aACA0hD,EARF,IAmBIpjD,EAAQ,CACVgL,eAVEA,EAAiB,CAAC,CACpBC,SAAU3J,EAAE,QACZ6J,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,OACxB,CACDiL,SAAU85C,EACV55C,SAAUG,KAOZ9J,EAAS+J,KAAKD,EAAMtL,GAEpB,IAAI+I,QAAqBC,IAAU1R,IACjC1S,IAAOgF,sCACP,oBACA4a,GAEF,GAAIuE,EAAa/kB,IAAOC,kBAAmB,CACzCse,GAAcwG,EAAa/kB,IAAOG,gBAElC,IAAI+gE,EAAkB,GAClBC,EAAgB,GAEpBp8C,EAAa/kB,IAAOG,eAAe61B,IAAKorC,IACtC,IAAIC,EAAS,CACX9lD,MAAO6lD,EAAQ/lC,YACf/f,MAAO8lD,EAAQE,UACfvD,OAAQpxC,WAAWy0C,EAAQ/mC,UAEzB+mC,EAAQE,YAAc5mD,IACxBwmD,EAAgB35C,KAAK85C,GACZD,EAAQE,YAAc9gD,IAC/B/B,GAAS2iD,EAAQ5iD,OACjBG,GAAcyiD,EAAQ1iD,YACM,aAAxB0iD,EAAQ/lC,aACVxc,GAAWuiD,EAAQxiD,SAErBG,GAAmCqiD,EAAQ/mC,SACN,OAAjC+mC,EAAQpiD,qBACVC,GAAwBmiD,EAAQpiD,sBAEhCC,GAAwB,IAE1BkiD,EAAc55C,KAAK85C,MAGvBliD,GAAe+hD,GACf7hD,GAAa8hD,GAIfx+C,IAAa,IA+CnB,OAhZAtG,oBAAU,MAoGVE,iBACEX,EAAUY,gBACV,MAAMkI,EAAQjI,eAAKX,GAAc,CAAEY,aAAc,UAC7CgI,GACFtB,GAAasB,EAAM/H,WAAW+H,EAAM9H,cAGtC,MAAM8mD,EAAiB,GACvB,IAAIU,EAAoB,CAAC,aAAc,UAAW,UAAW,SAAU,QAAS,QAAS,WAAY,UAAW,SAAU,aAEvHvjC,IACDujC,EAAkB78C,KAAK,cAEzB,MAAM88C,EAAWz0B,iBAAO9zB,GAAcsf,GAAQ5E,mBAAS4tC,EAAmBhpC,EAAKhU,WAC/E,GAAIi9C,EAAU,CAEZA,EAASpvB,SAAQ,SAAUvvB,GACzBg+C,EAAen8C,KAAK,CAClBd,GAAkB,OAAdf,EAAE8lB,UAAqB,EAAI9lB,EAAEe,GACjCS,MAAOxB,EAAE8lB,SACT4e,MAAO1kC,EAAE/I,WAAW+I,EAAE9I,kBAI1B,IAAI0nD,EAAkBZ,EAAer0B,UAAW3pB,GAAiB,UAAZA,EAAEwB,OAErDu8C,EADCa,GAAmBA,GAAmB,EACjBZ,EAAeY,GAGfZ,EAAe,IAEvCC,EAAkBD,GAIpB,MAAMI,EAAarnD,eAAKX,GAAc,CAAEY,aAAc,gBAClDonD,GACFC,GAAcD,EAAWnnD,WAAWmnD,EAAWlnD,cAGjD,MAAMypB,EAAW5pB,eAAKX,GAAc,CAAEY,aAAc,cAChD2pB,GACFC,GAAYD,EAAS1pB,WAAW0pB,EAASzpB,cAG3C,MAAMV,EAAOO,eAAKX,GAAc,CAAEY,aAAc,SAC5CR,GACFC,GAAQD,EAAKS,WAAWT,EAAKU,cAG/B,MAAMk3C,EAAWr3C,eAAKX,GAAc,CAAEY,aAAc,uBAChDo3C,GACFC,GAAYD,EAASn3C,WAAWm3C,EAASl3C,cAG3C,MAAMgmD,EAAqBnmD,eAAKX,GAAc,CAAEY,aAAc,oBAC1DkmD,GACFd,GAAkBc,EAAmBjmD,WAAWimD,EAAmBhmD,cAGrE,MAAMimD,EAA2BpmD,eAAKX,GAAc,CAAEY,aAAc,2BAChEmmD,GACFb,GAAwBa,EAAyBlmD,WAAWkmD,EAAyBjmD,cAGvF,MAAM4xC,EAAsB5e,iBAAO9zB,GAAesM,GACnB,sBAAtBA,EAAK1L,cAEY,IAAD+xC,EAAAC,EAArBF,GACFR,IAAyC,QAAtBS,EAAAD,EAAoB,UAAE,IAAAC,OAAA,EAAtBA,EAAwB9xC,aAAiC,QAAxB+xC,EAAEF,EAAoB,UAAE,IAAAE,OAAA,EAAtBA,EAAwB9xC,eAGhFhB,EAAUiB,gBA3KVC,GA8KFP,iBAEE,IAAIwI,QAAqBC,IAAU1R,IAChC1S,IAAOqF,uCACN,yBAA2B86B,IAG/B,IAAIhc,EAAa/kB,IAAOC,kBAWtB,MAAM8kB,EAAa/kB,IAAOE,kBAV1B0jE,EAAS7+C,EAAa/kB,IAAOG,gBAC7Byb,EAAU8f,YAAU3W,EAAa/kB,IAAOG,iBAExC4kB,EAAa/kB,IAAOG,eAAe61B,IAAI,CAACuuC,EAAMxyC,KAC5C,IAAIq4B,EAAQ,IAAImE,MAChBnE,EAAMjtC,IAAMonD,EAAY,MAExB/8C,OAAO+8C,EAAY,OAAKna,IAM5BlW,IAAY,GAlMZ7L,IACC,IAGHhsB,oBAAU,KACR,GAAGsf,EAAMrf,OAAO,CACd,MAAM64C,EAAY7uC,SAAS8tC,eAAe,oBACpCoQ,EAAal+C,SAASqlB,cAAc,gBACpC84B,EAAcn+C,SAASqlB,cAAc,iBAE3C,IAAKwpB,IAAcqP,IAAeC,EAAa,OAE/C,MAAMC,EAAe,IAEfC,EAAaA,KACfxP,EAAUyP,SAAS,CAAEzzB,MAAOuzB,EAAc3P,SAAU,YAGlD8P,EAAcA,KAChB1P,EAAUyP,SAAS,CAAEzzB,KAAMuzB,EAAc3P,SAAU,YAOvD,GAJAyP,EAAWzwC,iBAAiB,QAAS4wC,GACrCF,EAAY1wC,iBAAiB,QAAS8wC,GAGlCV,GAAa/9C,QAAS,CACxB,MAAM0+C,EAAgBX,GAAa/9C,QAE7B2+C,EAAgBZ,GAAa/9C,QAAQulB,cAAc,iCAEzD,GAAIo5B,EAAe,CAEjB,MAAMC,EAAoBD,EAAcE,WAClCC,EAAgB/P,EAAU8P,WAEhC,IAAIE,EAAqB,EAEzBA,EAAqBH,GAAsBF,EAAc9zB,wBAAwBtoB,MAAMq8C,EAAc/zB,wBAAwBtoB,MAAMw8C,GAAe,EAE7H,IAAjBR,GACFI,EAAcF,SAAS,CAAEzzB,KAAMg0B,EAAoBpQ,SAAU,YAKnE,MAAO,KACHyP,EAAWnsB,oBAAoB,QAASssB,GACxCF,EAAYpsB,oBAAoB,QAASwsB,MAI9C,CAAC5wB,GAAUtY,IAEdtf,oBAAUE,UAER,GAAIinD,GAAsB7nC,EAAMrf,OAAS,EACvC,GAAiC,QAA7BknD,EAAmBt8C,MACrB+8C,GAA6BtoC,QAE1B,GAAiC,cAA7B6nC,EAAmBt8C,MAE1B,GAAwB,IAApBmV,GAAS/f,OAAc,CACzB,IAAIyI,QAAqBC,IAAU1R,IACjC1S,IAAOwP,oBAET,GAAI2U,EAAa/kB,IAAOC,kBAAmB,CACzC,IAAIslB,EAAOR,EAAa/kB,IAAOG,eACnB,MAARolB,IACFA,EAAO,IAGTA,EAAKyQ,IAAI,CAACuuC,EAAMxyC,KACdwyC,EAAS,GAAIA,EAAa,SAE5BN,GAA6B1+C,GAC7B3J,EAAUwgB,aAAa7W,UAGzB0+C,GAA6B5nC,QAI5B,CACH,IAAI+oC,EAA2BzpC,EAAMiU,OAAO20B,GAAQA,EAAoB,gBAAMf,EAAmBt8C,OACjG+8C,GAA6BmB,KAKhC,CAAC5B,EAAoB7nC,IAqTtB5e,IAAAC,cAAAD,IAAAE,SAAA,KACGoH,IACCtH,IAAAC,cAAA,OAAKE,UAAU,kDACbH,IAAAC,cAACuL,IAAU,CACTC,WAAazL,IAAAC,cAAA,OACXE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,OACPC,MAAM,OACNC,IAAI,gBAENC,cAAetL,EAAE,UACjBuL,eAAgBvL,EAAE,YAClB8K,MAAI,EAIJU,SAAUA,KACRxE,IAAiB,IAEnByE,QAAM,EACNC,YAAU,EACVC,gBAAgB,EAChBC,iBAAiB,SACjBC,cACEpM,IAAAC,cAACD,IAAME,SAAQ,KACbF,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,UACEE,UAAW,yBACXgL,QAASA,KACPrD,GACEvD,GACAo9C,EACAl+C,EACAE,EACAN,EACAZ,EACAI,EACAgC,GACA9B,EACAo/C,IAEF56C,IAAiB,KAGlBhH,EAAE,aAELP,IAAAC,cAAA,KACEkL,QAASA,KAAOtM,EAAU+L,cAAkB,IAASrD,IAAiB,IACtEpH,UAAU,0BAETI,EAAE,aAOXP,IAAAC,cAAA,QAAME,UAAU,2BACdH,IAAAC,cAAA,OAAKqM,wBAAyB,CAAEC,OAAQhM,EAAE,gBAAgBiM,QAAQ,KAAM,UAAYC,MAAO,CAAEC,aAAc,OAAQC,SAAU,cAK/H,OAALiS,QAAK,IAALA,OAAK,EAALA,EAAOrf,QAAS,GACfS,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,OAAKE,UAAU,kCACbH,IAAAC,cAAA,OAAKE,UAAU,wBAAwB0Q,IAAKu2C,GAAc19C,GAAG,oBAC1Di9C,GACCA,EAAepnD,OAAS,GACxB0Z,cAAI0tC,EAAgB,CAACtoC,EAAMrJ,KAGzB,GAAkB,cAAdqJ,EAAKlU,OAAwBsZ,GAA2BlkB,OAAS,EAAG,CAMtE,GAAuC,GAJRkkB,GAA2BoP,OAAQ2Z,GACzDA,EAAgBA,gBAAgBriC,MAAMsiC,QAAUpuB,EAAKlU,MAAMsiC,QAGvCltC,OAC3B,OAAO,KAIX,OACES,IAAAC,cAAA,OACEgV,IAAKD,EACL7U,UACE,yBACCsmD,EAAmB/8C,IAAM2U,EAAK3U,GAAK,WAAa,KACjD,yBAA2B2U,EAAKlU,MAElCgB,QAASA,IACPu7C,EAAsB,CACpBh9C,GAAI2U,EAAK3U,GACTS,MAAOkU,EAAKlU,SAIhBnK,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OACEG,IAAKie,EAAKgvB,MACVltC,UAAU,iBACVyL,IAAKyS,EAAKlU,MACVm+C,QAAQ,UAGZtoD,IAAAC,cAAA,UAAKM,EAAE8d,EAAKlU,YAKtBnK,IAAAC,cAAA,OAAKE,UAAU,uCAAsCH,IAAAC,cAAA,KAAGE,UAAU,sBAClEH,IAAAC,cAAA,OAAKE,UAAU,wCAAuCH,IAAAC,cAAA,KAAGE,UAAU,yBAE3C,OAAzB8mD,SAAyB,IAAzBA,QAAyB,EAAzBA,GAA2B1nD,QAAS,EACnCS,IAAAC,cAAA,OAAKE,UAAU,0BACbH,IAAAC,cAAA,OAAKE,UAAU,mCAEI,GAAhBye,EAAMrf,QAAeS,IAAAC,cAACsoD,IAAY,MACnCvoD,IAAAC,cAAA,OAAKE,UAAU,oBACZ8mD,GAA0BhuC,IAAI,CAACuuC,EAAMxyC,IAElChV,IAAAC,cAAA,OACEgV,IAAKD,EACL7U,UAAU,oBACVgL,QAASA,KACHhF,GAEFrC,EAAoB0jD,EAAuB,mBACpB,IAAnBA,EAAa,SACfpF,GAAwBoF,EAAsB,iBAC9C1/C,GACI0/C,EAAS,GACTA,EAAkB,YAClBA,EAAsB,gBACtBA,EAAe,SACfA,EAA8B,wBAC9BA,EAAY,MACZA,EAAa,OACbA,EAAkB,YAClBA,EAAkB,YAClBA,EAAyB,mBACzBA,EAAsB,gBACtBA,EAAoB,cACpBA,EAAe,SACfA,EAAuB,oBA2D7B3oD,EAAU0iB,cAAc,MAI5BvhB,IAAAC,cAAA,OAAKE,UAAU,0BACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAC+zC,IAAa,CACZ5zC,IAAKonD,EAAY,MACjB57C,IAAK47C,EAAe,SACpBvT,YAAajD,KAEI,GAAlBwW,EAAa,QACZxnD,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,OACEwM,MAAO,CACLd,MAAO,OACPD,OAAQ,QAEVvL,UAAU,kCAEZH,IAAAC,cAAA,OAEEE,UAAU,kBAEVH,IAAAC,cAAA,OAAKE,UAAU,cAAcwL,MAAM,MAAMD,OAAO,MAAMm/B,QAAQ,cAAcE,MAAM,8BAChF/qC,IAAAC,cAAA,KAAG2sC,SAAS,yBACV5sC,IAAAC,cAAA,QAAMs1B,EAAE,u3BACRv1B,IAAAC,cAAA,QAAMs1B,EAAE,kfACRv1B,IAAAC,cAAA,QAAMs1B,EAAE,6WAEVv1B,IAAAC,cAAA,YACED,IAAAC,cAAA,YAAUyJ,GAAG,mBACX1J,IAAAC,cAAA,QAAM0L,MAAM,MAAMD,OAAO,MAAMo/B,KAAK,gBAQ/B,GAAlB0c,EAAa,QACZxnD,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OACEE,UAAU,YACV4qC,MAAM,6BACNF,QAAQ,aAER7qC,IAAAC,cAAA,aACAD,IAAAC,cAAA,KAAG6qC,KAAK,OAAOE,SAAS,WACtBhrC,IAAAC,cAAA,UACEuoD,GAAG,OACHC,GAAG,OACHC,EAAE,OACF5d,KAAK,eACL6d,YAAY,KACZC,OAAO,eACPC,YAAY,MAEd7oD,IAAAC,cAAA,QACE6qC,KAAK,eACLvV,EAAE,sFAQhBv1B,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,UAAKunD,EAAe,gBASlCxnD,IAAAC,cAAA,OAAKE,UAAU,iCACZH,IAAAC,cAAA,OAAKE,UAAU,gBACZH,IAAAC,cAAA,OACEG,IAAK22C,GACL52C,UAAU,iBACVyL,IAAI,UAGR5L,IAAAC,cAAA,OAAKE,UAAU,2DACZI,EAAE,qBAQF,QAAZ2J,GACClK,IAAAC,cAACI,IAAc,CACboD,gBAAiBA,EACjBJ,uBAAwBA,EACxBM,iBAAkBA,EAClBY,cAAeA,GACfV,iBAAkBA,EAClBsG,MAAO5J,EAAE,QACTsI,SAAUw5C,GACVj7C,gBAAiB+6C,GACjB75C,aAAcA,OClqBTwgD,MA9HOlqD,IACpB,IAAI,EAAE2B,GAAMC,cACR3B,EAAYC,cAGhBwnD,IAAWC,IAAI,CAACC,MAEhB,MAAMznD,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDgqD,EAAYC,GAAiB3pD,mBAAS,KACtC2xC,EAAiBC,GAAsB5xC,qBACxC6iD,EAAwBljD,YAAaC,GAAUA,EAAMC,SAASojB,gBAE9D2mC,EAAc,CAClB9oD,UAAW,wBACX2iD,MAAM,EACNC,UAAU,EAEVE,aAAc,EACdC,eAAgB,EAChBQ,eAAe,EACfwF,WAAW,EACX7F,UAAU,EACVL,MAAO,IACPM,cAAe,IACfC,QAAQ,EACRC,WAAY,CACV,CACEC,WAAY,IACZ1R,SAAU,CACRkR,aAAc,EACdC,eAAgB,IAGpB,CACEO,WAAY,IACZ1R,SAAU,CACR5xC,UAAW,GACXujD,eAAe,EACfT,aAAc,EACdC,eAAgB,EAChBC,UAAU,EACVC,iBAAiB,EACjB8F,WAAW,EACX7F,UAAU,EACV8F,WAAW,MAMnB7pD,oBAAU,MAeVE,iBACEX,EAAUY,gBAEV,MAAMgyC,EAAsB5e,iBAAO9zB,EAAesM,GACnB,sBAAtBA,EAAK1L,cAEY,IAAD+xC,EAAAC,EAArBF,GACFR,GAAyC,QAAtBS,EAAAD,EAAoB,UAAE,IAAAC,OAAA,EAAtBA,EAAwB9xC,aAAiC,QAAxB+xC,EAAEF,EAAoB,UAAE,IAAAE,OAAA,EAAtBA,EAAwB9xC,eAGhFhB,EAAUiB,gBAxBVC,GACAqpD,KACC,IAGH,MAAMA,EAAkB5pD,UACtB,IAAI6pD,QAA2BphD,IAAU1R,IACvC1S,IAAOiN,wBAELu4D,EAAmBpmE,IAAOC,mBAC5B8lE,EAAcK,EAAmBpmE,IAAOG,iBAiB5C,OACE4c,IAAAC,cAAAD,IAAAE,SAAA,MAEc,OAAV6oD,QAAU,IAAVA,OAAU,EAAVA,EAAYxpD,QAAS,GACnBS,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,MAAIE,UAAU,+BACZH,IAAAC,cAAA,OAAKE,UAAU,MAAMC,IAAKgX,EAAQ,OAAsCpX,IAAAC,cAAA,YAAOM,EAAE,WAAiB,IAAEA,EAAE,WAExGP,IAAAC,cAAA,OAAKE,UAAU,eACbH,IAAAC,cAACukD,IAAWyE,EAERhwC,cAAI8vC,EAAY,CAAC1qC,EAAMrJ,IAEnBhV,IAAAC,cAAA,OAAKgV,IAAKD,GACRhV,IAAAC,cAAA,OAAKE,UAAU,QACbH,IAAAC,cAAA,OAAKE,UAAU,qBACbH,IAAAC,cAAC+zC,IAAa,CACZ5zC,IAAKie,EAAKgvB,MACVzhC,IAAKyS,EAAKnW,SACV+rC,YAAajD,KAIjBhxC,IAAAC,cAAA,OAAKE,UAAU,uBACbH,IAAAC,cAAA,OAAKE,UAAU,SAASke,EAAKmpC,MAC7BxnD,IAAAC,cAAA,OAAKE,UAAU,YAAYke,EAAKnW,UAChClI,IAAAC,cAAA,OAAKE,UAAU,UAAU+hD,EAAuB7jC,EAAKqmC,QAAQx7C,QAAQ,cCgiBpFogD,MA1nBU/3C,IAC4F,IAADg4C,EAAA,IAD1F,sBAAErI,EAAqB,6BAAEC,EAA4B,uBAAEC,EAAsB,oBAAEC,EAAmB,qBAC1HC,EAAoB,YAAEC,EAAW,oBAAEC,EAAmB,sBAAEC,EAAqB,mBAAEC,EAAkB,SAAEx3C,GAAUqH,EAC7G,IAAI,EAAEhR,GAAMC,cACRC,EAAWC,cACX7B,EAAYC,cAChB,MAAM0qD,EAAexpD,IAAMkB,OAAO,MAElC,IAAI,UAAEiF,GAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAMJ,EAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,SAClDiD,EAAkBC,GAAuBzE,mBAAS,KAClDsE,EAAkBC,GAAuBvE,mBAAS,KAClDoE,EAAiBC,GAAsBrE,mBAAS,IAChDoD,EAAOC,GAAYrD,oBAAS,IAC5BwD,EAAaC,GAAkBzD,mBAAS,KACxC0D,EAAoBC,GAAyB3D,mBAAS,KACtDsiD,EAAyBC,GAA8BviD,oBAAS,IAChEgE,EAAwBC,GAA6BjE,oBAAS,IAC9DkC,EAAYC,GAAiBnC,mBAAS,KACtCoC,EAAOC,GAAYrC,mBAAS,IAC5BsC,GAAYC,IAAiBvC,mBAAS,IACtC0C,GAAiCC,IACtC3C,mBAAS,IACJ4C,GAAsBC,IAA2B7C,mBAAS,KAC1D8C,GAAaC,IAAkB/C,mBAAS,KACxCgD,GAAWC,IAAgBjD,mBAAS,KACpCwiD,GAAkBC,IAAuBziD,oBAAS,IAClDkF,GAAeC,IAAoBnF,mBAAS,IAC5C4D,GAAY8+C,IAAiB1iD,oBAAS,IACtC0F,GAAiBC,IAAsB3F,mBAAS,KAChD4F,GAAgBC,IAAqB7F,mBAAS,KAC9C4E,GAAiBC,IAAsB7E,mBAAS,KAChDsD,GAAQC,IAAavD,mBAAS,KAC9BwC,GAASC,IAAczC,mBAAS,IAChCwxC,GAAkBC,IAAuBzxC,mBAAS,IAClDoqD,GAAsBC,IAA2BrqD,mBACtDL,YAAaC,GAAUA,EAAMC,SAAS4f,iBAAiBE,aAElD2qC,GAA2BC,IAAgCvqD,mBAChEL,YAAaC,GAAUA,EAAMC,SAAS4f,iBAAiBG,oBAElD4qC,GAAwBC,IAA6BzqD,mBAC1DL,YAAaC,GAAUA,EAAMC,SAAS4f,iBAAiBI,eAElD6qC,GAA6BC,IAClC3qD,mBACEL,YAAaC,GAAUA,EAAMC,SAAS4f,iBAAiBG,oBAGpDgrC,GAAUC,IAAe7qD,oBAAS,IAClCsG,GAAWC,IAAgBvG,oBAAS,GACrCiC,GAAiBtC,YAAaC,GAAUA,EAAMC,SAASoC,gBACvDvC,GAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDqH,GAAWC,IAAgBhH,sBAC3B2xC,GAAiBC,IAAsB5xC,sBACvC8iD,GAAsBC,IAA2B/iD,oBAAS,IAC1DgjD,GAAeC,IAAoBjjD,mBAAS,KAC5CiI,GAAaC,IAAoBlI,oBAAS,IAC1CiJ,GAAci6C,IAAmBljD,mBAAS,KAC1C8qD,GAAyBC,IAA8B/qD,oBAAS,IAChEmjD,GAAkBC,IAAuBpjD,oBAAS,IAClDwF,GAAaC,IAAkBzF,oBAAS,GAGzCgrD,GAAY,CAChBpH,aAAc,EACdH,MAAM,EACNS,QAAQ,EACR+G,UAAU,EACVC,OAAO,EACPxH,UAAU,EACVyH,cAAc,EACdxH,MAAO,IACPyH,aAAcA,IAAMP,IAAY,GAChCQ,YAAaA,IAAMR,IAAY,IA4EjC1qD,eAAesI,GACbkC,EACA+5C,EACAtgD,EACAugD,EACAC,EACAxhD,EACAE,EACAE,EACAgC,EACA9B,EACAqE,EACAi7C,EACA/5C,EACA47C,GA4BA,GA1BAtgD,EAAoBogD,GACpBtgD,EAAmBD,GACnBf,EAASD,GACTK,EAAeD,GACfG,EAAsBD,GACtB6+C,EAA2BmC,GAC3BzgD,EAA0B2gD,GAC1B7B,GAAwBh7C,GACxBk7C,GAAiBD,GACjBE,GAAgBj6C,GAEA,QAAZ4B,IACFg3C,EAAsBz9C,GACtB09C,EAA6B8C,GAC7B7C,EAAuB4C,GACvB3C,EAAoBr3C,GACpBs3C,EAAqB4C,GACrB3C,EAAYhhD,EAAE,SACdihD,EAAoBa,GACpBZ,EAAsBr6C,GACtBs6C,EAAmBp5C,IAGjB7F,IAAUkH,YAAoBhH,IAChCC,GAAUD,IAEQ,IAAhBohD,EACF,GAAkB,GAAdE,EACFz/C,GAAiBwF,GACjBnL,EAAU+L,cAAkB,IAC5B63C,IAAoB,QAEpB,GAAIr7C,EAAiB,CACnB,IAAI6C,EAAiB,CAAC,CACpBC,SAAU3J,EAAE,QACZ6J,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,QAGvBsL,EAAOlU,IAAOH,sBAAwB,WAAa8T,EACvDvJ,EAAS+J,KAAKD,EAAM,CAClBN,eAAgBA,SAGlBQ,OAAOC,KACL7mB,IAAOgL,WACP,WACAmb,EAAS,YAAcS,OAAOE,YAAc,IAAM,IAAM,WAM9D,GAAkB,GAAds5C,EAAqB,CACvBr+C,IAAa,GACb,IAAIoC,QAAqBC,IAAU1R,IACjC1S,IAAOgF,sCACP,oBACA4a,GAEF,GAAIuE,EAAa/kB,IAAOC,kBAAmB,CACzCse,EAAcwG,EAAa/kB,IAAOG,gBAElC,IAAI+gE,EAAkB,GAClBC,EAAgB,GAEpBp8C,EAAa/kB,IAAOG,eAAe61B,IAAKorC,IACtC,IAAIC,EAAS,CACX9lD,MAAO6lD,EAAQ/lC,YACf/f,MAAO8lD,EAAQE,UACfvD,OAAQpxC,WAAWy0C,EAAQ/mC,UAEzB+mC,EAAQE,YAAc5mD,IACxBwmD,EAAgB35C,KAAK85C,GACZD,EAAQE,YAAc9gD,IAC/B/B,EAAS2iD,EAAQ5iD,OACjBG,GAAcyiD,EAAQ1iD,YACM,aAAxB0iD,EAAQ/lC,aACVxc,GAAWuiD,EAAQxiD,SAErBG,GAAmCqiD,EAAQ/mC,SACN,OAAjC+mC,EAAQpiD,qBACVC,GAAwBmiD,EAAQpiD,sBAEhCC,GAAwB,IAE1BkiD,EAAc55C,KAAK85C,MAGvBliD,GAAe+hD,GACf7hD,GAAa8hD,GAIftC,IAAoB,GA8C1BtiD,eAAiCmE,GAC/B,IAAI4E,EAAS1kB,IAAO2J,uBAChBgb,EAAO,GACPR,QAAqBC,IAAU1R,IAAIgS,GAErCP,EAAa/kB,IAAOC,mBACpB8kB,EAAa/kB,IAAOG,eAAemc,OAAS,IAE5CiJ,EAAOR,EAAa/kB,IAAOG,eAAeyvC,OACvClqB,GAAMA,EAAE2V,cAAgB3a,GAGvB6E,EAAKjJ,OAAS,GAChB2E,GAAmBsE,EAAK,KA1DxBH,CAAkB27C,GAClBx/C,GAAiBwF,GACjB+3C,IAAc,GA6DpBviD,eAAmCiE,GAGjC,GAFAuB,GAAmB,IACnBE,GAAkB,IACK,KAAnBzB,IAA2BkG,YAAoBlG,GAAkB,CACnE,IAAIuE,QAAqBC,IAAU1R,IACjC1S,IAAOwI,6CACP,oBACAoX,GAEEuE,EAAa/kB,IAAOC,mBACoB,MAAtC8kB,EAAa/kB,IAAOG,gBACyB,MAA3C4kB,EAAa/kB,IAAOG,eAAeolB,OACrCxD,GACEgD,EAAa/kB,IAAOG,eAAeolB,KAAsB,iBAE3DtD,GACE8C,EAAa/kB,IAAOG,eAAeolB,KAAqB,kBA5E9DZ,CAAoBoC,GAEhBO,EAAOlU,IAAO1B,gBAChB,SACAqvD,EACA,OACAh6C,EACA,eACArJ,EAA4B,gBAC5B,aACA0hD,EARF,IAmBIpjD,EAAQ,CACVgL,eAVEA,EAAiB,CAAC,CACpBC,SAAU3J,EAAE,QACZ6J,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,OACxB,CACDiL,SAAU85C,EACV55C,SAAUG,KAOZ9J,EAAS+J,KAAKD,EAAMtL,GACpB2G,IAAa,IA0DnB,OA9QAtG,oBAAU,MAMVE,iBACEX,EAAUY,gBAEV,MAAMgyC,EAAsB5e,iBAAO9zB,GAAesM,GACnB,sBAAtBA,EAAK1L,cAEY,IAAD+xC,EAAAC,EAArBF,GACFR,IAAyC,QAAtBS,EAAAD,EAAoB,UAAE,IAAAC,OAAA,EAAtBA,EAAwB9xC,aAAiC,QAAxB+xC,EAAEF,EAAoB,UAAE,IAAAE,OAAA,EAAtBA,EAAwB9xC,eAGhFhB,EAAUiB,gBAfVC,GAkBFP,iBACE,GAAmC,GAA/BuqD,GAAkC,CACpCK,IAA2B,GAC3B,IAAIpiD,QAAqBC,IAAU1R,IACjC1S,IAAO0F,uBACP,eACAsnD,GAAmB,qBAGrB,GAAI7oC,EAAa/kB,IAAOC,kBAAmB,CAEzC,MAAMslB,EAAOR,EAAa/kB,IAAOG,eAAeunE,iBAAiB93B,OAC9DlqB,GAA0B,UAApBA,EAAE05C,eAEXuH,GAA6BphD,EAAKjJ,QAElC,IAAIqrD,EAAe,GAEnB,IAAK,IAAI5/B,EAAI,EAAGA,EAAIxiB,EAAKjJ,OAAQyrB,GAAK,GACpC4/B,EAAapgD,KAAKhC,EAAKmQ,MAAMqS,EAAGA,EAAI,KAEtC0+B,GAAwBkB,GAGxB,MAAMC,EAAwB7iD,EAC5B/kB,IAAOG,eACPunE,iBAAiB93B,OAAQlqB,GAA0B,WAApBA,EAAE05C,eAEnC2H,GAA+Ba,EAAsBtrD,QACrD,IAAIurD,EAAoB,GAExB,IAAK,IAAI9/B,EAAI,EAAGA,EAAI6/B,EAAsBtrD,OAAQyrB,GAAK,GACrD8/B,EAAkBtgD,KAAKqgD,EAAsBlyC,MAAMqS,EAAGA,EAAI,KAE5D8+B,GAA0BgB,GAC1BV,IAA2B,GAI3BvrD,EACEggB,aAAqB,CACnBE,eAAgBvW,EAAKjJ,OACrByf,UAAW4rC,EACX3rC,iBAAkB4rC,EAAsBtrD,OACxC2f,YAAa4rC,KAInBV,IAA2B,IAjE7BW,IAEC,IA2QD/qD,IAAAC,cAAAD,IAAAE,SAAA,KACGoH,IACCtH,IAAAC,cAAA,OAAKE,UAAU,kDACbH,IAAAC,cAACuL,IAAU,CACTC,WAAazL,IAAAC,cAAA,OACXE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,OACPC,MAAM,OACNC,IAAI,gBAENC,cAAetL,EAAE,UACjBuL,eAAgBvL,EAAE,YAClB8K,MAAI,EAIJU,SAAUA,KACRxE,IAAiB,IAEnByE,QAAM,EACNC,YAAU,EACVC,gBAAgB,EAChBC,iBAAiB,SACjBC,cACEpM,IAAAC,cAACD,IAAME,SAAQ,KACbF,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,UACEE,UAAW,yBACXgL,QAASA,KACPrD,GACEvD,GACAo9C,EACAl+C,EACAE,EACAN,EACAZ,EACAI,EACAgC,GACA9B,EACAo/C,IAEF56C,IAAiB,KAGlBhH,EAAE,aAELP,IAAAC,cAAA,KACEkL,QAASA,KAAOtM,EAAU+L,cAAkB,IAASrD,IAAiB,IACtEpH,UAAU,0BAETI,EAAE,aAOXP,IAAAC,cAAA,QAAME,UAAU,2BACdH,IAAAC,cAAA,OAAKqM,wBAAyB,CAAEC,OAAQhM,EAAE,gBAAgBiM,QAAQ,KAAM,UAAYC,MAAO,CAAEC,aAAc,OAAQC,SAAU,cAKhH,OAApB88C,SAAoB,IAApBA,QAAoB,EAApBA,GAAsBlqD,QAAS,GAC9BS,IAAAC,cAAA,OAAKE,UAAU,+BACbH,IAAAC,cAAA,OAAKE,UAAU,2CACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,MAAIE,UAAU,mBACZH,IAAAC,cAAA,YAAOM,EAAE,gBAAsB,IAAEA,EAAE,SAASq0C,gBAGhD50C,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OAAKE,UAAU,yBAAyBsM,MAAO,CAAEmgB,QAAS,SACvDrsB,EAAE,OAAO,IAACP,IAAAC,cAAA,YAAO0pD,IAAkC,IACnDppD,EAAE,WAEQ,OAAZipD,QAAY,IAAZA,GAAqB,QAATD,EAAZC,EAAcngD,eAAO,IAAAkgD,OAAT,EAAZA,EAAuByB,YAAYpsD,MAAMqsD,SAAS1rD,QAAS,GAAKS,IAAAC,cAAAD,IAAAE,SAAA,KAC/DF,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKkL,QAASA,KAAA,IAAA+/C,EAAA,OAAkB,OAAZ1B,QAAY,IAAZA,GAAqB,QAAT0B,EAAZ1B,EAAcngD,eAAO,IAAA6hD,OAAT,EAAZA,EAAuBC,cACzCnrD,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWqe,UACjBxpB,UAAU,wBAGdH,IAAAC,cAAA,OAAKkL,QAASA,KAAA,IAAAigD,EAAA,OAAkB,OAAZ5B,QAAY,IAAZA,GAAqB,QAAT4B,EAAZ5B,EAAcngD,eAAO,IAAA+hD,OAAT,EAAZA,EAAuBC,cACzCrrD,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWggD,WACjBnrD,UAAU,4BAStBH,IAAAC,cAAA,OAAKE,UAAU,qBACmB,GAA/BspD,GAAqBlqD,QAAeS,IAAAC,cAACsoD,IAAY,MAClDvoD,IAAAC,cAACukD,IAAMrzC,OAAAC,OAAA,CAACP,IAAK24C,GAAkBa,GAAS,CAAElqD,UAAU,KACjDspD,IACCA,GAAqBlqD,QACrB0Z,cAAIwwC,GAAsB,CAACprC,EAAMrJ,IAE7BhV,IAAAC,cAAA,OAAKgV,IAAKD,EAAO7U,UAAU,oBACxBke,GACCA,EAAK9e,QACL0Z,cAAIoF,EAAM,CAACmpC,EAAM+D,IAEbvrD,IAAAC,cAAA,OACEgV,IAAKs2C,EACLprD,UAAU,oBACVgL,QAAU8L,IACJgzC,GACFhzC,EAAEyC,iBAEEvT,GACFrC,EACE0jD,EAAuB,mBAEF,IAAnBA,EAAa,SAEblmD,GAAeoF,oBAEf7H,EACE0hB,aAAY,CACVvU,QAAQ,EACRP,WACEzL,IAAAC,cAAA,OACEE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,QACPC,MAAM,QACNC,IAAI,gBAGRoB,QAASzM,EACP,wCAEF0L,YAAY,EACZgB,UAAWA,MAlMrDzN,eAA2CwK,GACzCnL,EAAUY,uBACewI,IAAU1R,IACjC1S,IAAOyL,0CAEQrM,IAAOC,kBAGxB2b,EAAUiB,gBA2LgC+K,GACAu3C,GAAwBoF,EAAsB,iBAC1CA,EAAsB,gBACxB1/C,GACE0/C,EAAS,GACTA,EAAkB,YAClBA,EAAsB,gBACtBA,EAAe,SACfA,EACyB,wBAEzBA,EAAY,MACZA,EAAa,OACbA,EAAkB,YAClBA,EAAkB,YAClBA,EAAyB,mBACzBA,EAAsB,gBACtBA,EAAoB,gBAItB5jD,EAAoB4jD,EAAe,UACnC9jD,EAAmB8jD,EAAsB,iBACzC9kD,EAAS8kD,EAAY,OACrB1kD,EAAe0kD,EAAkB,aACjCxkD,EAAsBwkD,EAAyB,oBAC/C5F,EAA2B4F,EAAkB,aAC7ClkD,EAA0BkkD,EAAiB,YAC3CpF,GAAwBoF,EAAsB,iBAE1C/kD,IAAUkH,YAAoBhH,KAChCC,GAAU4kD,EAAa,QAEzBhjD,GAAiBgjD,EAAS,IAC1BjgD,IAAiB,SAMzB66C,GAAwBoF,EAAsB,iBAC1CA,EAAsB,gBACxB1/C,GACE0/C,EAAS,GACTA,EAAkB,YAClBA,EAAsB,gBACtBA,EAAe,SACfA,EAA8B,wBAC9BA,EAAY,MACZA,EAAa,OACbA,EAAkB,YAClBA,EAAkB,YAClBA,EAAyB,mBACzBA,EAAsB,gBACtBA,EAAoB,gBAGtB5jD,EAAoB4jD,EAAe,UACnC9jD,EAAmB8jD,EAAsB,iBACzC9kD,EAAS8kD,EAAY,OACrB1kD,EAAe0kD,EAAkB,aACjCxkD,EAAsBwkD,EAAyB,oBAC/C5F,EAA2B4F,EAAkB,aAC7ClkD,EAA0BkkD,EAAiB,YAC3CpF,GAAwBoF,EAAsB,iBAE1C/kD,IAAUkH,YAAoBhH,KAChCC,GAAU4kD,EAAa,QAEzBhjD,GAAiBgjD,EAAS,IAC1BjgD,IAAiB,OAMvB1I,EAAU0iB,cAAc,MAK9BvhB,IAAAC,cAAA,OAAKE,UAAU,0BACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OAAKE,UAAU,SACX2+C,kBAAQ0I,EAAK5nD,YAAek/C,kBAAQ0I,EAAK3nD,cAQzC,GAPAG,IAAAC,cAAA,OACEE,UAAU,kBACVC,IAAKonD,EAAK5nD,WAAW4nD,EAAK3nD,aAC1B+L,IAAK47C,EAAKxD,SACVsE,QAAQ,SAMZtoD,IAAAC,cAAC+zC,IAAa,CACZ5zC,IAAKonD,EAAKna,MACVzhC,IAAK47C,EAAKxD,SACV/P,YAAajD,MAGjBhxC,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OACEE,UAAU,YACV4qC,MAAM,6BACNF,QAAQ,aAER7qC,IAAAC,cAAA,aACAD,IAAAC,cAAA,KAAG6qC,KAAK,OAAOE,SAAS,WACtBhrC,IAAAC,cAAA,UACEuoD,GAAG,OACHC,GAAG,OACHC,EAAE,OACF5d,KAAK,eACL6d,YAAY,KACZC,OAAO,eACPC,YAAY,MAEd7oD,IAAAC,cAAA,QACE6qC,KAAK,eACLvV,EAAE,sFAOdv1B,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,UAAKunD,EAAKxD,oBCN3BwH,MAnmBOj6C,IAC+F,IAADk6C,EAAA,IAD7F,sBAAEvK,EAAqB,6BAAEC,EAA4B,uBAAEC,EAAsB,oBAAEC,EAAmB,qBACvHC,EAAoB,YAAEC,EAAW,oBAAEC,EAAmB,sBAAEC,EAAqB,mBAAEC,EAAkB,SAAEx3C,GAAUqH,EAC7G,IAAI,EAAEhR,GAAMC,cACRC,EAAWC,cACX7B,EAAYC,cAChB,MAAM4sD,EAAmB1rD,IAAMkB,OAAO,MAGtColD,IAAWC,IAAI,CAACC,MAEhB,IAAI,UAAErgD,GAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAMJ,EAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,SAElDiD,EAAkBC,GAAuBzE,mBAAS,KAClDsE,EAAkBC,GAAuBvE,mBAAS,KAClDoE,EAAiBC,GAAsBrE,mBAAS,IAChDoD,EAAOC,GAAYrD,oBAAS,IAC5BwD,EAAaC,GAAkBzD,mBAAS,KACxC0D,EAAoBC,GAAyB3D,mBAAS,KACtDsiD,EAAyBC,GAA8BviD,oBAAS,IAChEgE,EAAwBC,GAA6BjE,oBAAS,IAC9DkC,EAAYC,GAAiBnC,mBAAS,KACtCoC,EAAOC,IAAYrC,mBAAS,IAC5BsC,GAAYC,IAAiBvC,mBAAS,IACtC0C,GAAiCC,IACtC3C,mBAAS,IACJ4C,GAAsBC,IAA2B7C,mBAAS,KAC1D8C,GAAaC,IAAkB/C,mBAAS,KACxCgD,GAAWC,IAAgBjD,mBAAS,KACpCwiD,GAAkBC,IAAuBziD,oBAAS,IAClDkF,GAAeC,IAAoBnF,mBAAS,IAC5C4D,GAAY8+C,IAAiB1iD,oBAAS,IACtC0F,GAAiBC,IAAsB3F,mBAAS,KAChD4F,GAAgBC,IAAqB7F,mBAAS,KAC9C4E,GAAiBC,IAAsB7E,mBAAS,KAChDsD,GAAQC,IAAavD,mBAAS,KAC9BwC,GAASC,IAAczC,mBAAS,IAChCwxC,GAAkBC,IAAuBzxC,mBAAS,IAGlDssD,GAAmBC,IAAwBvsD,mBAChDL,YAAaC,GAAUA,EAAMC,SAASkgB,cAAcJ,aAG/C6sC,GAAwBC,IAA6BzsD,mBAC1DL,YAAaC,GAAUA,EAAMC,SAASkgB,cAAcL,kBAG/CkrC,GAAUC,IAAe7qD,oBAAS,IAClCsG,GAAWC,IAAgBvG,oBAAS,GAIrCiC,GAAiBtC,YAAaC,GAAUA,EAAMC,SAASoC,gBACvDvC,GAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDqH,GAAWC,IAAgBhH,sBAE3B2xC,GAAiBC,IAAsB5xC,sBAEvC8iD,GAAsBC,IAA2B/iD,oBAAS,IAC1DgjD,GAAeC,IAAoBjjD,mBAAS,KAC5CiI,GAAaC,IAAoBlI,oBAAS,IAE1CiJ,GAAci6C,KADDtU,MAAM,GAAGnD,OACWzrC,mBAAS,MAC1C8qD,GAAyBC,IAA8B/qD,oBAAS,IAEhEmjD,GAAkBC,IAAuBpjD,oBAAS,IAClDwF,GAAaC,IAAkBzF,oBAAS,GAGzCgrD,GAAY,CAChBpH,aAAc,EACdH,MAAM,EACNS,QAAQ,EACR+G,UAAU,EACVC,OAAO,EACPxH,UAAU,EACVyH,cAAc,EACdxH,MAAO,IACPyH,aAAcA,IAAMP,IAAY,GAChCQ,YAAaA,IAAMR,IAAY,IA2DjC1qD,eAAesI,GACbkC,EACA+5C,EACAtgD,EACAugD,EACAC,EACAxhD,EACAE,EACAE,EACAgC,EACA9B,EACAqE,EACAi7C,EACA/5C,EACA47C,GA4BA,GA1BAtgD,EAAoBogD,GACpBtgD,EAAmBD,GACnBf,EAASD,GACTK,EAAeD,GACfG,EAAsBD,GACtB6+C,EAA2BmC,GAC3BzgD,EAA0B2gD,GAC1B7B,GAAwBh7C,GACxBk7C,GAAiBD,GACjBE,GAAgBj6C,GAEA,QAAZ4B,IACFg3C,EAAsBz9C,GACtB09C,EAA6B8C,GAC7B7C,EAAuB4C,GACvB3C,EAAoBr3C,GACpBs3C,EAAqB4C,GACrB3C,EAAYhhD,EAAE,SACdihD,EAAoBa,GACpBZ,EAAsBr6C,GACtBs6C,EAAmBp5C,IAGjB7F,IAAUkH,YAAoBhH,IAChCC,GAAUD,IAEQ,IAAhBohD,EACF,GAAkB,GAAdE,EACFz/C,GAAiBwF,GACjBnL,EAAU+L,cAAkB,IAC5B63C,IAAoB,QAEpB,GAAIr7C,EAAiB,CACnB,IAAI6C,EAAiB,CAAC,CACpBC,SAAU3J,EAAE,QACZ6J,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,QAGvBsL,EAAOlU,IAAOH,sBAAwB,WAAa8T,EACvDvJ,EAAS+J,KAAKD,EAAM,CAClBN,eAAgBA,SAGlBQ,OAAOC,KACL7mB,IAAOgL,WACP,WACAmb,EAAS,YAAcS,OAAOE,YAAc,IAAM,IAAM,WAM9D,GAAkB,GAAds5C,EAAqB,CACvBr+C,IAAa,GACb,IAAIoC,QAAqBC,IAAU1R,IACjC1S,IAAOgF,sCACP,oBACA4a,GAEF,GAAIuE,EAAa/kB,IAAOC,kBAAmB,CACzCse,EAAcwG,EAAa/kB,IAAOG,gBAElC,IAAI+gE,EAAkB,GAClBC,EAAgB,GAEpBp8C,EAAa/kB,IAAOG,eAAe61B,IAAKorC,IACtC,IAAIC,EAAS,CACX9lD,MAAO6lD,EAAQ/lC,YACf/f,MAAO8lD,EAAQE,UACfvD,OAAQpxC,WAAWy0C,EAAQ/mC,UAEzB+mC,EAAQE,YAAc5mD,IACxBwmD,EAAgB35C,KAAK85C,GACZD,EAAQE,YAAc9gD,IAC/B/B,GAAS2iD,EAAQ5iD,OACjBG,GAAcyiD,EAAQ1iD,YACM,aAAxB0iD,EAAQ/lC,aACVxc,GAAWuiD,EAAQxiD,SAErBG,GAAmCqiD,EAAQ/mC,SACN,OAAjC+mC,EAAQpiD,qBACVC,GAAwBmiD,EAAQpiD,sBAEhCC,GAAwB,IAE1BkiD,EAAc55C,KAAK85C,MAGvBliD,GAAe+hD,GACf7hD,GAAa8hD,GAIftC,IAAoB,GA8C1BtiD,eAAiCmE,GAC/B,IAAI4E,EAAS1kB,IAAO2J,uBAChBgb,EAAO,GACPR,QAAqBC,IAAU1R,IAAIgS,GAErCP,EAAa/kB,IAAOC,mBACpB8kB,EAAa/kB,IAAOG,eAAemc,OAAS,IAE5CiJ,EAAOR,EAAa/kB,IAAOG,eAAeyvC,OACvClqB,GAAMA,EAAE2V,cAAgB3a,GAGvB6E,EAAKjJ,OAAS,GAChB2E,GAAmBsE,EAAK,KA1DxBH,CAAkB27C,GAClBx/C,GAAiBwF,GACjB+3C,IAAc,GA6DpBviD,eAAmCiE,GAGjC,GAFAuB,GAAmB,IACnBE,GAAkB,IACK,KAAnBzB,IAA2BkG,YAAoBlG,GAAkB,CACnE,IAAIuE,QAAqBC,IAAU1R,IACjC1S,IAAOwI,6CACP,oBACAoX,GAEEuE,EAAa/kB,IAAOC,mBACoB,MAAtC8kB,EAAa/kB,IAAOG,gBACyB,MAA3C4kB,EAAa/kB,IAAOG,eAAeolB,OACrCxD,GACEgD,EAAa/kB,IAAOG,eAAeolB,KAAsB,iBAE3DtD,GACE8C,EAAa/kB,IAAOG,eAAeolB,KAAqB,kBA5E9DZ,CAAoBoC,GAEhBO,EAAOlU,IAAO1B,gBAChB,SACAqvD,EACA,OACAh6C,EACA,eACArJ,EAA4B,gBAC5B,aACA0hD,EARF,IAmBIpjD,EAAQ,CACVgL,eAVEA,EAAiB,CAAC,CACpBC,SAAU3J,EAAE,QACZ6J,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,OACxB,CACDiL,SAAU85C,EACV55C,SAAUG,KAOZ9J,EAAS+J,KAAKD,EAAMtL,GACpB2G,IAAa,IA0DnB,OA7PAtG,oBAAU,MAMVE,iBACEX,EAAUY,gBAEV,MAAMgyC,EAAsB5e,iBAAO9zB,GAAesM,GACnB,sBAAtBA,EAAK1L,cAEY,IAAD+xC,EAAAC,EAArBF,GACFR,IAAyC,QAAtBS,EAAAD,EAAoB,UAAE,IAAAC,OAAA,EAAtBA,EAAwB9xC,aAAiC,QAAxB+xC,EAAEF,EAAoB,UAAE,IAAAE,OAAA,EAAtBA,EAAwB9xC,eAGhFhB,EAAUiB,gBAfVC,GAkBFP,iBACE,GAA8B,GAA1BqsD,GAA6B,CAC/BzB,IAA2B,GAC3B,IAAIpiD,QAAqBC,IAAU1R,IACjC1S,IAAO0F,uBACP,eACAsnD,GAAmB,kBAGrB,GAAI7oC,EAAa/kB,IAAOC,kBAAmB,CAEzC,MAAM6oE,EAAe/jD,EACnB/kB,IAAOG,eACP4oE,eAAen5B,OAAQlqB,GAA0B,UAApBA,EAAE05C,eAEjCyJ,GAA0BC,EAAaxsD,QAEvC,IAAI0sD,EAAsB,GAE1B,IAAK,IAAIjhC,EAAI,EAAGA,EAAI+gC,EAAaxsD,OAAQyrB,GAAK,GAC5CihC,EAAoBzhD,KAAKuhD,EAAapzC,MAAMqS,EAAGA,EAAI,KAErD4gC,GAAqBK,GAErBptD,EACEsgB,aAAkB,CAChBJ,eAAgBgtC,EAAaxsD,OAC7Byf,UAAWitC,KAGjB7B,IAA2B,IA/C7BW,IAEC,IA0PD/qD,IAAAC,cAAAD,IAAAE,SAAA,KACGoH,IACCtH,IAAAC,cAAA,OAAKE,UAAU,kDACbH,IAAAC,cAACuL,IAAU,CACTC,WAAazL,IAAAC,cAAA,OACXE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,OACPC,MAAM,OACNC,IAAI,gBAENC,cAAetL,EAAE,UACjBuL,eAAgBvL,EAAE,YAClB8K,MAAI,EAIJU,SAAUA,KACRxE,IAAiB,IAEnByE,QAAM,EACNC,YAAU,EACVC,gBAAgB,EAChBC,iBAAiB,SACjBC,cACEpM,IAAAC,cAACD,IAAME,SAAQ,KACbF,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,UACEE,UAAW,yBACXgL,QAASA,KACPrD,GACEvD,GACAo9C,EACAl+C,EACAE,EACAN,EACAZ,EACAI,EACAgC,GACA9B,EACAo/C,IAEF56C,IAAiB,KAGlBhH,EAAE,aAELP,IAAAC,cAAA,KACEkL,QAASA,KAAOtM,EAAU+L,cAAkB,IAASrD,IAAiB,IACtEpH,UAAU,0BAETI,EAAE,aAOXP,IAAAC,cAAA,QAAME,UAAU,2BACdH,IAAAC,cAAA,OAAKqM,wBAAyB,CAAEC,OAAQhM,EAAE,gBAAgBiM,QAAQ,KAAM,UAAYC,MAAO,CAAEC,aAAc,OAAQC,SAAU,cAKnH,OAAjBg/C,SAAiB,IAAjBA,QAAiB,EAAjBA,GAAmBpsD,QAAS,GAC3BS,IAAAC,cAAA,OAAKE,UAAU,+BACbH,IAAAC,cAAA,OAAKE,UAAU,2CACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,MAAIE,UAAU,mBACZH,IAAAC,cAAA,YAAOM,EAAE,mBAAyB,IAAEA,EAAE,SAASq0C,gBAGnD50C,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OAAKE,UAAU,yBAAyBsM,MAAO,CAAEmgB,QAAS,SACvDrsB,EAAE,OAAO,IAACP,IAAAC,cAAA,YAAO4rD,IAA8B,IAAEtrD,EAAE,WAErC,OAAhBmrD,QAAgB,IAAhBA,GAAyB,QAATD,EAAhBC,EAAkBriD,eAAO,IAAAoiD,OAAT,EAAhBA,EAA2BT,YAAYpsD,MAAMqsD,SAAS1rD,QAAS,GAAKS,IAAAC,cAAAD,IAAAE,SAAA,KACnEF,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKkL,QAASA,KAAA,IAAA+gD,EAAA,OAAsB,OAAhBR,QAAgB,IAAhBA,GAAyB,QAATQ,EAAhBR,EAAkBriD,eAAO,IAAA6iD,OAAT,EAAhBA,EAA2Bf,cAC7CnrD,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWqe,UACjBxpB,UAAU,wBAGdH,IAAAC,cAAA,OAAKkL,QAASA,KAAA,IAAAghD,EAAA,OAAsB,OAAhBT,QAAgB,IAAhBA,GAAyB,QAATS,EAAhBT,EAAkBriD,eAAO,IAAA8iD,OAAT,EAAhBA,EAA2Bd,cAC7CrrD,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWggD,WACjBnrD,UAAU,4BAQtBH,IAAAC,cAAA,OAAKE,UAAU,qBACZwrD,IAAiD,GAA5BA,GAAkBpsD,QACtCS,IAAAC,cAACsoD,IAAY,MAEfvoD,IAAAC,cAACukD,IAAMrzC,OAAAC,OAAA,CAACP,IAAK66C,GAAsBrB,GAAS,CAAElqD,UAAU,KACrDwrD,IACCA,GAAkBpsD,QAClB0Z,cAAI0yC,GAAmB,CAACttC,EAAMrJ,IAE1BhV,IAAAC,cAAA,OAAKgV,IAAKD,EAAO7U,UAAU,oBACxBke,GACCA,EAAK9e,QACL0Z,cAAIoF,EAAM,CAACmpC,EAAM+D,IAEbvrD,IAAAC,cAAA,OACEgV,IAAKs2C,EACLprD,UAAU,oBACVgL,QAAU8L,IACJgzC,GACFhzC,EAAEyC,iBAEEvT,GACFrC,EACE0jD,EAAuB,mBAEF,IAAnBA,EAAa,SAEblmD,GAAeoF,oBAEf7H,EACE0hB,aAAY,CACVvU,QAAQ,EACRP,WACEzL,IAAAC,cAAA,OACEE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,QACPC,MAAM,QACNC,IAAI,gBAGRoB,QAASzM,EACP,wCAEF0L,YAAY,EACZgB,UAAWA,MAlMrDzN,eAA2CwK,GACzCnL,EAAUY,uBACewI,IAAU1R,IACjC1S,IAAOyL,0CAEQrM,IAAOC,kBAGxB2b,EAAUiB,gBA2LgC+K,GACAu3C,GAAwBoF,EAAsB,iBAC1CA,EAAsB,gBACxB1/C,GACE0/C,EAAS,GACTA,EAAkB,YAClBA,EAAsB,gBACtBA,EAAe,SACfA,EACyB,wBAEzBA,EAAY,MACZA,EAAa,OACbA,EAAkB,YAClBA,EAAkB,YAClBA,EAAyB,mBACzBA,EAAsB,kBAGxB5jD,EAAoB4jD,EAAe,UACnC9jD,EAAmB8jD,EAAsB,iBACzC9kD,EAAS8kD,EAAY,OACrB1kD,EAAe0kD,EAAkB,aACjCxkD,EAAsBwkD,EAAyB,oBAC/C5F,EAA2B4F,EAAkB,aAC7ClkD,EAA0BkkD,EAAiB,YAC3CpF,GAAwBoF,EAAsB,iBAE1C/kD,IAAUkH,YAAoBhH,KAChCC,GAAU4kD,EAAa,QAEzBhjD,GAAiBgjD,EAAS,IAC1BjgD,IAAiB,SAOzB66C,GAAwBoF,EAAsB,iBAC1CA,EAAsB,gBACxB1/C,GACE0/C,EAAS,GACTA,EAAkB,YAClBA,EAAsB,gBACtBA,EAAe,SACfA,EAA8B,wBAC9BA,EAAY,MACZA,EAAa,OACbA,EAAkB,YAClBA,EAAkB,YAClBA,EAAyB,mBACzBA,EAAsB,kBAGxB5jD,EAAoB4jD,EAAe,UACnC9jD,EAAmB8jD,EAAsB,iBACzC9kD,EAAS8kD,EAAY,OACrB1kD,EAAe0kD,EAAkB,aACjCxkD,EAAsBwkD,EAAyB,oBAC/C5F,EAA2B4F,EAAkB,aAC7ClkD,EAA0BkkD,EAAiB,YAC3CpF,GAAwBoF,EAAsB,iBAE1C/kD,IAAUkH,YAAoBhH,KAChCC,GAAU4kD,EAAa,QAEzBhjD,GAAiBgjD,EAAS,IAC1BjgD,IAAiB,OAMvB1I,EAAU0iB,cAAc,MAK9BvhB,IAAAC,cAAA,OAAKE,UAAU,0BACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAC+zC,IAAa,CACZ5zC,IAAKonD,EAAKna,MACVzhC,IAAK47C,EAAKxD,SACV/P,YAAajD,MAGjBhxC,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OACEE,UAAU,YACV4qC,MAAM,6BACNF,QAAQ,aAER7qC,IAAAC,cAAA,aACAD,IAAAC,cAAA,KAAG6qC,KAAK,OAAOE,SAAS,WACtBhrC,IAAAC,cAAA,UACEuoD,GAAG,OACHC,GAAG,OACHC,EAAE,OACF5d,KAAK,eACL6d,YAAY,KACZC,OAAO,eACPC,YAAY,MAEd7oD,IAAAC,cAAA,QACE6qC,KAAK,eACLvV,EAAE,sFAOdv1B,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,UAAKunD,EAAe,oB,QCviBrC4E,MAjEMA,KACnB,IAAI,EAAE7rD,GAAMC,cAGZ8lD,IAAWC,IAAI,CAACC,MAEhB,MAAMroC,EAAenf,YAAaC,GAAUA,EAAMC,SAASwf,WAEpD2tC,EAAeC,GAAoBjtD,mBAAS,CACjD4jD,aAAc,EACdH,MAAM,EACNS,QAAQ,EACRgH,OAAO,EACPxH,UAAU,EACVyH,cAAc,EACdxH,MAAO,IACPK,UAAU,EACVC,cAAe,MAGjB,OACEtjD,IAAAC,cAAAD,IAAAE,SAAA,MACe,OAAZie,QAAY,IAAZA,OAAY,EAAZA,EAAc5e,QAAS,GACtBS,IAAAC,cAAA,OAAKE,UAAU,+BACbH,IAAAC,cAAA,MAAIE,UAAU,wBAAuBH,IAAAC,cAAA,YAAOM,EAAE,QAAc,IAAEA,EAAE,cAChEP,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAACukD,IAAMrzC,OAAAC,OAAA,GAAKi7C,EAAa,CAAEtJ,SAAU5kC,EAAa5e,QAAU,IACzD4e,GACCA,EAAa5e,QACb0Z,cAAIkF,EAAc,CAACE,EAAMrJ,IAErBqJ,GACEre,IAAAC,cAAA,OAAKgV,IAAKD,EAAO7U,UAAU,oBAQzBH,IAAAC,cAACm0C,IAAY,CACXC,mBAAmB,QACnBC,aAAc,IAAIC,IAAoB,CACpCC,aAAa,sBAADxgD,OAAwBqqB,EAAK/V,aAAakE,QAAQ,OAAQ,KACtEioC,OAAQp2B,EAAKI,qBAEfi2B,YAAa,IAAIH,IAAoB,CACnCC,aAAa,sBAADxgD,OAAwBqqB,EAAK/V,aAAakE,QAAQ,OAAQ,KACtEioC,OAAQp2B,EAAKG,gBAEfm2B,OAAQt2B,EAAK/V,sB,SC2mBxBikD,MAloBWh7C,IAC2F,IAADi7C,EAAA,IADzF,sBAAEtL,EAAqB,6BAAEC,EAA4B,uBAAEC,EAAsB,oBAAEC,EAAmB,qBAC3HC,EAAoB,YAAEC,EAAW,oBAAEC,EAAmB,sBAAEC,EAAqB,mBAAEC,EAAkB,SAAEx3C,GAAUqH,EAC7G,IAAI,EAAEhR,GAAMC,cACRC,EAAWC,cACX7B,EAAYC,cAChB,MAAM2tD,EAAezsD,IAAMkB,OAAO,MAGlColD,IAAWC,IAAI,CAACC,MAEhB,IAAI,UAAErgD,GAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAMJ,EAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,SAClDiD,EAAkBC,GAAuBzE,mBAAS,KAClDsE,EAAkBC,GAAuBvE,mBAAS,KAClDoE,EAAiBC,GAAsBrE,mBAAS,IAChDoD,EAAOC,GAAYrD,oBAAS,IAC5BwD,EAAaC,GAAkBzD,mBAAS,KACxC0D,EAAoBC,GAAyB3D,mBAAS,KACtDsiD,EAAyBC,GAA8BviD,oBAAS,IAChEgE,EAAwBC,GAA6BjE,oBAAS,IAC9DkC,EAAYC,GAAiBnC,mBAAS,KACtCoC,EAAOC,IAAYrC,mBAAS,IAC5BsC,GAAYC,IAAiBvC,mBAAS,IACtC0C,GAAiCC,IACtC3C,mBAAS,IACJ4C,GAAsBC,IAA2B7C,mBAAS,KAC1D8C,GAAaC,IAAkB/C,mBAAS,KACxCgD,GAAWC,IAAgBjD,mBAAS,KACpCwiD,GAAkBC,IAAuBziD,oBAAS,IAClDkF,GAAeC,IAAoBnF,mBAAS,IAC5C4D,GAAY8+C,IAAiB1iD,oBAAS,IACtC0F,GAAiBC,IAAsB3F,mBAAS,KAChD4F,GAAgBC,IAAqB7F,mBAAS,KAC9C4E,GAAiBC,IAAsB7E,mBAAS,KAChDsD,GAAQC,IAAavD,mBAAS,KAC9BwC,GAASC,IAAczC,mBAAS,IAChCwxC,GAAkBC,IAAuBzxC,mBAAS,IAClDoqD,GAAsBC,IAA2BrqD,mBACtDL,YAAaC,GAAUA,EAAMC,SAAS4f,iBAAiBE,aAElD2qC,GAA2BC,IAAgCvqD,mBAChEL,YAAaC,GAAUA,EAAMC,SAAS4f,iBAAiBG,oBAElD4qC,GAAwBC,IAA6BzqD,mBAC1DL,YAAaC,GAAUA,EAAMC,SAAS4f,iBAAiBI,eAElD6qC,GAA6BC,IAClC3qD,mBACEL,YAAaC,GAAUA,EAAMC,SAAS4f,iBAAiBG,oBAKpDgrC,GAAUC,KADElrD,YAAaC,GAAUA,EAAMC,SAAS4nD,YACzBznD,oBAAS,KAClCsG,GAAWC,IAAgBvG,oBAAS,GACrCiC,GAAiBtC,YAAaC,GAAUA,EAAMC,SAASoC,gBACvDvC,GAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDqH,GAAWC,IAAgBhH,sBAC3B2xC,GAAiBC,IAAsB5xC,sBACvC8iD,GAAsBC,IAA2B/iD,oBAAS,IAC1DgjD,GAAeC,IAAoBjjD,mBAAS,KAC5CiI,GAAaC,IAAoBlI,oBAAS,IAC1CiJ,GAAci6C,IAAmBljD,mBAAS,KAC1C8qD,GAAyBC,IAA8B/qD,oBAAS,IAEhEmjD,GAAkBC,IAAuBpjD,oBAAS,IAClDwF,GAAaC,IAAkBzF,oBAAS,GACzC2kB,GAAwBhlB,YAC3BC,GAAUA,EAAMC,SAAS8kB,sBAItBqmC,GAAY,CAChBpH,aAAc,EACdH,MAAM,EACNS,QAAQ,EACR+G,UAAU,EACVC,OAAO,EACPxH,UAAU,EACVyH,cAAc,EACdxH,MAAO,IACPyH,aAAcA,IAAMP,IAAY,GAChCQ,YAAaA,IAAMR,IAAY,IA4EjC1qD,eAAesI,GACbkC,EACA+5C,EACAtgD,EACAugD,EACAC,EACAxhD,EACAE,EACAE,EACAgC,EACA9B,EACAqE,EACAi7C,EACA/5C,EACA47C,GA4BA,GA1BAtgD,EAAoBogD,GACpBtgD,EAAmBD,GACnBf,EAASD,GACTK,EAAeD,GACfG,EAAsBD,GACtB6+C,EAA2BmC,GAC3BzgD,EAA0B2gD,GAC1B7B,GAAwBh7C,GACxBk7C,GAAiBD,GACjBE,GAAgBj6C,GAEA,QAAZ4B,IACFg3C,EAAsBz9C,GACtB09C,EAA6B8C,GAC7B7C,EAAuB4C,GACvB3C,EAAoBr3C,GACpBs3C,EAAqB4C,GACrB3C,EAAYhhD,EAAE,SACdihD,EAAoBa,GACpBZ,EAAsBr6C,GACtBs6C,EAAmBp5C,IAGjB7F,IAAUkH,YAAoBhH,IAChCC,GAAUD,IAEQ,IAAhBohD,EACF,GAAkB,GAAdE,EACFz/C,GAAiBwF,GACjBnL,EAAU+L,cAAkB,IAC5B63C,IAAoB,QAEpB,GAAIr7C,EAAiB,CACnB,IAAI6C,EAAiB,CAAC,CACpBC,SAAU3J,EAAE,QACZ6J,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,QAGvBsL,EAAOlU,IAAOH,sBAAwB,WAAa8T,EACvDvJ,EAAS+J,KAAKD,EAAM,CAClBN,eAAgBA,SAGlBQ,OAAOC,KACL7mB,IAAOgL,WACP,WACAmb,EAAS,YAAcS,OAAOE,YAAc,IAAM,IAAM,WAM9D,GAAkB,GAAds5C,EAAqB,CACvB,GAAoB,UAAjB5B,IAA8Br+B,GAI7B,OAHAxf,GAAiBwF,GACjBnL,EAAU+L,cAAkB,SAC5B63C,IAAoB,GAGxB78C,IAAa,GACb,IAAIoC,QAAqBC,IAAU1R,IACjC1S,IAAOgF,sCACP,oBACA4a,GAEF,GAAIuE,EAAa/kB,IAAOC,kBAAmB,CACzCse,EAAcwG,EAAa/kB,IAAOG,gBAElC,IAAI+gE,EAAkB,GAClBC,EAAgB,GAEpBp8C,EAAa/kB,IAAOG,eAAe61B,IAAKorC,IACtC,IAAIC,EAAS,CACX9lD,MAAO6lD,EAAQ/lC,YACf/f,MAAO8lD,EAAQE,UACfvD,OAAQpxC,WAAWy0C,EAAQ/mC,UAEzB+mC,EAAQE,YAAc5mD,IACxBwmD,EAAgB35C,KAAK85C,GACZD,EAAQE,YAAc9gD,IAC/B/B,GAAS2iD,EAAQ5iD,OACjBG,GAAcyiD,EAAQ1iD,YACM,aAAxB0iD,EAAQ/lC,aACVxc,GAAWuiD,EAAQxiD,SAErBG,GAAmCqiD,EAAQ/mC,SACN,OAAjC+mC,EAAQpiD,qBACVC,GAAwBmiD,EAAQpiD,sBAEhCC,GAAwB,IAE1BkiD,EAAc55C,KAAK85C,MAGvBliD,GAAe+hD,GACf7hD,GAAa8hD,GAIftC,IAAoB,GA8C1BtiD,eAAiCmE,GAC/B,IAAI4E,EAAS1kB,IAAO2J,uBAChBgb,EAAO,GACPR,QAAqBC,IAAU1R,IAAIgS,GAErCP,EAAa/kB,IAAOC,mBACpB8kB,EAAa/kB,IAAOG,eAAemc,OAAS,IAE5CiJ,EAAOR,EAAa/kB,IAAOG,eAAeyvC,OACvClqB,GAAMA,EAAE2V,cAAgB3a,GAGvB6E,EAAKjJ,OAAS,GAChB2E,GAAmBsE,EAAK,KA1DxBH,CAAkB27C,GAClBx/C,GAAiBwF,GACjB+3C,IAAc,GA6DpBviD,eAAmCiE,GAGjC,GAFAuB,GAAmB,IACnBE,GAAkB,IACK,KAAnBzB,IAA2BkG,YAAoBlG,GAAkB,CACnE,IAAIuE,QAAqBC,IAAU1R,IACjC1S,IAAOwI,6CACP,oBACAoX,GAEEuE,EAAa/kB,IAAOC,mBACoB,MAAtC8kB,EAAa/kB,IAAOG,gBACyB,MAA3C4kB,EAAa/kB,IAAOG,eAAeolB,OACrCxD,GACEgD,EAAa/kB,IAAOG,eAAeolB,KAAsB,iBAE3DtD,GACE8C,EAAa/kB,IAAOG,eAAeolB,KAAqB,kBA5E9DZ,CAAoBoC,GAEhBO,EAAOlU,IAAO1B,gBAChB,SACAqvD,EACA,OACAh6C,EACA,eACArJ,EAA4B,gBAC5B,aACA0hD,EARF,IAmBIpjD,EAAQ,CACVgL,eAVEA,EAAiB,CAAC,CACpBC,SAAU3J,EAAE,QACZ6J,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,OACxB,CACDiL,SAAU85C,EACV55C,SAAUG,KAOZ9J,EAAS+J,KAAKD,EAAMtL,GACpB2G,IAAa,IA0DnB,OApRAtG,oBAAU,MAMVE,iBACEX,EAAUY,gBAEV,MAAMgyC,EAAsB5e,iBAAO9zB,GAAesM,GACnB,sBAAtBA,EAAK1L,cAEY,IAAD+xC,EAAAC,EAArBF,GACFR,IAAyC,QAAtBS,EAAAD,EAAoB,UAAE,IAAAC,OAAA,EAAtBA,EAAwB9xC,aAAiC,QAAxB+xC,EAAEF,EAAoB,UAAE,IAAAE,OAAA,EAAtBA,EAAwB9xC,eAGhFhB,EAAUiB,gBAfVC,GAkBFP,iBACE,GAAmC,GAA/BuqD,GAAkC,CACpCK,IAA2B,GAC3B,IAAIpiD,QAAqBC,IAAU1R,IACjC1S,IAAO0F,uBACP,eACAsnD,GAAmB,qBAGrB,GAAI7oC,EAAa/kB,IAAOC,kBAAmB,CAGzC,MAAMslB,EAAOR,EAAa/kB,IAAOG,eAAeunE,iBAAiB93B,OAC9DlqB,GAA0B,UAApBA,EAAE05C,eAEXuH,GAA6BphD,EAAKjJ,QAElC,IAAIqrD,EAAe,GAEnB,IAAK,IAAI5/B,EAAI,EAAGA,EAAIxiB,EAAKjJ,OAAQyrB,GAAK,GACpC4/B,EAAapgD,KAAKhC,EAAKmQ,MAAMqS,EAAGA,EAAI,KAEtC0+B,GAAwBkB,GAGxB,MAAMC,EAAwB7iD,EAC5B/kB,IAAOG,eACPunE,iBAAiB93B,OAAQlqB,GAA0B,WAApBA,EAAE05C,eAEnC2H,GAA+Ba,EAAsBtrD,QACrD,IAAIurD,EAAoB,GAExB,IAAK,IAAI9/B,EAAI,EAAGA,EAAI6/B,EAAsBtrD,OAAQyrB,GAAK,GACrD8/B,EAAkBtgD,KAAKqgD,EAAsBlyC,MAAMqS,EAAGA,EAAI,KAE5D8+B,GAA0BgB,GAC1BV,IAA2B,GAY7BA,IAA2B,IAjE7BW,IAEC,IAiRD/qD,IAAAC,cAAAD,IAAAE,SAAA,KACGoH,IACCtH,IAAAC,cAAA,OAAKE,UAAU,kDACbH,IAAAC,cAACuL,IAAU,CACTC,WAAazL,IAAAC,cAAA,OACXE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,OACPC,MAAM,OACNC,IAAI,gBAENC,cAAetL,EAAE,UACjBuL,eAAgBvL,EAAE,YAClB8K,MAAI,EAIJU,SAAUA,KACRxE,IAAiB,IAEnByE,QAAM,EACNC,YAAU,EACVC,gBAAgB,EAChBC,iBAAiB,SACjBC,cACEpM,IAAAC,cAACD,IAAME,SAAQ,KACbF,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,UACEE,UAAW,yBACXgL,QAASA,KACPrD,GACEvD,GACAo9C,EACAl+C,EACAE,EACAN,EACAZ,EACAI,EACAgC,GACA9B,EACAo/C,IAEF56C,IAAiB,KAGlBhH,EAAE,aAELP,IAAAC,cAAA,KACEkL,QAASA,KAAOtM,EAAU+L,cAAkB,IAASrD,IAAiB,IACtEpH,UAAU,0BAETI,EAAE,aAOXP,IAAAC,cAAA,QAAME,UAAU,2BACdH,IAAAC,cAAA,OAAKqM,wBAAyB,CAAEC,OAAQhM,EAAE,gBAAgBiM,QAAQ,KAAM,UAAYC,MAAO,CAAEC,aAAc,OAAQC,SAAU,cAKnIw9C,KAAiD,OAAtBN,SAAsB,IAAtBA,QAAsB,EAAtBA,GAAwBtqD,QAAS,GAC5DS,IAAAC,cAAA,OAAKE,UAAU,+BACbH,IAAAC,cAAA,OAAKE,UAAU,2CACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,MAAIE,UAAU,mBACXI,EAAE,eAAe,IAACP,IAAAC,cAAA,YAAOM,EAAE,SAAgB,IAAKA,EAAE,UAAUq0C,gBAGjE50C,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OAAKE,UAAU,yBAAyBsM,MAAO,CAAEmgB,QAAS,SACvDrsB,EAAE,OAAO,IAACP,IAAAC,cAAA,YAAO8pD,IAAoC,IACrDxpD,EAAE,YAEQ,OAAZksD,QAAY,IAAZA,GAAqB,QAATD,EAAZC,EAAcpjD,eAAO,IAAAmjD,OAAT,EAAZA,EAAuBxB,YAAYpsD,MAAMqsD,SAAS1rD,QAAS,GAAKS,IAAAC,cAAAD,IAAAE,SAAA,KAC/DF,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKkL,QAASA,KAAA,IAAAuhD,EAAA,OAAkB,OAAZD,QAAY,IAAZA,GAAqB,QAATC,EAAZD,EAAcpjD,eAAO,IAAAqjD,OAAT,EAAZA,EAAuBvB,cACzCnrD,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWqe,UACjBxpB,UAAU,wBAGdH,IAAAC,cAAA,OAAKkL,QAASA,KAAA,IAAAwhD,EAAA,OAAkB,OAAZF,QAAY,IAAZA,GAAqB,QAATE,EAAZF,EAAcpjD,eAAO,IAAAsjD,OAAT,EAAZA,EAAuBtB,cACzCrrD,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWggD,WACjBnrD,UAAU,4BAOY,GAAjC0pD,GAAuBtqD,QACtBS,IAAAC,cAAA,OAAKE,UAAU,mBACbH,IAAAC,cAACsoD,IAAY,OAGjBvoD,IAAAC,cAAA,OAAKE,UAAU,qBACbH,IAAAC,cAACukD,IAAMrzC,OAAAC,OAAA,CACLP,IAAK47C,GACDpC,GAAS,CACblqD,UAAU,uBAET0pD,IACCA,GAAuBtqD,QACvB0Z,cAAI4wC,GAAwB,CAACxrC,EAAMrJ,IAE/BhV,IAAAC,cAAA,OAAKgV,IAAKD,EAAO7U,UAAU,oBACxBke,GACCA,EAAK9e,QACL0Z,cAAIoF,EAAM,CAACmpC,EAAM+D,IAEbvrD,IAAAC,cAAA,OACEgV,IAAKs2C,EACLprD,UAAU,oBACVgL,QAAU8L,IACJgzC,GACFhzC,EAAEyC,iBAEEvT,GACFrC,EACE0jD,EAAuB,mBAEF,IAAnBA,EAAa,SAEblmD,GAAeoF,oBAEf7H,EACE0hB,aAAY,CACVvU,QAAQ,EACRP,WACEzL,IAAAC,cAAA,OACEE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,QACPC,MAAM,QACNC,IAAI,gBAGRoB,QAASzM,EACP,wCAEF0L,YAAY,EACZgB,UAAWA,MAxMrDzN,eAA2CwK,GACzCnL,EAAUY,uBACewI,IAAU1R,IACjC1S,IAAOyL,0CAEQrM,IAAOC,kBAGxB2b,EAAUiB,gBAiMgC+K,GACAu3C,GAAwBoF,EAAsB,iBAC1CA,EAAsB,gBACxB1/C,GACE0/C,EAAS,GACTA,EAAkB,YAClBA,EAAsB,gBACtBA,EAAe,SACfA,EACyB,wBAEzBA,EAAY,MACZA,EAAa,OACbA,EAAkB,YAClBA,EAAkB,YAClBA,EAAyB,mBACzBA,EAAsB,kBAGxB5jD,EAAoB4jD,EAAe,UACnC9jD,EAAmB8jD,EAAsB,iBACzC9kD,EAAS8kD,EAAY,OACrB1kD,EAAe0kD,EAAkB,aACjCxkD,EAAsBwkD,EAAyB,oBAC/C5F,EAA2B4F,EAAkB,aAC7ClkD,EAA0BkkD,EAAiB,YAC3CpF,GAAwBoF,EAAsB,iBAE1C/kD,IAAUkH,YAAoBhH,KAChCC,GAAU4kD,EAAa,QAEzBhjD,GAAiBgjD,EAAS,IAC1BjgD,IAAiB,SAOzB66C,GAAwBoF,EAAsB,iBAC1CA,EAAsB,gBACxB1/C,GACE0/C,EAAS,GACTA,EAAkB,YAClBA,EAAsB,gBACtBA,EAAe,SACfA,EAA8B,wBAC9BA,EAAY,MACZA,EAAa,OACbA,EAAkB,YAClBA,EAAkB,YAClBA,EAAyB,mBACzBA,EAAsB,kBAGxB5jD,EAAoB4jD,EAAe,UACnC9jD,EAAmB8jD,EAAsB,iBACzC9kD,EAAS8kD,EAAY,OACrB1kD,EAAe0kD,EAAkB,aACjCxkD,EAAsBwkD,EAAyB,oBAC/C5F,EAA2B4F,EAAkB,aAC7ClkD,EAA0BkkD,EAAiB,YAC3CpF,GAAwBoF,EAAsB,iBAE1C/kD,IAAUkH,YAAoBhH,KAChCC,GAAU4kD,EAAa,QAEzBhjD,GAAiBgjD,EAAS,IAC1BjgD,IAAiB,OAMvB1I,EAAU0iB,cAAc,MAK9BvhB,IAAAC,cAAA,OAAKE,UAAU,0BACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAC+zC,IAAa,CACZ5zC,IAAKonD,EAAKna,MACVzhC,IAAK47C,EAAKxD,SACV/P,YAAajD,MAGjBhxC,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OACEE,UAAU,YACV4qC,MAAM,6BACNF,QAAQ,aAER7qC,IAAAC,cAAA,aACAD,IAAAC,cAAA,KAAG6qC,KAAK,OAAOE,SAAS,WACtBhrC,IAAAC,cAAA,UACEuoD,GAAG,OACHC,GAAG,OACHC,EAAE,OACF5d,KAAK,eACL6d,YAAY,KACZC,OAAO,eACPC,YAAY,MAEd7oD,IAAAC,cAAA,QACE6qC,KAAK,eACLvV,EAAE,sFAOdv1B,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,UAAKunD,EAAe,oB,OC5oBrCoF,MAXKA,IAEhB5sD,IAAAC,cAAA,OAAKE,UAAU,eAAewL,MAAM,KAAKD,OAAO,KAAKm/B,QAAQ,YAAYC,KAAK,OAAOC,MAAM,8BACvF/qC,IAAAC,cAAA,QAAMs1B,EAAE,oYAAoYuV,KAAK,iBACjZ9qC,IAAAC,cAAA,QAAME,UAAU,oBAAoBo1B,EAAE,ybAAybuV,KAAK,iBACpe9qC,IAAAC,cAAA,QAAME,UAAU,oBAAoBo1B,EAAE,gbAAgbuV,KAAK,kB,oCCsGpd+hB,MAxFWA,KACxB,IAAI,EAAEtsD,GAAMC,cACZ,MAAOwM,EAAS8/C,GAAcztD,mBAAS,IACvC,IAAI0nC,EAAmB/nC,YAAaC,GAAUA,EAAMC,SAASmjB,WAC7D,MAAM0uB,EAAqB/xC,YAAaC,GAAUA,EAAMumC,cAAclvB,aAC/DypB,EAAgBC,GAAqB3gC,mBAAS,KAC9CwxC,EAAkBC,GAAuBzxC,mBAAS0nC,EAAiBlU,OACvElqB,GAAMA,EAAEu+B,MAAQzzC,aAAaC,QAAQC,IAAWC,YACjD,GAAG8V,IAoDL,OAnCApK,oBAAU,KACR,QAAwB8gB,GAApB2mB,EAA+B,CACjC,MAAMqB,EAAe7xC,cAAIwwC,EAAiB,GAAI,QACxC8K,EAAat7C,cAAIwwC,EAAiB,GAAI,MAC5C,GACEtzC,aAAaC,QAAQC,IAAWC,YACe,cAA/CH,aAAaC,QAAQC,IAAWC,WAChC,CACA,IAAI00C,EAAWvB,EAAiBlU,OAC7BlqB,GAAMA,EAAEu+B,MAAQzzC,aAAaC,QAAQC,IAAWC,YACjD,QAEcwsB,GAAZkoB,GACFtI,EAAkBsI,EAASpB,MAC3B4J,EAAoBxI,EAAS5+B,MAE7Bs2B,EAAkBoI,GAClB0I,EAAoBe,SAGtB7R,EAAkBoI,GAClB0I,EAAoBe,QAGtB7R,EAAkB,MAClB8Q,EAAoB,IAErB,CAAC/J,EAAkBgK,IAEtBzxC,oBAAU,UACe8gB,GAApBywB,GA7CLrxC,iBACE,IAAIwI,QAAqBC,IAAU1R,IACjC1S,IAAO+I,yCAEL,qBACsBwzB,GAApBywB,GAAiClnC,YAAoBknC,GAAqB,EAAIA,GAHlFhtD,uBAOF,GAAImkB,EAAa/kB,IAAOC,kBAAmB,CACzC,MAAM6pE,EAAW/kD,EAAa/kB,IAAOG,eAAe61B,IAAIqrC,GAAUA,EAAgB,SAClFwI,EAAWC,IAmCXC,IAED,CAACnc,IAGF7wC,IAAAC,cAAAD,IAAAE,SAAA,KACG8M,GAAWA,EAAQzN,OAAO,GACzBS,IAAAC,cAAA,OAAKE,UAAU,kCACbH,IAAAC,cAAA,OAAKE,UAAU,kBAMbH,IAAAC,cAAC2sD,EAAW,OAEd5sD,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAACgtD,IAAO,CAACC,SAAU,IAClBlgD,EACC6lB,OAAOhB,IAASloB,YAAoBkoB,IACpC5Y,IAAI,CAAC4Y,EAAM7c,IACZhV,IAAAC,cAAA,QAAMgV,IAAKD,EAAO7U,UAAU,0BAA0B8xC,IAAMpgB,UCwH1Ds7B,MAjMQA,KACrB,IAAI,EAAE5sD,GAAMC,cACRumC,EAAmB/nC,YAAaC,GAAUA,EAAMC,SAASmjB,WAC7D,MAAM0uB,EAAqB/xC,YAAaC,GAAUA,EAAMumC,cAAclvB,aAC/DypB,EAAgBC,GAAqB3gC,mBAAS,KAC9CwxC,EAAkBC,GAAuBzxC,mBAAS0nC,EAAiBlU,OACvElqB,GAAMA,EAAEu+B,MAAQzzC,aAAaC,QAAQC,IAAWC,YACjD,GAAG8V,KACE0jD,EAAeC,GAAoBhuD,oBAAS,GACnD,IAAI,UAAE8G,GAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAOusD,EAAaC,GAAkBluD,mBACpCL,YAAaC,GAAUA,EAAMC,SAASme,UAExC,IAAIxe,EAAYC,cAsDhB,OArCAQ,oBAAU,KACR,QAAwB8gB,GAApB2mB,EAA+B,CACjC,MAAMqB,EAAe7xC,cAAIwwC,EAAiB,GAAI,QACxC8K,EAAat7C,cAAIwwC,EAAiB,GAAI,MAC5C,GACEtzC,aAAaC,QAAQC,IAAWC,YACe,cAA/CH,aAAaC,QAAQC,IAAWC,WAChC,CACA,IAAI00C,EAAWvB,EAAiBlU,OAC7BlqB,GAAMA,EAAEu+B,MAAQzzC,aAAaC,QAAQC,IAAWC,YACjD,QAEcwsB,GAAZkoB,GACFtI,EAAkBsI,EAASpB,MAC3B4J,EAAoBxI,EAAS5+B,MAE7Bs2B,EAAkBoI,GAClB0I,EAAoBe,SAGtB7R,EAAkBoI,GAClB0I,EAAoBe,QAGtB7R,EAAkB,MAClB8Q,EAAoB,IAIrB,CAAC/J,EAAkBgK,IAEtBzxC,oBAAU,KACa,IAAlBygC,GA/CcvgC,WACjB6tD,GAAiB,GACjB,IAAIrlD,QAAqBC,IAAU1R,IACjC1S,IAAOuG,qBAAPvG,iCAGAk8C,GAEE/3B,EAAa/kB,IAAOC,oBACtBqqE,EAAevlD,EAAa/kB,IAAOG,gBACnCyb,EAAUue,aAAWpV,EAAa/kB,IAAOG,kBAE3CiqE,GAAiB,IAoCfG,IAED,CAACztB,IAGF//B,IAAAC,cAAA,OAAKE,UAAU,2BACXitD,EA2GAptD,IAAAC,cAAA,OAAKwM,MAAO,CAAEmgB,QAAS,OAAQ6gC,cAAe,MAAO9hD,MAAO,OAAQmhB,IAAK,SACvE9sB,IAAAC,cAAA,OAAKwM,MAAO,CAAEd,MAAO,SACnB3L,IAAAC,cAAC4/C,IAAQ,CAACn0C,OAAQ,IAAKo0C,UAAU,6BAA6BvK,eAAe,qCAE/Ev1C,IAAAC,cAAA,OAAKE,UAAU,WAAWsM,MAAO,CAAEd,MAAO,SACxC3L,IAAAC,cAAC4/C,IAAQ,CAACn0C,OAAQ,IAAKo0C,UAAU,6BAA6BvK,eAAe,qCAE/Ev1C,IAAAC,cAAA,OAAKE,UAAU,WAAWsM,MAAO,CAAEd,MAAO,SACxC3L,IAAAC,cAAC4/C,IAAQ,CAACn0C,OAAQ,IAAKo0C,UAAU,6BAA6BvK,eAAe,sCAlHjFv1C,IAAAC,cAACytD,IAAM,CACLvtD,UAAU,sBACVwtD,aAAc,EACdC,cAAe,EACfC,cAAeA,OAGfC,SAAWC,MAGXj9B,KAAMw8B,EAAY/tD,OAAS,EAC3B8jD,SAAU,CACR2K,MAAO,IACPC,sBAAsB,EACtBC,mBAAmB,GAErBC,YAAa,CACXC,KAAM,CACJR,cAAe,EACfD,aAAc,GAEhBU,KAAM,CACJT,cAAe,EACfD,aAAc,GAEhBW,IAAK,CACHV,cAAe,EACfD,aAAc,GAEhBY,EAAG,CACDX,cAAe,EACfD,aAAc,KAIjBL,GACCA,EAAY/tD,OAAS,EAErB0uC,MAAMC,KAAK,CAAE3uC,OAAQ2oB,KAAKC,KAAKmlC,EAAY/tD,OAAS,KAAM0Z,IAAI,CAACu1C,EAAGxjC,IAChE/R,cAAIq0C,EAAa,CAACjvC,EAAMrJ,IAEpBhV,IAAAC,cAACwuD,IAAW,CAACx5C,IAAKD,GAChBhV,IAAAC,cAAA,OACEE,UAAW,iBAAoBke,EAAKtqB,IAAuB,GAAjB,gBAC1CoX,QAAU8L,IACJoH,EAAKtqB,KAAmB,YAAZsqB,EAAKtqB,IAEjB8K,EADEsH,EACQ2a,cAAgB,GAEhBS,cAAc,IAGtBlD,EAAKtqB,MACP0W,OAAOL,SAAS6b,KAAI,GAAAjyB,OAAMqc,0KAAYC,wBAA0B,IAAEtc,OAC7DqqB,EAAKtqB,QA+BhBiM,IAAAC,cAAA,OACEG,IAAKie,EAAKkd,YACV3vB,IAAI,SACJzL,UAAU,UACVmoD,QAAQ,aAQpB,QC4NGoG,MAhYcA,KAAO,IAADrgD,GAC7B,EAAE9N,GAAMC,cACR3B,EAAYC,eAEZ,UAAEqH,GAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAMJ,EAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,QACnDU,EAAiBtC,YAAaC,GAAUA,EAAMC,SAASoC,iBACtDkG,EAAgBC,GAAqBpI,oBAAS,IAC9CsvD,EAAgBC,GAAqBvvD,mBAAS,IAC9CwvD,EAAmBC,GAAwBzvD,mBAAS,IACpD0vD,EAAiBC,GAAsB3vD,oBAAS,IAChDsoC,EAAcC,GAAmBvoC,mBAAS,IAC3CqI,EAAoB1I,YACvBC,GAAUA,EAAMC,SAASwI,mBAE5B,IAAIw4B,EAAYlhC,YAAaC,GAAUA,EAAM8B,UAAUC,UAEvD1B,oBAAU,KACJ6G,GACF8oD,KAID,IAEH3vD,oBAAU,KACJ6G,GACF2iC,KAED,CAACxnC,EAAgB6E,IAGpB,MAAM8oD,EAA8BzvD,UAClC,IAI2C0vD,EAAAC,EAJvCnnD,QAAqBC,IAAU1R,IACjC1S,IAAOsM,qCAGL6X,EAAa/kB,IAAOC,oBACtB0rE,EAAoD,QAAnCM,EAAClnD,EAAa/kB,IAAOG,sBAAc,IAAA8rE,OAAA,EAAlCA,EAAoCP,gBACtDG,EACoC,QADhBK,EAClBnnD,EAAa/kB,IAAOG,sBAAc,IAAA+rE,OAAA,EAAlCA,EAAoCN,qBAgC1CrvD,eAAespC,IACb,IAAI9gC,QAAqBC,IAAU1R,IACjC1S,IAAOoJ,iCAGL+a,EAAa/kB,IAAOC,mBACtB0kD,EAAgB5/B,EAAa/kB,IAAOG,gBAIxC,OACE4c,IAAAC,cAAAD,IAAAE,SAAA,KACG6uD,GACG/uD,IAAAC,cAAA,OAAKE,UAAU,kDACbH,IAAAC,cAACuL,IAAU,CACTgqC,QAAM,EACN1pC,eAAgBvL,EAAE,MAClB0M,UAAWA,KACT+hD,GAAmB,KAGrBhvD,IAAAC,cAAA,QAAME,UAAU,2BACbI,EAAE,+BAGLP,IAAAC,cAAA,OAAKE,UAAU,gCACbH,IAAAC,cAAA,OAAKE,UAAU,kCACbH,IAAAC,cAAA,OAAKE,UAAU,SAASI,EAAE,6BAC1BP,IAAAC,cAAA,OAAKE,UAAU,+BACZwnC,GACCA,EAAapoC,OAAS,GACtB0Z,cAAI0uB,EAAc,CAACtpB,EAAMrJ,KACvB,MAAMq2B,EAG2B,IAFJ,GAA1BhtB,EAAqB,eAClBA,EAAuB,iBACvBA,EAAqB,iBACG,GAA1BA,EAAqB,eACnB,MAC4B,GAA1BA,EAAqB,eACrBA,EAAuB,iBACvBA,EAAqB,gBACvBA,EAAqB,eACvB,IACJ,OACEre,IAAAC,cAAA,OAAKgV,IAAKD,EAAO7U,UAAU,gCACzBH,IAAAC,cAAA,OAAKE,UAAU,qBACbH,IAAAC,cAAA,QAAME,UAAU,oBACdH,IAAAC,cAAA,QACEE,UAAU,kBACVsM,MAAO,CACL2gC,UACE/B,GAAc,GAAE,2BAAAr3C,OAEDq3C,EAAa,IAAO,IAAG,YAK9CrrC,IAAAC,cAAA,QAAME,UAAU,qBACdH,IAAAC,cAAA,QACEE,UAAU,kBACVsM,MAAO,CACL2gC,UACE/B,EAAa,GAAE,UAAAr3C,OACAq3C,EAAa,KAAQ,IAAG,4BAM/CrrC,IAAAC,cAAA,OAAKE,UAAU,qBACZkrC,EAAWniC,QAAQ,GACpBlJ,IAAAC,cAAA,YAAM,OAIVD,IAAAC,cAAA,OAAKE,UAAU,gCACbH,IAAAC,cAAA,QAAME,UAAU,SAEbI,EAAE,2BAA2B,KAAG,KAEnCP,IAAAC,cAAA,QAAME,UAAU,UACbwN,YACCiC,WAAWyO,EAAa,QACxB,GACA,IAGJre,IAAAC,cAAA,OAAKE,UAAU,QAAQke,EAAW,MAClCre,IAAAC,cAAA,OAAKE,UAAU,kBACZI,EAAE,YAAa,IAChBP,IAAAC,cAAA,SAC6B,GAA1Boe,EAAqB,eAClBA,EAAuB,iBACvBA,EAAqB,eAAG,IAAI,KAC7BA,EAAqB,gBACrB,IACJ9d,EAAE,SAAS,YAU9BP,IAAAC,cAAA,OAAKE,UAAU,0BACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OACEG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGR5L,IAAAC,cAAA,WACED,IAAAC,cAAA,KAAGE,UAAU,sCACVI,EAAE,8BAQnBP,IAAAC,cAAA,OAAKE,UAAU,iCACC,GAAbgG,GACCnG,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAAA,OACEkL,QAASA,KACPtM,EAAU0iB,cAAc,MAGzBhhB,EAAE,UAELP,IAAAC,cAAA,OACEkL,QAASA,KACPtM,EAAU4iB,cAAiB,MAG5BlhB,EAAE,eAKV4F,GACCnG,IAAAC,cAAA,OAAKE,UAAU,gCACZgG,GACCnG,IAAAC,cAAA,OAAKE,UAAU,QACbH,IAAAC,cAAA,OAAKE,UAAU,SAASQ,EAAqB,UAC5C+G,GACC1H,IAAAC,cAAA,OAAKE,UAAU,SACZI,EAAE,cAAc,KAAGA,EAAE2/B,EAAUkvB,QAAQxa,eACxC50C,IAAAC,cAAA,OACEE,UAAU,iBACVC,IAA6B,QAA1BiO,EAAE1N,EAAuB,kBAAC,IAAA0N,OAAA,EAAxBA,EAAiC,SAMhDrO,IAAAC,cAAA,OAAKE,UAAU,QACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,WAAMM,EAAE,WAAW,KACnBP,IAAAC,cAAA,OAAKE,UAAU,UACZwN,YACCrM,EAAesM,qBACftM,EAAeqO,mBACf,GACA,IAGJ3P,IAAAC,cAAA,WACGM,EAAE,eAAe,KAAEP,IAAAC,cAAA,YAAO0uD,EAAezlD,QAAQ,KAEpDlJ,IAAAC,cAAA,WACGM,EAAE,kBAAkB,IAAE,IACvBP,IAAAC,cAAA,YAAO4uD,EAAkB3lD,QAAQ,MAGrClJ,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,UACEkL,QAASA,KAGLtM,EAFEsH,EAEQ2a,cAAgB,GAEhBS,cAAc,MAI5BvhB,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW8/B,QACjBjrC,UAAU,uBAEXI,EAAE,YAELP,IAAAC,cAAA,UACEkL,QAASA,KACHhF,EArOxB3G,iBACE,IACEspC,WACyB7gC,IAAU1R,IAAI1S,IAAO+H,6BAC7B3I,IAAOC,kBACtB2b,EAAUiiB,cAAgB,EAAM,IAEhCkuC,GAAmB,GAErB,MAAO3mC,GACPxpB,EAAUiL,cAAoB,EAAOue,KA4NnBgnC,GAEAxwD,EAAU0iB,cAAc,MAI5BvhB,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWgkD,SACjBnvD,UAAU,uBAEXI,EAAE,aAELP,IAAAC,cAAA,UACEkL,QAASA,KACHhF,EAtOxB3G,iBACEiI,GAAkB,SACOQ,IAAU1R,IAAI1S,IAAOuL,yBAQ9CqY,GAAkB,GA6NEgC,GAEA5K,EAAU0iB,cAAc,MAI3B/Z,EACCxH,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,WACPD,OAAQ,WACRwC,WAAY,KAIhBlO,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW6C,QACjBhO,UAAU,uBAGbI,EAAE,eAMVonC,GACCA,EAAapoC,OAAS,GACtB0Z,cAAI0uB,EAAc,CAACtpB,EAAMrJ,KACvB,GAA+B,IAA3BqJ,EAAqB,eACvB,OAAO,KAGT,MAAMgtB,EAG2B,IAFJ,GAA1BhtB,EAAqB,eAClBA,EAAuB,iBACvBA,EAAqB,iBACG,GAA1BA,EAAqB,eACnB,GAC4B,GAA1BA,EAAqB,eACrBA,EAAuB,iBACvBA,EAAqB,gBACvBA,EAAqB,eACvB,IACEitB,EAAsBpjB,KAAKqjB,MAAMF,GACvC,OACErrC,IAAAC,cAAA,OAAKE,UAAU,uCACbH,IAAAC,cAAA,OAAKE,UAAU,uBACVI,EAAE,6BAA8B,IACjCP,IAAAC,cAAA,SAC6B,GAA1Boe,EAAqB,eAClBA,EAAuB,iBACvBA,EAAqB,eAAG,IAAI,KAC7BA,EAAqB,gBACrB,KAETre,IAAAC,cAAA,OAAKE,UAAU,+BACbH,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,QACEE,UAAU,2BACVsM,MAAO,CACLd,MAGiC,IAFJ,GAA1B0S,EAAqB,eAClBA,EAAuB,iBACvBA,EAAqB,iBACC,GAA1BA,EAAqB,eACjB,MAC4B,GAA1BA,EAAqB,eACnBA,EAAuB,iBACvBA,EAAqB,gBACvBA,EAAqB,eACrB,IACF,QAIZre,IAAAC,cAAA,YAAOqrC,EAAoB,a,SCw+BlCikB,UAzzCA3wD,IACb,IAAI,EAAE2B,GAAMC,cACRC,EAAWC,cACX7B,EAAYC,cAGhBwnD,IAAWC,IAAI,CAACC,MAGhB,MAAM7lD,EAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,QAEzD,IAAI4uD,GAAkB,EACtB,MAAMpX,EAAY7uC,SAAS8tC,eAAe,kBACnCoY,EAAcC,GAAmBrwD,oBAAS,IAC1ConD,EAAoBC,GAAyBrnD,mBAAS,CAC3DqK,IAAK,EACLS,MAAO,SAEFw8C,EAAgBC,GAAqBvnD,mBAAS,KAC9Cuf,EAAOioC,GAAYxnD,mBACxBL,YAAaC,GAAUA,EAAMC,SAAS0f,SAEjC/a,EAAkBC,GAAuBzE,mBAAS,KAClDsE,EAAkBC,IAAuBvE,mBAAS,KAClDoE,GAAiBC,IAAsBrE,mBAAS,IAChDoD,GAAOC,IAAYrD,oBAAS,IAC5BwD,GAAaC,IAAkBzD,mBAAS,KACxC0D,GAAoBC,IAAyB3D,mBAAS,KACtDsiD,GAAyBC,IAA8BviD,oBAAS,IAChEgE,GAAwBC,IAA6BjE,oBAAS,IAC9DkC,GAAYC,IAAiBnC,mBAAS,KACtCoC,GAAOC,IAAYrC,mBAAS,IAC5BsC,GAAYC,IAAiBvC,mBAAS,IACtC0C,GAAiCC,IACtC3C,mBAAS,IACJ4C,GAAsBC,IAA2B7C,mBAAS,KAC1D8C,GAAaC,IAAkB/C,mBAAS,KACxCgD,GAAWC,IAAgBjD,mBAAS,KACpCwF,GAAaC,IAAkBzF,oBAAS,IACxCwiD,GAAkBC,IAAuBziD,oBAAS,IAClDkF,GAAeC,IAAoBnF,mBAAS,IAC5C4D,GAAY8+C,IAAiB1iD,oBAAS,IACtC0F,GAAiBC,IAAsB3F,mBAAS,KAChD4F,GAAgBC,IAAqB7F,mBAAS,KAC9C4E,GAAiBC,IAAsB7E,mBAAS,KAChDsD,GAAQC,IAAavD,mBAAS,KAC9BwC,GAASC,IAAczC,mBAAS,IAChCswD,GAAmBC,IAAwBvwD,oBAAS,IACpDwwD,GAAcC,IAAmBzwD,oBAAS,IAC1C0wD,GAAcC,IAAmB3wD,mBAAS,IAC1C4wD,GAASC,IAAc7wD,mBAAS,KAChC8wD,GAAeC,IAAoB/wD,mBAAS,KAC5CgxD,GAAYC,IAAiBjxD,mBAAS,KACtCkxD,GAAWC,IAAgBnxD,oBAAS,IACpCoxD,GAAYC,IAAiBrxD,sBAC7BsxD,GAAcC,IAAmBvxD,qBAClCygB,GAAW9gB,YAAaC,GAAUA,EAAMC,SAAS4gB,WAChDigB,GAAgBC,IAAqB3gC,mBAAS,KAC9CwxC,GAAkBC,IAAuBzxC,mBAAS,GACnD0xC,GAAqB/xC,YACxBC,GAAUA,EAAMumC,cAAclvB,aAE1B3Q,GAAWC,IAAgBvG,oBAAS,IACpCwxD,GAAiBC,IAAsBzxD,oBAAS,IAEhD0xD,GAAoBC,IAAyB3xD,oBAAS,IACtD4xD,GAAmBC,IAAwB7xD,oBAAS,GAErDN,GAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDqH,GAAWC,IAAgBhH,qBAClC,IAAI0nC,GAAmB/nC,YAAaC,GAAUA,EAAMC,SAASmjB,WAC7D,MAAO0kC,GAAYC,IAAiB3nD,sBAC7BiqB,GAAUC,IAAelqB,sBAEzB8xD,GAAuBC,IAA4B/xD,oBAAS,IAC5DF,GAAMC,IAAWC,sBACjBgyD,GAAkBC,IAAwBjyD,mBAAS,KACnD03C,GAAUC,IAAe33C,sBACzBsmD,GAAaC,IAAkBvmD,mBAAS,KACxCylD,GAAgBC,IAAqB1lD,mBAAS,KAC9C2lD,GAAsBC,IAA2B5lD,mBAAS,KAC1D2xC,GAAiBC,IAAsB5xC,sBACvC2iD,GAAYC,IAAiB5iD,mBAAS,KACtC8iD,GAAsBC,IAA2B/iD,oBAAS,IAC1DgjD,GAAeC,IAAoBjjD,mBAAS,KAC5CiI,GAAaC,IAAoBlI,oBAAS,IAC1CiJ,GAAci6C,IAAmBljD,mBAAS,KAE1C4nD,GAA2BC,IAAgC7nD,mBAAS,KACpEkyD,GAAoBC,IAAyBnyD,qBAC9C2jB,GAAqBhkB,YAAaC,GAAUA,EAAMC,SAAS8jB,qBAC1DsU,GAAUC,IAAel4B,mBAASoL,OAAOE,YAAc,KACjD8mD,YAAc,CAAEC,MAAO,uBACpC,IAAI,UAAEvrD,IAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAOsiC,GAASC,IAAcjkC,oBAAS,IAGrC6Y,aAAcy5C,GACd35C,SAAU45C,GACVvyB,QAASwyB,GACTxzB,MAAOyzB,GACP1yB,UAAW2yB,GACXxzB,SAAUyzB,GACV55C,OAAQ65C,GACRC,MAAOC,IACL35C,cACJ,IAAI4sC,GAAkBpmD,YAAaC,GAAUA,EAAMC,SAAS0B,OAAOu/B,cAGnE,MAAOksB,GAAeC,IAAoBjtD,mBAAS,CACjD4jD,aAAc,EACdH,MAAM,EACNS,QAAQ,EACRgH,OAAO,EACPxH,UAAU,EACVyH,cAAc,EACdxH,MAAO,IACPK,UAAU,EACVC,cAAe,MAIX8O,GAAyBA,KACzB3nD,OAAOE,WAAa,IACtB2hD,GAAgBvZ,wBAAC,GACZsZ,IAAa,IAChBpJ,aAAc,KAGhBqJ,GAAgBvZ,wBAAC,GACZsZ,IAAa,IAChBpJ,aAAc,MAIpB3jD,oBAAU,KACR8yD,KACA3nD,OAAOuM,iBAAiB,SAAUo7C,IAC3B,KACL3nD,OAAO6wB,oBAAoB,SAAU82B,MAEtC,IAGH9yD,oBAAU,KACJP,GAAaQ,OAAS,GAyZ5BC,iBACEX,EAAUY,gBACV,MAAMkI,EAAQjI,eAAKX,GAAc,CAAEY,aAAc,UAC7CgI,GACFtB,GAAasB,EAAM/H,WAAW+H,EAAM9H,cAGtC,MAAM8mD,EAAiB,GACjBU,EAAoB,CAAC,aAAc,UAAW,UAAW,SAAU,QAAS,QAAS,WAAY,UAAW,SAAU,aAEtHC,EAAWz0B,iBAAO9zB,GAAcsf,GAAQ5E,mBAAS4tC,EAAmBhpC,EAAKhU,WAC3Ei9C,IACFA,EAASpvB,SAAQ,SAAUvvB,GACzBg+C,EAAen8C,KAAK,CAClBd,GAAkB,OAAdf,EAAE8lB,UAAqB,EAAI9lB,EAAEe,GACjCS,MAAOxB,EAAE8lB,SACT4e,MAAO1kC,EAAE/I,WAAW+I,EAAE9I,kBAG1B+mD,EAAkBD,IAGpB,MAAMI,EAAarnD,eAAKX,GAAc,CAAEY,aAAc,gBAClDonD,GACFC,GAAcD,EAAWnnD,WAAWmnD,EAAWlnD,cAGjD,MAAMypB,EAAW5pB,eAAKX,GAAc,CAAEY,aAAc,cAChD2pB,GACFC,GAAYD,EAAS1pB,WAAW0pB,EAASzpB,cAG3C,MAAMV,EAAOO,eAAKX,GAAc,CAAEY,aAAc,SAC5CR,GACFC,GAAQD,EAAKS,WAAWT,EAAKU,cAG/B,MAAMk3C,EAAWr3C,eAAKX,GAAc,CAAEY,aAAc,uBAChDo3C,GACFC,GAAYD,EAASn3C,WAAWm3C,EAASl3C,cAG3C,MAAMgmD,EAAqBnmD,eAAKX,GAAc,CAAEY,aAAc,oBAC1DkmD,GACFd,GAAkBc,EAAmBjmD,WAAWimD,EAAmBhmD,cAGrE,MAAMimD,EAA2BpmD,eAAKX,GAAc,CAAEY,aAAc,2BAChEmmD,GACFb,GAAwBa,EAAyBlmD,WAAWkmD,EAAyBjmD,cAGvF,MAAM4xC,EAAsB5e,iBAAO9zB,GAAesM,GACnB,sBAAtBA,EAAK1L,cAEY,IAAD+xC,EAAAC,EAArBF,GACFR,IAAyC,QAAtBS,EAAAD,EAAoB,UAAE,IAAAC,OAAA,EAAtBA,EAAwB9xC,aAAiC,QAAxB+xC,EAAEF,EAAoB,UAAE,IAAAE,OAAA,EAAtBA,EAAwB9xC,eAGhFhB,EAAUiB,gBAndRC,IAED,CAAChB,KAEJO,oBAAU,KACR,QAAwB8gB,GAApB2mB,GAA+B,CACjC,MAAMqB,EAAe7xC,cAAIwwC,GAAiB,GAAI,QACxC8K,EAAat7C,cAAIwwC,GAAiB,GAAI,MAC5C,GACEtzC,aAAaC,QAAQC,IAAWC,YACe,cAA/CH,aAAaC,QAAQC,IAAWC,WAChC,CACA,IAAI00C,EAAWvB,GAAiBlU,OAC7BlqB,GAAMA,EAAEu+B,MAAQzzC,aAAaC,QAAQC,IAAWC,YACjD,QAEcwsB,GAAZkoB,GACFtI,GAAkBsI,EAASpB,MAC3B4J,GAAoBxI,EAAS5+B,MAE7Bs2B,GAAkBoI,GAClB0I,GAAoBe,SAGtB7R,GAAkBoI,GAClB0I,GAAoBe,QAGtB7R,GAAkB,MAClB8Q,GAAoB,IAErB,CAAC/J,GAAkBgK,KAGtBzxC,oBAAU,MAsDVE,iBAKE,MAAM8K,EAASG,OAAOL,SAASE,OACzBgL,EAAS,IAAI2oB,gBAAgB3zB,GAEnC,GAAIgL,EAAO/e,IAAI,qBAAsB,CACnC,IAAI87D,EAAoB/8C,EAAO/e,IAAI,qBAE/B87D,GAAqB34D,IAAkBI,UACzCk3D,IAAsB,GACbqB,GAAqB34D,IAAkBK,WAChDm3D,IAAqB,IAnEzB5lC,IACC,IAEHhsB,oBAAU,KACJ6G,GACFm9B,IAAW,IAEXA,IAAW,GACX8tB,IAAyB,KAE1B,CAACjrD,KAEJ7G,oBAAU,KACJuxC,GAAmB,GACrByhB,MAED,CAACzhB,GAAkBxN,KAEtB/jC,oBAAU,KACRsmD,GAAen7C,OAAOL,SAASmG,OA/HJ,kBA+HoC60C,KAC9D,CAACA,KAGJ9lD,oBAAU,KACJ+xD,GAAiB9xD,OAAS,GAC5B6xD,IAAyB,IAE1B,CAACC,KAEN/xD,oBAAU,KACN,GAAiC,QAA7BmnD,EAAmBt8C,MACnB+8C,GAA6BtoC,OAE5B,CACD,IAAIypC,EAA2BzpC,EAAMiU,OAAO20B,GAAQA,EAAoB,gBAAMf,EAAmBt8C,OACjG+8C,GAA6BmB,KAGlC,CAAC5B,IAEJnnD,oBAAU,KACFsf,EAAMrf,QACN2nD,GAA6BtoC,IAElC,CAACA,IAEF,MAAM2zC,GAAaA,KAIjBnB,IAAyB,IA0B3B5xD,eAAesI,GACbkC,EACA+5C,EACAtgD,EACAugD,EACAC,EACAxhD,EACAE,EACAE,EACAgC,EACA9B,EACAqE,EACAi7C,EACA/5C,GAgBA,GAdA1E,GAAoBogD,GACpBtgD,GAAmBD,GACnBf,GAASD,GACTK,GAAeD,GACfG,GAAsBD,GACtB6+C,GAA2BmC,GAC3BzgD,GAA0B2gD,GAC1B7B,GAAwBh7C,GACxBk7C,GAAiBD,GACjBE,GAAgBj6C,GAEZ7F,IAAUkH,YAAoBhH,IAChCC,GAAUD,IAEQ,IAAhBohD,EACF,GAAkB,GAAdE,EACFz/C,GAAiBwF,GACjBnL,EAAU+L,cAAkB,SAE5B,GAAIxD,EAAiB,CACnB,IAAI6C,EAAiB,CAAC,CACpBC,SAAU3J,EAAE,QACZ6J,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,QAGvBsL,EAAOlU,IAAOH,sBAAwB,WAAa8T,EACvDvJ,EAAS+J,KAAKD,EAAM,CAClBN,eAAgBA,SAGlBQ,OAAOC,KACL7mB,IAAOgL,WACP,WACAmb,EAAS,YAAcS,OAAOE,YAAc,IAAM,IAAM,WAM9D,GAAkB,GAAds5C,EAAqB,CACvBr+C,IAAa,GACb,IAAIoC,QAAqBC,IAAU1R,IACjC1S,IAAOgF,sCACP,oBACA4a,GAEF,GAAIuE,EAAa/kB,IAAOC,kBAAmB,CACzCse,GAAcwG,EAAa/kB,IAAOG,gBAElC,IAAI+gE,EAAkB,GAClBC,EAAgB,GAEpBp8C,EAAa/kB,IAAOG,eAAe61B,IAAKorC,IACtC,IAAIC,EAAS,CACX9lD,MAAO6lD,EAAQ/lC,YACf/f,MAAO8lD,EAAQE,UACfvD,OAAQpxC,WAAWy0C,EAAQ/mC,UAEzB+mC,EAAQE,YAAc5mD,IACxBwmD,EAAgB35C,KAAK85C,GACZD,EAAQE,YAAc9gD,IAC/B/B,GAAS2iD,EAAQ5iD,OACjBG,GAAcyiD,EAAQ1iD,YACM,aAAxB0iD,EAAQ/lC,aACVxc,GAAWuiD,EAAQxiD,SAErBG,GAAmCqiD,EAAQ/mC,SACN,OAAjC+mC,EAAQpiD,qBACVC,GAAwBmiD,EAAQpiD,sBAEhCC,GAAwB,IAE1BkiD,EAAc55C,KAAK85C,MAGvBliD,GAAe+hD,GACf7hD,GAAa8hD,GAIftC,IAAoB,GAmC1BtiD,eAAiCmE,GAC/B,IAAI4E,EAAS1kB,IAAO2J,uBAChBgb,EAAO,GACPR,QAAqBC,IAAU1R,IAAIgS,GAErCP,EAAa/kB,IAAOC,mBACpB8kB,EAAa/kB,IAAOG,eAAemc,OAAS,IAE5CiJ,EAAOR,EAAa/kB,IAAOG,eAAeyvC,OACvClqB,GAAMA,EAAE2V,cAAgB3a,GAGvB6E,EAAKjJ,OAAS,GAChB2E,GAAmBsE,EAAK,KA/CxBH,CAAkB27C,GAClBx/C,GAAiBwF,GACjB+3C,IAAc,GACdn6C,GAAoBoC,GAEhBO,EAAOlU,IAAO1B,gBAChB,SACAqvD,EACA,OACAh6C,EACA,eACArJ,EAA4B,gBAC5B,aACA0hD,EARF,IAmBIpjD,EAAQ,CACVgL,eAVEA,EAAiB,CAAC,CACpBC,SAAU3J,EAAE,QACZ6J,SAAU3J,EAAS2J,SAASC,SAAW5J,EAAS2J,SAASE,OACzDrL,MAAOwB,EAAS2J,SAASnL,OACxB,CACDiL,SAAU85C,EACV55C,SAAUG,KAOZ9J,EAAS+J,KAAKD,EAAMtL,GACpB2G,IAAa,IAuBnBpG,eAAeoI,GAAoBnE,GAGjC,GAFAuB,GAAmB,IACnBE,GAAkB,IACK,KAAnBzB,IAA2BkG,YAAoBlG,GAAkB,CACnE,IAAIuE,QAAqBC,IAAU1R,IACjC1S,IAAOwI,6CACP,oBACAoX,GAEEuE,EAAa/kB,IAAOC,mBACoB,MAAtC8kB,EAAa/kB,IAAOG,gBACyB,MAA3C4kB,EAAa/kB,IAAOG,eAAeolB,OACrCxD,GACEgD,EAAa/kB,IAAOG,eAAeolB,KAAsB,iBAE3DtD,GACE8C,EAAa/kB,IAAOG,eAAeolB,KAAqB,kBAwFpE,SAASgqD,KACPhD,GAAkB,EAYpB,WACE,IAAKA,EACH,OAGF,MAAMznC,EAAQqwB,EAAUR,UAClBpvB,EAAM4vB,EAAUX,aAAeW,EAAUb,aAGzCkb,EAAYC,YAAYhnC,MAmB9BinC,uBAjBA,SAASC,EAAOC,GACd,IAAKrD,EACH,OAGF,MAAMsD,EAAcD,EAAcJ,EAE5BpnB,EAAanjB,KAAKmL,IAAI,EAAGy/B,EAXhB,MAYTC,EAAY,GAAM,GAAM7qC,KAAK8qC,IAAI9qC,KAAK+qC,GAAK5nB,GAEjD+M,EAAUR,UAAY7vB,EAAQgrC,GAAavqC,EAAMT,GAE7CsjB,EAAa,GACfsnB,sBAAsBC,MAnC1BM,GACA9a,EAAUphC,iBAAiB,QAAS,KAMpCw4C,GAAkB,EAClBE,GAAgB,KAzBlBpwD,oBAAU,KACJ84C,GACFoa,MAED,CAACpa,IAEJ94C,oBAAU,KACJmwD,GACF58C,WAAW,KACT2/C,KACA9C,GAAgB,IACf,MAEJ,CAACD,IA6Ge9M,EAACC,EAAKC,KACvB,MAAMrlB,EAAS,GACf,IAAK,IAAIxS,EAAI,EAAGA,EAAI43B,EAAIrjD,OAAQyrB,GAAK63B,EACnCrlB,EAAOhzB,KAAKo4C,EAAIjqC,MAAMqS,EAAGA,EAAI63B,KAMlBF,CAAWX,GADJ,GARtB,MAYMd,GAAyBx3C,IAC7BhG,GAAmBgG,IAEfy3C,GAAgCgS,IACpC7vD,GAA0B6vD,IAEtB/R,GAA0Bt4C,IAC9BlF,GAAoBkF,IAEhBu4C,GAAuB33C,IAC3BlF,GAAiBkF,IAEb43C,GAAwBvtD,IAC5B+P,EAAoB/P,IAEhBwtD,GAAe73C,MAGf83C,GAAuB34C,IAC3By5C,GAAiBz5C,IAEb44C,GAAyB0R,IAC7B/Q,GAAwB+Q,IAEpBzR,GAAsB54C,IAC1By5C,GAAgBz5C,IAIlBxJ,oBAAU,KACR,MAAM+7B,EAAeA,KACnB9D,GAAY9sB,OAAOE,YAAc,MAInC,OADAF,OAAOuM,iBAAiB,SAAUqkB,GAC3B,IAAM5wB,OAAO6wB,oBAAoB,SAAUD,IACjD,IAEH,MAAMi3B,GAAkB9yD,UACtB,IAAIwI,QAAqBC,IAAU1R,IACjC1S,IAAOqM,sBAAwB,eAAiB2gD,IAG9C7oC,EAAa/kB,IAAOC,mBACtBouE,GAAqBtpD,EAAa/kB,IAAOG,iBAI7C,OACE4c,IAAAC,cAAAD,IAAAE,SAAA,KAIEF,IAAAC,cAAA,OAAKE,UAAU,6BACZ4wD,IACC/wD,IAAAC,cAACuL,IAAU,CACT0U,SAAO,EACPpU,eAAgBvL,EAAE,WAClB0M,UAAWA,KACT+jD,IAAsB,KAGvBzwD,EAAE,oBAIN0wD,IACCjxD,IAAAC,cAACuL,IAAU,CACTgqC,QAAM,EACN1pC,eAAgBvL,EAAE,WAClB0M,UAAWA,KACTikD,IAAqB,KAGtB3wD,EAAE,mBAIN+G,IACCtH,IAAAC,cAAA,OAAKE,UAAU,kDACbH,IAAAC,cAACuL,IAAU,CACTC,WAAazL,IAAAC,cAAA,OACXE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,OACPC,MAAM,OACNC,IAAI,gBAENC,cAAetL,EAAE,UACjBuL,eAAgBvL,EAAE,YAClB8K,MAAI,EAIJU,SAAUA,KACRxE,IAAiB,IAEnByE,QAAM,EACNC,YAAU,EACVC,gBAAgB,EAChBC,iBAAiB,SACjBC,cACEpM,IAAAC,cAACD,IAAME,SAAQ,KACbF,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,UACEE,UAAW,yBACXgL,QAASA,KACPrD,GACEvD,GACAo9C,GACAl+C,GACAE,EACAN,GACAZ,GACAI,GACAgC,GACA9B,EACAo/C,IAEF56C,IAAiB,KAGlBhH,EAAE,aAELP,IAAAC,cAAA,KACEkL,QAASA,KAAQtM,EAAU+L,cAAkB,IAASrD,IAAiB,IACvEpH,UAAU,0BAETI,EAAE,aAOXP,IAAAC,cAAA,QAAME,UAAU,2BACdH,IAAAC,cAAA,OAAKqM,wBAAyB,CAAEC,OAAQhM,EAAE,gBAAgBiM,QAAQ,KAAM,UAAYC,MAAO,CAAEC,aAAc,OAAQC,SAAU,aAOrI3M,IAAAC,cAAA,OAAKE,UAAW2f,GAAW,cAAgB,SAC3C9f,IAAAC,cAAA,OAAKE,UAAW2f,GAAW,eAAiB,SACnB,MAAtBkD,IAA6H,MAA/FA,GAAmB6P,OAAOlqB,GAAKA,EAAEsX,QAAUqX,GAA2B,GAAhB3uB,EAAEyqD,WAAkC,GAAhBzqD,EAAEyqD,aACzGpzD,IAAAC,cAAAD,IAAAE,SAAA,KACG8iB,GAAmB6P,OAAOlqB,GAAMA,EAAE0qD,iBAAmB1qD,EAAE2qD,sBAAyBh8B,GAA2B,GAAhB3uB,EAAEyqD,WAAkC,GAAhBzqD,EAAEyqD,aAAkBn6C,IAAI,CAACoF,EAAMrJ,KAE7I,OAAQqJ,EAAKvV,MACX,IAAK,kBACH,OAAO9I,IAAAC,cAACktD,EAAc,CAACl4C,IAAKD,IAC9B,IAAK,qBACH,OAAOhV,IAAAC,cAAC4sD,EAAiB,CAAC53C,IAAKD,IACjC,IAAK,0BACH,OAAOhV,IAAAC,cAACszD,EAAqB,CAACt+C,IAAKD,IACrC,IAAK,oBACH,OAAOhV,IAAAC,cAACmgD,EAAgB,CAACnrC,IAAKD,EAAO+hC,SAAUA,KACjD,IAAK,gBACH,OAAO/2C,IAAAC,cAACghD,EAAY,CAAChsC,IAAKD,EAAOksC,sBAAuBA,GAAuBC,6BAA8BA,GAA8BC,uBAAwBA,GACjKC,oBAAqBA,GAAqBC,qBAAsBA,GAAsBC,YAAaA,GAAaC,oBAAqBA,GACrIC,sBAAuBA,GAAuBC,mBAAoBA,GAAoBx3C,SAAS,SAEnG,IAAK,kBACH,OAAOlK,IAAAC,cAACuzD,EAAuB,CAACv+C,IAAKD,IACvC,IAAK,gBACH,OAAOhV,IAAAC,cAAComD,EAAY,CAACpxC,IAAKD,EAAOksC,sBAAuBA,GAAuBC,6BAA8BA,GAA8BC,uBAAwBA,GACjKC,oBAAqBA,GAAqBC,qBAAsBA,GAAsBC,YAAaA,GAAaC,oBAAqBA,GACrIC,sBAAuBA,GAAuBC,mBAAoBA,GAAoBx3C,SAAS,SAEnG,IAAK,gBACH,OAAOlK,IAAAC,cAAC6oD,EAAY,CAAC7zC,IAAKD,IAC5B,IAAK,mBACH,OAAOhV,IAAAC,cAACqpD,EAAgB,CAACr0C,IAAKD,EAAOksC,sBAAuBA,GAAuBC,6BAA8BA,GAA8BC,uBAAwBA,GACrKC,oBAAqBA,GAAqBC,qBAAsBA,GAAsBC,YAAaA,GAAaC,oBAAqBA,GACrIC,sBAAuBA,GAAuBC,mBAAoBA,GAAoBx3C,SAAS,SAEnG,IAAK,gBACH,OAAOlK,IAAAC,cAACurD,EAAa,CAACv2C,IAAKD,EAAOksC,sBAAuBA,GAAuBC,6BAA8BA,GAA8BC,uBAAwBA,GAClKC,oBAAqBA,GAAqBC,qBAAsBA,GAAsBC,YAAaA,GAAaC,oBAAqBA,GACrIC,sBAAuBA,GAAuBC,mBAAoBA,GAAoBx3C,SAAS,SAEnG,IAAK,gBACH,OAAOlK,IAAAC,cAACmsD,EAAY,CAACn3C,IAAKD,IAC5B,IAAK,qBACH,OAAOhV,IAAAC,cAACssD,EAAiB,CAACt3C,IAAKD,QAOlB,MAAtBgO,IAA8F,MAAhEA,GAAmB6P,OAAOlqB,GAAKA,EAAEsX,QAAyB,GAAftX,EAAEyqD,aAC1EpzD,IAAAC,cAAAD,IAAAE,SAAA,KACG8iB,GAAmB6P,OAAOlqB,GAAMA,EAAE0qD,iBAAmB1qD,EAAE2qD,qBAAwC,GAAhB3qD,EAAEyqD,YAAiBn6C,IAAI,CAACoF,EAAMrJ,KAC5G,OAAQqJ,EAAKvV,MACX,IAAK,kBACH,OAAO9I,IAAAC,cAACktD,EAAc,CAACl4C,IAAKD,IAC9B,IAAK,qBACH,OAAOhV,IAAAC,cAAC4sD,EAAiB,CAAC53C,IAAKD,IACjC,IAAK,0BACH,OAAOhV,IAAAC,cAACszD,EAAqB,CAACt+C,IAAKD,IACrC,IAAK,oBACH,OAAOhV,IAAAC,cAACmgD,EAAgB,CAACnrC,IAAKD,EAAO+hC,SAAUA,KACjD,IAAK,gBACH,OAAO/2C,IAAAC,cAACghD,EAAY,CAAChsC,IAAKD,EAAOksC,sBAAuBA,GAAuBC,6BAA8BA,GAA8BC,uBAAwBA,GACjKC,oBAAqBA,GAAqBC,qBAAsBA,GAAsBC,YAAaA,GAAaC,oBAAqBA,GACrIC,sBAAuBA,GAAuBC,mBAAoBA,GAAoBx3C,SAAS,SAEnG,IAAK,kBACH,OAAOlK,IAAAC,cAACuzD,EAAuB,CAACv+C,IAAKD,IACvC,IAAK,gBACH,OAAOhV,IAAAC,cAAComD,EAAY,CAACpxC,IAAKD,EAAOksC,sBAAuBA,GAAuBC,6BAA8BA,GAA8BC,uBAAwBA,GACjKC,oBAAqBA,GAAqBC,qBAAsBA,GAAsBC,YAAaA,GAAaC,oBAAqBA,GACrIC,sBAAuBA,GAAuBC,mBAAoBA,GAAoBx3C,SAAS,SAEnG,IAAK,gBACH,OAAOlK,IAAAC,cAAC6oD,EAAY,CAAC7zC,IAAKD,IAC5B,IAAK,mBACH,OAAOhV,IAAAC,cAACqpD,EAAgB,CAACr0C,IAAKD,EAAOksC,sBAAuBA,GAAuBC,6BAA8BA,GAA8BC,uBAAwBA,GACrKC,oBAAqBA,GAAqBC,qBAAsBA,GAAsBC,YAAaA,GAAaC,oBAAqBA,GACrIC,sBAAuBA,GAAuBC,mBAAoBA,GAAoBx3C,SAAS,SAEnG,IAAK,gBACH,OAAOlK,IAAAC,cAACurD,EAAa,CAACv2C,IAAKD,EAAOksC,sBAAuBA,GAAuBC,6BAA8BA,GAA8BC,uBAAwBA,GAClKC,oBAAqBA,GAAqBC,qBAAsBA,GAAsBC,YAAaA,GAAaC,oBAAqBA,GACrIC,sBAAuBA,GAAuBC,mBAAoBA,GAAoBx3C,SAAS,SAEnG,IAAK,gBACH,OAAOlK,IAAAC,cAACmsD,EAAY,CAACn3C,IAAKD,IAC5B,IAAK,qBACH,OAAOhV,IAAAC,cAACssD,EAAiB,CAACt3C,IAAKD,QAOlB,MAAtBgO,IACChjB,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAACktD,EAAc,MACfntD,IAAAC,cAAC4sD,EAAiB,MAElB7sD,IAAAC,cAACszD,EAAqB,MACtBvzD,IAAAC,cAACmgD,EAAgB,CAACrJ,SAAUA,KAC5B/2C,IAAAC,cAACghD,EAAY,CAACC,sBAAuBA,GAAuBC,6BAA8BA,GAA8BC,uBAAwBA,GAC9IC,oBAAqBA,GAAqBC,qBAAsBA,GAAsBC,YAAaA,GAAaC,oBAAqBA,GACrIC,sBAAuBA,GAAuBC,mBAAoBA,GAAoBx3C,SAAS,SAEjGlK,IAAAC,cAACuzD,EAAuB,MAExBxzD,IAAAC,cAAComD,EAAY,CAACnF,sBAAuBA,GAAuBC,6BAA8BA,GAA8BC,uBAAwBA,GAC9IC,oBAAqBA,GAAqBC,qBAAsBA,GAAsBC,YAAaA,GAAaC,oBAAqBA,GACrIC,sBAAuBA,GAAuBC,mBAAoBA,GAAoBx3C,SAAS,SAEjGlK,IAAAC,cAAC6oD,EAAY,MACb9oD,IAAAC,cAACqpD,EAAgB,CAACpI,sBAAuBA,GAAuBC,6BAA8BA,GAA8BC,uBAAwBA,GAClJC,oBAAqBA,GAAqBC,qBAAsBA,GAAsBC,YAAaA,GAAaC,oBAAqBA,GACrIC,sBAAuBA,GAAuBC,mBAAoBA,GAAoBx3C,SAAS,SAGjGlK,IAAAC,cAACurD,EAAa,CAACtK,sBAAuBA,GAAuBC,6BAA8BA,GAA8BC,uBAAwBA,GAC/IC,oBAAqBA,GAAqBC,qBAAsBA,GAAsBC,YAAaA,GAAaC,oBAAqBA,GACrIC,sBAAuBA,GAAuBC,mBAAoBA,GAAoBx3C,SAAS,SAGjGlK,IAAAC,cAACmsD,EAAY,MAEbpsD,IAAAC,cAACssD,EAAiB,SA8D1BvsD,IAAAC,cAACI,IAAc,CACboD,gBAAiBA,GACjBJ,uBAAwBA,GACxBM,iBAAkBA,EAClBY,cAAeA,GACfV,iBAAkBA,EAClBsG,MAAO5J,EAAE,QACTsI,SAAUw5C,GACVj7C,gBAAiB+6C,GACjB75C,aAAcA,KAGhBtI,IAAAC,cAACiN,IAAK,CACJC,MAAM,EACNzD,GAAG,2BACH0D,OAAQyiD,GACRtiD,OAAQA,KACNuiD,IAAgB,KAIlB9vD,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,uDACbH,IAAAC,cAAA,OAAKE,UAAU,iBACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,WAAMM,EAAE,sBAEVP,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OACEE,UAAU,wBACVgL,QAASA,KACP2kD,IAAgB,GAChBE,GAAgB,GAChBE,GAAW,IACXpO,IAAoB,KAGtB9hD,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,aAI/CH,IAAAC,cAAA,OAAKE,UAAU,0BACbH,IAAAC,cAAA,QAAM2Y,SAAU+4C,GA1jBJnyD,MAAOgJ,EAAMyO,KACnC65C,IAAmB,GACnB,IAAIx7C,EAAS,CACXm+C,WAAY91D,IACZ+1D,SAAUjwD,GACVu9C,OAAQ+O,GACR4D,mBAAoB1D,IAGlBjoD,QAAqBC,IAAUiM,KACjCrwB,IAAO+E,wCACP8sB,YAAeJ,IAGbtN,EAAa/kB,IAAOC,yBAuB1Bsc,iBACE,IAAIwI,QAAqBC,IAAU1R,IACjC1S,IAAOgF,uCAET,GAAImf,EAAa/kB,IAAOC,kBAAmB,CACzC,IAAIihE,EAAkB,GAClBC,EAAgB,GACpBp8C,EAAa/kB,IAAOG,eAAe61B,IAAKorC,IACtC,IAAIC,EAAS,CACX9lD,MAAO6lD,EAAQ/lC,YACf/f,MAAO8lD,EAAQE,UACfvD,OAAQpxC,WAAWy0C,EAAQ/mC,UAE7B,GAAI+mC,EAAQE,YAAc5mD,IACxBwmD,EAAgB35C,KAAK85C,QAChB,GAAID,EAAQE,YAAc9gD,GAAiB,CAChD,IAAImwD,EAAoBhkD,WAAWy0C,EAAQ/mC,SAC3Ctb,GAAmC4xD,GACnCxP,EAAc55C,KAAK85C,MAGvBliD,GAAe+hD,GACf7hD,GAAa8hD,IA5CPyP,CACJjkD,WAAW5H,EAAa/kB,IAAOG,eAAe49D,QAAQ93C,QAAQ,IAEhEwnD,GAAc1oD,EAAa/kB,IAAOG,eAAe49D,QACjD4P,GAAgBzpC,MAASO,OAAO,yBAChCkoC,IAAqB,GACrB9N,IAAoB,GACpBgO,IAAgB,GAChB0B,GAAsBxpD,EAAa/kB,IAAOG,eAAe0wE,eACzDlsD,GAAoBnE,IACpBwT,EAAEzgB,OAAO07D,SAETrzD,EACEiL,aACE9B,EAAa/kB,IAAOC,kBACpB8kB,EAAa/kB,IAAOE,oBAI1B2tE,IAAmB,MAyhBP9wD,IAAAC,cAAA,OAAKE,UAAU,8BACbH,IAAAC,cAAA,aAAQM,EAAE,wBAEZP,IAAAC,cAAA,OAAKE,UAAU,kBACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,SACE8M,KAAK,OACLjE,KAAK,SACLvK,MAAO2sC,OAAO6kB,IAAc7mD,QAAQ,GACpCmmC,YAAa1hC,YACXiC,WAAWmgD,IACX,GACA,GAEF5vD,UAAU,qBACV6Y,SAAW/B,IACT,IAAI+pC,EAAS/pC,EAAEzgB,OAAO+H,MACnBiO,QACC,yDACA,IAEDigC,OAECluC,EAAQ2sC,OAAOt7B,WAAWoxC,GAAU,KAAK93C,QAAQ,GAEnD0G,WAAWrR,GAASqR,WAAWzN,GAAY,GAAG6+C,UAE9CziD,EAAQ4D,GAAY,GAAG6+C,QAEzB/pC,EAAEzgB,OAAOi4C,kBAAkBlwC,EAAMgB,OAAQhB,EAAMgB,QAC/C+wD,GAAc/xD,GACdyxD,GAAgBzxD,IAElB8N,SACElK,GAAY5C,OAAS,GACnB4C,GAAY,GAAG6+C,OACfrzC,YAAyBiC,WAAW,GAAI,GAAG,GACzC,GACA,cAIV5P,IAAAC,cAAA,QAAME,UAAU,sBACbI,EAAE,qBACF4B,GAAY5C,OAAS,EAClBoO,YAAyBxL,GAAY,GAAG6+C,OAAQ,GAChD,KAGRhhD,IAAAC,cAAA,QAAME,UAAU,0CACbI,EAAE,OAAO,IAAE,IACA,IAAX0vD,GACGtiD,YACAwiD,GAAct9B,OACXlqB,GAAMA,EAAEe,IAAM8lB,SAASygC,KACxB,GAAG8D,WACL,GACA,GAEApmD,YAAyB,EAAG,GAAG,IAErC3N,IAAAC,cAAA,OACEE,UAAU,yBACVgL,QAASA,KACPqlD,IAAa,GACbV,IAAgB,IAElBrjD,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,WACED,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW8C,oBACjBjO,UAAU,WAGdH,IAAAC,cAAA,OAAKE,UAAU,kCACD,IAAX8vD,GACG1vD,EAAE,cACF4vD,GAAct9B,OACblqB,GAAMA,EAAEe,IAAM8lB,SAASygC,KACxB,GAAGnnD,OAGX9I,IAAAC,cAAA,WACED,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWggD,WAAYnrD,UAAU,YAGtC,MAAX8vD,IACCE,GACGt9B,OAAQlqB,GAAMA,EAAEe,IAAM8lB,SAASygC,KAC/Bh3C,IAAI,CAACoF,EAAMrJ,IAERhV,IAAAC,cAAA,OACEgV,IAAKD,EACL7U,UAAU,+BAEVH,IAAAC,cAAA,OAAKE,UAAU,cACbH,IAAAC,cAAA,OAAKE,UAAU,wBACbH,IAAAC,cAAA,OAAKE,UAAU,eAAeI,EAAE,SAAS,MACzCP,IAAAC,cAAA,OAAKE,UAAU,+BAEjBH,IAAAC,cAAA,OACEE,UAAU,wBACVsM,MAAO,CAAEoc,UAAW,UAEnB,IACAxK,EAAK5c,QAIVzB,IAAAC,cAAA,OAAKE,UAAU,cACbH,IAAAC,cAAA,OAAKE,UAAU,wBACbH,IAAAC,cAAA,OAAKE,UAAU,eAAc,aAE/BH,IAAAC,cAAA,OACEE,UAAU,wBACVsM,MAAO,CAAEoc,UAAW,UAEnB,IAAI,IACHxK,EAAK21C,aAOrBh0D,IAAAC,cAAA,OAAKE,UAAU,QACZsB,GAAQ,GACPzB,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,QAAME,UAAU,sBACbI,EAAE,SAAS,IAAE,IACboN,YAAyBiC,WAAWnO,IAAQ,GAAG,GAAM,KAExDzB,IAAAC,cAAA,aAIND,IAAAC,cAAA,OAAKE,UAAU,eACbH,IAAAC,cAAA,UACE8M,KAAK,SACL5M,UACEkwD,GAAa,EACT,gCACA,0CAGL9vD,EAAE,sBACFswD,GACC7wD,IAAAC,cAAC4N,IAAO,CACNpB,MAAO,CACLwB,cAAe,SACftC,MAAO,OACPD,OAAQ,OACRwC,WAAY,KAIhB,UAUhBlO,IAAAC,cAACiN,IAAK,CACJC,MAAM,EACNzD,GAAG,2BACH0D,OAAQmjD,GACRhjD,OAAQA,KACNijD,IAAa,IAEfjjB,UAAQ,GAERvtC,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,uDACbH,IAAAC,cAAA,OAAKE,UAAU,iBACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,WAAMM,EAAE,gBAEVP,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OACEE,UAAU,wBACVgL,QAASA,KACPqlD,IAAa,GACbV,IAAgB,KAGlB9vD,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,aAI/CH,IAAAC,cAAA,OAAKE,UAAU,+BACbH,IAAAC,cAAA,YACED,IAAAC,cAAA,OAAKE,UAAU,8BACbH,IAAAC,cAAA,aAAQM,EAAE,uBAEZP,IAAAC,cAAA,OACEE,UAAU,yBACVgL,QAASA,KACP+kD,GAAW,IACXM,IAAa,GACbV,IAAgB,IAElBrjD,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,WACED,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW8C,oBACjBjO,UAAU,WAGdH,IAAAC,cAAA,OAAKE,UAAU,kCACZI,EAAE,eAIR4vD,GACEt9B,OAAQlqB,GAAMA,EAAE47C,WAAa9gD,IAC7BwV,IAAI,CAACg7C,EAAOj/C,IAEThV,IAAAC,cAAA,OACEgV,IAAKD,EACL7U,UAAU,yBACVgL,QAASA,KACP+kD,GAAW+D,EAAMvqD,IACjB8mD,IAAa,GACbV,IAAgB,IAElBrjD,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,WACED,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAW8C,oBACjBjO,UAAU,WAGdH,IAAAC,cAAA,OAAKE,UAAU,kCACZwD,EAAiB,MAAIswD,EAAMnrD,cAYlD9I,IAAAC,cAACiN,IAAK,CACJxD,GAAG,0BACHyD,MAAM,EACNhN,UAAW,0BACXkN,iBAAkB,0BAClBD,OAAQ+jD,GACR5jD,OAAQA,KACN6jD,IAAyB,IAE3B7jB,UAAQ,EACR//B,YAAU,GAEVxN,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKE,UAAU,sBACbH,IAAAC,cAAA,OAAKE,UAAU,WACZhB,GACCa,IAAAC,cAAA,OAAKG,IAAKjB,GAAMgB,UAAU,iBAAiByL,IAAI,SAE/C5L,IAAAC,cAACi0D,IAAkB,CACjBC,MAAM,OACNxoD,MAAO,IACPD,OAAQ,GACR0oD,WAAW,OACXC,SAAS,aAIfr0D,IAAAC,cAAA,OACEE,UAAU,iBAEVgL,QAASA,IAAMonD,MAEfvyD,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,YAG7CH,IAAAC,cAAA,OAAKE,UAAU,oBACbH,IAAAC,cAAA,OAAKE,UAAU,uCACZkxD,IACCA,GAAiB9xD,OAAS,GAC1B0Z,cAAIo4C,GAAkB,CAAChzC,EAAMrJ,IAEzBhV,IAAAC,cAAA,OAAKgV,IAAKD,EAAO7U,UAAU,QACxBke,EAAKi2C,sBACFt0D,IAAAC,cAAA,OACEqM,wBAAyB,CACvBC,OAAQ8R,EAAKi2C,sBAAsBtnD,WAIvChN,IAAAC,cAAA,OACEqM,wBAAyB,CACvBC,OAAQ8R,EAAKrR,cAS/BhN,IAAAC,cAAA,OAAKE,UAAU,oBACbH,IAAAC,cAAA,UACEE,UAAU,sBACV4M,KAAK,SACL5B,QAASA,IAAMonD,MAChB,WAST5sD,GAAY3F,IAAAC,cAAC4V,IAAkB,MAAM,M,i1/nFCn3C7CpX,EAAOC,QAAU,8gD,kBCAjBD,EAAOC,QAAU,siD,kBCAjBD,EAAOC,QAAU,kxF,uDCAjBD,EAAOC,QAAU,0b,+BCAjB,4cAOO,SAASiL,EAAoBnB,GAChC,OAAe,MAARA,GAAwB,IAARA,EAOpB,SAASkN,EAAeJ,GAC3B,IAAIq6B,EAAW,GAEf,IAAK,IAAI4kB,KAAYj/C,EAAQ,CACzB,IAAIk/C,EAAaC,mBAAmBF,GAChCG,EAAeD,mBAAmBn/C,EAAOi/C,IAC7C5kB,EAASnlC,KAAKgqD,EAAa,IAAME,GAIrC,OADA/kB,EAAWA,EAASnjB,KAAK,KAClBmjB,EAOJ,SAASx7B,EAAwBmB,GACpC,IAAIq6B,EAAW,IAAIglB,SAEnB,IAAK,MAAO1/C,EAAK1W,KAAU4S,OAAO8hC,QAAQ39B,GACtCq6B,EAASilB,OAAO3/C,EAAK1W,GAGzB,OAAOoxC,EAsCJ,SAAS2L,EAAqB5d,GACjC,IAAIm3B,EAAgB,GACpB,OAAQn3B,EAAM3wB,MACV,KAAK9S,IAAmBC,cACpB26D,EAAgB,uBAChB,MACJ,KAAK56D,IAAmBE,gBACpB06D,EAAgB,sBAChB,MACJ,KAAK56D,IAAmBG,gBACpBy6D,EAAgB,oBAChB,MACJ,QACIA,EAAgBn3B,EAAMrkB,QAG9B,OAAOw7C,EAaJ,SAAS9rD,EAAcP,GAC1B,OAAoC,IAA7B2I,OAAOw3B,KAAKngC,GAAMjJ,OAgBtB,SAASu1D,EAAatsD,EAAMusD,GAC/B,OAAOnlD,WAAWpH,GAAMwsD,oBAAe50C,EAAW,CAAE60C,sBAAuBF,IAmBxE,SAASpnD,EAAyBpP,GAAoC,IAA7B22D,EAAOp+D,UAAAyI,OAAA,QAAA6gB,IAAAtpB,UAAA,GAAAA,UAAA,GAAG,EAAGq+D,EAAKr+D,UAAAyI,OAAA,QAAA6gB,IAAAtpB,UAAA,IAAAA,UAAA,GAC9D,MAAMs+D,EAAmB,EAGzB,GAAgB,IAAZF,EACA,OAAOhtC,KAAKqjB,MAAMhtC,GAAO82D,WAAW7oD,QAAQ,mBAAoB,OAIpE,IAAI8oD,EAAkB1lD,WAAYsY,KAAKqjB,MAAMhtC,EAAQ2pB,KAAKqtC,IAAI,GAAIL,IAAahtC,KAAKqtC,IAAI,GAAIL,IAAUhsD,QAAQgsD,GAASG,WAAW7oD,QAAQ,oBAAqB,OAE/J,GAAI0oD,EAAUE,EAAkB,CAC5B,IAAII,EAAqBF,EAAgBlgD,MAAM,KAC3CqgD,EAAcP,EAAUE,EAC5B,GAAiC,GAA7BI,EAAmBj2D,QAAe+1D,EAAgBz5B,YAAY,MAASy5B,EAAgB/1D,OAAS,EAAI,CACpG,IAAIm2D,EAAgBF,EAAmB,GAEvC,IAAK,IAAIxqC,EADUmqC,EAAmCO,EAA3BA,EAAcn2D,OAAS,EACvByrB,EAAI,GAAKyqC,EAAc,GACf,KAA3BC,EAAcC,OAAO3qC,GADyBA,IAE9C0qC,EAAgBA,EAAcvmB,OAAO,EAAGnkB,GAAK0qC,EAAcvmB,OAAOnkB,EAAI,GAI1EyqC,IAEJH,EAAkBE,EAAmB,GAAK,IAAME,GAIxD,OAAOJ,EAqBX,MAAMM,EAAiB,CAAE,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAM,KAAM,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAO,KAAM,OAE9xC,SAASC,EAAchiE,GAC1B,OAAO+hE,EAAcn8C,SAAS5lB,GAI3B,SAASiiE,EAAezrD,GAE3B,MAAM0rD,EAAgBC,EAA0B3rD,GAC1C+/B,EAAQ,IAAIC,OAAO,KAADr2C,OAAM+hE,EAAa,MAG3C,GAAGF,EAAcE,IAAkB1rD,EAASohB,SAAS,IAADz3B,OAAK+hE,KAAoB1rD,EAASklB,MAAM6a,GACxF,MAAM,GAANp2C,OAAU+hE,GAId,MAAME,EAAS,IAAI5rB,OAAO,KAADr2C,OAAM+hE,EAAa,UAC5C,SAAGF,EAAcE,IAAkB1rD,EAAS1T,WAAW,IAAD3C,OAAK+hE,KAAoB1rD,EAASklB,MAAM0mC,KACpF,GAANjiE,OAAU+hE,GAMX,SAASC,EAA0B3rD,GAEtC,MAAM6rD,EAAe7rD,EAAS+K,MAAM,KAAKyd,OAAOsjC,GAA8B,KAAnBA,EAAQ1pB,QAEnE,OAAIypB,EAAa32D,OAAS,EACf22D,EAAa,GAEb,KAIR,SAASE,EAAiBC,GAE7B,MAAMC,EAAe9mC,SAAS6mC,EAAO7pD,QAAQ,aAAc,KAE3D,OAAI8pD,GAAgB,KACVA,EAAe,KAAeptD,QAAQ,GAAGsD,QAAQ,OAAQ,IAAM,IAC9D8pD,GAAgB,KACjBA,EAAe,KAAWptD,QAAQ,GAAGsD,QAAQ,OAAQ,IAAM,IAC1D8pD,GAAgB,KACjBA,EAAe,KAAOptD,QAAQ,GAAGsD,QAAQ,OAAQ,IAAM,IAE1D8pD,EAAajB,WAIjB,MAAMkB,EAAsBA,KAEdhtD,SAASitD,iBAAiB,qBAElCt+B,QAAQu+B,IAEb,MAAM5pD,EAAW4pD,EAAQC,YACnBC,EAAYF,EAAQlf,aAC1B,IAAI5qC,EAAW6iB,SAAS/kB,OAAOqkB,iBAAiB2nC,GAAS9pD,SAAU,IAInE,MACK8pD,EAAQG,YAAc/pD,GAAY4pD,EAAQhf,aAAekf,IAC1DhqD,EAAW,IAGXA,GAAY,EACZ8pD,EAAQhqD,MAAME,SAAQ,GAAA3Y,OAAM2Y,EAAQ,SAKzC,SAASkqD,EAAeC,GAA2B,IAAjBC,EAAOjgE,UAAAyI,OAAA,QAAA6gB,IAAAtpB,UAAA,GAAAA,UAAA,GAAG,IAC/C,MAAM27D,EAAY9mC,KAAKD,MAEvB,SAASsrC,IAAY,IAADC,OAEG72C,IAAf3V,OAAOysD,MAA+B,QAAdD,EAAIxsD,OAAOysD,WAAG,IAAAD,OAAA,EAAVA,EAAYE,SACxCv9B,QAAQC,IAAI,mBACZi9B,KAGKnrC,KAAKD,MAAQ+mC,GAAasE,EAC/Bn9B,QAAQw9B,KAAK,sCAIbvkD,WAAWmkD,EAAU,KAI7BA,M,0QCqEW1uC,IA5VU1pB,IACN8B,cACf,MAAM,EAAEH,EAAC,KAAE+f,GAAS9f,eAEb62D,EAAOC,GAAYj4D,sBACnBk4D,EAAOC,GAAYn4D,sBACnBoqB,EAAgBC,GAAqBrqB,mBAAS,KAE/Co4D,EAAaC,GAAiBr4D,mBAChC,CACIs4D,eAAc,EACdC,aAAY,KAGbC,EAAeC,GAAoBz4D,oBAAS,IAC5C04D,EAAaC,GAAkB34D,mBAAS8nB,QACxC8wC,EAAaC,GAAkB74D,mBAAS8nB,QACxCgxC,EAAWC,GAAgB/4D,qBACnB6B,iBAAO,MAEtB,MAAM,UACF8lB,EAAYqwC,EAAK,QACjBhwC,EAAUkwC,EAAK,aACftwC,EAAY,WACZK,EAAU,QACV01B,EAAO,QACPD,EAAO,kBACPsb,EAAiB,gBACjBC,EAAe,OACf/vC,EAAM,QACNE,GAAU,GAEV7pB,EAIE25D,GALK1mD,YACPjT,EAAKkT,GAIgB,CAKrB,CACItT,MAAO+B,EAAE,SACT2tC,KAAM/mB,MAASC,QAAQ,OACvBoxC,GAAGrxC,MAASI,MAAM,QAGtB,CACI/oB,MAAO+B,EAAE,aACT2tC,KAAM/mB,MAAS21B,SAAS,EAAG,OAAO11B,QAAQ,OAC1CoxC,GAAIrxC,MAAS21B,SAAS,EAAG,OAAOv1B,MAAM,OACtCmB,YAAavB,MAAS21B,SAAS,EAAG,OAAO11B,QAAQ,OAAOM,OAAO,cAAgBnnB,EAAE,MAAQ4mB,MAAS21B,SAAS,EAAG,OAAOv1B,MAAM,OAAOG,OAAO,eAE7I,CACIlpB,MAAO+B,EAAE,aACT2tC,KAAM/mB,MAASC,QAAQ,WACvBoxC,GAAGrxC,MAASI,MAAM,OAClBmB,YAAavB,MAASC,QAAQ,WAAWM,OAAO,cAAgBnnB,EAAE,MAAQ4mB,MAASI,MAAM,OAAOG,OAAO,eAE3G,CACIlpB,MAAO+B,EAAE,aACT2tC,KAAM/mB,MAAS21B,SAAS,EAAG,QAAQ11B,QAAQ,WAC3CoxC,GAAIrxC,MAAS21B,SAAS,EAAG,QAAQv1B,MAAM,WACvCmB,YAAavB,MAAS21B,SAAS,EAAG,QAAQ11B,QAAQ,WAAWM,OAAO,cAAgBnnB,EAAE,MAAQ4mB,MAAS21B,SAAS,EAAG,QAAQv1B,MAAM,WAAWG,OAAO,eAEvJ,CACIlpB,MAAO+B,EAAE,cACT2tC,KAAM/mB,MAASC,QAAQ,SACvBoxC,GAAGrxC,MAASI,MAAM,OAClBmB,YAAavB,MAASC,QAAQ,SAASM,OAAO,cAAgBnnB,EAAE,MAAQ4mB,MAASI,MAAM,OAAOG,OAAO,eAEzG,CACIlpB,MAAO+B,EAAE,cACT2tC,KAAM/mB,MAAS21B,SAAS,EAAG,SAAS11B,QAAQ,SAC5CoxC,GAAIrxC,MAAS21B,SAAS,EAAG,SAASv1B,MAAM,SACxCmB,YAAavB,MAAS21B,SAAS,EAAG,SAAS11B,QAAQ,SAASM,OAAO,cAAgBnnB,EAAE,MAAQ4mB,MAAS21B,SAAS,EAAG,SAASv1B,MAAM,SAASG,OAAO,iBAqGzJ,SAAS+wC,EAAkBvxC,GACvB,IAAIwxC,GAAS,EAGb,MAAMC,EAAYp4D,EAAE,MAAMksC,OAE1B,QAAyBrsB,IAAtBxhB,EAAM8pB,aAAwD,KAA3B9pB,EAAM8pB,YAAY+jB,OAAY,CACpE,MAAOmsB,EAAcC,GAAcj6D,EAAM8pB,YAAYtT,MAAM,GAADphB,OAAI2kE,IAE9D,IAAI3xC,EAAUG,IAAO,IAAIwE,KAAKitC,EAAaxjD,MAAM,KAAK0jD,UAAUtsC,KAAK,OAAOpF,QAAQ,OAChFC,EAAQF,IAAO,IAAIwE,KAAKktC,EAAWzjD,MAAM,KAAK0jD,UAAUtsC,KAAK,OAAOpF,QAAQ,OAGhFD,IAAOD,GAAME,QAAQ,OAAO2xC,UAAU/xC,EAAWK,OAASjH,EAAW,QAElEs4C,GAAS,GAKZ,OAAOA,EAjHXp5D,oBAAU,KAEN,IAUI05D,EACAC,EAXAC,EAAct6D,EAAMo+C,QACpBmc,EAAcv6D,EAAMm+C,aACF38B,IAAlBxhB,EAAMo+C,UACNkc,EAAc/xC,MAAS21B,SAAS,EAAG,gBAEjB18B,IAAlBxhB,EAAMm+C,UACNoc,EAAchyC,OAElB6wC,EAAekB,GACfhB,EAAeiB,GA7DD,QAgEV1vC,EAAeykB,MACf8qB,EAAkB7xC,IAAOH,GAAW81B,SAAS,EAAG,OAChDmc,EAAgB9xC,IAAOH,GAAW81B,SAAS,EAAG,OAE3C31B,IAAOH,GAAWI,QAAQ,OAAOgyC,eAAejyC,IAAO4wC,GAAasB,IAAI,EAAE,OAAOjyC,QAAQ,UACxF4xC,EAAkB7xC,IAAOH,GACzBiyC,EAAgB9xC,IAAOH,KArEjB,QAuEHyC,EAAeykB,MACtB8qB,EAAkB7xC,IAAOH,GAAWqyC,IAAI,EAAG,OAC3CJ,EAAgB9xC,IAAOH,GAAWqyC,IAAI,EAAG,OAEtClyC,IAAOH,GAAWI,QAAQ,OAAOkyC,cAAcnyC,IAAO8wC,GAAa7wC,QAAQ,UAC1E4xC,EAAkB7xC,IAAOH,GACzBiyC,EAAgB9xC,IAAOH,MAG3BgyC,EAAkBvvC,EAAeykB,KAAOzkB,EAAeykB,KAAO/mB,MAC9D8xC,EAAgBxvC,EAAe+uC,GAAK/uC,EAAe+uC,GAAKrxC,YAG1C/G,IAAd4G,GAA2B6wC,GAC3BP,EAAS0B,GACqB,qBAAlB/xC,GACRroB,EAAMqoB,aAAa+xC,IAIvB1B,EAAStwC,QACG5G,IAAZiH,GAAyBwwC,GACzBL,EAASyB,GACmB,qBAAhB3xC,GACR1oB,EAAM0oB,WAAW2xC,IAIrBzB,EAASnwC,GAEbywC,GAAiB,IAClB,CAACruC,IAmBJnqB,oBAAU,KACN,GAAI64D,EAAW,CACb,IAAIoB,EAAO,CACXA,YAAmB,IACnBzB,GAAiB,GACjBpuC,EAAkB6vC,EAAO7wC,aACzB8wC,EAAsBD,GACtBnB,GAAa,KAEd,CAACD,IA4CN,SAASqB,EAAsBC,QACDr5C,GAAtBxhB,EAAM+pB,cACN/pB,EAAM+pB,aAAa8wC,EAAU/wC,aASzC,MAAM6gB,EAAex8B,IACjB2qD,EAAiB5rB,GACA,UAAT/+B,EACAgmC,wBAAA,GAAYjH,GAAS,IAAE6rB,eAAe,IAEtC5kB,wBAAA,GAAYjH,GAAS,IAAE8rB,aAAa,MAK1C8B,EAAoB3sD,GAAUkK,IAChCA,EAAEyC,iBAEFg+C,EAAiB5rB,GACA,UAAT/+B,EACAgmC,wBAAA,GAAYjH,GAAS,IAAE6rB,eAAe,IAEtC5kB,wBAAA,GAAYjH,GAAS,IAAE8rB,aAAa,MAK1C+B,EAAmBz4D,iBAAO,MAC1B04D,EAAiB14D,iBAAO,MAwB1B,OAtBJ5B,oBAAU,KACN,MAAMu6D,EAAsB5iD,KAEnB0iD,EAAiBtwD,UAAYswD,EAAiBtwD,QAAQywD,SAAS7iD,EAAEzgB,SAAWihE,EAAaE,eACzFiC,EAAevwD,UAAYuwD,EAAevwD,QAAQywD,SAAS7iD,EAAEzgB,SAAWihE,EAAaG,cAEtFF,EAAiB5rB,IAAS,CACtB6rB,eAAe,EACfC,aAAa,MAQzB,OAHAruD,SAASyN,iBAAiB,YAAa6iD,GACvCtwD,SAASyN,iBAAiB,aAAc6iD,GAEjC,KACHtwD,SAAS+xB,oBAAoB,YAAau+B,GAC1CtwD,SAAS+xB,oBAAoB,aAAcu+B,KAEhD,CAACpC,IAIIz3D,IAAAC,cAAA,OAAKE,UAAU,kBACfH,IAAAC,cAAA,OAAKE,UAAU,qBACfH,IAAAC,cAAA,OAAKE,UAAU,8CACPH,IAAAC,cAAA,OAAKE,UAAU,sBACXH,IAAAC,cAAA,SAAOE,UAAU,IACbH,IAAAC,cAAA,SAAIM,EAAE,gBAEVP,IAAAC,cAAA,OAAK4Q,IAAK8oD,GACV35D,IAAAC,cAAC85D,IAAQ,CACLrvD,KAAM+sD,EAAaE,cACnBqC,QAASA,IAAKzwB,EAAY,SAC1Bp+B,QAASA,IAAKo+B,EAAY,SAC1B3V,aAAc8lC,EAAiB,SAC/BO,WAAY,CAAE95D,UAAW,4BAA6B2Q,UAAU,GAChEhI,KAAK,YACLoxD,WAAW,aACXC,eAAe,EACf57D,MAAO4oB,IAAOkwC,GAAO3vC,OAAO,cAC5B0yC,YAlFH,SAAS/wD,GACtB,OAAOA,EAAQiwD,cAAcvB,IAAgB1uD,EAAQ+vD,eAAejyC,IAAOowC,GAAOnwC,QAAQ,SAkF1EizC,YAAY,EACZrhD,SAhJpB,SAAyBkO,GAEjBuxC,EADJvxC,EAAKC,IAAOD,GAAME,QAAQ,SACEgxC,GAAa,GACzCd,EAASpwC,GACTtoB,EAAMqoB,aAAaC,GAEfmxC,GACAA,EAAkBnxC,QA8IdlnB,IAAAC,cAAA,OAAKE,UAAU,gCACXH,IAAAC,cAAA,SAAOE,UAAU,IACbH,IAAAC,cAAA,SAAIM,EAAE,cAEVP,IAAAC,cAAA,OAAK4Q,IAAK+oD,GACV55D,IAAAC,cAAC85D,IAAQ,CACLrvD,KAAM+sD,EAAaG,YACnBoC,QAASA,IAAKzwB,EAAY,OAC1Bp+B,QAASA,IAAKo+B,EAAY,OAC1B3V,aAAc8lC,EAAiB,OAC/BO,WAAY,CAAE95D,UAAW,4BAA6B2Q,UAAU,GAChEhI,KAAK,UACLoxD,WAAW,aACXC,eAAe,EACfE,YAAY,EACZ97D,MAAO4oB,IAAOowC,GAAO7vC,OAAO,cAC5B0yC,YAhGH,SAAS/wD,GACtB,OAAOA,EAAQiwD,cAAcnyC,IAAOkwC,GAAOjwC,QAAQ,SAAW/d,EAAQ+vD,eAAenB,IAiGrEj/C,SAjJpB,SAAuBkO,GAEfuxC,EADJvxC,EAAKC,IAAOD,GAAMK,MAAM,SACI6wC,GAAa,GACzCZ,EAAStwC,GACTtoB,EAAM0oB,WAAWJ,GACboxC,GACAA,EAAgBpxC,SAkJhBlnB,IAAAC,cAAA,MAAIE,UAAU,wCACTo4D,EAAiBt/C,IAAI,CAACwgD,EAAWzkD,IAE1BhV,IAAAC,cAAA,MACIgV,IAAKD,EACL7U,UACIspB,EAAejrB,QAAUi7D,EAAUj7D,YACZ4hB,IAAtBxhB,EAAM8pB,aAA6B+wC,EAAU/wC,cAAgB9pB,EAAM8pB,YAC9D,SACA,KAEVvd,QAASA,KACL2sD,GAAiB,GACjBpuC,EAAkB+vC,GAClBD,EAAsBC,KAG1Bz5D,IAAAC,cAAA,OAAKwM,MAAO,CAAC6tD,cAAe,eAAgBb,EAAUj7D,c,oBCvVlF,IAAIya,EAAM,CACT,qBAAsB,KAGvB,SAASshD,EAAoBC,GAC5B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAIomD,EAAoBC,EAAE3hD,EAAKuhD,GAAM,CACpC,IAAIvjD,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,EAIP,OAAO0jD,EADE1hD,EAAIuhD,OAIfD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCpBjB,IAAIthD,EAAM,CACT,wBAAyB,CACxB,IACA,IAED,6BAA8B,CAC7B,IACA,IAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBC5BjB,IAAIthD,EAAM,CACT,6BAA8B,CAC7B,IACA,EACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOL,QAAQM,IAAID,EAAIniD,MAAM,GAAGM,IAAI0hD,EAAoB1jD,IAAI1C,MAAK,WAChE,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCzBjB,IAAIthD,EAAM,CACT,wBAAyB,CACxB,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,yBAA0B,CACzB,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,gCAAiC,CAChC,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,8BAA+B,CAC9B,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,gCCxBjB,oBAgEeS,IA9DKp8D,IAChB,MAAM,WAAEoqB,EAAU,oBAAEC,EAAmB,cAAEgyC,EAAa,mBAAEv0C,EAAkB,eAAEwC,GAAmBtqB,GACxFs8D,EAAaC,GAAkB97D,mBAAS,GAEzC+7D,EAAYlzC,KAAKoL,IAAI,EAAG4nC,EAAchzC,KAAK+D,MAAMovC,MACjDC,EAAUpzC,KAAKmL,IAAIrK,EAAYoyC,EAFnB,EAE2C,GAEvDG,EAAoBD,EAAUF,EAAY,EAJ9B,EAI8ClzC,KAAKoL,IAAI,EAAGgoC,EAJ1D,EAIgF,GAAKF,EAEvG97D,oBAAU,KACFonB,IA0BJy0C,EAAezqD,GAAQ,GAxBnBwY,GAAe,KAEpB,CAACxC,IAEJ,MAAM80C,EAAYxiB,IACVA,GAAc,GAAKA,GAAchwB,IACjCmyC,EAAeniB,GACf/vB,EAAoB+vB,EAAYiiB,KAoBxC,OACIj7D,IAAAC,cAAA,OAAKE,UAAU,kBACXH,IAAAC,cAAA,UAAQE,UAAU,YAAYgL,QAlBjBswD,KACbP,EAAc,GACdM,EAASN,EAAc,IAgB8B7uD,SAA0B,IAAhB6uD,GAAmBl7D,IAAAC,cAAA,YAAM,WACxFD,IAAAC,cAAA,OAAKE,UAAW,yBACf,IAAI8tC,MAAMqtB,EAAUC,EAAoB,GAAG5yB,QAAQ1vB,IAAI,CAACu1C,EAAGx5C,KACxD,MAAMgkC,EAAauiB,EAAoBvmD,EACvC,OAEQhV,IAAAC,cAAA,UACIgV,IAAK+jC,EACL74C,UAAW,YAAc+6D,IAAgBliB,EAAa,UAAY,IAClE7tC,QAASA,IAAMqwD,EAASxiB,IAEvBA,MAKjBh5C,IAAAC,cAAA,UAAQE,UAAU,YAAYgL,QA5BrBuwD,KACTR,EAAclyC,GACdwyC,EAASN,EAAc,IA0B0B7uD,SAAU6uD,IAAgBlyC,GAAY,a,oBC3DnG,IAAI/P,EAAM,CACT,qCAAsC,CACrC,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,kCAAmC,CAClC,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,gCAAiC,CAChC,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,6BAA8B,CAC7B,IACA,IAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,kBCxBjB,SAASoB,EAAyBnB,GAGjC,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAGR0kD,EAAyBhzB,KAAO,WAAa,MAAO,IACpDgzB,EAAyBjB,QAAUiB,EACnCl9D,EAAOC,QAAUi9D,EACjBA,EAAyBjyD,GAAK,K,oBCZ9B,IAAIuP,EAAM,CACT,8BAA+B,CAC9B,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,kCAAmC,CAClC,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,+BAAgC,CAC/B,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,6BAA8B,CAC7B,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,gCAAiC,CAChC,IACA,EACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOL,QAAQM,IAAID,EAAIniD,MAAM,GAAGM,IAAI0hD,EAAoB1jD,IAAI1C,MAAK,WAChE,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCzBjB,IAAIthD,EAAM,CACT,2BAA4B,CAC3B,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,8BAA+B,CAC9B,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,mCAAoC,CACnC,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,gCAAiC,CAChC,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,2BAA4B,KAG7B,SAASshD,EAAoBC,GAC5B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAIomD,EAAoBC,EAAE3hD,EAAKuhD,GAAM,CACpC,IAAIvjD,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,EAIP,OAAO0jD,EADE1hD,EAAIuhD,OAIfD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCpBjB,IAAIthD,EAAM,CACT,8BAA+B,CAC9B,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCxBjB,IAAIthD,EAAM,CACT,qCAAsC,CACrC,IACA,EACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOL,QAAQM,IAAID,EAAIniD,MAAM,GAAGM,IAAI0hD,EAAoB1jD,IAAI1C,MAAK,WAChE,OAAOomD,EAAoBjxD,MAG7B6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,oBCzBjB97D,EAAOC,QAAU,IAA0B,4C,gCCA3C,oBAoCek9D,IAlCOrqD,IAAgC,IAA/B,IAAEnR,EAAG,IAAEwL,EAAG,YAAEqoC,GAAa1iC,EAC9C,MAAOsqD,EAAaC,GAAkBz8D,oBAAS,IACxC08D,EAAYC,GAAiB38D,oBAAS,GAc7C,OACEW,IAAAC,cAAAD,IAAAE,SAAA,KACG27D,IAAgBE,GAAe37D,EAC9BJ,IAAAC,cAAA,OACEG,IAAKA,EACLwL,IAAKA,EACL8jB,OAlBWusC,KAEjBH,GAAe,GACfE,GAAc,IAgBRtiC,QAbYC,KAClBC,QAAQC,IAAI,SACZiiC,GAAe,GACfE,GAAc,IAWR77D,UAAU,UACVsM,MAAO,CAAEmgB,QAASivC,EAAc,QAAU,UAG1C77D,IAAAC,cAAA,OAAKG,IAAK6zC,EAAaroC,IAAI,iBAAiBzL,UAAU,e,sDC9BhE,wIAoBA,MAAM+7D,EAAa,GACnBA,EAAW9kE,IAASC,UAAY,CAAE8kE,OAAQC,GAC1CF,EAAW9kE,IAASE,QAAU,CAAE6kE,OAAQE,GACxCH,EAAW9kE,IAASG,UAAY,CAAE4kE,OAAQG,GAC1CJ,EAAW9kE,IAASI,aAAe,CAAE2kE,OAAQI,GAC7CL,EAAW9kE,IAASK,QAAU,CAAE0kE,OAAQK,GACxCN,EAAW9kE,IAASM,aAAe,CAAEykE,OAAQM,GAC7CP,EAAW9kE,IAASO,UAAY,CAAEwkE,OAAQO,GAC1CR,EAAW9kE,IAASQ,sBAAwB,CAAEukE,OAAQQ,GACtDT,EAAW9kE,IAASU,OAAS,CAAEqkE,OAAQS,GACvCV,EAAW9kE,IAASS,SAAW,CAAEskE,OAAQU,GACzCX,EAAW9kE,IAASW,YAAc,CAAEokE,OAAQW,GAC5CZ,EAAW9kE,IAASY,YAAc,CAAEmkE,OAAQY,GAGxCtyD,OAAOsF,oBACVtF,OAAOsF,mBAAmBC,YACzBC,KAAKC,UAAU,CACdC,OAAQ,WACRy4B,SAAUn1C,aAAaC,QAAQC,IAAWC,YAAcwD,IAASC,YAKpEipB,IAAKimC,IAAIyW,KAAkB1xC,KAAK,CAC/B2xC,UAAW,SACXC,OAAO,EACPC,UAAWjB,EACXkB,IAAK3pE,aAAaC,QAAQC,IAAWC,YAAcwD,IAASC,SAC5DgmE,YAAa,CAACjmE,IAASC,SAAUD,IAASE,QAC1CgmE,cAAc,EACdC,cAAe,CACdC,aAAa,KAIAl9C,MAAI,G,2ECxDnB,oDAqEA,MAEMrY,EAAYw1D,IAAMC,OAAO,CAC7BC,QAHc,GAIdC,iBAAiB,EACjBC,QAAS,CACP,mBAAoB56E,IAAOQ,6BAI/BwkB,EAAU61D,aAAaC,QAAQxX,IAC7B/mD,SACOq4B,UAAUmmC,OAjEnBx+D,eAAgCy+D,GAE9B,OAAOA,EAsEEC,CAAiBC,IANtBC,IAAM/nD,SAASgoD,MAA+B,EAAO/9C,IAAK/f,EAAE,iBACrDk6D,QAAQ6D,OAAO,CACpBp+C,SAAS,EACT7G,QAAS,qDAKdqkB,GAAU+8B,QAAQ6D,OAAO5gC,IAG5Bz1B,EAAU61D,aAAatpD,SAAS+xC,IAC7B/xC,GAtEH,SAA2BA,GASzB,OARA4pD,IAAM/nD,SACJgoD,KACE7pD,EAAShM,KAAKvlB,IAAOC,kBACrBsxB,EAAS2pD,OAAOpqE,MAKbygB,EAAShM,KA6DF+1D,CAAkB/pD,GAC/BkpB,GAxDH,SAAwBA,GACtB,IAAI8gC,EAAa,GAyBjB,OAvBAJ,IAAM/nD,SAASgoD,QACX3gC,GAASA,EAAMlpB,WAjCW,KAmC1BkpB,EAAMlpB,SAASyL,QAlCQ,KAmCvByd,EAAMlpB,SAASyL,SAEfm+C,IAAM/nD,SAASooD,OACfL,IAAM/nD,SACJgoD,MAA+B,EAAO/9C,IAAK/f,EAAE,qBAE/Ci+D,EAAa,CACXt+C,SAAS,EACT7G,QAASiH,IAAK/f,EAAE,oBAEdkK,OAAOsF,oBACTtF,OAAOsF,mBAAmBC,YAAYC,KAAKC,UAAUwtB,EAAMlpB,aAQ1DgqD,EA8BIE,CAAehhC,IAGbz1B,O,kBClGfxJ,EAAOC,QAAU,0a,kBCAjBD,EAAOC,QAAU,koH,oBCAjBD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,6C,oBCA3CD,EAAOC,QAAU,IAA0B,oD,8DCA3C,IAAIua,EAAM,CACT,iBAAkB,CACjB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,kBAAmB,CAClB,IACA,IAED,aAAc,CACb,IACA,IAED,oBAAqB,CACpB,IACA,IAED,cAAe,CACd,IACA,IAED,iBAAkB,CACjB,IACA,IAED,oBAAqB,CACpB,IACA,IAED,eAAgB,CACf,IACA,IAED,mBAAoB,CACnB,IACA,IAED,aAAc,CACb,IACA,IAED,qBAAsB,CACrB,IACA,IAED,eAAgB,CACf,IACA,IAED,kBAAmB,CAClB,IACA,IAED,iBAAkB,CACjB,IACA,IAED,mBAAoB,CACnB,IACA,KAGF,SAASshD,EAAoBC,GAC5B,IAAIG,EAAoBC,EAAE3hD,EAAKuhD,GAC9B,OAAOC,QAAQC,UAAUnmD,MAAK,WAC7B,IAAI0C,EAAI,IAAI4jD,MAAM,uBAAyBL,EAAM,KAEjD,MADAvjD,EAAEiwB,KAAO,mBACHjwB,KAIR,IAAI6jD,EAAM7hD,EAAIuhD,GAAM9wD,EAAKoxD,EAAI,GAC7B,OAAOH,EAAoB1jD,EAAE6jD,EAAI,IAAIvmD,MAAK,WACzC,OAAOomD,EAAoBp6D,EAAEmJ,EAAI,MAGnC6wD,EAAoB5xB,KAAO,WAC1B,OAAOx3B,OAAOw3B,KAAK1vB,IAEpBshD,EAAoB7wD,GAAK,IACzBjL,EAAOC,QAAU67D,G,kBCpFjB97D,EAAOC,QAAU,svJ,sJCEV,MAAMigE,EAAe3+D,IAAM4+D,gB,mBCS3Bp/D,eAAeq/D,EAAWC,EAAU/xD,GAEN,OAA7BtC,OAAOL,SAASC,UAAkD,MAA7BI,OAAOL,SAASC,UAAoBI,OAAOL,SAASC,SAASohB,SAAS,OAK3GhhB,OAAOL,SAAS6b,KAAOxb,OAAOL,SAASC,SAASsO,MAAM,GAAI,IAU9D,MAAM42C,EAAQwP,eAAKv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,YACvDE,EAAWD,eAAKv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,eAoC1DG,EAAWF,eAAK,IAAM,OAAO,KAAD/qE,OAAU8qE,EAAQ,oBAE9CI,GADMH,eAAKv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,eAC9CC,eAAKv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,iBACtDK,EAAcJ,eAChBv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,uBAMxCM,EAAYL,eACdv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,qBAExCO,EAAmBN,eACrBv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,4BA0DxCQ,GA5BcP,eAChBv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,yBA2B5BC,eACdv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,wBAExCS,EAAeR,eACjBv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,oBAgGxCU,GANWT,eACbv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,2BAK5BC,eACdv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,sBAExCW,EAAgBV,eAClBv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,yBAExCY,EAAaX,eACfv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,sBA4CxCa,EAAWZ,eACbv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,oBAExCc,EAAWb,eAAKv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,uBAC1De,EAAMd,eAAKv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,kBACrDgB,EAASf,eAAKv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,qBAExDiB,EAAchB,eAAKv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,0BAC7DkB,EAAWjB,eAAKv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,uBAE1D94C,EAAW+4C,eAAKv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,kBAgB1DmB,EAAiBlB,eACnBv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,qBAMxCoB,GAJgBnB,eAClBv/D,eAAkB,OAAO,KAADxL,OAAU8qE,EAAQ,4BAGxB,CAAC,CAKnBv0D,KAAMlU,IAAOnC,UACbisE,OAAO,EACPh2D,MAAO,OACPi2D,UAAWpgE,IAAAC,cAACsvD,EAAK,SAGf8Q,EAAU,CACZ,CACI91D,KAAMlU,IAAO/B,eACb6rE,OAAO,EACPh2D,MAAO,gBACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC+lB,EAAQ,OAExB,CACIzb,KAAMlU,IAAOjC,cACb+rE,OAAO,EACPh2D,MAAO,WACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC++D,EAAQ,OAExB,CACIz0D,KAAMlU,IAAO9B,uBACb4rE,OAAO,EACPh2D,MAAO,oBACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAACo/D,EAAgB,OAEhC,CACI90D,KAAMlU,IAAO7B,cACb2rE,OAAO,EACPh2D,MAAO,WACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAACg/D,EAAQ,OAExB,CACI10D,KAAMlU,IAAOhC,cACb8rE,OAAO,EACPh2D,MAAO,WACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAACsvD,EAAK,OAErB,CACIhlD,KAAMlU,IAAO1B,gBACbwrE,OAAO,EACPh2D,MAAO,aACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAACm/D,EAAS,OAEzB,CACI70D,KAAMlU,IAAO5B,UACb0rE,OAAO,EACPh2D,MAAO,OACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAACi/D,EAAI,OAEpB,CACI30D,KAAMlU,IAAO3B,kBACbyrE,OAAO,EACPh2D,MAAO,SACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAACk/D,EAAW,OAE3B,CACI50D,KAAMlU,IAAOzB,gBACburE,OAAO,EACPh2D,MAAO,aACPi2D,UAAWpgE,IAAAC,cAACq/D,EAAS,OAEzB,CACI/0D,KAAMlU,IAAOxB,eACbsrE,OAAO,EACPh2D,MAAO,YACPi2D,UAAWpgE,IAAAC,cAACs/D,EAAY,OAS5B,CACIh1D,KAAMlU,IAAOtB,eACborE,OAAO,EACPh2D,MAAO,YACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAACu/D,EAAS,OAEzB,CACIj1D,KAAMlU,IAAOrB,oBACbmrE,OAAO,EACPh2D,MAAO,wBACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAACw/D,EAAa,OAE7B,CACIl1D,KAAMlU,IAAOnC,UACbisE,OAAO,EACPh2D,MAAO,OACPi2D,UAAWpgE,IAAAC,cAACsvD,EAAK,OAErB,CACIhlD,KAAMlU,IAAOpB,eACbkrE,OAAO,EACPh2D,MAAO,YACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC0/D,EAAQ,OAExB,CACIp1D,KAAMlU,IAAOnB,cACbirE,OAAO,EACPh2D,MAAO,WACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC2/D,EAAQ,OAExB,CACIr1D,KAAMlU,IAAOjB,SACb+qE,OAAO,EACPh2D,MAAO,MACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC4/D,EAAG,OAEnB,CACIt1D,KAAMlU,IAAOL,YACbmqE,OAAO,EACPh2D,MAAO,SACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC6/D,EAAM,OAEtB,CACIv1D,KAAMlU,IAAOlB,kBACbgrE,OAAO,EACPh2D,MAAO,eACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC8/D,EAAW,OAE3B,CACIx1D,KAAMlU,IAAOhB,sBACb8qE,OAAO,EACPh2D,MAAO,QACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC0/D,EAAQ,OAExB,CACIp1D,KAAMlU,IAAOf,qBACb6qE,OAAO,EACPh2D,MAAO,QACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC0/D,EAAQ,OAExB,CACIp1D,KAAMlU,IAAOd,sBACb4qE,OAAO,EACPh2D,MAAO,SACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC0/D,EAAQ,OAExB,CACIp1D,KAAMlU,IAAOb,wBACb2qE,OAAO,EACPh2D,MAAO,YACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC0/D,EAAQ,OAExB,CACIp1D,KAAMlU,IAAOZ,oBACb0qE,OAAO,EACPh2D,MAAO,OACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC0/D,EAAQ,OAExB,CACIp1D,KAAMlU,IAAOT,sBACbuqE,OAAO,EACPh2D,MAAO,SACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC0/D,EAAQ,OAExB,CACIp1D,KAAMlU,IAAOR,qBACbsqE,OAAO,EACPh2D,MAAO,QACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC0/D,EAAQ,OAExB,CACIp1D,KAAMlU,IAAOP,wBACbqqE,OAAO,EACPh2D,MAAO,WACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC0/D,EAAQ,OAExB,CACIp1D,KAAMlU,IAAON,qBACboqE,OAAO,EACPh2D,MAAO,QACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC0/D,EAAQ,OAExB,CACIp1D,KAAM,eACN41D,OAAO,EACPh2D,MAAO,wBACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAACw/D,EAAa,OAE7B,CACIl1D,KAAM,eACN41D,OAAO,EACPh2D,MAAO,eACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAACy/D,EAAU,OAE1B,CACIn1D,KAAMlU,IAAOV,uBACbwqE,OAAO,EACPh2D,MAAO,UACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC0/D,EAAQ,OAExB,CACIp1D,KAAMlU,IAAOH,sBACbiqE,OAAO,EACPh2D,MAAO,YACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAACggE,EAAc,OAE9B,CACI11D,KAAMlU,IAAOD,eACb+pE,OAAO,EACPh2D,MAAO,YACPm2D,cAAc,EACdF,UAAWpgE,IAAAC,cAAC+/D,EAAQ,QAkD5B,OAAQjzD,GACJ,IAAK,QACD,OAAOwzD,EAAoBL,GAI/B,QAEI,OAAOK,EAAoBF,IAKvC,SAASE,EAAoBC,GAIzB,IAAIC,EAAkB,GACtB,IACIA,EAAkBD,EAAOvnD,IAAKynD,IAC1B,MAAM,KAAEn2D,GAASm2D,EACXC,EAAap2D,EAAK5T,WAAW,KAAI,WAAA3C,OAAcuW,GAAI,UAAAvW,OAAeuW,GACxE,OAAAwoC,wBAAA,GACO2tB,GAAK,IACRn2D,KAAMo2D,MAGhB,MAAOjjC,GAEL,MADA9D,QAAQ8D,MAAMA,GACRA,EAGV,OAAO+iC,E,6LC6XIG,MAr9BchiE,IAC5B,IAAI,EAAE2B,EAAC,KAAE+f,GAAS9f,cACHE,cACf,MAAOmgE,EAAMC,GAAWzhE,qBACxB,IAAIR,EAAYC,cAChB,MAAMwC,EAAiBtC,YAAaC,GAAUA,EAAMC,SAASoC,iBACtDy/D,EAAkBC,GAAuB3hE,mBAAS,KAClD4hE,EAAUC,GAAe7hE,mBAAS,IAClC2hD,EAAQmgB,GAAa9hE,mBAAS,IAC9BoxD,EAAYC,GAAiBrxD,mBAAS,IACtC+hE,EAAiBC,GAAsBhiE,oBAAS,IAChDiiE,EAAYC,GAAiBliE,sBAC7Bg0B,EAAKmuC,GAAUniE,mBAAS,IACxBi0B,EAAKmuC,GAAUpiE,mBAAS,IACxBqiE,EAAeC,GAAoBtiE,mBAAST,EAAMgjE,eAClD79D,EAAY89D,GAAiBxiE,oBAAS,IACtCm/C,EAAUsjB,GAAeziE,mBAAS,KAClC0iE,EAAWC,GAAgB3iE,mBAAS,KACpCb,EAAOyjE,GAAY5iE,mBAAS,KAC5B6iE,EAASC,GAAc9iE,mBAAS,KAChCulD,EAAeC,GAAoBxlD,oBAAS,IAC5C+iE,EAAcC,IAAmBhjE,mBAAS,KAC1CijE,GAAmBC,IAAwBljE,mBAAS,IACrD8kB,GAAkBnlB,YACtBC,GAAUA,EAAMC,SAASilB,iBAErBD,GAAmBllB,YACvBC,GAAUA,EAAMC,SAASglB,mBAUpBs+C,GAAeC,IAAoBpjE,mBARtB,CACnB,CAAE2hD,OAAQ,IACV,CAAEA,OAAQ,IACV,CAAEA,OAAQ,IACV,CAAEA,OAAQ,IACV,CAAEA,OAAQ,IACV,CAAEA,OAAQ,MAKX,IAAI0hB,GAAgBxhE,mBAChByhE,GAAYzhE,mBACZ0hE,GAAW1hE,mBACf,MAAO2hE,GAAQC,IAAazjE,mBAAS,KAC9B0jE,GAAOC,IAAY3jE,mBAAS,MAC7BsB,GAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,SAElDqiE,GAAWC,IAAgB7jE,mBAAS,KACpC8jE,GAAeC,IAAoB/jE,oBAAS,IAC5CgkE,GAAWC,IAAgBjkE,mBAAS,KACpCkT,GAAiBC,IAAsBnT,mBAAS,IAChDkkE,GAAiBC,IAAsBnkE,mBAAS,IAChDokE,GAAeC,IAAoBrkE,sBACnCskE,GAAcC,IAAmBvkE,mBAAS,KAC1CwkE,GAAgBC,IAAqBzkE,oBAAS,IAC9C0kE,GAAUC,IAAe3kE,mBAAS,KAClC4kE,GAAUC,IAAe7kE,oBAAS,IAClC8kE,GAAWC,IAAgB/kE,oBAAS,IACpCglE,GAAaC,IAAkBjlE,oBAAS,IACxCklE,GAAUC,IAAenlE,oBAAS,IAClColE,GAAWC,IAAgBrlE,oBAAS,IACpCslE,GAAcC,IAAmBvlE,mBAAS,IAIjDC,oBAAU,KACT,MAAMulE,EAAwB3gD,GAAiB9O,MAAM,KAE/C0vD,EAActC,GAAcvpD,IAAI,CAACoF,EAAMrJ,IAC5C+9B,wBAAA,GAAY10B,GAAI,IAAE2iC,OAAQ6jB,EAAsB7vD,IAAU,MAE3DytD,GAAiBqC,IACf,CAAC5gD,KAEJ5kB,oBAAU,MAuCVE,iBACC,IAAIulE,QAA+B98D,IAAU1R,IAC5C1S,IAAOmE,8BAER,GAAI+8E,EAAuB9hF,IAAOC,kBAAmB,CACpD,GAAoD,MAAhD6hF,EAAuB9hF,IAAOG,eAAwB,CACzD4wB,aAAayvD,IACb,IAAIuB,EAAQx1C,SACXu1C,EAAuB9hF,IAAOG,eAAyB,UAExDkgF,GAAayB,EAAuB9hF,IAAOG,eAA0B,WACrEogF,GAAmBwB,GACnBxyD,GAAmBwyD,EAAQ,EAAI,EAAIA,GACnC5B,IAAiB,GAEjBF,GAAa3iE,EAAE,4BAEf,GAAI3B,EAAMqmE,YAAY1lE,OAAO,EAAG,CAC/B,IAAI++C,EAAkB,GACtB1/C,EAAMqmE,YAAY/sC,SAAQ,SAAUqmB,GACnCD,EAAgB9zC,KAAK,CACpBhM,MAAO+/C,EAAY1lC,kBACnBta,MAAOggD,EAAY70C,GACnBq4D,UAAWxjB,EAAYE,cACvBprB,IAAKkrB,EAAYoQ,eACjBr7B,IAAKirB,EAAY2mB,eACjB1mB,SAAUD,EAAYC,SACtBulB,SAAUxlB,EAAYwlB,cAGxBxB,GAAqBjkB,OACf,CACN,IAAIt2C,QAAqBC,IAAU1R,IAClC1S,IAAO8E,wBAA0B,aAAc,GAEhD,GAAIqf,EAAa/kB,IAAOC,kBAAmB,CAC1C,IAAIo7D,EAAkB,GACtBt2C,EAAa/kB,IAAOG,eAAe80C,SAAQ,SAAUqmB,GACpDD,EAAgB9zC,KAAK,CACpBhM,MAAO+/C,EAAY1lC,kBACnBta,MAAOggD,EAAY70C,GACnBq4D,UAAWxjB,EAAYE,cACvBprB,IAAKkrB,EAAYoQ,eACjBr7B,IAAKirB,EAAY2mB,eACjB1mB,SAAUD,EAAYC,SACtBulB,SAAUxlB,EAAYwlB,cAIxBxB,GAAqBjkB,IAMxBwlB,IAAkB,QAElBjlE,EACCiL,cACC,EACAi7D,EAAuB9hF,IAAOE,oBAlGjCmoC,IACE,IAEHhsB,oBAAU,KACLiT,GAAkB,IACrByB,aAAayvD,IACbC,GACC7wD,WAAW,KACV,IAAIsyD,EAAa5yD,GAAkB,EACnCC,GAAmB2yD,GACnB,IAAIC,EAAQj+C,IAAO8L,SAASkyC,GACxBE,EAASn9C,KAAK+D,MAAMm5C,EAAqB,cAAI,IAC7CE,EAASF,EAAqB,cAAa,GAATC,EACtC7B,GAAmB4B,EAAqB,eACxC,IAAIG,GACFF,EAAOhQ,WAAW91D,OAAS,EAAI8lE,EAAS,IAAMA,GAC/C,IACA9kE,EAAE,WACF,KACC+kE,EAAOjQ,WAAW91D,OAAS,EAAI+lE,EAAS,IAAMA,GAC/C,IACA/kE,EAAE,UACHqjE,GAAgB2B,IAlCG,QAsCpB,CAAChzD,KAEJjT,oBAAU,MACJqK,YAAoB+3D,IAAkBA,EAAgB,GAiH5DliE,iBACCX,EAAUY,gBACV,IAAIuI,QAAqBC,IAAU1R,IAClC1S,IAAO4E,iCAAmC,WAAai5E,GAGxD,IAAK15D,EAAa/kB,IAAOC,kBACxB,MAAM8kB,EAAa/kB,IAAOE,kBAG3Bq+E,EAAOx5D,EAAa/kB,IAAOG,eAAe,GAAmB,gBAC7Dq+E,EAAOz5D,EAAa/kB,IAAOG,eAAe,GAAmB,gBAC7D0+E,EAAY95D,EAAa/kB,IAAOG,eAAe,GAAa,UAC5D4+E,EAAah6D,EAAa/kB,IAAOG,eAAe,GAAkB,eAClE6+E,EAASj6D,EAAa/kB,IAAOG,eAAe,GAAsB,mBAClE4gF,GAAYh8D,EAAa/kB,IAAOG,eAAe,GAAa,UAI5Dyb,EAAUiB,gBAnIT0lE,IAEC,CAAC9D,IAEJpiE,oBAAU,KACT4hE,EAAYlgB,EAAOqU,aACjB,CAACrU,IAoEJ,MAAMykB,GAAkBr8B,sBACvBC,mBAAU9qC,IACT2iE,EAAY3iE,IACV,KACH,IA4MD,MAAMynD,GAAWA,CAACn1C,EAAK9D,KACtB,IAAK8D,EAAIxH,QAAS,OAElB,IAAIq8D,EACqB,UAAxB70D,EAAIxH,QAAQs8D,QACT90D,EAAIxH,QAAQ9K,MACZsS,EAAIxH,QAAQ88C,UAEhBtuB,UAAUouB,UACRC,UAAUwf,GACVnxD,KAAK,KACLuuD,GAAU/1D,GAEV83C,GAAiB,GAEbke,IAAO/uD,aAAa+uD,IAExBC,GACCnwD,WAAW,KACViwD,GAAU,KA/WQ,SAmXpB8C,MAAOv9C,GAAQuR,QAAQ8D,MAAM,eAAgBrV,KAkChD,OACCroB,IAAAC,cAAAD,IAAAE,SAAA,KACE2jE,IACA7jE,IAAAC,cAAA,OACCwM,MAAO,CACNoc,UAAW,SACXC,UAAW,OACXpc,aAAc,SAGf1M,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,SAGT1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,UAKzCsjE,IAAkBV,IACnBnjE,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,4BACXojE,GAAkB,EAChBhjE,EAAE,eACF,IACAojE,GACA,IAEEpjE,EADa,YAAd8iE,GACG,uBACA,2BACJJ,QAMNY,KAAmBV,IACpBnjE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,qDACdH,IAAAC,cAAA,OAAKE,UAAU,yEACdH,IAAAC,cAAA,QAAME,UAAU,UAAUI,EAAE,YAC5BP,IAAAC,cAAA,QAAME,UAAU,UACdwN,YACArM,EAAesM,qBACf,GACA,KAIH5N,IAAAC,cAAA,OAAKE,UAAU,yEACdH,IAAAC,cAAA,QAAME,UAAU,UAAUI,EAAE,gBAC5BP,IAAAC,cAAA,QAAME,UAAU,UAEdkzB,EAAM1lB,YAAyB0lB,EAAK,GAAG,GAAQ,MAGlDrzB,IAAAC,cAAA,OAAKE,UAAU,yBACfH,IAAAC,cAAA,OAAKE,UAAU,uBACdH,IAAAC,cAAA,QAAME,UAAU,qBAAqBI,EAAE,SAAS,OAChDP,IAAAC,cAAA,KAAGE,UAAU,eAAeI,EAAE,yBAG/BI,GAAW+c,qBACX1d,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,sCACXI,EAAE,6CAORP,IAAAC,cAAA,QAAME,UAAU,yBAqCfH,IAAAC,cAAA,OAAKE,UAAU,uBACdH,IAAAC,cAAA,SAAOE,UAAU,QAAQI,EAAE,gBAC3BP,IAAAC,cAAA,OAAKE,UAAU,mBAAmBsM,MAAO,CAAEmgB,QAAS,SAElD01C,GAAkBrpD,IAAI,CAAC4sD,EAAMC,IAE3B9lE,IAAAC,cAAA,OAAKgV,IAAK6wD,EAAW3lE,UAAS,kBAAAnM,OAAoB6xE,EAAKtnE,QAAUmjE,EAAgB,YAAa,IAC7Fv2D,QAASA,KACRw2D,EAAiBkE,EAAKtnE,OACtB4iE,EAAU,GACVD,EAAY,KAGblhE,IAAAC,cAAA,OAAKE,UAAU,mBAEb0lE,EAAK9B,SACJ/jE,IAAAC,cAAA,OACCG,IAAKylE,EAAK9B,SACV5jE,UAAU,iBACVyL,IAAI,SAEF,IAGN5L,IAAAC,cAAA,OAAKE,UAAU,oBACdH,IAAAC,cAAA,OAAKE,UAAU,oBAAoB0lE,EAAKrnB,UACxCx+C,IAAAC,cAAA,OAAKE,UAAU,sBAAsB0lE,EAAKxyC,IAAI,MAAIwyC,EAAKvyC,UAW9DtzB,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,SAAOE,UAAU,QAAQI,EAAE,yBAC3BP,IAAAC,cAAA,OAAKE,UAAU,uCACfH,IAAAC,cAAA,OAAKE,UAAU,mCACbqiE,IACAA,GAAcjjE,QACd0Z,cAAIupD,GAAe,CAACnkD,EAAMrJ,KACzB,GAAmB,IAAfqJ,EAAK2iC,OAAc,CACtB,MAAM+kB,EAAoBp4D,YACzB0Q,EAAK2iC,OACL,GACA,GAED,OACChhD,IAAAC,cAAA,OACCgV,IAAKD,EACL7U,UACC,SACCke,EAAK2iC,OAAS1tB,GAAOD,EAAMhV,EAAK2iC,OAC9B,YACA,KACF3iC,EAAK2iC,SAAWigB,EAAW,SAAW,IAExC91D,QAASA,IA3XAkT,KACpB,IAAI2nD,EAAQp2D,WAAWyO,GACnBgV,EAAM2yC,IACTA,EAAQ3yC,GAELC,EAAM,GACL0yC,EAAQ1yC,IAEX0yC,EAAQ1yC,GAIT6tC,EAAU6E,IACNA,IAAUjoD,MAAMioD,IAAU96B,OAAO86B,IAAU3yC,IAC9CixC,IAAe,IAGhBzlE,EAAUiL,cAAoB,EAAO,wBA0WZy/B,CAAYlrB,EAAK2iC,SAGhChhD,IAAAC,cAAA,OAAKE,UAAU,OAOfH,IAAAC,cAAA,OAAKE,UAAU,SACbi2D,YAAiB2P,SAQzB/lE,IAAAC,cAAA,OAAKE,UAAU,kCACdH,IAAAC,cAAA,OAAKE,UAAU,8BACdH,IAAAC,cAAA,OAAKE,UAAU,SAASgkB,IACxBnkB,IAAAC,cAAA,OAAKE,UAAU,UACdH,IAAAC,cAAA,SACC8M,KAAK,OACLsiC,YACC9uC,EAAE,oBACF,KACA4jB,GACA,IACAkP,EACA,MACAlP,GACA,IACAmP,EACA,IAED/0B,MACqB,QAApB4lB,GACG+mB,OAAO8V,GAAU,EAChBxxB,SAASwxB,GACT,EACD9V,OAAO8V,GAAU,EACjB9V,OAAO8V,GAAQ93C,QAAQ,GACvB,GAGJ8P,SAlfVxZ,eAA2ByX,GAC1B,IAAI+pC,EAAS/pC,EAAEzgB,OAAO+H,MACpBiO,QAAQ,mEAA4D,IACpEigC,OAEY,IAAVuU,IACHA,EAAS,GAEV,IAAIziD,EAAQ,EAEXA,EADuB,QAApB4lB,GACK+mB,OAAOt7B,WAAWoxC,GAAU,GAAG93C,QAAQ,GAEvCgiC,OAAOt7B,WAAWoxC,GAAU,KAAK93C,QAAQ,GAG9C0G,WAAWrR,GAAS+0B,IACvB/0B,EAAQ+0B,GAETrc,EAAEzgB,OAAOi4C,kBAAkBlwC,EAAMgB,OAAQhB,EAAMgB,QAC/C4hE,EAAU5iE,IACNA,IAAUwf,MAAMxf,IAAU2sC,OAAO3sC,IAAU80B,IAC9CixC,IAAe,GAEhBmB,GAAgBpQ,mBAAS7lC,SAASjxB,UA+d3B8lE,IACArkE,IAAAC,cAAA,KAAGE,UAAU,mCAETI,EADFygD,GAAU,EACN,qBACA,4BAGPhhD,IAAAC,cAAA,OAAKE,UAAU,wBACbkzB,EAAM,GAAKC,EAAM,EACjBnP,GACA,IACAkP,EACA,MACAlP,GACA,IACAmP,EAEAtzB,IAAAC,cAAAD,IAAAE,SAAA,KAAE,YAMJyJ,YAAoB+3D,IAAkBA,EAAgB,GACvD1hE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OACCE,UAAU,kCACVsM,MAAO,CAAEw5D,YAAa,EAAGC,aAAc,IAuBvClmE,IAAAC,cAAA,OAAKE,UAAU,2BACdH,IAAAC,cAAA,OAAKE,UAAU,uBACdH,IAAAC,cAAA,QAAME,UAAU,sBACdI,EAAE,cAEJP,IAAAC,cAAA,KAAGE,UAAU,eAAeq+C,KAG9Bx+C,IAAAC,cAAA,MAAIE,UAAU,6BACdH,IAAAC,cAAA,OAAKE,UAAU,2BACdH,IAAAC,cAAA,OAAKE,UAAU,uBACdH,IAAAC,cAAA,QAAME,UAAU,sBACdI,EAAE,mBAEJP,IAAAC,cAAA,KAAGE,UAAU,cAAc0Q,IAAK6xD,IAC9BX,IAGH/hE,IAAAC,cAAA,OACCkL,QAASA,IAAM66C,GAAS0c,GAAe,OACvCj2D,MAAO,CAAEsE,OAAQ,YAEL,QAAX8xD,GACA7iE,IAAAC,cAAA,QAAME,UAAU,UAAUI,EAAE,WAE5BP,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,WAKR5L,IAAAC,cAAA,MAAIE,UAAU,6BACdH,IAAAC,cAAA,OAAKE,UAAU,2BACdH,IAAAC,cAAA,OAAKE,UAAU,uBACdH,IAAAC,cAAA,QAAME,UAAU,sBACdI,EAAE,wBAEJP,IAAAC,cAAA,KAAGE,UAAU,cAAc0Q,IAAK8xD,IAC9BnkE,IAGHwB,IAAAC,cAAA,OACCkL,QAASA,IAAM66C,GAAS2c,GAAW,SACnCl2D,MAAO,CAAEsE,OAAQ,YAEL,UAAX8xD,GACA7iE,IAAAC,cAAA,QAAME,UAAU,UAAUI,EAAE,WAE5BP,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,YAOT5L,IAAAC,cAAA,OACCE,UAAU,kCACVsM,MAAO,CAAEw5D,YAAa,EAAGC,aAAc,IAEvClmE,IAAAC,cAAA,OACCE,UAAU,0BACVsM,MAAO,CAAEqgB,IAAK,SAEd9sB,IAAAC,cAAA,OAAKE,UAAU,6BACdH,IAAAC,cAAA,QAAME,UAAU,sBACdI,EAAE,4BAA4B,MAEhCP,IAAAC,cAAA,SACC4Q,IAAK+xD,GACL71D,KAAK,OACL5M,UAAU,cACV5B,MAAO2jE,EACPlpD,SAlYY/B,IAEtB,MAAMkvD,EADMlvD,EAAEzgB,OAAO+H,MACQiO,QAAQ,gBAAiB,IAElD25D,EAAe5mE,OAAS,IAC3BilE,IAAY,GACZI,GAAgB,wCAEhBJ,IAAY,GACZI,GAAgB,KAGjBzC,EAAWgE,IAuXD15D,MAAO,CACNoI,OAAQ0vD,GAAW,gBAAkB,oBAGtCA,IACAvkE,IAAAC,cAAA,QAAME,UAAU,yBACdI,EAAEokE,MAIN3kE,IAAAC,cAAA,OACCkL,QAASA,IAAM66C,GAAS4c,GAAU,OAClCn2D,MAAO,CAAEsE,OAAQ,YAEL,QAAX8xD,GACA7iE,IAAAC,cAAA,QAAME,UAAU,UAAUI,EAAE,WAE5BP,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,YAOT5L,IAAAC,cAAA,OAAKE,UAAU,wCACdH,IAAAC,cAAA,KAAGE,UAAU,UAAUI,EAAE,wBAEvBsgE,GACD7gE,IAAAC,cAAA,SAAOmmE,QAAQ,SAASjmE,UAAU,sBACjCH,IAAAC,cAAA,OACCwM,MAAO,CACNmgB,QAAS,OACT6gC,cAAe,MACf3gC,IAAK,SAGN9sB,IAAAC,cAAA,OAAKE,UAAU,iBACdH,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAW00C,OACjB7/C,UAAU,8BAGZH,IAAAC,cAAA,OAAKE,UAAU,UAAUI,EAAE,yBAI7BsgE,GACA7gE,IAAAC,cAAA,OAAKE,UAAU,sBACdH,IAAAC,cAAA,OAAKE,UAAU,8BACdH,IAAAC,cAAA,OACCE,UAAU,kDACVsM,MAAO,CACNd,MAAO,QAGR3L,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAW+hC,MACjBltC,UAAU,8BAGZH,IAAAC,cAAA,SACCE,UAAU,SACVimE,QAAQ,UAYRpmE,IAAAC,cAAA,OAAKwM,MAAO,CAAEE,SAAU,UA9oBbklB,GA+oBKgvC,EAAK/3D,MA9oBvBvJ,OAAS,GACVsyB,GAAKlZ,MAAM,EAAG,IAAM,SAErBkZ,IA6oBI7xB,IAAAC,cAAA,OACCE,UAAU,aA3oBH,SAACkmE,GAAyB,IAAlBC,EAAQxvE,UAAAyI,OAAA,QAAA6gB,IAAAtpB,UAAA,GAAAA,UAAA,GAAG,EACtC,KAAMuvE,EAAO,MAAO,UAEpB,MAAME,EAAI,KACJC,EAAKF,EAAW,EAAI,EAAIA,EACxBG,EAAQ,CAAC,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAE5Dz7C,EAAI9C,KAAK+D,MAAM/D,KAAK2R,IAAIwsC,GAASn+C,KAAK2R,IAAI0sC,IAEhD,MAAM,GAANvyE,OAAU4b,YAAYy2D,EAAQn+C,KAAKqtC,IAAIgR,EAAGv7C,IAAI9hB,QAAQs9D,IAAI,KAAAxyE,OAAIyyE,EAAMz7C,IAqoBvD07C,CAAY7F,EAAK7yD,QAGpBhO,IAAAC,cAAA,OACCwM,MAAO,CACNmgB,QAAS,OACTitB,eAAgB,MAChBhtB,WAAY,SACZlhB,MAAO,QAGR3L,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAWC,MACjBpL,UAAU,2BACVgL,QAASA,IAAM21D,SAMpB9gE,IAAAC,cAAA,SACC8M,KAAK,OACLrD,GAAG,SACHi9D,QAAM,EACN3tD,SA/fiB/B,IACzB,MAAM2vD,EAAe3vD,EAAEzgB,OAAOqwE,MAAM,GAIhCD,GAHoB,CAAC,YAAa,aAAc,aAGhBntD,SAASmtD,EAAa75D,OACzD+zD,EAAQ8F,GACRlC,IAAa,KAEb5D,EAAQ,MACRjiE,EACCiL,cAAoB,EAAOvJ,EAAE,wCAqfvBhC,MAAM,GACNuoE,OAAO,oCAEPrC,IACAzkE,IAAAC,cAAA,QAAME,UAAU,wBACdI,EAAE,+BAORP,IAAAC,cAAA,OACCE,UAAU,gCAGRwJ,YAAoB+3D,IAAkBA,EAAgB,GACvD1hE,IAAAC,cAAA,OAAKE,UAAU,eACdH,IAAAC,cAAA,UACC8M,KAAK,SACL5M,UAAU,qBACVgL,QAASA,KACRtM,EAAUiiB,cAAgB,KAE3BrU,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE,aAIJwD,GACD/D,IAAAC,cAAA,KACCE,UAAS,oDACTgL,QAASA,MAvqBjB3L,iBACC,GAAImK,YAAoB+3D,GAEvB,YADA0C,IAAa,GAId,IACEpjB,GACDjjC,MAAMijC,IACN9V,OAAO8V,IAAW,GAClB9V,OAAO8V,GAAU3tB,EAGjB,YADAixC,IAAe,GAIhB,GAAI36D,YAAoBu4D,GAGvB,OAFAsC,IAAY,QACZI,GAAgB,6BAGhB,IAAKj7D,YAAoBg7D,IAGxB,OAFAH,IAAY,QACZI,GAAgBD,IAKlB,IAAK9D,EAEJ,YADA6D,IAAa,GAId,IAAIpvD,EAAS,CACZwrC,kBAAmBroD,IAAgBC,SACnCsoD,OAAQpxC,WAAWoxC,GACnBxX,QAASttC,IAAeC,yBACxB4qE,MAAOzqE,IAAUC,YACjBmlE,cAAeA,EACfX,iBAAkBmB,GAGdv4D,YAAoB+3D,KACxBpsD,EAAsB,cAAIosD,GAGtB/3D,YAAoBk3D,KACxBvrD,EAAgB,QAAIurD,GAGhBl3D,YAAoBy4D,IAAiC,MAAhBA,EAEd,OAAjBA,IACV9sD,EAAuB,eAAI,IAF3BA,EAAuB,eAAI8sD,EAI5BvjE,EAAUulB,cAAe,IACzB,IAAIpc,QAAqBC,IAAUiM,KAClCrwB,IAAO+D,wBACPusB,YAAwBmB,IAGrBtN,EAAa/kB,IAAOC,mBACvBwtE,EAAcp7C,EAAO0rC,QACrBqgB,GAAmB,GACnBE,EAAcp6C,MAASO,OAAO,yBAC9B7oB,EAAUulB,cAAe,IAEzBvlB,EAAUiiB,cAAgB,IAC1BjiB,EACC0hB,aAAY,CACXvU,QAAQ,EACRP,WACCzL,IAAAC,cAAA,OACCE,UAAU,SACVC,IAAKgX,EAAQ,KACb1L,OAAO,QACPC,MAAM,QACNC,IAAI,gBAGNoB,QAASzM,EAAE,oCAKbs2D,YAAe,KACdpsD,OAAOysD,IAAI,QAAS,WAAY,CAC/B34D,MAAO+W,EAAO0rC,OACdh/B,SAAUmC,SAIZ09C,GAAc,GACdV,EAAU,GACVD,EAAY,GACZJ,IACAE,EAAoB,IACpBniE,EAAUulB,cAAe,IAEzBvlB,EACCiL,aACC9B,EAAa/kB,IAAOC,kBACpB8kB,EAAa/kB,IAAOE,qBAkkBf6jF,IAGDv6D,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE,WAIJwD,GACA/D,IAAAC,cAAA,KAAGE,UAAU,8DACXI,EAAE,eA3tBYsxB,Q,QC45BTo1C,MA1oCYroE,IAC1B,IAAI,EAAE2B,EAAC,KAAE+f,GAAS9f,cACHE,cACf,MAAOmgE,EAAMC,GAAWzhE,qBACxB,IAAIR,EAAYC,cAChB,MAAMwC,EAAiBtC,YAAaC,GAAUA,EAAMC,SAASoC,iBACtDy/D,EAAkBC,GAAuB3hE,mBAAS,KAClD4hE,EAAUC,GAAe7hE,mBAAS,IAClC2hD,EAAQmgB,GAAa9hE,mBAAS,IAC9BoxD,EAAYC,GAAiBrxD,mBAAS,IACtC+hE,EAAiBC,GAAsBhiE,oBAAS,IAChDiiE,EAAYC,GAAiBliE,sBAC7Bg0B,EAAKmuC,GAAUniE,mBAAS,IACxBi0B,EAAKmuC,GAAUpiE,mBAAS,IACxBqiE,EAAeC,GAAoBtiE,sBACnC0E,EAAY89D,GAAiBxiE,oBAAS,IACtCm/C,EAAUsjB,GAAeziE,mBAAS,KAClC0iE,EAAWC,GAAgB3iE,mBAAS,KACpCb,EAAOyjE,GAAY5iE,mBAAS,KAC5B6iE,EAASC,GAAc9iE,mBAAS,KAChCulD,EAAeC,GAAoBxlD,oBAAS,IAC5C+iE,EAAcC,GAAmBhjE,mBAAS,KAC1CijE,EAAmBC,IAAwBljE,mBAAS,KACpD6nE,GAAiBC,IAAsB9nE,sBACvC+nE,GAAUC,IAAehoE,oBAAS,IAClCioE,GAAcC,IAAmBloE,oBAAS,GAE3C8kB,GAAkBnlB,YACtBC,GAAUA,EAAMC,SAASilB,iBAErBD,GAAmBllB,YACvBC,GAAUA,EAAMC,SAASglB,mBAUpBs+C,GAAeC,IAAoBpjE,mBARtB,CACnB,CAAE2hD,OAAQ,IACV,CAAEA,OAAQ,IACV,CAAEA,OAAQ,IACV,CAAEA,OAAQ,IACV,CAAEA,OAAQ,IACV,CAAEA,OAAQ,MAoBS9/C,mBACJA,mBACDA,mBACf,MAAO2hE,GAAQC,IAAazjE,mBAAS,KAC9B0jE,GAAOC,IAAY3jE,mBAAS,MAC7BsB,GAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,SAClD4mE,GAAoBC,IAAyBpoE,sBAC7CqoE,GAAqBC,IAA0BtoE,sBAE/C4jE,GAAWC,IAAgB7jE,mBAAS,KACpC8jE,GAAeC,IAAoB/jE,oBAAS,IAC5CgkE,GAAWC,IAAgBjkE,mBAAS,KACpCkT,GAAiBC,IAAsBnT,mBAAS,IAChDkkE,GAAiBC,IAAsBnkE,mBAAS,IAChDokE,GAAeC,IAAoBrkE,sBACnCskE,GAAcC,IAAmBvkE,mBAAS,KAC1CwkE,GAAgBC,IAAqBzkE,oBAAS,IAC9CoS,GAAaiC,IAA0BrU,sBACvCuoE,GAAaC,IAAkBxoE,mBAAS,KACxCyoE,GAAcC,IAAmB1oE,oBAAS,GAC3CqY,GAAoB1Y,YAAaC,GAAUA,EAAMC,SAASyY,eACzDC,GAAqBC,IAA0BxY,mBAAS,KACxD2oE,GAAOC,IAAY5oE,mBAAS,KAC5B6oE,GAAYC,IAAiB9oE,mBAAS,KACtC8kE,GAAWC,IAAgB/kE,oBAAS,IACpCglE,GAAaC,IAAkBjlE,oBAAS,IACxCklE,GAAUC,IAAenlE,oBAAS,IAClColE,GAAWC,IAAgBrlE,oBAAS,IACpCslE,GAAcC,IAAmBvlE,mBAAS,IAEjDC,oBAAU,KACT,MAAMulE,EAAwB3gD,GAAiB9O,MAAM,KAE/C0vD,EAActC,GAAcvpD,IAAI,CAACoF,EAAMrJ,IAC5C+9B,wBAAA,GAAY10B,GAAI,IAAE2iC,OAAQ6jB,EAAsB7vD,IAAU,MAE3DytD,GAAiBqC,IACf,CAAC5gD,KAEJ5kB,oBAAU,MAsCVE,iBACC,IAAIwI,QAAqBC,IAAU1R,IAAI1S,IAAOmE,8BAC9C,GAAIggB,EAAa/kB,IAAOC,kBAAmB,CAC1C,GAA0C,MAAtC8kB,EAAa/kB,IAAOG,eAAwB,CAC/C4wB,aAAayvD,IACb,IAAIuB,EAAQx1C,SAASxnB,EAAa/kB,IAAOG,eAAyB,UAClEkgF,GAAat7D,EAAa/kB,IAAOG,eAA0B,WAC3DogF,GAAmBwB,GACnBxyD,GAAmBwyD,EAAQ,EAAI,EAAIA,GACnC5B,IAAiB,GACjBF,GAAa3iE,EAAE,2BACT,CAAC,IAAD6nE,EAAAC,EACN,MAAMC,EACmB,QADQF,EAChCxpE,EAAM4oE,0BAAkB,IAAAY,OAAA,EAAxBA,EAA0BG,wBAC3B,IAAIjqB,EAAkB,GACtB,MAAMiqB,EACmB,QADIF,EAC5BzpE,EAAM4oE,0BAAkB,IAAAa,OAAA,EAAxBA,EAA0BE,wBAAwB,GAE/CD,IACHA,EAA4BpwC,SAAQ,SAAUqmB,GAC7CD,EAAgB9zC,KAAK,CACpBhM,MAAO+/C,EAAYz1C,KACnBvK,MAAOggD,EAAY70C,GAEnB2pB,IAAKkrB,EAAYoQ,eACjBr7B,IAAKirB,EAAY2mB,eACjB1mB,SAAUD,EAAYz1C,UAIxBy5D,GAAqBjkB,GAErBkjB,EAAO+G,EAAwB5Z,gBAC/B8S,EAAO8G,EAAwBrD,gBAC/BpD,EAAYyG,EAAwBz/D,MAIpCy+D,KAAgB3oE,EAAM4pE,wBAEtB7G,EAAiB4G,EAAwB7pB,QAEzC+oB,GAAsBc,GACtBZ,GAAuB/oE,EAAM4oE,mBAAmBE,sBAIlD5D,IAAkB,QAElBjlE,EACCiL,cAAoB,EAAO9B,EAAa/kB,IAAOE,oBAvFjDmoC,IAEE,IAEHhsB,oBAAU,OAIPV,GACHU,oBAAU,KACLkoE,KAEF/tD,mBAA2B,OAAlB+tD,SAAkB,IAAlBA,QAAkB,EAAlBA,GAAoBiB,SAAU,YACvChvD,mBAA2B,OAAlB+tD,SAAkB,IAAlBA,QAAkB,EAAlBA,GAAoBiB,SAAU,YAEvCpB,IAAY,GACZU,IAAgB,IAEhBtuD,mBAA2B,OAAlB+tD,SAAkB,IAAlBA,QAAkB,EAAlBA,GAAoBiB,SAAU,SACvChvD,mBAA2B,OAAlB+tD,SAAkB,IAAlBA,QAAkB,EAAlBA,GAAoBiB,SAAU,SAEvCpB,IAAY,GACZU,IAAgB,KAEhBV,IAAY,GACZF,GAAmB,SACnBY,IAAgB,MAGhB,CAACP,KA0FJ,MAAM/B,GAAkBr8B,sBACvBC,mBAAU9qC,IACT2iE,EAAY3iE,IACV,KACH,IA6UD,OACCyB,IAAAC,cAAAD,IAAAE,SAAA,KACE2jE,IACA7jE,IAAAC,cAAA,OACCwM,MAAO,CACNoc,UAAW,SACXC,UAAW,OACXpc,aAAc,SAGf1M,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,SAGT1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,UAKzCsjE,IAAkBV,IACnBnjE,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,4BACXojE,GAAkB,EAChBhjE,EAAE,eACF,IACAojE,GACA,IAEEpjE,EADa,YAAd8iE,GACG,uBACA,2BACJJ,QAMNY,KAAmBV,IACpBnjE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,qDACdH,IAAAC,cAAA,OAAKE,UAAU,yEACdH,IAAAC,cAAA,QAAME,UAAU,UAAUI,EAAE,YAC5BP,IAAAC,cAAA,QAAME,UAAU,UACdwN,YACArM,EAAesM,qBACf,GACA,KAIH5N,IAAAC,cAAA,OAAKE,UAAU,yEACdH,IAAAC,cAAA,QAAME,UAAU,UAAUI,EAAE,gBAC5BP,IAAAC,cAAA,QAAME,UAAU,UAEdkzB,EAAM1lB,YAAyB0lB,EAAK,GAAG,GAAQ,MAGjDi0C,IACAtnE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,yBACfH,IAAAC,cAAA,OAAKE,UAAU,uBACdH,IAAAC,cAAA,QAAME,UAAU,qBAAqBI,EAAE,SAAS,OAChDP,IAAAC,cAAA,KAAGE,UAAU,eAAeI,EAAE,0BAKjCI,GAAW+c,qBACX1d,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,sCACXI,EAAE,6CAORP,IAAAC,cAAA,QAAME,UAAU,yBACfH,IAAAC,cAAA,OAAKE,UAAU,SACZinE,IACDpnE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,UACCE,UAAU,2BACV5B,MAAO2oE,GACP73B,YAAa9uC,EAAE,yBACfyY,SAAW/B,IACVkwD,GAAmBlwD,EAAEzgB,OAAO+H,OAC5B6lE,IAAa,KAGdpkE,IAAAC,cAAA,UACCE,UAAU,2BACV5B,MAAM,GACN8N,UAAQ,EACR40D,UAAQ,GAEP1gE,EAAE,0BAvnBQ,CACpB,CACChC,MAAO,QACPC,MAAO,SAER,CACCD,MAAO,SACPC,MAAO,UAER,CACCD,MAAO,QACPC,MAAO,UA+mBcya,IAAI,CAACqrC,EAAQtvC,IAEzBhV,IAAAC,cAAA,UACCE,UAAU,0BACV5B,MAAO+lD,EAAO/lD,MACd0W,IAAKD,GAEJsvC,EAAO9lD,SAKX2lE,IACAnkE,IAAAC,cAAA,KAAGE,UAAU,wBACXI,EAAE,4BA0DPunE,IACA9nE,IAAAC,cAAA,OAAKE,UAAU,8BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,UACC+Y,SAAW/B,IACVY,GAAuBZ,EAAEzgB,OAAO+H,QAEjCkO,MAAO,CAAEf,OAAQ,OAAQC,MAAO,SAE/B+L,GAAkBuB,IAAI,CAACC,EAAQlE,IAE9BhV,IAAAC,cAAA,UACCgV,IAAKD,EACL7U,UAAW,iBAAmB6U,EAAQ,GACtCzW,MAAO2a,EAAO3a,OAEb2a,EAAO1a,UAMbwB,IAAAC,cAAA,OAAKE,UAAU,UACdH,IAAAC,cAAA,SACC6I,KAAK,cACL3I,UAAU,uBACVgZ,aAAa,eACbk2B,YAAa9uC,EAAE,8BAEfiZ,UAAYvC,IACX,MAAMhC,EAAMgC,EAAEhC,IAST,QAAQyD,KAAKzD,IARE,CACnB,YACA,YACA,aACA,SACA,OAGsCwE,SAASxE,IAC/CgC,EAAEyC,iBAKuB,IADPzC,EAAEzgB,OAAO+H,MACbgB,QAAwB,MAAR0V,GAC9BgC,EAAEyC,kBAGJV,SAlRa/B,IACrB,IAAI1Y,EAAQ0Y,EAAEzgB,OAAO+H,MAErBA,EAAQA,EAAMiO,QAAQ,MAAO,IAE7ByK,EAAEzgB,OAAO+H,MAAQA,EAEjB,MAAMmqE,EA1BgBnqE,IAClBA,EAAMgB,OAAS,EACXgB,EAAE,iBAAkB,CAAEhB,OAAQ,IAElChB,EAAMgB,OAAS,GACXgB,EAAE,iBAAkB,CAAEhB,OAAQ,KAEjC,WAAWmZ,KAAKna,GASd,GAPLgC,EAAE,iBAAkB,CAAEhB,OAAQ,IAC9B,IACAgB,EAAE,OACF,IACAA,EAAE,gBAaoBooE,CAAcpqE,GACtC4pE,GAAcO,GAETA,GACJT,GAAS1pE,MAyQF2pE,IACAloE,IAAAC,cAAA,QAAME,UAAU,wBAAwB+nE,MAM5CloE,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,SAAOE,UAAU,QAAQI,EAAE,yBAC3BP,IAAAC,cAAA,OAAKE,UAAU,uCACfH,IAAAC,cAAA,OAAKE,UAAU,mCACbqiE,IACAA,GAAcjjE,QACd0Z,cAAIupD,GAAe,CAACnkD,EAAMrJ,KACzB,GAAmB,IAAfqJ,EAAK2iC,OAAc,CACtB,MAAM+kB,EAAoBp4D,YACzB0Q,EAAK2iC,OACL,GACA,GAED,OACChhD,IAAAC,cAAA,OACCgV,IAAKD,EACL7U,UACC,SACCke,EAAK2iC,OAAS1tB,GAAOD,EAAMhV,EAAK2iC,OAC9B,YACA,KACF3iC,EAAK2iC,SAAWigB,EAAW,SAAW,IAExC91D,QAASA,IAzhBAkT,KACpB,IAAI2nD,EAAQp2D,WAAWyO,GACnBgV,EAAM2yC,IACTA,EAAQ3yC,GAELC,EAAM,GACL0yC,EAAQ1yC,GACX4tC,EAAY,GACZ8E,EAAQ1yC,GAER4tC,EAAY7iD,GAEb8iD,EAAU6E,IACNA,IAAUjoD,MAAMioD,IAAU96B,OAAO86B,IAAU3yC,IAC9CixC,IAAe,IAGhBzlE,EAAUiL,cAAoB,EAAO,wBAwgBZy/B,CAAYlrB,EAAK2iC,SAGhChhD,IAAAC,cAAA,OAAKE,UAAU,OAOfH,IAAAC,cAAA,OAAKE,UAAU,SACbi2D,YAAiB2P,SAQzB/lE,IAAAC,cAAA,OAAKE,UAAU,kCACdH,IAAAC,cAAA,OAAKE,UAAU,8BACdH,IAAAC,cAAA,OAAKE,UAAU,SAASgkB,IACxBnkB,IAAAC,cAAA,OAAKE,UAAU,UACdH,IAAAC,cAAA,SACC8M,KAAK,OACLsiC,YACC9uC,EAAE,oBACF,KACA4jB,GACA,IACAkP,EACA,MACAlP,GACA,IACAmP,EACA,IAED/0B,MACqB,QAApB4lB,GACG+mB,OAAO8V,GAAU,EAChBxxB,SAASwxB,GACT,EACD9V,OAAO8V,GAAU,EACjB9V,OAAO8V,GAAQ93C,QAAQ,GACvB,GAEJ8P,SA3oBVxZ,eAA2ByX,GAC1B,IAAI+pC,EAAS/pC,EAAEzgB,OAAO+H,MACpBiO,QAAQ,mEAA4D,IACpEigC,OAEY,IAAVuU,IACHA,EAAS,GAGV,IAAIziD,EAAQ,EAEXA,EADuB,QAApB4lB,GACK+mB,OAAOt7B,WAAWoxC,IAAS93C,QAAQ,GAEnCgiC,OAAOt7B,WAAWoxC,GAAU,KAAK93C,QAAQ,GAK9C0G,WAAWrR,GAAS+0B,IACvB/0B,EAAQ+0B,GAETrc,EAAEzgB,OAAOi4C,kBAAkBlwC,EAAMgB,OAAQhB,EAAMgB,QAC/C4hE,EAAU5iE,IACNA,IAAUwf,MAAMxf,IAAU2sC,OAAO3sC,IAAU80B,IAC9CixC,IAAe,GAEhBmB,GAAgBpQ,mBAAS7lC,SAASjxB,UAqnB3B8lE,IACArkE,IAAAC,cAAA,KAAGE,UAAU,mCAETI,EADFygD,GAAU,EACN,qBACA,4BAGPhhD,IAAAC,cAAA,OAAKE,UAAU,wBACbkzB,EAAM,GAAKC,EAAM,EACjBnP,GACA,IACAkP,EACA,MACAlP,GACA,IACAmP,EAEAtzB,IAAAC,cAAAD,IAAAE,SAAA,KAAE,YAMJyJ,YAAoB+3D,IAAkBA,EAAgB,GACvD1hE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OACCE,UAAU,kCACVsM,MAAO,CAAEw5D,YAAa,EAAGC,aAAc,IAuBvClmE,IAAAC,cAAA,OAAKE,UAAU,2BACdH,IAAAC,cAAA,OAAKE,UAAU,uBACdH,IAAAC,cAAA,QAAME,UAAU,sBACdI,EAAE,cAEJP,IAAAC,cAAA,KAAGE,UAAU,eAAeq+C,OAiLjCx+C,IAAAC,cAAA,OACCE,UAAU,gCAGRwJ,YAAoB+3D,IAAkBA,EAAgB,GACvD1hE,IAAAC,cAAA,OAAKE,UAAU,eACdH,IAAAC,cAAA,UACC8M,KAAK,SACL5M,UAAU,qBACVgL,QAASA,KACRtM,EAAUiiB,cAAgB,KAE3BrU,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE,aAIJwD,GACD/D,IAAAC,cAAA,KACCE,UAAS,qDAAAnM,SACN8zE,KAAiBV,KAAaF,KAC9BY,IAAgB9mB,GAAUpxC,WAAWyjB,GAAO,KAC7Cy0C,IAA0Bl4D,WAAWyjB,GACnC,KAGJloB,QAASA,MAzzBjB3L,iBACC,GAAImK,YAAoBu9D,MAAqBY,GAE5C,YADA1D,IAAa,GAId,GAAI0D,IACCn+D,YAAoBq+D,IAEvB,YADAG,GAAc5nE,EAAE,uBAKlB,IACEygD,GACDjjC,MAAMijC,IACN9V,OAAO8V,IAAW,GAClB9V,OAAO8V,GAAU3tB,EAGjB,YADAixC,IAAe,GAgBhB,IAAIhvD,EAAS,CACZwrC,kBAAmBroD,IAAgBC,SACnCgmD,OAAQ8oB,GAAmB9oB,OAC3BsC,OAAQpxC,WAAWoxC,GACnBynB,SAAUvB,GACV19B,QAASk+B,GACTX,MAAOzqE,IAAUC,YACjBqsE,wBAAyBpB,GAAmB99D,GAC5CsY,SAAUwlD,GAAmBxlD,SAC7B6mD,YAAY,EAEZnH,cAAeA,GAGZoG,KACEn+D,YAAoBq+D,MACxB1yD,EAAoB,aACK,IAAvBsC,GACEF,GAAkB,GAAGnZ,MACrBqZ,IAAuBowD,KAIxBr+D,YAAoBy4D,IAAiC,MAAhBA,EAEd,OAAjBA,IACV9sD,EAAuB,eAAI,IAF3BA,EAAuB,eAAI8sD,EAK5BvjE,EAAUulB,cAAe,IACzB,IAAIpc,QAAqBC,IAAUiM,KAClCrwB,IAAO+D,wBACPusB,YAAwBmB,IAGrBtN,EAAa/kB,IAAOC,mBACvBwtE,EAAcp7C,EAAO0rC,QACrBqgB,GAAmB,GACnBE,EAAcp6C,MAASO,OAAO,yBAE1Bjd,OAAOsF,mBACVtF,OAAOsF,mBAAmBC,YACzBC,KAAKC,UAAU,CACdC,OAAQ,UACRpc,IAAKiU,EAAa/kB,IAAOG,eAA4B,eAIvDqnB,OAAOL,SAAS6b,KACfje,EAAa/kB,IAAOG,eAA4B,YAsBlDyzE,YAAe,KACdpsD,OAAOysD,IAAI,QAAS,WAAY,CAC/B34D,MAAO+W,EAAO0rC,OACdh/B,SAAUmC,SAIZ09C,GAAc,GACdV,EAAU,GACVD,EAAY,GACZJ,IACAE,EAAoB,IAEpBniE,EACCiL,aACC9B,EAAa/kB,IAAOC,kBACpBqd,EAAEyH,EAAa/kB,IAAOE,sBAIzB0b,EAAUulB,cAAe,IA4rBjB4iD,IAGDv6D,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE,WAIJwD,GACA/D,IAAAC,cAAA,KAAGE,UAAU,8DACXI,EAAE,gBCppBGuoE,MAlfElqE,IAChB,MAAM,EAAE2B,EAAC,KAAE+f,GAAS9f,cAEd3B,GADW6B,cACC5B,gBACZ,aAAEoZ,EAAY,QAAEmnB,EAAO,SAAEd,GAAa/lB,eAIrCuwD,EAAkBC,GAAuB3pE,mBAAS,KAClD4pE,EAAmBC,GAAwB7pE,mBACjDL,YAAaC,GAAUA,EAAMC,SAASsgB,YAEhC2pD,EAAeC,GAAoB/pE,oBANlB,IAOjBgqE,EAAWC,GAAgBjqE,mBANT,IAOlBkqE,EAAmBC,GAAwBnqE,oBAAS,IACpDoqE,EAAUC,GAAerqE,mBAAS,KAClCsqE,EAAqBC,GAA0BvqE,mBAAS,KAExD4jE,EAAWC,GAAgB7jE,mBAAS,KACpCkT,EAAiBC,GAAsBnT,mBAAS,IAChD8jE,EAAeC,GAAoB/jE,oBAAS,IAC5CskE,EAAcC,GAAmBvkE,mBAAS,KAC1CkkE,EAAiBC,GAAsBnkE,mBAAS,IAChDgkE,EAAWC,GAAgBjkE,mBAAS,KACpCokE,EAAeC,GAAoBrkE,sBAEnCwqE,EAAkBC,GAAuBzqE,oBAAS,IAClDwkE,GAAgBC,IAAqBzkE,oBAAS,IAC9C4hE,GAAUC,IAAe7hE,mBAAS,KAClC0qE,GAAiBC,IAAsB3qE,oBAAS,IAChD4qE,GAAcC,IAAmB7qE,oBAAS,IAC1C4jB,GAAuBknD,IAA4B9qE,mBACzDL,YAAaC,GAAUA,EAAMC,SAAS+jB,yBAEhCmnD,GAAaC,IAAkBhrE,mBAAS,IACxCuiE,GAAc0I,IAAmBjrE,mBAAS,KAC1CkrE,GAAmBC,IAAwBnrE,mBAAS,IAoI3DG,eAAeirE,GAAYC,GAC1B1B,EAAoB0B,GACpB,IAAIC,EAAc,GAEdC,QAAyB3iE,IAAU1R,IACtC1S,IAAO8E,wBAA0B,aAAc,GAEhD,GAAIiiF,EAAiB3nF,IAAOC,kBAAmB,CAC9C,IAAIo7D,EAAkBssB,EAAiB3nF,IAAOG,eAE9C,MAAMynF,EAAavsB,EAAgBwsB,KAAKjF,GAAQA,EAAKkF,WAC/BzsB,EAAgBwsB,KAAKjF,IAASA,EAAKkF,YAIxDJ,EAAYngE,KAAK,CAChByK,KAlLoB,EAmLpB1W,OAnLoB,EAoLpBC,MAAO,SACP6uC,MAAO,KACP29B,YAAazqE,EAAE,kBACf0qE,IAAK,EACLC,OAAQ3qE,EAAE,wBACV0kE,YAAY3mB,EAAgBzrB,OAAOs4C,IAAiC,IAAtBA,EAAQJ,aAKrDF,GACFF,EAAYngE,KAAK,CAChByK,KAhMoB,EAiMpB1W,OAjMoB,EAkMpBC,MAAO,WACP6uC,MAAO,KACP29B,YAAazqE,EAAE,WACf0qE,IAAK,EACLC,OAAQ3qE,EAAE,kBACV0kE,YAAY3mB,EAAgBzrB,OAAOs4C,IAAiC,IAAtBA,EAAQJ,aAOzD,IAAI5uB,EAAOuuB,EAAiBp4C,UAC1B3pB,GAAMA,EAAEyiE,0BAA4BzB,GAGtCP,EAAiBjtB,GACjBuuB,EAAiBzxD,IAAI,CAACqrC,EAAQtvC,MACR,IAArBsvC,EAAe,QACdqmB,EAAYngE,KAAK,CAChByK,IAAKD,EACLzW,MAAO+lD,EAAO56C,GACdlL,MAAO8lD,EAAO8mB,wBACd/9B,MAAOiX,EAAOjX,MACd49B,IAAK3mB,EAAO+mB,cACZL,YACC1mB,EAAO8mB,wBAAwB3/C,SAAS,QACN,WAAlC64B,EAAO8mB,wBACJ7qE,EAAE,YACFA,EAAE,mBACN2qE,OAAQ5mB,EAAOgnB,QACfC,MAAMjnB,EAAOinB,UAKfZ,EAAY93C,OAAQlqB,GAAMA,EAAEqiE,cAAgBzqE,EAAE,oBAC5ChB,QAAU,GAEZ+pE,GAzOsB,GA2OvB/qC,EAAS,gBAAiBosC,EAAY,GAAGpsE,OACzC2qE,EAAqByB,GAQtB,OApNArrE,oBAAU,MAuDVE,iBAECskE,IAAkB,GAClBjlE,EAAUsH,eACV,iBAaC,GAAI8iE,EAAkB1pE,OAAS,EAC9BkrE,GAAYxB,OACN,CAEN,IAAIjhE,QAAqBC,IAAU1R,IAClC1S,IAAOI,oCAEJ+jB,EAAa/kB,IAAOC,oBAEvB2b,EAAU0gB,aAAevX,EAAa/kB,IAAOG,iBAE7CqnF,GAAYziE,EAAa/kB,IAAOG,uBA4HpCoc,uBAC0ByI,IAAU1R,IAAI1S,IAAOuL,yBAxFtCqa,GAMPq6D,IAAkB,GAnEnB,GA1DAx4C,IACE,IA2BHhsB,oBAAU,KAET,GAAG2pE,EAAkB1pE,OAAS,EAAE,CAC/B,MAAMisE,EAAgBvC,EAAkBp2C,OAAOxU,GAAuB,WAAfA,EAAK9f,OACb,IAA7B0qE,EAAkB1pE,OAGP,IAAzBisE,EAAcjsE,QAChB2hE,GAAqC,IAAzBsK,EAAcjsE,OAAe,SAAW0pE,EAAkB,GAAGzqE,OACzE0rE,IAAgB,IACRjB,EAAkB,GAAGzqE,OAC7B0iE,GAAY+H,EAAkB,GAAGzqE,OACjC0rE,IAAgB,KAEhBhJ,GAAY,IACZgJ,IAAgB,KAGjBhJ,GAAY,IACZgJ,IAAgB,MAKjB,CAACjB,IAgKFjpE,IAAAC,cAAA,WACE8pE,IAAgC,KAAb9I,IACnBjhE,IAAAC,cAAAD,IAAAE,SAAA,KACE2pE,GACA7pE,IAAAC,cAACuL,IAAU,CACVigE,SAAO,EACP3/D,eAAgBvL,EAAE,WAClBmrE,kBAAkB,SAClBz+D,UAAWA,KACV68D,GAAoB,IAErBr9D,MAAO,CACNoiB,gBAAiB,UACjB88C,YAAa,mBACbr+C,QAAS,GACTzd,MAAO,QACPiZ,UAAW,OAEZ3c,iBAAiB,WAEhB5L,EACA,+EAKDsjE,IAAkBoF,EAAkB1pE,OAAS,GAAKS,IAAAC,cAAA,OAAKE,UAAU,IAClEH,IAAAC,cAAA,OAAKE,UAAU,SAASI,EAAE,2BAC1BP,IAAAC,cAAA,OAAKE,UAAU,YAIfH,IAAAC,cAAA,OAAKE,UAAU,8BACb0jE,GACA7jE,IAAAC,cAAA,OACCwM,MAAO,CACNoc,UAAW,SACXC,UAAW,OACXpc,aAAc,SAGf1M,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,SAGT1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,SAI1C0oE,EAAkBhwD,IAAI,CAACqrC,EAAQtvC,IAE7BhV,IAAAC,cAAA,OACCE,UAAU,kCACV8U,IAAKD,EACL7J,QAASA,KAELm5C,EAAO2gB,YACPoF,GAAeD,KAAgBp1D,EAAQ,KAAOA,IAShDksD,GAAY5c,EAAc,OAC1B0lB,IAAmB,KAGrBv9D,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAA,OAAKE,UAAU,sBACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,WACCD,IAAAC,cAACmL,IAAK,CACLC,KAA0B,WAApBi5C,EAAc,MAAiBh5C,IAAW00C,OAAS10C,IAAWy0C,aACpE5/C,UAAU,8BAGZH,IAAAC,cAAA,WACCD,IAAAC,cAAA,WACCD,IAAAC,cAAA,OAAKE,UAAU,SACM,UAAnBmkD,EAAc,MACZ/jD,EAAE,QACF+jD,EAAc,OAElBtkD,IAAAC,cAAA,QAAME,UAAU,UAAUmkD,EAAe,WAM5CtkD,IAAAC,cAAA,OAAKE,UAAU,UACdH,IAAAC,cAACmL,IAAK,CAACC,KAAM++D,KAAgBp1D,EAAQ1J,IAAWsgE,UAAYtgE,IAAWggD,WAAYnrD,UAAU,YAG/FH,IAAAC,cAAA,OAAKE,UAAU,wBAAwBsM,MAAO,CAAEmgB,QAASw9C,KAAgBp1D,EAAQ,OAAS,SAExFsvC,EAAO2gB,YACL3gB,EAAO2gB,YAAYhsD,IAAI,CAAC4sD,EAAMC,IAE7B9lE,IAAAC,cAAA,OAAKE,UAAU,kBAAkBgL,QAASA,KACzCm/D,GAAgBzE,EAAKn8D,IACrBw3D,GAAY5c,EAAc,OAC1B0lB,IAAmB,GACnBQ,GAAqBlmB,EAAO2gB,eAG5BjlE,IAAAC,cAAA,OAAKE,UAAU,mBAEb0lE,EAAK9B,SACJ/jE,IAAAC,cAAA,OACCG,IAAKylE,EAAK9B,SACV5jE,UAAU,iBACVyL,IAAI,SAEF,IAGN5L,IAAAC,cAAA,OAAKE,UAAU,oBACdH,IAAAC,cAAA,OAAKE,UAAU,oBAAoB0lE,EAAKrnB,UACxCx+C,IAAAC,cAAA,OAAKE,UAAU,sBAAsB0lE,EAAKlX,eAAe,MAAIkX,EAAKX,mBAMrE,SA2CV6E,IAAmBE,IACpBjqE,IAAAC,cAAA,OAAKE,UAAU,kCACdH,IAAAC,cAAA,UAAQ8M,KAAK,SAAS8+D,MAAM,qBAAqBp/D,MAAO,CAACsgB,QAAQ,gBAAgBhc,OAAQ,WACxF5F,QAASA,KACR+1D,GAAY,IACZ8I,IAAmB,KAGpBhqE,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAWqe,UACjBxpB,UAAU,6BACT,IAAEI,EAAE,SAEPP,IAAAC,cAAA,MAAIE,UAAU,aAAqCI,EAAX,WAAb0gE,GAA0B,uBAA4B,GAADjtE,OAAIitE,OAKvE,WAAbA,IAAsC,aAAbA,GAC1BjhE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAC2gE,EAAmB,CAACgB,aAAcA,GAAcqD,YAAasF,MAE/C,KAAbtJ,GACH,GAEAjhE,IAAAC,cAAAD,IAAAE,SAAA,KAWCF,IAAAC,cAACgnE,EAAiB,CACjB6E,qBACC/C,EAAiBl2C,OACflqB,GAAMA,EAAEyiE,0BAA4BnK,IACpC,GAAGv3D,GAENg1C,OACCqqB,EAAiBl2C,OACflqB,GAAMA,EAAEyiE,0BAA4BnK,IACpC,GAAGsH,wBAAwB,GAAG7pB,OAEjC8oB,mBAAoB9nE,eAAKqpE,EAAkB,CAACqC,wBAA0BnK,KACtEyG,oBACCqB,EAAiBl2C,OACflqB,GAAMA,EAAEyiE,0BAA4BnK,IACpC,GAAGyG,oBAELc,uBACAO,EAAiBl2C,OACflqB,GAAMA,EAAEyiE,0BAA4BnK,IACpC,GAAGsK,W,6FCrMGQ,MAlTWx6D,IAAe,IAAd,OAAC3Q,GAAO2Q,EAC/B,IAAI1S,EAAYC,eACZ,EAAEyB,GAAMC,cACZ,MAAM6kB,EAAoBrmB,YAAaC,GAAUA,EAAMC,SAASmmB,mBAC1DtmB,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDqH,EAAWC,GAAgBhH,mBAAS,IACrCsB,EAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,SAClDo7C,EAAiBC,GAAsB58C,oBAAS,GACjD2sE,EAAoBhtE,YAAaC,GAAUA,EAAMC,SAAS6jB,sBAG1D,aACR7K,EAAY,SACZF,EAAQ,QACRqnB,EAAO,MACPhB,EAAK,UACLe,EAAS,OACThnB,EAAM,YACN+mB,EAAW,MACX+yB,EAAK,QACL5yB,GACG9mB,cAGDlZ,oBAAU,MAKVE,iBACI,MAAMmI,EAAQjI,eAAKX,EAAc,CAAEY,aAAc,UAC7CgI,GACFtB,EAAasB,EAAM/H,WAAW+H,EAAM9H,cAPtCE,IACF,IAsDF,MAAMmL,EACRlL,IAAAC,cAAA,OACCE,UAAU,QACVgL,QAASA,IAAMtM,EAAUumB,cAAqB,KAE9CplB,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,WAGxC,OACIH,IAAAC,cAACiN,IAAK,CACFC,MAAM,EACNzD,GAAG,kBACH0D,OAAQiY,EACRhY,iBAAkB,kBAC3BC,SAAU,SACDC,OAAQA,KACJ1O,EAAUumB,cAAsBC,KAEpCkoB,UAAQ,GAERvtC,IAAAC,cAACwN,IAAW,CAAClC,MAA0B,GAAnBygE,GAAwBltB,kBAAkB,OAAVn+C,QAAU,IAAVA,OAAU,EAAVA,EAAYo+C,cAAgB,GAAM7zC,GAAU,UAGhGlL,IAAAC,cAACyN,IAAS,KACN1N,IAAAC,cAAA,OAAKE,UAAU,6BACXH,IAAAC,cAAA,OAAKE,UAAU,eACXH,IAAAC,cAAA,OAAKE,UAAU,eACXH,IAAAC,cAAA,OACIE,UAAU,2BACVC,IAAKgG,EACLwF,IAAI,gBAER5L,IAAAC,cAAA,WAAMM,EAAE,SACRP,IAAAC,cAAA,WAAMM,EAAE,uBAEZP,IAAAC,cAAA,QAAM2Y,SAAUV,GA7EpC1Y,eAAwBgJ,GACpByzC,GAAmB,GACnB,IAAI3mC,EAAS,GAEV9M,EAAKw/D,QACJ1yD,EAAoB,YAAI9M,EAAKw/D,OAO9Bx/D,EAAKyjE,WACJ32D,EAAqB,aAAI9M,EAAKyjE,UAIlC,IAAIjkE,QAAqBC,IAAUiM,KAC/BrwB,IAAO2M,2BACPklB,YAAeJ,IAGbtN,EAAa/kB,IAAOC,yBACjB41B,aAAWja,GAChBA,EACEiL,aACE9B,EAAa/kB,IAAOC,kBACpB8kB,EAAa/kB,IAAOE,oBAGxB84D,GAAmB,GAEnBp9C,EAAUumB,cAAqB,KAG/B62B,GAAmB,OA2CHj8C,IAAAC,cAAA,OAAKE,UAAU,gBAEI,OAAVQ,QAAU,IAAVA,OAAU,EAAVA,EAAYo+C,eAAgBD,kBAAkB,OAAVn+C,QAAU,IAAVA,OAAU,EAAVA,EAAYo+C,eAC7C/+C,IAAAC,cAAA,OAAKE,UAAU,2BACfH,IAAAC,cAAA,aAAQM,EAAE,cACVP,IAAAC,cAAA,WAEID,IAAAC,cAAA,SACIE,UAAU,uBACV4M,KAAK,OACLjE,KAAK,WACLY,GAAG,WACHmH,IAAKmH,EAAS,CACVe,SAAUxY,EAAE,wBAEZgZ,QAAS,CAAEhb,MAAO,eAAgB8a,QAAS,kBAE/CF,aAAa,MACbf,OAAQA,IAGXA,EAAO6zD,UACJjsE,IAAAC,cAAA,OAAKE,UAAU,oBACVI,EAAE6X,EAAO6zD,SAAS5yD,WAI/BrZ,IAAAC,cAAA,OAAKE,UAAU,+BACXH,IAAAC,cAAA,OAAKE,UAAU,SACXH,IAAAC,cAAA,OAAKE,UAAU,SACfH,IAAAC,cAAA,OACIG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGR5L,IAAAC,cAAA,WACAD,IAAAC,cAAA,KAAGE,UAAU,sCAETH,IAAAC,cAAA,YAAOM,EAAE,2BASxBu+C,kBAAQn+C,MAA0B,OAAVA,QAAU,IAAVA,OAAU,EAAVA,EAAY8Q,cAAeqtC,kBAAkB,OAAVn+C,QAAU,IAAVA,OAAU,EAAVA,EAAY8Q,cAEpEzR,IAAAC,cAAA,OAAKE,UAAU,2BACXH,IAAAC,cAAA,aAAQM,EAAE,kBACVP,IAAAC,cAAA,WACAD,IAAAC,cAAA,SACQ6I,KAAK,QACL3I,UAAU,uBACV0Q,IAAKmH,EAAS,CACVe,SAAUxY,EAAE,sBACZ6Y,UAAW,CACX7a,MAAO,EACP8a,QAAS9Y,EAAE,iBAAkB,CAAEhB,OAAQ,KAEvC+Z,UAAW,CACX/a,MAAO,GACP8a,QAAS9Y,EAAE,iBAAkB,CAAEhB,OAAQ,MAEvCga,QAAS,CACThb,MAAO,YACP8a,QACI9Y,EAAE,iBAAkB,CAAEhB,OAAQ,IAC9B,IACAgB,EAAE,OACF,IACAA,EAAE,mBAGV6X,OAAQA,EACRoB,UAAYvC,IACR,MAAMhC,EAAMgC,EAAEhC,IAUb,QAAQyD,KAAKzD,IATM,CACpB,YACA,YACA,aACA,SACA,OAKawE,SAASxE,IAEtBgC,EAAEyC,iBAKsB,IADPzC,EAAEzgB,OAAO+H,MACbgB,QAAwB,MAAR0V,GAC7BgC,EAAEyC,kBAGNV,SAAW/B,IACP,IAAI0C,EAAW1C,EAAEzgB,OAAO+H,MAGxBob,EAAWA,EAASnN,QAAQ,MAAO,IAGnCyK,EAAEzgB,OAAO+H,MAAQob,KAIxBvB,EAAO4vD,OACJhoE,IAAAC,cAAA,OAAKE,UAAU,oBACVI,EAAE6X,EAAO4vD,MAAM3uD,YAyCxCrZ,IAAAC,cAAA,OAAKE,UAAU,oBACXH,IAAAC,cAAA,UAAQE,UAAU,sBAAsBkM,SAAU2vC,GACjDA,EACGh8C,IAAAC,cAAC4N,IAAO,CACJ1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACPwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAIhB3N,EAAE,mBC29B3B2rE,MAztCgB36D,IAA4C,IAA3C,iBAAC46D,EAAgB,mBAACC,GAAmB76D,EACpE,IAAI,EAAEhR,EAAC,KAAE+f,GAAS9f,cACHE,cACC6lB,cAChB,IAAI2Z,EAAYlhC,YAAaC,GAAUA,EAAM8B,UAAUC,WAClDmP,EAAQk8D,GAAahtE,mBAAS,IACnC,IAAIR,EAAYC,cAChB,MAAOwtE,EAAqBC,GAA0BltE,oBAAS,GACzD0/C,EAAe//C,YACnBC,GAAUA,EAAM8B,UAAUC,SAAS+9C,eAE9BkiB,EAAUC,GAAe7hE,oBAAS,IAClCuiE,EAAc0I,GAAmBjrE,mBAAS,KAC1C2hD,EAAQmgB,GAAa9hE,mBAAS,IAC9Bd,EAAOggC,GAAYl/B,mBAAS,KAC5Bo/C,EAAe+tB,GAAoBntE,mBAAS,KAC5CwZ,EAAmB4zD,GAAwBptE,mBAAS,KACpD4jE,EAAWC,GAAgB7jE,mBAAS,KACpC8jE,EAAeC,GAAoB/jE,oBAAS,IAC5CskE,EAAcC,GAAmBvkE,mBAAS,KAC1CkkE,EAAiBC,GAAsBnkE,mBAAS,IAChDgkE,EAAWC,GAAgBjkE,mBAAS,KACpCokE,EAAeC,GAAoBrkE,sBACnCqtE,GAAsBC,IAA2BttE,oBAAS,GAC3D8kB,GAAkBnlB,YAAaC,GAAUA,EAAMC,SAASilB,kBAGxD,aACLjM,GAAY,SACZF,GAAQ,QACRqnB,GAAO,MACPhB,GAAK,UACLe,GAAS,OACThnB,GAAM,YACN+mB,GAAW,MACX+yB,GAAK,QACL5yB,IACG9mB,eAEGo0D,GAAYC,IAAiBxtE,mBAAS,KACtC89C,GAAoBC,IAAyB/9C,mBAAS,KACtDkyD,GAAoBC,IAAyBnyD,sBAC7CytE,GAAqBC,IAA0B1tE,oBAAS,IACxD2tE,GAAkBC,IAAuB5tE,mBAAS,IAClD6tE,GAAgBC,IAAqB9tE,qBAEtCuB,GAAS5B,YAAaC,GAAUA,EAAMC,SAAS0B,SAE9CwsE,GAAcC,IAAmBhuE,oBAAS,IAC1CiuE,GAAiBC,IAAsBluE,oBAAS,IAChDmuE,GAAeC,IAAoBpuE,oBAAS,IAI5CkT,GAAiBC,IAAsBnT,mBAAS,GACjDquE,GAAWxsE,iBAAO,OAEjBgf,GAASytD,IAActuE,oBAAS,IAChCuuE,GAAYC,IAAiBxuE,mBAAS,KAEtCyuE,GAAYC,IAAiB1uE,oBAAS,IAEtC2uE,GAAgBC,IAAqB5uE,mBAAS,KAC9C6uE,GAAuBC,IAA4B9uE,mBAAS,KAC5D+uE,GAAuBC,IAA4BhvE,mBAAS,IAE5DivE,GAAUC,IAAelvE,oBAAS,IAClCmvE,GAAgBC,IAAqBpvE,oBAAS,IAC9CqvE,GAAYC,IAAkBtvE,sBAE9BuvE,GAAYC,IAAkBxvE,sBAG9B0kC,GAAcC,IAAmB3kC,mBAAS,KAO1CyvE,GAAiBC,IAAsB1vE,mBAAS,KAChDkqE,GAAmBC,IAAwBnqE,oBAAS,IAKpD2vE,GAAWC,IAAgB5vE,oBAAS,IACpC6vE,GAAkBC,IAAuB9vE,oBAAU,IACnDg0B,GAAKmuC,IAAUniE,mBAAS,IAExB+vE,GAA0BC,IAA+BhwE,mBAAS,IAClEiwE,GAAyBC,IAA8BlwE,mBAAS,IAChEmwE,GAAwBC,IAA6BpwE,mBAAS,IAC9DqwE,GAA0BC,IAA+BtwE,mBAAS,IAClEuwE,GAA6BC,IAAkCxwE,mBAAS,GACzEywE,GAAqB5uE,iBAAO,OAExB6uE,GAAmBC,IAAwB3wE,oBAAS,GA2G9DG,eAAe8rB,KACd,IACmC,GAA9B4U,EAAyB,eAC5BysC,IAAwB,GA0J3BntE,iBACC,IAAIwI,QAAqBC,IAAU1R,IAClC1S,IAAOoJ,iCAGJ+a,EAAa/kB,IAAOC,mBACvB6rF,GAAmB/mE,EAAa/kB,IAAOG,gBAzHvC0lD,GAEAmnC,KA2BC,IAAIC,QAA6BjoE,IAAU1R,IAC1C1S,IAAOyN,oCAGR,IAAI4+E,EAAqBjtF,IAAOC,kBAY/B,MAAMgtF,EAAqBjtF,IAAOE,kBAZgB,CAElD,IAAIgtF,EAAoBD,EAAqBjtF,IAAOG,eACpD,GAAG+sF,EAAkB,CACpB,MAAMC,EAAcD,EAAkBj9B,OAAO,CAACm9B,EAAaF,IACnDE,EAAcF,EAAkBnvB,OACrC,GACHquB,GAA4Be,GAC5Bb,GAA2BY,EAAkB5wE,SAY/C,IAAIyI,QAAqBC,IAAU1R,IAClC1S,IAAO2E,mBAAqB,oBAE7B,IAAIwf,EAAa/kB,IAAOC,kBAcvB,MAAM8kB,EAAa/kB,IAAOE,kBAdgB,CAC1C,IAAImtF,EAAW,GACftoE,EAAa/kB,IAAOG,eAAe61B,IAAKslC,IACvC+xB,EAAS9lE,KAAK,CACbhM,MAAO+/C,EAAYC,SACnBjgD,MAAOggD,EAAY70C,GACnB80C,SAAUD,EAAYC,SACtBiqB,SAAUlqB,EAAYkqB,SACtBp1C,IAAKkrB,EAAYsQ,kBACjBv7B,IAAKirB,EAAYgyB,sBAGnB1D,GAAcyD,GAKflyB,KACAv/C,EAAUsH,eAKV,MAAOkiB,GACRxpB,EAAUiL,cAAoB,EAAOue,IAEtCkmD,IAAY,GAGb/uE,eAAeywE,WACRpxE,EAAUia,MAuCjBtZ,eAAe4+C,KACd,IACC,IAAIp2C,QAAqBC,IAAU1R,IAClC1S,IAAOwE,wCAGR,IAAI2f,EAAa/kB,IAAOC,kBA0BvB,MAAM8kB,EAAa/kB,IAAOE,kBA1BgB,CAAC,IAAD+rE,EAC1C,MAAM1mD,EAAyC,QAArC0mD,EAAGlnD,EAAa/kB,IAAOG,sBAAc,IAAA8rE,OAAA,EAAlCA,EAAqC,GAElD,IAAKvlD,YAAoBnB,GAAO,CAC/BgkE,EAAiBhkE,EAAoB,eAErC+1B,EAAS/1B,EAAa,QAEtB,IAAI81C,EAAkB,GACtBt2C,EAAa/kB,IAAOG,eAAe61B,IAAKslC,IACvCD,EAAgB9zC,KAAK,CACpBhM,MAAO+/C,EAAYC,SAAW,MAAQD,EAAYE,cAClDlgD,MAAOggD,EAAY70C,GACnBg1C,OAAQH,EAAYG,OACpB7lC,kBAAmB0lC,EAAY1lC,kBAC/B8lC,OAAQJ,EAAYE,cACpBD,SAAUD,EAAYC,SACtBiqB,SAAUlqB,EAAYkqB,SACtBlgC,UAAWgW,EAAYhW,cAIzB+hC,EAA+B,OAAfhsB,QAAe,IAAfA,OAAe,EAAfA,EAAkB,IAClClB,GAAsBkB,KAKvB,MAAOj2B,GACRxpB,EAAUiL,cAAoB,EAAOue,KAnTvC/oB,oBAAU,KACTgsB,MAEE,IAEHhsB,oBAAU,KACLsB,GACE+I,YAAoB/I,GAAOm+C,eAC/B0tB,EAAqB7rE,GAAOm+C,cAGxBp1C,YAAoBo1C,IACxB0tB,EAAqB1tB,IAGrB,CAACn+C,GAAQm+C,IAEZz/C,oBAAU,KAEHwwE,GAAmBzmE,SACxB8iE,KAKG,CAACA,IAEN7sE,oBAAU,KACLiT,GAAkB,IACrByB,aAAayvD,GACbC,EACC7wD,WAAW,KACV,IAAIsyD,EAAa5yD,GAAkB,EACnCC,GAAmB2yD,GACnB,IAAIC,EAAQj+C,IAAO8L,SAASkyC,GACxBE,EAASn9C,KAAK+D,MAAMm5C,EAAqB,cAAI,IAC7CE,EAASF,EAAqB,cAAa,GAATC,EACtC7B,EAAmB4B,EAAqB,eACxC,IAAIG,GACFF,EAAOhQ,WAAW91D,OAAS,EAAI8lE,EAAS,IAAMA,GAC/C,IACA9kE,EAAE,WACF,KACC+kE,EAAOjQ,WAAW91D,OAAS,EAAI+lE,EAAS,IAAMA,GAC/C,IACA/kE,EAAE,UACHqjE,EAAgB2B,IA7FG,QAiGpB,CAAChzD,KAEJjT,oBAAU,KACT8+C,KACAoyB,MACE,IAEHlxE,oBAAU,KACT,GAAIstE,KAAejjE,YAAoBijE,MACjCjjE,YAAoBi4D,GAAe,CACvC,MAAM6O,EAAW7D,GAAW/5C,OAC1BlqB,GAAMA,EAAEpK,OAASA,GACjB,GAECkyE,GACFjP,GAAOiP,EAAc,OAMtB,CAAC7D,GAAYruE,IAEhBe,oBAAU,KACT,IAAIw/C,kBAAQl+C,IASX,GAJAivE,GAA+BjvE,GAAOmO,WAAW2hE,qBAI7CtB,IAA4BxuE,GAAOmO,WAAW2hE,qBAAuB9vE,GAAOmO,WAAW2hE,oBAAsB,EAChHjB,GAA0B,QACpB,GAAI7uE,GAAOmO,WAAW4hE,mBAAoB,GAAKrB,IAA2B1uE,GAAOmO,WAAW4hE,qBAA+D,GAAzC/vE,GAAOmO,WAAW4hE,mBAC1IlB,GAA0B,OACpB,CACN,MAAMmB,EAAoChwE,GAAOmO,WAAW2hE,oBAAsBtB,GAG9EwB,EAAoC5vB,GAAUpgD,GAAOmO,WAAW2hE,oBAAsB,GACzFf,GAA4BiB,GAC5BnB,GAA0B,GAC1B71C,QAAQC,IAAI,uHAAyH+2C,IAErInB,GAA0B,KAO3B,CAACH,GAAwBF,GAAyBxuE,GAAQogD,IAwW7D,MAAM6vB,GAAwBA,KACnBzE,GACAA,KASX,MAAMoE,GAAchxE,UACnB,IAAIwI,QAAqBC,IAAU1R,IAClC1S,IAAO2E,mBAAqB,oBAE7B,IAAIwf,EAAa/kB,IAAOC,kBAcvB,MAAM8kB,EAAa/kB,IAAOE,kBAdgB,CAC1C,IAAImtF,EAAW,GACftoE,EAAa/kB,IAAOG,eAAe61B,IAAKslC,IACvC+xB,EAAS9lE,KAAK,CACbhM,MAAO+/C,EAAYC,SACnBjgD,MAAOggD,EAAY70C,GACnB80C,SAAUD,EAAYC,SACtBiqB,SAAUlqB,EAAYkqB,SACtBp1C,IAAKkrB,EAAYsQ,kBACjBv7B,IAAKirB,EAAYgyB,sBAGnB1D,GAAcyD,KAuDhB,OACCtwE,IAAAC,cAAAD,IAAAE,SAAA,KA2BEggB,IACAlgB,IAAAC,cAAA,OAAKE,UAAU,4BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,4BAA4BI,EAAEqtE,SAK7CzK,IAAkB6L,IAAaV,IAAsC,GAA1BkB,IAAyD,GAA1BA,IAC3ExvE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,qDACdH,IAAAC,cAAA,OAAKE,UAAU,yEACdH,IAAAC,cAAA,QAAME,UAAU,UAAUI,EAAE,YAC5BP,IAAAC,cAAA,QAAME,UAAU,UACdwN,YACAuyB,EAAyB,cACzB,GACA,KAIHlgC,IAAAC,cAAA,OAAKE,UAAU,yEACdH,IAAAC,cAAA,QAAME,UAAU,UAAUI,EAAE,mBAC5BP,IAAAC,cAAA,QAAME,UAAU,UACdkzB,GACA1lB,YACC0lB,GACA,GACA,GAGD,MAIHrzB,IAAAC,cAAA,OAAKE,UAAU,yBACfH,IAAAC,cAAA,OAAKE,UAAU,uBACdH,IAAAC,cAAA,QAAME,UAAU,qBAAqBI,EAAE,SAAS,OAChDP,IAAAC,cAAA,KAAGE,UAAU,UAAUI,EAAE,oBAAsB,KAC/CP,IAAAC,cAAA,KAAGE,UAAU,UACXwJ,YAAoBwzC,IAClB58C,EAAE,oBAAsB,IACxBA,EAAE,sBAAwB,OAKhCP,IAAAC,cAAA,QAAM2Y,SAAUV,IA/JpB1Y,eAAwBgJ,EAAMyO,IA9J9BzX,iBASC,GANAX,EAAUulB,cAAe,IAEzB4rD,IAAqB,SACfC,KAGHnxB,kBAAQl+C,GAAO6Q,aAQjB,OANA5S,EAAUumB,cAAqB,IAE/B4qD,IAAqB,GACnBnxE,EAAUulB,cAAe,KAGpB,EAQR,GAAIza,YAAoBwzC,IAAqB,CAC5C,IAAI2zB,EAAkB,CACrBpyB,OAAQngD,EACRkgD,cAAeA,EACf5lC,kBAAmBA,GAIhBvD,EAAS,CACZypC,aAAclmC,GAIX7Q,QAAqBC,IAAUiM,KAClCrwB,IAAOQ,gCACPqxB,YAAeJ,IAGhB,IAAKtN,EAAa/kB,IAAOC,kBAOxB,OANA2b,EACCiL,aACC9B,EAAa/kB,IAAOC,kBACpB8kB,EAAa/kB,IAAOE,qBAGf,EAGR,IAAI4tF,QAA8B9oE,IAAUiM,KAC3CrwB,IAAOyE,0CACP6rB,YAAwB28D,IAGzB,GAAIC,EAAsB9tF,IAAOC,kBAAmB,CACnD,IAAI8tF,EAAoB,CACvBlwB,kBAAmBroD,IAAgBE,YACnCqoD,OAAQA,EACRxX,QAAS,gBACTu9B,MAAOzqE,IAAUC,YACjB00E,kBAAmBxyB,EACnByyB,sBAAuBr4D,EACvB2lC,SAAUojB,EAAapjB,SACvBiqB,SAAU7G,EAAa6G,UAGpB0I,QAAgClpE,IAAUiM,KAC7CrwB,IAAO+D,wBACP8tB,YAAes7D,IAGZG,EAAwBluF,IAAOC,mBAClCmqF,IAAgB,GAChBJ,GAAoBjsB,GACpB+rB,IAAuB,GACvBI,GAAkBhmD,MAASO,OAAO,yBAClC8pC,GAAsB2f,EAAwBluF,IAAOG,gBACrDyb,EAAUsH,eACVmlB,MAEAzsB,EACCiL,aACCqnE,EAAwBluF,IAAOC,kBAC/BiuF,EAAwBluF,IAAOE,oBAIlC4qF,IAAc,GACdE,GAAkB,IAClBE,GAAyB,IACzBE,GAAyB,GACzBhB,IAAgB,QAEhBxuE,EACCiL,aACCinE,EAAsB9tF,IAAOC,kBAC7B6tF,EAAsB9tF,IAAOE,wBAI1B,CAEN,IAAIiuF,EAAqB,CACxBtwB,kBAAmBroD,IAAgBE,YACnCqoD,OAAQA,EACRxX,QAAS,gBACTu9B,MAAOzqE,IAAUC,YACjB00E,kBAAmBxyB,EACnByyB,sBAAuBr4D,EACvB2lC,SAAUojB,EAAapjB,SACvBiqB,SAAU7G,EAAa6G,UAGpB0I,QAAgClpE,IAAUiM,KAC7CrwB,IAAO+D,wBACP8tB,YAAe07D,IAGZD,EAAwBluF,IAAOC,mBAClCmqF,IAAgB,GAChBJ,GAAoBjsB,GACpB+rB,IAAuB,GACvBI,GAAkBhmD,MAASO,OAAO,yBAClC8pC,GAAsB2f,EAAwBluF,IAAOG,gBACrDyb,EAAUsH,eACVmlB,MAEAzsB,EACCiL,aACCqnE,EAAwBluF,IAAOC,kBAC/BiuF,EAAwBluF,IAAOE,oBAIlC4qF,IAAc,GACdE,GAAkB,IAClBE,GAAyB,IACzBE,GAAyB,GACzBhB,IAAgB,GAGjBjvB,KAEA4xB,IAAqB,GAErBnxE,EAAUulB,cAAe,IACzBysD,KASAQ,MA8J2CxgE,IAAK68D,IAC5C1tE,IAAAC,cAAA,OAAKE,UAAU,+BAA+BI,EAAE,sBAChDP,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,8BACdH,IAAAC,cAAA,OAAKE,UAAU,yEACdH,IAAAC,cAAA,SAAOE,UAAU,2BACfI,EAAE,cAEJP,IAAAC,cAAA,OAAKyJ,GAAG,2BAA2BvJ,UAAU,cAC5CH,IAAAC,cAAA,UACCE,WAEC+/B,EAAUliB,cACTrQ,YAAyBiC,WAAW,GAAI,GAAG,IAC5CjG,YAAoBwzC,IACjB,+BAGJr0C,KAAK,OACL+H,IAAKmH,GAAS,CACbe,SAAU,mBAEXu4D,aAAc/yE,EACd8wC,YAAa9uC,EAAE,sBACfyY,SAAW/B,IACVsnB,EAAS,OAAOtnB,EAAEzgB,OAAO+H,OArHpC,SAA4BA,GAC3B,MAAMsnE,EAAO+G,GAAW/5C,OAAQlqB,GAAMA,EAAEpK,OAASA,GAAO,GAExD+rE,EAAgBzE,GAChBtnC,EAAShgC,GAkHCgzE,CAAmBt6D,EAAEzgB,OAAO+H,OAC5B4gC,GAAY,UAIbn/B,IAAAC,cAAA,UAAQ1B,MAAM,GAAG8N,UAAQ,GACvB9L,EAAE,uBAEHqsE,GAAW3zD,IAAI,CAACqrC,EAAQtvC,IAEvBhV,IAAAC,cAAA,UACCE,UAAU,6BACV5B,MAAO+lD,EAAO/lD,MACd0W,IAAKD,GAEJsvC,EAAO9lD,SAKX4Z,GAAOytD,MACP7lE,IAAAC,cAAA,OAAKE,UAAU,4CACdH,IAAAC,cAAA,OAAKE,UAAU,4CACbI,EAAE6X,GAAOytD,KAAKxsD,aAOpBrZ,IAAAC,cAAA,OAAKE,UAAU,8EACdH,IAAAC,cAAA,SAAOE,UAAU,kBACfI,EAAE,wBAEJP,IAAAC,cAAA,OAAKE,UAAU,gCACdH,IAAAC,cAACmuC,IAAK,CACL1kC,GAAG,0BACHZ,KAAK,uBACL+H,IAAKmH,GAAS,CACbe,SAAU,iBACVQ,QAAS,CACRhb,MAAO,eACP8a,QAAS,kBAGXg2B,YAAa9uC,EAAE,2BACfJ,UAAU,oCACVmuC,WAAS,EACTgjC,aAAcz4D,EACdpM,MACC9C,YAAoBu2B,EAAU6e,cAC3B,KACA,CAAEyyB,cAAe,QAErBx4D,SAAW/B,GAAMw1D,EAAqBx1D,EAAEzgB,OAAO+H,OAE/CuS,WACCnH,YAAoBu2B,EAAU6e,eAAiB7e,EAAUliB,cAAgB,KAK1E5F,GAAOq5D,sBACPzxE,IAAAC,cAAA,OAAKE,UAAU,4CACdH,IAAAC,cAAA,OAAKE,UAAU,4CACbI,EAAE6X,GAAOq5D,qBAAqBp4D,aAQnC6mB,EAAUliB,eAAiB,GAC1Bhe,IAAAC,cAAA,OAAKE,UAAU,+BACfH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACfH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGL5L,IAAAC,cAAA,WACAD,IAAAC,cAAA,KAAGE,UAAU,sCACZH,IAAAC,cAAA,YAAOM,EAAE,6BAQXoJ,YAAoBu2B,EAAU6e,eAAiB7e,EAAUliB,cAAgB,GAC1Ehe,IAAAC,cAAA,OAAKE,UAAU,+BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACfH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGL5L,IAAAC,cAAA,WACAD,IAAAC,cAAA,KAAGE,UAAU,sCACZH,IAAAC,cAAA,QAAMqM,wBAAyB,CAAEC,OAAQhM,EAAE,2BAA4B,CAAExM,IAjwBzD,qBA0wBpBiM,IAAAC,cAAA,OAAKE,UAAU,8EACdH,IAAAC,cAAA,SAAOE,UAAU,2BACfI,EAAE,mBAEJP,IAAAC,cAAA,OAAKE,UAAU,gCACdH,IAAAC,cAACmuC,IAAK,CACL1kC,GAAG,qBACHZ,KAAK,mBACLiE,KAAK,SACL8D,IAAKmH,GAAS,CACbe,SAAU,mBAEXs2B,YAAa9uC,EAAE,6BACfJ,UAAU,2BACVmuC,WAAS,EAETgjC,aAAc7yB,EACdhyC,OACE+hE,IACDtuC,EAAUliB,cACTrQ,YAAyBiC,WAAW,GAAI,GAAG,IAC5CjG,YAAoBwzC,IACjB,KACA,CAAEq0B,cAAe,QAErBx4D,SAAW/B,GAAMu1D,EAAiBv1D,EAAEzgB,OAAO+H,OAC3CuS,WACCnH,YAAoBwzC,KACpBjd,EAAUliB,cACTrQ,YAAyBiC,WAAW,GAAI,GAAG,MAK7CwI,GAAOs5D,kBACP1xE,IAAAC,cAAA,OAAKE,UAAU,4CACdH,IAAAC,cAAA,OAAKE,UAAU,4CACbI,EAAE6X,GAAOs5D,iBAAiBr4D,aAOhCrZ,IAAAC,cAAA,OAAKE,UAAU,8EACdH,IAAAC,cAAA,SAAOE,UAAU,2BACfI,EAAE,WAEJP,IAAAC,cAAA,OAAKE,UAAU,2DACdH,IAAAC,cAAA,OAAKE,UAAU,8BACdH,IAAAC,cAAA,OAAKE,UAAU,SAASgkB,IACxBnkB,IAAAC,cAAA,OAAKE,UAAU,UACdH,IAAAC,cAAA,SACC8M,KAAK,OACLjE,KAAK,SACL+H,IAAKmH,KAELzZ,MACqB,QAApB4lB,GACG+mB,OAAO8V,GAAU,EAChBxxB,SAASwxB,GACT,EACD9V,OAAO8V,GAAU,EACjB9V,OAAO8V,GAAQ93C,QAAQ,GACvB,GAEJmmC,YACC9uC,EAAE,uBAEHJ,UACC+/B,EAAyB,cAAI,EAC1B,GACA,kBAEJlnB,SAAW/B,IACV,IAAI+pC,EAAS/pC,EAAEzgB,OAAO+H,MACpBiO,QACA,mEACA,IAEAigC,OACEluC,EAAQ,EAGXA,EAFuB,QAApB4lB,GAEK+mB,OAAOt7B,WAAWoxC,IAAS93C,QAAQ,GAGnCgiC,OAAOt7B,WAAWoxC,GAAU,KAAK93C,QAAQ,GAOjD0G,WAAWrR,GACXqR,WAAWswB,EAAUliB,iBAErBzf,EAAQ2hC,EAAUliB,eAEnBmjD,EAAU5iE,GACV0Y,EAAEzgB,OAAOi4C,kBACRlwC,EAAMgB,OACNhB,EAAMgB,SAGR8M,UACEmiE,IACDtuC,EAAUliB,cACTrQ,YAAyBiC,WAAW,GAAI,GAAG,GACzC,GACA,eAKoB,GAA1B4/D,IACAxvE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAK4rE,MAAM,wBACTtrE,EAAE,uBAAwB,CAC1BmvE,yBAA0BA,GAC1BE,4BAA6BA,WA8GrC5vE,IAAAC,cAAA,OAAM4Q,IAAKi/D,GAAoB3vE,UAAU,6CACxCH,IAAAC,cAAA,UACC8M,KAAK,SACLV,SAAU20C,EAAS,KAAkC,GAA1BwuB,GAA8B,GAAK,WAC9DrvE,UAAS,wCAAAnM,OACRgtD,EAAS,KAAkC,GAA1BwuB,GAA8B,GAAK,aAEnDO,GACD/vE,IAAAC,cAAC4N,IAAO,CACP1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACPwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAIb3N,EAAE,iBAQN4iE,IAAkB6L,IAAaV,IAAsC,GAA1BkB,IAC5CxvE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAK4Q,IAAKi/D,GAAoBjE,MAAM,qCAAqCtrE,EAAE,wCAI1E4iE,IAAkB6L,IAAaV,IAAsC,GAA1BkB,IAC7CxvE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAK4Q,IAAKi/D,GAAoBjE,MAAM,qCAAqCtrE,EAAE,sCAM7EP,IAAAC,cAACiN,IAAK,CACLC,MAAM,EACNzD,GAAG,2BACH0D,OAAQ0/D,GACRv/D,OAAQA,KACPw/D,IAAuB,IAExBx/B,UAAQ,GAERvtC,IAAAC,cAACyN,IAAS,KACT1N,IAAAC,cAAA,OAAKE,UAAU,uDACdH,IAAAC,cAAA,OAAKE,UAAU,sEACdH,IAAAC,cAAA,OACCE,UAAU,6CACVuJ,GAAG,kBAEH1J,IAAAC,cAAA,OAAKE,UAAU,eACdH,IAAAC,cAAA,OAAKE,UAAU,IACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,MAAIE,UAAU,mBACZI,EAAE,iCAEJP,IAAAC,cAAA,KAAGE,UAAU,sBACXI,EAAE,sBAGLP,IAAAC,cAAA,OAAKE,UAAU,oBACdH,IAAAC,cAAA,KACCE,UAAU,kFACVgL,QAASA,KACR4hE,IAAuB,GACvB7L,GAAY,IAEbz0D,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE,iBAUVP,IAAAC,cAACiN,IAAK,CACLC,MAAM,EACNzD,GAAG,2BACH0D,OAAQk/D,EACR/+D,OAAQA,KACPg/D,GAAuB,IAExBh/B,UAAQ,GAERvtC,IAAAC,cAACyN,IAAS,KACT1N,IAAAC,cAAA,OAAKE,UAAU,uDACdH,IAAAC,cAAA,OAAKE,UAAU,sEACdH,IAAAC,cAAA,OACCE,UAAU,mDACVuJ,GAAG,kBAEH1J,IAAAC,cAAA,OAAKE,UAAU,eACdH,IAAAC,cAAA,OAAKE,UAAU,IACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,MAAIE,UAAU,mBAAmBgQ,EAAO,gBACxCnQ,IAAAC,cAAA,KAAGE,UAAU,sBAAsBgQ,EAAO,mBAE3CnQ,IAAAC,cAAA,OAAKE,UAAU,oBACdH,IAAAC,cAAA,KACCE,UAAU,kFACVgL,QAASA,KACRohE,GAAuB,GACvBrL,GAAY,IAEbz0D,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE,mB,iBC0NEoxE,I,SCleAA,MA97BepgE,IAA+D,IAA9D,iBAAE46D,EAAgB,iBAACyF,EAAgB,mBAACxF,GAAoB76D,EACtF,IAAI,EAAEhR,EAAC,KAAE+f,GAAS9f,cACHE,cACC6lB,cAChB,IAAI2Z,EAAYlhC,YAAaC,GAAUA,EAAM8B,UAAUC,UACvD,MAAM0G,EAAoB1I,YACpBC,GAAUA,EAAMC,SAASwI,mBAE/B,IAAKyI,EAAQk8D,GAAahtE,mBAAS,IACnC,IAAIR,EAAYC,cAChB,MAAOwtE,EAAqBC,GAA0BltE,oBAAS,GACzD0/C,EAAe//C,YACnBC,GAAUA,EAAM8B,UAAUC,SAAS+9C,eAE9BkiB,EAAUC,GAAe7hE,oBAAS,IAClCuiE,EAAc0I,GAAmBjrE,mBAAS,KAC1CoU,EAAqBC,GAA0BrU,mBAAS,OACxD2hD,EAAQmgB,GAAa9hE,mBAAS,IAC9Bd,EAAOggC,GAAYl/B,mBAAS,KAC5BwZ,EAAmB4zD,GAAwBptE,mBAAS,KACpD8jE,EAAeC,GAAoB/jE,oBAAS,IAC5CskE,EAAcC,GAAmBvkE,mBAAS,KAC1CkkE,EAAiBC,GAAsBnkE,mBAAS,IAChDokE,EAAeC,GAAoBrkE,sBACnCqtE,EAAsBC,IAA2BttE,oBAAS,GAC3D8kB,GAAkBnlB,YAAaC,GAAUA,EAAMC,SAASilB,kBACvDk5B,GAAyBC,IAA8Bj+C,oBAAS,IAChE8kE,GAAWC,IAAgB/kE,oBAAS,IACpCglE,GAAaC,IAAkBjlE,oBAAS,IACxCwyE,GAAcC,IAAmBzyE,oBAAS,GAC3CwjB,GAAoB7jB,YAAaC,GAAUA,EAAMC,SAAS2jB,mBAE1D0B,GAAevlB,YACnBC,GAAUA,EAAMC,SAASqlB,eAGrB,aACLrM,GAAY,SACZF,GAAQ,OACRI,GAAM,QACNknB,GAAO,YACPH,IACG3mB,eAEGo0D,GAAYC,IAAiBxtE,mBAAS,KACtCuoE,GAAaC,IAAkBxoE,mBAAS,KACxCkyD,GAAoBC,IAAyBnyD,sBAC7CytE,GAAqBC,IAA0B1tE,oBAAS,IACxD2tE,GAAkBC,IAAuB5tE,mBAAS,IAClD6tE,GAAgBC,IAAqB9tE,qBAEtCuB,GAAS5B,YAAaC,GAAUA,EAAMC,SAAS0B,SAI9C2R,GAAiBC,IAAsBnT,mBAAS,GACjDquE,GAAWxsE,iBAAO,OAEjBgf,GAASytD,IAActuE,oBAAS,IAChCuuE,GAAYC,IAAiBxuE,mBAAS,KAEtCivE,GAAUC,IAAelvE,oBAAS,IAClCmvE,GAAgBC,IAAqBpvE,oBAAS,IAE9C2vE,GAAWC,IAAgB5vE,oBAAS,IACpCg0B,GAAKmuC,IAAUniE,mBAAS,IACxBi0B,GAAKmuC,IAAUpiE,mBAAS,IAExB+vE,GAA0BC,IAA+BhwE,mBAAS,IAClEiwE,GAAyBC,IAA8BlwE,mBAAS,IAChEmwE,GAAwBC,IAA6BpwE,mBAAS,IAC9DqwE,GAA0BC,IAA+BtwE,mBAAS,IAClEuwE,GAA6BC,IAAkCxwE,mBAAS,GACzEywE,GAAqB5uE,iBAAO,OAE3B6uE,GAAmBC,IAAwB3wE,oBAAS,IACpD6nE,GAAiBC,IAAsB9nE,sBACvC0S,GAAoBC,IAAyB3S,oBAAS,IACtDqS,GAAcmsC,IAAmBx+C,mBAAS,KAC1C4kE,GAAUC,IAAe7kE,oBAAS,GAqGzCG,eAAe8rB,KACd,IACmC,GAA9B4U,EAAyB,eAC5BysC,IAAwB,GAGzBsD,KAEA,IAAIC,QAA6BjoE,IAAU1R,IAC1C1S,IAAOyN,oCAGR,IAAI4+E,EAAqBjtF,IAAOC,kBAY/B,MAAMgtF,EAAqBjtF,IAAOE,kBAZgB,CAElD,IAAIgtF,EAAoBD,EAAqBjtF,IAAOG,eACpD,GAAI+sF,EAAmB,CACtB,MAAMC,EAAcD,EAAkBj9B,OAAO,CAACm9B,EAAaF,IACnDE,EAAcF,EAAkBnvB,OACrC,GACHquB,GAA4Be,GAC5Bb,GAA2BY,EAAkB5wE,SAO/CixE,KACAtyB,KAGAr/C,EAAUsH,eAKT,MAAOkiB,GACRxpB,EAAUiL,cAAoB,EAAOue,IAEtCkmD,IAAY,GAGb/uE,eAAe0+C,KACd,IAAIl2C,QAAqBC,IAAU1R,IAElC1S,IAAO2O,+BAER,IAAIwV,EAAa/kB,IAAOC,kBAcvB,MAAM8kB,EAAa/kB,IAAOE,kBAdgB,CAC1C,IAAI4uF,EAAkB,GACtB/pE,EAAa/kB,IAAOG,eAAe61B,IAAKxH,IACvCsgE,EAAgBvnE,KAAK,CACpBhM,MAAOiT,EAAYA,YACnBlT,MAAOkT,EAAY/H,GACnBA,GAAI+H,EAAY/H,GAChBu2C,SAAUxuC,EAAYwuC,SACtBvuC,aAAc,wBACdmH,kBAAmBpH,EAAYoH,sBAGjCgvD,GAAekK,IAMjBvyE,eAAeywE,WACRpxE,EAAUia,MArKjBxZ,oBAAU,KACTgsB,MAEE,IAEHhsB,oBAAU,KACLsB,GACE+I,YAAoB/I,GAAOm+C,eAC/B0tB,EAAqB7rE,GAAOm+C,cAGxBp1C,YAAoBo1C,IACxB0tB,EAAqB1tB,IAGrB,CAACn+C,GAAQm+C,IAEZz/C,oBAAU,KAEJwwE,GAAmBzmE,SACtB8iE,KAKA,CAACA,IAEJ7sE,oBAAU,KACLiT,GAAkB,IACrByB,aAAayvD,GACbC,EACC7wD,WAAW,KACV,IAAIsyD,EAAa5yD,GAAkB,EACnCC,GAAmB2yD,GACnB,IAAIC,EAAQj+C,IAAO8L,SAASkyC,GACxBE,EAASn9C,KAAK+D,MAAMm5C,EAAqB,cAAI,IAC7CE,EAASF,EAAqB,cAAa,GAATC,EACtC7B,EAAmB4B,EAAqB,eACxC,IAAIG,GACFF,EAAOhQ,WAAW91D,OAAS,EAAI8lE,EAAS,IAAMA,GAC/C,IACA9kE,EAAE,WACF,KACC+kE,EAAOjQ,WAAW91D,OAAS,EAAI+lE,EAAS,IAAMA,GAC/C,IACA/kE,EAAE,UACHqjE,EAAgB2B,IA1EG,QA8EpB,CAAChzD,KAEJjT,oBAAU,OAGP,IAEHA,oBAAU,KACT4+C,MACE,CAAC35B,KAEJjlB,oBAAU,KACT,GAAIstE,KAAejjE,YAAoBijE,IAAa,CACxCA,GAAWltE,KAAKiJ,GAAKA,EAAE8/D,UAAYmJ,GAC9CtH,EAAgBsC,GAAWltE,KAAKiJ,GAAKA,EAAE8/D,UAAYmJ,IACnDzK,GAAmByK,KAElB,CAAChF,KAEJttE,oBAAU,KACT,GAAIsB,IAAUA,GAAOmO,YAAcnO,GAAOmO,WAAW2hE,qBAAuB9vE,GAAOmO,WAAW4hE,mBAS7F,GAJAd,GAA+BjvE,GAAOmO,WAAW2hE,qBAI7CtB,IAA4BxuE,GAAOmO,WAAW2hE,qBAAuB9vE,GAAOmO,WAAW2hE,oBAAsB,EAChHjB,GAA0B,QACpB,GAAI7uE,GAAOmO,WAAW4hE,mBAAqB,GAAKrB,IAA2B1uE,GAAOmO,WAAW4hE,qBAA+D,GAAzC/vE,GAAOmO,WAAW4hE,mBAC3IlB,GAA0B,OACpB,CACN,MAAMmB,EAAoChwE,GAAOmO,WAAW2hE,oBAAsBtB,GAG9EwB,EAAoC5vB,GAAUpgD,GAAOmO,WAAW2hE,oBAAsB,GACzFf,GAA4BiB,GAC5BnB,GAA0B,GAC1B71C,QAAQC,IAAI,uHAAyH+2C,IAErInB,GAA0B,KAI3B,CAACH,GAAyBF,GAA0BxuE,GAAQogD,IAoK9D,MAAMwvB,GAAchxE,UACnB,IAAIwI,QAAqBC,IAAU1R,IAClC1S,IAAO6O,uBAAyB,oBAEjC,IAAIsV,EAAa/kB,IAAOC,kBAevB,MAAM8kB,EAAa/kB,IAAOE,kBAfgB,CAC1C,IAAImtF,EAAW,GACftoE,EAAa/kB,IAAOG,eAAe61B,IAAKslC,IACvC+xB,EAAS9lE,KAAK,CACbhM,MAAO+/C,EAAYC,SACnBjgD,MAAOggD,EAAY70C,GACnB80C,SAAUD,EAAYC,SACtBiqB,SAAUlqB,EAAYkqB,SACtBp1C,IAAKkrB,EAAYsQ,kBACjBv7B,IAAKirB,EAAYgyB,kBAClBxM,SAAUxlB,EAAYwlB,aAGvB8I,GAAcyD,KAmBjBhxE,oBAAU,KACT,GAAIsoE,GAAYroE,OAAS,GAAKkU,EAAqB,CAClD,MAAMu+D,EAAkBpK,GAAY/0C,OAClClqB,GAAMA,EAAEpK,QAAUkV,EAAoB/J,IACtC,GAEFgK,EAAuBs+D,GACvBzzC,EAAShgC,KAER,CAACqpE,KAqBJ,OACC5nE,IAAAC,cAAAD,IAAAE,SAAA,KACEggB,IACAlgB,IAAAC,cAAA,OAAKE,UAAU,4BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,4BAA4BI,EAAEqtE,SAO7CoB,IAAaV,IAAsC,GAA1BkB,IAAyD,GAA1BA,IACxDxvE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAKE,UAAU,qDACdH,IAAAC,cAAA,OAAKE,UAAU,yEACdH,IAAAC,cAAA,QAAME,UAAU,UAAUI,EAAE,YAC5BP,IAAAC,cAAA,QAAME,UAAU,UACdwN,YACAuyB,EAAyB,cACzB,GACA,KAIHlgC,IAAAC,cAAA,OAAKE,UAAU,yEACdH,IAAAC,cAAA,QAAME,UAAU,UAAUI,EAAE,mBAC5BP,IAAAC,cAAA,QAAME,UAAU,UACdkzB,GACA1lB,YACC0lB,GACA,GACA,GAGD,MAKFu8C,GAA8B,GAAM5vE,IAAAC,cAAA,OAAKE,UAAU,wEACnDH,IAAAC,cAAA,QAAME,UAAU,UAAUI,EAAE,qCAAqCP,IAAAC,cAAA,WAChEyH,GAA0C,MAArBw4B,EAAUkvB,SAC9BpvD,IAAAC,cAAA,OAAKE,UAAU,SAAQ,IACtBI,EAAE,cAAc,KAAGA,EAAE2/B,EAAUkvB,QAAQxa,eAAe,MAIzD50C,IAAAC,cAAA,QAAME,UAAU,UACdwN,YACCiiE,GACA,GACA,KAKJ5vE,IAAAC,cAAA,OAAKE,UAAU,yBACfH,IAAAC,cAAA,OAAKE,UAAU,uBACdH,IAAAC,cAAA,QAAME,UAAU,qBAAqBI,EAAE,SAAS,OAChDP,IAAAC,cAAA,KAAGE,UAAU,eAAeI,EAAE,4BAA8B,OAQ9DP,IAAAC,cAAA,QAAM2Y,SAAUV,IAjLrB1Y,eAAwBgJ,EAAMyO,GAC7BmtD,IAAa,GACbE,IAAe,GACfwN,IAAgB,GAChB,IAAIp0C,GAAQ,EACR/zB,YAAoBu9D,MACvB5nC,GAAQ,WACR8kC,IAAa,GACb1mC,GAAQ,KAIPl1B,EAAKw4C,QACNjjC,MAAMvV,EAAKw4C,SACX9V,OAAO1iC,EAAKw4C,SAAW,GACvB9V,OAAO1iC,EAAKw4C,QAAU3tB,MAEtBiM,GAAQ,UACRglC,IAAe,GACf5mC,GAAQ,GAGL/zB,YAAoBnB,EAAKiJ,eAC5B6tB,GAAQ,eACRwyC,IAAgB,GAChBp0C,GAAQ,GAGLA,GAnFLl+B,iBAMC,GALAX,EAAUulB,cAAe,IACzB4rD,IAAqB,SAEfC,KAEFnxB,kBAAQl+C,GAAO6Q,aAKlB,OAJA5S,EAAUumB,cAAqB,IAC/BvmB,EAAUulB,cAAe,IACzB4rD,IAAqB,IAEd,EAGR,IAAIgB,EAAoB,CACvBlwB,kBAAmBroD,IAAgBE,YACnCqoD,OAAQA,EACRxX,QAAS,WACTu9B,MAAOzqE,IAAUC,YACjB00E,kBAAmBx9D,EAAoBjV,MACvC0yE,sBAAuBz9D,EAAoBoF,kBAC3C2lC,SAAUojB,EAAapjB,SACvBiqB,SAAU7G,EAAa6G,UAIpB0I,QAAgClpE,IAAUiM,KAC7CrwB,IAAO+D,wBACP8tB,YAAes7D,IAGZG,EAAwBluF,IAAOC,mBAClC+pF,GAAoBjsB,GACpB+rB,IAAuB,GACvBI,GAAkBhmD,MAASO,OAAO,yBAClC8pC,GAAsB2f,EAAwBluF,IAAOG,gBACrDyb,EAAUsH,eACVmlB,MAEAzsB,EACCiL,aACCqnE,EAAwBluF,IAAOC,kBAC/BiuF,EAAwBluF,IAAOE,oBAOlC6sF,IAAqB,GAErBnxE,EAAUulB,cAAe,IAkCxBitD,MAmJ2CxgE,IAAK68D,IAE5C1tE,IAAAC,cAAA,OAAKE,UAAU,uBACfH,IAAAC,cAAA,SAAOE,UAAU,QAAQI,EAAE,0BAC3BP,IAAAC,cAAA,OAAKE,UAAU,wBAAwBsM,MAAO,CAAEmgB,QAAUq3C,GAAoB,OAAT,SAEnE2I,GAAW3zD,IAAI,CAAC4sD,EAAMC,IAEpB9lE,IAAAC,cAAA,OAAKgV,IAAK6wD,EAAW3lE,UAAS,kBAAAnM,OAAoB6xE,EAAK4C,WAAavB,GAAkB,YAAa,IAClG/7D,QAASA,KACRi5D,IAAa,GACb+C,GAAmBtB,EAAK4C,UACxB6B,EAAgBzE,GAChBrE,GAAOqE,EAAKxyC,KACZouC,GAAOoE,EAAKvyC,OAGbtzB,IAAAC,cAAA,OAAKE,UAAU,mBAEd0lE,EAAK9B,SACJ/jE,IAAAC,cAAA,OACCG,IAAKylE,EAAK9B,SACV5jE,UAAU,iBACVyL,IAAI,SAEF,IAGL5L,IAAAC,cAAA,OAAKE,UAAU,oBACdH,IAAAC,cAAA,OAAKE,UAAU,oBAAoB0lE,EAAKrnB,UACtCx+C,IAAAC,cAAA,OAAKE,UAAU,sBAAsB0lE,EAAKxyC,IAAI,MAAIwyC,EAAKvyC,SAW9D6wC,IACAnkE,IAAAC,cAAA,OAAKE,UAAU,+BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,sCACZH,IAAAC,cAAA,QAAMqM,wBAAyB,CAAEC,OAAQhM,EAAE,0BAUhDP,IAAAC,cAAA,OAAKE,UAAU,+BAA+BI,EAAE,yBAChDP,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,8BACdH,IAAAC,cAAA,OAAKE,UAAU,yEACdH,IAAAC,cAAA,SAAOE,UAAU,2BACfI,EAAE,iBAEJP,IAAAC,cAAA,OAAKyJ,GAAG,2BAA2BvJ,UAAU,cAC5CH,IAAAC,cAAA,UACCE,WAEC+/B,EAAUliB,cAAgBrQ,YAAyBiC,WAAW,GAAI,GAAG,GAElE,+BAGJ9G,KAAK,cACL+H,IAAKmH,GAAS,CACbe,SAAU,mBAEXu4D,aAAc/yE,EACd8wC,YAAa9uC,EAAE,8BACfyY,SAAW/B,IACVsnB,EAAS,cAAetnB,EAAEzgB,OAAO+H,OA7M7C,SAAmCA,GAClC,MAAMyzE,EAAkBpK,GAAY/0C,OAAQlqB,GAAMA,EAAEpK,OAASA,GAAO,GAEpEmV,EAAuBs+D,GACvBzzC,EAAShgC,GA0ME0zE,CAA0Bh7D,EAAEzgB,OAAO+H,OACnC4gC,GAAY,gBAEbpmB,UAAQ,GAER/Y,IAAAC,cAAA,UAAQ1B,MAAM,GAAG8N,UAAQ,GACvB9L,EAAE,+BAEHqnE,GAAY3uD,IAAI,CAACqrC,EAAQtvC,IAExBhV,IAAAC,cAAA,UACCE,UAAU,6BACV5B,MAAO+lD,EAAO/lD,MACd0W,IAAKD,GAEJsvC,EAAOzrC,kBAAkB,MAAIyrC,EAAO9lD,SAKxC4Z,GAAO3G,aACPzR,IAAAC,cAAA,OAAKE,UAAU,4CACdH,IAAAC,cAAA,OAAKE,UAAU,4CACbI,EAAE6X,GAAO3G,YAAY4H,aAOzBwJ,IAAqBpP,IAAwBA,EAAoBwsC,UAClEjgD,IAAAC,cAAA,OAAKE,UAAU,+BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,sCACZH,IAAAC,cAAA,QAAMqM,wBAAyB,CAAEC,OAAQhM,EAAE,uCAC3CP,IAAAC,cAAA,QACCE,UAAU,mCACVgL,QAASA,KACR0yC,GAAgB,UApPPr+C,OAAOgJ,EAAMyO,KAEpCjF,IAAsB,IAmPR4sC,KAEAr+C,EAAE,mBAORqnE,GAAYroE,OAAS,GAAMS,IAAAC,cAAA,OAAKE,UAAU,oCACZH,IAAAC,cAAA,QAAME,UAAU,cAAcgL,QAASA,KAAQmyC,IAA2B,KAAW/8C,EAAE,kBAGrH2/B,EAAUliB,eAAiB,GAC3Bhe,IAAAC,cAAA,OAAKE,UAAU,+BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,sCACZH,IAAAC,cAAA,YAAOM,EAAE,6BASboJ,YAAoBu2B,EAAU6e,eAAiB7e,EAAUliB,cAAgB,GACzEhe,IAAAC,cAAA,OAAKE,UAAU,+BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,sCACZH,IAAAC,cAAA,QAAMqM,wBAAyB,CAAEC,OAAQhM,EAAE,2BAA4B,CAAExM,IAplB3D,qBA6lBnBiM,IAAAC,cAAA,OAAKE,UAAU,8EACdH,IAAAC,cAAA,SAAOE,UAAU,2BACfI,EAAE,WAEJP,IAAAC,cAAA,OAAKE,UAAU,2DACdH,IAAAC,cAAA,OAAKE,UAAU,8BACdH,IAAAC,cAAA,OAAKE,UAAU,SAASgkB,IACxBnkB,IAAAC,cAAA,OAAKE,UAAU,UACdH,IAAAC,cAAA,SACC8M,KAAK,OACLjE,KAAK,SACL+H,IAAKmH,GAAS,CACbe,SAAU,mBAGXxa,MACqB,QAApB4lB,GACG+mB,OAAO8V,GAAU,EAChBxxB,SAASwxB,GACT,EACD9V,OAAO8V,GAAU,EACjB9V,OAAO8V,GAAQ93C,QAAQ,GACvB,GAEJmmC,YAAa9uC,EAAE,uBACfJ,UACC+/B,EAAyB,cAAI,EAC1B,GACA,kBAEJlnB,SAAW/B,IACV,IAAI1Y,EAAQ,EACRyiD,EAAS/pC,EAAEzgB,OAAO+H,MACpBiO,QACA,mEACA,IAEAigC,OAEEuU,EAAS,IAEXziD,EADuB,QAApB4lB,GACK+mB,OAAOt7B,WAAWoxC,IAAS93C,QAAQ,GAEnCgiC,OAAOt7B,WAAWoxC,GAAU,KAAK93C,QAAQ,GAElDo7D,IAAe,IAQhBnD,EAAU5iE,IAQX8N,UACEmiE,IACAtuC,EAAUliB,cACVrQ,YAAyBiC,WAAW,GAAI,GAAG,GACzC,GACA,iBAQRy0D,IACArkE,IAAAC,cAAA,OAAKE,UAAU,+BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,sCACX6gD,GAAU,GAAMhhD,IAAAC,cAAA,QAAMqM,wBAAyB,CAAEC,OAAQhM,EAAE,4BAC1DygD,EAAS3tB,IAAO2tB,EAAS1tB,KAAStzB,IAAAC,cAAA,QAAMqM,wBAAyB,CAAEC,OAAQhM,EAAE,gBAAgB,CAC/FguD,EAAIpqC,GAAkB,IAAMkP,GAC5B6+C,EAAI/tD,GAAkB,IAAMmP,YAMN,GAA1Bk8C,IACAxvE,IAAAC,cAAA,OAAKE,UAAU,+BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,sCACZH,IAAAC,cAAA,QAAMqM,wBAAyB,CAAEC,OAAQhM,EAAE,uBAAwB,CACnEmvE,yBAA0BA,GAC1BE,4BAA6BA,cAYpC5vE,IAAAC,cAAA,OAAK4Q,IAAKi/D,GAAoB3vE,UAAU,6CACvCH,IAAAC,cAAA,UACC8M,KAAK,SACLV,SAAU20C,EAAS,KAAkC,GAA1BwuB,MAAiC3sD,KAAwC,OAAnBpP,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBwsC,WAAY,GAAK,WACvH9/C,UAAS,+DAAAnM,OAEPgtD,EAAS,KAAkC,GAA1BwuB,MAAiC3sD,KAAwC,OAAnBpP,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBwsC,WAAY,GAAK,WAAU,uBAGxH8vB,GACA/vE,IAAAC,cAAC4N,IAAO,CACP1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAId3N,EAAE,iBAQP4iE,IAAkB6L,IAAaV,IAAsC,GAA1BkB,IAC5CxvE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAK4Q,IAAKi/D,GAAoBjE,MAAM,qCAAqCtrE,EAAE,wCAI3E4iE,IAAkB6L,IAAaV,IAAsC,GAA1BkB,IAC5CxvE,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OAAK4Q,IAAKi/D,GAAoBjE,MAAM,qCAAqCtrE,EAAE,sCAM7EP,IAAAC,cAACiN,IAAK,CACLC,MAAM,EACNzD,GAAG,2BACH0D,OAAQ0/D,GACRv/D,OAAQA,KACPw/D,IAAuB,IAExBz/D,SAAU,SACVigC,UAAQ,GAERvtC,IAAAC,cAACyN,IAAS,KACT1N,IAAAC,cAAA,OAAKE,UAAU,uDACdH,IAAAC,cAAA,OAAKE,UAAU,sEACdH,IAAAC,cAAA,OACCE,UAAU,6CACVuJ,GAAG,kBAEH1J,IAAAC,cAAA,OAAKE,UAAU,eACdH,IAAAC,cAAA,OAAKE,UAAU,IACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,MAAIE,UAAU,mBACZI,EAAE,iCAEJP,IAAAC,cAAA,KAAGE,UAAU,sBACXI,EAAE,sBAGLP,IAAAC,cAAA,OAAKE,UAAU,oBACdH,IAAAC,cAAA,KACCE,UAAU,kFACVgL,QAASA,KACR4hE,IAAuB,GACvB7L,GAAY,GAxdXkL,GACAA,KA0dF3/D,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE,iBAUVP,IAAAC,cAACwX,IAAa,CACbjG,KAAM6rC,GACN1rC,QAASA,IAAM2rC,IAA2B,GAC1C1rC,WAAaqF,IAzfezX,WAC9B89C,IAA2B,GAC3BY,MAwfGgC,MAKFlgD,IAAAC,cAACiN,IAAK,CACLC,MAAM,EACNzD,GAAG,2BACH0D,OAAQk/D,EACR/+D,OAAQA,KACPg/D,GAAuB,IAExBh/B,UAAQ,GAERvtC,IAAAC,cAACyN,IAAS,KACT1N,IAAAC,cAAA,OAAKE,UAAU,uDACdH,IAAAC,cAAA,OAAKE,UAAU,sEACdH,IAAAC,cAAA,OACCE,UAAU,mDACVuJ,GAAG,kBAEH1J,IAAAC,cAAA,OAAKE,UAAU,eACdH,IAAAC,cAAA,OAAKE,UAAU,IACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,MAAIE,UAAU,mBAAmBgQ,EAAO,gBACxCnQ,IAAAC,cAAA,KAAGE,UAAU,sBAAsBgQ,EAAO,mBAE3CnQ,IAAAC,cAAA,OAAKE,UAAU,oBACdH,IAAAC,cAAA,KACCE,UAAU,kFACVgL,QAASA,KACRohE,GAAuB,GACvBrL,GAAY,IAEbz0D,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE,iBAUVP,IAAAC,cAACqR,IAAsB,CACtBE,KAAMO,GACNJ,QAASA,IAAMK,IAAsB,GACrCP,YAAgC,OAAnBgC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqBjV,MAClCkT,aAAiC,OAAnB+B,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB/B,aACnCE,WAAaqF,IA7iBgBzX,WAC3BgV,EAASvxB,IAAOC,oBAEnB8uB,IAAsB,SAGhBksC,OAwiBJiC,CAAwBlpC,QCvWdk7D,MAtmBW5gE,IAAiB,IAAhB,SAAC6gE,GAAS7gE,EACpC,IAAI,EAAEhR,EAAC,KAAE+f,GAAS9f,cAClB,MAAM3B,EAAYC,cACH4B,cAAf,IACIw/B,EAAYlhC,YAAaC,GAAUA,EAAM8B,UAAUC,UACvD,MAAOiiE,EAAWC,GAAgB7jE,mBAAS,KACpCkT,EAAiBC,GAAsBnT,mBAAS,IAChD8jE,EAAeC,GAAoB/jE,oBAAS,IAC5CskE,EAAcC,GAAmBvkE,mBAAS,KAC1CkkE,EAAiBC,GAAsBnkE,mBAAS,IAChDgkE,EAAWC,GAAgBjkE,mBAAS,KACpCokE,EAAeC,GAAoBrkE,sBAEnCqtE,EAAsBC,GAA2BttE,oBAAS,IAC1DwqE,EAAkBC,GAAuBzqE,oBAAS,IAClDgzE,EAA0BC,GAA+BjzE,oBAAS,IAClEkzE,EAAqBC,GAA0BnzE,oBAAS,IACxDozE,EAAqBC,GAA0BrzE,oBAAS,IACxDszE,EAAmBC,GAAwBvzE,oBAAS,IACpD0pE,EAAkBC,GAAuB3pE,mBAAS,KAClDwzE,EAAgBC,GAAqBzzE,oBAAS,IAC9C0zE,EAAoBC,IAAyB3zE,oBAAS,IACtD4zE,GAA4BC,IAAiC7zE,oBAAS,IACtE8zE,GAA4BC,IAAiC/zE,oBAAS,IACtEg0E,GAAuBC,IAA4Bj0E,oBAAS,IAC5D4pE,GAAmBC,IAAwB7pE,mBACjDL,YAAaC,GAAUA,EAAMC,SAASsgB,YAEhC+zD,GAAiBC,IAAsBn0E,mBAAS,KAEhD6jB,GAA0BuwD,IAA+Bp0E,mBAC/DL,YAAaC,GAAUA,EAAMC,SAASgkB,4BAGhCvd,GAAWC,IAAgBvG,oBAAS,IACpC4qE,GAAcC,IAAmB7qE,oBAAS,IAC1Cq0E,GAAwBC,IAA6Bt0E,mBAAS,KAC9D+qE,GAAaC,IAAkBhrE,mBAAS,IACxCuiE,GAAc0I,IAAmBjrE,mBAAS,IAEjDC,oBAAU,KACTgsB,MACE,IAEHhsB,oBAAU,KACLyzE,GACHX,KAEC,CAACW,IAEJ,MAAMa,GAA4BA,KACjCd,GAAkB,GAClBE,IAAsB,GACtBptE,IAAa,IAERiuE,GAAmBA,KACxBF,GAA0B,IAC1BjB,GAAuB,GACvBxI,IAAgB,GAGhBoI,GAA4B,GAC5BY,IAA8B,GAC9BE,IAA8B,GAC9BE,IAAyB,GACzBN,IAAsB,GAEtBF,GAAkB,GAClBE,IAAsB,GACtBptE,IAAa,GAEb0lB,MAKD9rB,eAAe8rB,KACdzsB,EAAUsH,eACVP,IAAa,GAEbs9D,EAAa,IAEb,IAAI4Q,EAAe,GACf5wD,KAGH4wD,EAAe,IACCA,EACH,CACI3pE,MAAO,gBACP4pE,OAAQ,gBACR7I,OAAQ3qE,EAAE,0BAc3BizE,GAAmBM,IAGpB,IAAI9rE,QAAqBC,IAAU1R,IAAI1S,IAAOmE,8BAC9C,GAAIggB,EAAa/kB,IAAOC,kBACvB,GAA0C,MAAtC8kB,EAAa/kB,IAAOG,eAAwB,CAC/C4wB,aAAayvD,GACb,IAAIuB,EAAQx1C,SAASxnB,EAAa/kB,IAAOG,eAAyB,UAClEkgF,EAAat7D,EAAa/kB,IAAOG,eAA0B,WAC3DogF,EAAmBwB,GACnBxyD,EAAmBwyD,EAAQ,EAAI,EAAIA,GACnC5B,GAAiB,GACjBF,EAAa3iE,EAAE,kCAoElBf,uBAC0ByI,IAAU1R,IAAI1S,IAAOuL,yBAlEtCqa,GAMR,IAAIuqE,QAAsB/rE,IAAU1R,IAAI1S,IAAO4O,yBAC/C,GAAIuhF,EAAc/wF,IAAOC,mBACpB8wF,EAAc/wF,IAAOG,eAAgB,CAExC,IAAI6wF,QAAqBC,KACzBV,GAAoBD,GAAoB,IACpCA,EACH,CACCppE,MAAO5J,EAAE,YACTwzE,OAAQ,WACR7I,OAAQ,GACRjG,YAAagP,KAsBjBnB,GAAkB,GAClBltE,IAAa,GA6BdtG,oBAAU,KACLiT,EAAkB,IACrByB,aAAayvD,GACbC,EACC7wD,WAAW,KACV,IAAIsyD,EAAa5yD,EAAkB,EACnCC,EAAmB2yD,GACnB,IAAIC,EAAQj+C,IAAO8L,SAASkyC,GACxBE,EAASn9C,KAAK+D,MAAMm5C,EAAqB,cAAI,IAC7CE,EAASF,EAAqB,cAAa,GAATC,EACtC7B,EAAmB4B,EAAqB,eACxC,IAAIG,GACFF,EAAOhQ,WAAW91D,OAAS,EAAI8lE,EAAS,IAAMA,GAC/C,IACA9kE,EAAE,WACF,KACC+kE,EAAOjQ,WAAW91D,OAAS,EAAI+lE,EAAS,IAAMA,GAC/C,IACA/kE,EAAE,UACHqjE,EAAgB2B,IApMG,QAwMpB,CAAChzD,IAEJ,MAAM2hE,GAAiB10E,UACtB,IAAIwI,QAAqBC,IAAU1R,IAC/B1S,IAAO6O,uBAAyB,oBAEpC,GAAIsV,EAAa/kB,IAAOC,kBAAmB,CAC1C,IAAIotF,EAAW,GAaf,OAZAtoE,EAAa/kB,IAAOG,eAAe61B,IAAKslC,IACvC+xB,EAAS9lE,KAAK,CACbhM,MAAO+/C,EAAYC,SACnBjgD,MAAOggD,EAAY70C,GACnB80C,SAAUD,EAAYC,SACtBiqB,SAAUlqB,EAAYkqB,SACtBp1C,IAAKkrB,EAAYsQ,kBACjBv7B,IAAKirB,EAAYgyB,kBACjBxM,SAAUxlB,EAAYwlB,aAIjBuM,EAEP,MAAMtoE,EAAa/kB,IAAOE,mBAI5B,OACC6c,IAAAC,cAAA,OAAKE,UAAU,UACXwF,IAAaw9D,GACfnjE,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,4BACXojE,EAAkB,EAChBhjE,EAAE,eACJ,IACAojE,EACA,IAEGpjE,EADY,YAAd8iE,EACI,uBACA,2BACHJ,OAONE,GAAiBsP,GAClBzyE,IAAAC,cAAAD,IAAAE,SAAA,KACE2pE,GACA7pE,IAAAC,cAACuL,IAAU,CACVigE,SAAO,EACP3/D,eAAgBvL,EAAE,WAClBmrE,kBAAkB,SAClBz+D,UAAWA,KACV68D,GAAoB,IAErBr9D,MAAO,CACNoiB,gBAAiB,UACjB88C,YAAa,mBACbr+C,QAAS,GACTzd,MAAO,QACPiZ,UAAW,OAEZ3c,iBAAiB,WAEhB5L,EACA,8EAwBHP,IAAAC,cAAA,OAAKE,UAAU,SACb0yE,GAAkBU,IAAmBA,GAAgBh0E,OAAS,GAC9DS,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OACCE,UACC+/B,EAAyB,cAAI,EAC1B,2BACA,4CAGH3/B,EAAE,0CAEJP,IAAAC,cAAA,OAAKE,UAAU,8BAEb8Y,cAAIs6D,GAAiB,CAACl1D,EAAMrJ,IAE1BhV,IAAAC,cAAA,OACCE,UAAU,kCACV8U,IAAKD,EACL7J,QAASA,KACJg4D,EACH2G,GAAoB,GACI,YAAfzrD,EAAK01D,OAEb1J,GAAer1D,IAIhB09D,GAAuB,GAEJ,iBAAfr0D,EAAK01D,OACRzB,GAA4B,GAEL,SAAfj0D,EAAK01D,OACbnB,GAAqB,GAEE,mBAAfv0D,EAAK01D,OACbb,IAA8B,GAEP,kBAAf70D,EAAK01D,QACbX,IAA8B,GAM/BlJ,IAAgB,GAChByJ,GAA0Bt1D,GAC1BzY,IAAa,KAGf6G,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAA,OAAKE,UAAU,sBACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,WACCD,IAAAC,cAACmL,IAAK,CACLC,KAAsB,kBAAhBgT,EAAK01D,OAA6BzoE,IAAW00C,OAAS10C,IAAWy0C,aACvE5/C,UAAU,8BAGZH,IAAAC,cAAA,WACCD,IAAAC,cAAA,WACCD,IAAAC,cAAA,OACCE,UACC+/B,EAAyB,cAAI,EAC1B,QACA,yBAGH3/B,EAAE8d,EAAKlU,QAETnK,IAAAC,cAAA,QAAME,UAAU,UAAUke,EAAa,WAI1Cre,IAAAC,cAAA,OAAKE,UAAU,UACdH,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWggD,WAAYnrD,UAAU,YAI/Cke,EAAK4mD,aACJjlE,IAAAC,cAAA,OAAKE,UAAU,wBAAwBsM,MAAO,CAAEmgB,QAASw9C,KAAgBp1D,EAAQ,OAAS,SAExFqJ,EAAK4mD,YAAYhsD,IAAI,CAAC4sD,EAAMC,IAEzB9lE,IAAAC,cAAA,OAAKE,UAAU,kBAAkBgL,QAASA,KACzCunE,GAAuB,GAEvBY,IAAyB,GAEzBpJ,IAAgB,GAChByJ,GAA0Bt1D,GAC1BisD,GAAgBzE,EAAK4C,UACrB7iE,IAAa,KAKb5F,IAAAC,cAAA,OAAKE,UAAU,mBAEb0lE,EAAK9B,SACJ/jE,IAAAC,cAAA,OACCG,IAAKylE,EAAK9B,SACV5jE,UAAU,iBACVyL,IAAI,SAEF,IAGN5L,IAAAC,cAAA,OAAKE,UAAU,oBACdH,IAAAC,cAAA,OAAKE,UAAU,oBAAoB0lE,EAAKrnB,oBAsB1Dq0B,GAAkBU,IAA6C,GAA1BA,GAAgBh0E,QAA0C,iBAA3Bg0E,GAAgB,GAAGppE,OACvFnK,IAAAC,cAAA,OAAKwM,MAAQomE,GAAkBE,EAAsB,CAAEnmD,QAAS,SAAY,CAAEA,QAAS,SACtF5sB,IAAAC,cAACisE,EACA,CACAC,iBAAkByH,GAClBxH,mBAAoByH,MAKI,GAA1BN,GAAgBh0E,QAA4C,YAA7Bg0E,GAAgB,GAAGQ,QAClD/zE,IAAAC,cAAA,OAAKwM,MAAQomE,GAAkBE,EAAsB,CAAEnmD,QAAS,SAAY,CAAEA,QAAS,SACtF5sB,IAAAC,cAACk0E,EAAiB,CACjBhI,iBAAkByH,GAClBhC,iBAAkBhQ,GAClBwK,mBAAoByH,MAKtB5J,IACAjqE,IAAAC,cAAA,OAAKE,UAAU,kCACdH,IAAAC,cAAA,UAAQ8M,KAAK,SAAS8+D,MAAM,qBAAqBp/D,MAAO,CAACsgB,QAAQ,gBAAgBhc,OAAQ,WACxF5F,QAASA,KACRwoE,GAA0B,IAC1BjB,GAAuB,GACvBxI,IAAgB,GAGhBoI,GAA4B,GAC5BY,IAA8B,GAC9BE,IAA8B,GAC9BE,IAAyB,GACzBN,IAAsB,KAGvBhzE,IAAAC,cAACmL,IAAK,CACLC,KAAMC,IAAWqe,UACjBxpB,UAAU,6BACT,IAAEI,EAAE,SAEPP,IAAAC,cAAA,MAAIE,UAAU,aACsB,kBAAlCuzE,GAAuBK,OACrBxzE,EAAE,wBACFA,EAAE,GAADvM,OAAI0/E,GAAuBK,WAMjC1B,GACAryE,IAAAC,cAAA,OAAKwM,MAAQomE,GAAkBE,EAAsB,CAAEnmD,QAAS,SAAY,CAAEA,QAAS,SACtF5sB,IAAAC,cAACisE,EACA,CACAC,iBAAkByH,GAClBxH,mBAAoByH,MAyEtBR,IACArzE,IAAAC,cAAA,OAAKwM,MAAQomE,GAAkBE,EAAsB,CAAEnmD,QAAS,SAAY,CAAEA,QAAS,SACtF5sB,IAAAC,cAACk0E,EAAiB,CACjBhI,iBAAkByH,GAClBhC,iBAAkBhQ,GAClBwK,mBAAoByH,MAWtBluE,IACA3F,IAAAC,cAAA,OACCwM,MAAO,CACNoc,UAAW,SACXC,UAAW,OACXpc,aAAc,SAGf1M,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,SAGT1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,W,MC5V/B6zE,MA9QiBx1E,IAC/B,IAAI,EAAE2B,GAAMC,cACZ,MAAM6zE,EAAiBr1E,YAAaC,GAAUA,EAAMC,SAAS8hB,cACvDszD,EAA2Bt1E,YAC/BC,GAAUA,EAAMC,SAAS+hB,YAE3B,IAAIpiB,EAAYC,cAChB,MAAOiwD,EAAiBC,GAAsB3vD,oBAAS,IAChDsoC,EAAcC,GAAmBvoC,mBAAS,IAC3Ck1E,EAAWrzE,iBAAO,MAQxB1B,eAAe6vD,IACd,KAaD7vD,iBACC,IAAIwI,QAAqBC,IAAU1R,IAClC1S,IAAOoJ,iCAGJ+a,EAAa/kB,IAAOC,mBACvB0kD,EAAgB5/B,EAAa/kB,IAAOG,gBAlBpC0lD,UACyB7gC,IAAU1R,IAAI1S,IAAO+H,6BAC7B3I,IAAOC,kBACvB2b,EAAUiiB,cAAgB,EAAM,IAEhCkuC,GAAmB,GAEnB,MAAO3mC,GACRxpB,EAAUiL,cAAoB,EAAOue,KAavC,MAAMnd,EACLlL,IAAAC,cAAA,OACCE,UAAU,QACVgL,QAASA,IAAMtM,EAAUiiB,cAAiBuzD,KAE1Cr0E,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,WAI3C,OACCH,IAAAC,cAACiN,IAAK,CACLxD,GAAG,kBACHyD,MAAM,EACNC,OAAQinE,EACRl0E,UAAU,0BACVkN,iBAAkB,kBAClBC,SAAU,SACVC,OAAQA,KAEP1O,EAAUiiB,cAAiBuzD,KAE5B7mE,WAAY,QAEZ,KAAExN,IAAAC,cAAA,OAAK4Q,IAAK0jE,GAKZv0E,IAAAC,cAACwN,IAAW,CAAClC,MAAOL,GACc3K,EAAJ,GAA5B+zE,EAAkC,UAAe,eAEnDt0E,IAAAC,cAACyN,IAAS,KACRqhD,GACA/uD,IAAAC,cAAA,OAAKE,UAAU,kDACdH,IAAAC,cAACuL,IAAU,CACVgqC,QAAM,EACN1pC,eAAgBvL,EAAE,MAClB0M,UAAWA,KACV+hD,GAAmB,KAGpBhvD,IAAAC,cAAA,QAAME,UAAU,2BACdI,EAAE,+BAGJP,IAAAC,cAAA,OAAKE,UAAU,gCACdH,IAAAC,cAAA,OAAKE,UAAU,kCACdH,IAAAC,cAAA,OAAKE,UAAU,SAASI,EAAE,6BAC1BP,IAAAC,cAAA,OAAKE,UAAU,+BACbwnC,GACAA,EAAapoC,OAAS,GACtB0Z,cAAI0uB,EAAc,CAACtpB,EAAMrJ,KACxB,MAAMq2B,EAGyB,IAFH,GAA1BhtB,EAAqB,eACnBA,EAAuB,iBACvBA,EAAqB,iBACE,GAA1BA,EAAqB,eAClB,MAC4B,GAA1BA,EAAqB,eACrBA,EAAuB,iBACvBA,EAAqB,gBACvBA,EAAqB,eACrB,IACJ,OACCre,IAAAC,cAAA,OAAKE,UAAU,gCACdH,IAAAC,cAAA,OAAKE,UAAU,qBACdH,IAAAC,cAAA,QAAME,UAAU,oBACfH,IAAAC,cAAA,QACCE,UAAU,kBACVsM,MAAO,CACN2gC,UACC/B,GAAc,GAAE,2BAAAr3C,OAGZq3C,EAAa,IAAO,IAAG,YAK/BrrC,IAAAC,cAAA,QAAME,UAAU,qBACfH,IAAAC,cAAA,QACCE,UAAU,kBACVsM,MAAO,CACN2gC,UACC/B,EAAa,GAAE,UAAAr3C,QAEX,KAAgB,4BAMxBgM,IAAAC,cAAA,OAAKE,UAAU,qBACbkrC,EAAWniC,QAAQ,GACpBlJ,IAAAC,cAAA,YAAM,OAIRD,IAAAC,cAAA,OAAKE,UAAU,gCACdH,IAAAC,cAAA,QAAME,UAAU,SAEdI,EAAE,2BAA2B,KAAG,KAElCP,IAAAC,cAAA,QAAME,UAAU,UACdwN,YACAiC,WAAWyO,EAAa,QACxB,GACA,IAGFre,IAAAC,cAAA,OAAKE,UAAU,QAAQke,EAAW,MAClCre,IAAAC,cAAA,OAAKE,UAAU,kBACbI,EAAE,YAAa,IAChBP,IAAAC,cAAA,SAC4B,GAA1Boe,EAAqB,eACnB1Q,YAAyB0Q,EAAuB,kBAChD1Q,YAAyB0Q,EAAqB,gBAAI,IAAI,KACtD1Q,YAAyB0Q,EAAqB,iBAC7C,IACJ9d,EAAE,SAAS,YAUrBP,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OAAKE,UAAU,SACdH,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,IACbjX,UAAU,iBACVyL,IAAI,UAGN5L,IAAAC,cAAA,WACCD,IAAAC,cAAA,KAAGE,UAAU,sCACXI,EAAE,8BAQVP,IAAAC,cAAA,OAAKE,UAAU,6BACdH,IAAAC,cAAA,OAAKE,UAAU,eACdH,IAAAC,cAAA,OAAKE,UAAU,+BACdH,IAAAC,cAAA,OACCE,UACC,SAAuC,GAA5Bm0E,EAAgC,SAAW,IAEvDnpE,QAASA,KACRtM,EAAUyiB,aAAc,MAGzBthB,IAAAC,cAAA,WAAMM,EAAE,YACRP,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWggD,WAAYnrD,UAAU,WAE/CH,IAAAC,cAAA,OACCE,UACC,SAAuC,GAA5Bm0E,EAAgC,SAAW,IAEvDnpE,QAASA,KACRkkD,MAGDrvD,IAAAC,cAAA,WAAMM,EAAE,eACRP,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWggD,WAAYnrD,UAAU,YAGnB,GAA5Bm0E,GAAiCt0E,IAAAC,cAAC6oE,EAAO,MACb,GAA5BwL,GAAiCt0E,IAAAC,cAACkyE,EAAiB,CAACC,SA5MrBoC,KAC/BD,EAASlrE,SACbkrE,EAASlrE,QAAQorE,0B,iCCyYLC,OAvYU91E,IACvB,MAAM,SAAEsJ,EAAQ,sBAAEysE,EAAqB,mBAAEC,EAAkB,oBAAEC,EAAmB,yBAAEC,GAA6Bl2E,EAC/G,IAAI6B,EAAWC,eACX,EAAEH,GAAMC,cACR3B,EAAYC,cACZwnB,EAAYC,cAChB,MAAO8iD,EAAWC,GAAgBjqE,mBAAS,IACpC01E,EAAcC,GAAmB31E,mBAAS,KAC1C41E,EAAcC,GAAmB71E,mBAAS,KAC1C81E,EAAYC,GAAiB/1E,mBAAS,KACtCqJ,EAAU2sE,GAAeh2E,mBAAS,KAClCi2E,EAAUC,GAAel2E,mBAAS,KAClCm2E,EAAoBC,GAAyBp2E,mBAAS,KACtDq2E,EAAsBC,GAA2Bt2E,mBAAS,KAC1Du2E,EAAuBC,GAA4Bx2E,mBAAS,KAC5D4jC,EAAgBC,GAAqB7jC,oBAAS,IAC9C4E,EAAiBC,GAAsB7E,mBAAS,KAChDy2E,EAAgBC,GAAqB12E,oBAAS,IAE9C22E,EAAkBC,GAAuB52E,oBAAS,IACnD,SAAE2Y,EAAQ,aAAEE,EAAY,OAAEE,EAAM,SAAEmmB,EAAQ,MAAEF,EAAK,QAAEgB,EAAO,QAAEC,GAChE9mB,eAEAR,SAAUk+D,GACVh+D,aAAci+D,GACd/9D,OAAQg+D,GACR73C,SAAU83C,GACVh4C,MAAOi4C,GACPj3C,QAASk3C,GACTj3C,QAASk3C,IACPh+D,cAEJlZ,oBAAU,KACJ4I,GACFojB,KACAzsB,EAAU4gB,aAAY6G,EAAuB,eAE7C7lB,EAASg2E,UAEV,CAACvuE,IAQJ1I,eAAe8rB,KACbzsB,EAAUY,gBACV,IACE,IAAIuI,QAAqBC,IAAU1R,IAAI,GAADvC,OACjCnQ,IAAOe,wBAAuB,oBAAAoP,OAAmBkU,IAGtD,IAAKF,EAAa/kB,IAAOC,kBACvB,MAAM8kB,EAAa/kB,IAAOE,kBAG5B6xF,EAAgBhtE,EAAa/kB,IAAOG,gBACpC2yF,GAAkB,GAClBR,EAAYvtE,EAAa/kB,IAAOG,eAAeszF,kBAuC/C,MAAO/R,GACP9lE,EACEiL,cAAoB,EAAO9B,EAAa/kB,IAAOE,oBAElD,QACC0b,EAAUiB,iBA6Ed,OACEE,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,OAAKE,UAAU,OAAOuJ,GAAG,qBACrBssE,GACAh2E,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKE,UAAU,wBACbH,IAAAC,cAAA,OAAKE,UAAU,0DACbH,IAAAC,cAAA,OAAKE,UAAU,cACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKwM,MAAO,CAAEmgB,QAAS,SACrB5sB,IAAAC,cAAA,UACE8M,KAAK,SACL5M,UAAU,eACVgL,QAASA,KACPwpE,GAAsB,GACtBE,GAAoB,GACpBC,GAAyB,KAG3B90E,IAAAC,cAAA,KAAGE,UAAU,sBAEfH,IAAAC,cAAA,MAAIE,UAAU,QAAQI,EAAE,yBAMlCP,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKE,UAAU,4DACbH,IAAAC,cAAA,OAAKE,UAAU,+BACbH,IAAAC,cAAA,OAAKE,UAAU,sBAAsBI,EAAE,aACvCP,IAAAC,cAAA,OAAKE,UAAU,uBACV21E,EACS91E,IAAAC,cAAC4N,IAAO,CACJC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRoB,OAAQ,UACRgtC,WAAY,SAItBi7B,EAAuB,WAKrC/0E,IAAAC,cAAA,WACED,IAAAC,cAAA,UAAQ8M,KAAK,SAAS5M,UAAU,uBAAuBgL,QAASA,KAC9D8qE,GAAoB,KAGnB11E,EAAE,kBAITP,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKE,UAAU,sBAAsBI,EAAE,eACvCP,IAAAC,cAAA,OAAKE,UAAU,uBACd21E,EACa91E,IAAAC,cAAC4N,IAAO,CACJC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRoB,OAAQ,UACRgtC,WAAY,SAItBi7B,EAA0B,cAKxC/0E,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKE,UAAU,sBAAsBI,EAAE,iBACvCP,IAAAC,cAAA,OAAKE,UAAU,uBACd21E,EACa91E,IAAAC,cAAC4N,IAAO,CACJC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRoB,OAAQ,UACRgtC,WAAY,SAItBi7B,EAA0B,eAM1C/0E,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,OAAKwM,MAAO,CAAEd,MAAO,SACnB3L,IAAAC,cAAA,OAAKE,UAAU,sBAAsBI,EAAE,WACvCP,IAAAC,cAAA,OAAKE,UAAU,uBACd21E,EACa91E,IAAAC,cAAC4N,IAAO,CACJC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRoB,OAAQ,UACRgtC,WAAY,SAIc,IAApCi7B,EAA+B,iBAC9BA,EAA+B,iBAC9B,SAYvBiB,GACCh2E,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKE,UAAU,wBACbH,IAAAC,cAAA,OAAKE,UAAU,0DACbH,IAAAC,cAAA,OAAKE,UAAU,cACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKwM,MAAO,CAAEmgB,QAAS,SACrB5sB,IAAAC,cAAA,UACE8M,KAAK,SACL5M,UAAU,eACVgL,QAASA,KACP8qE,GAAoB,KAGtBj2E,IAAAC,cAAA,KAAGE,UAAU,sBAEfH,IAAAC,cAAA,MAAIE,UAAU,QAAQI,EAAE,8BAMlCP,IAAAC,cAAA,WACED,IAAAC,cAAA,OAAKE,UAAU,4DACbH,IAAAC,cAAA,OAAKE,UAAU,+BACbH,IAAAC,cAAA,OAAKE,UAAU,sBAAsB40E,EAAuB,UAC5D/0E,IAAAC,cAAA,OAAKE,UAAU,uBACZI,EAAE,cAAc,MAAIw0E,EAA0B,eAIrD/0E,IAAAC,cAAA,QACE2Y,SAAUu9D,IA1NxB32E,iBACEX,EAAUY,gBACV,IAAIuI,QAAqBC,IAAUiM,KACjCrwB,IAAOuC,4BACP,mBACA8hB,EACA,aACAotE,EACA,eACAM,GAEE5tE,EAAa/kB,IAAOC,oBACtBooC,KACA2qD,GAAoB,IAEtBp3E,EACEiL,aACE9B,EAAa/kB,IAAOC,kBACpBqd,EAAEyH,EAAa/kB,IAAOE,qBAG1B0b,EAAUiB,mBAsMEK,UAAU,oBAEVH,IAAAC,cAAA,OAAKE,UAAU,UAAUI,EAAE,WAC3BP,IAAAC,cAACmuC,IAAK,CACJ1kC,GAAG,WACHZ,KAAK,WACL3I,UAAU,4BACV5B,MAAO+2E,EACPt8D,SAAW/B,IACTs+D,EAAYt+D,EAAEzgB,OAAO+H,QAEvB+vC,WAAS,IAEV8nC,GAAed,UACdt1E,IAAAC,cAAA,OAAKE,UAAU,oBACZI,EAAE61E,GAAed,SAASj8D,UAI/BrZ,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,UACEE,UAAU,sBACV4M,KAAK,SACLN,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE,yBC1BVo2E,OAzWU/3E,IACrB,IAAI,EAAE2B,GAAMC,YAAexD,IAAYC,UACxByD,cACC5B,cACAynB,cAChB,MAAM,SAAEvO,EAAQ,aAAEE,EAAY,OAAEE,EAAM,SAAEmmB,EAAQ,MAAEF,EAAK,QAAEgB,EAAO,QAAEC,GAC9D9mB,eAEGo+D,EAAcC,GAAmBx3E,mBAAS,KAC1Cy3E,EAAeC,GAAoB13E,mBAAS,KAC5C23E,EAAcC,GAAmB53E,mBAAS,KAE1C63E,EAAeC,GAAoB93E,mBAAS,IAC5C+3E,EAAcC,GAAmBh4E,oBAAS,IAG3C,WAAEsB,EAAU,WAAE22E,IADEt4E,YAAaC,GAAUA,EAAMC,SAASq4E,UACzBv4E,YAC9BC,GAAUA,EAAMC,SAASq4E,YAGvBC,EAAcC,GAAmBp4E,mBAAS,KAI1C2nB,EAAWC,GAAgB5nB,mBAChC8nB,MAASC,QAAQ,WAAWM,OAAO,gBAE9BL,EAASC,GAAcjoB,mBAC5B8nB,MAASI,MAAM,OAAOG,OAAO,gBAExBgwD,EAAcC,GAAmBt4E,mBAAS,KAC1Cu4E,EAAcC,GAAmBx4E,mBAAS,KAC1Cy4E,EAAeC,GAAoB14E,mBAASssB,KAAKD,QACjDssD,EAAkBC,GAAuB54E,oBAAS,IAClDmoB,EAAoBC,GAAyBpoB,mBAChD8nB,MAASC,QAAQ,WAAWM,OAAO,cACnCnnB,EAAE,MACF4mB,MAASI,MAAM,OAAOG,OAAO,gBAM1BwwD,EAAQC,GAAa94E,mBAAS,KAC9B+4E,EAAYC,GAAiBh5E,mBAAS,KACtCi5E,EAAWC,GAAgBl5E,mBAAS,KACpCm5E,GAAaC,IAAkBp5E,mBAAS,KACxCq5E,GAAaC,IAAkBt5E,mBAAS,KAExCu5E,GAAiBC,IAAsBx5E,mBAAS,KAChDy2E,GAAgBC,IAAqB12E,oBAAS,IAC9Cu1E,GAAoBD,IAAyBt1E,oBAAS,IACtD6I,GAAUi8B,IAAe9kC,mBAAS,KAClCy5E,GAAkBjE,IAAuBx1E,oBAAS,GACjCL,YAAaC,GAAUA,EAAMC,SAASiiB,eA2G9D3hB,eAAeywE,GAAiB8I,GAC5BhD,IAAkB,GAElB,MAAMiD,EAAa,IAAIjgC,gBACjBH,EAASogC,EAAWpgC,OAGtBnuC,OAAOwuE,eACPxuE,OAAOwuE,cAAcngC,QAEzBruC,OAAOwuE,cAAgBD,EAEvB,IAAIp4B,QAAsB34C,IAAU1R,IAChC1S,IAAOqI,uBACP,cACAi7B,IAAOH,GAAWI,QAAQ,OAAOM,OAAO,cAFxC7jC,qBAKAsjC,IAAOE,GAASD,QAAQ,OAAOM,OAAO,cACtC,YACE,CAAEkxB,WACRm9B,IAAkB,GAEdn1B,EAAc39D,IAAOC,oBACrBi1F,EAAUv3B,EAAc39D,IAAOG,eAAeolB,KAAK0vE,QACnDG,EAAcz3B,EAAc39D,IAAOG,eAAeolB,KAAK4vE,YACvDG,EAAa33B,EAAc39D,IAAOG,eAAeolB,KAAK8vE,WACtDG,GAAe73B,EAAc39D,IAAOG,eAAeolB,KAAKgwE,aACxDG,GAAe/3B,EAAc39D,IAAOG,eAAeolB,KAAK0wE,eAlIhE55E,oBAAU,MAuCVE,uBAOAA,iBACIq5E,GACIh1F,IAAOwB,iCACP,iCA0BJ0wF,IAAkB,GAClB,IAAIn1B,QAAsB34C,IAAU1R,IAChC1S,IAAOqI,uBACP,cACA86B,EAFAnjC,qBAKAwjC,EACA,aAEJ0uD,IAAkB,GAEdn1B,EAAc39D,IAAOC,oBAMrBi1F,EAAUv3B,EAAc39D,IAAOG,eAAeolB,KAAK0vE,QACnDG,EAAcz3B,EAAc39D,IAAOG,eAAeolB,KAAK4vE,YACvDG,EAAa33B,EAAc39D,IAAOG,eAAeolB,KAAK8vE,WACtDG,GAAe73B,EAAc39D,IAAOG,eAAeolB,KAAKgwE,aACxDG,GAAe/3B,EAAc39D,IAAOG,eAAeolB,KAAK0wE,eAzDtDC,GAvCN7tD,GACA8tD,MACD,IAEH95E,oBAAU,KACN,IAeI+5E,EAfS,CACT,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAGezvC,QAAQktC,GACvBwC,GAAO,IAAI3tD,MAAO6mB,cAEtBy9B,GADoB9oD,IAAO,IAAIwE,KAAK2tD,EAAMD,EAAO,IAAI3xD,OAAO,YAE7D,CAACovD,IAEJx3E,oBAAU,KAMN2wE,GAAiBjpD,IAClB,CAACA,EAAWK,IAoGf,MAAM+xD,GAAgB55E,UAClB,IAAI+5E,EAAU11F,IAAOyD,qCACrB,IAAIoxB,QAAazQ,IAAU1R,IAAIgjF,GAC/B,GAAI7gE,EAAKz1B,IAAOC,kBAAmB,CAC/B,IAAIs2F,EAAQ9gE,EAAKz1B,IAAOG,eAExByzF,EACI2C,EAAMC,OAAOxgE,IAAKygE,IACP,CAAEl7E,MAAOk7E,EAAG5wE,KAAMvK,MAAOm7E,EAAGL,UAG3C,IAAIM,EAAKH,EAAc,OAAEj6E,OAAS,EAClCw3E,EAAiByC,EAAc,OAAEG,GAAW,OAC5C1C,EAAgBuC,EAAc,OAAEG,GAAU,QAIrD,OACO35E,IAAAC,cAAA,OAAKE,UAAU,8BAA8BuJ,GAAG,cAC3CkrE,IACG50E,IAAAC,cAAA,WACID,IAAAC,cAACy0E,GAAe,CAACxsE,SAAUA,GAAUysE,sBAAuBA,GAAuBC,mBAAoBA,GAAoBC,oBAAqBA,MAIvJiE,IACG94E,IAAAC,cAAA,WACID,IAAAC,cAACqoB,IACG,CACAtB,UAAWA,EACXK,QAASA,EACTJ,aAAcA,EACdK,WAAYA,EACZiB,OAAQA,CAACR,EAAOS,KACZvB,EAAac,GACbT,EAAWkB,GACXynD,MAEJxnD,SAAS,EACTC,YAAalB,EAEbmB,aAnMQpqB,IACxBkpB,EAAsBlpB,MAsMVyB,IAAAC,cAAA,OAAKE,UAAU,0BACXH,IAAAC,cAAA,OAAKE,UAAU,cACXH,IAAAC,cAAA,OAAKE,UAAU,wBACXH,IAAAC,cAAA,OAAKE,UAAU,eAAeI,EAAE,aAEnCu1E,GACG91E,IAAAC,cAAC4N,IAAO,CACJC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRoB,OAAQ,UACRgtC,WAAY,SAIpB95C,IAAAC,cAAA,OAAKE,UAAU,yBAAyB+3E,IAIhDl4E,IAAAC,cAAA,OAAKE,UAAU,cACXH,IAAAC,cAAA,OAAKE,UAAU,wBACXH,IAAAC,cAAA,OAAKE,UAAU,eAAeI,EAAE,kBAEnCu1E,GACG91E,IAAAC,cAAC4N,IAAO,CACJC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRoB,OAAQ,UACRgtC,WAAY,SAIpB95C,IAAAC,cAAA,OAAKE,UAAU,yBAAyBi4E,KAIpDp4E,IAAAC,cAAA,OAAKE,UAAU,QACXH,IAAAC,cAAA,UAAKM,EAAE,eAGXP,IAAAC,cAAA,OAAKE,UAAU,0BACXH,IAAAC,cAAA,OAAKE,UAAU,cACXH,IAAAC,cAAA,OAAKE,UAAU,wBACXH,IAAAC,cAAA,OAAKE,UAAU,eAAeI,EAAE,eAEnCu1E,GACG91E,IAAAC,cAAC4N,IAAO,CACJC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRoB,OAAQ,UACRgtC,WAAY,SAIpB95C,IAAAC,cAAA,OAAKE,UAAU,yBAAyBm4E,IAIhDt4E,IAAAC,cAAA,OAAKE,UAAU,cACXH,IAAAC,cAAA,OAAKE,UAAU,wBACXH,IAAAC,cAAA,OAAKE,UAAU,eAAeI,EAAE,oBAEnCu1E,GACG91E,IAAAC,cAAC4N,IAAO,CACJC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRoB,OAAQ,UACRgtC,WAAY,SAIpB95C,IAAAC,cAAA,OAAKE,UAAU,yBAAyBq4E,KAIhDx4E,IAAAC,cAAA,OAAKE,UAAU,cACXH,IAAAC,cAAA,OAAKE,UAAU,wBACXH,IAAAC,cAAA,OAAKE,UAAU,eAAeI,EAAE,oBAEnCu1E,GACG91E,IAAAC,cAAC4N,IAAO,CACJC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRoB,OAAQ,UACRgtC,WAAY,SAIpB95C,IAAAC,cAAA,OAAKE,UAAU,yBAAyBu4E,S,mBCDzDkB,OA5VMh7E,IACjB,MAAM,yBAAEk2E,GAA6Bl2E,EACrC,IAAI,EAAE2B,GAAMC,YAAexD,IAAYC,UAEnC4B,GADW6B,cACC5B,eACAynB,cAChB,MAAM,SAAEvO,EAAQ,aAAEE,EAAY,OAAEE,EAAM,SAAEmmB,EAAQ,MAAEF,EAAK,QAAEgB,EAAO,QAAEC,GAC9D9mB,eAEGqhE,EAAmBC,GAAwBz6E,mBAAS,KACpD06E,EAAqBC,GAA0B36E,mBAAS,KAExDmnB,EAAmBC,GAAwBpnB,mBAAS,IAEpDy2E,EAAgBC,GAAqB12E,oBAAS,IAC9Cu1E,EAAoBD,GAAyBt1E,oBAAS,IACtD6I,EAAUi8B,GAAe9kC,mBAAS,KAClC46E,EAAkBpF,GAAuBx1E,oBAAS,IAClDunB,EAAaC,GAAkBxnB,oBAAS,IACxC66E,EAA4BC,GAAiC96E,mBAAS,KACtE47D,EAAemf,GAAoB/6E,mBAAS,KAC5CqnB,EAAoBC,GAAyBtnB,oBAAS,IACtDq8C,EAAWC,GAAgBt8C,mBAAS,KAEpCg7E,EAAyBC,GAA8Bj7E,mBAAS,GACjEk7E,EAAiB,CACnB,CACI1oD,KAAM,mBACN2oD,oBAAqB,GAEzB,CACI3oD,KAAM,uBACN2oD,oBAAqB,IAiD7Bh7E,eAAei7E,EAAsB7yD,EAAMC,GACvCsyD,EAA8B,IAC9Bx+B,EAAa,IACb90B,GAAe,GACf,IACI,IAAI6zD,EAAmD,IAA5BL,EAAgC,eAAiB,iBAExEtyD,EAAqB,KADzBH,EAAOA,GAAc,GACD,GAEhBrf,EAAS1kB,IAAOwB,iCAChB,6CAA+Cq1F,EAAuB,UAAY3yD,EAAQ,qBAEzFpe,YAAoBke,KACrBtf,GAAkBsf,GAEtB,IAAI7f,QAAqBC,IAAU1R,IAAIgS,GAEvC,GAAIP,EAAa/kB,IAAOC,kBAAmB,CACvCi3F,EAA8BnyE,EAAa/kB,IAAOG,eAAeH,IAAOG,gBAExE,IAAI4kC,EAAahgB,EAAa/kB,IAAOG,eAAe4kC,WAkB9BC,EAjBGC,KAAKC,KAAKH,EAAa,IAkBxDvB,EAAqB2B,GAAaH,QAf1BppB,EACI0hB,aACIvY,EAAa/kB,IAAOC,kBACpBqd,EAAEyH,EAAa/kB,IAAOE,qBAIpC,MAAOklC,GACLxpB,EAAUiL,cAAoB,EAAOue,IAM7C,IAAkCJ,EAJ9BpB,GAAe,GA/EnBvnB,oBAAU,MAyBVE,uBAIAA,iBACIu2E,GAAkB,GAElB,IAAI/tE,QAAqBC,IAAU1R,IAAI1S,IAAOyB,uCAE9C,GAAI0iB,EAAa/kB,IAAOC,kBAAmB,CACvC,IAAIy3F,EAAyB3yE,EAAa/kB,IAAOG,eAAeu3F,uBAC5DC,EAA2B5yE,EAAa/kB,IAAOG,eAAew3F,yBAElEd,EAAqBa,GACrBX,EAAuBY,GAG3B7E,GAAkB,GAhBZ8E,GAzBNvvD,IACD,IAEHhsB,oBAAU,UACyB8gB,GAA3Bi6D,GACAI,KAEL,CAACJ,IAEJ/6E,oBAAU,KACFonB,GACAi1B,EAAa,KAElB,CAACj1B,IAEJpnB,oBAAU,KACN,GAAiB,IAAbo8C,EAAiB,CACjB,IAAIo/B,EAAqBZ,EACrBa,EAA2BC,kBAAQF,EAAoB,CAAC,gBAAiBp/B,GAE7Ey+B,EAA8BY,KAEnC,CAACr/B,IAoFJ,OACI17C,IAAAC,cAAA,OAAKE,UAAU,8BAA8BuJ,GAAG,cAC3CkrE,GACG50E,IAAAC,cAAA,WACID,IAAAC,cAACy0E,GAAe,CAACxsE,SAAUA,EAAUysE,sBAAuBA,EAAuBC,mBAAoBA,EAAoBC,oBAAqBA,EAAqBC,yBAA0BA,KAGtMmF,GACGj6E,IAAAC,cAAA,WACID,IAAAC,cAAA,OAAKE,UAAU,0BACXH,IAAAC,cAAA,OAAKE,UAAU,cACXH,IAAAC,cAAA,OAAKE,UAAU,wBACXH,IAAAC,cAAA,OAAKE,UAAU,eAAeI,EAAE,4BAEnCu1E,EACG91E,IAAAC,cAAC4N,IAAO,CACJC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRoB,OAAQ,UACRgtC,WAAY,SAIpB95C,IAAAC,cAAA,OAAKE,UAAU,yBAAyB05E,IAIhD75E,IAAAC,cAAA,OAAKE,UAAU,cACXH,IAAAC,cAAA,OAAKE,UAAU,wBACXH,IAAAC,cAAA,OAAKE,UAAU,eAAeI,EAAE,gCAEnCu1E,EACG91E,IAAAC,cAAC4N,IAAO,CACJC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRoB,OAAQ,UACRgtC,WAAY,SAIpB95C,IAAAC,cAAA,OAAKE,UAAU,yBAAyB45E,KAIpD/5E,IAAAC,cAAA,OAAKE,UAAU,QACXH,IAAAC,cAAA,UAAKM,EAAE,sBAEXP,IAAAC,cAAA,OAAKE,UAAU,gCACVo6E,GACGA,EAAeh7E,QACf0Z,cAAIshE,EAAgB,CAACl8D,EAAMrJ,IAEnBhV,IAAAC,cAAA,UACIgV,IAAKD,EACL7U,UACIk6E,GAA2Bh8D,EAAKm8D,oBAC1B,SACA,GAEVrvE,QAASA,KACLmvE,EAA2Bj8D,EAAKm8D,qBAChC7zD,GAAsB,GArF9DnnB,iBACI+J,SAAS8tC,eAAe,eAAe94C,MAAQ,GAC/C67E,EAAiB,IAoFmBa,KAGJj7E,IAAAC,cAAA,OAEIwM,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE8d,EAAKwT,UAMJ,GAA3BwoD,GACGr6E,IAAAC,cAAA,OAAKE,UAAU,yBACXH,IAAAC,cAAA,WACID,IAAAC,cAAA,KAAGE,UAAU,sCACTH,IAAAC,cAACi7E,KAAK,CAACC,QAAQ,mCAK/Bn7E,IAAAC,cAAA,OAAKE,UAAU,mBACXH,IAAAC,cAAA,OAAKE,UAAU,wBACXH,IAAAC,cAAA,OAAKE,UAAU,eACXH,IAAAC,cAACmL,IAAK,CACFC,KAAMC,IAAWhB,OACjBnK,UAAU,wBAGlBH,IAAAC,cAAA,SACI8M,KAAK,OACLrD,GAAG,cACH2lC,YAAa9uC,EAAE,4BAEf8tC,QAAShF,mBAAUpyB,GA/H/BzX,WACZi7E,EAAsB,EAAGxjE,EAAEzgB,OAAO+H,OAClCooB,GAAsB,GACtByzD,EAAiBnjE,EAAEzgB,OAAO+H,QA4HuB68E,CAAQnkE,GAAI,SAIjDjX,IAAAC,cAAA,OAAKE,UAAU,0BACXH,IAAAC,cAAA,OAAKE,UAAU,sBACXH,IAAAC,cAAA,SAAOE,UAAU,mBACbH,IAAAC,cAAA,aACID,IAAAC,cAAA,UACID,IAAAC,cAAA,UAAKM,EAAE,aACPP,IAAAC,cAAA,UAAKM,EAAE,qBACPP,IAAAC,cAAA,UAAKM,EAAE,kBACPP,IAAAC,cAAA,MAAIE,UAAU,kBAAkBgL,QAhIjDkwE,KACf1/B,EAAa2/B,GACS,KAAdA,EACO,MAEU,QAAdA,EAAsB,OAAS,SA4HNt7E,IAAAC,cAAA,QAAME,UAAU,QACXI,EAAE,YAEPP,IAAAC,cAAA,QAAME,UAAU,UACZH,IAAAC,cAAA,QAAME,UAAW,SAAyB,KAAdu7C,GAA6C,QAAdA,EAAZ,UAA8C,KAAK,IAAE,KACpG17C,IAAAC,cAAA,QAAME,UAAW,SAAyB,KAAdu7C,GAA6C,SAAdA,EAAZ,UAA+C,KAAK,IAAE,SAKrH17C,IAAAC,cAAA,aACKi6E,GACwC,GAArCA,EAA2B36E,OACvB26E,EAA2BjhE,IAAI,CAACzQ,EAAMwM,IAE9BhV,IAAAC,cAAA,MACIkL,QAASA,KACLg5B,EAAY37B,EAAKN,UACjBysE,GAAsB,GACtBE,GAAoB,GACpBC,GAAyB,IAE7BroE,MAAO,CAAEsE,OAAQ,WACjBkE,IAAKD,GAELhV,IAAAC,cAAA,MAAIE,UAAU,2BACTqI,EAAKN,UAEVlI,IAAAC,cAAA,UACKuI,EAAKiJ,aAEVzR,IAAAC,cAAA,UACKuI,EAAK+yE,aAEVv7E,IAAAC,cAAA,UACK0N,YAAyBiC,WAAWpH,EAAKgzE,cAAe,MAM7E50D,EACE5mB,IAAAC,cAAA,UACED,IAAAC,cAAA,MAAI2oB,QAAS,GACX5oB,IAAAC,cAAA,OACEwM,MAAO,CACLoc,UAAW,SACXC,UAAW,OACXpc,aAAc,SAGhB1M,IAAAC,cAAC4N,IAAO,CACNC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,OACPD,OAAQ,SAGV1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,WAM9CP,IAAAC,cAAA,UACID,IAAAC,cAAA,MAAI2oB,QAAS,GACTroB,EAAE,uBASjCimB,EAAoB,GAAKxmB,IAAAC,cAAC8oB,KAAa,CAACC,WAAYxC,EAAmByC,oBAAqBwxD,EAAuBxf,cAAeA,EAAev0C,mBAAoBA,EAAoBwC,eAAgBvC,OChM/M80D,OAnIG78E,IAChB,IAAI,EAAE2B,GAAMC,YAAexD,IAAYC,UAEnC4B,GADW6B,cACC5B,eACAynB,cAChB,MAAM,SAAEvO,EAAQ,aAAEE,EAAY,OAAEE,EAAM,SAAEmmB,EAAQ,MAAEF,EAAK,QAAEgB,EAAO,QAAEC,GAChE9mB,eAEKo+D,EAAcC,GAAmBx3E,mBAAS,KAC1Cy3E,EAAeC,GAAoB13E,mBAAS,KAC5C23E,EAAcC,GAAmB53E,mBAAS,KAE1C63E,EAAeC,GAAoB93E,mBAAS,IAC5C+3E,EAAcC,GAAmBh4E,oBAAS,IAG3C,WAAEsB,EAAU,WAAE22E,IADEt4E,YAAaC,GAAUA,EAAMC,SAASq4E,UACzBv4E,YAChCC,GAAUA,EAAMC,SAASq4E,YAGrBC,EAAcC,GAAmBp4E,mBAAS,KAI1C2nB,EAAWC,GAAgB5nB,mBAChC8nB,MAASC,QAAQ,QAAQM,OAAO,gBAE3BL,EAASC,GAAcjoB,mBAC5B8nB,MAASI,MAAM,QAAQG,OAAO,gBAEzBgwD,EAAcC,GAAmBt4E,mBAAS,KAC1Cu4E,EAAcC,GAAmBx4E,mBAAS,KAC1Cy4E,EAAeC,GAAoB14E,mBAASssB,KAAKD,QACjDssD,EAAkBC,GAAuB54E,oBAAS,IAClDmoB,EAAoBC,GAAyBpoB,mBAClD8nB,MAASC,QAAQ,QAAQM,OAAO,cAChCnnB,EAAE,MACF4mB,MAASI,MAAM,QAAQG,OAAO,eAM1Bg0D,EAAkB18E,YAAaC,GAAUA,EAAMC,SAASiiB,gBACvDw6D,GAA0BC,IAC3Bv8E,mBAAS,IACRw8E,GAAuB/G,IAA4Bz1E,oBAAS,GAC7Dk7E,GAAiB,CACrB,CACI1oD,KAAM,mBACNiqD,cAAe,GAEnB,CACIjqD,KAAM,iBACNiqD,cAAe,IAIrBx8E,oBAAU,OAMP,CAACqB,EAAY22E,IAEhB,MAAMpsE,GACJlL,IAAAC,cAAA,OACEE,UAAU,QACVgL,QAASA,IAAMtM,EAAUqiB,cAAkBw6D,KAE3C17E,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,WAI7C,OACIH,IAAAC,cAACiN,IAAK,CACNxD,GAAG,kBACHyD,MAAM,EACNhN,UAAU,0BACVkN,iBAAkB,kBAClBC,SAAU,SACVF,OAAQsuE,EACRnuE,OAAQA,KAEN1O,EAAUqiB,cAAkBw6D,KAE9BluE,WAAY,QAGVxN,IAAAC,cAACwN,IAAW,CAAClC,MAAOL,IACjB3K,EAAE,aAELP,IAAAC,cAACyN,IAAS,CAAChE,GAAG,YAAYvJ,UAAU,4BAC/B07E,IACG77E,IAAAC,cAAA,OAAKE,UAAU,yBAEPo6E,IAAkBA,GAAeh7E,QACjC0Z,cAAIshE,GAAgB,CAACl8D,EAAMrJ,IAEnBhV,IAAAC,cAAA,UACIgV,IAAKD,EACL7U,UACIw7E,IAA4Bt9D,EAAKy9D,cAC3B,SACA,GAEV3wE,QAASA,KACLywE,GAA4Bv9D,EAAKy9D,iBAGrC97E,IAAAC,cAAA,OAEIwM,MAAO,CAAEsE,OAAQ,YAEhBxQ,EAAE8d,EAAKwT,UAQP,GAA5B8pD,IAAiC37E,IAAAC,cAAC87E,GAAe,MACrB,GAA5BJ,IAAiC37E,IAAAC,cAAC25E,GAAW,CAAC9E,yBAA0BA,QCpGtEkH,OArDQp9E,IACnB,IAAI,EAAE2B,GAAMC,cACZ,MAAMk7E,EAAkB18E,YACnBC,GAAUA,EAAMC,SAASiiB,eAG9B,IAAItiB,EAAYC,cAMhB,OAJAQ,oBAAU,OACL,CAACo8E,IAIF17E,IAAAC,cAACiN,IAAK,CACNxD,GAAG,2BACHyD,MAAM,EACNC,OAAQsuE,EACRpuE,SAAU,SACVC,OAAQA,KAEJ1O,EAAUqiB,cAAkBw6D,MAKhC17E,IAAAC,cAACyN,IAAS,KACN1N,IAAAC,cAAA,OAAKE,UAAU,uDACXH,IAAAC,cAAA,OAAKE,UAAU,iBACXH,IAAAC,cAAA,OAAKE,UAAU,SACXH,IAAAC,cAAA,WACKM,EAAE,eAGXP,IAAAC,cAAA,OAAKE,UAAU,UACXH,IAAAC,cAAA,OACIE,UAAU,wBACVgL,QAASA,KAELtM,EAAUqiB,cAAkBw6D,MAIhC17E,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,aAIrDH,IAAAC,cAACw7E,GAAQ,U,UCyGVQ,OAxIar9E,IAC3B,IAAI,EAAE2B,GAAMC,cACLC,EAAWC,cAClB,MAAMw7E,EAAuBl9E,YAC3BC,GAAUA,EAAMC,SAASmiB,oBAErB1gB,EAAa3B,YAAaC,GAAUA,EAAMC,SAAS0B,QACzD,IAAI/B,EAAYC,cAChB,MAAO6mD,EAAaC,GAAkBvmD,mBAAS,KACxC6lD,EAAeC,GAAoB9lD,oBAAS,GAGnDC,oBAAU,KACLqB,EAAyB,cAC5Bw7E,EAAUx7E,EAAyB,eAElC,IAEHrB,oBAAU,KACLqB,EAAyB,cAC5Bw7E,EAAUx7E,EAAyB,eAElC,CAACA,EAAyB,eAIpByW,EAAQ,KAIRA,EAAQ,KAIRA,EAAQ,KAIRA,EAAQ,KAKjB5X,eAAe28E,EAAUj1C,GAExBie,GAAiB,GACjB,IAAIn9C,QAAqBC,IAAU1R,IAClC1S,IAAOiC,iCAAmC,SAAWohD,GAElDl/B,EAAa/kB,IAAOC,kBACvB0iE,EAAen7C,OAAOL,SAASmG,OAxCD,kBAwCiC22B,GAE/DroC,EACC0hB,aAAY,CACXxT,KAAM1S,IAAWM,OACjBqS,QAASzM,EAAEyH,EAAa/kB,IAAOE,mBAC/B8pB,UAAWA,IAAMxM,EAAS+L,QAAQnW,IAAOpC,cAK5CkxD,GAAiB,GAGlB,MAAMi3B,EAAcC,kBAAQ,IACtB1yE,YAAoBg8C,GAkBjB,KAhBN3lD,IAAAC,cAACq8E,sBAAkB,CAClBne,OAAQ,CACPoe,UAAW,SACX1sE,MAAO,SACP2sE,SAAS,EACSC,UAAW,GAC7B7zC,SAAU,KACV8zC,SAAU,CAAC,WAAY,UAAW,YAClC3vD,QAAS,GACT4vD,OAAQ,EACR3uE,KAAM,GACNja,IAAK4xD,KAOP,CAACA,IAEEz6C,EACLlL,IAAAC,cAAA,OACEE,UAAU,QACVgL,QAASA,KACVtM,EAAUuiB,cAAuB86D,MAGhCl8E,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,WAI5C,OACCH,IAAAC,cAACiN,IAAK,CACLxD,GAAG,kBACHyD,MAAM,EACNC,OAAQ8uE,EACR/7E,UAAU,+CACVkN,iBAAkB,kBAClBC,SAAU,SACVC,OAAQA,KACP1O,EAAUuiB,cAAuB86D,MAKlCl8E,IAAAC,cAACwN,IAAW,CAAClC,MAAOL,GACnBlL,IAAAC,cAAA,WAAMM,EAAE,oBAETP,IAAAC,cAACyN,IAAS,KACD1N,IAAAC,cAAA,OAAKE,UAAU,kCACpBi8E,GAEHp8E,IAAAC,cAAA,OAAKE,UAAU,yBACdH,IAAAC,cAAA,UACCE,UAAU,sBACV4M,KAAK,SACL5B,QAASA,KAERtM,EAAUuiB,cAAuB86D,MAGjC37E,EAAE,c,+BCquCMq8E,OA52CKh+E,IAClB,IAAI,EAAE2B,GAAMC,cACZ,MAAMqjB,EAAgC7kB,YAAaC,GAAUA,EAAMC,SAAS2kB,+BAKtErC,GAJiBxiB,YAAaC,GAAUA,EAAMC,SAAS8hB,cAC5BhiB,YAC9BC,GAAUA,EAAMC,SAAS+hB,YAETjiB,YAAaC,GAAQA,EAAMC,SAASsiB,aACvD,IAAI3iB,EAAYC,cACZ+9E,EAAK,IAAI7+C,KACb,MAAM,SACJhmB,EAAQ,aACRE,EAAY,OACZE,EAAM,YACN+mB,EAAW,SACX7mB,EAAQ,SACRimB,EAAQ,UACRa,EAAS,MACTf,EAAK,QACLgB,EAAO,QACPC,EAAO,eACPC,GACE/mB,YAAQ,CACVskE,KAAM,YAEA5kE,aAAcsnB,GAAgChnB,eAE/CinB,EAAgBC,GAAqBrgC,oBAAS,IAC9CsgC,EAAmBC,GAAwBvgC,oBAAS,IACpD09E,EAAiBC,GAAsB39E,oBAAS,IAChD49E,EAAqBC,GAA0B79E,oBAAS,IAExD89E,EAAmBC,GAAwB/9E,oBAAS,IACpD0jC,EAAgBC,GAAqB3jC,oBAAS,IAC9CmlC,EAAgBC,GAAqBplC,oBAAS,IAC9C0gC,EAAgBC,GAAqB3gC,mBAC1C5L,aAAaC,QAAQC,IAAWC,YAAc,OAEzCypF,EAAcC,GAAmBj+E,mBAAS,KAC1Ck+E,GAAyBC,IAA8Bn+E,oBAAS,IAChE4kC,GAAcC,IAAmB7kC,oBAAS,IAC1CqiC,GAAYC,IAAiBtiC,oBAAS,IACtCoT,GAAoBC,IAAyBrT,mBAAS,IACtDkkC,GAAgBC,IAAqBnkC,oBAAS,IAC9CkT,GAAiBC,IAAsBnT,mBAAS,IAChD6I,GAAUi8B,IAAe9kC,mBAAS,KAClCoS,GAAasvB,IAAkB1hC,mBAAS,KACxC0kC,GAAcC,IAAmB3kC,mBAAS,KAC1Co+E,GAAYC,IAAiBr+E,oBAAS,IACtC8jC,GAAkBC,IAAuB/jC,oBAAS,IAClDs+E,GAASC,IAAcv+E,mBAAS,IAChCw+E,GAAiBC,IAAsBz+E,mBAAS,IAChDmiC,GAASC,IAAcpiC,oBAAS,IAChCyT,GAAaC,IAAkB1T,oBAAS,IACxCwkC,GAAkBC,IAAuBzkC,oBAAS,IAClDokC,GAAmBC,IAAwBrkC,oBAAS,IACpDqlC,GAAcC,IAAmBtlC,oBAAS,IAC1C0+E,GAAwBC,IAA6B3+E,oBAAS,IAE9D2iC,GAAgBC,IAAqB5iC,oBAAS,IAC9C4+E,GAAYC,IAAiB7+E,oBAAS,IAEtCsT,GAAUC,IAAevT,mBAASwT,WAAW,OAAU,OACvDuyB,GAAaC,IAAkBhmC,mBAAS,OAIxC8+E,GAASC,IAAc/+E,mBAAS,IACjCN,GAAeC,YAAaC,GAAUA,EAAMC,SAASH,eACpDI,GAAMC,IAAWC,sBACjB+G,GAAWC,IAAgBhH,sBAC3B8mC,GAAaC,IAAkB/mC,qBAEhC6T,GAAShS,iBAAO,OACfohC,GAAQC,IAAaljC,mBAAS,KAC9BmjC,GAAYC,IAAiBpjC,mBAAS,KACtC8T,GAAkBC,IAAuB/T,oBAAS,IAClDgU,GAAeC,IAAoBjU,sBAInCkU,GAAYC,IAAiBnU,oBAAS,GAGvCqY,GAAoB1Y,YAAaC,GAAUA,EAAMC,SAASyY,cAC1DsM,GAAsBjlB,YAAaC,GAAUA,EAAMC,SAAS+kB,sBAC3Do6D,GAAaC,IAAkBj/E,mBAAS,OACxCkhC,GAAkBC,IAAuBnhC,oBAAS,IAClDghC,GAAgBC,IAAqBjhC,mBAAS,KAC9CuY,GAAqBC,IAA0BxY,mBAAS,IAE/DC,oBAAU,KACHqK,YAAoB00E,KACrBxmE,GAAuBwmE,GAAY9/E,QAExC,CAAC8/E,KAEF/+E,oBAAU,KACHqK,YAAoB+N,KACrB4mE,GAAe5mE,GAAkB,KAGtC,CAACA,KACF,MAAMisB,GAAc,CAClBC,OAAQ,IAGR5rB,SAAUumE,GACVrmE,aAAcsmE,GACdpmE,OAAQqmE,GACRlgD,SAAUmgD,IACRlmE,eAGFR,SAAU2mE,GACVzmE,aAAc0mE,GACdxmE,OAAQymE,GACRxgD,MAAOygD,GACPvgD,SAAUwgD,GACVtgD,WAAYugD,IACVxmE,eAGFR,SAAUkmB,GACVhmB,aAAcimB,GACd/lB,OAAQgmB,GACRC,MAAOC,GACPC,SAAUC,GACVC,WAAYC,IACVlmB,cAGJlZ,oBAAU,KACR4+B,GAAkB,YACjB,CAACA,KAEJ,MACElmB,SAAU2mB,GACVzmB,aAAc0mB,GACdxmB,OAAQymB,GACRR,MAAOS,GACPP,SAAUQ,GACVN,WAAYO,IACVxmB,cAEJlZ,oBAAU,OAER,IAEHA,oBAAU,KACLP,GAAaQ,OAAS,GAqX1BC,iBACAX,EAAUY,gBACV,MAAMN,EAAOO,eAAKX,GAAc,CAAEY,aAAc,SAC5CR,GACHC,GAAQD,EAAKS,WAAWT,EAAKU,cAG5B,MAAM8H,EAAQjI,eAAKX,GAAc,CAAEY,aAAc,UAC/CgI,GACHtB,GAAasB,EAAM/H,WAAW+H,EAAM9H,cAGnC,MAAMsmC,EAAczmC,eAAKX,GAAc,CAAEY,aAAc,gBACrDwmC,GACHC,GAAeD,EAAYvmC,WAAWumC,EAAYtmC,cAEnDhB,EAAUiB,gBApYTC,IAEC,CAAChB,KAEHO,oBAAU,KACJiT,GAAkB,GACpB8yB,GACExyB,WAAW,KAETL,GADiBD,GAAkB,IA9FpB,OAsGpB,CAACA,KAEJjT,oBAAU,KACJmT,GAAqB,GACvBG,GACEC,WAAW,KAETH,GADiBD,GAAqB,IA5GvB,OAiHpB,CAACA,KAEJnT,oBAAU,KACHm+E,KACHzpE,aAAaoxB,IACbpxB,aAAarB,MAEd,CAAC8qE,KA6PJj+E,eAAe6V,GAAWJ,EAAKD,GAO/B,IAAIE,EAAS7B,GACT8B,EAAYF,EAAIG,MAAM,IACd,WAARH,GAA4B,WAARA,GACvBC,EAASD,EACT3B,GAAiB4B,GACQ,IAArBC,EAAU5V,SAEb+T,GAAiB,IACjBF,IAAoB,GACpBI,IAAc,SAhIhBhU,eAA+BupC,GAG7B,GADApE,IAAgB,GACU,GAAtBhB,GAAYC,OAAa,CAC3B,IAAI6L,EAAW,CACbC,QAAS3G,EACT7gC,SAAUA,IAERynC,EAAWx7B,YAAwBs7B,GACnCG,QAAgB3nC,IAAUiM,KAC5BrwB,IAAOW,+BACPmrD,GAEEC,EAAQ3sD,IAAOC,mBACjBk7F,GAAWr1C,GACXvF,IAAkB,GAClBM,IAAoB,GAGpBlK,QAAQC,IAAI,SAAU3mB,KAEtBrU,EACE0hB,aAAY,CACVvU,QAAQ,EACRP,WACEzL,IAAAC,cAAA,OACEE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,QACPC,MAAM,QACNC,IAAI,gBAGRoB,QAASzM,EAAEqvC,EAAQ3sD,IAAOE,2BAI3B,GAA0B,GAAtBwgD,GAAYC,OAAa,CAClC,IAAI6L,EAAW,CACb7G,SAAU,KACV1gC,SAAUA,GACV6E,KAAM42B,GAAYC,OAClBnuB,MAAO,iBAELk6B,EAAWx7B,YAAwBs7B,GAGvC,IAAIznC,QAAqBC,IAAUiM,KACjCrwB,IAAOkK,kBACP4hD,GAGE3nC,EAAa/kB,IAAOC,mBACtBghD,IAAgB,GAChBnD,GAAe/4B,EAAaQ,MAC5Bw7B,GACEh8B,EAAaQ,KAAKgE,QAChBxE,EAAaQ,KAAK2mC,OAAO,EAAGnnC,EAAaQ,KAAKjJ,OAAS,GACvDyI,EAAaQ,KACV2mC,OAAO,EAAGnnC,EAAaQ,KAAKjJ,OAAS,GACrCiN,QAAQ,KAAM,OAGrBg3B,IAAkB,GAClBJ,IAAoB,GACpBw6C,GAAWD,GAAU,GACrBh6C,GAAYC,OAASD,GAAYC,OAAS,EAC1CjC,IAAc,GACd3tB,aAAarB,IACbD,GA3UmB,IA4UnB+uB,IAAW,GACX1uB,IAAe,GACfP,GAAmB,GACnBA,GA/UmB,IAgVnBwB,aAAaoxB,IAEbvyB,WAAW,KACT8uB,IAAc,GACduC,IAAgB,GAChBnxB,IAAe,IACd4C,KAGHzC,GAAO7J,QAAQoL,SAEf5V,EACE0hB,aAAY,CACVvU,QAAQ,EACRP,WACEzL,IAAAC,cAAA,OACEE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,QACPC,MAAM,QACNC,IAAI,gBAGRoB,QAASzM,EAAEyH,EAAa/kB,IAAOE,sBAYvCwhD,IAAgB,GAqBVs6C,CAAgB/pE,GAEtB1B,IAAc,GACdJ,IAAoB,MAGrBF,GAAgB,QAAEuB,QAClBnB,GAAiB,KA+ElB,SAASo7B,GAASz3B,GAEhB,IAAI1Y,EAAQ0Y,EAAEzgB,OAAO+H,MAGrB,IAJW,aAIJma,KAAKna,GASV,OAAO,EAPHA,EAAMgB,OAAS,KACjBhB,EAAQA,EAAMoa,MAAM,EAAG,KAIzB2nB,GAAkB/hC,GAOtB,OACEyB,IAAAC,cAAA,WACED,IAAAC,cAACiN,IAAK,CACJxD,GAAG,0BACHyD,MAAM,EACNE,iBAAkB,0BAClBD,OAAQoU,EACRjU,OAAQA,KACN1O,EAAU0iB,cAAc,KAG1BjU,SAAU,SACVigC,UAAQ,EACR//B,WAAY,QAEZxN,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKE,UAAU,sBACXH,IAAAC,cAAA,OAAKE,UAAU,WACbH,IAAAC,cAAA,OACEG,IAAKjB,GACLgB,UAAU,iBACVyL,IAAI,UAGV5L,IAAAC,cAAA,OACEE,UAAU,iBACVgL,QAASA,KAEPtM,EAAU0iB,cAAeC,IAEzBwhB,GAAkB,KAGpBhjC,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,YAG7CH,IAAAC,cAAA,OAAKE,UAAU,oBACbH,IAAAC,cAACi/E,KAAK,CACJ/+E,UAAU,aACV0P,MAAM,OACNzC,OAAQ+vE,GAEP58E,EAAE,GAADvM,OAAIqpF,IACNr9E,IAAAC,cAAA,KAAGE,UAAU,+BAEfH,IAAAC,cAAA,OAAKE,UAAU,QAIbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OACEG,IAAK+lC,GACLhmC,UAAU,iBACVyL,IAAI,qCAIV5L,IAAAC,cAAA,OAAKE,UAAU,UACX4iC,GACA/iC,IAAAC,cAAA,QAAM2Y,SAAU4lE,GA1aRh/E,MAAOgJ,EAAMyO,KAEnCwtB,GAAkB,GAClB7K,QAAQC,IAAIrxB,GACTyb,KACHzb,EAAKN,UAAmC,IAAvB0P,GAA4BF,GAAkB,GAAGnZ,MAAQqZ,IAAuByoB,IAG7F73B,EAAK22E,iBACPtC,EAAGzmE,IAAI,eAAgB,CACrBgpE,aAAc52E,EAAKN,SACnBm3E,aAAc72E,EAAKL,SACnBm3E,aAAc92E,EAAK22E,mBAGrBtC,EAAGzmE,IAAI,eAAgB,CACrBgpE,aAAc,OACdC,aAAc,OACdC,cAAc,IAGlB,IAAIC,QAAiB1gF,EACnB27C,YACEhyC,EAAKN,SACLM,EAAKL,SACL43B,EACAv3B,EAAKud,cACLlC,KAIE9W,KAAMyyE,EAAS,QAAEnmE,GAAYkmE,EAGvB/2E,EAAKN,SAGA,gBAAbs3E,GACFpC,GAAqB,GAErBv+E,EAAU0iB,cAAc,MAExB67D,GAAqB,GACrBE,EAAgBjkE,GAEhBxG,WAAW,KACTuqE,GAAqB,IACpB,MAGL34C,GAAkB,MAyXFzkC,IAAAC,cAAA,OAAKE,UAAU,eACX8jB,IAAuBjkB,IAAAC,cAAA,OAAKE,UAAU,sBACtCH,IAAAC,cAAA,aAAQM,EAAE,mBACVP,IAAAC,cAAA,WACED,IAAAC,cAACmuC,IAAK,CACJ1kC,GAAG,gBACHvJ,UAAU,uBACV2I,KAAK,WACL+H,IAAK0tE,GAAc,CAAExlE,UAAU,IAC/Bu1B,WAAS,EACvBn1B,aAAa,MACCf,OAAQqmE,GACRpvC,YAAa9uC,EAAE,kBACfqzB,aApHL0b,IACnBA,EAAM51B,kBA8HkBF,UAAYvC,IACV,MAAMhC,EAAMgC,EAAEhC,IAId,IAAK,WAAWyD,KAAKzD,KAHD,CAAC,YAAa,YAAa,aAAc,SAAU,OAG7BwE,SAASxE,GACjD,GAAI,QAAQyD,KAAKzD,GAAM,CACrBgC,EAAEyC,iBACF,MAAMqO,EAAQ9Q,EAAEzgB,OAAO+3C,eACjB/lB,EAAMvR,EAAEzgB,OAAOg4C,aAGrBv3B,EAAEzgB,OAAO+H,MAAQ0Y,EAAEzgB,OAAO+H,MAAMoa,MAAM,EAAGoP,GAAS9S,EAAI8W,cAAgB9U,EAAEzgB,OAAO+H,MAAMoa,MAAM6P,GAE3FvR,EAAEzgB,OAAOi4C,kBAAkB1mB,EAAQ,EAAGA,EAAQ,QAG9C9Q,EAAEyC,sBAObuK,IAAuBjkB,IAAAC,cAAA,OAAKE,UAAU,sBACvCH,IAAAC,cAAA,aAAQM,EAAE,kBACRP,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,UACE+Y,SAAW/B,IACTqnE,GAAe5mE,GAAkBT,EAAEzgB,OAAO+H,UAG3CmZ,GAAkBuB,IAAI,CAACC,EAAQlE,IAE5BhV,IAAAC,cAAA,UACEgV,IAAKD,EACL7U,UAAW,iBAAmB6U,EAAQ,GACtCzW,MAAOyW,GAENkE,EAAO1a,UAMlBwB,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,SACE6I,KAAK,gBACL3I,UAAU,uBACVgZ,aAAa,MACbxE,UAAU,UACV9D,IAAK0tE,GAAc,CACjBxlE,SAAU,CACRxa,OAAO,EACP8a,QAAS9Y,EAAE,yBAEb6Y,UAAW,CACT7a,MAAsB,MAAf8/E,GAAsBA,GAAYhrD,IAAM,EAC/Cha,QAAS9Y,EAAE,iBAAkB,CAAEhB,OAAuB,MAAf8+E,GAAsBA,GAAYhrD,IAAM,KAEjF/Z,UAAW,CACT/a,MAAsB,MAAf8/E,GAAsBA,GAAY/qD,IAAM,GAC/Cja,QAAS9Y,EAAE,iBAAkB,CAAEhB,OAAuB,MAAf8+E,GAAsBA,GAAY/qD,IAAM,MAEjF/Z,QAAS,CACPhb,MAAO,YACP8a,QACE9Y,EAAE,iBAAkB,CAAEhB,OAAuB,MAAf8+E,GAAsBA,GAAYhrD,IAAM,IACtE,IACA9yB,EAAE,OACF,IACAA,EAAE,mBAGR6X,OAAQA,EACRoB,UAAYvC,IACV,MAAMhC,EAAMgC,EAAEhC,IAUX,QAAQyD,KAAKzD,IATI,CAClB,YACA,YACA,aACA,SACA,OAKawE,SAASxE,IAEtBgC,EAAEyC,iBAKsB,IADPzC,EAAEzgB,OAAO+H,MACbgB,QAAwB,MAAR0V,GAC7BgC,EAAEyC,kBAGNV,SAAW/B,IACT,IAAI0C,EAAW1C,EAAEzgB,OAAO+H,MAGxBob,EAAWA,EAASnN,QAAQ,UAAW,IAGvCmN,EAAWA,EAASnN,QAAQ,MAAO,IAEnCkyE,GAAc,gBAAiB/kE,EAAU,CAAE8lE,gBAAgB,IAG3D/wC,GAASz3B,GAGTA,EAAEzgB,OAAO+H,MAAQob,KAKA,GAApB4mB,GACCvgC,IAAAC,cAAA,OAAKE,UAAU,4CACbH,IAAAC,cAAA,OAAKE,UAAU,4CACZI,EAAE,0BAGL6X,EAAOwB,cACT5Z,IAAAC,cAAA,OAAKE,UAAU,4CACbH,IAAAC,cAAA,OAAKE,UAAU,4CACZI,EAAE6X,EAAOwB,cAAcP,WAI5B,MAKRrZ,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAAA,aAAQM,EAAE,mBACVP,IAAAC,cAAA,OAAKE,UAAU,qBACbH,IAAAC,cAACmuC,IAAK,CACJ1kC,GAAG,gBACHvJ,UAAU,uBACV2I,KAAK,WACL+H,IAAK0tE,GAAc,CAAExlE,UAAU,IAC/BhM,KAAM4yB,EAAoB,WAAa,OACvCvnB,OAAQqmE,GACRpvC,YAAa9uC,EAAE,oBAEjBP,IAAAC,cAACmL,IAAK,CACJC,KACEs0B,EACIr0B,IAAWqjC,WACXrjC,IAAWsjC,IAEjBzuC,UAAU,uBACVsM,MAAO,CAAEoiC,IAAK,QACd1jC,QAASA,IACPy0B,GAAsBD,OAK9B3/B,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,SACE8M,KAAK,WACLjE,KAAK,gBACL+H,IAAK0tE,KACLnmE,OAAQqmE,KAEVz+E,IAAAC,cAAA,QAAME,UAAU,QAAQI,EAAE,kBAG9BP,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,UACEE,UAAU,sBACVkM,SAAUm4B,GAETA,EACCxkC,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAIhB3N,EAAE,WAIRP,IAAAC,cAAA,WACED,IAAAC,cAAA,UACEE,UAAU,qBACVgL,QAASA,IAAM63B,GAAkB,GACjC32B,SAAUm4B,GAETjkC,EAAE,sBAOTP,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,YAAOM,EAAE,+BAAsC,IAAIP,IAAAC,cAAA,KAAGE,UAAU,mBAAmBgL,QAASA,KAAQtM,EAAU0iB,cAAc,IAAS1iB,EAAU4iB,cAAiB,MAAYlhB,EAAE,oBAKrLwiC,GACC/iC,IAAAC,cAAA,QACE2Y,SAAUgmE,IAzmB5Bp/E,eAAwCgJ,GAEtCs1E,GAAmBD,GAAkB,GACrCL,IAA2B,GACxBv5D,KACHzb,EAAKN,UAAmC,IAAvB0P,GAA4BF,GAAkB,GAAGnZ,MAAQqZ,IAAuByoB,IACjG,IAAIoP,EAAW,CACb7G,SAAU,KACV1gC,SAAUM,EAAKN,SACf6E,KAAM42B,GAAYC,OAClBnuB,MAAO,iBAELk6B,EAAWx7B,YAAwBs7B,GACvC,IAAIznC,QAAqBC,IAAUiM,KAAKrwB,IAAOkK,kBAAmB4hD,GAElE,GAAI3nC,EAAa/kB,IAAOC,kBAAmB,CACzCghD,IAAgB,GAChBC,GAAY37B,EAAKN,UACjB64B,GAAe/4B,EAAaQ,MAC5Bw7B,GACEh8B,EAAaQ,KAAKgE,QAChBxE,EAAaQ,KAAK2mC,OAAO,EAAGnnC,EAAaQ,KAAKjJ,OAAS,GACvDyI,EAAaQ,KACV2mC,OAAO,EAAGnnC,EAAaQ,KAAKjJ,OAAS,GACrCiN,QAAQ,KAAM,OAGrBkxE,IAAc,GACdl6C,IAAkB,GAClBJ,IAAoB,GACpBzB,IAAc,GACd3tB,aAAarB,IACbqB,aAAaoxB,IACb1yB,GAzNqB,IA0NrB+uB,IAAW,GACX1uB,IAAe,GACfP,GA5NqB,IAgOnB,uEACWkG,KAAK1Q,EAAaQ,OAC7Bo1E,GAAWD,GAAU,GAEvB9qE,WAAW,KACT8uB,IAAc,GACduC,IAAgB,IACfvuB,UAEH9W,EACE0hB,aAAY,CACVvU,QAAQ,EACRP,WACEzL,IAAAC,cAAA,OACEE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,QACPC,MAAM,QACNC,IAAI,gBAGRoB,QAASzM,EAAEyH,EAAa/kB,IAAOE,sBAQrCq6F,IAA2B,OAwiBXx9E,IAAAC,cAAA,OAAKE,UAAU,cACbH,IAAAC,cAAA,OAAKE,UAAU,iBACbH,IAAAC,cAAA,OACEE,UAAU,cACVgL,QAASA,KACP63B,GAAkB,KAGpBhjC,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWqe,UAAWxpB,UAAU,QAAQ6N,KAAM,MAE7DhO,IAAAC,cAAA,OAAKE,UAAU,YAAYI,EAAE,sBAE7B0jB,IACFjkB,IAAAC,cAAA,OAAKE,UAAU,sBACbH,IAAAC,cAAA,aAAQM,EAAE,mBACVP,IAAAC,cAAA,WACED,IAAAC,cAACmuC,IAAK,CACJrhC,KAAK,OACLjE,KAAK,WACLY,GAAG,WACHvJ,UAAU,sCACVkvC,YAAa9uC,EAAE,YACf4Y,aAAc,MACdtI,IAAK8tE,GAAuB,CAC1B5lE,SAAU,sBAEZX,OAAQymE,OAIb56D,IAAuBjkB,IAAAC,cAAA,OAAKE,UAAU,sBACvCH,IAAAC,cAAA,aAAQM,EAAE,kBACRP,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,UACE+Y,SAAW/B,IACTqnE,GAAe5mE,GAAkBT,EAAEzgB,OAAO+H,UAG3CmZ,GAAkBuB,IAAI,CAACC,EAAQlE,IAE5BhV,IAAAC,cAAA,UACEgV,IAAKD,EACL7U,UAAW,iBAAmB6U,EAAQ,GACtCzW,MAAOyW,GAENkE,EAAO1a,UAMlBwB,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,SACE6I,KAAK,gBACL3I,UAAU,uBACVgZ,aAAa,MACbxE,UAAU,UACV9D,IAAK8tE,GAAuB,CAC1B5lE,SAAU,CACRxa,OAAO,EACP8a,QAAS9Y,EAAE,yBAEb6Y,UAAW,CACT7a,MAAsB,MAAf8/E,GAAsBA,GAAYhrD,IAAM,EAC/Cha,QAAS9Y,EAAE,iBAAkB,CAAEhB,OAAuB,MAAf8+E,GAAsBA,GAAYhrD,IAAM,KAEjF/Z,UAAW,CACT/a,MAAsB,MAAf8/E,GAAsBA,GAAY/qD,IAAM,GAC/Cja,QAAS9Y,EAAE,iBAAkB,CAAEhB,OAAuB,MAAf8+E,GAAsBA,GAAY/qD,IAAM,MAEjF/Z,QAAS,CACPhb,MAAO,YACP8a,QACE9Y,EAAE,iBAAkB,CAAEhB,OAAuB,MAAf8+E,GAAsBA,GAAYhrD,IAAM,IACtE,IACA9yB,EAAE,OACF,IACAA,EAAE,mBAGR6X,OAAQA,EACRoB,UAAYvC,IACV,MAAMhC,EAAMgC,EAAEhC,IAUX,QAAQyD,KAAKzD,IATI,CAClB,YACA,YACA,aACA,SACA,OAKawE,SAASxE,IAEtBgC,EAAEyC,iBAKsB,IADPzC,EAAEzgB,OAAO+H,MACbgB,QAAwB,MAAR0V,GAC7BgC,EAAEyC,kBAGNV,SAAW/B,IACT,IAAI0C,EAAW1C,EAAEzgB,OAAO+H,MAGxBob,EAAWA,EAASnN,QAAQ,UAAW,IAGvCmN,EAAWA,EAASnN,QAAQ,MAAO,IAEnCuyE,GAAuB,gBAAiBplE,EAAU,CAAE8lE,gBAAgB,IAGpE/wC,GAASz3B,GAGTA,EAAEzgB,OAAO+H,MAAQob,KAKA,GAApB4mB,GACCvgC,IAAAC,cAAA,OAAKE,UAAU,4CACbH,IAAAC,cAAA,OAAKE,UAAU,4CACZI,EAAE,0BAGL6X,EAAOwB,cACT5Z,IAAAC,cAAA,OAAKE,UAAU,4CACbH,IAAAC,cAAA,OAAKE,UAAU,4CACZI,EAAE6X,EAAOwB,cAAcP,WAI5B,MAKRrZ,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKE,UAAU,sBACbH,IAAAC,cAAA,UAAQE,UAAU,uBACfI,EAAE,kBACFg9E,GACCv9E,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,WACPD,OAAQ,WACRwC,WAAY,KAIhB,IAGH2vE,GAAkB,GACjB79E,IAAAC,cAAA,OAAKE,UAAU,kBACbH,IAAAC,cAAA,QAAME,UAAU,sBAAsBmM,wBAAyB,CAAEC,OAAQhM,EAAE,iCAAkC,CAAExM,IAz7BhH,2BAs8BvBiM,IAAAC,cAACiN,IAAK,CACJxD,GAAG,0BACHyD,MAAM,EACNE,iBAAkB,0BAClBD,OAAQqwE,GACRnwE,SAAU,SACVC,OAAQA,KACNmwE,IAAc,GACdt6C,IAAoB,GACpBI,IAAkB,GAClBM,IAAoB,GACpBJ,IAAqB,IAIvB6J,UAAQ,GAERvtC,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKE,UAAU,sBACbH,IAAAC,cAAA,OAAKE,UAAU,WACbH,IAAAC,cAAA,OACEG,IAAKjB,GACLgB,UAAU,iBACVyL,IAAI,UAGR5L,IAAAC,cAAA,OACEE,UAAU,iBACVgL,QAASA,KACPuyE,IAAeD,MAGjBz9E,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,YAG7CH,IAAAC,cAAA,OAAKE,UAAU,oBACbH,IAAAC,cAAA,OAAKE,UAAU,QAIbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OACEG,IAAK+lC,GACLhmC,UAAU,iBACVyL,IAAI,qCAIV5L,IAAAC,cAAA,OAAKE,UAAU,SACZojC,IACCvjC,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,OAAKE,UAAU,iBACbH,IAAAC,cAAA,MAAIE,UAAU,qBACXI,EAAE,mBAELP,IAAAC,cAAA,OAAKE,UAAU,sBACZI,EAAE,6BAA8B,IAClB,IAAdiiC,GAAmBA,GAAauB,GAAa,KAEhD/jC,IAAAC,cAACyU,IAAQ,CACPnV,OAAQ,EAERsR,IAAKqC,GAELnG,KAAK,UACLV,SAAU8G,GACVwB,UAAU,UACVC,WAAY,CAAEC,OAAQ,IAAK/H,OAAQ,WACnCgI,cAAe,oBACfC,WAAYA,CAACxW,EAAOyW,KAClBK,GAAW9W,MAGdijC,IAA8B,GAAnBjvB,IACVvS,IAAAC,cAAA,KAAGE,UAAU,iBACVI,EAAE,YAAa,IAA6BgS,GAAgB,KAIhEgB,GACCvT,IAAAC,cAAA,OAAKE,UAAU,QACbH,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,MAKlB,GAGkB,GAAnBqE,IACCvS,IAAAC,cAAA,WACED,IAAAC,cAAA,UACEE,UAAU,gBACVsM,MAAO,CACLuiC,WAAY,OACZn6B,OAAQ,OACRkY,QAAS,EACThc,OAAQ,YAGTxQ,EAAE,wBACHP,IAAAC,cAAA,WACAD,IAAAC,cAAA,QAAMqM,wBAAyB,CAAEC,OAAQhM,EAAE,sCAAuC,CAAExM,IAtjCnF,qBAulCZ8vC,IACC7jC,IAAAC,cAAA,QAAM2Y,SAAUgmB,IAvtBhCp/B,eAAiCgJ,GAE/Bw1E,IAA0B,GAC1B,IAAIvuC,EAAW,CACbI,YAAarnC,EAAKsnC,YAClBC,aAAcvnC,EAAKwnC,aACnB9nC,SAAUA,GACVi2E,QAASA,IAGPxuC,EAAWx7B,YAAwBs7B,GAEvC,IAAIznC,QAAqBC,IAAUiM,KACjCrwB,IAAOoB,wCACP0qD,GAGE3nC,EAAa/kB,IAAOC,mBACtB4gD,IAAoB,GACpBJ,IAAqB,IAErB7kC,EACE0hB,aAAY,CACVvU,QAAQ,EACRP,WACEzL,IAAAC,cAAA,OACEE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,QACPC,MAAM,QACNC,IAAI,gBAGRoB,QAASzM,EAAEyH,EAAa/kB,IAAOE,sBAWrC66F,IAA0B,OA4qBVh+E,IAAAC,cAAA,OAAKE,UAAU,cACbH,IAAAC,cAAA,OAAKE,UAAU,iBACbH,IAAAC,cAAA,OAAKE,UAAU,YAAYI,EAAE,oBAE/BP,IAAAC,cAAA,OAAKE,UAAU,sBACbH,IAAAC,cAAA,aAAQM,EAAE,uBACVP,IAAAC,cAAA,OAAKwM,MAAO,CAAEmE,SAAU,aACpB5Q,IAAAC,cAACmuC,IAAK,CACJrhC,KAAMgwE,EAAkB,WAAa,OACrCj0E,KAAK,cACLY,GAAG,cACHvJ,UAAU,uBACVkvC,YAAa9uC,EAAE,gBACf4Y,aAAa,MACbtI,IAAK8tB,GAAsB,CACzB5lB,UAAU,EACVK,UAAW,CACT7a,MA1nCH,EA2nCG8a,QAAS9Y,EAAE,iBAAkB,CAC3BhB,OA5nCL,KA+nCCga,QAAS,CACPhb,MACE,6CACF8a,QAAS9Y,EAAE,qBAEb0vC,SAAW1xC,GACgB,IAAzB8/B,EAAM,iBACN9/B,GAAS8/B,EAAM,iBACf,sBAEJjmB,OAAQymB,GACRrlB,UAAYvC,IACV,MAAMhC,EAAMgC,EAAEhC,IAUX,cAAcyD,KAAKzD,IATF,CAClB,YACA,YACA,aACA,SACA,OAKawE,SAASxE,IAEtBgC,EAAEyC,oBAIR1Z,IAAAC,cAACmL,IAAK,CACJC,KACE0xE,EACIzxE,IAAWqjC,WACXrjC,IAAWsjC,IAEjBzuC,UAAU,uBACVsM,MAAO,CAAEoiC,IAAK,QACd1jC,QAASA,IACL6xE,GAAoBD,OAKhC/8E,IAAAC,cAAA,OAAKE,UAAU,kBACXH,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWwjC,iBACjB3uC,UAAU,4BAEXI,EAAE,8BAELP,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWwjC,iBACjB3uC,UAAU,4BAEXI,EAAE,2BAELP,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWwjC,iBACjB3uC,UAAU,4BAEXI,EAAE,wBAGTP,IAAAC,cAAA,OAAKE,UAAU,sBACbH,IAAAC,cAAA,aAAQM,EAAE,2BACVP,IAAAC,cAAA,OAAKwM,MAAO,CAAEmE,SAAU,aACpB5Q,IAAAC,cAACmuC,IAAK,CACJrhC,KAAMkwE,EAAsB,WAAa,OACzCn0E,KAAK,eACLY,GAAG,eACHvJ,UAAU,uBACVkvC,YAAa9uC,EAAE,wBACf4Y,aAAa,MACbtI,IAAK8tB,GAAsB,CACzB5lB,UAAU,EACVK,UAAW,CACT7a,MA9sCH,EA+sCG8a,QAAS9Y,EAAE,iBAAkB,CAC3BhB,OAhtCL,KAmtCCga,QAAS,CACPhb,MACE,6CACF8a,QAAS9Y,EAAE,qBAEb0vC,SAAW1xC,GACe,IAAxB8/B,EAAM,gBACN9/B,GAAS8/B,EAAM,gBACf,sBAEJjmB,OAAQymB,KAEV7+B,IAAAC,cAACmL,IAAK,CACJC,KACE4xE,EACI3xE,IAAWqjC,WACXrjC,IAAWsjC,IAEjBzuC,UAAU,uBACVsM,MAAO,CAAEoiC,IAAK,QACd1jC,QAASA,IACP+xE,GAAwBD,OAKlCj9E,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,UAAQE,UAAU,uBACf49E,GACC/9E,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAIhB3N,EAAE,uBAQfkjC,IACCzjC,IAAAC,cAAA,QACE2Y,SAAU4mB,GAz0B5BhgC,eAAqCgJ,GACnCs7B,IAAoB,GACpBJ,IAAqB,GAErBg6C,IAAc,OAy0BE19E,IAAAC,cAAA,OAAKE,UAAU,iBACbH,IAAAC,cAAA,MAAIE,UAAU,yBACXI,EAAE,2BAELP,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OACEkL,QAASA,KACPuyE,IAAeD,IACfz6C,GAAkB,GAElBnkC,EAAU0iB,cAAc,MAG1BvhB,IAAAC,cAAA,UAAQE,UAAU,uBACfI,EAAE,2BClrChBm/E,OAnLa9gF,IAC1B,IAAI,EAAE2B,GAAMC,cACR3B,EAAYC,cAChB,MAEM8iB,EAAkB5iB,YACrBC,GAAUA,EAAMC,SAAS0iB,kBAErBm8D,EAAwB4B,GAA2BtgF,oBAAS,IAC5D09E,EAAiBC,GAAsB39E,oBAAS,IAChD49E,EAAqBC,GAA0B79E,oBAAS,IAG7D2Y,SAAU4nE,EACV1nE,aAAc2nE,EACdznE,OAAQ0nE,EACRxnE,SAAUynE,GACRvnE,cA4BJ,OACExY,IAAAC,cAAA,WACED,IAAAC,cAACiN,IAAK,CACJxD,GAAG,kBACHyD,MAAM,EACNE,iBAAkB,kBAClBD,OAAQwU,EACRrU,OAAQA,KACN1O,EAAU8iB,cAAiB,KAG7BrU,SAAU,SACVigC,UAAQ,EACR//B,YAAU,GAEVxN,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,OAAKE,UAAU,gBACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,WAAMM,EAAE,qBAEVP,IAAAC,cAAA,OACEE,UAAU,QACVgL,QAASA,IAAMtM,EAAU8iB,cAAkBC,KAE3C5hB,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,YAG7CH,IAAAC,cAAA,OAAKE,UAAU,eACbH,IAAAC,cAAA,QACE2Y,SAAUinE,EAxDQrgF,MAAOgJ,EAAMyO,KAE3C,IAAI,SAAE9O,EAAQ,iBAAE63E,GAAqBx3E,EAErC,GAAIL,IAAa63E,EACfD,EAAsB,mBAAoB,CACxC1mE,QAAS,0BAEN,CACL,IAAIrR,QAAqBC,IAAUiM,KACjCrwB,IAAOmM,sCACPmkB,YAAwB3L,IAGtBR,EAAa/kB,IAAOC,mBACtB2b,EAAU8iB,cAAiB,IAG7B9iB,EACEiL,aACE9B,EAAa/kB,IAAOC,kBACpB8kB,EAAa/kB,IAAOE,wBAqCd6c,IAAAC,cAAA,OAAKE,UAAU,sBACbH,IAAAC,cAAA,SAAOE,UAAU,YAAYI,EAAE,iBAC/BP,IAAAC,cAAA,OAAKwM,MAAO,CAAEmE,SAAU,aACtB5Q,IAAAC,cAACmuC,IAAK,CACJrhC,KAAMgwE,EAAkB,WAAa,OACrCj0E,KAAK,WACLY,GAAG,WACHvJ,UAAU,uBACVkvC,YAAa9uC,EAAE,sBACf4Y,aAAc,MAKdtI,IAAK+uE,EAAc,CACjB7mE,SACE,4BACFQ,QAAS,CACPhb,MAAO,6CACP8a,QAAS9Y,EAAE,qBAEb6Y,UAAW,CACT7a,MAhGK,EAiGL8a,QAAS9Y,EAAE,iBAAkB,CAC3BhB,OAlGG,OAsGT6Y,OAAQ0nE,IAEV9/E,IAAAC,cAACmL,IAAK,CACJC,KACE0xE,EAAkBzxE,IAAWqjC,WAAarjC,IAAWsjC,IAEvDzuC,UAAU,uBACVsM,MAAO,CAAEoiC,IAAK,QACd1jC,QAASA,IAAM6xE,GAAoBD,OAIzC/8E,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAAA,SAAOE,UAAU,YAAYI,EAAE,qBAC/BP,IAAAC,cAAA,OAAKwM,MAAO,CAAEmE,SAAU,aACtB5Q,IAAAC,cAACmuC,IAAK,CACJrhC,KAAMkwE,EAAsB,WAAa,OACzCn0E,KAAK,mBACLY,GAAG,mBACHvJ,UAAU,uBACVkvC,YAAa9uC,EAAE,0BACf4Y,aAAc,MACdtI,IAAK+uE,EAAc,CACjB7mE,SACE,8BAEJX,OAAQ0nE,IAEV9/E,IAAAC,cAACmL,IAAK,CACJC,KACE4xE,EACI3xE,IAAWqjC,WACXrjC,IAAWsjC,IAEjBzuC,UAAU,QACVsM,MAAO,CAAEoiC,IAAK,QACd1jC,QAASA,IACP+xE,GAAwBD,OAKhCj9E,IAAAC,cAAA,OAAKE,UAAU,sBACbH,IAAAC,cAAA,UACEE,UAAU,sBACVkM,SAAU0xE,GAETA,EACC/9E,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAIhB3N,EAAE,iB,iBCkJTg7C,OAvSYA,KAAO,IAADp1B,EAAAC,EAAAC,EACjB3lB,cAAf,IACI4lB,EAAYC,cAChB,MAAM1nB,EAAYC,eACZ,EAAEyB,EAAC,KAAE+f,GAAS9f,eACbg7C,EAA6BC,GACnCp8C,mBAAS,IACHmnB,EAAmBC,GAAwBpnB,mBAAS,IACpDqnB,EAAoBC,GAAyBtnB,oBAAS,IACtDq8C,EAAWC,GAAgBt8C,mBAAS,KACpCunB,EAAaC,GAAkBxnB,oBAAS,IACxCu8C,EAA0BC,GAA+Bx8C,mBAAS,KAClE2nB,EAAWC,GAAgB5nB,oBACxB,OAATinB,QAAS,IAATA,GAAgB,QAAPH,EAATG,EAAWrnB,aAAK,IAAAknB,OAAP,EAATA,EAAkBe,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAC/C4mB,MAASC,QAAQ,aAEdC,EAASC,GAAcjoB,oBACpB,OAATinB,QAAS,IAATA,GAAgB,QAAPF,EAATE,EAAWrnB,aAAK,IAAAmnB,OAAP,EAATA,EAAkBc,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAC/C4mB,MAASI,MAAM,SAGZC,EAAoBC,GAAyBpoB,oBAC1C,OAATinB,QAAS,IAATA,GAAgB,QAAPD,EAATC,EAAWrnB,aAAK,IAAAonB,OAAP,EAATA,EAAkBa,MACfZ,EAAUrnB,MAAMioB,KAChBC,MAASC,QAAQ,WAAWM,OAAO,cACnCnnB,EAAE,MACF4mB,MAASI,MAAM,OAAOG,OAAO,eAO3B6yD,EAAiB,CACtB,CACC1oD,KAAM,WACNivB,kBAAmB,GAEpB,CACCjvB,KAAM,cACNivB,kBAAmB,IA6BrBthD,eAAeygF,EAAmBr4D,EAAMC,GACvCg0B,EAA4B,IAC5Bh1B,GAAe,GACf,IAEC,IAAIkB,EAAqB,KADzBH,EAAOA,GAAc,GACD,GAEpB6zB,EAA+BD,GAC/B,IAAIjzC,EAAM,GAAAvU,OACTnQ,IAAO6D,sDACP,cACAy/B,IAAOH,GAAWU,OAAO,cACzB,YACAP,IAAOE,GAASK,OAAO,eAGW,GAA/B8zB,IACHjzC,GAAU,SAAWizC,GAGtBjzC,EAASA,EAAS,UAAYwf,EAAQ,YAGtC,IAAI/f,QAAqBC,IAAU1R,IAAIgS,GAEvC,GAAIP,EAAa/kB,IAAOC,kBAAmB,CAC1C24D,EACC7zC,EAAa/kB,IAAOG,eAAeH,IAAOG,gBAG3C,IAAI4kC,EAAahgB,EAAa/kB,IAAOG,eAAe4kC,WAiBrBC,EAhBNC,KAAKC,KAAKH,EAAa,IAiBlDvB,EAAsB2B,GAAcH,QAflCppB,EACC0hB,aACCvY,EAAa/kB,IAAOC,kBACpBqd,EAAEyH,EAAa/kB,IAAOE,qBAIxB,MAAOklC,GACRxpB,EAAUiL,cAAoB,EAAOue,IAMvC,IAAkCJ,EAJjCpB,GAAe,GAQhB,OA5EAvnB,oBAAU,UAC0B8gB,GAA/Bo7B,GACHykC,KAEC,CAACj5D,EAAWK,EAASm0B,IAExBl8C,oBAAU,KACLonB,GACHi1B,EAAa,KAEZ,CAACj1B,IAEJpnB,oBAAU,KACT,GAAiB,IAAbo8C,EAAiB,CACpB,IAAIozB,EAAkBlzB,EAClBskC,EAAwBlF,kBAC3BlM,EACA,CAAC,UACDpzB,GAGDG,EAA4BqkC,KAE3B,CAACxkC,IAsDH17C,IAAAC,cAAA,OAAKE,UAAU,mCAAmCuJ,GAAG,cACpD1J,IAAAC,cAAA,MAAIE,UAAU,wBAAwBI,EAAE,uBACxCP,IAAAC,cAACqoB,IACA,CACAtB,UAAWA,EACXK,QAASA,EACTJ,aAAcA,EACdK,WAAYA,EACZiB,OAAQA,CAACR,EAAOS,KACfvB,EAAac,GACbT,EAAWkB,IAEZC,SAAS,EACTC,YAAalB,EAEbmB,aA3GyBpqB,IAC3BkpB,EAAsBlpB,MA6GrByB,IAAAC,cAAA,OAAKE,UAAU,gCACbo6E,GACAA,EAAeh7E,QACf0Z,cAAIshE,EAAgB,CAACl8D,EAAMrJ,IAEzBhV,IAAAC,cAAA,UACCgV,IAAKD,EACL7U,UACCq7C,GAA+Bn9B,EAAKyiC,kBACjC,SACA,GAEJ31C,QAASA,KACRswC,EAA+Bp9B,EAAKyiC,qBAGrC9gD,IAAAC,cAAA,OAAKwM,MAAO,CAAEsE,OAAQ,YAAcxQ,EAAE8d,EAAKwT,UAKhD7xB,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,sBACdH,IAAAC,cAAA,SAAOE,UAAU,mBAChBH,IAAAC,cAAA,aACCD,IAAAC,cAAA,UACCD,IAAAC,cAAA,UAAKM,EAAE,SACPP,IAAAC,cAAA,UAAKM,EAAE,WACPP,IAAAC,cAAA,UAAKM,EAAE,WACPP,IAAAC,cAAA,UAAKM,EAAE,kBAGTP,IAAAC,cAAA,aACE27C,GACkC,GAAnCA,EAAyBr8C,OACxBq8C,EAAyB3iC,IAAI,CAACzQ,EAAMwM,KACnC,IACImrE,EAAkB,GACtB,OAAQ33E,EAAwB,mBAC/B,KAAK/P,IAAgBC,SACX4S,IAAW80E,KACpBD,EAAkB,UAClB,MACD,KAAK1nF,IAAgBE,YACX2S,IAAW+0E,cACpBF,EAAkB,aAClB,MACD,KAAK1nF,IAAgBM,UACXuS,IAAW00C,OACpBmgC,EAAkB,WAClB,MACD,QACU70E,IAAWy0C,aACpBogC,EAAkB,GAIpB,IAAI9jC,EAAa,GACjB,OAAQ7zC,EAAqB,gBAC5B,KAAK9O,IAAkBI,UACtBuiD,EACCr8C,IAAAC,cAAA,QAAME,UAAU,wCACdI,EAAE,aAGL,MACD,KAAK7G,IAAkBK,UACtBsiD,EACCr8C,IAAAC,cAAA,QAAME,UAAU,sCACdI,EAAE,aAGL,MACD,KAAK7G,IAAkBC,MAOvB,QACC0iD,EACCr8C,IAAAC,cAAA,QAAME,UAAU,yCACdI,EAAE,eAMP,OACCP,IAAAC,cAAA,MAAIgV,IAAKD,GACRhV,IAAAC,cAAA,UACEknB,IAAO3e,EAAK83E,SAAU,wBAAwB54D,OAC9C,wBAGF1nB,IAAAC,cAAA,UACE0N,YAAyBiC,WAAWpH,EAAKw4C,QAAS,IAEpDhhD,IAAAC,cAAA,UAAKo8C,GACLr8C,IAAAC,cAAA,UACqB,IAAnBuI,EAAc,QACZjI,EAAE4/E,GAAmB,MAAQ33E,EAAc,QAC3CjI,EAAE4/E,OAKNv5D,EACH5mB,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GACZ5oB,IAAAC,cAAA,OACCwM,MAAO,CACNoc,UAAW,SACXC,UAAW,OACXpc,aAAc,SAGf1M,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,SAGT1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,WAM5CP,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GAAIroB,EAAE,uBAOxBimB,EAAoB,GACpBxmB,IAAAC,cAAC8oB,KAAa,CACbC,WAAYxC,EACZyC,oBAAqBg3D,EACrBv5D,mBAAoBA,EACpBwC,eAAgBvC,MCiDN45D,OAhVKA,KAAO,IAADp6D,EAAAC,EAAAC,EACV3lB,cAAf,IACI4lB,EAAYC,cAChB,MAAM1nB,EAAYC,eACZ,EAAEyB,EAAC,KAAE+f,GAAS9f,YAAexD,IAAYC,WACxCupB,EAAmBC,GAAwBpnB,mBAAS,IACpDqnB,EAAoBC,GAAyBtnB,oBAAS,IACtDq8C,EAAWC,GAAgBt8C,mBAAS,KACpCunB,EAAaC,GAAkBxnB,oBAAS,IACxCmhF,EAAiBC,GAAsBphF,mBAAS,KAChDqJ,EAAU2sE,GAAeh2E,mBAAS,KACnC,QAAEggC,EAAO,MAAEhB,EAAK,SAAEE,GAAa/lB,eAC9Bo/D,EAAcC,GAAmBx4E,mBAAS,KAC1CqhF,EAAeC,GAAoBthF,mBAAS,IAC5C47D,EAAemf,GAAoB/6E,mBAAS,KAC5C+pB,EAAmBC,GAAwBhqB,oBAAS,IACpDuhF,EAAWC,GAAgBxhF,mBAAS,KACpCoqB,EAAgBC,GAAqBrqB,mBAAS,KAC9Cw4D,EAAeC,GAAoBz4D,oBAAS,IAC5CyhF,EAAoBC,GAAyB1hF,mBAAS,KACtD84D,EAAWC,GAAgB/4D,sBAG3B2nB,GAAWC,IAAgB5nB,oBACxB,OAATinB,QAAS,IAATA,GAAgB,QAAPH,EAATG,EAAWrnB,aAAK,IAAAknB,OAAP,EAATA,EAAkBe,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAC/C4mB,MAASC,QAAQ,aAEdC,GAASC,IAAcjoB,oBACpB,OAATinB,QAAS,IAATA,GAAgB,QAAPF,EAATE,EAAWrnB,aAAK,IAAAmnB,OAAP,EAATA,EAAkBc,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAC/C4mB,MAASI,MAAM,SAEZC,GAAoBC,IAAyBpoB,oBAC1C,OAATinB,QAAS,IAATA,GAAgB,QAAPD,EAATC,EAAWrnB,aAAK,IAAAonB,OAAP,EAATA,EAAkBa,MACfZ,EAAUrnB,MAAMioB,KAChBC,MAASC,QAAQ,WAAWM,OAAO,cACnCnnB,EAAE,MACF4mB,MAASI,MAAM,OAAOG,OAAO,eAoFjCloB,eAAewhF,GAAep5D,EAAMC,GACnC44D,EAAmB,IACnB55D,GAAe,GACf,IAEC,IAAIkB,EAAqB,KADzBH,EAAOA,GAAc,GACD,GAEhBrf,EACH1kB,IAAOsE,+BACP,cACAg/B,IAAOH,IAAWU,OAAO,cAFzB7jC,qBAKAsjC,IAAOE,IAASK,OAAO,cALvB7jC,eAQA8nC,KAAKD,MACL,uBAtHqB,EAuHrB,kBAE6B,qBAAnBjC,GAAkCA,EAAiB,IAC7DlhB,GAAU,cAAgBkhB,GAG3B8U,EACC,YACA50B,YAAoBiuE,GAAgB,KAAOA,GAK5CiJ,EAFAt4E,EAASA,EAAS,UAAYwf,EAAQ,aAItC,IAAI/f,QAAqBC,IAAU1R,IAAIgS,GAEvC,GAAIP,EAAa/kB,IAAOC,kBAAmB,CAC1Cu9F,EACCz4E,EAAa/kB,IAAOG,eAAeH,IAAOG,gBAG3C,IAAI4kC,EAAahgB,EAAa/kB,IAAOG,eAAe4kC,WAyBrBC,EAxBNC,KAAKC,KAAKH,EAAa,IAyBlDvB,EAAsB2B,GAAcH,QAvBlCppB,EACC0hB,aACCvY,EAAa/kB,IAAOC,kBACpBqd,EAAEyH,EAAa/kB,IAAOE,qBAIxB,MAAOklC,GACRxpB,EAAUiL,cAAoB,EAAOue,IAcvC,IAAkCJ,EAZjCpB,GAAe,GAgBhB,OAlJAvnB,oBAAU,MAiDVE,iBACC6pB,GAAqB,GACrB,IACC,IAAIrhB,QAAqBC,IAAU1R,IAAI,GAADvC,OAClCnQ,IAAOiF,iCAAgC,qCAG3C,MAAMm4F,EAAc,GAEhBj5E,EAAa/kB,IAAOC,mBACvB8kB,EAAa/kB,IAAOG,eAAyB,SAAE80C,SAAQ,SACtDmsB,GAEA48B,EAAYz2E,KAAK,CAChBhM,MAAO6lD,EAAQ/lC,YACf/f,MAAO8lD,EAAQE,eAKlB8wB,EAAY4L,GACZN,EAAiBM,EAAY1hF,QAC5B,MAAO8oB,GACRxpB,EAAUiL,cAAoB,EAAOue,IAEtCgB,GAAqB,GAzErBiC,IACE,IAEHhsB,oBAAU,KACT86E,EAAiB,KACf,IAEH96E,oBAAU,KACT,IAAI05D,EAAkB8nB,EAAmB5yC,KACtC4yC,EAAmB5yC,KACnB/mB,MACC8xC,EAAgB6nB,EAAmBtoB,GACpCsoB,EAAmBtoB,GACnBrxC,MAGFF,QADiB7G,IAAd4G,IAA2B6wC,EACjBmB,EACMhyC,SACJ5G,IAAZiH,IAAyBwwC,EAC5BvwC,GAAW2xC,GACLhyC,GAAaD,IAEpB8wC,GAAiB,IACf,CAACgpB,IAEJxhF,oBAAU,KACT0hF,MACE,CAACv3D,EAAgBzC,GAAWK,KAE/B/nB,oBAAU,KACLonB,GACHi1B,EAAa,KAEZ,CAACj1B,IAEJpnB,oBAAU,KACT,GAAiB,IAAbo8C,EAAiB,CACpB,IAAI8kC,EAAkBA,EAClBU,EAAwBlG,kBAC3BwF,EACA,CAAC,UACD9kC,GAGD+kC,EAAmBS,KAElB,CAACxlC,IAuFJp8C,oBAAU,KACL64D,IACHL,GAAiB,GACjBrwC,GAAsB,IACtB2wC,GAAa,KAEZ,CAACD,IAOHn4D,IAAAC,cAAA,OAAKE,UAAU,mCAAmCuJ,GAAG,cACpD1J,IAAAC,cAAA,MAAIE,UAAU,wBAAwBI,EAAE,eACxCP,IAAAC,cAAA,OAAKE,UAAU,mCACdH,IAAAC,cAAA,OAAKE,UAAU,SAASI,EAAE,eAC1BP,IAAAC,cAAA,OAAKE,UAAU,UACZipB,EAsBDppB,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLtB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,UA3BVhD,GAAYA,EAASnJ,OAAS,EAC7BS,IAAAC,cAAA,UACC6I,KAAK,WACLvK,MAAOkrB,EACPzQ,SAAW/B,IACVyS,EAAkBzS,EAAEzgB,OAAO+H,SAG5ByB,IAAAC,cAAA,UAAQ1B,MAAM,IAAIgC,EAAE,QACnBmI,EAASuQ,IAAI,CAACoF,EAAMrJ,IAEnBhV,IAAAC,cAAA,UAAQgV,IAAKD,EAAOzW,MAAO8f,EAAK9f,OAC9B8f,EAAK7f,SAMVwB,IAAAC,cAAA,OAAKE,UAAU,gBAAgBI,EAAE,oBAgBrCP,IAAAC,cAACqoB,IACA,CACAtB,UAAWA,GACXK,QAASA,GACTJ,aAAcA,GACdK,WAAYA,GACZiB,OAAQA,CAACR,EAAOS,KACfvB,GAAac,GACbT,GAAWkB,IAEZC,SAAS,EACTC,YAAalB,GAEbmB,aA5MyBpqB,IAC3BkpB,GAAsBlpB,MA6MrByB,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,sBACdH,IAAAC,cAAA,SAAOE,UAAU,mBAChBH,IAAAC,cAAA,aACCD,IAAAC,cAAA,UACCD,IAAAC,cAAA,UAAKM,EAAE,UACPP,IAAAC,cAAA,UAAKM,EAAE,SACPP,IAAAC,cAAA,UAAKM,EAAE,eACPP,IAAAC,cAAA,UAAKM,EAAE,iBAGTP,IAAAC,cAAA,aACEugF,GAA6C,GAA1BA,EAAgBjhF,OACnCihF,EAAgBvnE,IAAI,CAACzQ,EAAMwM,IAEzBhV,IAAAC,cAAA,MAAIgV,IAAKD,GACRhV,IAAAC,cAAA,UAAKuI,EAAe,UACpBxI,IAAAC,cAAA,MAAIE,UAAU,2BACZqI,EAAW,MAEbxI,IAAAC,cAAA,UACE0N,YACAiC,WAAWpH,EAAa,QACxB,GACA,IAGFxI,IAAAC,cAAA,MACCE,UACCqI,EAAgB,UAAI,EACjB,kBACA,oBAGHmF,YACAiC,WAAWpH,EAAgB,WAC3B,GACA,MAMFoe,EACF5mB,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GACZ5oB,IAAAC,cAAA,OACCwM,MAAO,CACNoc,UAAW,SACXC,UAAW,OACXpc,aAAc,SAGf1M,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,SAGT1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,WAM7CP,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GAAIroB,EAAE,uBAOxBimB,EAAoB,GACpBxmB,IAAAC,cAAC8oB,KAAa,CACbC,WAAYxC,EACZyC,oBAAqB+3D,GACrBt6D,mBAAoBA,EACpBwC,eAAgBvC,MCxINw6D,OAzMWA,KAAO,IAADh7D,EAAAC,EAAAC,EAChB3lB,cAAf,IACI4lB,EAAYC,cAChB,MAAM1nB,EAAYC,eACZ,EAAEyB,EAAC,KAAE+f,GAAS9f,eACbgmB,EAAmBC,GAAwBpnB,mBAAS,IACpDqnB,EAAoBC,GAAyBtnB,oBAAS,IACtDq8C,EAAWC,GAAgBt8C,mBAAS,KACpCunB,EAAaC,GAAkBxnB,oBAAS,IACxC+hF,EAAgBC,GAAqBhiF,mBAAS,KAC9C2nB,EAAWC,GAAgB5nB,oBACxB,OAATinB,QAAS,IAATA,GAAgB,QAAPH,EAATG,EAAWrnB,aAAK,IAAAknB,OAAP,EAATA,EAAkBe,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAAcmnB,OAC7D,cAEAP,MAASC,QAAQ,QAAQM,OAAO,gBAE7BL,EAASC,GAAcjoB,oBACpB,OAATinB,QAAS,IAATA,GAAgB,QAAPF,EAATE,EAAWrnB,aAAK,IAAAmnB,OAAP,EAATA,EAAkBc,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAAcmnB,OAC7D,cAEAP,MAASI,MAAM,QAAQG,OAAO,gBAE3B45D,EAAeC,GAAoBliF,mBAAS,KAC5CmoB,EAAoBC,GAAyBpoB,oBAC1C,OAATinB,QAAS,IAATA,GAAgB,QAAPD,EAATC,EAAWrnB,aAAK,IAAAonB,OAAP,EAATA,EAAkBa,MACfZ,EAAUrnB,MAAMioB,KAChBC,MAASC,QAAQ,QAAQM,OAAO,cAChCnnB,EAAE,MACF4mB,MAASI,MAAM,QAAQG,OAAO,eA0BlCloB,eAAegiF,EAAkB55D,EAAMC,GACtCw5D,EAAkB,IAClBx6D,GAAe,GACf,IAEC,IAAIkB,EAAqB,KADzBH,EAAOA,GAAc,GACD,GAEhBrf,EACH1kB,IAAOkE,4BACP,cACAo/B,IAAOH,GAAWI,QAAQ,OAAOM,OAAO,cACxC,YACAP,IAAOE,GAASE,MAAM,OAAOG,OAAO,cACpC,MACAP,IAAOH,GAAWI,QAAQ,OAAOM,OAAO,cAIzC65D,EAFAh5E,EAASA,EAAS,UAAYwf,EAAQ,aAItC,IAAI/f,QAAqBC,IAAU1R,IAAIgS,GAEvC,GAAIP,EAAa/kB,IAAOC,kBAAmB,CAC1Cm+F,EACCr5E,EAAa/kB,IAAOG,eAAeH,IAAOG,gBAG3C,IAAI4kC,EAAahgB,EAAa/kB,IAAOG,eAAe4kC,WAiBrBC,EAhBNC,KAAKC,KAAKH,EAAa,IAiBlDvB,EAAsB2B,GAAcH,QAflCppB,EACC0hB,aACCvY,EAAa/kB,IAAOC,kBACpBqd,EAAEyH,EAAa/kB,IAAOE,qBAIxB,MAAOklC,GACRxpB,EAAUiL,cAAoB,EAAOue,IAMvC,IAAkCJ,EAJjCpB,GAAe,GAQhB,OAnEAvnB,oBAAU,KACTkiF,KACE,CAACx6D,EAAWK,IAEf/nB,oBAAU,KACLonB,GACHi1B,EAAa,KAEZ,CAACj1B,IAEJpnB,oBAAU,KACT,GAAiB,IAAbo8C,EAAiB,CACpB,IAAI+lC,EAAWL,EACXM,EAA6B1G,kBAAQyG,EAAU,CAAC,UAAW/lC,GAE/D2lC,EAAkBK,KAEjB,CAAChmC,IAmDH17C,IAAAC,cAAA,OAAKE,UAAU,mCAAmCuJ,GAAG,cACpD1J,IAAAC,cAAA,MAAIE,UAAU,wBAAwBI,EAAE,sBACxCP,IAAAC,cAACqoB,IACA,CACAtB,UAAWA,EACXK,QAASA,EACTJ,aAAcA,EACdK,WAAYA,EACZiB,OAAQA,CAACR,EAAOS,KACfvB,EAAac,GACbT,EAAWkB,IAEZC,SAAS,EACTC,YAAalB,EAEbmB,aAvFyBpqB,IAC3BkpB,EAAsBlpB,MAwFrByB,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,sBACdH,IAAAC,cAAA,SAAOE,UAAU,mBAChBH,IAAAC,cAAA,aACCD,IAAAC,cAAA,UACCD,IAAAC,cAAA,UAAKM,EAAE,SACPP,IAAAC,cAAA,UAAKM,EAAE,WACPP,IAAAC,cAAA,UAAKM,EAAE,UACPP,IAAAC,cAAA,UAAKM,EAAE,aAGTP,IAAAC,cAAA,aACEmhF,GAA2C,GAAzBA,EAAe7hF,OACjC6hF,EAAenoE,IAAI,CAACzQ,EAAMwM,IAExBhV,IAAAC,cAAA,MAAIgV,IAAKD,GACRhV,IAAAC,cAAA,MAAIE,UAAU,2BACZqI,EAAKm5E,YAEP3hF,IAAAC,cAAA,UACE0N,YACAiC,WAAWpH,EAAKw4C,QAChB,GACA,IAGFhhD,IAAAC,cAAA,UACE0N,YAAyBiC,WAAWpH,EAAKo5E,UAAW,IAEtD5hF,IAAAC,cAAA,UAAKuI,EAAK0iE,UAIVtkD,EACH5mB,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GACZ5oB,IAAAC,cAAA,OACCwM,MAAO,CACNoc,UAAW,SACXC,UAAW,OACXpc,aAAc,SAGf1M,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,SAGT1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,WAM5CP,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GAAIroB,EAAE,uBAOxBimB,EAAoB,GACpBxmB,IAAAC,cAAC8oB,KAAa,CACbC,WAAYxC,EACZyC,oBAAqBu4D,EACrB96D,mBAAoBA,EACpBwC,eAAgBvC,MCONk7D,OAzMOA,KAAO,IAAD17D,EAAAC,EAAAC,EACZ3lB,cAAf,IACI4lB,EAAYC,cAChB,MAAM1nB,EAAYC,eACZ,EAAEyB,EAAC,KAAE+f,GAAS9f,eACbgmB,EAAmBC,GAAwBpnB,mBAAS,IACpDqnB,EAAoBC,GAAyBtnB,oBAAS,IACtDq8C,EAAWC,GAAgBt8C,mBAAS,KACpCunB,EAAaC,GAAkBxnB,oBAAS,IACxC+hF,EAAgBC,GAAqBhiF,mBAAS,KAC9C2nB,EAAWC,GAAgB5nB,oBACxB,OAATinB,QAAS,IAATA,GAAgB,QAAPH,EAATG,EAAWrnB,aAAK,IAAAknB,OAAP,EAATA,EAAkBe,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAAcmnB,OAC7D,cAEAP,MAASC,QAAQ,QAAQM,OAAO,gBAE7BL,EAASC,GAAcjoB,oBACpB,OAATinB,QAAS,IAATA,GAAgB,QAAPF,EAATE,EAAWrnB,aAAK,IAAAmnB,OAAP,EAATA,EAAkBc,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAAcmnB,OAC7D,cAEAP,MAASI,MAAM,QAAQG,OAAO,gBAE3B45D,EAAeC,GAAoBliF,mBAAS,KAC5CmoB,EAAoBC,GAAyBpoB,oBAC1C,OAATinB,QAAS,IAATA,GAAgB,QAAPD,EAATC,EAAWrnB,aAAK,IAAAonB,OAAP,EAATA,EAAkBa,MACfZ,EAAUrnB,MAAMioB,KAChBC,MAASC,QAAQ,QAAQM,OAAO,cAChCnnB,EAAE,MACF4mB,MAASI,MAAM,QAAQG,OAAO,eA0BlCloB,eAAegiF,EAAkB55D,EAAMC,GACtCw5D,EAAkB,IAClBx6D,GAAe,GACf,IAEC,IAAIkB,EAAqB,KADzBH,EAAOA,GAAc,GACD,GAEhBrf,EACH1kB,IAAOmN,wBACP,cACAm2B,IAAOH,GAAWI,QAAQ,OAAOM,OAAO,cACxC,YACAP,IAAOE,GAASE,MAAM,OAAOG,OAAO,cACpC,MACAP,IAAOH,GAAWI,QAAQ,OAAOM,OAAO,cAIzC65D,EAFAh5E,EAASA,EAAS,UAAYwf,EAAQ,aAItC,IAAI/f,QAAqBC,IAAU1R,IAAIgS,GAEvC,GAAIP,EAAa/kB,IAAOC,kBAAmB,CAC1Cm+F,EACCr5E,EAAa/kB,IAAOG,eAAeH,IAAOG,gBAG3C,IAAI4kC,EAAahgB,EAAa/kB,IAAOG,eAAe4kC,WAiBrBC,EAhBNC,KAAKC,KAAKH,EAAa,IAiBlDvB,EAAsB2B,GAAcH,QAflCppB,EACC0hB,aACCvY,EAAa/kB,IAAOC,kBACpBqd,EAAEyH,EAAa/kB,IAAOE,qBAIxB,MAAOklC,GACRxpB,EAAUiL,cAAoB,EAAOue,IAMvC,IAAkCJ,EAJjCpB,GAAe,GAQhB,OAnEAvnB,oBAAU,KACTkiF,KACE,CAACx6D,EAAWK,IAEf/nB,oBAAU,KACLonB,GACHi1B,EAAa,KAEZ,CAACj1B,IAEJpnB,oBAAU,KACT,GAAiB,IAAbo8C,EAAiB,CACpB,IAAI+lC,EAAWL,EACXM,EAA6B1G,kBAAQyG,EAAU,CAAC,UAAW/lC,GAE/D2lC,EAAkBK,KAEjB,CAAChmC,IAmDH17C,IAAAC,cAAA,OAAKE,UAAU,mCAAmCuJ,GAAG,cACpD1J,IAAAC,cAAA,MAAIE,UAAU,wBAAwBI,EAAE,kBACxCP,IAAAC,cAACqoB,IACA,CACAtB,UAAWA,EACXK,QAASA,EACTJ,aAAcA,EACdK,WAAYA,EACZiB,OAAQA,CAACR,EAAOS,KACfvB,EAAac,GACbT,EAAWkB,IAEZC,SAAS,EACTC,YAAalB,EAEbmB,aAvFyBpqB,IAC3BkpB,EAAsBlpB,MAwFrByB,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,sBACdH,IAAAC,cAAA,SAAOE,UAAU,mBAChBH,IAAAC,cAAA,aACCD,IAAAC,cAAA,UACCD,IAAAC,cAAA,UAAKM,EAAE,SACPP,IAAAC,cAAA,UAAKM,EAAE,WACPP,IAAAC,cAAA,UAAKM,EAAE,UACPP,IAAAC,cAAA,UAAKM,EAAE,aAGTP,IAAAC,cAAA,aACEmhF,GAA2C,GAAzBA,EAAe7hF,OACjC6hF,EAAenoE,IAAI,CAACzQ,EAAMwM,IAExBhV,IAAAC,cAAA,MAAIgV,IAAKD,GACRhV,IAAAC,cAAA,MAAIE,UAAU,2BACZqI,EAAKm5E,YAEP3hF,IAAAC,cAAA,UACE0N,YACAiC,WAAWpH,EAAKw4C,QAChB,GACA,IAGFhhD,IAAAC,cAAA,UACE0N,YAAyBiC,WAAWpH,EAAKo5E,UAAW,IAEtD5hF,IAAAC,cAAA,UAAKuI,EAAK0iE,UAIVtkD,EACH5mB,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GACZ5oB,IAAAC,cAAA,OACCwM,MAAO,CACNoc,UAAW,SACXC,UAAW,OACXpc,aAAc,SAGf1M,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,SAGT1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,WAM5CP,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GAAIroB,EAAE,uBAOxBimB,EAAoB,GACpBxmB,IAAAC,cAAC8oB,KAAa,CACbC,WAAYxC,EACZyC,oBAAqBu4D,EACrB96D,mBAAoBA,EACpBwC,eAAgBvC,MC+CNm7D,OAjPaA,KAAO,IAAD37D,EAAAC,EAAAC,EAClB3lB,cAAf,IACI4lB,EAAYC,cAChB,MAAM1nB,EAAYC,eACZ,EAAEyB,EAAC,KAAE+f,GAAS9f,eACbgmB,EAAmBC,GAAwBpnB,mBAAS,IACpDqnB,EAAoBC,GAAyBtnB,oBAAS,IACtDq8C,EAAWC,GAAgBt8C,mBAAS,KACpCunB,EAAaC,GAAkBxnB,oBAAS,IACvC0iF,EAAiBC,GAAsB3iF,mBAAS,KAEjD2nB,EAAWC,GAAgB5nB,oBACxB,OAATinB,QAAS,IAATA,GAAgB,QAAPH,EAATG,EAAWrnB,aAAK,IAAAknB,OAAP,EAATA,EAAkBe,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAAcmnB,OAC7D,cAEAP,MAASC,QAAQ,QAAQM,OAAO,gBAE7BL,EAASC,GAAcjoB,oBACpB,OAATinB,QAAS,IAATA,GAAgB,QAAPF,EAATE,EAAWrnB,aAAK,IAAAmnB,OAAP,EAATA,EAAkBc,MACfC,IAAOb,EAAUrnB,MAAMioB,KAAK9R,MAAM7U,EAAE,OAAO,GAAI,cAAcmnB,OAC7D,cAEAP,MAASI,MAAM,QAAQG,OAAO,gBAE3B45D,EAAeC,GAAoBliF,mBAAS,KAC5CmoB,EAAoBC,GAAyBpoB,oBAC1C,OAATinB,QAAS,IAATA,GAAgB,QAAPD,EAATC,EAAWrnB,aAAK,IAAAonB,OAAP,EAATA,EAAkBa,MACfZ,EAAUrnB,MAAMioB,KAChBC,MAASC,QAAQ,QAAQM,OAAO,cAChCnnB,EAAE,MACF4mB,MAASI,MAAM,QAAQG,OAAO,eAsHlC,OA/GApoB,oBAAU,MAoBVE,iBACCwiF,EAAmB,IACnBn7D,GAAe,GACf,IAIC,IAAIte,EACH1kB,IAAO6N,+BACP,cACAy1B,IAAOH,GAAWI,QAAQ,OAAOM,OAAO,cACxC,YACAP,IAAOE,GAASE,MAAM,OAAOG,OAAO,cAErCnf,EAASA,EAET,IAAIP,QAAqBC,IAAU1R,IAAIgS,GACvCqxB,QAAQC,IAAI7xB,EAAa/kB,IAAOG,eAAeH,IAAOG,gBAElD4kB,EAAa/kB,IAAOC,kBACvB8+F,EACCh6E,EAAa/kB,IAAOG,eAAeH,IAAOG,gBAM3Cyb,EACC0hB,aACCvY,EAAa/kB,IAAOC,kBACpBqd,EAAEyH,EAAa/kB,IAAOE,qBAKzB,MAAMklC,GACNxpB,EAAUiL,cAAoB,EAAOue,IAGtCxB,GAAe,GAzDfo7D,IACE,CAACj7D,EAAWK,IA6GdrnB,IAAAC,cAAA,OAAKE,UAAU,mCAAmCuJ,GAAG,cACpD1J,IAAAC,cAAA,MAAIE,UAAU,wBAAwBI,EAAE,mBACxCP,IAAAC,cAACqoB,IACA,CACAtB,UAAWA,EACXK,QAASA,EACTJ,aAAcA,EACdK,WAAYA,EACZiB,OAAQA,CAACR,EAAOS,KACfvB,EAAac,GACbT,EAAWkB,IAEZC,SAAS,EACTC,YAAalB,EAEbmB,aAnIyBpqB,IAC3BkpB,EAAsBlpB,MAoIrByB,IAAAC,cAAA,OAAKE,UAAU,0BACdH,IAAAC,cAAA,OAAKE,UAAU,qBAAqBsM,MAAO,CAACkqD,UAAU,UACrD32D,IAAAC,cAAA,SAAOE,UAAU,mBAChBH,IAAAC,cAAA,aACCD,IAAAC,cAAA,UACCD,IAAAC,cAAA,UAAKM,EAAE,SACPP,IAAAC,cAAA,UAAKM,EAAE,SACPP,IAAAC,cAAA,UAAKM,EAAE,aACPP,IAAAC,cAAA,UAAKM,EAAE,aAGTP,IAAAC,cAAA,aACE8hF,GAA6C,GAA1BA,EAAgBxiF,OACnCwiF,EAAgB9oE,IAAI,CAACzQ,EAAMwM,IAEzBhV,IAAAC,cAAA,MAAIgV,IAAKD,GACRhV,IAAAC,cAAA,MAAIE,UAAU,2BACZgnB,IAAO3e,EAAK0e,MAAMQ,OAAO,cAE3B1nB,IAAAC,cAAA,UACEuI,EAAKwjB,MAEPhsB,IAAAC,cAAA,UACEuI,EAAK05E,oBAEPliF,IAAAC,cAAA,UACE0N,YACAiC,WAAWpH,EAAKw4C,QAChB,GACA,MAMFp6B,EACH5mB,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GACZ5oB,IAAAC,cAAA,OACCwM,MAAO,CACNoc,UAAW,SACXC,UAAW,OACXpc,aAAc,SAGf1M,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,SAGT1L,IAAAC,cAAA,QAAME,UAAU,WAAWI,EAAE,WAAW,WAM5CP,IAAAC,cAAA,UACCD,IAAAC,cAAA,MAAI2oB,QAAS,GAAIroB,EAAE,yBCpFb4hF,OAjISvjF,IACvB,IAAI,EAAE2B,GAAMC,YAAexD,IAAYC,UAEnC4B,GADW6B,cACC5B,eACAynB,cAChB,MAAO6C,EAAmBC,GAAwBhqB,oBAAS,GAClDomB,EAAoBzmB,YAAaC,GAAUA,EAAMC,SAASumB,mBAE7D+D,EAAa,CAClB,CACChrB,MAAO,qBACPD,MAAO,GAER,CACCC,MAAO,aACPD,MAAO,GAER,CACCC,MAAO,oBACPD,MAAO,GAER,CACCC,MAAO,gBACPD,MAAO,IAIH6jF,EAAoB,IACtB54D,KACC/D,EACD,CACA,CACCjnB,MAAO,iBACPD,MAAO,IAGR,KAEGkrB,EAAgBC,GAAqBrqB,mBAAS,IAC/C,WAAEsB,EAAU,WAAE22E,GAAet4E,YACjCC,GAAUA,EAAMC,SAASq4E,UAGrB8K,EAAwBrjF,YAAaC,GAAUA,EAAMC,SAAS+lB,qBAEpE3lB,oBAAU,OAMP,CAACqB,EAAY22E,IAEhB,MAAMpsE,EACLlL,IAAAC,cAAA,OACCE,UAAU,QACVgL,QAASA,IAAMtM,EAAUmmB,cAAwBq9D,KAEjDriF,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,WAI3C,OACCH,IAAAC,cAACiN,IAAK,CACLxD,GAAG,kBACHyD,MAAM,EACNhN,UAAU,0BACVkN,iBAAkB,kBAClBC,SAAU,SACVF,OAAQi1E,EACR90E,OAAQA,KAEP1O,EAAUmmB,cAAwBq9D,KAEnC70E,WAAY,QAGZxN,IAAAC,cAACwN,IAAW,CAAClC,MAAOL,GAAW3K,EAAE,mBACjCP,IAAAC,cAACyN,IAAS,CAAChE,GAAG,YAAYvJ,UAAU,4BACnCH,IAAAC,cAAA,OAAKE,UAAU,+BACdH,IAAAC,cAAA,OAAKE,UAAU,2CACdH,IAAAC,cAAA,OAAKE,UAAU,cAAcI,EAAE,gBAC/BP,IAAAC,cAAA,OAAKE,UAAU,UACZipB,EAqBDppB,IAAAC,cAAC4N,IAAO,CACPC,UAAU,SACVC,KAAK,SACLtB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,UA1BV8d,GAAcA,EAAWjqB,OAAS,EACjCS,IAAAC,cAAA,UACC6I,KAAK,aACLvK,MAAOkrB,EACPzQ,SAAW/B,IACVyS,EAAkBzS,EAAEzgB,OAAO+H,SAG3B6jF,EAAkBnpE,IAAI,CAACoF,EAAMrJ,IAE5BhV,IAAAC,cAAA,UAAQgV,IAAKD,EAAOzW,MAAO8f,EAAK9f,OAC9BgC,EAAE8d,EAAK7f,UAMZwB,IAAAC,cAAA,OAAKE,UAAU,gBAAgBI,EAAE,oBAerCP,IAAAC,cAAA,MAAIE,UAAU,gCAEI,GAAlBspB,GAAuBzpB,IAAAC,cAACs7C,GAAkB,MACxB,GAAlB9xB,GAAuBzpB,IAAAC,cAACsgF,GAAW,MACjB,GAAlB92D,GAAuBzpB,IAAAC,cAACkhF,GAAiB,MACvB,GAAlB13D,GAAuBzpB,IAAAC,cAAC4hF,GAAa,MACnB,GAAlBp4D,GAAuBzpB,IAAAC,cAAC6hF,GAAmB,S,UCu6CjCQ,OAniDQ1jF,IACrB,IAAIC,EAAYC,eACZ,EAAEyB,GAAMC,cAEZ,MAAM8J,EAASG,OAAOL,SAASE,OAEzBgL,EAAS,IAAI2oB,gBAAgB3zB,GAC7B4I,EAAShS,iBAAO,MAEhBwW,EAAoB1Y,YAAaC,GAAUA,EAAMC,SAASyY,eACzDwoB,EAAcC,GAAmB/gC,mBAAS,KAC1C8mC,EAAaC,GAAkB/mC,sBAC/BylC,EAAiBC,GAAsB1lC,oBAAS,IAChDulC,EAAmBC,GAAwBxlC,oBAAS,IACpD2lC,EAAiBC,GAAsB5lC,oBAAS,IAChD6lC,EAAiBC,GAAsB9lC,oBAAS,IAChD8I,EAAUy6B,GAAevjC,mBAAS,KAClC4/B,EAAeC,GAAoB7/B,oBAAS,IAC5CwjC,EAAoBC,GAAyBzjC,mBAAS,IACvDN,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,cAC3D,IAAI,UAAEoH,GAAcnH,YAAaC,GAAUA,EAAM8B,WACjD,MAAM2gB,EAAgB1iB,YAAaC,GAAUA,EAAMC,SAASwiB,eACtDqlB,EAAmB/nC,YAAaC,GAAUA,EAAMC,SAASmjB,YAExDljB,EAAMC,GAAWC,sBACjB+kC,EAAiBC,GAAsBhlC,sBAEvComC,EAAmBC,GAAwBrmC,oBAAS,IAEpDohC,EAAWC,GAAgBrhC,mBAAS,KACpCijC,GAAQC,IAAaljC,mBAAS,KAE9BmjC,GAAYC,IAAiBpjC,mBAAS,KAEtCuY,GAAqBC,IAA0BxY,mBAAS,KACxDg/E,GAAaC,IAAkBj/E,mBAAS,OAExCkhC,GAAkBC,IAAuBnhC,oBAAS,IAElDghC,GAAgBC,IAAqBjhC,mBAAS,KAE9CsgC,GAAmBC,IAAwBvgC,oBAAS,IAEpDwgC,GAAeC,IAAoBzgC,mBAAS,IAC5C6iC,GAAuBC,IAA4B9iC,oBAAS,IAC5DkjF,GAA8BC,IAAmCnjF,oBAAS,IAE1E+iC,GAAyBC,IAA8BhjC,oBAAS,IAChE8T,GAAkBC,IAAuB/T,oBAAS,IAElDmiC,GAASC,IAAcpiC,oBAAS,IAEhCkT,GAAiBC,IAAsBnT,mBAAS,IAChDoT,GAAoBC,IAAyBrT,mBAAS,IACtDyT,GAAaC,IAAkB1T,oBAAS,IACxCqiC,GAAYC,IAAiBtiC,oBAAS,IACtCsT,GAAUC,IAAevT,mBAASwT,WAAW,OAAW,OASxDU,GAAYC,IAAiBnU,oBAAS,IACtC+lC,GAAaC,IAAkBhmC,mBAAS,OAGxC2T,GAAQC,IAAa5T,mBAAS,GACrC,IAAI8nC,GAAkBnoC,YAAaC,GAAUA,EAAMC,SAASkjB,YAC5D,MAAOhc,GAAWC,IAAgBhH,sBAE3BgU,GAAeC,IAAoBjU,sBAMnCoS,GAAasvB,IAAkB1hC,mBAAS,KAGxCojF,GAAYC,IAAiBrjF,oBAAS,IACtCsjF,GAAmBC,IAAwBvjF,oBAAS,IACpDwjF,GAAuBC,IAA4BzjF,mBAAS,KAC5D0jF,GAAcC,IAAmB3jF,mBAAS,KAE1C4jF,GAAaC,IAAkB7jF,mBAblB,IAeb8jF,GAAmBC,IAAwB/jF,oBAAS,GAErDujB,GAAa5jB,YAAaC,GAAUA,EAAMC,SAAS0jB,YACnDE,GAAiB9jB,YAAaC,GAAUA,EAAMC,SAAS4jB,gBACvDkpD,GAAoBhtE,YAAaC,GAAUA,EAAMC,SAAS6jB,qBAC1DkB,GAAsBjlB,YAAaC,GAAUA,EAAMC,SAAS+kB,sBAE5D,SACJjM,GAAQ,aACRE,GAAY,OACZE,GAAM,YACN+mB,GAAW,SACX7mB,GAAQ,SACRimB,GAAQ,UACRa,GAAS,MACTf,GAAK,QACLgB,GAAO,QACPC,GAAO,eACPC,IACE/mB,cAIJlZ,oBAAU,KAIR,MAAMqqC,EAAqBr0B,EAAO/e,IAAI,QACZ,MAAtBozC,GAA+BxjC,EAOF,MAAtBwjC,GAA8BxjC,GACvCtH,EACE0hB,aAAY,CAEVvT,QAASzM,EAAE,qBATf1B,EAAU4iB,cAAiB,IAC3B2e,EAAgBuJ,GAChB7G,EAAsB6G,GAqH1BnqC,eAAoC0nC,GAClC,IAAI/G,EAAe+G,EACfA,EAAKztB,SAAS,QAChB0mB,EAAe+G,EAAKtL,UAAU,EAAGsL,EAAK0C,QAAQ,QAEhD,IAAIrhC,EACF1kB,IAAOkI,kCAAoC,SAAWo0C,EACpDn4B,QAAqBC,IAAU1R,IAAIgS,GACnCP,EAAa/kB,IAAOC,mBACtBwiD,GAAqB,GACrB5F,GAAiB,IAEjBjhC,EACEiL,aACE9B,EAAa/kB,IAAOC,kBACpBqd,EAAE,yCAlINspC,CAAqBF,KAUtB,IAELrqC,oBAAU,KACDqK,YAAoB00E,KACrBxmE,GAAuBwmE,GAAY9/E,QAExC,CAAC8/E,KAEF/+E,oBAAU,KACHqK,YAAoB+N,IACrB4mE,GAAe5mE,EAAkB,KAEtC,CAACA,IAEFpY,oBAAU,KACJP,EAAaQ,OAAS,GAqE5BC,iBAEE,MAAMmI,EAAQjI,eAAKX,EAAc,CAAEY,aAAc,UAC7CgI,GACFtB,GAAasB,EAAM/H,WAAW+H,EAAM9H,cAItC,MAAMsmC,EAAczmC,eAAKX,EAAc,CAAEY,aAAc,gBACnDwmC,GACFC,EAAeD,EAAYvmC,WAAWumC,EAAYtmC,cAGpD,MAAMV,EAAOO,eAAKX,EAAc,CAAEY,aAAc,SAC5CR,GACFC,EAAQD,EAAKS,WAAWT,EAAKU,cAnF7BE,IAED,CAAChB,IAEJO,oBAAU,KACJoiB,IACF0hE,IAAqB,GACrB93D,OAED,CAAC5J,IAEJpiB,oBAAU,KAEH6jF,KACHrjD,GAAiB,GACjB7sB,GAAU,GACVsvB,GAAU,IACVE,GAAc,IACdzuB,aAAaoxB,IACbpxB,aAAarB,IACb0vB,IAA2B,KAG5B,CAAC8gD,KAGJ7jF,oBAAU,KACJiT,GAAkB,GACpB8yB,GACExyB,WAAW,KAETL,GADiBD,GAAkB,IArHpB,OA0HpB,CAACA,KAEJjT,oBAAU,KACJmT,GAAqB,GACvBG,GACEC,WAAW,KAETH,GADiBD,GAAqB,IAhIvB,OAqIpB,CAACA,KAGJ,MAAM6Y,GAAO9rB,UAEX,IAAIwI,QAAqBC,IAAU1R,IAAI1S,IAAOoN,0BAE9C,GAAI+W,EAAa/kB,IAAOC,kBAAmB,CACzC,IAAI45C,EAAc90B,EAAa/kB,IAAOG,eAClC05C,IACF8lD,GAAqB9lD,EAAYumD,0BACjCX,GAAc5lD,EAAYwmD,mBAEtBxmD,EAAYymD,qBAAqBhkF,OAAS,GAC5CujF,GAAyBhmD,EAAYymD,uBAIvCzgE,IACA0gE,aAxGkB,EAwGkB,QAAS,QAAS,YA6C5D,MAMMr6C,GAAmBC,sBACvBC,mBAAS7pC,WAEoB,OAAvByX,EAAEqyB,YAAY9gC,MADL,qDAC6BkQ,KAAKzB,EAAEqyB,YAAY9gC,QAC3Dk4B,EAAazpB,EAAEzgB,OAAO+H,QAEvB,KACH,IAkJFiB,eAAe6V,GAAWJ,EAAKD,GAO7B,IAAIE,EAAS7B,GACT8B,EAAYF,EAAIG,MAAM,IACd,WAARH,GAA4B,WAARA,GACtBC,EAASD,EACT3B,GAAiB4B,GACQ,IAArBC,EAAU5V,SAEZ+T,GAAiB,IACjBF,IAAoB,GACpBI,IAAc,SAvGpBhU,eAAyBupC,GACvB,IAAIzzB,EAAS,CACXpN,SAAUu4B,EACVuI,MAAO1G,GACPn6B,SAAUA,EACVsJ,aAAqC,IAAvBmG,GAA4BF,EAAkB,GAAGnZ,MAAQqZ,IAAuByoB,GAC9FF,aAAc0C,EACdoG,IAAKF,EACLnmB,WAAaA,IAGf,QAAwBxC,GAApB2mB,EAA+B,CACpC,MAAM08C,EAAcltF,cAAIwwC,EAAiB,GAAI,QAE5CtzC,aAAaC,QAAQC,IAAWC,YACe,cAA/CH,aAAaC,QAAQC,IAAWC,iBAK1BwsB,GAFL2mB,EAAiBrnC,KACfiJ,GAAMA,EAAEu+B,OAASzzC,aAAaC,QAAQC,IAAWC,YAG9C0hB,EAAwB,gBAAIyxB,EAAiBrnC,KAC1CiJ,GAAMA,EAAEu+B,OAASzzC,aAAaC,QAAQC,IAAWC,YAClDszC,KAKR5xB,EAAwB,gBAAImuE,EAK5B,IAAIz7E,QAAqBC,IAAUiM,KACjCrwB,IAAOM,cACPuxB,YAAeJ,IAEbtN,EAAa/kB,IAAOC,mBACtB48C,GAAiB,GACjBjhC,EACE0hB,aAAY,CACVxT,KAAM1S,IAAWG,SACjBwS,QAASzM,EAAE,0BACX0M,UAAWzN,UACLwI,EAAa/kB,IAAOC,oBAClB8kB,EAAa/kB,IAAOG,gBAEtByb,EAAU4iB,cAAiB,IAC3B2hE,IAAqB,GAEnBvkF,EADsB,GAArBmtE,GACSlrD,cAAgB,GAGhBsE,cAAqB,KAIjC3a,OAAOL,SAASoC,QAAQ,+BAS9BxE,EAAa/kB,IAAOG,gBACtByzE,YAAe,KACRvhC,eAAe5hC,QAAQ,kCAC1B+W,OAAOysD,IAAI,QAAS,wBACpB5hC,eAAexhC,QAAQ,+BAAgC,aAK7D+K,EACEiL,cAAoB,EAAOvJ,EAAEyH,EAAa/kB,IAAOE,qBAEnD+vB,EAAgB,QAAEuB,SA0BVy0B,CAAUh0B,GAEhB1B,IAAc,GACdJ,IAAoB,KAGtBF,EAAgB,QAAEuB,QA0GtB,MAAMivE,GAAalkF,MAAOgJ,EAAMyO,KAI9B,GAHAguB,GAAmB,GACnBE,GAAmB,GAEfzD,KAEE5uB,IAAeP,GAAkB,GAAG,CAEtC,IAAI+C,EAAS,GACb,GAlegB,GAkeZ2tE,GAA8B,OA3GxCzjF,eAA0BwpC,GACxB,IAAIyE,GAAQ,EACRzlC,QAAqBC,IAAU1R,IACjC1S,IAAOmK,iBAAmB,UAAYg7C,EAAQ,SAAW7I,GAS3D,OAPAsN,EAAQzlC,EAAa/kB,IAAOC,kBACxB8kB,EAAa/kB,IAAOC,kBAMjBuqD,EAgGsBwB,CAAWzmC,EAAKwgC,OAErC1zB,EAAS,CACP7D,aAAqC,IAAvBmG,GAA4BF,EAAkB,GAAGnZ,MAAQqZ,IAAuByoB,GAC9FF,aAAc0C,EACdmG,MAAOxgC,EAAKwgC,MACZzzB,aAAc,KACd1O,UAAW0L,GACXiD,UAAW1C,GACX/F,KAAMk2E,GACNxtE,MAAO,iBAKT6C,GAAS,QAAS,CAAEe,QAAS9Y,EAAE,iBAC/B0kC,GAAmB,GACnBE,GAAmB,SAGrB7vB,EAAS,CACP7D,aAAqC,IAAvBmG,GAA4BF,EAAkB,GAAGnZ,MAAQqZ,IAAuByoB,GAC9FF,aAAc0C,EAEdttB,aAAc,KACd1O,UAAW0L,GACXiD,UAAW1C,GACX/F,KA/fU,EAggBV0I,MAAO,uBAgBcxN,IAAUiM,KACjCrwB,IAAOkK,kBACP2nB,YAAeJ,KAEEryB,IAAOC,oBAnhBV,GAshBN+/F,KACA1gD,GAAU/5B,EAAKwgC,OACfvG,GAAc,IAAIyM,OAAO,GAAK1mC,EAAKwgC,MAAMmG,OAAO,KAEpD1N,IAAW,GACX1uB,IAAe,GACfP,GAAmB,GACnBA,GAAmBmD,IAEnB1C,GAAUD,GAAS,GACnBH,WAAW,KAEPE,IAAe,IAljBN,KAojBbovB,IAAyB,GACzBrC,GAAiB,GACjBuC,IAA2B,IAUrCV,IAAc,GACd3tB,aAAarB,IACbqB,aAAaoxB,IACb1yB,GAAsBiD,IAEtB9C,WAAW,KACT8uB,IAAc,IACbyN,KAEHnK,GAAmB,GACnBE,GAAmB,IAoLrB,OACEnlC,IAAAC,cAACiN,IAAK,CACJxD,GAAG,0BACHyD,MAAM,EACNE,iBAAkB,0BAClBD,OAAQsU,EACRnU,OAAQA,KACN1O,EAAU4iB,cAAkBC,IAC5B0hE,IAAqB,IAEvB91E,SAAU,SACVigC,UAAQ,GAERvtC,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKE,UAAU,sBACbH,IAAAC,cAAA,OAAKE,UAAU,WACbH,IAAAC,cAAA,OAAKG,IAAKjB,EAAMgB,UAAU,iBAAiByL,IAAI,UAEjD5L,IAAAC,cAAA,OACEE,UAAU,iBACVgL,QAASA,KACHmK,EAAO/e,IAAI,SAAW4pC,GACxBC,EAAgB,IAElBvhC,EAAU4iB,cAAiB,IAC3B2hE,IAAqB,KAIvBpjF,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,YAG7CH,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAAA,OAAKE,UAAU,QAEbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OACEG,IAAK+lC,EACLhmC,UAAU,iBACVyL,IAAI,qCAIV5L,IAAAC,cAAA,OAAKE,UAAU,SACK,GAAjB0/B,IACC7/B,IAAAC,cAAA,QACE2Y,SAAUV,GA9NE1Y,MAAOgJ,EAAMyO,KACvC,GAAI6L,KAEa,IADF6gE,aAAgBn7E,EAAKo7E,cAK5B,YAHA/kF,EACIiL,cAAoB,EAAOvJ,EAAE,oBAMzCwkC,GAAmB,GACnBF,GAAqB,GAErBjC,EAAYp6B,EAAKL,UACd8b,KACHzb,EAAKN,UAAmC,IAAvB0P,GAA4BF,EAAkB,GAAGnZ,MAAQqZ,IAAuByoB,IAEjG,IAAImN,QAzYNhuC,eAA6B0I,GAC3B,IAAIulC,GAAQ,EAWZ,OAHAA,SAPyBxlC,IAAU1R,IACjC1S,IAAOmC,oBACP,aACAkiB,EACA,SACAi4B,IAEmBl9C,IAAOC,kBAGrBuqD,EA6XmBC,CAAcllC,EAAKN,UACzCylC,GAAa,EACZH,GACHl1B,GAAS,WAAY,CAAEe,QAAS9Y,EAAE,oBAGpC,IAAIqtC,EAAiB,GACjBC,GAAgB,EACpB,GAAqB,KAAjB1N,EACF,GAAIA,EAAa5gC,QAAU,GAKzB,GAJA2/B,GAAiB,GACjB0O,EAAiBzN,EACjB2C,EAAsB8K,GACtBC,QA7WNruC,eAAqC0nC,GACnC,IAAI/G,EAAe+G,EACfA,EAAKztB,SAAS,QAChB0mB,EAAe+G,EAAKtL,UAAU,EAAGsL,EAAK0C,QAAQ,QAEhD,IAAIrhC,EACF1kB,IAAOkI,kCAAoC,SAAWo0C,EAExD,eADyBl4B,IAAU1R,IAAIgS,IACtBtlB,IAAOC,kBAqWE4qD,CAAsBF,IACvCC,EAMH,OALAhvC,EACEiL,cAAoB,EAAOvJ,EAAE,yCAE/BskC,GAAqB,GACrBE,GAAmB,IACZ,OAGT7F,GAAiB,OAEd,CACL,IAAI6O,QAA4B9lC,IAAU1R,IACxC1S,IAAO2L,+BAET,IAAIu+C,EAAoB9qD,IAAOC,kBAU7B,OALA2b,EACEiL,cAAoB,EAAOvJ,EAAE,yCAE/BskC,GAAqB,GACrBE,GAAmB,IACZ,EATP6I,EAAiBG,EAAoB9qD,IAAOG,eAAe8jD,KAE3DpE,EAAsB8K,GAW1B,IAAI10B,EAAiC,IAAvBtB,GAA4BF,EAAkB,GAAGnZ,MAAQqZ,GACvE,GAC4B,qBAAnByoB,KACNnnB,EAASmnB,IAAgB9gC,QAAU,IAEpC,IAAK6Y,GAAO3G,aAAe+7B,EACzB,GAAK5qB,GAGA,CACD,IAAItN,EAAS,CACT7D,aAAwB,IAAVyH,EAAexB,EAAkB,GAAGnZ,MAAQ2a,GAAUmnB,GACpEF,aAAcyN,EACdr4B,aAAc,KACd1O,UAAW,EACX2O,UAAU,EACVzI,KAAMk2E,GACNxtE,MAAO,gBAGPzN,QAAqBC,IAAUiM,KACjCrwB,IAAOkK,kBACP2nB,YAAeJ,IAEjB,GAAItN,EAAa/kB,IAAOC,kBAAmB,CACzC,MAAM8qD,GAAqB,IAAV90B,EAAexB,EAAkB,GAAGnZ,MAAQ2a,GAAUmnB,GACjE/rB,EACJ25B,MAAMC,KAAK,CAAE3uC,OAAQyuC,EAAQzuC,OAAS,EAAI,GAAK,IAAM,KAAKitB,KAAK,IAC/DwhB,EAAQr1B,OAAO,GACjBooB,GAAezsB,GACfosB,EAAal4B,EAAKN,UAClBs4B,IAAoB,GACpBmN,GAAa,OAEb9uC,EACE0hB,aAAY,CACVvU,QAAQ,EACRP,WACEzL,IAAAC,cAAA,OACEE,UAAU,SACVC,IAAKgG,GACLsF,OAAO,QACPC,MAAM,QACNC,IAAI,gBAGRoB,QAASzM,EAAEyH,EAAa/kB,IAAOE,sBAGnCwqD,GAAa,EACbnN,IAAoB,cAxShChhC,eAAkCgJ,EAAMolC,GACpC,IAAIt4B,EAAS,CACTpN,SAAUM,EAAKN,SACf8gC,MAAO1G,GACPn6B,SAAUK,EAAKL,SACfsJ,aAAqC,IAAvBmG,GAA4BF,EAAkB,GAAGnZ,MAAQqZ,IAAuByoB,GAC9FwjD,YAAqC,IAAvBjsE,GAA4BF,EAAkB,GAAGnZ,MAAQqZ,GACvEuoB,aAAcyN,EACdhrB,WAAYA,IAGhB,QAAwBxC,GAApB2mB,EAA+B,CAC/B,MAAM08C,EAAcltF,cAAIwwC,EAAiB,GAAI,QAEzCtzC,aAAaC,QAAQC,IAAWC,YACe,cAA/CH,aAAaC,QAAQC,IAAWC,iBAKvBwsB,GAFL2mB,EAAiBrnC,KACZiJ,GAAMA,EAAEu+B,OAASzzC,aAAaC,QAAQC,IAAWC,YAGtD0hB,EAAwB,gBAAIyxB,EAAiBrnC,KACxCiJ,GAAMA,EAAEu+B,OAASzzC,aAAaC,QAAQC,IAAWC,YACpDszC,KAKN5xB,EAAwB,gBAAImuE,EAKpC,IAAIz7E,QAAqBC,IAAUiM,KAC/BrwB,IAAOM,cACPuxB,YAAeJ,IAEftN,EAAa/kB,IAAOC,mBACpB2b,EACI0hB,aAAY,CACRxT,KAAM1S,IAAWG,SACjBwS,QAASzM,EAAE,0BACX0M,UAAWzN,UACHwI,EAAa/kB,IAAOC,oBAChB8kB,EAAa/kB,IAAOG,gBAEpByb,EAAU4iB,cAAiB,IAC3B2hE,IAAqB,GAGnBvkF,EADsB,GAArBmtE,GACSlrD,cAAgB,GAGhBsE,cAAqB,KAIjC3a,OAAOL,SAASoC,QAAQ,+BASxCxE,EAAa/kB,IAAOG,gBACtByzE,YAAe,KACRvhC,eAAe5hC,QAAQ,kCAC1B+W,OAAOysD,IAAI,QAAS,wBACpB5hC,eAAexhC,QAAQ,+BAAgC,YAK7D+K,EACIiL,cAAoB,EAAOvJ,EAAEyH,EAAa/kB,IAAOE,qBAgL7C2gG,CAAmBt7E,EAAMolC,QAgDrCt1B,GAAS,gBAAiB,CAAEe,QAAS9Y,EAAE,0BAGrCitC,IAAkBG,GAAcE,GAAiBjrB,KACnDlQ,GAAsBiD,IACtBnD,GAAmBmD,IACnBmqB,GAAiB,GACjBuC,IAA2B,IAE7BwC,GAAqB,GACrBE,GAAmB,KAiGL5rB,aAAa,OAEbnZ,IAAAC,cAAA,OAAKE,UAAU,eACX8jB,IAAuBjkB,IAAAC,cAAA,OAAKE,UAAU,2BACtCH,IAAAC,cAAA,aAAQM,EAAE,mBACVP,IAAAC,cAAA,WACED,IAAAC,cAACmuC,IAAK,CACJv9B,IAAKmH,GAAS,CACZe,UAAU,EAIVQ,QAAS,CACPhb,MAAO,uCACP8a,QAAS9Y,EACP,gFAINmJ,GAAG,gBACHZ,KAAK,WAILulC,QAASlF,GACT/wB,OAAQA,GACRjY,UAAU,uBACVmuC,WAAS,EACTn1B,aAAa,MACbK,UAAYvC,IACV,MAAMhC,EAAMgC,EAAEhC,IAId,IAAK,WAAWyD,KAAKzD,KAHD,CAAC,YAAa,YAAa,aAAc,SAAU,OAG7BwE,SAASxE,GACjD,GAAI,QAAQyD,KAAKzD,GAAM,CACrBgC,EAAEyC,iBACF,MAAMqO,EAAQ9Q,EAAEzgB,OAAO+3C,eACjB/lB,EAAMvR,EAAEzgB,OAAOg4C,aAGrBv3B,EAAEzgB,OAAO+H,MAAQ0Y,EAAEzgB,OAAO+H,MAAMoa,MAAM,EAAGoP,GAAS9S,EAAI8W,cAAgB9U,EAAEzgB,OAAO+H,MAAMoa,MAAM6P,GAE3FvR,EAAEzgB,OAAOi4C,kBAAkB1mB,EAAQ,EAAGA,EAAQ,QAG9C9Q,EAAEyC,sBAQd1Z,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAAA,aAAQM,EAAE,mBAEZP,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,UACE+Y,SAAW/B,IACTqnE,GAAe5mE,EAAkBT,EAAEzgB,OAAO+H,UAG3CmZ,EAAkBuB,IAAI,CAACC,EAAQlE,IAE5BhV,IAAAC,cAAA,UACEgV,IAAKD,EACL7U,UAAW,iBAAmB6U,EAAQ,GACtCzW,MAAOyW,GAENkE,EAAO1a,UAMlBwB,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,SACE6I,KAAK,gBACL3I,UAAU,uBACVgZ,aAAa,MACbxE,UAAU,UACV9D,IAAKmH,GAAS,CACZe,SAAU,CACRxa,OAAO,EACP8a,QAAS9Y,EAAE,yBAEb6Y,UAAW,CACT7a,MAAsB,MAAf8/E,GAAsBA,GAAYhrD,IAAM,EAC/Cha,QAAS9Y,EAAE,iBAAkB,CAAEhB,OAAuB,MAAf8+E,GAAsBA,GAAYhrD,IAAM,KAEjF/Z,UAAW,CACT/a,MAAsB,MAAf8/E,GAAsBA,GAAY/qD,IAAM,GAC/Cja,QAAS9Y,EAAE,iBAAkB,CAAEhB,OAAuB,MAAf8+E,GAAsBA,GAAY/qD,IAAM,MAEjF/Z,QAAS,CACPhb,MAAO,YACP8a,QACE9Y,EAAE,iBAAkB,CAAEhB,OAAuB,MAAf8+E,GAAsBA,GAAYhrD,IAAM,IACtE,IACA9yB,EAAE,OACF,IACAA,EAAE,mBAGR6X,OAAQA,GACRoB,UAAYvC,IACV,MAAMhC,EAAMgC,EAAEhC,IAUX,QAAQyD,KAAKzD,IATI,CAClB,YACA,YACA,aACA,SACA,OAKawE,SAASxE,IAEtBgC,EAAEyC,iBAKsB,IADPzC,EAAEzgB,OAAO+H,MACbgB,QAAwB,MAAR0V,GAC7BgC,EAAEyC,kBAGNV,SAAW/B,IACT,IAAI0C,EAAW1C,EAAEzgB,OAAO+H,MAGxBob,EAAWA,EAASnN,QAAQ,UAAW,IAGvCmN,EAAWA,EAASnN,QAAQ,MAAO,IAEnC+xB,GAAS,gBAAiB5kB,EAAU,CAAE8lE,gBAAgB,IAjtBhF,SAAkBxoE,GAEhB,IAAI1Y,EAAQ0Y,EAAEzgB,OAAO+H,MAGrB,IAJW,aAIJma,KAAKna,GASV,OAAO,EAPHA,EAAMgB,OAAS,KACjBhB,EAAQA,EAAMoa,MAAM,EAAG,KAIzB2nB,GAAkB/hC,GAwsBImwC,CAASz3B,GAGTA,EAAEzgB,OAAO+H,MAAQob,KAKA,GAApB4mB,GACCvgC,IAAAC,cAAA,OAAKE,UAAU,4CACbH,IAAAC,cAAA,OAAKE,UAAU,4CACZI,EAAE,0BAGL6X,GAAOwB,cACT5Z,IAAAC,cAAA,OAAKE,UAAU,4CACbH,IAAAC,cAAA,OAAKE,UAAU,4CACZI,EAAE6X,GAAOwB,cAAcP,WAI5B,KAINrZ,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAAA,aAAQM,EAAE,wBACVP,IAAAC,cAAA,OAAKwM,MAAO,CAAEmE,SAAU,aACtB5Q,IAAAC,cAACmuC,IAAK,CACJv9B,IAAKmH,GAAS,CACZe,UAAU,EACVK,UAAW,CACT7a,MA/+BC,EAg/BD8a,QAAS9Y,EAAE,iBAAkB,CAC3BhB,OAj/BD,KAo/BHga,QAAS,CACPhb,MACE,6CACF8a,QAAS9Y,EAAE,uBAGfiZ,UAAYvC,IACV,MAAMhC,EAAMgC,EAAEhC,IAUX,cAAcyD,KAAKzD,IATF,CAClB,YACA,YACA,aACA,SACA,OAKawE,SAASxE,IAEtBgC,EAAEyC,kBAGNtB,OAAQA,GACR1O,GAAG,WACHZ,KAAK,WACLiE,KAAM4yB,GAAoB,WAAa,OACvCx/B,UAAU,uBACVgZ,aAAa,eACbm1B,WAAS,IAEXtuC,IAAAC,cAACmL,IAAK,CACJC,KACEs0B,GACIr0B,IAAWqjC,WACXrjC,IAAWsjC,IAEjBzuC,UAAU,uBACVsM,MAAO,CAAEoiC,IAAK,QACd1jC,QAASA,IACPy0B,IAAsBD,QAM9B3/B,IAAAC,cAAA,OAAKE,UAAU,aACbH,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWwjC,iBACjB3uC,UAAU,4BAEXI,EAAE,6BAA6B,MAElCP,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWwjC,iBACjB3uC,UAAU,4BAEXI,EAAE,2BAELP,IAAAC,cAAA,OAAKE,UAAU,6BACbH,IAAAC,cAACmL,IAAK,CACJC,KAAMC,IAAWwjC,iBACjB3uC,UAAU,4BAEXI,EAAE,wBAGPP,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAAA,aACGM,EAAE,6BAA6B,KAAGA,EAAE,YAAY,KAEnDP,IAAAC,cAAA,WACED,IAAAC,cAACmuC,IAAK,CACJ1kC,GAAG,WACHZ,KAAK,WACL3I,UACE,wBACCslC,EAAoB,YAAc,IAErC4I,QAAUp3B,IAAQ6rB,EAAsB7rB,EAAEzgB,OAAO+H,OA12B3C0Y,MAED,OAAvBA,EAAEqyB,YAAY9gC,MADL,kBAC6BkQ,KAAKzB,EAAEqyB,YAAY9gC,QAC3D43B,EAAgBnpB,EAAEzgB,OAAO+H,QAu2BoDwwC,CAAqB93B,IAC9E1Y,MAAO4hC,EACPmO,WAAS,KAIZrP,GACCj/B,IAAAC,cAAA,OAAKE,UAAU,iDACbH,IAAAC,cAAA,OAAKE,UAAU,4CACZI,EAAE,4BAKVuiB,IACG9iB,IAAAC,cAAA,OAAKE,UAAU,2BACXH,IAAAC,cAAA,OAAKwM,MAAO,CAAEmgB,QAAS,SACnB5sB,IAAAC,cAAA,SACI6I,KAAK,eACL+H,IAAKmH,GAAS,CACVe,SAAU,uBACVK,UAAW,CACP7a,MArhClB,EAshCkB8a,QAAS,gCAEbC,UAAW,CACP/a,MAzhClB,EA0hCkB8a,QAAS,kCAGjBtM,KAAK,OACL5M,UAAU,+BACVkvC,YAAa9uC,EAAE,0BAEnBP,IAAAC,cAAA,OAAKE,UAAU,kBACXH,IAAAC,cAAA,WACID,IAAAC,cAAC8jF,KAA0B,SAItC3rE,GAAOwrE,cACJ5jF,IAAAC,cAAA,OAAKE,UAAU,oBACVI,EAAE6X,GAAOwrE,aAAavqE,WAKvCrZ,IAAAC,cAAA,OAAKE,UAAU,yBACdyiB,IACC5iB,IAAAC,cAAAD,IAAAE,SAAA,KACCyiF,IAAqBE,GAAsBtjF,OAAS,GACnDsjF,GAAsB5pE,IAAI,CAACoF,EAAMrJ,IAE7BhV,IAAAC,cAAA,UACEE,UAAU,sBACV4M,KAAK,SACL5B,QAASA,KACP63E,GAAgB3kE,EAAKvV,MACJ,YAAbuV,EAAKvV,KACPo6E,GA5lCR,GA8lCQA,GA7lCP,IAimCG72E,SAAUy4B,GAETF,GAAqBm+C,IAAgB1kE,EAAKvV,KACzC9I,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAEL,GAAAla,OAERuM,EAAE,gBAAe,KAAAvM,OAAIqqB,EAAKvV,QAMtC25E,IAA8C,GAAhCI,GAAsBtjF,QACnCS,IAAAC,cAAA,WACED,IAAAC,cAAA,UACEE,UAAU,sBACV4M,KAAK,SACL5B,QAASA,IAAM+3E,GA/nCrB,GAgoCM72E,SAAUy4B,GAETF,EACC5kC,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAIhB3N,EAAE,gBAOVqiB,IACE5iB,IAAAC,cAAA,WACID,IAAAC,cAAA,UACIE,UAAU,sBACV4M,KAAK,SACL5B,QAASA,IAAM+3E,GA5pCzB,GA6pCU72E,SAAUy4B,GAETF,EACG5kC,IAAAC,cAAC4N,IAAO,CACJ1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACHwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAIpB3N,EAAE,eAMlBP,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,YAAOM,EAAE,4BAAmC,IAC5CP,IAAAC,cAAA,KACEE,UAAU,mBACVgL,QAASA,KACPtM,EAAU4iB,cAAiB,IAC3B2hE,IAAqB,GAErBvkF,EAAU0iB,cAAc,MAGzBhhB,EAAE,iBAOK,GAAjBs/B,IACC7/B,IAAAC,cAAAD,IAAAE,SAAA,KACGkiC,IACCpiC,IAAAC,cAAA,OAAKE,UAAU,iBACbH,IAAAC,cAAA,MAAIE,UAAU,qBACXI,EAAE,uBAELP,IAAAC,cAAA,OAAKE,UAAU,sBACZI,EAAE,6BAA8B,IAClB,IAAdiiC,GAAmBA,GAAa/wB,GAAY,KAE/CzR,IAAAC,cAACyU,IAAQ,CACPnV,OAAQ,EAERsR,IAAKqC,EAELnG,KAAK,UACLV,SAAU8G,GACVwB,UAAU,UACVC,WAAY,CAAEC,OAAQ,IAAK/H,OAAQ,WACnCgI,cAAe,oBACfC,WAAYA,CAACxW,EAAOyW,KAClBK,GAAW9W,MAOdijC,IAA8B,GAAnBjvB,IACVvS,IAAAC,cAAA,KAAGE,UAAU,6BACVI,EAAE,YAAY,IAAEgS,GAAgB,KAIpCgB,GACCvT,IAAAC,cAAA,OAAKE,UAAU,QACbH,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,MAKlB,GAGkB,GAAnBqE,IACCvS,IAAAC,cAAA,WACED,IAAAC,cAAA,UACEE,UAAU,gBACVsM,MAAO,CACLuiC,WAAY,OACZn6B,OAAQ,OACRkY,QAAS,EACThc,OAAQ,YAGTxQ,EAAE,yCAES,GAAVyS,IACEhT,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,WACAD,IAAAC,cAAA,QACEqM,wBAAyB,CACvBC,OAAQhM,EACN,sCACA,CAAExM,IArxCb,mBA6xCQ,GAAVif,IAvxCL,GAuxCoBiwE,IACdjjF,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,WACGwiF,IAECziF,IAAAC,cAAA,UACAE,UAAU,2BACVgL,QAASA,KAEPu4E,KACAR,GAAe,IAEjB72E,YAAU8G,KAAoB+xB,IAG7BA,EACCllC,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAIhB3N,EAAE,yBAORP,IAAAC,cAAA,WACED,IAAAC,cAAA,UACEE,UAAU,2BACVgL,QAASA,KACPk3B,IAA2B,GAC3BmgD,IAAgC,GAChCU,GAh0CZ,IAk0CU72E,YAAU8G,KAAoB+xB,IAE7B3kC,EAAE,4BAOA,GAAVyS,IA50CL,GA40CoBiwE,IACVjjF,IAAAC,cAAA,WACID,IAAAC,cAAA,UACIE,UAAU,2BACVgL,QAASA,KACLk3B,IAA2B,GAC3BmgD,IAAgC,GAChCU,GAl1CpB,IAo1CgB72E,YAAU8G,KAAoB+xB,IAE7B3kC,EAAE,8BAoBvB6hC,IAA2BmgD,IAC3BviF,IAAAC,cAAA,QAAM2Y,SAAUV,GAAawrE,KAC3B1jF,IAAAC,cAAA,OAAKE,UAAU,cACbH,IAAAC,cAAA,OAAKE,UAAU,2BACbH,IAAAC,cAAA,aAAQM,EAAE,UACVP,IAAAC,cAACmuC,IAAK,CACJv9B,IAAKmH,GAAS,CACZe,UAAU,EAEVQ,QAAS,CACPhb,MACE,uEACF8a,QAAS9Y,EAAE,oBAGfmJ,GAAG,gBACHZ,KAAK,QACLumC,YAAa9uC,EAAE,SACfyY,SAjpCJs2B,IAEpB,MAAM31B,EAAW21B,EAAM94C,OAAO+H,MAAMiO,QAAQ,MAAO,IAAIuf,cACvDwW,GAAU5oB,IA+oCcvB,OAAQA,GACRjY,UAAU,uBACVmuC,WAAS,IAGXtuC,IAAAC,cAAA,OAAKE,UAAU,yBACbH,IAAAC,cAAA,WACED,IAAAC,cAAA,UACEE,UAAU,sBACVkM,SAAU24B,GAETE,EACCllC,IAAAC,cAAC4N,IAAO,CACN1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACLwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAIhB3N,EAAE,mBAWJ,GAAjBs/B,IACC7/B,IAAAC,cAAAD,IAAAE,SAAA,KACEF,IAAAC,cAAA,OAAKE,UAAU,iBACbH,IAAAC,cAAA,MAAIE,UAAU,yBACXI,EAAE,+BAQd4mC,IAAmBA,GAAgB5nC,OAAS,GAC3CS,IAAAC,cAAA,OACEE,UAAU,+DACVsM,MAAO,CAAEoc,UAAW,WAEpB7oB,IAAAC,cAAA,OAAKE,UAAU,iCACbH,IAAAC,cAAA,OAAKE,UAAU,QACZI,EAAE,kCAELP,IAAAC,cAAA,YACAD,IAAAC,cAAA,OAAKE,UAAU,yBACZ8Y,cAAIkuB,GAAiB,CAACqC,EAASx0B,IAE5BhV,IAAAC,cAAA,OACEgV,IAAKD,EACL7U,UAAU,wBACVgL,QAASA,KACFxB,YAAoB6/B,EAAQz1C,MA7vBzDyL,eAAmCgqC,GACjC,GAAI/+B,OAAOsF,mBACTtF,OAAOsF,mBAAmBC,YACxBC,KAAKC,UAAU,CACbC,OAAQ,OAERpc,IAC0C,MAAxCy1C,EAAQC,UAAUla,MAAM,aAAoB,GAAAv7B,OACrCyW,OAAOL,SAASmG,QAAMvc,OAAGw1C,EAAQz1C,KAAG,GAAAC,OACpCw1C,EAAQz1C,YAGhB,CACL,IAAIw7C,EACc,IAAhBpP,EAAqB0C,EAAqB1C,EAC5C,GAAKx2B,YAAoB6/B,EAAQz1C,KAwB/BswC,EAAmBmF,OAxBkB,CAErC,IAAIoE,EAAiB,GAErB,GAAIjkC,YAAoB4lC,GAAuB,CAC7C,IAAIxB,QAA4B9lC,IAAU1R,IACxC1S,IAAO2L,+BAELu+C,EAAoB9qD,IAAOC,mBAC7B0qD,EAAiBG,EAAoB9qD,IAAOG,eAAe8jD,KAE3DqI,EAAuB3B,GAEvB/uC,EACEiL,cACE,EACAvJ,EAAE,yCAMVkK,OAAOL,SAAS6b,KAAOujB,EAAQz1C,IAAMw7C,IAytBjBC,CAAoBhG,IAGxB/8B,MAAO,CAAEsE,OAAQ,YAEjB/Q,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,OACEG,IAAKopC,EAAQ6D,MACbltC,UAAU,iBACVyL,IAAK49B,EAAQ/zB,kBC3sC1BuuE,OA3VWzyE,IAAe,IAAd,OAAC3Q,GAAO2Q,EAC/B,IAAI1S,EAAYC,eACZ,EAAEyB,GAAMC,cACZ,MAAM+kB,EAAoBvmB,YAAaC,GAAUA,EAAMC,SAASqmB,mBAC1DxmB,EAAeC,YAAaC,GAAUA,EAAMC,SAASH,cACrDolB,EAAkBnlB,YAAaC,GAAUA,EAAMC,SAASilB,kBAEvD/d,EAAWC,GAAgBhH,mBAAS,KAEpC28C,EAAiBC,IADLj9C,YAAaC,GAAUA,EAAMC,SAAS0B,QACXvB,oBAAS,IAC1D,IAAI,UAAE8G,GAAcnH,YAAaC,GAAUA,EAAM8B,WAE9C,MAAOkjF,EAAYC,GAAiB7kF,mBAAS,KACtC8kF,EAAgBC,GAAoB/kF,oBAAS,IAC7CglF,EAAgBC,GAAoBjlF,mBAAS,IAC7CklF,EAAYC,GAAgBnlF,oBAAS,IACrColF,EAAYC,GAAgBrlF,mBAAS,KACrCslF,EAAOC,GAAWvlF,sBAClBwlF,EAAWC,GAAezlF,mBAAS,IACnC0lF,EAAgBC,GAAoB3lF,mBAAS,IAC7C4lF,EAAeC,GAAmB7lF,oBAAS,IAE5C,aACR6Y,EAAY,SACZF,EAAQ,QACRqnB,EAAO,MACPhB,EAAK,UACLe,EAAS,OACThnB,EAAM,YACN+mB,GAAW,MACX+yB,GAAK,QACL5yB,IACG9mB,cAEDlZ,oBAAU,KACH6G,GACCmlB,MAEN,CAACnlB,IACH7G,oBAAU,MA+DVE,iBACI,MAAMmI,EAAQjI,eAAKX,EAAc,CAAEY,aAAc,UAC7CgI,GACFtB,EAAasB,EAAM/H,WAAW+H,EAAM9H,cAjEtCE,GAgDJP,iBACI,IAAIwI,QAAqBC,IAAU1R,IACxC1S,IAAO4N,4BAECuW,EAAa/kB,IAAOC,kBACpB2b,EAAU2mB,aAAqBxd,EAAa/kB,IAAOG,iBAElDyb,EAAU2mB,cAAqB,IAtDnC2/D,IACF,IACF7lF,oBAAU,KACHimB,GACC+F,MAEN,CAAC/F,IAEH,MAAM+F,GAAM9rB,UAER,IAAIwI,QAAqBC,IAAU1R,IACxC1S,IAAO0N,yBAGF,GAAGyW,EAAa/kB,IAAOC,kBAEnB,GAAG8kB,EAAa/kB,IAAOG,eAAe,CAClCyb,EAAU2mB,cAAqB,IAC/B0+D,EAAcl8E,EAAa/kB,IAAOG,eAAegiG,cACjDR,EAAQ58E,EAAa/kB,IAAOG,eAAesmB,IAC3Co7E,EAAY98E,EAAa/kB,IAAOG,eAAeiiG,UAC/C,MAAMC,EAAgBt9E,EAAa/kB,IAAOG,eAAegiG,aACxDvyD,OAAOxU,GAAyB,IAAjBA,EAAKknE,SAAehmF,OAIpC,GAFA+kF,EAAiBgB,GAEdt9E,EAAa/kB,IAAOG,eAAe4oC,KAAO,GAAG,CAC5C,MAAMw5D,EAAQ,IAAI75D,KAKZ85D,EAJS,CACX,UAAW,WAAY,QAAS,QAAS,MAAO,OAChD,OAAQ,SAAU,YAAa,UAAW,WAAY,YAEjCD,EAAME,YACzBpM,EAAOkM,EAAMhzC,cACnBkyC,EAAa,GAAD1wF,OAAIyxF,EAAS,KAAAzxF,OAAIslF,IAC7BkL,GAAa,SAIjB3lF,EAAU2mB,cAAqB,SAInC3mB,EAAU2mB,cAAqB,KA2BvC,MAwDMta,GACRlL,IAAAC,cAAA,OACCE,UAAU,QACVgL,QAASA,IAAMtM,EAAUymB,cAAqB,KAE9CtlB,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,WA+CxC,OACIH,IAAAC,cAAAD,IAAAE,SAAA,KAEI+kF,GACIjlF,IAAAC,cAAA,OAAKE,UAAU,6CACXH,IAAAC,cAACuL,IAAU,CACXQ,QAAM,EACN0/D,kBAAkB,UAClBjgE,WAAYzL,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWq6E,aAAcxlF,UAAU,wBAC5DgK,MAAO5J,EAAE,mBACT0M,UAAWA,KACPi4E,GAAgB,KAInB3kF,EAAE,eAAgB,CAAEqlF,OAAQb,MAQrC/kF,IAAAC,cAACiN,IAAK,CACFC,MAAM,EACNzD,GAAG,kBACH0D,OAAQmY,EACRlY,iBAAkB,kBAElBE,OAAQA,KACJ1O,EAAUymB,cAAsBC,KAEpCgoB,UAAQ,GAERvtC,IAAAC,cAACwN,IAAW,CAAClC,MAAOL,IACnB3K,EAAE,sBAEHP,IAAAC,cAACyN,IAAS,KAEN1N,IAAAC,cAAA,OAAKE,UAAU,6BACXH,IAAAC,cAAA,OAAKE,UAAU,eACXH,IAAAC,cAAA,OAAKE,UAAU,0BACfH,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAW2hB,YAAa9sB,UAAU,uBAAsB,IAACH,IAAAC,cAAA,OAAKqM,wBAAyB,CAAEC,OAAQhM,EAAE,eAAgB,CAAEskF,SAAUA,QAE5I7kF,IAAAC,cAAA,OAAKE,UAAU,4BACTokF,GAAcvkF,IAAAC,cAAA,OAAKqM,wBAAyB,CAAEC,OAAQhM,EAAE,kBAAmB,CAAEslF,IAAKxB,QAMpFrkF,IAAAC,cAAA,OAAKE,UAAU,cACVokF,GAAcvkF,IAAAC,cAAA,OAAKE,UAAU,eAAeskF,GACjDzkF,IAAAC,cAAA,OAAKE,UAAU,qBAEP8jF,EAAWhrE,IAAI,CAACoF,EAAMrJ,KAClB,IAAI8wE,EAAa,GAOjB,OANGznE,EAAKknE,QACJO,EAAa,UACRznE,EAAK0nE,UAAY1nE,EAAKknE,UAC3BO,EAAa,UAIb9lF,IAAAC,cAAA,OAAKE,UAAS,sBAAAnM,OAAwB8xF,GAAc7wE,IAAKD,GAEtC,WAAd8wE,GAA4B9lF,IAAAC,cAAA,OAAKE,UAAU,cAAaH,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAW06E,UAAW7lF,UAAU,WACtGH,IAAAC,cAAA,OAAKE,UAAU,sBAAsBmM,wBAAyB,CAAEC,OAAQhM,EAAE,WAAY,CAAEslF,IAAKxnE,EAAK2N,UAElGhsB,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAW26E,WAAY9lF,UAAU,gBAE9CH,IAAAC,cAAA,OAAKE,UAAU,wBAAsB,GAAAnM,OAAKmwB,EAAe,KAAAnwB,OAAIqqB,EAAK2iC,aAYlFhhD,IAAAC,cAAA,OAAKE,UAAU,QACXH,IAAAC,cAAA,UAAQ8M,KAAK,SAAS5M,UAAU,4BAA4BkM,SAAU83E,EAAeh5E,QAASA,KAhMxG3L,WACtB,MAAM0mF,EAAajC,EAAWvkF,KAAK2e,GAAyB,IAAjBA,EAAK0nE,SAChD,IAAIG,EAcA,OAZArnF,EACI0hB,aAAY,CACRvU,QAAQ,EACRP,WACQzL,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAW+gC,YAAalsC,UAAU,kBAEvD6M,QAASzM,EAAE,iBACX0M,UAAWA,WAKZ,EAGX,IAAIqI,EAAS,CAIT6wE,MAAOD,EAAWx8E,GAClBi7E,KAAMA,GAIV9lF,EAAUulB,cAAe,IACzBggE,GAAiB,GAEjB,IAAIp8E,QAAqBC,IAAUiM,KACxCrwB,IAAO2N,0BACP2iB,YAAwBmB,IAGftN,EAAa/kB,IAAOC,mBAEpB8hG,EAAiBh9E,EAAa/kB,IAAOG,eAAe49D,QACpDkkC,GAAgB,GAGhBrmF,EAAUgL,qBAELyhB,MAELzsB,EAAUiL,cAAoB,EAAO9B,EAAa/kB,IAAOE,oBAG7D0b,EAAUulB,cAAe,IACzBggE,GAAiB,IA8IkHgC,KAClGpqC,EACGh8C,IAAAC,cAAC4N,IAAO,CACJ1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACPwB,cAAe,SACftC,MAAO,SACPD,OAAQ,SACRwC,WAAY,KAIhB3N,EAAE,iBAGNP,IAAAC,cAAA,UAAQ8M,KAAK,SAAS5M,UAAU,yBAAyBgL,QAASA,KAAKtM,EAAUymB,cAAqB,MAEjG/kB,EAAE,yB,UC/QhC8lF,OAxDaznF,IAC1B,IAAI,EAAE2B,GAAMC,cACZ,MAAMk7E,EAAkB18E,YACrBC,GAAUA,EAAMC,SAASymB,oBAG5B,IAAI9mB,EAAYC,cAShB,OAPAQ,oBAAU,OACP,IAEHA,oBAAU,OACP,CAACo8E,IAIF17E,IAAAC,cAACiN,IAAK,CACJxD,GAAG,2BACHyD,MAAM,EACNC,OAAQsuE,EACRpuE,SAAU,SACVC,OAAQA,KAEN1O,EAAU6mB,cAAuBg2D,MAKnC17E,IAAAC,cAACyN,IAAS,KACR1N,IAAAC,cAAA,OAAKE,UAAU,uDACbH,IAAAC,cAAA,OAAKE,UAAU,iBACbH,IAAAC,cAAA,OAAKE,UAAU,SACbH,IAAAC,cAAA,WACGM,EAAE,oBAGPP,IAAAC,cAAA,OAAKE,UAAU,UACbH,IAAAC,cAAA,OACEE,UAAU,wBACVgL,QAASA,KAEPtM,EAAU6mB,cAAuBg2D,MAInC17E,IAAAC,cAACmL,IAAK,CAACC,KAAMC,IAAWC,MAAOpL,UAAU,aAI/CH,IAAAC,cAACqmF,KAAa,U,UCrBxB,MAAMC,WAAgBvmF,IAAMwmF,UAC3BC,YAAY7nF,GAAQ,IAAD8nF,EAClBC,MAAM/nF,GAAO,KAkLdgoF,aAAe,KACd5yE,aAAa6yE,KAAKC,cAES,cAAvBD,KAAK5nF,MAAMjB,UAEQ,MAArB6oF,KAAK3rB,aACoC,MAAzC2rB,KAAKjoF,MAAM2Y,QAAQnN,SAASC,WAE5Bw8E,KAAKC,aAAej0E,WAAW,KAC9BpI,OAAOL,SAAS28E,UACdF,KAAKG,iBA3LVH,KAAKG,cAAgB,KACrBH,KAAK5nF,MAAQ,CACZjB,SAAwB,QAAhB0oF,EAAE9nF,EAAMZ,gBAAQ,IAAA0oF,IAAI,aAC5BlmB,OAAQ,KACRymB,WAAY,KACZC,WAAY,KACZhsB,YAAa2rB,KAAKjoF,MAAM2Y,QAAQnN,SAASC,SACzC88E,eAAgB,GAIlBC,eAAeC,GACd,OAAOA,EAGRC,aAAatyE,EAAOuyE,GACnB,MAAMC,EAAaX,KAAKjoF,MAAMmC,UAAUoF,UAElCshF,GADgBh0F,aAAaC,QAAQC,IAAWC,WAC/B2zF,EAAUjnB,eAAiBknB,IAsB5C,SAAEn9E,EAAQ,MAAEpL,GAAU4nF,KAAKjoF,MAAM2Y,QAAQnN,SAI/C,IAAI0rD,YAAezrD,GAIZ,CAEN,MAAMq9E,EAAwB,OAALzoF,QAAK,IAALA,OAAK,EAALA,EAAOipC,UAC1B10C,EAAgB6C,IAAOU,mBAEvBqzC,EAAQ,IAAIC,OAAO,KAADr2C,OAAMR,EAAa,UACrC22C,EAAmB9/B,EAASmC,QAAQ49B,EAAO,KAE3Cu9C,EAAetxF,IAAOuxF,aAAaz9C,GAoBzC,OAOCnqC,IAAAC,cAAC4nF,IAAK,CACL5yE,IAAKD,EACLzK,KAAMF,EACN81D,OAAO,EACPvmB,OAASh7C,GACDoB,IAAAC,cAAC6nF,IAAQ,CAACtvB,GAAI,CACpBnuD,SAAUs9E,EACV1oF,MAAO,CAAEivC,KAAMtvC,EAAMwL,SAAU89B,UAAWw/C,QAO/C,OAlDCj0F,aAAaK,QAAQH,IAAWC,UAAWoiE,YAA0B3rD,IAmDrErK,IAAAC,cAAC4nF,IAAK,CACL5yE,IAAKD,EACLzK,KAAMk9E,EAAiBZ,KAAK5nF,MAAMioF,WAAW38E,KAAMg9E,EAAUh9E,KAC7D41D,MAAOsnB,EAAiBZ,KAAK5nF,MAAMioF,WAAW/mB,MAAQonB,EAAUpnB,MAChEvmB,OAASh7C,GAOJ6oF,EACIznF,IAAAC,cAAC6nF,IAAQ,CAACtvB,GAAI,CACpBnuD,SAAUw8E,KAAK5nF,MAAMioF,WAAW38E,KAChCtL,MAAO,CAAEivC,KAAMtvC,EAAMwL,aAGfpK,IAAAC,cAACD,IAAM+nF,SAAQ,CAACC,SAAUnB,KAAKoB,kBACpCpB,KAAKO,eAAeG,EAAUnnB,cAgBrC6nB,iBACC,MAA+B,eAAxBpB,KAAK5nF,MAAMjB,SAA4BgC,IAAAC,cAAC4V,IAAkB,MAAM,KAGxEqyE,sBACKrB,KAAK3rB,cAAgB2rB,KAAKjoF,MAAM2Y,QAAQnN,SAASC,WACpDw8E,KAAK3rB,YAAc2rB,KAAKjoF,MAAM2Y,QAAQnN,SAASC,SAC/Cw8E,KAAKD,gBAIP,iBACC,IACC,MAAMuB,QAAsBtpB,EAAW,aAAc,SAC/CupB,QAAkBvpB,EAAW,aAAc,OAEjDgoB,KAAKwB,SAAS,CACb7nB,OAAQ4nB,EACRlB,WAAYiB,EACZlB,WAAY,OAGZ,MAAOvpD,KAKV4qD,oBACC,MAAM,SAAEjyE,GAAawwE,KAAKjoF,MAE1BioF,KAAK0B,WAYNC,sBAkBA5uC,SAMC,OAAyB,MAArBitC,KAAK5nF,MAAMuhE,SAGfqmB,KAAK5nF,MAAMgoF,WAAaJ,KAAK5nF,MAAMuhE,OAAO3tC,OAAQ6tC,IACjD,IAAIr2D,EAAWq2D,EAAMn2D,KACjBk+E,EAAgB5B,KAAKjoF,MAAM2Y,QAAQnN,SAASC,SAGhD,MAAMq+E,EAAgBryF,IAAOD,eAGtBuyF,EAAqBt+E,EAASmC,QAAQ,WAAY,IAClDo8E,EAA0BH,EAAcj8E,QAAQ,WAAY,IAC5Dq8E,EAAuBH,EAAcl8E,QAAQ,WAAY,IAGzDs8E,EAAgBH,EAAmBvzE,MAAM,KACzC8gD,EAAe0yB,EAAwBxzE,MAAM,KAC7C2zE,EAAkBF,EAAqBzzE,MAAM,KAGnD,IAAIyxE,KAAKjoF,MAAMM,SAAS4kB,iBAAkB,CAG1C,GAFoBoyC,EAAav9C,MAAM,GAAG6T,KAAK,OAC5Bu8D,EAAgBpwE,MAAM,GAAG6T,KAAK,KAEhD,OAAO,EAKR,GAAIk0C,EAAMP,OAASwoB,IAAuBC,EACzC,OAAO,EAIR,GAAIv+E,EAASoP,SAAS,WAAY,CACjC,MAAMuvE,EAAgB9yB,EAAa,GACnC,GAAIL,YAAcmzB,GAAgB,CAIjC,GAFoB9yB,EAAav9C,MAAM,GAAG6T,KAAK,OACtBs8D,EAAcnwE,MAAM,GAAG6T,KAAK,MACbniB,EAASohB,SAAS,SACzD,OAAO,GAMV,QAAKi1C,EAAMP,QAAS91D,EAASoP,SAAS,YAyBvCzZ,IAAAC,cAAC0+D,EAAasqB,SAAQ,KACpB13E,IAAA,IAAC,qBACD23E,EAAoB,iBACpBC,EAAgB,uBAChBC,GACA73E,EAAA,OACAvR,IAAAC,cAAA,OAAKE,UAAU,kBACdH,IAAAC,cAAA,OACCE,UACC,YACC+oF,EAAuB,sBAAwB,KAC/CE,EAAyB,wBAA0B,IACpDD,GAGDnpF,IAAAC,cAAC89B,IAAM,MAGP/9B,IAAAC,cAACopF,IAAM,KAGLxC,KAAK5nF,MAAMgoF,WAAWhuE,IAAI,CAACynD,EAAO1rD,IAC3B6xE,KAAKS,aAAatyE,EAAO0rD,IAIjC1gE,IAAAC,cAAC4nF,IAAK,CAACznB,UAAWp6C,cAEnBhmB,IAAAC,cAAC+jF,GAAiB,MAClBhkF,IAAAC,cAACm0E,EAAsB,MAEvBp0E,IAAAC,cAAC+7E,GAAa,MACdh8E,IAAAC,cAACqpF,GAAmB,MACpBtpF,IAAAC,cAACg8E,GAAkB,MAEnBj8E,IAAAC,cAAC28E,GAAU,MACX58E,IAAAC,cAACqiF,GAAa,MACdtiF,IAAAC,cAACy/E,GAAkB,MACnB1/E,IAAAC,cAAComF,GAAkB,MACnBrmF,IAAAC,cAACs8C,KAAc,CAACE,QAAQ,IAKxBz8C,IAAAC,cAAC8rE,EAAiB,MAElB/rE,IAAAC,cAACiwC,IAAM,YAcCq5C,mBAJUtqF,GAAK8zC,YAAA,GAC1B9zC,GAGoC,KAAzBsqF,CAA+BC,YAAWjD,K,mBC9VzDkD,IAAeC,eAAYtpE,EAC3B,MAAMupE,WAAY3pF,IAAMwmF,UACvBC,YAAY7nF,GAAQ,IAAD46C,EAAAC,EAClBktC,MAAM/nF,GAENioF,KAAK+C,qBAAwBrrF,IAC5BsoF,KAAKwB,SAAUppF,IAAK,CACnB4qF,YAAatrF,MAGfsoF,KAAKiD,0BAA6BvrF,IACjCsoF,KAAKwB,SAAUppF,IAAK,CACnBkqF,iBAAkB5qF,MAGpBsoF,KAAKkD,+BAAkCxrF,IACtCsoF,KAAKwB,SAAUppF,IAAK,CACnB+qF,sBAAuBzrF,MAGzBsoF,KAAKoD,8BAAiC1rF,IACrCsoF,KAAKwB,SAAUppF,IAAK,CACnBiqF,qBAAsB3qF,MAGxBsoF,KAAKqD,gCAAmC3rF,IACvCsoF,KAAKwB,SAAUppF,IAAK,CACnBmqF,uBAAwB7qF,MAG1BsoF,KAAKsD,oBAAuB5rF,IAC3BsoF,KAAKwB,SAAUppF,IAAK,CACnBmrF,WAAY7rF,MAGdsoF,KAAKwD,qBAAwB9rF,KACd,IAAVA,EACHgL,SAASwyB,KAAKuuD,UAAUjxB,IAAI,YAE5B9vD,SAASwyB,KAAKuuD,UAAUC,OAAO,aAIjC1D,KAAK5nF,MAAQ,CACZjB,SAEY,QAFJw7C,EACiE,QADjEC,EACP77C,IAAgBi1B,OAAQlqB,GAAMA,EAAE7K,UAAY2M,OAAOL,SAAStM,UAAU,UAAE,IAAA27C,OAAA,EAAxEA,EACGz7C,gBAAQ,IAAAw7C,IAAI,aAChBqwC,aAAa,EACbV,iBAAkB,GAClBa,uBAAuB,EACvBd,sBAAsB,EACtBE,wBAAwB,EACxBoB,WAAY,GACZZ,qBAAsB/C,KAAK+C,qBAC3BE,0BAA2BjD,KAAKiD,0BAChCC,+BAAgClD,KAAKkD,+BACrCE,8BAA+BpD,KAAKoD,8BACpCC,gCAAiCrD,KAAKqD,gCAEtCE,YAAY,EACZD,oBAAqBtD,KAAKsD,oBAC1BzsD,MAAO,KACP+sD,UAAW,KAEXJ,qBAAsBxD,KAAKwD,qBAC3BK,yBAA0B7D,KAAK6D,yBAE/BC,UAAW,KACXvgF,SAAUK,OAAOL,SAAS6b,KAC1B2iB,SAAUi+C,KAAKjoF,MAAM0hB,KAAKsoB,SAC1BgiD,SAAS,GAGV/D,KAAKgE,UAAY7qF,IAAM8qF,YAOxB,0BACCjE,KAAKwB,SAAS,CAEb0C,eAAe,EACfC,YAAa,EACbC,gBAAiB,KAElBhgF,cAAc47E,KAAK5nF,MAAM0rF,WACzB9D,KAAK5nF,MAAM0rF,UAAY,KACvB9D,KAAKjoF,MAAMuH,YACX0gF,KAAK5nF,MAAM0rF,UAAY5/E,YAAY,IAAM87E,KAAKjoF,MAAMuH,YAAa,KAIjE,MAAM+kF,EAAoC76E,WAE1Cw2E,KAAKwB,SAAS,CAAEuC,SAAS,IACzB,UACO,OAAO,KAAD52F,OAAuBk3F,EAAI,SACvCtxD,QAAQC,IAAI,GAAD7lC,OAAIk3F,EAAI,8BAClB,MAAOxtD,GACR9D,QAAQC,IAAI,kBAAD7lC,OAAmBk3F,EAAI,QAAQxtD,GAC1C,QACAmpD,KAAKwB,SAAS,CAAEuC,SAAS,IAK1B/D,KAAKsE,gBACLtE,KAAKuE,QAAQvE,KAAK5nF,MAAM2pC,UAGxB,MAAM2B,EAAc,IAAIC,YAAY,kBAAmB,CACtDC,OAAQ,CAAEpxB,QAAQ,uBAADrlB,OAAyByW,OAAOL,SAASC,aAI3DI,OAAOigC,cAAcH,GAGtB8gD,mBAAmBC,EAAWx/C,GAAY,IAADy/C,EAAAC,EAAAC,EAwCxC,GAZC5E,KAAKjoF,MAAM4mC,cAAclvB,YAAcg1E,EAAU9lD,cAAclvB,YAE/DuwE,KAAKjoF,MAAM0hB,KAAK4pB,eAAe28C,KAAKjoF,MAAM4mC,cAAclvB,YAWxDuwE,KAAK5nF,MAAMmL,UAAYK,OAAOL,SAAS6b,MACvC4gE,KAAK5nF,MAAM2pC,UAAY0iD,EAAUhrE,KAAKsoB,SACrC,CAKDi+C,KAAK6E,WAAW7E,KAAKjoF,MAAM0hB,KAAKsoB,UAChCi+C,KAAKuE,QAAQvE,KAAKjoF,MAAM0hB,KAAKsoB,UAC7Bi+C,KAAK5nF,MAAMmL,SAAWK,OAAOL,SAAS6b,KACtC4gE,KAAK5nF,MAAM2pC,SAAWi+C,KAAKjoF,MAAM0hB,KAAKsoB,SAEtCi+C,KAAKgE,UAAUxhF,QAAQuuC,UAAY,EACnCntC,OAAOstC,SAAS,EAAG,GAGnB,MAAMxN,EAAc,IAAIC,YAAY,kBAAmB,CACtDC,OAAQ,CAAEpxB,QAAQ,uBAADrlB,OAAyByW,OAAOL,SAASC,aAI3DI,OAAOigC,cAAcH,GAKrBs8C,KAAK5nF,MAAM6lB,WAA0C,QAAlCymE,EAAI1E,KAAKjoF,MAAMM,SAASysF,kBAAU,IAAAJ,OAAA,EAA9BA,EAAgCzmE,WACpD+hE,KAAK5nF,MAAM8lB,iBAAgD,QAAlCymE,EAAI3E,KAAKjoF,MAAMM,SAASysF,kBAAU,IAAAH,OAAA,EAA9BA,EAAgCzmE,iBAC7D8hE,KAAK5nF,MAAM2sF,WAA0C,QAAlCH,EAAI5E,KAAKjoF,MAAMM,SAASysF,kBAAU,IAAAF,OAAA,EAA9BA,EAAgCG,WAE1D/E,KAAKwB,SAAS,CACbvjE,SAAU+hE,KAAKjoF,MAAMM,SAASysF,WAAW7mE,SACzCC,eAAgB8hE,KAAKjoF,MAAMM,SAASysF,WAAW5mE,eAC/C6mE,SAAU/E,KAAKjoF,MAAMM,SAASysF,WAAWC,WAoB5CC,kBAAkBnuD,EAAO+sD,GACxB5D,KAAKwB,SAAS,CACb3qD,MAAOA,EACP+sD,UAAWA,IAGbqB,YAAYzhF,GACX,MAAMxW,EAASwC,IAAOU,mBAGhBqzC,EAAQ,IAAIC,OAAO,KAADr2C,OAAMH,EAAM,UAEpC,OAAIgiE,YAAchiE,IAAWwW,EAAS1T,WAAW,IAAD3C,OAAKH,KAAawW,EAASklB,MAAM6a,IAC5E//B,IAAQ,IAAArW,OAASH,GACb,IAIDwW,EAASmC,QAAQ,IAADxY,OAAKH,GAAU,IAIxC,sBACCgzF,KAAKwB,SAAS,CAAEuC,SAAS,UACnB/D,KAAK6E,WAAW7E,KAAK5nF,MAAM2pC,UACjCi+C,KAAKwB,SAAS,CAAEuC,SAAS,IAG1B,cAAchiD,GAEb,IAAImjD,EAAWlF,KAAKiF,YAAYrhF,OAAOL,SAASC,UAE5C2hF,EAAkBv3B,mBAAmBs3B,GACrCE,EAAkBx3B,mBAAmB7rB,GAErC5gC,QAAqBC,IAAU1R,IAAI,GAADvC,OAClCnQ,IAAO6M,0BAAyB,UAAAsD,OAASg4F,EAAe,cAAAh4F,OAAai4F,IAGrEC,GAAoB,EAExB,GAAIlkF,EAAa/kB,IAAOC,kBAAmB,CAE1C,IAAIslB,EAAOR,EAAa/kB,IAAOG,eAI3B8mB,EAAW1B,EAAK0B,SAChB4a,EAAW,GACXC,EAAiB,GACjB6mE,EAAW,GACXO,EAAgB,GA6BpB,GA1BCrnE,EADGtc,GAAQA,EAAK4jF,iBACL5jF,EAAK4jF,iBAEL5jF,EAAKsc,SAIhBC,EADGvc,GAAQA,EAAK6jF,uBACC7jF,EAAK6jF,uBAEL7jF,EAAKuc,eAItB6mE,EADGpjF,GAAQA,EAAK8jF,iBACL9jF,EAAK8jF,iBAEL9jF,EAAKojF,SASjBM,GAAoB,EALnBC,EADG3jF,GAAQA,EAAK+jF,sBACA/jF,EAAK+jF,sBAEL/jF,EAAK2jF,cAMH,CAClB,IACIK,EADoBv8E,KAAKgiC,MAAMk6C,GAAeM,KAClBl9D,MArCZ,yCAsChBm9D,EAA2B,KAE/B,GAAIF,EAEHE,EAD8BF,EAAQvzE,IAAIsW,GAASA,EAAMA,MAAM,uCACZtW,IAAI0zE,GAAQA,EAAK,IAAIngE,KAAK,IAK/Eq6D,KAAKwB,SAAS,CAAEuE,iBAAkB1iF,IAClC28E,KAAKwB,SAAS,CAAEwE,iBAAkB/nE,IAClC+hE,KAAKwB,SAAS,CAAEyE,uBAAwB/nE,IACxC8hE,KAAKwB,SAAS,CAAE0E,iBAAkBnB,IAClC/E,KAAKwB,SAAS,CAAE2E,WAAYN,SAG5B9yD,QAAQC,IAAI,iBAKY,GAArBqyD,GACCrF,KAAKjoF,MAAMM,SAASysF,WAAWzhF,WAElC28E,KAAKwB,SAAS,CAAEn+E,SAAU28E,KAAKjoF,MAAMM,SAASysF,WAAWzhF,WACzD28E,KAAKwB,SAAS,CAAEvjE,SAAU+hE,KAAKjoF,MAAMM,SAASysF,WAAW7mE,WACzD+hE,KAAKwB,SAAS,CAAEtjE,eAAgB8hE,KAAKjoF,MAAMM,SAASysF,WAAW5mE,kBAoBlE,iBAAiB6jB,GAKhB,IAAI5gC,QAAqBC,IAAU1R,IAClC,GAAAvC,OAAGnQ,IAAOwM,iBAAgB,kBAAmBu4C,GAKrB,GADT,IAAI3K,gBAAgBxzB,OAAOL,SAASE,QACvC/T,IAAI,OAChB9C,aAAaK,QAAQ,cAAe,GAGpCL,aAAaK,QAAQ,gBAAiBmc,KAAKC,UAAU,CAAE0b,OAAQ,mBAGhE,IAAIqhE,GAAgB,EACpB,GAAGx5F,aAAaC,QAAQ,iBAAkB,CAKzC,MAAMk4B,EAHoB3b,KAAKgiC,MAAMx+C,aAAaC,QAAQ,kBAGvBk4B,OAChCA,GAAUA,EAASD,KAAKD,MAC1BuhE,GAAgB,EAEhBx5F,aAAa0iB,WAAW,iBAI1B,GAAInO,EAAa/kB,IAAOC,kBAAmB,CAC1C,IAAIgqG,EAAgBllF,EAAa/kB,IAAOG,eAAe2+B,UACnDorE,EAAiBnlF,EAAa/kB,IAAOG,eAAegqG,WACpDC,EAAgBrlF,EAAa/kB,IAAOG,eAAe0+B,UACnDwrE,EAAgBtlF,EAAa/kB,IAAOG,eAAemqG,UACnDC,EAAsBxlF,EAAa/kB,IAAOG,eAAeqqG,gBACzDC,EAAc1lF,EAAa/kB,IAAOG,eAAeuqG,QACjDhqE,EAAkB3b,EAAa/kB,IAAOG,eAAeiiG,SAIrDuI,GAHmB5lF,EAAa/kB,IAAOG,eAAe27D,aACrC/2C,EAAa/kB,IAAOG,eAAeyqG,WAC3B7lF,EAAa/kB,IAAOG,eAAe0qG,mBAC5C9lF,EAAa/kB,IAAOG,eAAe++B,WACnD4rE,EAAmB/lF,EAAa/kB,IAAOG,eAAe4qG,aACtDC,EAAyBjmF,EAAa/kB,IAAOG,eAAe8qG,mBAC5DC,EAAenmF,EAAa/kB,IAAOG,eAAe4+B,SAClDosE,EAAgBpmF,EAAa/kB,IAAOG,eAAei/B,UACnD3a,EAAoBM,EAAa/kB,IAAOG,eAAeskB,kBACvD2mF,EAAarmF,EAAa/kB,IAAOG,eAAe6+B,OAChDqsE,EAAetmF,EAAa/kB,IAAOG,eAAe8+B,SAClDI,EAAiBta,EAAa/kB,IAAOG,eAAek/B,eACpD3K,EAAe3P,EAAa/kB,IAAOG,eAAeu0B,aAElD6K,EAAkBxa,EAAa/kB,IAAOG,eAAeo/B,gBACrDC,EAA6Bza,EAAa/kB,IAAOG,eAAeq/B,2BAChEC,EAAgC1a,EAAa/kB,IAAOG,eAAes/B,8BACnEC,EAAwB3a,EAAa/kB,IAAOG,eAAeu/B,sBAC3DC,EAAa5a,EAAa/kB,IAAOG,eAAew/B,WAChDC,EAAoB7a,EAAa/kB,IAAOG,eAAey/B,kBACvDC,EAAiB9a,EAAa/kB,IAAOG,eAAe0/B,eACpDC,EAAsB/a,EAAa/kB,IAAOG,eAAe2/B,oBACzDC,EAAqBhb,EAAa/kB,IAAOG,eAAe4/B,mBACxDC,EAAwBjb,EAAa/kB,IAAOG,eAAe6/B,sBAC3DC,EAA2Blb,EAAa/kB,IAAOG,eAAe8/B,yBAC9DC,EAAqBnb,EAAa/kB,IAAOG,eAAe+/B,mBACxDC,EAAiBpb,EAAa/kB,IAAOG,eAAeggC,eACpDC,EAAkBrb,EAAa/kB,IAAOG,eAAeigC,gBACrDC,EAAuBtb,EAAa/kB,IAAOG,eAAekgC,qBAC1DC,EAA6Bvb,EAAa/kB,IAAOG,eAAemgC,2BAChEC,EAAiBxb,EAAa/kB,IAAOG,eAAeogC,eACpDC,EAA6Bzb,EAAa/kB,IAAOG,eAAeqgC,2BAChEC,EAAsB1b,EAAa/kB,IAAOG,eAAesgC,oBACzDE,EAAYqpE,EAAgB,GAAKjlF,EAAa/kB,IAAOG,eAAewgC,UAEpEC,EAAgC7b,EAAa/kB,IAAOG,eAAeygC,8BACnEC,EAAmB9b,EAAa/kB,IAAOG,eAAe0gC,iBACtDC,EAAgB/b,EAAa/kB,IAAOG,eAAe2gC,cACnDC,EAAuBhc,EAAa/kB,IAAOG,eAAe4gC,qBAC1DC,EAAsBjc,EAAa/kB,IAAOG,eAAe6gC,oBAE7D,GAAI2pE,GAAkC,IAAjBA,EAAqB,CAEzC,IADsBrkF,SAAS8tC,eAAe,gBAC1B,CACnB,MAAMk3C,EAAehlF,SAAStJ,cAAc,SAC5CsuF,EAAa7kF,GAAK,eAClB6kF,EAAaC,UAAYZ,EACzBrkF,SAASklF,KAAKzyD,YAAYuyD,IAI5B,GAAIR,GAAyC,KAArBA,EAAyB,CAEhD,IADuBxkF,SAAS8tC,eAAe,iBAC1B,CACpB,MAAMq3C,EAAgBnlF,SAAStJ,cAAc,UAC7CyuF,EAAchlF,GAAK,gBAEnBglF,EAAcF,UAAY,sCAEtBT,EAAiB,iHAKrBxkF,SAASklF,KAAKzyD,YAAY0yD,IAI5B,GAAIT,GAAqD,KAA3BA,EAA+B,CAE5D,IADuB1kF,SAAS8tC,eAAe,wBAC1B,CACpB,MAAMq3C,EAAgBnlF,SAAStJ,cAAc,UAC7CyuF,EAAchlF,GAAK,uBACnBglF,EAAcF,UAAYP,EAC1B1kF,SAASwyB,KAAKC,YAAY0yD,IAM5B,IAAItB,EAAa,GACjB,MAAMuB,EAAgC,oBAChCC,EAAgC,UAEtCzB,EAAej1D,QAASvvB,IACvBykF,EAAW5iF,KAAK,CACfiL,MAAO9M,EAAE8M,MACT1hB,IACY,YAAX4U,EAAE8M,MACC,iBAAmB9M,EAAE8I,YAAck9E,EACxB,YAAXhmF,EAAE8M,MACD,gBAAkB9M,EAAE8I,YAAcm9E,EAClC,GACLvhD,MAAO1kC,EAAE0kC,UAIX8/C,EAAiBC,EAEjB,MAAM,cAAEvrE,IAAkBglE,KAAKjoF,MAC/BijB,GACCwrE,EACAH,EACAiB,EACAE,EACAC,EACAV,EACAT,EACAiB,EACA1mF,EACA4a,EACA3K,GAlGwB,EAoGxB6K,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EACAC,EACAC,EACAC,EACAC,GAUD,IANA,IAAIzb,EAAO,GAEPqmF,EAAgBrmF,EAAKjJ,OACrBo5C,EAAO,GACPm2C,EAAU,GACVC,EAAU,GACLpmF,GAAI,EAAGA,GAAIkmF,EAAelmF,KAAK,CAGvC,IAFA,IAAIqE,GAAUiD,KAAKgiC,MAAMzpC,EAAKG,IAAY,SACtCqmF,GAAiB79E,OAAOw3B,KAAK37B,IAASzN,OACjCyrB,GAAI,EAAGA,GAAIgkE,GAAgBhkE,KAAK,CACxC,IAAIikE,GAAUh/E,KAAKgiC,MAAMjlC,GAAQ,cAAgBge,GAAI,KACrD8jE,EAAQtkF,KAAK,CACZ1B,KAAM,cAAgBkiB,GAAI,GAC1BkkE,SAAUD,GAAkB,SAC5BjiF,QAASiiF,GAAiB,UAG5BF,EAAU,CACTG,SAAU1mF,EAAKG,IAAiB,aAChCH,KAAMsmF,GAEPA,EAAU,GACVn2C,EAAKnuC,KAAKukF,GAEX,IAAII,GAAY,GACZC,GAAO,GACPr8D,GAAO,GACPs8D,GAAS,GACTC,GAAW,GACXC,GAAO,GACPplF,GAAQ,GAEZ,IAAS6gB,GAAI,EAAGA,GAAI2tB,EAAKp5C,OAAQyrB,KAChC,GAAwB,QAApB2tB,EAAK3tB,IAAGkkE,SACX,IAASvmF,GAAI,EAAGA,GAAIgwC,EAAK3tB,IAAGxiB,KAAKjJ,OAAQoJ,KAAK,CACzCqE,GAAU2rC,EAAK3tB,IAAGxiB,KAAKG,IAAGqE,QAC9B,IACC,IAAIwiF,GAAiBxiF,GAAQy/B,OACzBgjD,GAAax/E,KAAKgiC,MAAMu9C,IAE5BJ,GAAK5kF,KAAK,CACTod,KAAM+wB,EAAK3tB,IAAGxiB,KAAKG,IAAGumF,SACtBliF,QAASyiF,KAET,MAAO/xD,IACR9D,QAAQ8D,MAAM,sBAAuBA,IACrC9D,QAAQ8D,MAAM,wBAAyB1wB,UAGnC,GAAwB,SAApB2rC,EAAK3tB,IAAGkkE,SAClB,IAASvmF,GAAI,EAAGA,GAAIgwC,EAAK3tB,IAAGxiB,KAAKjJ,OAAQoJ,KACxCwmF,GAAU3kF,KAAK,CACdod,KAAM+wB,EAAK3tB,IAAGxiB,KAAKG,IAAGumF,SACtBliF,QAAS2rC,EAAK3tB,IAAGxiB,KAAKG,IAAGqE,eAGrB,GAAwB,QAApB2rC,EAAK3tB,IAAGkkE,SAClB,IAASvmF,GAAI,EAAGA,GAAIgwC,EAAK3tB,IAAGxiB,KAAKjJ,OAAQoJ,KAAK,CACzCqE,GAAU2rC,EAAK3tB,IAAGxiB,KAAKG,IAAGqE,QAC1ByiF,GAAax/E,KAAKgiC,MAAMjlC,IAC5B+lB,GAAKvoB,KAAK,CACTod,KAAM+wB,EAAK3tB,IAAGxiB,KAAKG,IAAGumF,SACtBliF,QAASyiF,UAGL,GAAwB,UAApB92C,EAAK3tB,IAAGkkE,SAClB,IAASvmF,GAAI,EAAGA,GAAIgwC,EAAK3tB,IAAGxiB,KAAKjJ,OAAQoJ,KAAK,CAC7C,IAAIif,GAAO+wB,EAAK3tB,IAAGxiB,KAAKG,IAAGumF,SACvBliF,GAAU2rC,EAAK3tB,IAAGxiB,KAAKG,IAAGqE,QAE9B,IACC,IACIk6B,IADAuoD,GAAax/E,KAAKgiC,MAAMjlC,KACNk6B,KAAKwoD,WAAW,IAAI,KAC1CD,GAAWvoD,KAAOA,GAClBmoD,GAAO7kF,KAAK,CACXod,KAAMA,GACN5a,QAASyiF,KAET,MAAOx4E,IACR2iB,QAAQ8D,MAAM,gCAAD1pC,OAAiC4zB,IAAQ3Q,IACtD2iB,QAAQC,IAAI,oBAAqB7sB,UAI7B,GAAwB,YAApB2rC,EAAK3tB,IAAGkkE,SAClB,IAASvmF,GAAI,EAAGA,GAAIgwC,EAAK3tB,IAAGxiB,KAAKjJ,OAAQoJ,KAAK,CACzCif,GAAO+wB,EAAK3tB,IAAGxiB,KAAKG,IAAGumF,SACvBliF,GAAU2rC,EAAK3tB,IAAGxiB,KAAKG,IAAGqE,QAC1ByiF,GAAax/E,KAAKgiC,MAAMjlC,IAC5BsiF,GAAS9kF,KAAK,CACbod,KAAMA,GACN5a,QAASyiF,UAGL,GAAwB,QAApB92C,EAAK3tB,IAAGkkE,SAClB,IAASvmF,GAAI,EAAGA,GAAIgwC,EAAK3tB,IAAGxiB,KAAKjJ,OAAQoJ,KAAK,CACzCif,GAAO+wB,EAAK3tB,IAAGxiB,KAAKG,IAAGumF,SACvBliF,GAAU2rC,EAAK3tB,IAAGxiB,KAAKG,IAAGqE,QAC1ByiF,GAAax/E,KAAKgiC,MAAMjlC,IAC5BuiF,GAAK/kF,KAAK,CACTod,KAAMA,GACN5a,QAASyiF,KAMb,IAAIE,GAAa,GACbC,GAAW,GACXC,GAAW,GACXC,GAAe,GACfC,GAAW,GAiCf,GA/BIZ,GAAU5vF,OAAS,IACtB4vF,GACEt8D,OAAQ1oB,GAAUA,EAAMyd,MAAQnd,OAAOL,SAASC,UAChD4O,IAAKjM,IACArD,YAAoBqD,KACxB7C,GAAQ6C,EAAQA,WAIfrD,YAAoBQ,KACvBglF,GACEt8D,OAAQ1oB,GAAwB,KAAdA,EAAMyd,MACxB3O,IAAK+2E,IACL7lF,GAAQ6lF,EAAWhjF,WAKnBqiF,GAAO9vF,OAAS,GACnB8vF,GACEx8D,OACCo9D,GACAA,EAAOroE,MAAQnd,OAAOL,SAASC,UAA2B,KAAf4lF,EAAOroE,MAEnD3O,IAAKjM,IACArD,YAAoBqD,IACxB2iF,GAAWnlF,KAAKwC,EAAQA,WAKxBoiF,GAAK7vF,OAAS,EAAG,CACpB6vF,GACEv8D,OACCq9D,GACc,KAAdA,EAAMtoE,MAAesoE,EAAMtoE,MAAQnd,OAAOL,SAASC,UAEpD4O,IAAKjM,IACArD,YAAoBqD,IACxB4iF,GAASplF,KAAKwC,EAAQA,WAGrB2rC,EAAO,GAAX,IACIw3C,GAAW,GACf,GAAIP,GAASrwF,OAAS,EACrB,KAAI6wF,GAAahB,GAAKv8D,QAAO,SAAUw9D,GACtC,GAAyB,gBAArBA,EAAIrjF,QAAQlE,KAGf,OAFA6vC,EAAKnuC,KAAK6lF,EAAIrjF,SACdmjF,GAAS3lF,KAAK6lF,EAAIzoE,MACXyoE,EAAIrjF,WAKb,IAFIge,GAAI,EACJriB,GAAI,EACDqiB,GAAI4kE,GAASrwF,QACfqwF,GAAS5kE,MAAO2tB,EAAKhwC,KACxBinF,GAASU,OAAOtlE,GAAG,GACnBriB,QAEEqiB,GAKLmlE,GAAS12E,SAAShP,OAAOL,SAASC,UAC/B+lF,GACAv9D,OAAQ09D,GAAMA,EAAE3oE,MAAQnd,OAAOL,SAASC,UACxC4O,IAAKjM,IACL4iF,GAASplF,KAAKwC,EAAQA,WAEtBojF,GACAv9D,OAAQ09D,GAAgB,KAAVA,EAAE3oE,MAChB3O,IAAKjM,IACL4iF,GAASplF,KAAKwC,EAAQA,WAItB+lB,GAAKxzB,OAAS,GACjBwzB,GACEF,OACCygB,GACAA,EAAM1rB,MAAQnd,OAAOL,SAASC,UAA0B,KAAdipC,EAAM1rB,MAEjD3O,IAAKjM,IACArD,YAAoBqD,IACxB6iF,GAASrlF,KAAKwC,EAAQA,WAKtBsiF,GAAS/vF,OAAS,GACrB+vF,GACEz8D,OACC29D,GACAA,EAAU5oE,MAAQnd,OAAOL,SAASC,UAChB,KAAlBmmF,EAAU5oE,MAEX3O,IAAKjM,IACArD,YAAoBqD,IACxB8iF,GAAatlF,KAAKwC,EAAQA,WAK1BuiF,GAAKhwF,OAAS,GACjBgwF,GACE18D,OACC49D,GACAA,EAAM7oE,MAAQnd,OAAOL,SAASC,UAA0B,KAAdomF,EAAM7oE,MAEjD3O,IAAKjM,IACArD,YAAoBqD,IACxB+iF,GAASvlF,KAAKwC,EAAQA,WAK1B65E,KAAKwB,SAAS,CAAE0H,SAAUA,KAC1BlJ,KAAKwB,SAAS,CAAEvmE,UAAWurE,IAC3BxG,KAAKwB,SAAS,CAAEyH,aAAcA,KAC9BjJ,KAAKwB,SAAS,CAAEsH,WAAYA,KAC5B9I,KAAKwB,SAAS,CAAEwH,SAAUA,KAC1BhJ,KAAKwB,SAAS,CAAEl+E,MAAOmjF,IACvBzG,KAAKwB,SAAS,CAAE/6C,YAAakgD,IAC7B3G,KAAKwB,SAAS,CAAEuH,SAAUA,KAC1B/I,KAAKwB,SAAS,CAAEqI,IAAK/3C,IACrBkuC,KAAKwB,SAAS,CAAEsF,QAASD,KAK3B9zC,SACC,MAAM,IACL82C,EAAG,SACHd,EAAQ,UACR9tE,EAAS,MACT3X,EAAK,YACLmjC,EAAW,QACXqgD,EAAO,SACPkC,EAAQ,WACRF,EAAU,aACVG,EAAY,SACZ1lF,EAAQ,SACRw+B,EAAQ,SACR9jB,EAAQ,eACRC,EAAc,SACd6mE,EAAQ,iBACRiB,EAAgB,uBAChBC,EAAsB,iBACtBC,EAAgB,WAChBC,EAAU,QACVpC,GACG/D,KAAK5nF,MAET,OAAI4nF,KAAK5nF,MAAMwrF,UAEbzqF,IAAAC,cAAA,OAAKE,UAAU,QAAQsM,MAAO,CAAEsgB,QAAS,SACxC/sB,IAAAC,cAAA,OACCG,IAAKgX,EAAQ,KACb3K,MAAO,CACNI,SAAU,QACV8jF,UAAW,UACXziF,WAAY,OACZ0iF,YAAa,UAGf5wF,IAAAC,cAAA,UAAI,uDACJD,IAAAC,cAAA,OAAKE,UAAU,UAAUsK,OAAOotB,UAAUD,YAK3C53B,IAAAC,cAAC0+D,EAAakyB,SAAQ,CAACtyF,MAAOsoF,KAAK5nF,MAAOkB,UAAU,cAKnDH,IAAAC,cAAC6wF,KAAM,KACN9wF,IAAAC,cAAA,QAAM6I,KAAK,mBAAmBkE,QAAS8U,IAEvC9hB,IAAAC,cAAA,QAAM6I,KAAK,6BAA6BkE,QAAS8U,IACjD9hB,IAAAC,cAAA,QAAMs0D,SAAS,eAAevnD,QAAS8U,KAIxC9hB,IAAAC,cAAC6wF,KAAM,KACN9wF,IAAAC,cAAA,QAAMgmB,KAAM7b,IACZpK,IAAAC,cAAA,QAAM49B,IAAI,YAAY5X,KAAM7b,IAC5BpK,IAAAC,cAAA,QAAMs0D,SAAS,SAASvnD,QAAS5C,IACjCpK,IAAAC,cAAA,QAAMs0D,SAAS,cAAcvnD,QAAS5C,KAIvCpK,IAAAC,cAAC6wF,KAAM,KACN9wF,IAAAC,cAAA,aAAQkK,GACRnK,IAAAC,cAAA,QAAMs0D,SAAS,WAAWvnD,QAAS7C,IACnCnK,IAAAC,cAAA,QAAMs0D,SAAS,gBAAgBvnD,QAAS7C,KAKzCnK,IAAAC,cAAC6wF,KAAM,KACN9wF,IAAAC,cAAA,QAAM6I,KAAK,cAAckE,QAASsgC,IAClCttC,IAAAC,cAAA,QAAMs0D,SAAS,iBAAiBvnD,QAASsgC,IACzCttC,IAAAC,cAAA,QAAMs0D,SAAS,sBAAsBvnD,QAASsgC,KAI/CttC,IAAAC,cAAC6wF,KAAM,KACN9wF,IAAAC,cAAA,QAAM49B,IAAI,OAAO9wB,KAAK,YAAY05D,MAAM,QAAQxgD,KAAM0nE,IACtD3tF,IAAAC,cAAA,QAAM49B,IAAI,OAAO9wB,KAAK,YAAY05D,MAAM,QAAQxgD,KAAM0nE,IACtD3tF,IAAAC,cAAA,QAAM49B,IAAI,OAAO9wB,KAAK,YAAY05D,MAAM,UAAUxgD,KAAM0nE,IACxD3tF,IAAAC,cAAA,QAAM49B,IAAI,OAAO9wB,KAAK,YAAY05D,MAAM,UAAUxgD,KAAM0nE,IACxD3tF,IAAAC,cAAA,QAAM49B,IAAI,mBAAmB4oC,MAAM,UAAUxgD,KAAM0nE,IACnD3tF,IAAAC,cAAA,QAAM49B,IAAI,YAAY5X,KAAM0nE,EAAS99E,MAAM,YAC3C7P,IAAAC,cAAA,QAAM49B,IAAI,gBAAgB5X,KAAM0nE,IAGhC3tF,IAAAC,cAAA,QAAM49B,IAAI,mBAAmB4oC,MAAM,UAAUxgD,KAAM0nE,IAGnD3tF,IAAAC,cAAA,QAAM49B,IAAI,WAAW5X,KAAK,sBAE1BjmB,IAAAC,cAAA,QAAMs0D,SAAS,WAAWvnD,QAAS2gF,IACnC3tF,IAAAC,cAAA,QAAMs0D,SAAS,gBAAgBvnD,QAAS2gF,KAIzC3tF,IAAAC,cAAC6wF,KAAM,KACN9wF,IAAAC,cAAA,QAAM6I,KAAK,cAAckE,QAAQ,YACjChN,IAAAC,cAAA,QAAM6I,KAAK,0BAA0BkE,QAAQ,aAO7C6/E,GAAoBA,EAAiBttF,OACpCS,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAC6wF,KAAM,KACN9wF,IAAAC,cAAA,aAAQ4sF,GACR7sF,IAAAC,cAAA,QAAMs0D,SAAS,WAAWvnD,QAAS6/E,IACnC7sF,IAAAC,cAAA,QAAMs0D,SAAS,gBAAgBvnD,QAAS6/E,MAI1C/nE,GAAYA,EAASvlB,QACpBS,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAC6wF,KAAM,KACN9wF,IAAAC,cAAA,aAAQ6kB,GACR9kB,IAAAC,cAAA,QAAMs0D,SAAS,WAAWvnD,QAAS8X,IACnC9kB,IAAAC,cAAA,QAAMs0D,SAAS,gBAAgBvnD,QAAS8X,MAS5CgoE,GAA0BA,EAAuBvtF,OAChDS,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAC6wF,KAAM,KACN9wF,IAAAC,cAAA,QAAM6I,KAAK,cAAckE,QAAS8/E,IAClC9sF,IAAAC,cAAA,QAAMs0D,SAAS,iBAAiBvnD,QAAS8/E,IACzC9sF,IAAAC,cAAA,QAAMs0D,SAAS,sBAAsBvnD,QAAS8/E,MAIhD/nE,GAAkBA,EAAexlB,QAChCS,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAC6wF,KAAM,KACN9wF,IAAAC,cAAA,QAAM6I,KAAK,cAAckE,QAAS+X,IAClC/kB,IAAAC,cAAA,QAAMs0D,SAAS,iBAAiBvnD,QAAS+X,IACzC/kB,IAAAC,cAAA,QAAMs0D,SAAS,sBAAsBvnD,QAAS+X,MAUlDgoE,GAAoBA,EAAiBxtF,OACpCS,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAC6wF,KAAM,KACN9wF,IAAAC,cAAA,QAAMs0D,SAAS,WAAWvnD,QAAS+/E,IACnC/sF,IAAAC,cAAA,QAAMs0D,SAAS,gBAAgBvnD,QAAS+/E,MAI1CnB,GAAYA,EAASrsF,QACpBS,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAC6wF,KAAM,KACN9wF,IAAAC,cAAA,QAAMs0D,SAAS,WAAWvnD,QAAS4+E,IACnC5rF,IAAAC,cAAA,QAAMs0D,SAAS,gBAAgBvnD,QAAS4+E,MAQ7C5rF,IAAAC,cAAC6wF,KAAM,KACL9D,GAAcA,EAAWztF,QACzBS,IAAAC,cAAA,UAAQgV,IAAK6P,EAAU/X,KAAK,mBAC1BigF,IAMH2C,GACAA,EAAWpwF,OAAS,GACpBowF,EAAW12E,IAAI,CAAA1H,EAA0ByD,KAAW,IAApC,KAAEkyB,EAAI,KAAEn6B,EAAI,GAAErD,EAAE,IAAEtJ,GAAKmR,EAEtC,MAAM3S,EAAQ,GAad,YAVYwhB,IAARhgB,IACHxB,EAAMwB,IAAMA,QAEFggB,IAAP1W,IACH9K,EAAM8K,GAAKA,QAEC0W,IAATrT,IACHnO,EAAMmO,KAAOA,GAIb/M,IAAAC,cAAC6wF,KAAM,CAAC77E,IAAKD,GACZhV,IAAAC,cAAA,SAAYrB,EAAQsoC,MAKvB4oD,GACAA,EAAavwF,OAAS,GACtBuwF,EAAa72E,IAAI,CAAAs6B,EAAWv+B,KAAK,IAAf,KAAEkyB,GAAMqM,EAAA,OACzBvzC,IAAAC,cAAC6wF,KAAM,CAAC77E,IAAKD,GACZhV,IAAAC,cAAA,gBAAWinC,OAMZ2/C,KAAKjoF,MAAMM,SAAS0H,SAAWigF,KAAKjoF,MAAMmC,UAAUgwF,wBACrD/wF,IAAAC,cAAA,OAAKE,UAAU,gBAGhBH,IAAAC,cAACwpF,IAAc,CACduH,OAAQnK,KAAKjoF,MAAMM,SAASmlB,cAC5B4sE,OAAQ,CACPC,QAAU3B,GAAIx8C,wBAAA,GACVw8C,GAAI,IACP4B,OAAQ,QACRvgF,SAAU,WAGZzQ,UAAWixF,IAAW,oBAItBpxF,IAAAC,cAAC4N,IAAO,CACP1N,UAAU,wBACV2N,UAAU,SACVC,KAAK,SACLC,KAAK,KACLvB,MAAO,CACNwB,cAAe,SACftC,MAAO,OACPD,OAAQ,OACRmE,MAAO,YAMR9G,YAAc89E,KAAKjoF,MAAMM,SAASyI,QACnC3H,IAAAC,cAAA,OAAKE,UAAU,kDACdH,IAAAC,cAACuL,IAAU2F,OAAAC,OAAA,GACNy1E,KAAKjoF,MAAMM,SAASyI,MAAK,CAC7B8E,WACkC2T,GAAjCymE,KAAKjoF,MAAMM,SAAS0B,OAAO8I,GACxB,CACDmlB,gBAAiB,UACjB88C,YAAa,mBACbr+C,QAAS,IACTzd,MAAO,SAEN,MAGFlG,YAAoBk9E,KAAKjoF,MAAMM,SAASyI,MAAM8kF,OAC/C5F,KAAKjoF,MAAMM,SAASyI,MAAM8kF,MAEzB9iF,YAAoBk9E,KAAKjoF,MAAMM,SAASyI,MAAMqF,WAC9C65E,KAAKjoF,MAAMM,SAASyI,MAAM8kF,KACxB5F,KAAKjoF,MAAMM,SAASyI,MAAMqF,QAC1B65E,KAAKjoF,MAAMM,SAASyI,MAAMqF,QAC1BoI,MAAM,MACN6D,IAAI,CAACoF,EAAMpJ,IAEVjV,IAAAC,cAAA,QAAMgV,IAAKA,GACToJ,EACDre,IAAAC,cAAA,gBAOR4mF,KAAKjoF,MAAMmC,UAAUgwF,wBAA0BnG,GAC/C5qF,IAAAC,cAAAD,IAAAE,SAAA,KACCF,IAAAC,cAAA,OACC4Q,IAAKg2E,KAAKgE,UACV1qF,UAAU,uEACVsM,MAAO,CACNgnC,UAAW,QACX/nC,OAAQ,OACR2lF,WAAY,OACZC,mBAAoB,OACpBC,iBAAkB,OAClBC,cAAe,OACfC,aAAc,SAGfzxF,IAAAC,cAAA,OACCkL,QAASA,KACJ07E,KAAK5nF,MAAMyyF,oBACd7K,KAAK8K,wBAIN9K,KAAK5nF,MAAM4qF,aACX7pF,IAAAC,cAACsmF,GAAO,CAACvoF,SAAU6oF,KAAK5nF,MAAMjB,gBAgBzBurF,mBAJUtqF,GAAK8zC,YAAA,GAC1B9zC,GAGoC,CACvC27C,gBAAiBA,IACjBE,WAAYA,IACZD,cAAeA,IACf10C,UAAWA,IACX0b,cAAeA,MALD0nE,CAMZqI,eAAkBjI,K,yHClkCrBkI,IAASj4C,OACP55C,IAAAC,cAAC4wF,IAAQ,CAACzyB,MAAOA,KACfp+D,IAAAC,cAAC6xF,KAAa,KACZ9xF,IAAAC,cAAC0pF,GAAG,QAGRpgF,SAAS8tC,eAAe,U,+BCvC1B,uCAaA,MA6OM/rC,EAAa,CAEjBymF,KAAM,OACNC,MAAO,QACP1mC,WAAY,gBACZ3hC,UAAW,eACXiiD,UAAW,eACXqmB,QAAS,aACT3nF,OAAQ,UACR01C,OAAQ,cACRkyC,aAAc,gBACdC,KAAM,OACNC,SAAU,aACVjnB,QAAS,oBACTknB,UAAW,gBACXC,SAAU,gBACVC,MAAO,SACPC,MAAO,QACPC,KAAM,OACNlnF,MAAO,QACPmnF,OAAQ,SACR7zC,KAAM,OACN8zC,OAAQ,SACRC,OAAQ,UACRxS,KAAM,cACNjyE,QAAS,YACT0kF,MAAO,YACPxS,cAAe,gBACfzxC,IAAK,MACLkkD,WAAY,cACZnkD,WAAY,cACZtB,MAAO,QACPw4B,KAAM,OACNktB,KAAM,OACNC,IAAK,MACLC,YAAa,eACbC,KAAM,cACNC,UAAW,cACXptC,KAAM,QACNqtC,UAAW,YACXC,OAAQ,SACRC,KAAM,OACNC,QAAS,UACTvrD,QAAS,UACTwrD,UAAW,aACXC,SAAU,WACVJ,OAAQ,SACRC,KAAM,OACNI,QAAS,UACTC,iBAAkB,qBAClBC,gBAAiB,oBACjBC,WAAW,cACXC,UAAU,YACVC,SAAS,WACTC,SAAS,WACTC,UAAU,YACVV,QAAQ,UACRW,kBAAkB,oBAClB9nD,MAAO,QACP+nD,gBAAgB,kBAChBC,UAAU,YACVp1C,UAAU,YACV5T,QAAS,eACTkkB,SAAU,gBACVnhD,QAAS,eACT2gC,iBAAkB,oBAClBulD,UAAW,cACXC,UAAW,aACXC,SAAU,YACV/mF,WAAY,UACZgnF,eAAgB,SAChBvO,WAAW,cACXD,UAAU,aACV/4D,YAAY,eACZ04D,aAAa,gBACbt5C,YAAY,cACZ3f,UAAW,aACXoP,SAAS,YACT24D,QAAQ,WAIRC,sBAAuB,WACvBC,sBAAuB,OACvBC,wBAAyB,OACzBC,yBAA0B,gBAC1BC,wBAAyB,OACzBC,yBAA0B,gBAC1BC,uBAAwB,cACxB5mF,oBAAqB,kBACrB6mF,yBAA0B,cAC1BC,6BAA8B,UAC9BC,4BAA6B,SAC7BC,yBAA0B,SAC1BC,gBAAiB,YACjBC,uBAAwB,YACxBC,oBAAqB,eACrBC,uBAAwB,UACxBC,sBAAuB,OACvB/lF,WAAY,cAGZgmF,iBAAkB,eAClB31C,aAAc,UACd41C,iBAAkB,gBAClBC,YAAa,cACbC,iBAAkB,cAClBC,cAAe,aACfC,eAAgB,UAChB/gE,WAAY,QACZD,YAAa,SACbjE,KAAM,OACNklE,WAAY,cACZC,WAAY,eACZphE,YAAa,YACbO,QAAS,QACTZ,WAAY,WACZpB,WAAY,cACZmH,cAAe,iBACf9E,aAAc,QACdD,WAAY,QAGZmqB,aAAc,QACdu2C,YAAa,U,gCCtXf,qEAkGe3tC,IA1FO3pD,IAKlB,MAAMu3F,EAAOv3F,EAAMu3F,MAAQ,EACrBC,EAAUx3F,EAAMu3F,MAAQ,EASxBE,EAASpoD,MAAMmoD,EAAUD,GAAMrrD,KAAK,GAI1C,OAFAxrC,oBAAU,OAAU,IAGhBU,IAAAC,cAAAD,IAAAE,SAAA,KACIF,IAAAC,cAACq2F,IAAQ,KACR13F,EAAM23F,OAAQv2F,IAAAC,cAAC4/C,IAAQ,CAAC1/C,UAAU,OAAOuL,OAAQ,IAAKo0C,UAAU,6BAA6BvK,eAAe,oCAAuC,GAcnJ32C,EAAMuL,MACHnK,IAAAC,cAAA,OAAKE,UAAU,cAgBf,GAEJH,IAAAC,cAAA,OACIE,UAAU,2BAEVH,IAAAC,cAAA,OAAKE,UAAU,oBACV8Y,cAAIo9E,EAAQ,CAACh4E,EAAMrJ,IAEZhV,IAAAC,cAAC4/C,IAAQ,CACL5qC,IAAKD,EACLtJ,OAAQ,IACRC,MAAO,OACPm0C,UAAU,6BACVvK,eAAe,2C,gCC1E/C,6DAIA,MAAMhB,EACJkyC,YAAWl1E,GAAmC,IAAlC,aAACijC,EAAY,OAAEC,EAAM,OAAEE,GAAQpjC,EACvCs1E,KAAKryC,aAAeA,EACpBqyC,KAAKpyC,OAASA,EACdoyC,KAAKlyC,OAASA,GAIpB,MAAMP,EAAep0C,IAAMs8B,WAAW,CAAC19B,EAAOiS,KAC5C,MAAM,mBACJwjC,EAAkB,aAClBC,EAAY,YACZI,EAAW,OACXC,GACE/1C,EAEJ,OACEoB,IAAAC,cAAA,OAAKE,UAAWk0C,GACfC,IAAiB3qC,YAAoB2qC,EAAaG,SAC/Cz0C,IAAAC,cAAA,OACEG,IAAKk0C,EAAaG,OAClBt0C,UAAS,GAAAnM,OAAKsgD,EAAaE,aAAY,wBACvC5oC,IAAK+oC,EACLuU,WAAW,IAIbxU,IAAgB/qC,YAAoB+qC,EAAYD,SAChDz0C,IAAAC,cAAA,OACEG,IAAKs0C,EAAYD,OACjBt0C,UAAS,GAAAnM,OAAK0gD,EAAYF,aAAY,uBACtC5oC,IAAK+oC,EACLuU,WAAW,OAON9U,O,0ECaf,MAAMoiD,EAAiB,CACrB10E,UAAW,GACXlb,QAAQ,EACRyd,eAAe,EACf0B,eAAe,EACf1M,QAASiH,IAAK/f,EAAE,WAChBoH,MAAO,GACPoY,aAAa,EACb02E,kBAAmB,GACnBC,UAAW,GACXC,kBAAmB,GACnBC,cAAe,GACfC,WAAY,GACZC,mBAAoB,GACpBC,UAAW,GACX55E,EAAG,EACHw5B,SAAU,GACV0yB,UAAW,EACX2tB,eAAgB,EAChBp2F,OAAQ,GACRge,MAAO,GACPE,iBAAiB,CACfC,eAAe,EACfC,UAAU,GACVC,iBAAiB,EACnBC,YAAY,IAEZE,cAAc,CACZL,eAAe,EACfC,UAAU,IAEZM,SAAS,GACTE,SAAU,GACVxB,cAAe,EACfi5E,WAAY,GACZC,eAAgB,CACdC,YAAa,GACbC,eAAgB,GAChBC,sBAAuB,EACvBC,wBAAyB,EACzBC,sBAAuB,EACvBC,wBAAyB,EACzBC,eAAgB,EAChBC,iBAAkB,EAClBC,gBAAiB,EACjBC,kBAAmB,EACnBC,mBAAoB,EACpBC,WAAY,GAEdvgB,SAAU,CACR52E,WAAY,KACZ22E,WAAY,MAEdj6D,QAAS,GACT06E,UAAW,YACXj4E,UAAU,EACVkB,cAAa,EACbC,WAAW,EACXO,YAAW,EACXngB,gBAAe,EACfqgB,eAAc,EACdhD,SAAS,GACTwD,SAAS,GACT4kC,WAAW,GACXxlD,eAAe,CACbsM,qBAAuB,EACvB+B,mBAAqB,EACrB6N,gBAAgB,EAChBC,uBAAwB,EACxB/W,qBAAsB,EACtBgX,qBAAqB,EACrBC,oBAAoB,EACpBC,cAAe,GAEjB7e,aAAa,GACb6kB,UAAU,GAEVhC,iBAAgB,EAChBT,eAAc,EACd8D,qBAAoB,EACpB5D,oBAAmB,EACnB8C,gBAAgB,IAChBD,iBAAiB,yBACjB/B,WAAW,EACXC,WAAY,GACZC,UAAW,GACXkC,cAAc,EACdonE,WAAW,CACTzhF,SAAS,GACT4a,SAAS,GACTC,eAAe,IAEjBm9B,sBAAuB,IACvB/8B,iBAAiB,EACjBxN,aAAc,GACd6K,gBAAiB,IACjBC,4BAA4B,EAC5B4C,mBAAkB,EAClB3C,+BAA+B,EAC/B6C,mBAAkB,EAClBE,mBAAkB,EAClBE,oBAAoB,EACpBhD,uBAAuB,EACvBK,mBAAoB,GACpBC,uBAAuB,EACvBC,0BAA0B,EAC1B2C,kBAAkB,EAClBlC,gBAAgB,IAGlB,IAAIq0E,EAAa,E,QC7JjB,MAAMxB,EAAiB,CACrBx1F,SAAU,GACVmF,WAAW,EACXk3E,aAAc,GACd0T,uBAAuB,EACvBkH,YAAa,EACbC,oBAAoB,GAMP,I,SCnBf,MAAMC,EAAgB,CAClB7hF,WAAY,GACZJ,QAAQ,GAMG,I,kBCDf,MAAMkoD,EAAQg6B,sBACZC,0BAAgB,CACdt3F,UFUW,WAAqC,IAApC9B,EAAKnI,UAAAyI,OAAA,QAAA6gB,IAAAtpB,UAAA,GAAAA,UAAA,GAAG0/F,EAAgBrmF,EAAMrZ,UAAAyI,OAAA,EAAAzI,UAAA,QAAAspB,EAC5C,OAAQjQ,EAAOpD,MACb,KAAKmtC,IACH,OAAAnH,wBAAA,GACK9zC,GAAK,IACR+B,SAAUmP,EAAOnP,SACjBmF,WAAW,EACXk3E,aAAc,GACd0T,uBAAuB,EACvBmH,oBAAoB,IAGxB,KAAK/9C,IACH,MAAO,CACLkjC,aAAcltE,EAAOkJ,QACrBlT,WAAW,EACXnF,SAAU,GACV+vF,uBAAuB,EACvBmH,oBAAoB,GAGxB,KAAK59C,IACH,OAAAvH,wBAAA,GACK9zC,GAAK,IACR+B,SAAUmP,EAAOnP,WAGrB,KAAKq5C,IACH,OAAAtH,wBAAA,GACK9zC,GAAK,IACRg5F,YAAa9nF,EAAO8nF,cAGxB,KAAK79C,IACH,MAAO,CACLp5C,SAAU,GACVmF,WAAW,EACXk3E,aAAc,GACd0T,uBAAuB,EACvBkH,YAAa,EACbC,mBAAoBj5F,EAAMi5F,oBAG9B,KAAK39C,IACH,OAAAxH,wBAAA,GACK9zC,GAAK,IACRi5F,mBAAoB/nF,EAAO+nF,qBAG/B,QACE,OAAOj5F,IE3DTC,SH4JW,WAAqC,IAApCD,EAAKnI,UAAAyI,OAAA,QAAA6gB,IAAAtpB,UAAA,GAAAA,UAAA,GAAG0/F,EAAgBrmF,EAAMrZ,UAAAyI,OAAA,EAAAzI,UAAA,QAAAspB,EAC5C,OAAQjQ,EAAOpD,MACb,KAAKqN,IAEH,OADA49E,IACAjlD,wBAAA,GACK9zC,GAAK,IACR2H,QAAQ,EACRyS,QAAS1P,YAAoBwG,EAAOkJ,SAChCiH,IAAK/f,EAAE,WACP4P,EAAOkJ,QACX0G,YACwB,MAAtB5P,EAAO4P,YACHy2E,EAAez2E,YACf5P,EAAO4P,cAGjB,KAAK1F,IAEH,OADA29E,EAAa9vE,KAAKoL,MAAM0kE,EAAY,GACpCjlD,wBAAA,GACK9zC,GAAK,IACR2H,OAAsB,GAAdoxF,IAGZ,KAAKj7E,IAAaC,UAChB,OAAA+1B,wBAAA,GACK9zC,GAAK,IACR0I,MAAmC,GAA5BwJ,OAAOw3B,KAAK1pC,EAAM0I,OAAcwI,EAAOxI,MAAQ1I,EAAM0I,QAGhE,KAAKoV,IAAaE,KAChB,OAAA81B,wBAAA,GACK9zC,GAAK,IACR0I,MAAO,KAGX,KAAK2S,IACH,OAAAy4B,wBAAA,GACK9zC,GAAK,IACRw3F,kBAAmBtmF,EAAO3H,OAG9B,KAAK+R,IACH,OAAAw4B,wBAAA,GACK9zC,GAAK,IACRy3F,UAAWvmF,EAAO3H,OAGtB,KAAKgS,IACH,OAAAu4B,wBAAA,GACK9zC,GAAK,IACR43F,WAAY1mF,EAAO3H,OAGvB,KAAKiS,IACH,OAAAs4B,wBAAA,GACK9zC,GAAK,IACR03F,kBAAmBxmF,EAAO3H,OAG9B,KAAKkS,IACH,OAAAq4B,wBAAA,GACK9zC,GAAK,IACR63F,mBAAoB3mF,EAAO3H,OAG/B,KAAKmS,IACH,OAAAo4B,wBAAA,GACK9zC,GAAK,IACR23F,cAAezmF,EAAO3H,OAG1B,KAAKoS,IACH,OAAAm4B,wBAAA,GACK9zC,GAAK,IACR83F,UAAW5mF,EAAO3H,OAGtB,KAAKqS,IACH,OAAAk4B,wBAAA,GACK9zC,GAAK,IACRke,EAAGhN,EAAOgN,IAEd,KAAKrC,IACH,OAAAi4B,wBAAA,GACK9zC,GAAK,IACR03C,SAAUxmC,EAAO3H,OAGrB,KAAKuS,IACH,OAAAg4B,wBAAA,GACK9zC,GAAK,IACRoqE,UAAWl5D,EAAO3H,OAGtB,KAAKwS,IACH,OAAA+3B,wBAAA,GACK9zC,GAAK,IACR+3F,eAAgB7mF,EAAO6mF,iBAG3B,KAAKl9E,IACH,OAAAi5B,wBAAA,GACK9zC,GAAK,IACR2B,OAAQuP,EAAOvP,OACfod,cAAe7N,EAAO6N,cACtB1c,eAAgB6O,EAAO7O,iBAG3B,KAAK0Y,IACH,OAAA+4B,wBAAA,GACK9zC,GAAK,IACR+e,cAAe7N,EAAO6N,cACtB1c,eAAgB6O,EAAO7O,iBAI3B,KAAKyY,IACH,OAAAg5B,wBAAA,GACK9zC,GAAK,IACRqC,eAAgB6O,EAAO7O,iBAE3B,KAAK2Y,IACH,OAAA84B,wBAAA,GACK9zC,GAAK,IACR2f,MAAOzO,EAAOyO,QAGlB,KAAK1E,IACH,OAAA64B,wBAAA,GACK9zC,GAAK,IACR6f,iBAAkB,CAChBC,eAAgB5O,EAAO4O,eACvBC,UAAW7O,EAAO6O,UAClBC,iBAAkB9O,EAAO8O,iBAC5BC,YAAa/O,EAAO+O,eAIvB,KAAK/E,IACH,OAAA44B,wBAAA,GACK9zC,GAAK,IACRmgB,cAAe,CACbL,eAAgB5O,EAAO4O,eACvBC,UAAW7O,EAAO6O,aAIxB,KAAK/D,IACH,OAAA83B,wBAAA,GACK9zC,GAAK,IACRugB,SAAUrP,EAAOqP,WAGrB,KAAKrE,IACH,OAAA43B,wBAAA,GACK9zC,GAAK,IACR6gB,SAAU3P,EAAO3H,OAGrB,KAAK0S,IACH,OAAA63B,wBAAA,GACK9zC,GAAK,IACRg4F,WAAY9mF,EAAO3H,OAIvB,KAAK4S,IAcH,OAbAnc,EAAMi4F,eAAeC,YAAchnF,EAAOgnF,YAC1Cl4F,EAAMi4F,eAAeE,eAAiBjnF,EAAOinF,eAC7Cn4F,EAAMi4F,eAAeG,sBAAwBlnF,EAAOknF,sBACpDp4F,EAAMi4F,eAAeI,wBAA0BnnF,EAAOmnF,wBACtDr4F,EAAMi4F,eAAeK,sBAAwBpnF,EAAOonF,sBACpDt4F,EAAMi4F,eAAeM,wBAA0BrnF,EAAOqnF,wBACtDv4F,EAAMi4F,eAAeO,eAAiBtnF,EAAOsnF,eAC7Cx4F,EAAMi4F,eAAeQ,iBAAmBvnF,EAAOunF,iBAC/Cz4F,EAAMi4F,eAAeS,gBAAkBxnF,EAAOwnF,gBAC9C14F,EAAMi4F,eAAeU,kBAAoBznF,EAAOynF,kBAChD34F,EAAMi4F,eAAeW,mBAAqB1nF,EAAO0nF,mBACjD54F,EAAMi4F,eAAeY,WAAa3nF,EAAO2nF,WAEzC/kD,YAAA,GACK9zC,GAGP,KAAKoc,IAGH,OAFApc,EAAMs4E,SAAS52E,WAAawP,EAAOxP,WACnC1B,EAAMs4E,SAASD,WAAannE,EAAOmnE,WACnCvkC,YAAA,GACK9zC,GAGP,KAAKqc,IACH,OAAAy3B,wBAAA,GACK9zC,GAAK,IACRoe,QAASlN,EAAOkN,UAGpB,KAAK9B,IACH,OAAAw3B,wBAAA,GACK9zC,GAAK,IACR+hB,aAAc7Q,EAAO6Q,aACrBC,WAAY9Q,EAAO8Q,aAGvB,KAAKlF,IACH,OAAAg3B,wBAAA,GACK9zC,GAAK,IACRkiB,cAAehR,EAAOgR,gBAG1B,KAAKnF,IACH,OAAA+2B,wBAAA,GACK9zC,GAAK,IACRoiB,mBAAoBlR,EAAOkR,qBAG/B,KAAK7F,IACH,OAAAu3B,wBAAA,GACK9zC,GAAK,IACRgiB,WAAY9Q,EAAO8Q,aAGvB,KAAKxF,IACH,OAAAs3B,wBAAA,GACK9zC,GAAK,IACRuiB,WAAYrR,EAAOqR,aAGvB,KAAK9F,IACH,OAAAq3B,wBAAA,GACK9zC,GAAK,IACRoC,eAAgB8O,EAAO9O,iBAG3B,KAAKsa,IACH,OAAAo3B,wBAAA,GACK9zC,GAAK,IACRyiB,cAAevR,EAAOuR,gBAG1B,KAAK9F,IACH,OAAAm3B,wBAAA,GACK9zC,GAAK,IACRyf,SAAUvO,EAAOuO,WAGrB,KAAK7C,IACH,OAAAk3B,wBAAA,GACK9zC,GAAK,IACR6nD,WAAY32C,EAAO22C,aAGvB,KAAKhrC,IACH,OAAAi3B,wBAAA,GACK9zC,GAAK,IACR2iB,gBAAiBzR,EAAOyR,kBAI5B,KAAK3F,IACH,OAAA82B,wBAAA,GACK9zC,GAAK,IACRolB,cAAelU,EAAOkU,gBAG1B,KAAKnI,IACH,OAAA62B,wBAAA,GACK9zC,GAAK,IACRslB,aAAcpU,EAAOoU,eAGzB,KAAMpI,IACJ,OAAA42B,wBAAA,GACK9zC,GAAK,IACRwlB,mBAAoBtU,EAAOsU,qBAE7B,KAAMrI,IACJ,OAAA22B,wBAAA,GACK9zC,GAAK,IACR0lB,qBAAsBxU,EAAOwU,uBAEnC,KAAKpI,IACH,OAAAw2B,wBAAA,GACK9zC,GAAK,IACRkmB,gBAAiBhV,EAAOgV,kBAG5B,KAAK9I,IAKH,OAJApd,EAAM0sF,WAAWzhF,SAAWiG,EAAOjG,SACnCjL,EAAM0sF,WAAW7mE,SAAW3U,EAAO2U,SACnC7lB,EAAM0sF,WAAW5mE,eAAiB5U,EAAO4U,eAEzCguB,YAAA,GACK9zC,GAGP,KAAK4a,IACH,OAAAk5B,wBAAA,GACK9zC,GAAK,IACRilB,iBAA6C,MAA3B/T,EAAO+T,iBAA2B/T,EAAO+T,iBAAmB,yBAC9EC,gBAAiBhU,EAAOgU,gBACxBplB,aAAcoR,EAAOpR,aACrBmjB,SAAU/R,EAAO+R,SACjBC,UAAWhS,EAAOgS,UAClBC,WAAYjS,EAAOiS,WACnBC,UAAWlS,EAAOkS,UAClBP,UAAW3R,EAAO2R,UAClBpa,kBAAmByI,EAAOzI,kBAC1B4a,eAAgBnS,EAAOmS,eACvB3K,aAAexH,EAAOwH,aACtB4K,mBAAoBpS,EAAOoS,mBAC3BC,gBAAiBrS,EAAOqS,gBACxBC,2BAA4BtS,EAAOsS,2BACnCC,8BAA+BvS,EAAOuS,8BACtCC,sBAAuBxS,EAAOwS,sBAC9BC,WAAYzS,EAAOyS,WACnBC,kBAAmB1S,EAAO0S,kBAC1BC,eAAgB3S,EAAO2S,eACvBC,oBAAqB5S,EAAO4S,oBAC5BC,mBAAoB7S,EAAO6S,mBAC3BC,sBAAuB9S,EAAO8S,sBAC9BC,yBAA0B/S,EAAO+S,yBACjCC,mBAAoBhT,EAAOgT,mBAC3BC,eAAgBjT,EAAOiT,eACvBC,gBAAiBlT,EAAOkT,gBACxBC,qBAAsBnT,EAAOmT,qBAC7BC,2BAA4BpT,EAAOoT,2BACnCC,eAAgBrT,EAAOqT,eACvBC,2BAA4BtT,EAAOsT,2BACnCC,oBAAqBvT,EAAOuT,oBAC5BC,gBAAiBxT,EAAOwT,gBACxBC,UAAUzT,EAAOyT,UAEjBC,8BAA+B1T,EAAO0T,8BACtCC,iBAAkB3T,EAAO2T,iBACzBC,cAAe5T,EAAO4T,cACtBC,qBAAsB7T,EAAO6T,qBAC7BC,oBAAqB9T,EAAO8T,sBAEhC,KAAK3H,IACH,OAAAy2B,wBAAA,GACK9zC,GAAK,IACRgmB,oBAAqB9U,EAAO8U,sBAGhC,KAAKzI,IACH,OAAAu2B,wBAAA,GACK9zC,GAAK,IACRomB,kBAAmBlV,EAAOkV,oBAG9B,KAAK5I,IACH,OAAAs2B,wBAAA,GACK9zC,GAAK,IACRsmB,kBAAmBpV,EAAOoV,oBAG9B,KAAK7I,IACH,OAAAq2B,wBAAA,GACK9zC,GAAK,IACRwmB,kBAAmBtV,EAAOsV,oBAG9B,KAAK9I,IACH,OAAAo2B,wBAAA,GACK9zC,GAAK,IACR0mB,mBAAoBxV,EAAOwV,qBAG/B,KAAK/I,IACH,OAAAm2B,wBAAA,GACK9zC,GAAK,IACR4mB,iBAAkB1V,EAAO0V,mBAG7B,KAAKhJ,IACH,OAAAk2B,wBAAA,GACK9zC,GAAK,IACR8mB,cAAe5V,EAAO3H,OAG1B,KAAKsU,IACH,OAAAi2B,wBAAA,GACK9zC,GAAK,IACRqgB,SAAUnP,EAAOmP,WAGrB,QACE,OAAOrgB,IG/hBTumC,cDHW,WAAoC,IAAnCvmC,EAAKnI,UAAAyI,OAAA,QAAA6gB,IAAAtpB,UAAA,GAAAA,UAAA,GAAGqhG,EAAehoF,EAAMrZ,UAAAyI,OAAA,EAAAzI,UAAA,QAAAspB,EACzC,OAAQjQ,EAAOpD,MACX,KAAK+I,IACD,OAAAi9B,wBAAA,GACO9zC,GAAK,IACRqX,WAAYnG,EAAOmG,WACnBJ,OAAQ/F,EAAO+F,SAGvB,QACI,OAAOjX,MCLjBq5F,8BAAoBC,0BAAgBC,OAGvBp6B,Q","file":"static/js/main.eda43df2.chunk.js","sourcesContent":["/// \n/// Author :\n/// API related key or field when making ajax or api call\n/// \nexport class ApiKey {\n static _API_SUCCESS_KEY = \"success\";\n static _API_MESSAGE_KEY = \"message\";\n static _API_DATA_KEY = \"data\";\n static _API_CODE_KEY = \"code\";\n\n static _API_CONTENT_TYPE = \"Content-Type\";\n static _API_ACCEPT = \"Accept\";\n static _API_APPLICATION_JSON = \"application/json\";\n static _API_XML_HTTP_REQUEST_KEY = \"XMLHttpRequest\";\n static _API_FORM_URLENCODED = \"application/x-www-form-urlencoded\";\n static _API_POST = \"POST\";\n static _API_GET = \"GET\";\n}\n\n\n\n/// \n/// Author :\n/// Url to communicate to controller\n/// \nexport class ApiUrl {\n static _API_LOGIN = \"/Account/Login\";\n static _API_LOGOUT = \"/Account/Logout\";\n static _API_IS_LOGGED_IN = \"/Account/heartBeat\";\n static _API_GET_USER_PAYMENT_GATEWAY_INFO = \"/Account/RetrievePaymentGatewayInfo\";\n static _API_SEND_RESET_PASSWORD_SMS = \"/Account/SendResetPasswordSms\";\n static _API_REGISTER = \"/Account/Register\"; //KT: More simple straight forward URL please.\n //Its also risky to have register/modify as a same function.\n static _API_CREATE_OR_UPDATE_MEMBER = \"/Account/InitiateOrReviseMember\";\n static _API_UPDATE_MEMBER_USERFULLNAME = \"/Account/ReviseMemberUserFullname\";\n static _API_GET_USER_ANNOUNCEMENT = \"/Account/RetrieveUserAnnouncement\";\n static _API_GET_COMPANY_CONTACT_US = \"/Account/RetrieveCompanyContactUs\";\n static _API_VERIFY_RESET_PASSWORD_SMS = \"/Account/ValidateResetPasswordSms\";\n\n static _API_UPDATE_USER_DATA = \"/Account/ReviseUserData\";\n\n static _API_GET_LOGIN_FAILED_COUNT = \"/Account/RetrieveLoginFailCount\";\n static _API_MANAGE_MEMBER_LOGIN_FAIL_COUNT =\n \"/Account/ManageMemberLoginFailCount\";\n\n static _API_GET_MEMBER_DETAILS = \"/Member/GetInfo\";\n static _API_GET_MEMBER_DOWNLINE_GAMES_BY_MASTERPRODUCT =\n \"/Member/RetrieveMemberDownlineGameByMasterProduct\";\n static _API_GET_MEMBER_DETAILS_DASHBOARD =\n \"/Member/RetrieveMemberDetailsDashboard\";\n static _API_GET_NOTIFICATION_LIST = \"/Member/RetrieveNotificationList\";\n static _API_MEMBER_RESET_PASSWORD = \"/Member/ResetPassword\";\n static _API_MEMBER_RESET_PASSWORD_BEFORE_LOGIN =\n \"/Member/ResetPasswordBeforeLogin\";\n static _API_MARK_ANNOUNCEMENT_AS_READ = \"/Member/MarkAnnouncementRead\";\n static _API_GET_USER_MEMBERS = \"/Member/RetrieveUserMember\";\n static _API_GET_USER_MEMBER_LIST = \"/Member/RetrieveUserMemberList\";\n static _API_GET_USER_MEMBER_LIST_LATEST = \"/Member/RetrieveUserMemberListLatest\";\n static _API_GET_DOWNLINE_MEMBER_STATUS_COUNT = \"/Member/RetrieveDownlineMemberStatusCount\";\n static _API_GET_MEMBER_PRODUCT_RATES = \"/Member/RetrieveMemberProductRates\";\n static _API_GET_MEMBER_UPLINE_PRODUCT_RATES = \"/Member/RetrieveUplineProductRates\";\n static _API_GET_MEMBER_REFERRAL_CODES = \"/Member/RetrieveMemberReferralCodes\";\n static _API_GET_MEMBER_REFERRAL_GROUPS_BY_CODE =\n \"/Member/RetrieveMemberReferralGroupsByCode\";\n static _API_GET_MEMBER_REFERRAL_GROUPS_LIST =\n \"/Member/RetrieveMemberReferralGroupsList\";\n static _API_DEL_REFERRAL = \"/Member/DelMemberReferralCode\";\n static _API_GENERATE_MEMBER_REFERRAL_CODE = \"/Member/GenerateReferralCode\";\n static _API_GET_UPLINE_BY_REFERRAL_CODE = \"/Member/RetrieveUplineByReferralCode\";\n static _API_GET_DOWNLINE_BY_REFERRAL_ID = \"/Member/RetrieveDownlineByReferralId\";\n static _API_CHECK_USERNAME = \"/Member/VerifyUsername\";\n static _API_GET_MEMBER_SUMMARY_KPI = \"/Member/RetrieveMemberSummaryKpi\";\n static _API_GET_MEMBER_DETAIL_KPI = \"/Member/RetrieveMemberKpiDetail\";\n static _API_UPDATE_MEMBER_NICKNAME = \"/Member/ReviseMemberNickname\";\n static _API_UPDATE_MEMBER_DOWNLINE = \"/Member/ReviseMemberDownline\";\n static _API_CHECK_MEMBER_PIN_NUMBER = \"/Member/VerifyMemberPinNumber\";\n static _API_SET_MEMBER_PIN_NUMBER = \"/Member/SetMemberPinNumber\";\n static _API_RESET_MEMBER_PIN_NUMBER = \"/Member/ResetMemberPinNumber\";\n static _API_CHECK_SHAREHOLDER_PIN_NUMBER =\n \"/Member/VerifyShareholderPinNumber\";\n static _API_SET_SHAREHOLDER_PIN_NUMBER = \"/Member/SetShareholderPinNumber\";\n static _API_RESET_SHAREHOLDER_PIN_NUMBER =\n \"/Member/ResetShareholderPinNumber\";\n static _API_CHECK_IF_PHONE_VERIFIED = \"/Member/VerifyIfPhoneVerified\";\n static _API_GET_COMPANY_SKIN_SETTINGS = \"/Member/RetrieveCompanySkinSettings\";\n\n static _API_GET_MEMBER_PRODUCT_DETAILS = \"/Member/RetrieveMemberProductDetails\";\n\n static _API_CREATE_OR_UPDATE_DOWNLINE_GROUP =\n \"/Member/InitiateOrReviseDownlineGroup\";\n static _API_ADD_OR_REMOVE_MEMBER_INTO_GROUP =\n \"/Member/AddOrRemoveMemberIntoGroup\";\n static _API_GET_DOWNLINE_GROUPS = \"/Member/RetrieveDownlineGroups\";\n static _API_GET_DOWNLINE_GROUP_DETAIL_BY_ID =\n \"/Member/RetrieveDownlineGroupDetailById\";\n static _API_DELETE_DOWNLINE_GROUP = \"/Member/DeleteDownlineGroup\";\n static _API_GET_UNGROUP_MEMBER_LIST = \"/Member/RetrieveUngroupMemberList\";\n\n static _API_GET_UNCLAIM_COMMISSION_AMT = \"/Member/RetrieveUnclaimCommissionAmt\";\n\n\n static _API_GET_USER_FULLNAME = \"/Member/RetrieveUserFullName\";\n\n static _API_GET_REPORT_OVERVIEW_SELECT_DATE =\n \"/Member/RetrieveReportOverviewSelectDate\";\n static _API_GET_MEMBER_WALLET_STATEMENT =\n \"/Transaction/RetrieveMemberWalletStatement\";\n static _API_GET_MEMBER_REWARD_HISTORY = \"/Transaction/RetrieveMemberRewardHistory\";\n static _API_GET_TRANSACTION_BY_MEMBER_ID =\n \"/Transaction/RetrieveTransactionByMemberId\";\n static _API_GET_TRANSACTION_BY_MEMBER_DEPOSIT_AND_WITHDRAWAL =\n \"/Transaction/RetrieveTransactionByMemberDepositAndWithdrawal\";\n static _API_GET_ROLLOVER_RECORD = \"/Transaction/RetrieveRolloverRecord\";\n static _API_CREATE_TRANSACTION = \"/Transaction/InitiateTransaction\";\n static _API_GET_BONUS_HISTORY = \"/Transaction/RetrieveBonusHistory\";\n static _API_GET_INTERNAL_TRANSFER = \"/Transaction/RetrieveInternalTransferHistory\";\n static _API_GET_COMMISSION_HISTORY = \"/Transaction/RetrieveCommissionHistory\";\n static _API_GET_PENDING_TRANSACTION = \"/Transaction/VerifyPendingTransaction\";\n\n static _API_GET_CLAIM_HISTORY = \"/Transaction/RetrieveClaimHistory\";\n static _API_GET_VADERPAY_BANK_OPTION = \"/Transaction/RetrieveVaderPayBankOption\";\n\n static _API_GET_GAME_RECORD_BY_MEMBER = \"/Game/RetrieveProductGameRecordByMember\";\n static _API_GET_OVERALL_GAME_RECORD_BY_MEMBER =\n \"/Game/RetrieveProductOverallGameRecordByMember\";\n\n static _API_GET_MEMBER_BANK_ACCOUNT_BY_MEMBER =\n \"/Bank/RetrieveMemberBankAccountByMember\";\n static _API_CREATE_OR_UPDATE_MEMBER_BANK_ACCOUNT =\n \"/Bank/InitiateOrReviseMemberBankAccount\";\n static _API_DELETE_MEMBER_BANK_ACCOUNT = \"/Bank/DeleteMemberBankAccount\";\n static _API_GET_USER_BANK = \"/Bank/RetrieveUserBank\";\n static _API_GET_BANK_ACCOUNT_BY_BANK_ID = \"/Bank/RetrieveBankAccountByBankId\";\n static _API_GET_BANK_ACCOUNT = \"/Bank/RetrieveBankAccount\";\n static _API_GET_BANK_ACCOUNT_2 = \"/Bank/RetrieveBankAccount2\";\n\n static _API_CREATE_WALLET_TRANSFER_TRANSACTION =\n \"/Transaction/InitiateWalletTransferTransaction\";\n\n static _API_GET_NON_SEAMLESS_PRODUCT_BALANCE =\n \"/Game/RetrieveNonSeamlessProductBalance\";\n static _API_GET_ASSIGNED_MEMBER_PRODUCT = \"/Game/RetrieveAssignedMemberProduct\";\n static _API_GET_POOL_RESULT = \"/Game/RetrievePoolResult\";\n static _API_GET_PRODUCT_WITH_MAX_RATE = \"/Game/RetrieveGroupedProductWithMaxRates\";\n static _API_GET_CATEGORY_GROUP_GAME = \"/Game/RetrieveCategoryGroupedGame\";\n static _API_GET_CATEGORY_GROUP_GAME_DASHBOARD =\n \"/Game/RetrieveCategoryGroupedGameDashboard\";\n\n static _API_GET_MASTER_PRODUCT_GROUP_GAME =\n \"/Game/RetrieveMasterProductGroupedGame\";\n static _API_GET_MASTER_PRODUCT_GROUP_GAME_BY_GAME_ID =\n \"/Game/RetrieveMasterProductGroupedGameByGameId\";\n static _API_GET_RECOMMENDED_MASTER_PRODUCT_GROUP_GAME =\n \"/Game/RetrieveRecommendedMasterProductGroupedGame\";\n static _API_GET_MASTER_PRODUCT_BY_ID = \"/Game/RetrieveMasterProductById\";\n static _API_HOMEPAGE_PRODUCTS =\n \"/Game/GetHomepageProducts\";\n\n static _API_GET_PROVIDER_GROUP_GAME =\n \"/Game/RetrieveProviderGroupGame\";\n\n static _API_CHECK_IF_NON_SEAMLESS = \"/Game/VerifyIfNonSeamless\";\n static _API_CHANGE_PRODUCT_PASSWORD = \"/Game/ChangeProductPassword\";\n static _API_GET_GAME_IS_NEW_WINDOW = \"/Game/RetrieveGameIsNewWindow\";\n\n static _API_START_GAME = \"/Game/StartGame\";\n static _API_GET_BET_DETAILS = \"/Game/RetrieveProductGameRecordById\";\n static _API_GET_COMMUNICATION_CHANNELS = \"/Member/RetrieveCommunicationChannel\";\n\n static _API_SEND_VERIFICATION_CODE = \"/Member/SendVerificationCode\";\n static _API_SEND_PIN_CODE = \"/Member/SendPinCode\";\n static _API_VERIFY_PHONE_NUMBER = \"/Member/ValidatePhoneNumber\";\n static _API_VERIFY_MULTIPLE_PHONE_NUMBER = \"/Member/ValidateMultiPhoneNumber\";\n static _API_CHECK_DISPLAY_BANK_DETAIL = \"/Bank/VerifyBankDetails\";\n\n static _API_GET_USER_BANNER = \"/Member/RetrieveUserBanner\";\n static _API_MANAGE_BANNER_NOTIFICATION = \"/Member/ManageBannerNotification\";\n static _API_GET_USER_REWARD_BANNER = \"/Member/RetrieveUserRewardBanner\";\n static _API_GET_PRODUCT_CATEGORY = \"/Member/RetrieveProductCategory\";\n static _API_GET_PRODUCT_CATEGORY_WITH_MASTER_PRODUCT =\n \"/Member/RetrieveProductCategoryWithMasterProduct\";\n static _API_GET_MASTER_PRODUCT_CATEGORY = \"/Member/RetrieveMasterProductCategory\";\n static _API_GET_USER_VIP_LEVEL = \"/Member/RetrieveUserVipLevel\";\n\n static _API_GET_MEMBER_SHAREHOLDER_DETAIL =\n \"/Member/RetrieveMemberShareholderDetail\";\n static _API_GET_MEMBER_SHAREHOLDER_UNCLAIM =\n \"/Member/RetrieveMemberShareholderUnclaim\";\n static _API_UPDATE_SHAREHOLDER = \"/Member/ReviseShareholder\";\n static _API_CLAIM_SHAREHOLDER = \"/Member/ClaimShareholder\";\n static _API_CLAIM_COMMISSION = \"/Member/ClaimCommission\";\n static _API_CLAIM_REWARD = \"/Member/ClaimReward\";\n\n static _API_UPDATE_MEMBER_THEME = \"/Member/ReviseMemberTheme\";\n\n //static _API_CHECK_PHONE_NUMBER = \"/Member/VerifyPhoneNumber\";\n\n static _API_GET_COMPANY_TNG_SYSTEM_SETTINGS =\n \"/Member/RetrieveCompanyTnGSystemSettings\";\n static _API_GET_FLAG_TRANSFER_BACK_MAIN_WALLET =\n \"/Game/RetrieveFlagTransferBackMainWallet\";\n\n static _API_SPG_CHECK = \"/Transaction/CheckSPG\";\n\n static _API_SEND_TAC_CODE = \"/Member/SendTACCode\";\n static _API_VERIFY_TAC_CODE = \"/Member/ValidateTACCode\";\n\n static _API_GET_USER_SYSTEM_SETTINGS = \"/Member/RetrieveUserSystemSettings\";\n\n static _API_ADD_OPERATION_LOG = \"/Account/AddOperationLog\";\n\n static _API_GET_CATEGORY_REWARD_RATES = \"/Member/RetrieveCategoryRewardRates\";\n\n static _API_UPDATE_MEMBER_PHONE_NUMBER = \"/Member/ReviseMemberPhoneNumber\";\n static _API_UPDATE_MEMBER_LANGUAGE = \"/Member/ReviseMemberLanguage\";\n static _API_UPDATE_MEMBER_USERFULLNAME = \"/Account/ReviseMemberUserFullname\";\n\n static _API_CHECK_MEMBER_ROLLOVER = \"/Member/VerifyMemberRollover\";\n\n static _API_GET_COMPANY_CONTENT_LANGUAGE =\n \"/Account/RetrieveCompanyContentLanguage\";\n\n static _API_GET_WALLET_TRANSFER = \"/Account/RetrieveWalletTransfer\";\n static _API_CHECK_IF_REFERRAL_CODE_EXIST = \"/Member/VerifyReferralCode\";\n static _API_GET_MEMBER_DETAILS_AND_DATE =\n \"/Member/GetInfoAndDate\";\n //KT: TO REMOVE THIS, THE COMMISSION SHOULD BE ALREADY WITH MEMBERDETAILSBYID\n static _API_GET_COMMISSION_AND_REBATE_AMT = \"/Member/RetrieveCommissionAndRebateAmt\";\n static _API_GET_NUMBER_OF_GEN = \"/Member/RetrieveNumberOfGen\";\n static _API_GET_CHAT_LIST = \"/Member/GetChat\";\n static _API_GET_DEPOSIT_PROMOTION_BY_MASTER_PRODUCT_ID =\n \"/Member/RetrievePromotionByMasterProductId\";\n\n static _API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS =\n \"/Member/RetrievePromotionRolloverProgress\";\n\n static _API_GET_DEPOSIT_PROMOTION = \"/Member/RetrievePromotion\";\n static _API_GET_DEPOSIT_PROMOTION_BY_ID = \"/Member/RetrievePromotionById\";\n static _API_GET_DEPOSIT_PROMOTION_INFO_BY_ID =\n \"/Member/RetrievePromotionInfoById\";\n\n static _API_GET_MEMBER_REFERRAL_LIST = \"/Member/RetrieveUserMemberReferralList\";\n\n static _API_GET_NON_SEAMLESS_PRODUCT = \"/Game/RetrieveNonSeamlessProduct\";\n static _API_GET_MARQUEE_TAG_CONTENT = \"/Member/RetrieveMarqueeTagContent\";\n static _API_GET_MARQUEE_TAG_CONTENT_BY_PLATFORM =\n \"/Member/RetrieveMarqueeTagContentByPlatform\";\n\n static _API_GET_RESTORE = \"/Bank/RestoreFunction\";\n static _API_GET_ALL_VIP_CRITERIA = \"/Member/RetrieveAllVipCriteriaByCompany\";\n static _API_GET_VIP_BENEFIT_CONTENT = \"/Member/RetrieveVipBenefitContent\";\n\n static _API_GET_MEMBER_WALLET_BALANCE = \"/Account/RetrieveMemberWalletBalance\";\n\n static _API_GET_LATEST_ROLLOVER_RECORD =\n \"/Transaction/RetrieveLatestRolloverRecord\";\n static _API_GET_MASTER_PRODUCT_GROUP_GAME_LIST =\n \"/Game/RetrieveMasterProductGroupedGameList\";\n static _API_REDEEM_VOUCHER = \"/Transaction/RedeemVoucher\";\n static _API_CHECK_MEMBER_BANK_ACCOUNT_BY_FULLNAME =\n \"/Bank/VerifyMemberBankAccountByFullname\";\n static _API_GET_APP_LOGIN_CRED = \"/Member/RetrieveAppLoginCred\";\n static _API_GET_WEEKLY_RESCUE = \"/Member/RetrieveWeeklyRescue\";\n static _API_CHECK_ANY_UNREAD_NOTIFICATION =\n \"/Member/VerifyAnyUnreadNotification\";\n static _API_PRODUCT_COMM_RATE = \"/Game/RetrieveProductCommRate\";\n static _API_UPDATE_REFERRAL_CODE = \"/Member/ReviseReferralCode\";\n static _API_CREATE_REFERRAL_CODE = \"/Member/InitiateReferralCode\";\n static _API_GET_TYPE_BANK_ACCOUNT = \"/Bank/RetrieveTypeBankAccount\";\n static _API_CREATE_TOPKASH_TRANSACTION =\n \"/Transaction/InitiateTopkashTransaction\";\n\n static _API_CREATE_TRANSACTION_TOPKASH =\n \"/Transaction/InitiateTransactionTopkash\";\n static _API_GET_MEMBER_DETAIL_KPI2 = \"/Member/RetrieveMemberKpiDetail2\";\n\n static _API_GENERATE_OTP = \"/Member/GenerateOTP\";\n static _API_CHECK_EMAIL = \"/Member/VerifyEmail\";\n static _API_UPDATE_MEMBER_EMAIL_AND_BIRTH_DATE =\n \"/Account/ReviseMemberEmailAndBirthDate\";\n\n static _API_GET_VIP_COMMISSION_HISTORY =\n \"/Transaction/RetrieveVipCommissionHistory\";\n static _API_GET_EXTRA_HTML_STYLE = \"/Member/RetrieveExtraHtmlStyle\";\n static _API_GET_CRYPTO_WALLETS = \"/Bank/RetrieveCryptoWallets\";\n static _API_GET_RECENT_GAMES = \"/Game/RetrieveRecentgame\";\n\n //Get Separated Promotion\n static _API_GET_DEPOSIT_PROMOTION_CATEGORY =\n \"/Member/RetrievePromotionCategory\";\n static _API_GET_DEPOSIT_PROMOTION_CATEGORY_BY_ID =\n \"/Member/RetrievePromotionCategoryById\";\n static _API_GET_LATEST_TRANSACTION_BY_MEMBER_DEPOSIT_AND_WITHDRAWAL =\n \"/Transaction/RetrieveLatestTransactionByMemberDepositAndWithdrawal\";\n static _API_GET_LATEST_GAME_RECORD_BY_MEMBER =\n \"/Game/RetrieveLatestProductGameRecordByMember\";\n static _API_GET_SUMMARY_GAME_RECORD = \"/Game/RetrieveSummaryProductGameRecord\";\n static _API_GET_LATEST_GAME_RECORD = \"/Game/RetrieveLatestProductGameRecord\";\n static _API_GET_LATEST_BETS = \"/Game/RetrieveLatestBets\";\n static _API_START = \"/Game/Start\";\n static _API_GET_MEMBER_ACCOUNT_BALANCE = \"/Account/RetrieveMemberAccountBalance\";\n\n static _API_GET_PAYMENT_GATEWAY_INFO_BY_ID = \"/Account/RetrievePaymentGatewayInfoById\";\n static _API_GET_MEMBER_UPGRADE_BONUS_RECORD = \"/Account/RetrieveMemberUpgradeBonusRecord\";\n static _API_REDEEM_MEMBER_VIP_BONUS = \"/Transaction/RedeemUpdateVipBonus\";\n static _API_GET_BONUS_DEPOSIT = \"/Transaction/GetBonusDeposit\";\n\n static _API_CLAIM_PROMOTION_FS = \"/Transaction/ClaimPromotion\";\n static _API_RESTORE_ALL_WALLET = \"/Transaction/RestoreAllWallet\";\n\n static _API_RESTORE_MAIN_WALLET = \"/Transaction/RestoreMainWallet\";\n static _API_UPDATE_TRANSACTION_VALID_FOR_PROMO = \"/Transaction/UpdateTransactionValidForPromo\";\n\n static _API_CHECK_WALLET = \"/Game/CheckWallet\";\n\n static _API_GET_MASTER_REFERRAL_CODE = \"/Member/RetrieveMemberMasterReferralCodes\";\n\n static _API_GET_COMPANY_ICON_SETTINGS = \"/Member/RetrieveCompanyIconSettings\";\n static _API_GET_COMPANY_DETAILS = \"/Account/GetCompanyDetails\";\n\n\n static _API_SEND_CHAT = \"/api/chat/user/send\";\n static _API_SEND_FILE = \"/api/chat/user/file\";\n static _API_SEND_VOICE = \"/api/chat/user/voice\";\n static _API_MARK_LIVECHAT_AS_READ = \"/Member/MarkLivechatRead\";\n\n static _API_GET_TOP_DEPOSIT_WITHDRAWAL = \"/Member/GetLatestDepositWithdrawal\";\n static _API_MEMBER_FIRST_TIME_RESET_PASSWORD = \"/Member/FirstTimeResetPassword\";\n static _API_GET_TOTAL_PROMO_CLAIMABLE = \"/Member/GetTotalPromoClaimable\";\n\n static _API_GET_ANNOUNCEMENT = \"/Account/RetrieveAnnouncement\";\n static _API_GET_MINIMUM_DEPOSIT_WITHDRAWAL = \"/Bank/getMinimumDepositWithdrawal\";\n\n static _API_GET_TOTAL_COMM_EARNED = \"/Member/GetTotalCommEarned\";\n static _API_GET_SETTING = \"/Account/GetSetting\";\n static _API_PROMOTION_SLUG = \"/Account/PromotionSlug\";\n static _API_CUSTOM_SLUG = \"/Account/CustomSlug\";\n static _API_MEMBER_UPDATE_PROFILE = \"/Member/MemberUpdateProfile\";\n static _API_GET_FLOATING_CHANNEL=\"/Account/GetFloatingChat\";\n\n static _API_GET_SEO_META_CONTENT = \"/Member/RetrieveSeoMetaContent\";\n static _API_CHECK_TRANSACTION_REFERENCE = \"/Transaction/VerifyTransactionReference\";\n\n\n // Customizer/Custom Pages\n static _API_GET_THEME_TEMPLATE_BY_HANDLE = \"/Theme/GetThemeTemplateByHandle\";\n static _API_GET_THEME_SECTION_BY_HANDLE = \"/Theme/GetThemeSectionByHandle\";\n\n static _API_GET_RECENT_PAYOUT = \"/Account/GetRecentPayout\";\n\n static _API_GET_BIG_WIN = \"/Account/GetBigWin\";\n static _API_GET_REBATES_RECORD = \"/Member/GetRebatesRecord\";\n\n static _API_GET_COMPANY_CHANNEL = \"/Account/getCompanyChannel\";\n\n static _API_GET_GAME_TOP_3_WINNER = \"/Game/GetGameTop3Winners\";\n static _API_GET_RECOMMENDED_GAME = \"/Game/GetRecommendedGame\";\n static _API_RETRIEVE_GAME_BET_RECORDS = \"/Game/RetrieveGameBetRecords\";\n static _API_RETRIEVE_PRODUCT_GAME_BY_GAME_ID = \"/Game/RetrieveProductGameByGameId\";\n static _API_GET_TRANSACTION_TODAY_BY_USER = \"/Transaction/getTransactionTodayByUserId\";\n\n static _API_GET_DAILY_CHECK_IN = \"/Member/RetrieveDailyCheckInItem\";\n static _API_CLAIM_DAILY_CHECK_IN = \"/Member/InitiateMemberDailyCheckIn\";\n static _API_DAILY_CHECK_IN_STATUS = \"/Member/GetDailyCheckInStatus\";\n static _API_GET_DAILY_CHECK_IN_RECORD = \"/Member/GetDailyCheckInRecord\";\n\n //Delete later\n static _API_TEST_DAILY_CHECK_IN = \"/Member/TestMemberDailyCheckIn\";\n\n \n // Imreward\n static _API_GET_MEMBER_SPINS = \"/Member/GetMemberSpins\";\n static _API_GET_MEMBER_SPINS_CLAIMS_RECORD = \"/Member/GetMemberSpinsClaimRecord\";\n static _API_GET_SPINWHEEL_SETTINGS = \"/Member/GetSpinwheelSettings\";\n static _API_IMREWARD_CALLBACK = \"/api/imreward/callback\";\n static _API_IMREWARD_SPIN = \"/api/imreward/spin\";\n static _API_IMREWARD_GENERATE_TOKEN = \"/api/imreward/generate-token\"; // Login to imreward\n static _API_IMREWARD_CREATE_CAMPAIGN_TOKEN = \"https://api-imreward.holiaodev.com/api/campaign-tokens/create\";\n static _API_IMREWARD_GET_ALL_CAMPAIGNS_BY_SUBSCRIBER = \"https://api-imreward.holiaodev.com/api/campaigns/subscriber\";\n static _API_IMREWARD_FIND_ALL_CAMPAIGN_TOKENS_BY_CAMPAIGN_ID = \"https://api-imreward.holiaodev.com/api/campaign-tokens/campaign\";\n\n static _API_GET_MEMBER_REFERRAL_BONUS = \"/Member/GetMemberReferralBonus\";\n static _API_CLAIM_MEMBER_REFERRAL_BONUS = \"/Member/ClaimReferralBonus\";\n\n // Phone number (CHRIS 20241209: we use it as Ewallet Accounts for now, until bank system refactoring)\n static _API_ADD_MEMBER_PHONE_NUMBER = \"/Member/AddMemberPhoneNumber\";\n static _API_GET_MEMBER_PHONE_NUMBERS = \"/Member/GetMemberPhoneNumbers\";\n\n static _API_GET_EWALLET_STATUS = \"/Bank/GetEwalletStatus\";\n static _API_GET_USER_E_WALLET = \"/Bank/RetrieveUserEWallet\";\n\n static _API_GET_DASHBOARD_COMPONENT_SEQUENCE = \"/Member/RetrieveDashboardComponentSequence\";\n\n //commission setting\n static _API_GET_COMMISSION_SETTING = \"/Account/GetCommissionSetting\";\n\n static _API_UPDATE_MEMBER_FAVORITE_TRACK_IDS = \"/Member/UpdateMemberFavoriteTrackIds\";\n\n static _API_DYNAMIC_PRODUCT_COMM_RATE = \"/Game/RetrieveDynamicProductCommRate\";\n\n static _API_CLAIM_REFERRAL_COMMISSION = \"/Member/ClaimReferralCommission\";\n static _API_GET_REBATE_INFO_AMT= \"/Member/GetRebateInfoAmt\";\n static _API_CLAIM_REBATE= \"/Member/ClaimRebate\";\n static _API_GET_REFERRAL_COMMISSION = \"/Member/GetReferralCommission\";\n static _API_GET_REFERRAL_INFO_AMT = \"/Member/GetReferralInfoAmt\";\n static _API_GET_REFERRAL_COMMISSION_RATE = \"/Account/GetReferralCommissionRate\";\n static _API_GET_HOT_GAMES = \"/Game/GetHotGames\";\n static _API_GET_REFERRAL_FAQ = \"/Account/GetReferralFaq\";\n}\n\n/// \n/// Author :\n/// Url to navigate to pages\n/// \nexport class BaseWebUrl {\n static currentLocale = null;\n\n static getCurrentLocale() {\n if (!BaseWebUrl.currentLocale) {\n // console.log('localStorage.getItem(SessionKey._LANGUAGE)', localStorage.getItem(SessionKey._LANGUAGE))\n BaseWebUrl.currentLocale = localStorage.getItem(SessionKey._LANGUAGE) || 'en'; // Default to 'en' if no locale set\n }\n return BaseWebUrl.currentLocale;\n }\n\n // Method to update locale both in localStorage and cache\n static setCurrentLocale(locale) {\n localStorage.setItem(SessionKey._LANGUAGE, locale);\n BaseWebUrl.currentLocale = locale;\n }\n\n // Method to get a URL with the locale prefix\n static getLocaleUrl(url) {\n if (url === \"/\") {\n url = \"\";\n }\n return `/${BaseWebUrl.currentLocale}${url}`;\n }\n\n // // Use a static getter to always fetch the current locale\n // static get locale() {\n // return localStorage.getItem(\"language\") || \"en\"; // Provide a default if nothing is set\n // }\n\n // // Add a setter to update the locale in localStorage\n // static set locale(newLocale) {\n // localStorage.setItem(\"language\", newLocale);\n // }\n\n // // Method to set the locale, which utilizes the setter\n // static setLocale(newLocale) {\n // WebUrl.locale = newLocale; // This now calls the static setter\n // }\n\n // // Method to get a URL with the locale prefix\n // static getLocaleUrl(url) {\n // if(url === \"/\") {\n // url = \"\";\n // }\n // return `/${WebUrl.locale}${url}`;\n // }\n\n // // CHRIS_LOCALE: Static getter for home URL, demonstrates usage of getLocaleUrl\n // static get _URL_MAIN() {\n // return WebUrl.getLocaleUrl(\"/\");\n // }\n // static get _URL_HOME() {\n // console.log('WebUrl._URL_HOME', WebUrl.getLocaleUrl(\"/\"));\n // return WebUrl.getLocaleUrl(\"/\");\n // }\n // static get _URL_SETTINGS() {\n // console.log('WebUrl._URL_SETTINGS', WebUrl.getLocaleUrl(\"/settings\"));\n // return WebUrl.getLocaleUrl(\"/settings\");\n // }\n\n static _URL_MAIN = \"/\";\n static _URL_HOME = \"/\";\n // static _URL_ECOMMERCE = \"/ecommerce\";\n static _URL_LOGIN = \"/login\";\n static _URL_LIVECHAT = \"/livechat\";\n // static _URL_WELCOME = \"/welcome\";\n // static _URL_FORGOT = \"/forgot\";\n static _URL_REGISTER = \"/register\";\n\n static _URL_NOT_FOUND = \"/not-found\";\n static _URL_UNDER_MAINTENANCE = \"/under-maintenance\";\n // static _URL_DASHBOARD = \"/dashboard\";\n // static _URL_DASHBOARD2 = \"/dashboard2\";\n // static _URL_DASHBOARD_V2 = \"/dashboardv2\";\n // static _URL_QR_CODE = \"/qr-code\";\n // static _URL_WITHDRAWAL = \"/withdrawal\";\n // static _URL_WITHDRAWAL_RECORD = \"/withdrawal-record\";\n // static _URL_DEPOSIT_RECORD = \"/deposit-record\";\n // static _URL_CASH_RELOAD = \"/cash-reload\";\n // static _URL_CASH_BALANCE = \"/cash-balance\";\n // static _URL_CASH_BALANCE_HISTORY = \"/cash-balance-history\";\n // static _URL_DOWNLINE = \"/downline\";\n // static _URL_DOWNLINE_DETAILS = \"/downline-details\";\n // static _URL_MY_DOWNLINES = \"/downlines\";\n // static _URL_EDIT_DOWNLINE = \"/edit-downline\";\n // static _URL_FORGET_PIN = \"/forget-pin\";\n // static _URL_POINT_TRANSFER = \"/point-transfer\";\n // static _URL_POINT_BALANCE = \"/point-balance\";\n // static _URL_RECEIPTS = \"/receipts\";\n static _URL_SETTINGS = \"/settings\";\n static _URL_NEWS = \"/news\";\n static _URL_NEWS_DETAILS = \"/news-details\";\n // static _URL_PACKAGES = \"/packages\";\n // static _URL_TICKETS = \"/tickets\";\n // static _URL_KPI = \"/kpi\";\n static _URL_GAME_LOBBY = \"/game-lobby\";\n // static _URL_DEPOSIT = \"/deposit\";\n // static _URL_TRANSACTION = \"/transaction\";\n // static _URL_TRANSFER_SUCCESS = \"/transfer-successful\";\n // static _URL_RELOAD_TRANSACTION = \"/reload\";\n // static _URL_WALLET_HISTORY = \"/report/wallet-history\";\n // static _URL_WALLET_HISTORY_MOBILE = \"/report/wallet-historyM\";\n // static _URL_TRANSACTION_HISTORY = \"/report/transaction-history\";\n // static _URL_BONUS_HISTORY = \"/report/bonus-history\";\n // static _URL_INTERAL_TRASNFER_HISTORY = \"/report/internal-transfer-history\";\n // static _URL_WALLET_TRANSFER_HISTORY = \"/report/wallet-transfer-history\";\n // static _URL_COMMISSION_HISTORY = \"/report/commission-history\";\n // static _URL_ROLLOVER_STATEMENT = \"/report/rollover-statement\";\n // static _URL_GAME_HISTORY = \"/report/game-history\";\n // static _URL_MEMBERS_TRANSFER = \"/report/members-transfer\";\n // static _URL_GAME_WALLET_TRANSFER = \"/report/game-wallet-transfer\";\n // static _URL_REPORTS_OVERVIEW = \"/report/overview\";\n // static _URL_GAME_DETAILS = \"/report/game-details\";\n // static _URL_GAME_RESULT = \"/result\";\n // static _URL_REPORTS = \"/report\";\n // static _URL_GAME_WALLET = \"/game-wallet\";\n // static _URL_MAINTENANCE = \"/maintenance\";\n static _URL_CONTACT_US = \"/contact-us\";\n static _URL_LIVE_CHAT = \"/livechat\";\n // static _URL_SHAREHOLDER = \"/shareholder\";\n // static _URL_SHAREHOLDER_DETAIL = \"/shareholder-details\";\n // static _URL_EDIT_SHAREHOLDER = \"/edit-shareholder\";\n // static _URL_DOWNLINE_GROUP_DETAIL = \"/downline-group-detail\";\n // static _URL_UNCLAIM_COMMISSION_HISTORY = \"/unclaim-commission-history\";\n static _URL_TNC = \"/tnc\";\n // static _URL_REWARDS_TNC = \"/rewards-tnc\";\n // static _URL_CLAIM_RECORD = \"/claim-history\";\n // static _URL_SUMMARY_DOWNLINE_SALES = \"/shareholder/downline\";\n // static _URL_DOWNLINE_PRODUCT_RATE_DETAIL = \"/downline/product-rate-detail\";\n // static _URL_REWARDS = \"/rewards\";\n // static _URL_REWARDS_HISTORY = \"/rewards/history\";\n // static _URL_REWARDS_DETAIL = \"/rewards/detail\";\n // static _URL_GAME_PAGE = \"/game-page\";\n // static _URL_GAME_RELOAD = \"/game-reload\";\n // static _URL_ACTIVITY_MAIN = \"/activity\";\n // static _URL_WALLET_STATEMENT = \"/wallet-statement\";\n // static _URL_WITHDRWAL_METHODS = \"/withdraw-methods\";\n // static _URL_WITHDRWAL_BY_BANK_TRANSFER = \"/withdraw-by-bank-transfer\";\n // static _URL_SCAN_QR = \"/scan-qr\";\n // static _URL_CREATE_ACCOUNT = \"/scan-qr/create-account\";\n // static _URL_VERIFY_CREATE_ACCOUNT = \"/scan-qr/verify\";\n // static _URL_CREATE_PASSWORD = \"/scan-qr/create-password\";\n // static _URL_CREATE_ACCOUNT_SUCCESS = \"/success\";\n // static _URL_CREATE_ACCOUNT_BY_REFERRAL_CODE = \"/key-in-referral\";\n // static _URL_WITHDRAWAL_IN_PROGRESS = \"/withdrawal-in-progress\";\n // static _URL_MAIN_WALLET = \"/wallet\";\n // static _URL_RELOAD_BANK = \"/deposit/reload-bank\";\n // static _URL_GIFTPACE = \"/deposit/giftpace\";\n // static _URL_RELOAD_TOUCH_N_GO = \"/transaction/reload-touchngo\";\n // static _URL_UPLOAD_RELOAD_RECEIPT = \"/deposit/upload-reload-receipt\";\n // static _URL_RELOAD_DONE = \"/deposit/reload-done\";\n // static _URL_COMMISSION = \"/commission\";\n // static _URL_TRANSFER = \"/transfer\";\n // static _URL_VIP_BENEFITS = \"/vip-benefits\";\n static _URL_PROMOTION = \"/promotion\";\n static _URL_PROMOTION_INFO = \"/promo\";\n // static _URL_COMMISSIONS_INFO = \"/commissions-info\";\n // static _URL_TOPKASH = \"/deposit/topkash\";\n // static _URL_WITHDRAWAL_BY_TOPKASH = \"/withdraw-by-topkash\";\n // static _URL_VIP_COMMISSION_HISTORY = \"/vip-commission-history\";\n // static _URL_HUIONE_DEPOSIT = \"/huione-deposit\";\n // static _URL_WITHDRAWAL_BY_HUIONE = \"/withdraw-by-huione\";\n // static _URL_CRYPTO_WALLETS = \"/crypto-wallets\";\n // static _URL_CRYPTO_DEPOSIT = \"/crypto-deposit\";\n // Daily Check In\n // static _URL_DAILY_CHECK_IN = \"/daily-check-in\";\n // static _URL_DC_REDEMPTION = \"/daily-check-in-redemption\";\n // static _URL_DC_REDEMPTION_HISTORY = \"/daily-check-in-redemption-history\";\n // static _URL_UNCLAIM_DC_POINTS = \"/unclaim-daily-check-in-points\";\n // static _URL_DC_POINTS_HISTORY = \"/daily-check-in-points-history\";\n static _URL_GAME_LIST = \"/game-list\";\n static _URL_REFERRAL = \"/referral\";\n static _URL_RECENT_GAMES = \"/recent-games\";\n static _URL_VIP = \"/membership\";\n // static _URL_WING_WEILUY_DEPOSIT = \"/wing-weiluy-deposit\";\n // static _URL_UPLOAD_WING_WEILUY_RECEIPT = \"/deposit/upload-wing-weiluy-receipt\";\n // static _URL_WITHDRAW_BY_WING_WEILUY = \"/withdraw-by-wing-weiluy\";\n\n // static _URL_WITHDRAWAL_BY_BCPAY = \"/withdraw-by-bcpay\";\n static _URL_GAME_LIST_SPORTS = \"/sports\";\n static _URL_GAME_LIST_SLOTS = \"/slots\";\n static _URL_GAME_LIST_CASINO = \"/casino\";\n static _URL_GAME_LIST_FISHHUNT = \"/fish\";\n static _URL_GAME_LIST_KENO = \"/keno\";\n static _URL_GAME_LIST_SLOTS_NEW = \"/slots-new\";\n static _URL_GAME_LIST_E_SPORT = \"/e-sport\";\n static _URL_GAME_LIST_ARCADE = \"/arcade\";\n static _URL_GAME_LIST_CRASH = \"/crash\";\n static _URL_GAME_LIST_EXCHANGE = \"/exchange\";\n static _URL_GAME_LIST_POKER = \"/poker\";\n\n static _URL_REBATE = \"/rebate\";\n static _URL_PROMOTION_INFO_SLUG = '/promo/:slug';\n\n static _URL_IFRAME_GAME_PAGE = '/game-page';\n static _URL_SPIN_WHEEL_LIST = '/spin-wheel';\n static _URL_HOT_GAMES = \"/hot-games\";\n\n}\n\nexport const WebUrl = new Proxy(BaseWebUrl, {\n get(target, prop, receiver) {\n if (prop.startsWith('_URL')) {\n const urlPath = Reflect.get(...arguments);\n const locale = BaseWebUrl.getCurrentLocale();\n // Apply middleware logic\n // console.log(`Accessing URL: ${urlPath} with locale ${locale}`);\n // console.log('`/${locale}${urlPath}`', `/${locale}${urlPath}`)\n return `/${locale}${urlPath}`;\n }\n\n return Reflect.get(...arguments);\n }\n});\n\n/// \n/// Author :\n/// \nexport class Status {\n static _ENABLED = 1;\n static _DISABLED = 0;\n static _DELETED = 2;\n}\n\n/// \n/// Author :\n/// \nexport class Language {\n static _ENGLISH = \"en\";\n static _KHMER = \"kh\";\n static _CHINESE = \"zh\";\n static _VIETNAMESE = \"vi\";\n static _INDON = \"id\";\n static _PORTUGUESE = \"pt\";\n static _BENGALI = \"bn\";\n static _TRADITIONAL_CHINESE = \"zk\";\n static _NEPALI = \"ne\";\n static _URDU = \"ur\";\n static _TOK_PISIN = \"tpi\";\n static _HIRI_MOTU = \"ho\";\n}\n\n/// \n/// Author :\n/// \nexport class SessionKey {\n static _LANGUAGE = \"language\";\n static _LOGIN_GUID = \"loginGuid\";\n static _TEMP_GUID = \"tempGuid\";\n}\n\n/// \n/// Author :\n/// \nexport class Role {\n static _SUPER_ADMIN = 1;\n static _SHOP = 2;\n static _MANAGER = 3;\n static _MEMBER = 4;\n static _ADMIN_SUB_ACCOUNT = 0;\n}\n\n/// \n/// Author : -\n/// \nexport class TransactionType {\n static _DEPOSIT = 1;\n static _WITHDRAWAL = 2;\n static _BONUS = 3;\n static _ADJUSTMENT = 4;\n static _REBATE = 5;\n static _TRANSFER = 6;\n static _REFERRALBONUS = 7;\n static _REFUND = 8;\n static _COMMISSION = 9;\n static _BIRTHDAY_REWARD = 10;\n static _DAILY_RESCUE = 11;\n static _CREDIT_REDEMPTION = 12;\n static _VIP_UPGRADE_BONUS = 13;\n static _SPIN_WHEEL = 16;\n static _REWARD = 999;\n static _DAILY_CHECK_IN = 15;\n}\n\n/// \n/// Author : -\n/// \nexport class TransactionStatus {\n static _OPEN = 0;\n static _IN_REVIEW = 1;\n static _IN_PROGRESS = 2;\n static _APPROVED = 3;\n static _REJECTED = 4;\n static _AUTO_APPROVED = 5;\n}\n\n/// \n/// Author: -\n/// \nexport class InputValidationKey {\n static _REQUIRED_KEY = \"required\";\n static _MAX_LENGTH_KEY = \"maxLength\";\n static _MIN_LENGTH_KEY = \"minLength\";\n}\n\n/// \n/// Author: -\n/// \nexport class AlertTypes {\n static _DEFAULT = \"default\"; // (No icon for default)\n static _INFO = \"info\"; // dont use this\n static _SUCCESS = \"success\"; // work properly\n static _WARNING = \"warning\"; // work properly\n static _DANGER = \"danger\"; // work properly\n static _ERROR = \"error\"; // work properly\n static _INPUT = \"input\"; // work properly\n static _CUSTOM = \"custom\"; // (No icon for default)\n}\n\n/// \n/// Author: -\n/// \nexport class FilterStatus {\n static _ACTIVE = 1;\n static _DELETED = 2;\n static _SUSPENDED = 0;\n}\n\n/// \n/// Author: -\n/// \nexport class LoginType {\n static _LOGIN_TYPE_SHOP = 2;\n static _LOGIN_TYPE_ADMIN = 1;\n}\n\n/// \n/// Author: -\n/// this is match db value, do not change\n/// \nexport class TopUpStatus {\n static _PENDING = 0;\n static _SUCCESS = 1;\n static _FAILED = 2;\n}\n\n/// \n/// Author: -\n/// \nexport class CommonStatus {\n static _ALL_STATUS = -1;\n static _PENDING_STATUS = 0;\n static _APPROVE_STATUS = 1;\n static _REJECT_STATUS = 2;\n static _INACTIVE_STATUS = 3;\n}\n\nexport class TransferType {\n static _DEFAULT = \"Default\";\n static _CONVERT_POINTS = \"Convert Points\";\n static _BANK = \"Bank\";\n static _DOWNLINE = \"Downline\";\n static _UPLINE = \"Upline\";\n}\n\n/// \n/// Author : -\n/// \nexport class BankingChannel {\n static _CHANNEL_OFFLINE_BANKING = 1;\n static _CHANNEL_PAYTRUST = 2;\n static _CHANNEL_GPAY = 3;\n}\n\n/// \n/// Author : -\n/// \nexport class PanelType {\n static _MEMBERSITE = \"MemberSite\";\n static _MOBILESITE = \"MobileSite\";\n static _BACKOFFICE = \"BackOffice\";\n static _APPS = \"Apps\";\n static _SYSTEM = \"Systems\";\n}\n\n/// \n/// Author : -\n/// \nexport class BetStatus {\n static _PENDING_BET_STATUS = 0;\n static _SETTLED_BET_STATUS = 1;\n static _CANCELED_BET_STATUS = 2;\n}\n\n/// \n/// Author : -\n/// \nexport class LanguageKey {\n static _PRIMARY = \"common\";\n}\n\n/// \n/// Author : -\n/// \nexport class PaymentType {\n static _PREPAID = 2;\n static _POSTPAID = 1;\n}\n\n/// \n/// Author : -\n/// this value have to match with backend\n/// \nexport class DisplayDevice {\n static _DESKTOP_MAIN = 0;\n static _DESKTOP_SUB = 1;\n static _MOBILE_POPOUT = 2;\n static _MOBILE_SLIDER = 3;\n static _DESKTOP_POPUP = 4;\n}\n\n/// \n/// Author : -\n/// \nexport const _TICKET_STATUS = [\n { value: null, label: \"ALL\" },\n { value: \"0\", label: \"PENDING\" },\n { value: \"1\", label: \"SETTLED\" },\n { value: \"2\", label: \"CANCELLED\" },\n];\n\n/// \n/// Author : -\n/// \nexport const _MAIN_WALLET_ID = 0;\n\n/// \n/// Author : Wong\n/// \nexport const LanguageOptionTemplate3 = [\n {\n prefix: \"PT\",\n value: Language._PORTUGUESE,\n name: \"Portuguese\",\n code: \"pt\",\n languageId: 6,\n },\n {\n prefix: \"EN\",\n value: Language._ENGLISH,\n name: \"English\",\n code: \"en\",\n languageId: 1,\n },\n {\n prefix: \"中文\",\n value: Language._CHINESE,\n name: \"Chinese\",\n code: \"zh\",\n languageId: 3,\n },\n\n];\n\nexport const LanguageOption = [\n {\n prefix: \"EN\",\n value: Language._ENGLISH,\n name: \"English\",\n code: \"en\",\n languageId: 1,\n },\n {\n prefix: \"ខ្មែរ\",\n value: Language._KHMER,\n name: \"Khmer\",\n code: \"kh\",\n languageId: 2,\n },\n {\n prefix: \"中文\",\n value: Language._CHINESE,\n name: \"Chinese\",\n code: \"zh\",\n languageId: 3,\n },\n {\n prefix: \"VI\",\n value: Language._VIETNAMESE,\n name: \"Vietnamese\",\n code: \"vi\",\n languageId: 4,\n },\n {\n prefix: \"ID\",\n value: Language._INDON,\n name: \"Indonesia\",\n code: \"id\",\n languageId: 5,\n },\n {\n prefix: \"PT\",\n value: Language._PORTUGUESE,\n name: \"Portuguese\",\n code: \"pt\",\n languageId: 6,\n },\n {\n prefix: \"BN\",\n value: Language._BENGALI,\n name: \"Bengali\",\n code: \"bn\",\n languageId: 7,\n },\n {\n prefix: \"ZK\",\n value: Language._CHINESE_HK,\n name: \"Tranditional Chinese\",\n code: \"zk\",\n languageId: 8,\n },\n {\n prefix: \"ne\",\n value: Language._NEPALI,\n name: \"Nepali\",\n code: \"ne\",\n languageId: 9,\n },\n {\n prefix: \"UR\",\n value: Language._URDU,\n name: \"Urdu\",\n code: \"ur\",\n languageId: 10,\n },\n {\n prefix: \"TPI\",\n value: Language._TOK_PISIN,\n name: \"Tok Pisin\",\n code: \"tpi\",\n languageId: 11,\n },\n {\n prefix: \"HO\",\n value: Language._HIRI_MOTU,\n name: \"Hiri Motu\",\n code: \"ho\",\n languageId: 12,\n },\n];\n\n/// \n/// Author : KT\n/// Desc : Temporary measure to visualize the multiple theme data from DB\n/// TODO : Change keyword THEME to TEMPLATE (Prevent confusion)\n/// \nexport const ClientTemplates = [\n {\n hostname: \"localhost\", // Example\n template_id: 1,\n template: \"template_1\",\n },\n {\n hostname: \"prod.com\", // Example\n template_id: 2,\n template: \"template_1\",\n },\n {\n hostname: \"staging-template3.holiaodev.com\", // Example\n template_id: 3,\n template: \"template_1\",\n },\n {\n hostname: \"features01.riocity9.com\", // Example\n template_id: 3,\n template: \"template_1\",\n },\n {\n hostname: \"staging.riocity9.com\", // Example\n template_id: 4,\n template: \"template_1\",\n },\n];\n\nexport const LanguageSelectStyle = {\n control: (styles, state) => ({\n width: \"60px\",\n padding: \".5rem\",\n borderRadius: \"4px\",\n background: \"rgba(0, 0, 0, 0.3)\",\n }),\n placeholder: (provided, state) => ({\n color: \"#fff\",\n margin: \"0 auto\",\n }),\n dropdownIndicator: (defaultStyles) => ({\n display: \"none\",\n }),\n indicatorsContainer: (defaultStyles) => ({\n display: \"none\",\n }),\n option: (provided, state) => ({\n fontSize: \"12px\",\n textAlign: \"center\",\n marginTop: \"3px\",\n marginBottom: \"2px\",\n padding: \".5rem 1rem\",\n color: \"#002e6c\",\n }),\n};\n\nexport const PhoneNumberPrefix = [\n {\n label: \"+61\",\n countryCode: \"AU\",\n value: \"61\",\n }\n //{\n // label: \"+55\",\n // countryCode: \"PT\",\n // value: \"55\",\n //},\n //{\n // label: \"+855\",\n // countryCode: \"KH\",\n // value: \"855\",\n //},\n //{\n // label: \"+86\",\n // countryCode: \"CN\",\n // value: \"86\",\n //},\n //{\n // label: \"+60\",\n // countryCode: \"MY\",\n // value: \"60\",\n //},\n //{\n // label: \"+62\",\n // countryCode: \"ID\",\n // value: \"62\",\n //},\n //{\n // label: \"+66\",\n // countryCode: \"TH\",\n // value: \"66\",\n //},\n //{\n // label: \"+84\",\n // countryCode: \"VI\",\n // value: \"84\",\n //},\n];\n\nexport const ThemeOption = [\n {\n value: \"default\",\n name: \"Default\",\n themeId: 1,\n },\n {\n value: \"light\",\n name: \"Light\",\n themeId: 2,\n },\n {\n value: \"dark\",\n name: \"Dark\",\n themeId: 3,\n },\n];\n\nexport class TransactionPriority {\n static _NO = 0;\n static _YES = 1;\n static _FIRST_PRIORITY = 2;\n}\n\nexport const DEFAULT_PAGE_SIZE = 10;\n\n// export const DEFAULT_REFERRAL_CODE = \"JkCDiepa\";\nexport const DEFAULT_REFERRAL_CODE = \"X7MiiKbI\";\n\n// 1 day\nexport const HIDE_APK_BANNER_DURATION = 1 * 24 * 60 * 60 * 1000;\n\nexport const _DAY_OPTION = [\n { value: 0, label: \"SUNDAY\" },\n { value: 1, label: \"MONDAY\" },\n { value: 2, label: \"TUESDAY\" },\n { value: 3, label: \"WEDNESDAY\"},\n { value: 4, label: \"THURSDAY\" },\n { value: 5, label: \"FRIDAY\" },\n { value: 6, label: \"SATURDAY\" },\n ];","module.exports = \"data:image/png;base64,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\"","import React, { useEffect, useState, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setBusy, setIdle, bindCompanyIcon } from \"../../redux/AppAction.js\";\nimport { map, debounce, find, filter, upperCase } from \"lodash\";\n\nconst Loading = (props) => {\n\tvar _dispatch = useDispatch();\n\tconst companyIcons = useSelector((state) => state.appState.companyIcons);\n\tconst [logo, setLogo] = useState();\n\n\tuseEffect(() => {\n\t\t//bindCompanyIcon(_dispatch);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n\tasync function getCompanyIcon() {\n\t\t_dispatch(setBusy());\n\t\tconst logo = find(companyIcons, { iconCategory: \"logo\" });\n\t\tif (logo) {\n\t\t\tsetLogo(logo.iconImage||logo.defaultImage);\n\t\t}\n\t\t_dispatch(setIdle());\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default Loading;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Alert, Modal, ModalBody, Spinner, ModalHeader } from \"reactstrap\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport VIcon from \"components/custom/Icon\";\nimport Icon from \"@mdi/react\";\nimport { mdiContentCopy } from \"@mdi/js\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl, SessionKey, _MAIN_WALLET_ID, WebUrl } from \"util/Constant\";\nimport { numberWithCurrencyFormat, stringIsNullOrEmpty, isObjectEmpty } from \"../../util/Util\";\nimport ApiEngine from \"util/ApiEngine\";\nimport LoadingPlaceholder from \"./LoadingPlaceholder\";\nimport Loading from \"./Loading\";\nimport InfoBox from \"../../components/custom/InfoBox\";\n\nimport {\n showMessage,\n showResponseMessage,\n setBusy,\n setIdle,\n setGameSearchText,\n setGameQuery,\n setPageSize,\n setY,\n bindMember,\n setGameLobbyModal,\n bindCompanyIcon\n} from \"redux/AppAction.js\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport { map, debounce, find, filter, upperCase } from \"lodash\";\nimport { heartBeat as heartBeatDispatch } from \"redux/AuthAction\";\n\nconst GameLobbyModal = (props) => {\n var { t } = useTranslation();\n const _history = useHistory();\n var _dispatch = useDispatch();\n const memberData = useSelector((state) => state.appState.member);\n const _USER_DATA = useSelector((s) => s.authState.userData);\n let usernameRef = useRef();\n let passwordRef = useRef();\n\n const showLobby = useSelector((state) => state.appState.gameLobbyModal);\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [clubFee, setClubFee] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [mpData, setMpData] = useState([]);\n const [isApp, setIsApp] = useState(false);\n const [appUrl, setAppUrl] = useState(\"\");\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [toLobbyBtn, setToLobbyBtn] = useState(false);\n const [showAppCred, setShowAppCred] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [balanceLoading, setBalanceLoading] = useState(false);\n const [masterProductId, setMasterProductId] = useState(0);\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n\n const [isDisabled, setDisabled] = useState(false);\n const [productCommRate, setProductCommRate] = useState([]);\n const [isProductCommRateShowed, setIsProductCommRateShow] = useState(true);\n const [guaranteeRebatePercentage, setGuaranteeRebatePercentage] = useState(0.00);\n const [productGameId, setProductGameId] = useState(0);\n const [appUsername, setAppUsername] = useState(\"\");\n const [appPassword, setAppPassword] = useState(\"\");\n const [isNewWindow, setIsNewWindow] = useState(false);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [mincoinTarget, setMincoinTarget] = useState(\"\");\n const [maxWithdraw, setMaxWithdraw] = useState(\"\");\n const [promoTitle, setPromoTitle] = useState(\"\");\n const [promoSlug, setPromoSlug] = useState(\"\");\n const [isLoading, setIsLoading] = useState(false);\n const [isBonusWallet, setIsBonusWallet] = useState(false);\n const [isWalletLoaded, setIsWalletLoaded] = useState(false);\n const [showRestoreAccBlanceConfirmation, setShowRestoreAccBlanceConfirmation] = useState(false);\n var { heartBeat } = useSelector((state) => state.authState);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState();\n const [defaultGameBanner, setDefaultGameBanner] = useState();\n const [seconds, setSeconds] = useState(-1);\n const isBusy = useSelector(\n (state) => state.appState.isBusy\n );\n const [isValidForPromotion, setIsValidForPromotion] = useState(false);\n const [countdown, setCountdown] = useState(5); // Start countdown at 5 seconds\n const [intervalId, setIntervalId] = useState(null);\n const [promoAlert, setPromoAlert] = useState(false);\n var totalPromoClaimable = useSelector((state) =>\n state.authState.heartBeat ? state.authState.userData.totalPromoClaimable : 1\n );\n const [isSupportIframe, setIsSupportIframe] = useState(false);\n const [iframeAlert, setIsIframeAlert] = useState(false);\n const [balanceRefresh, setBalanceRefresh] = useState(false);\n\n const membershipEnabled = useSelector(\n (state) => state.appState.membershipEnabled\n );\n\n useEffect(() => {\n //bindCompanyIcon(_dispatch);\n }, []);\n\n useEffect(() => {\n if (companyIcons.length > 0) {\n getCompanyIcon();\n }\n }, [companyIcons]);\n\n useEffect(() => {\n if (showLobby) {\n getRolloverProgress();\n CheckWallet(props.masterProductId);\n setProductGameId(props.productGameId)\n setSelectedGameIsSeamless(props.selectedGameIsSeamless)\n setMasterProductId(props.masterProductId)\n setSelectedGameName(props.selectedGameName)\n setPopupBannerImage(props.popupBannerImage)\n setIsSupportIframe(props.isSupportIframe)\n startGame(props.masterProductId)\n\n }\n\n }, [showLobby])\n\n useEffect(() => {\n checkIsProductCommRateShouldShow();\n }, [productCommRate]);\n\n const startGame = async (masterProductId) => {\n\n setIsLoading(true)\n if (\n props.selectedGameName == \"Pussy888\" ||\n props.selectedGameName == \"Mega888\" ||\n props.selectedGameName == \"Evo888\"\n ) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_APP_LOGIN_CRED + \"?productId=\" + masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setShowAppCred(true);\n setAppUsername(responseJson[ApiKey._API_DATA_KEY].username);\n setAppPassword(responseJson[ApiKey._API_DATA_KEY].password);\n }\n }\n // setProductGameId(productGameId);\n var isNewWindowJson = await ApiEngine(\n ApiUrl._API_GET_GAME_IS_NEW_WINDOW + \"?gameId=\" + props.productGameId\n );\n setIsNewWindow(isNewWindowJson[ApiKey._API_DATA_KEY]);\n // setShowPregamePopup(true);\n getProductComRate(props.selectedGameName, props.providerName);\n getRolloverProgress(props.productGameId);\n setIsLoading(false)\n\n }\n\n const RefreshBalanceF = async () => {\n // setMasterProductId(masterProductId);\n // _dispatch(setBusy());\n setBalanceLoading(true);\n\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n props.masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === props.masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n // _dispatch(setIdle());\n setBalanceLoading(false);\n\n setDisabled(true);\n setTimeout(() => setDisabled(false), 5000);\n }\n }\n\n const getProductComRate = async (selectedGameName, providerName) => {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n var response = responseJson[ApiKey._API_DATA_KEY];\n var products = response.find((x) => x.categoryName === props.category)?.products;\n if (products) {\n data = products.find((x) => x.name === selectedGameName || x.name === providerName);\n }\n\n if (data != null) {\n setProductCommRate(data);\n }\n }\n }\n const getRolloverProgress = async () => {\n if (props.masterProductId !== 0) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n props.masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n setMincoinTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"mincoinTarget\"]\n );\n setMaxWithdraw(\n responseJson[ApiKey._API_DATA_KEY].data[\"maxWithdraw\"]\n );\n setPromoTitle(\n responseJson[ApiKey._API_DATA_KEY].data[\"title\"]\n );\n setPromoSlug(\n responseJson[ApiKey._API_DATA_KEY].data[\"slug\"]\n );\n }\n }\n }\n }\n }\n\n const checkIsProductCommRateShouldShow = () => {\n if (isObjectEmpty(productCommRate)) {\n setIsProductCommRateShow(false);\n return;\n }\n\n var productCommRatePercentage = productCommRate.playerComm;\n setIsProductCommRateShow(productCommRatePercentage != 0);\n setGuaranteeRebatePercentage(productCommRatePercentage.toFixed(2));\n }\n\n const copyText = async (textType) => {\n if (textType === \"username\") {\n usernameRef.current.select();\n } else if (textType === \"password\") {\n passwordRef.current.select();\n }\n document.execCommand(\"copy\");\n //setShowCopyAlert(true);\n //setTimeout(() => setShowCopyAlert(false), [_ALERT_TIMEOUT]);\n }\n\n async function getRestore() {\n _dispatch(setBusy());\n setBalanceRefresh(true);\n let responseJson = await ApiEngine.get(ApiUrl._API_RESTORE_ALL_WALLET);\n\n // _dispatch(\n // showResponseMessage(\n // responseJson[ApiKey._API_SUCCESS_KEY],\n // responseJson[ApiKey._API_MESSAGE_KEY]\n // )\n // );\n setBalanceRefresh(false);\n _dispatch(setIdle());\n }\n\n async function CheckWallet(id) {\n setIsWalletLoaded(false);\n\n if (!stringIsNullOrEmpty(id)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_CHECK_WALLET +\n \"?id=\" +\n id\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setIsBonusWallet(responseJson[ApiKey._API_DATA_KEY]);\n setIsWalletLoaded(true);\n }\n }\n }\n\n const confirmRestore = () => {\n setShowRestoreAccBlanceConfirmation(true)\n\n }\n\n const getRestoreAccountBlance = async () => {\n setShowRestoreAccBlanceConfirmation(false)\n\n _dispatch(setBusy());\n\n // setConfirmLoading(true)\n let responseJson = await ApiEngine.get(ApiUrl._API_RESTORE_MAIN_WALLET);\n\n _dispatch(heartBeatDispatch());\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n CheckWallet(props.masterProductId);\n getRolloverProgress();\n }\n\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n // setShowRestoreAccBlanceConfirmation(false)\n // setConfirmLoading(false)\n\n _dispatch(setIdle());\n }\n\n\n async function startGame2(gameId) {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: props.title,\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n\n } else {\n setIsIframeAlert(false);\n window.open(\n ApiUrl._API_START +\n \"?gameId=\" +\n gameId + \"&device=\" + (window.innerWidth <= 768 ? \"m\" : \"d\")\n );\n }\n _dispatch(setGameLobbyModal(false))\n setToLobbyBtn(false);\n setShowAppCred(false);\n\n\n }\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n\n const defaultGameBanner = find(companyIcons, { iconCategory: \"default_game_banner\" });\n if (defaultGameBanner) {\n setDefaultGameBanner(defaultGameBanner.iconImage||defaultGameBanner.defaultImage);\n }\n _dispatch(setIdle());\n }\n\n useEffect(() => {\n if (seconds === 0) return;\n\n const interval = setInterval(() => {\n if (rolloverBalance !== \"\" || rolloverTarget !== \"\") {\n getRolloverProgress(props.productGameId)\n }\n setSeconds(prevSeconds => prevSeconds - 1);\n }, 15000);\n\n return () => clearInterval(interval);\n }, [seconds]);\n\n async function setTransactionValidForPromo() {\n _dispatch(setBusy());\n let responseJson = await ApiEngine.get(\n ApiUrl._API_UPDATE_TRANSACTION_VALID_FOR_PROMO\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setIsValidForPromotion(false);\n }\n _dispatch(setIdle());\n }\n\n function countDownAlert() {\n // Ensure there's no ongoing countdown\n if (intervalId) clearInterval(intervalId);\n\n // Set up the countdown interval\n const id = setInterval(() => {\n setCountdown(prev => {\n if (prev <= 1) {\n clearInterval(id);\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n setIntervalId(id);\n\n return () => clearInterval(id); // Clean up on component unmount\n }\n\n const closeBtn = (\n {\n _dispatch(setGameLobbyModal(false))\n setToLobbyBtn(false);\n setShowAppCred(false);\n }}\n >\n \n \n );\n\n function getMembershipRebateRate() {\n var rebatePercentage = 0;\n switch (props.category) {\n case \"Slots\":\n rebatePercentage = memberData.membership?.rebateSlot;\n break;\n case \"Sports\":\n rebatePercentage = memberData.membership?.rebateSport;\n break;\n case \"ESport\":\n rebatePercentage = memberData.membership?.rebateESport;\n break;\n case \"Casino\":\n rebatePercentage = memberData.membership?.rebateCasino;\n break;\n case \"Fish Hunt\":\n rebatePercentage = memberData.membership?.rebateFishHunt;\n break;\n case \"Keno\":\n rebatePercentage = memberData.membership?.rebateKeno;\n break;\n case \"Arcade\":\n rebatePercentage = memberData.membership?.rebateArcade;\n break;\n case \"Crash\":\n rebatePercentage = memberData.membership?.rebateCrash;\n break;\n case \"Exchange\":\n rebatePercentage = memberData.membership?.rebateExchange;\n break;\n default:\n rebatePercentage = 0.00;\n }\n\n return rebatePercentage.toFixed(2);\n }\n\n return (\n <>\n {promoAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setPromoAlert(false);\n setCountdown(5);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n setTransactionValidForPromo();\n setPromoAlert(false);\n setCountdown(5);\n if (isSupportIframe) {\n startGame2(\n props.productGameId\n );\n } else {\n setPromoAlert(false);\n setIsIframeAlert(true)\n }\n \n // console.log('confirm proceed')\n }}\n >\n {t(\"CONTINUE_ANYWAY\")} {countdown != 0 ? \"(\" + countdown + \")\" : \"\"}\n \n {/* (setPromoAlert(false), _dispatch(setGameLobbyModal(false)), _history.push(WebUrl._URL_PROMOTION))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"GO_TO_PROMOTIONS\")}\n */}\n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n < InfoBox style={{ maxWidth: \"100%\", margin: \"0 16px\", marginBottom: \"0px\" }} type=\"danger\" content={t(\"PLEASE_CLAIM_PROMO_BEFORE_ENTER_GAME_WARNING\")} />\n \n \n
\n )}\n\n {iframeAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setIsIframeAlert(false);\n setCountdown(5);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n setTransactionValidForPromo();\n setPromoAlert(false);\n setCountdown(5);\n startGame2(\n props.productGameId\n );\n setIsIframeAlert(false);\n }}\n >\n {t(\"CONTINUE\")} \n \n (setPromoAlert(false), _dispatch(setGameLobbyModal(false)), setIsIframeAlert(false))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"CLOSE\")}\n \n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n \n \n
\n )}\n {showRestoreAccBlanceConfirmation && (\n
\n\n {\n getRestoreAccountBlance();\n }}\n onCancel={() => {\n setShowRestoreAccBlanceConfirmation(false);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customIcon={alertIcon}\n\n customButtons={\n \n \n\n \n\n \n }\n >\n \n {t(\"RESTORE_WALLETS\")}\n \n \n
\n )}\n {\n _dispatch(setGameLobbyModal(false))\n // setShowPregamePopup(false);\n setToLobbyBtn(false);\n // setShowAppCred(false);\n }}\n fullscreen={\"true\"}\n // centered\n >\n \n {props.selectedGameName}\n \n \n
\n
\n
\n {isLoading ?\n () :\n (<>\n
\n
\n {!stringIsNullOrEmpty(props.popupBannerImage) ? (\n \n ) : (\n \n )}\n
\n
\n {!props.selectedGameIsSeamless && isWalletLoaded && (\n <>\n
\n {/*{isBonusWallet && */}\n {/*
*/}\n {/*
*/}\n {/*}*/}\n
\n {!isBonusWallet && <>\n { /* WALLET */}\n \n
\n
\n {t(\"MAIN_WALLET\")}\n
\n
\n {numberWithCurrencyFormat(\n walletsDetails.currentWalletBalance,\n 2,\n true\n )}\n
\n
\n
\n
\n {balanceRefresh ? (\n \n ) : (\n {\n getRestore();\n }}\n disabled={isDisabled}\n />\n )}\n \n
\n
\n
\n { /* BASED REBATE */}\n {isProductCommRateShowed &&\n
\n
\n
\n {t(\"GUARANTEED_REBATE\")}\n
\n
\n {guaranteeRebatePercentage}\n %\n
\n
\n
\n
\n \n
\n
\n
\n }\n { /* ADDITIONAL REBATE */}\n {membershipEnabled && \n
\n
\n
\n {t(\"MEMBERSHIP_REBATE\")}\n
\n
\n {getMembershipRebateRate()}\n %\n
\n
\n
\n
\n {memberData.membership?.membership > 1 ? (\n \n ) : (\n \n )}\n
\n
\n
\n }\n }\n\n {isBonusWallet && <>\n\n { /* BASED REBATE */}\n
\n
\n
\n {t(\"PROMOTION\")}\n
\n
\n {promoTitle}\n
\n
\n
\n
\n \n
\n
\n
\n\n { /* WALLET */}\n \n
\n
\n {t(\"COINS\")}\n
\n
\n {numberWithCurrencyFormat(\n walletsDetails.bonusWalletBalance,\n 2,\n true\n )}\n
\n
\n
\n
\n {balanceRefresh ? (\n \n ) : (\n {\n getRestore();\n }}\n disabled={isDisabled}\n />\n )}\n
\n
\n
\n {isBonusWallet && rolloverBalance !== \"\" && rolloverTarget !== \"\" && (\n \n
\n
\n {t(\"ROLLOVER\")}\n
\n
\n \n\n
\n
\n {numberWithCurrencyFormat(\n parseFloat(rolloverTarget - rolloverBalance),\n 2,\n true\n )}{\" \"}\n /{\" \"}\n {numberWithCurrencyFormat(\n parseFloat(rolloverTarget),\n 2,\n true\n )}\n
\n
\n
\n )}\n {isBonusWallet && rolloverBalance !== \"\" && rolloverTarget !== \"\" && (\n \n
\n
\n {t(\"TARGET\")}\n
\n
\n \n\n
\n
{numberWithCurrencyFormat(\n parseFloat(walletsDetails.bonusWalletBalance > mincoinTarget ? mincoinTarget : walletsDetails.bonusWalletBalance),\n 2,\n true\n )}{\" \"}\n /{\" \"}\n {numberWithCurrencyFormat(\n parseFloat(mincoinTarget),\n 2,\n true\n )}
\n
\n
\n )}\n }\n\n {/* {isBonusWallet && <> */}\n {/* { /* COINS */}\n {/* */}\n {/*
*/}\n {/* */}\n {/* {t(\"BONUS_WALLET\")}*/}\n {/*
*/}\n {/*
*/}\n {/* {numberWithCurrencyFormat(*/}\n {/* walletsDetails.bonusWalletBalance,*/}\n {/* 2,*/}\n {/* true*/}\n {/* )}*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/* {*/}\n {/* getRestore();*/}\n {/* }}*/}\n {/* disabled={isDisabled}*/}\n {/* />*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/* { /* More Info */}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/*
*/}\n {/* { /* BONUS ROLLOVER */}\n {/* {isBonusWallet && rolloverBalance !== \"\" && rolloverTarget !== \"\" && (*/}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* */}\n {/* {t(\"ROLLOVER\")}*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* {numberWithCurrencyFormat(*/}\n {/* parseFloat(rolloverTarget - rolloverBalance),*/}\n {/* 2,*/}\n {/* true*/}\n {/* )}{\" \"}*/}\n {/* /{\" \"}*/}\n {/* {numberWithCurrencyFormat(*/}\n {/* parseFloat(rolloverTarget),*/}\n {/* 2,*/}\n {/* true*/}\n {/* )}*/}\n {/* */}\n {/*
*/}\n {/* )}*/}\n {/* { /* MIN COINS IF ANY */}\n {/* {isBonusWallet && mincoinTarget !== \"\" && mincoinTarget > 0 && (*/}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* */}\n {/* {t(\"Target\")}*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* {numberWithCurrencyFormat(*/}\n {/* parseFloat(walletsDetails.bonusWalletBalance > mincoinTarget ? mincoinTarget:walletsDetails.bonusWalletBalance),*/}\n {/* 2,*/}\n {/* true*/}\n {/* )}{\" \"}*/}\n {/* /{\" \"}*/}\n {/* {numberWithCurrencyFormat(*/}\n {/* parseFloat(mincoinTarget),*/}\n {/* 2,*/}\n {/* true*/}\n {/* )}*/}\n {/* */}\n {/* */}\n {/* )}*/}\n\n {/* {isBonusWallet && mincoinTarget !== \"\" && mincoinTarget == 0 && (*/}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* */}\n {/* {t(\"Target\")}*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/*
*/}\n {/*
*/}\n {/* */}\n {/* {t(\"NoTarget\")}*/}\n {/* */}\n {/* */}\n {/* )}*/}\n\n {/* { /* Claim/End */}\n {/* {isBonusWallet && rolloverBalance !== \"\" && rolloverTarget !== \"\" && ( 0 && mincoinTarget <= walletsDetails.bonusWalletBalance || mincoinTarget == 0))) || walletsDetails.bonusWalletBalance < memberData.CoinToEndPromotion) ? \"\" : \"unavailable\")}*/}\n {/* onClick={() => !isBusy && ((rolloverBalance === 0 && ((mincoinTarget > 0 && mincoinTarget <= walletsDetails.bonusWalletBalance || mincoinTarget == 0))) || walletsDetails.bonusWalletBalance < memberData.CoinToEndPromotion) && getRestoreAccountBlance()}*/}\n {/* >*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/* {walletsDetails.bonusWalletBalance < memberData.CoinToEndPromotion ? t(\"END\"):numberWithCurrencyFormat(parseFloat(maxWithdraw === 0 ? walletsDetails.bonusWalletBalance : (maxWithdraw >= walletsDetails.bonusWalletBalance ? walletsDetails.bonusWalletBalance : maxWithdraw), 2, true))}*/}\n {/*
*/}\n {/*
*/}\n {/*
*/}\n {/* { walletsDetails.bonusWalletBalance < memberData.CoinToEndPromotion ? t(\"PROMO\"):t(\"CLAIM\")}*/}\n {/*
*/}\n {/*
*/}\n {/* )}*/}\n\n\n {/*}*/}\n \n\n \n\n {props.selectedGameName == \"Pussy888\" ||\n props.selectedGameName == \"Mega888\" ||\n props.selectedGameName == \"Evo888\" ? (\n
\n \n {t(\"PRODUCT_ROLLOVER_MESSAGE\")}\n

\n
\n ) : null}\n\n
\n {!isApp || (isApp && appDeepLink != \"\") ? (\n <>\n {!toLobbyBtn ? (\n {\n if (!window.ReactNativeWebView) {\n if (walletsDetails.isValidForPromotion && totalPromoClaimable > 0) \n {\n setPromoAlert(true);\n setCountdown(5);\n countDownAlert();\n } \n else \n {\n if (isSupportIframe) {\n startGame2(props.productGameId)\n } else {\n setIsIframeAlert(true)\n } \n }\n } \n else\n {\n if (isApp) \n {\n window.ReactNativeWebView.postMessage(\n JSON.stringify({\n action: \"deeplink\",\n url: appUrl,\n deeplink: appDeepLink\n .replace(\n \"[username]\",\n mpData[\"username\"]\n )\n .replace(\n \"[password]\",\n mpData[\"password\"]\n ),\n })\n );\n } \n else \n {\n if (isNewWindow === true) \n {\n window.ReactNativeWebView.postMessage(\"isNewWindow\");\n window.ReactNativeWebView.postMessage(\n JSON.stringify({\n url: `${process.env\n .REACT_APP_ENDPOINT_URL ||\n window.location.origin\n }${ApiUrl._API_START\n }?gameId=${props.productGameId}&device=${window.innerWidth <= 900 ? \"m\" : \"d\"}`,\n })\n );\n } \n else \n {\n window.ReactNativeWebView.postMessage(\"!isNewWindow\");\n window.ReactNativeWebView.postMessage(\n JSON.stringify({\n url: `${process.env\n .REACT_APP_ENDPOINT_URL ||\n window.location.origin\n }${WebUrl._URL_GAME_PAGE\n }?gameId=${props.productGameId}`,\n selectedTheme:\n _USER_DATA.selectedTheme,\n })\n );\n }\n }\n }\n }}\n className=\"t3-custom-light-btn\"\n >\n {t(\"START_GAME\")}\n \n ) : (\n <>\n )}\n \n ) : (\n {\n if (window.ReactNativeWebView) {\n window.ReactNativeWebView.postMessage(\n JSON.stringify({ url: appUrl })\n );\n } else {\n window.open(appUrl);\n }\n }}\n className=\"t3-custom-light-btn\"\n >\n {t(\"DOWNLOAD_APP\")}\n \n )}\n
\n {showAppCred && (\n
\n \n
\n {t(\"USERNAME\") + \" : \"}\n \n
\n\n copyText(\"username\")}\n style={{ cursor: \"pointer\" }}\n >\n \n
\n \n \n
\n {t(\"PASSWORD\") + \" : \"}\n \n
\n\n copyText(\"password\")}\n style={{ cursor: \"pointer\" }}\n >\n \n \n \n \n )}\n \n )}\n )\n }\n\n\n \n \n \n \n \n \n )\n\n}\n\nexport default GameLobbyModal;\n","import React from \"react\";\nimport IcoMoon from \"react-icomoon\";\nimport iconSet from \"./selection.json\";\n\nconst Icon = (props) => ;\n\nexport default Icon;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl } from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { showResponseMessage, bindMember, setMyProfileModal } from \"../../redux/AppAction.js\";\nimport { map, find } from \"lodash\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport { useForm } from \"react-hook-form\";\nimport { createFormBody, stringIsNullOrEmpty, createMultiPartFormBody } from \"../../util/Util.js\";\nimport moment from \"moment\";\nimport DatePicker from \"react-bootstrap-daterangepicker\";\nimport PinInput from \"react-pin-input\";\nimport Skeleton from \"react-loading-skeleton\";\n\nconst VerifyPhoneNumberModal = ({show, phoneNumber, phoneNumType, onClose, onCallback, ...props}) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n const memberData = useSelector((state) => state.appState.member);\n var { heartBeat } = useSelector((state) => state.authState);\n\n const [showVerifyOtpModal, setShowVerifyOtpModal] = useState(false);\n const [otpValue, setOtpValue] = useState(\"\");\n const [showVerifyOtpError, setShowVerifyOtpError] = useState(false);\n const [sentCode, setSentCode] = useState(false);\n\n const [countdownPeriod, setCountdownPeriod] = useState(0);\n const [TACcountdownPeriod, setTACCountdownPeriod] = useState(0);\n const [TACtimer, setTACtimer] = useState(setTimeout(() => { }, 60000));\n const [TACtimedOut, setTACtimedOut] = useState(true);\n const [attemp, setAttemp] = useState(1);\n const elePin = useRef(null);\n const [pinInputDisabled, setPinInputDisabled] = useState(false);\n const [tempPinNumber, setTempPinNumber] = useState();\n const [pinLoading, setPinLoading] = useState(false);\n\n // const [memberEwalletAccounts, setMemberEwalletAccounts] = useState([]);\n const [selectedPhoneNumber, setSelectedPhoneNumber] = useState(\"\");\n const [selectedPhoneNumType, setSelectedPhoneNumType]=useState(\"\");\n\n const _TAC_VALID_TIMER = 60000;\n const _SECONDS_IN_MS = 1000;\n\n let countdownPeriodTimeOutId, apiTimeOutId;\n\n useEffect(() => {\n if (show) {\n setSelectedPhoneNumber(phoneNumber);\n setSelectedPhoneNumType(phoneNumType);\n\n // Reset send OTP modal\n setSentCode(false);\n setTACtimedOut(true);\n setCountdownPeriod(0);\n }\n }, [show, phoneNumber, phoneNumType]);\n\n // OTP functions\n useEffect(() => {\n if (countdownPeriod > 0) {\n countdownPeriodTimeOutId=setTimeout(() => {\n let tempPeriod = countdownPeriod - 1;\n setCountdownPeriod(tempPeriod);\n }, _SECONDS_IN_MS);\n }\n }, [countdownPeriod]);\n\n useEffect(() => {\n if (TACcountdownPeriod > 0) {\n setTACtimer(\n setTimeout(() => {\n let tempPeriod = TACcountdownPeriod - 1;\n setTACCountdownPeriod(tempPeriod);\n }, _SECONDS_IN_MS)\n );\n }\n }, [TACcountdownPeriod]);\n\n const sendOtp = async () => {\n const OTP_VIA_SMS = 1;\n const channelType = OTP_VIA_SMS;\n\n let params = {\n phoneNumber: selectedPhoneNumber,\n languageCode: \"en\",\n countdown: countdownPeriod,\n TACExist: !TACtimedOut,\n type: OTP_VIA_SMS,\n usage: \"verifyPhoneNumber\",\n };\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_GENERATE_OTP,\n createFormBody(params)\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]\n ) {\n setSentCode(true);\n setTACtimedOut(false);\n setCountdownPeriod(0);\n setCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n setAttemp(attemp + 1);\n apiTimeOutId=setTimeout(() => {\n setTACtimedOut(true);\n }, _TAC_VALID_TIMER);\n }else{\n setShowVerifyOtpModal(false);\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n }\n }\n\n const stopTimeout = () => {\n clearTimeout(countdownPeriodTimeOutId);\n clearTimeout(apiTimeOutId);\n };\n\n const handleVerifyOtp = async (data, e) => {\n // Reset send OTP modal\n setSentCode(false);\n setTACtimedOut(true);\n setCountdownPeriod(0);\n\n // Open modal\n setShowVerifyOtpModal(true);\n }\n\n async function onKeyPress(key, index) {\n //setAllowPinClick(false);\n // 1st: have to check currentPinRef\n // 2nd: have to know which index is currently focused for altering the state.value\n // 3rd: have to check if at elePin.index(3), if yes then convert value to string and focus on eleConfirm.index(0)\n // 4th: have to check if at eleConfirm.index(3), if yes then convert value to string, and submitPin\n // let currentIndex = 0;\n let pinStr = tempPinNumber;\n let keyLength = key.split(\"\");\n if (key !== \"{bksp}\" && key !== \" \") {\n pinStr = key;\n setTempPinNumber(pinStr);\n if (keyLength.length !== 6) {\n } else {\n setTempPinNumber(\"\");\n setPinInputDisabled(true);\n setPinLoading(true);\n\n await verifyOTP(pinStr);\n\n setPinLoading(false);\n setPinInputDisabled(false);\n }\n } else {\n elePin.current.clear();\n }\n }\n\n const verifyOTP = async (pinstr) => {\n await ApiEngine.post(\n ApiUrl._API_VERIFY_MULTIPLE_PHONE_NUMBER,\n createMultiPartFormBody({\n verificationCode: pinstr,\n phoneNum: selectedPhoneNumber,\n phoneNumType: selectedPhoneNumType\n })\n ).then((response) => {\n if (response[ApiKey._API_SUCCESS_KEY]) {\n if(onCallback) {\n onCallback(response);\n }\n\n // setShowVerifyOtpModal(false);\n // getMemberEwalletAccounts();\n\n // if(phoneNumType==\"member\"){\n // memberData.isPhoneVerify=true;\n // }\n }\n\n _dispatch(\n showResponseMessage(\n response[ApiKey._API_SUCCESS_KEY],\n response[ApiKey._API_MESSAGE_KEY]\n )\n );\n\n // Clear pin inputs\n elePin.current.clear();\n });\n };\n\n // const getMemberEwalletAccounts = async () => {\n // let responseJson = await ApiEngine.get(ApiUrl._API_GET_MEMBER_PHONE_NUMBERS);\n // if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n // setMemberEwalletAccounts(responseJson[ApiKey._API_DATA_KEY]);\n // }\n // }\n\n return (\n <>\n {/* Modal for verifying phone number using otp */}\n {\n stopTimeout();\n if (onClose) {\n onClose();\n }\n }}\n >\n \n
\n {/* {\n // setManageProfileShow(false);\n _dispatch(setMyProfileModal(false))\n\n }}\n >\n \n
*/}\n
{t(\"VERIFY_PHONE_NUMBER\")}
\n \n
\n
{\n stopTimeout();\n if (onClose) {\n onClose();\n }\n }}\n >\n \n
\n
\n
\n \n
\n
\n
\n {sentCode ? (\n
\n

\n {t(\"VERIFY_YOUR_NUMBER\")}\n

\n
\n {t(\"ENTER_THE_CODE_WE_SENT_TO\")}{\" \"}\n {selectedPhoneNumber}.\n
\n {\n onKeyPress(value, index);\n }}\n />\n {sentCode && countdownPeriod != 0 && (\n

\n {t(\"TAC_SENT\")} {countdownPeriod}s\n

\n )}\n {/*
{t(\"OTP_SENT_TO\", { phoneNumber: memberData.phoneNumber })
\n setOtpValue(e.target.value)}\n style={{ height: \"48px\", width: \"300px !important\", textAlign: \"center\" }}\n />\n {showVerifyOtpError && (\n
\n {t(\"INVALID_OTP_ENTERED\")}\n
\n )} */}\n {/* */}\n
\n ) : (\n
\n
{t(\"OTP_WILL_BE_SEND_TO\", { phoneNumber: selectedPhoneNumber})}
\n \n
\n )}\n
\n
\n
\n
\n \n \n );\n};\n\nexport default VerifyPhoneNumberModal;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setBusy, setIdle, bindCompanyIcon } from \"../../redux/AppAction.js\";\nimport { map, debounce, find, filter, upperCase } from \"lodash\";\n\nconst LoadingPlaceholder = (props) => {\n\tvar _dispatch = useDispatch();\n\tconst companyIcons = useSelector((state) => state.appState.companyIcons);\n\tconst [logo, setLogo] = useState();\n\n\tuseEffect(() => {\n\t\t//bindCompanyIcon(_dispatch);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n\tasync function getCompanyIcon() {\n\t\t// _dispatch(setBusy());\n\t\tconst logo = find(companyIcons, { iconCategory: \"logo\" });\n\t\tif (logo) {\n\t\t\tsetLogo(logo.iconImage||logo.defaultImage);\n\t\t}\n\t\t// _dispatch(setIdle());\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default LoadingPlaceholder;\n","import Cookies from \"universal-cookie\";\nimport { SessionKey } from \"../util/Constant\";\n\nexport const _SAVE_LANGUAGE_ID = \"saveLanguageId\";\nexport const _COOKIE = new Cookies();\n\n/// \n/// Author : -\n/// \nexport const saveLanguageId = (id, retain) => {\n\tlocalStorage.setItem(SessionKey._LANGUAGE, id);\n\tlocalStorage.removeItem(\"setReportDate\");\n\t_COOKIE.set(SessionKey._LANGUAGE, id, { path: \"/\" });\n\n\treturn async (dispatch) => {\n\t\tdispatch({\n\t\t\ttype: _SAVE_LANGUAGE_ID,\n\t\t\tlanguageId: id,\n\t\t\tretain: retain,\n\t\t});\n\t};\n};\n","import React, { useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { WebUrl } from \"../../util/Constant\";\nimport { useHistory, Link } from \"react-router-dom\";\n\nconst ContentHeader = ({\n\tenableBackButton,\n\ttitle,\n\tsubTitle,\n\ttopRightTitle,\n\tbackButtonOnClick,\n\tescButtonOnClick,\n\tdisplayYellowAlert,\n\ttopRightUrl,\n\talertMsg,\n}) => {\n\tconst _history = useHistory();\n\n\tuseEffect(() => {\n\t\twindow.addEventListener(\"keydown\", (e) => {\n\t\t\tif (e.key === \"Escape\") {\n\t\t\t\t_history.replace(WebUrl._URL_MAIN);\n\t\t\t}\n\t\t});\n\t}, []);\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{enableBackButton && (\n\t\t\t\t\t\t\t\t\t backButtonOnClick()}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t topRightUrl()}\n\t\t\t\t\t\tstyle={{ fontWeight: \"bold\", cursor: \"pointer\", minWidth:30 }}\n\t\t\t\t\t>\n\t\t\t\t\t\t{topRightTitle}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t{displayYellowAlert && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{alertMsg}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t
\n\t\t\t\t

{title}

\n\t\t\t\t{subTitle &&

{subTitle}

}\n\t\t\t
\n\t\t\n\t);\n};\n\nContentHeader.propTypes = {\n\tenableBackButton: PropTypes.bool,\n\ttitle: PropTypes.string.isRequired,\n\tsubTitle: PropTypes.string,\n\ttopRightTitle: PropTypes.string,\n\tbackButtonOnClick: PropTypes.func,\n\tescButtonOnClick: PropTypes.func,\n\tdisplayYellowAlert: PropTypes.bool,\n\ttopRightUrl: PropTypes.func,\n\talertMsg: PropTypes.string,\n};\n\nContentHeader.defaultProps = {\n\tenableBackButton: false,\n\tbackButtonOnClick: () => window.history.go(-1),\n\tescButtonOnClick: () => {},\n\ttopRightUrl: () => {},\n\tdisplayYellowAlert: false,\n};\n\nexport default ContentHeader;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAP1BMVEUAAABuyyBvyyBuyiBwyiBwyiBvyyBuzCBvzCBvyiBvyyBvyyBvzCBwyyBwyyBwzCBwzyBwxyBrziFwxSBvyyDpTZ1gAAAAFHRSTlMAf+9vYDCvX9/fz7+PgHBQECAfMK0UqaYAAACgSURBVBjTXdBZDoMwEATRxuONfUnd/6wBYjCkPp80kt06Wyxm6GJSbXaU2psH6G2Tgs8w/mzEmUqTY9CexwXdBccsKWMP04Rb5GmreUb1mCLpYTQyojo+L9O6n4KkUE27nDiSihXMbGog3RboFDEdepk8UUavXW9TJmlx2KGXTee75/9vpnOk9yDlpDl2DNJqPQwq+UzJzar52EGOtujoC8iHCXoCswYwAAAAAElFTkSuQmCC\"","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl } from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { showResponseMessage, bindMember, setMyProfileModal, setCompleteInfoModal } from \"../../redux/AppAction.js\";\nimport { find, isEmpty } from \"lodash\";\nimport { useForm } from \"react-hook-form\";\nimport { createFormBody, stringIsNullOrEmpty } from \"../../util/Util.js\";\nimport { Spinner } from \"react-bootstrap\";\n\nconst AddPhoneModal = ({show, onClose, onCallback, ...props}) => {\n var _dispatch = useDispatch();\n var { t } = useTranslation();\n const PhoneNumberPrefix = useSelector((state) => state.appState.dialingCodes);\n const [selectedPhonePrefix, setSelectedPhonePrefix] = useState(\"\");\n const [formattedPhoneNumber, setFormattedPhoneNumber] = useState(false);\n \n const {\n register: ewalletRegister,\n handleSubmit: ewalletHandleSubmit,\n errors: ewalletErrors,\n setError: ewalletError,\n } = useForm();\n\n function sanitizePhoneNumber(e) {\n const re = /^[0-9\\b]+$/;\n let value = e.target.value;\n\n // Check if the value contains only digits\n if (re.test(value)) {\n // Limit the value to 12 characters\n if (value.length > 12) {\n value = value.slice(0, 12);\n }\n\n // setIsDigit(true);\n setFormattedPhoneNumber(value);\n } else {\n return false;\n // setIsDigit(false);\n }\n }\n\n // Add ewallet functions\n const addEwallet = async (data, e) => {\n let params = {\n accountHolderName: data.accountHolderName,\n phoneNumber: (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhoneNumber\n };\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_ADD_MEMBER_PHONE_NUMBER,\n createFormBody(params)\n );\n\n if (typeof responseJson[ApiKey._API_SUCCESS_KEY] !== \"undefined\") {\n bindMember(_dispatch);\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n\n if(responseJson[ApiKey._API_SUCCESS_KEY]) {\n if(onCallback) {\n onCallback(responseJson);\n }\n }\n }\n };\n\n\n const closeBtn = (\n\t\t _dispatch(setCompleteInfoModal(false))}\n\t\t>\n\t\t\t\n\t\t\n\t );\n return (\n
\n {\n if (onClose) {\n onClose();\n }\n }}\n >\n \n
\n
{t(\"ADD_PHONE_NUMBER\")}
\n
\n
\n
{\n if (onClose) {\n onClose();\n }\n }}>\n \n
\n
\n
\n \n
\n
\n
\n
\n \n {/*
\n {t(\"ADD_NEW_SECONDARY_PHONE_NUMBER\")}\n
*/}\n
\n
\n \n
\n
\n
\n sanitizePhoneNumber(e)}\n />\n
\n
\n
\n
\n
\n \n
\n
\n
\n {\n setSelectedPhonePrefix(e.target.value);\n }}\n >\n {PhoneNumberPrefix.map((prefix, index) => {\n return (\n \n {prefix.label}\n \n );\n })}\n \n
\n
\n {\n const key = e.key;\n const allowedKeys = [\n \"Backspace\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n \"Tab\",\n ];\n\n if (\n !/[0-9]/.test(key) &&\n !allowedKeys.includes(key)\n ) {\n e.preventDefault();\n }\n\n // Prevent '0' as the first character\n // const inputValue = e.target.value;\n // if (inputValue.length === 0 && key === \"0\") {\n // e.preventDefault();\n // }\n }}\n // onChange={(e) => sanitizePhoneNumber(e)}\n onChange={(e) => {\n let newValue = e.target.value;\n \n // Remove all leading zeros\n // newValue = newValue.replace(/^0+/, '');\n \n // Call your original `onChange` function\n sanitizePhoneNumber(e);\n \n // Update the input field with the modified value\n e.target.value = newValue;\n }}\n />\n\n {ewalletError == true ? (\n
\n
\n {t(\"NUMBER_NOT_AVAILABLE\")}\n
\n
\n ) : ewalletErrors.registerPhone ? (\n
\n
\n {t(ewalletErrors.registerPhone.message)}\n
\n
\n ) : (\n \"\"\n )}\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n \n
\n )\n};\n\nexport default AddPhoneModal;","import { AlertTypes } from \"../util/Constant.js\";\nimport i18n from \"../localization/i18n\";\nimport ApiEngine from \"../util/ApiEngine.js\";\nimport { ApiUrl, ApiKey } from \"../util/Constant\";\nimport { numberWithCurrencyFormat, stringIsNullOrEmpty } from \"../util/Util\";\nimport { groupBy, map } from \"lodash\";\n\nexport const _BIND_SETTING = \"bindSetting\";\nexport const _BIND_MEMBER = \"bindMember\";\nexport const _BIND_MEMBER_WALLET = \"bindMemberWallet\";\nexport const _BIND_MEMBER_WALLET_BALANCE = \"bindMemberWalletBalance\";\nexport const _BIND_GAMES = \"bindGames\";\nexport const _BIND_GAMES_RECOMMENDED = \"bindGamesRecommended\";\nexport const _BIND_GAMES_FEATURED = \"bindGamesFeatured\";\nexport const _BUSY = \"busy\";\nexport const _IDLE = \"idle\";\nexport const _API_CALLED = \"setApiCalled\";\nexport const _DOWNLINE_SEARCH = \"setDownlineSearchTextCalled\";\nexport const _DOWNLINE_QUERY = \"setDownlineQueryCalled\";\nexport const _REFERRAL_SEARCH = \"setReferralSearchTextCalled\";\nexport const _REFERRAL_QUERY = \"setReferralQueryCalled\";\nexport const _GAME_SEARCH = \"setGameSearchTextCalled\";\nexport const _GAME_QUERY = \"setGameQueryCalled\";\nexport const _SET_Y = \"setY\";\nexport const _SET_PAGESIZE = \"setPageSize\";\nexport const _SET_ACTIVE_TAB = \"setActiveTab\";\nexport const _SET_BOTTOM_TAB_INDEX = \"setBottomTabIndex\";\nexport const _SET_PAYMENT_LIST = \"setPaymentList\";\nexport const _SET_WALLET_INFO = \"setWalletInfo\";\nexport const _SET_OPEN_MENU = \"setOpenMenu\";\nexport const _SET_REPORT_OVERVIEW = \"setReportOverview\";\nexport const _SET_DOWNLINE = \"setDownline\";\nexport const _SET_BANNERS = \"setBanners\";\nexport const _SET_DEPOSIT_MODAL = \"setDepositModal\";\nexport const _SET_DEPOSIT_TAB = \"setDepositTab\";\nexport const _SET_LOGIN_MODAL = \"setLoginModal\";\nexport const _SET_GAME_LOBBY_MODAL = \"setGameLobbyModal\";\nexport const _SET_REGISTER_MODAL = \"setRegisterModal\";\nexport const _SET_PROVIDER = \"setProvider\";\nexport const _SET_LATEST_BETS = \"setLatestBets\";\nexport const _SET_RESET_PASSWORD = \"setResetPassword\";\nexport const _SET_DOWNLINE_MODAL = \"setDownlineModal\";\nexport const _SET_SHARE_REFERRAL_MODAL = \"setShareReferralModal\";\nexport const _BUSY_LOADING = \"setBusyLoading\";\nexport const _SET_PROFILE_MODAL = \"setMyProfileModal\";\nexport const _SET_SPIN_WHEEL_LIST_MODAL=\"setSpinWheelListModal\";\nexport const _SET_SPIN_WHEEL_REPORT_MODAL=\"setSpinWheelReportModal\";\nexport const _SET_SEO_CONTENT = \"setSeoContent\";\nexport const _SET_REPORT_OVERVIEW_MODAL = \"setReportOverviewModal\";\nexport const _SET_GAME_IFRAME_MODAL = \"setGameIframeModal\";\nexport const _SET_COMPLETE_INFO_MODAL = \"setCompleteInfoModal\";\nexport const _SET_DAILY_CHECKIN_MODAL = \"setDailyCheckinModal\";\nexport const _SET_DAILY_CHECKIN_EXIST = \"setDailyCheckInExist\";\nexport const _SET_REFERRAL_BONUS_MODAL = \"setReferralBonusModal\";\nexport const _SET_MUSIC_PLAYER_MODAL = \"setMusicPlayerModal\";\nexport const _IS_KEEPED_LOGIN = \"userKeepLogin\";\nexport const _BIND_HOT_GAMES = \"bindHotGames\";\n\nexport const _ALERT_TYPES = {\n SET_ALERT: \"SetAlert\",\n NONE: \"AlertNone\",\n};\n\nexport const setY = (y) => {\n return (dispatch) => {\n dispatch({\n type: _SET_Y,\n y,\n });\n };\n};\n\nexport const setBottomTabIndex = (bottomTabIndex) => {\n return (dispatch) => {\n dispatch({\n type: _SET_BOTTOM_TAB_INDEX,\n bottomTabIndex,\n });\n };\n};\n\nexport const setBanners = (banners) => {\n return (dispatch) => {\n dispatch({\n type: _SET_BANNERS,\n banners,\n });\n };\n};\n\nexport const bindMember = async (dispatch) => {\n let member = [];\n let balance = 0;\n\n let responseJson = await ApiEngine.get(ApiUrl._API_GET_MEMBER_DETAILS);\n\n if (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n dispatch(showResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY]));\n throw responseJson[ApiKey._API_MESSAGE_KEY];\n }\n\n member = responseJson[ApiKey._API_DATA_KEY];\n\n\n let walletDetails = {\n currentWalletBalance: 0,\n bonusWalletBalance: 0,\n isPromoCleared: false,\n isBonusWalletRestored: false,\n isValidForPromotion: false,\n isActivedPromoExist: false,\n promoMaxWithdrawal: 0,\n minCoinTarget: 0,\n }\n\n var totalwalletbalance =\n member[\"primaryCredit\"] +\n member[\"tempPrimaryCredit\"];\n var totalbonuswallet =\n member[\"bonusWallet\"] +\n member[\"tempBonusWallet\"];\n\n balance = isNaN(parseFloat(totalwalletbalance + totalbonuswallet), 3)\n ? \"0.00\"\n : numberWithCurrencyFormat(parseFloat(totalwalletbalance + totalbonuswallet), 2, true);\n\n walletDetails = {\n currentWalletBalance: totalwalletbalance,\n bonusWalletBalance: totalbonuswallet,\n isPromoCleared: member[\"isPromoCleared\"],\n isBonusWalletRestored: member[\"isBonusWalletRestored\"],\n isValidForPromotion: member[\"isAnyTransactionValidForPromo\"],\n isActivedPromoExist: member[\"isActivedPromoExist\"],\n promoMaxWithdrawal: member[\"promoMaxWithdrawal\"],\n minCoinTarget: member[\"minCoinTarget\"]\n }\n\n dispatch({\n type: _BIND_MEMBER,\n member: member,\n walletBalance: balance, //KT: Should this be totalwalletbalance or member[\"primaryCredit\"] or (totalwalletbalance + totalbonuswallet)?\n walletsDetails: walletDetails,\n });\n};\n\nexport const setProvider = async (dispatch) => {\n\n let responseJson = await ApiEngine.get(ApiUrl._API_GET_PROVIDER_GROUP_GAME);\n if (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n dispatch(showResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY]));\n throw responseJson[ApiKey._API_MESSAGE_KEY];\n }\n\n const availableList = responseJson[ApiKey._API_DATA_KEY];\n const providerList = groupBy( availableList , item => item.productName.split(' ')[0])\n\n let providerArray = []\n map(providerList, (item)=>{\n if(!stringIsNullOrEmpty(item[0].providerImage) \n || !stringIsNullOrEmpty(item[0].providerImageLight))\n {\n providerArray.push({\n providerName:item[0].productName,\n providerImage:item[0].providerImage,\n providerImageLight:item[0].providerImageLight\n })\n }\n })\n dispatch({\n type: _SET_PROVIDER,\n provider: providerArray,\n });\n};\n\nexport const bindGames = (games) => {\n return (dispatch) => {\n dispatch({\n type: _BIND_GAMES,\n games,\n });\n };\n};\n\nexport const bindGamesRecommended = (gamesRecommended) => {\n return (dispatch) => {\n dispatch({\n type: _BIND_GAMES_RECOMMENDED,\n slotGamesCount:gamesRecommended.slotGamesCount,\n slotGames:gamesRecommended.slotGames,\n casinoGamesCount:gamesRecommended.casinoGamesCount,\n casinoGames:gamesRecommended.casinoGames\n });\n };\n};\n\nexport const bindGamesFeatured = (gamesFeatured) => {\n return (dispatch) => {\n dispatch({\n type: _BIND_GAMES_FEATURED,\n slotGamesCount:gamesFeatured.slotGamesCount,\n slotGames:gamesFeatured.slotGames,\n \n });\n };\n};\n\nexport const bindHotGames = (hotGames) => {\n return (dispatch) => {\n dispatch({\n type: _BIND_HOT_GAMES,\n hotGames:hotGames,\n \n });\n };\n};\n\nexport const setPaymentList = (payments) => {\n return (dispatch) => {\n dispatch({\n type: _SET_PAYMENT_LIST,\n payments,\n });\n };\n};\n\nexport const setPageSize = (pagesize) => {\n return (dispatch) => {\n dispatch({\n type: _SET_PAGESIZE,\n data: pagesize,\n });\n };\n};\n\nexport const setActiveTab = (activeTab) => {\n return (dispatch) => {\n dispatch({\n type: _SET_ACTIVE_TAB,\n data: activeTab,\n });\n };\n};\n\nexport const setDownlineSearchText = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _DOWNLINE_SEARCH,\n data: e,\n });\n };\n};\n\nexport const setDownlineQuery = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _DOWNLINE_QUERY,\n data: e,\n });\n };\n};\n\nexport const setReferralSearchText = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _REFERRAL_SEARCH,\n data: e,\n });\n };\n};\n\nexport const setReferralQuery = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _REFERRAL_QUERY,\n data: e,\n });\n };\n};\n\nexport const setGameSearchText = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _GAME_SEARCH,\n data: e,\n });\n };\n};\n\nexport const setGameQuery = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _GAME_QUERY,\n data: e,\n });\n };\n};\n\nexport const setWalletInfo = (e) => {\n return async (dispatch) => {\n dispatch({\n type: _SET_WALLET_INFO,\n data: e,\n });\n };\n};\n\nexport const setOpenMenu = (openMenu) => {\n return async (dispatch) => {\n dispatch({\n type: _SET_OPEN_MENU,\n data: openMenu,\n });\n };\n};\n\nexport const setReportOverview = ({\n displayData,\n newDisplayData,\n totalTransferToWallet,\n totalTransferToWalletLM,\n totalTransferToMember,\n totalTransferToMemberLM,\n totalBetAmount,\n totalBetAmountLM,\n totalCommission,\n totalCommissionLM,\n totalVipCommission,\n totalBonus,\n}) => {\n return async (dispatch) => {\n dispatch({\n type: _SET_REPORT_OVERVIEW,\n displayData,\n newDisplayData,\n totalTransferToWallet,\n totalTransferToWalletLM,\n totalTransferToMember,\n totalTransferToMemberLM,\n totalBetAmount,\n totalBetAmountLM,\n totalCommission,\n totalCommissionLM,\n totalVipCommission,\n totalBonus,\n });\n };\n};\n\nexport const setDownline = ({ memberData, recentData }) => {\n return async (dispatch) => {\n dispatch({\n type: _SET_DOWNLINE,\n memberData,\n recentData,\n });\n };\n};\n/// \n/// Author :\n/// \nexport const setBusy = (iconEnabled, message) => {\n return async (dispatch) => {\n dispatch({\n type: _BUSY,\n message: message,\n iconEnabled: iconEnabled,\n });\n };\n};\n\n/// \n/// Author :\n/// this function is to only update user status to logout\n/// \nexport const setIdle = () => {\n return async (dispatch) => {\n dispatch({\n type: _IDLE,\n });\n };\n};\n\n\n/// \n/// Author :\n/// \nexport const setPerformApiCall = (status, url) => {\n return async (dispatch) => {\n dispatch({\n type: _API_CALLED,\n data: { success: status, url: url },\n });\n };\n};\n\n/// \n/// Author: -\n/// \nexport const showResponseMessage = (\n status,\n message,\n translateRequired = true\n) => {\n return (dispatch) => {\n var messageToShow = message;\n if (translateRequired) {\n messageToShow = i18n.t(message);\n }\n dispatch(\n showMessage({\n type: status ? AlertTypes._SUCCESS : AlertTypes._ERROR,\n content: messageToShow,\n })\n );\n };\n};\n\n/// \n/// Author: -\n/// \nexport const showResponseMessageWithoutT = (\n status,\n message,\n translateRequired = true\n) => {\n return (dispatch) => {\n var messageToShow = message;\n dispatch(\n showMessage({\n type: status ? AlertTypes._SUCCESS : AlertTypes._ERROR,\n content: messageToShow,\n })\n );\n };\n};\n\n/// \n/// Author: -\n/// \nexport const showMessage = (alertProps) => {\n return (dispatch) => {\n const customConfirm = alertProps.onConfirm;\n alertProps.onConfirm = async (...args) => {\n disposeMessage()(await dispatch);\n if (customConfirm) {\n customConfirm(...args);\n }\n };\n\n const customCancel = alertProps.onCancel;\n alertProps.onCancel = async (...args) => {\n disposeMessage()(await dispatch);\n if (customCancel) {\n customCancel(...args);\n }\n };\n\n alertProps.cancelBtnBsStyle = \"danger\";\n alertProps.title = alertProps.title ?? \"\";\n alertProps.allowEscape = false;\n alertProps.reverseButtons = true;\n\n dispatch({ type: _ALERT_TYPES.SET_ALERT, alert: alertProps });\n };\n};\n\n/// \n/// Author: -\n/// \nexport const disposeMessage = () => {\n return (dispatch) => {\n dispatch({ type: _ALERT_TYPES.NONE });\n };\n};\n\n/// \n/// Author: -\n/// \nexport const setDepositModal = (value, tab = 1) => {\n return (dispatch) => {\n dispatch({ type: _SET_DEPOSIT_MODAL, depositModal:value, depositTab:tab});\n };\n};\n\n/// \n/// Author: -\n/// \nexport const setDownlineModal = (value) => {\n // console.log(value)\n return (dispatch) => {\n dispatch({ type: _SET_DOWNLINE_MODAL, downlineModal:value});\n };\n};\n\nexport const setShareReferralModal = (value) => {\n // console.log(value)\n return (dispatch) => {\n dispatch({ type: _SET_SHARE_REFERRAL_MODAL, shareReferralModal:value});\n };\n};\n\n\n/// \n/// Author: -\n/// \nexport const setDepositTab = (tab) => {\n return (dispatch) => {\n dispatch({ type: _SET_DEPOSIT_TAB, depositTab:tab});\n };\n};\n\n\n/// \n/// Author: -\n/// \nexport const setLoginModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_LOGIN_MODAL, loginModal:value});\n };\n};\n\nexport const setGameLobbyModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_GAME_LOBBY_MODAL, gameLobbyModal:value});\n };\n};\n\nexport const setRegisterModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_REGISTER_MODAL, registerModal:value});\n };\n};\n\n\nexport const setLatestBets = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_LATEST_BETS, latestBets:value});\n };\n};\n\nexport const setResetPassword = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_RESET_PASSWORD, isResetPassword:value});\n };\n};\n\nexport const setAppSetting = (\n brandName, \n presetAmt, \n currency, \n medias, \n channels, \n htmlStyle, \n chatSphere, \n languages, \n membershipEnabled, \n currencySymbol, \n dialingCodes, \n settingApiComplete,\n promotionLayout,\n promotionShowCategoryTitle,\n showPromoThumbnailClaimButton,\n isReferralBonusActive,\n otpEnabled,\n eWalletOTPEnabled,\n captchaEnabled,\n priorityModalTypeId,\n dashboardComponent,\n isNormalDepositEnable,\n isNormalWithdrawalEnable,\n musicPlayerEnabled,\n musicTrackList,\n isEWalletActive,\n isBankTransferActive,\n isReferralCommissionManual,\n isRebateManual,\n availableProductCategories,\n isGameLobbyRequired,\n companyTimeZone,\n bannerAPK,\n //floatingChat,\n isLoginAttemptBlockingEnabled,\n isHotGameEnabled,\n affiliateLink,\n isCasinoLobbyEnabled,\n isEZUsernameEnabled\n) => {\n return (dispatch) => {\n dispatch({ type: _BIND_SETTING, \n brandName: brandName, \n depositPresetAmt: presetAmt, \n companyCurrency: currency, \n companyIcons: medias, \n channels: channels, \n htmlStyle: htmlStyle, \n chatSphere: chatSphere, \n languages: languages, \n membershipEnabled: membershipEnabled, \n currencySymbol: currencySymbol, \n dialingCodes: dialingCodes,\n settingApiComplete: settingApiComplete,\n promotionLayout: promotionLayout,\n promotionShowCategoryTitle: promotionShowCategoryTitle,\n showPromoThumbnailClaimButton: showPromoThumbnailClaimButton,\n isReferralBonusActive: isReferralBonusActive,\n otpEnabled: otpEnabled,\n eWalletOTPEnabled: eWalletOTPEnabled,\n captchaEnabled: captchaEnabled,\n priorityModalTypeId: priorityModalTypeId,\n dashboardComponent: dashboardComponent,\n isNormalDepositEnable: isNormalDepositEnable,\n isNormalWithdrawalEnable: isNormalWithdrawalEnable,\n musicPlayerEnabled: musicPlayerEnabled,\n musicTrackList: musicTrackList,\n isEWalletActive: isEWalletActive,\n isBankTransferActive: isBankTransferActive,\n isReferralCommissionManual: isReferralCommissionManual,\n isRebateManual: isRebateManual,\n availableProductCategories: availableProductCategories,\n isGameLobbyRequired: isGameLobbyRequired,\n companyTimeZone:companyTimeZone,\n bannerAPK:bannerAPK,\n //floatingChat:floatingChat,\n isLoginAttemptBlockingEnabled: isLoginAttemptBlockingEnabled,\n isHotGameEnabled: isHotGameEnabled,\n affiliateLink: affiliateLink,\n isCasinoLobbyEnabled: isCasinoLobbyEnabled,\n isEZUsernameEnabled: isEZUsernameEnabled\n });\n };\n};\n\nexport const setBusyLoading = (value) => {\n return async (dispatch) => {\n dispatch({\n type: _BUSY_LOADING,\n isBusyLoading:value\n });\n };\n};\n\nexport const setMyProfileModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_PROFILE_MODAL, profileModal:value});\n };\n};\n\nexport const setSpinWheelListModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_SPIN_WHEEL_LIST_MODAL, spinWheelListModal:value});\n };\n};\n\nexport const setSpinWheelReportModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_SPIN_WHEEL_REPORT_MODAL, spinWheelReportModal:value});\n };\n}\n\nexport const setSeoContent = ({\n pageName,\n seoTitle,\n seoDescription,\n}) => {\n return async (dispatch) => {\n dispatch({\n type: _SET_SEO_CONTENT,\n pageName,\n seoTitle,\n seoDescription,\n }); \n };\n};\n\nexport const setReportOverviewModal = (value) => {\n // console.log(value)\n return (dispatch) => {\n dispatch({ type: _SET_REPORT_OVERVIEW_MODAL, reportOverviewModal:value});\n };\n};\nexport const setGameIframeModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_GAME_IFRAME_MODAL, gameIframeModal: value });\n };\n};\n\nexport const setCompleteInfoModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_COMPLETE_INFO_MODAL, completeInfoModal:value});\n };\n};\n\nexport const setDailyCheckinModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_DAILY_CHECKIN_MODAL, dailyCheckinModal:value});\n };\n};\n\nexport const setDailyCheckInExist = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_DAILY_CHECKIN_EXIST, dailyCheckInExist:value});\n };\n};\n\n\nexport const setReferralBonusModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_REFERRAL_BONUS_MODAL, referralBonusModal: value });\n };\n};\n\nexport const setMusicPlayerModal = (value) => {\n return (dispatch) => {\n dispatch({ type: _SET_MUSIC_PLAYER_MODAL, musicPlayerModal: value });\n };\n};\n\nexport const userKeepLogin = (isKeepedLogin) => {\n return (dispatch) => {\n dispatch({\n type: _IS_KEEPED_LOGIN,\n data: isKeepedLogin,\n });\n };\n};","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAUBAMAAACQZWsAAAAAMFBMVEUAAABYWFhVVVVXV1dXV1dXV1dXV1daWlpWVlZYWFhVVVVWVlZXV1dWVlZgYGBXV1f30yFTAAAAD3RSTlMAIGC/35/vMM9AkH9wUBAKpSJNAAAAVUlEQVQI12MAgpL/QPBtAwMI+P8HgZ8gJuN/MPiEymY3WQhns/wPhLPlacI2yIe4B8T+CHHnARD7iwADGIDY/38YAwGEDQEg9jMI8wuIzQvxVTuQCQAl4o9sNwt9+wAAAABJRU5ErkJggg==\"","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { WebUrl } from \"../../util/Constant\";\nimport { useSelector, useDispatch } from \"react-redux\";\n\nconst NotFound = () => {\n const { t } = useTranslation();\n const openMenu = useSelector((state) => state.appState.openMenu);\n\n return (\n
\n
\n
\n
\n
\n \"404\n

{t(\"PAGE_NOT_FOUND\")}

\n

{t(\"PAGE_NOT_FOUND_DESCRIPTION\")}

\n {t(\"GO_TO_HOMEPAGE\")}\n
\n
\n
\n
\n );\n};\n\nexport default NotFound;","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport moment from \"moment\";\nimport {\n\tApiKey,\n\tApiUrl\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tshowMessage,\n\tshowResponseMessage,\n} from \"../../../redux/AppAction\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\n\nconst SpinWheelRecord = () => {\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst {t} = useTranslation();\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n\tconst [memberSpinList, setMemberSpinList] = useState([]);\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\")\n\t\t\t: moment().startOf(\"isoWeek\")\n\t);\n\tconst [endDate, setEndDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[1], \"DD-MM-YYYY\")\n\t\t\t: moment().endOf(\"day\")\n\t);\n\n\tconst [selectedFilterType, setSelectedFilterType] = useState(\n\t\t_location?.state?.date\n\t\t\t? _location.state.date\n\t\t\t: moment().startOf(\"isoWeek\").format(\"DD-MM-YYYY\") +\n\t\t\t\t\tt(\"TO\") +\n\t\t\t\t\tmoment().endOf(\"day\").format(\"DD-MM-YYYY\")\n\t);\n\n\tconst filterTypeOnSelect = (value) => {\n\t\tsetSelectedFilterType(value);\n\t};\n\n\tuseEffect(() => {\n\t\tgetMemberSpinData();\n\t}, [startDate, endDate]);\n\n\n\tasync function getMemberSpinData(page, keyword) {\n\t\tsetMemberSpinList([]);\n\t\tsetLoadingFlag(true);\n\t\ttry {\n\t\t\tpage = page ? page : 1;\n\t\t\tconst itemsPerPage = 10; \n\t\t\tvar start = (page - 1) * itemsPerPage;\n\n\t\t\tvar apiUrl = `${\n\t\t\t\tApiUrl._API_GET_MEMBER_SPINS_CLAIMS_RECORD +\n\t\t\t\t\"?StartDate=\" +\n\t\t\t\tmoment(startDate).format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&EndDate=\" +\n\t\t\t\tmoment(endDate).format(\"YYYY-MM-DD\")\n\t\t\t}`;\n\n\t\t\tapiUrl = apiUrl + \"&start=\" + start + \"&count=\"+itemsPerPage;\n\n\n\t\t\tvar responseJson = await ApiEngine.get(apiUrl);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetMemberSpinList(\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t\t\t\t);\n\n\t\t\t\tvar totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t\t\t\tupdatePageinationPageNum(Math.ceil(totalCount / itemsPerPage));\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetLoadingFlag(false);\n\t\treturn;\n\t}\n\n\tfunction updatePageinationPageNum(pageValue) {\n\t\tsetPaginationPageNum((prevValue) => pageValue);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

{t(\"SPIN_WHEEL_RECORD\")}

\n\t\t\t {\n\t\t\t\t\tsetStartDate(start);\n\t\t\t\t\tsetEndDate(end);\n\t\t\t\t}}\n\t\t\t\toptions={true}\n\t\t\t\tinitialType={selectedFilterType}\n\t\t\t\t// onClose={dateRangePickerOnClose}\n\t\t\t\ttypeOnSelect={filterTypeOnSelect}\n\t\t\t/>\n\n\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{memberSpinList &&\n\t\t\t\t\t\t\tmemberSpinList.length != 0 ? (\n\t\t\t\t\t\t\t\tmemberSpinList.map((data, index) => {\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"SPIN_WHEEL_ID\")}{t(\"CAMPAIGN\")}{t(\"CLAIMED_DATE\")}{t(\"REWARD\")}
\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"spinWheelId\"]}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t {data[\"campaignName\"]}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t { data[\"claimedDateTxt\"]===\"EXPIRED\"?\n t(\"EXPIRED\"):\n\t\t\t\t\t\t\t\t\t\t\t\t data[\"claimedDateTxt\"]\n\t\t\t\t\t\t\t\t\t\t\t }\n\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"reward\"]}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{paginationPageNum > 1 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default SpinWheelRecord ;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader, Spinner } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {setSpinWheelReportModal, setSpinWheelListModal } from \"redux/AppAction\";\nimport { find } from \"lodash\";\nimport { numberWithCurrencyFormat } from \"../../../util/Util\";\nimport SpinWheelRecord from \"./SpinWheelRecord\";\n\nconst SpinWheelClaimRecordPopUp = (props) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n const spinWheelReportModal = useSelector((state) => state.appState.spinWheelReportModal);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [loadingSearchData, setLoadingSearchData] = useState(false);\n\tconst [coinIcon, setCoinIcon] = useState();\n\n\n const recordType = [\n\t\t{\n\t\t\tlabel: \"SPIN_WHEEL_RECORD\",\n\t\t\tvalue: 1,\n\t\t}\n\t\t\n\t];\n\tconst [selectedOption, setSelectedOption] = useState(1);\n \n\nuseEffect(() => {\n if (companyIcons.length > 0) {\n getCompanyIcon();\n }\n}, [companyIcons]);\n\nasync function getCompanyIcon() {\n const coinIcon = find(companyIcons, { iconCategory: \"coin_icon\" });\n if (coinIcon) {\n setCoinIcon(coinIcon.iconImage||coinIcon.defaultImage);\n }\n}\n \n return (\n
\n\n {\n _dispatch(setSpinWheelReportModal(false));\n }}\n >\n \n
\n {\n _dispatch(setSpinWheelReportModal(false));\n _dispatch(setSpinWheelListModal(true)); \n }}\n >\n \n
\n
{t(\"CLAIM_RECORD\")}
\n
\n
\n _dispatch(setSpinWheelReportModal(false))}\n >\n \n
\n \n \n \n
\n
\n\n\n
\n
\n
\n \n
\n
{`${t(\"WALLET_BALANCE\")}:`}
\n \n {numberWithCurrencyFormat(\n walletsDetails.currentWalletBalance,\n 2,\n true\n )}\n
\n
\n
\n
\n
\n\n
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t(\"RECORD_TYPE\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{!loadingSearchData ? (\n\t\t\t\t\t\t\t\trecordType && recordType.length > 0 ? (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedOption(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{recordType.map((item, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n \n {selectedOption === 1 && spinWheelReportModal && }\n\n
\n \n
\n \n \n\n );\n};\n\nexport default SpinWheelClaimRecordPopUp;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader, Spinner } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\nimport { ApiKey, ApiUrl, AlertTypes } from \"util/Constant\";\nimport ApiEngine from \"util/ApiEngine\";\nimport { showResponseMessage, setSpinWheelListModal, setSpinWheelReportModal, showMessage, setBusy, setIdle } from \"redux/AppAction\";\nimport { find } from \"lodash\";\nimport { numberWithCurrencyFormat, stringIsNullOrEmpty } from \"../../../util/Util\";\nimport moment from \"moment\";\nimport SpinWheelClaimRecordPopUp from \"./SpinWheelClaimRecordPopUp\";\n\n\n\nconst SpinWheelListPopUpModal = (props) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n const openSpinWheelAsModal = false;\n const [paginationPageNum, setPaginationPageNum] = useState(10);\n const [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n var { heartBeat } = useSelector((state) => state.authState);\n const [utcTimeForTooltip, setUtcTimeForTooltip] = useState();\n\n\n const spinWheelListModal = useSelector((state) => state.appState.spinWheelListModal);\n const [isLoadingList, setIsLoadingList] = useState(false);\n const [spinWheelList, setSpinWheelList] = useState([]);\n const [shouldShowSpinWheel, setShouldShowSpinWheel] = useState(false);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [coinIcon, setCoinIcon] = useState();\n const [emptyPromoIcon, setEmptyPromoIcon] = useState();\n const [iframeSrc, setIframeSrc] = useState('');\n const [isLoadingBtn, setIsLoadingBtn] = useState(false);\n\n let firstLoad = false;\n const intervalRef = useRef(null); // Ref to track the interval\n const hasShownError = useRef(false); // Ref to track if the error message has been shown\n\n useEffect(() => {\n const utcTimezone = moment.utc().format(\"h:mm:ss A\");\n setUtcTimeForTooltip(utcTimezone);\n firstLoad = true;\n }, []);\n\n\n useEffect(() => {\n if (shouldShowSpinWheel && spinWheelListModal) {\n getMySpins();\n\n // Create interval for spin wheel heartbeat\n intervalRef.current = setInterval(() => {\n // Call the spin wheel heartbeat function\n getMySpins();\n }, 10000);\n\n return () => {\n // Cleanup the interval on component unmount\n clearInterval(intervalRef.current);\n };\n }\n }, [shouldShowSpinWheel, spinWheelListModal]);\n\n useEffect(() => {\n\n if (heartBeat) {\n //setIsLogin(true);\n init();\n }\n }, [heartBeat]);\n\n\n useEffect(() => {\n if (companyIcons.length > 0) {\n getCompanyIcon();\n }\n }, [companyIcons]);\n\n async function getCompanyIcon() {\n const coinIcon = find(companyIcons, { iconCategory: \"coin_icon\" });\n if (coinIcon) {\n setCoinIcon(coinIcon.iconImage || coinIcon.defaultImage);\n }\n\n const emptyPromoIcon = find(companyIcons, { iconCategory: \"empty_promotion\" });\n if (emptyPromoIcon) {\n setEmptyPromoIcon(emptyPromoIcon.iconImage || emptyPromoIcon.defaultImage);\n }\n\n }\n\n\n async function init() {\n // Get spinwheel settings\n let responseJson = await ApiEngine.get(\n ApiUrl._API_GET_SPINWHEEL_SETTINGS\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n var spinWheelEnabled = false;\n var showSpinWheelForGuest = false;\n\n if (responseJson[ApiKey._API_DATA_KEY].spinWheelEnabled == \"1\") {\n spinWheelEnabled = true;\n }\n\n if (responseJson[ApiKey._API_DATA_KEY].showSpinWheelForGuest == \"1\") {\n showSpinWheelForGuest = true;\n }\n\n if (heartBeat && spinWheelEnabled) {\n setShouldShowSpinWheel(true);\n } else if (!heartBeat && spinWheelEnabled && showSpinWheelForGuest) {\n setShouldShowSpinWheel(true);\n }\n }\n }\n\n async function getMySpins(page) {\n try {\n if (firstLoad) {\n _dispatch(setBusy());\n setIsLoadingList(true);\n }\n\n page = page ? page : 1;\n const itemsPerPage = 10;\n var start = (page - 1) * itemsPerPage;\n const end = start + itemsPerPage;\n\n var apiUrl = ApiUrl._API_GET_MEMBER_SPINS +\n \"?start=\" + start + \"&count=\" + itemsPerPage;\n\n let responseJson = await ApiEngine.get(apiUrl);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\n var paginatedData = responseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY];\n\n for (var i = 0; i < paginatedData.length; i++) {\n paginatedData[i][\"expiryDateTxt\"] = calculateTimeLeft(paginatedData[i][\"expiryDate\"]);\n };\n\n setSpinWheelList(paginatedData);\n var totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n updatePageinationPageNum(Math.ceil(totalCount / itemsPerPage));\n } else {\n _dispatch(\n showResponseMessage(false, \"ERROR_LOADING_MY_SPINS\")\n );\n\n // If an error occurs, handle the interval clearing logic\n if (!hasShownError.current) {\n hasShownError.current = true; // Mark the error as shown\n clearInterval(intervalRef.current); // Clear the interval\n _dispatch(showResponseMessage(false, \"ERROR_LOADING_MY_SPINS\"));\n }\n }\n\n if (firstLoad) {\n _dispatch(setIdle());\n setIsLoadingList(false);\n firstLoad = false;\n }\n } catch (err) {\n _dispatch(showResponseMessage(false, err));\n }\n return;\n }\n\n async function initSpin(memberSpinWheelId) {\n {\n openSpinWheelAsModal && (\n // Clear iframe\n setIframeSrc('')\n )\n }\n\n _dispatch(setBusy());\n setIsLoadingBtn(memberSpinWheelId);\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_IMREWARD_SPIN,\n {\n \"memberSpinWheelId\": memberSpinWheelId,\n }\n );\n\n _dispatch(setIdle());\n setIsLoadingBtn(false);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (!stringIsNullOrEmpty(responseJson[ApiKey._API_DATA_KEY].url)) {\n {\n openSpinWheelAsModal ? (\n setIframeSrc(responseJson[ApiKey._API_DATA_KEY].url)\n ) : (\n // Open new window\n window.open(responseJson[ApiKey._API_DATA_KEY].url, '_blank')\n )\n }\n }\n } else {\n _dispatch(\n showMessage({\n type: AlertTypes._ERROR,\n content: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n })\n );\n }\n }\n\n\n function updatePageinationPageNum(pageValue) {\n setPaginationPageNum(prevValue => pageValue);\n }\n\n const calculateTimeLeft = (expiryDate) => {\n\n if (!expiryDate) {\n return \"N/A\";\n }\n\n const expiryDateWithUtc = expiryDate.endsWith(\"Z\") ? expiryDate : expiryDate + \"Z\"; // John - We are already storing UTC time in the database, but we need to add the suffix to prevent it from changing to a \"15 hours remaining\" time.\n const now = new Date();\n const expiry = new Date(expiryDateWithUtc);\n // console.log(\"Now date -\", now.toISOString())\n // console.log(\"Old expiry -\", expiryDateAddedUtcLabel)\n // console.log(\"New expiry - \", expiry.toISOString())\n\n if (isNaN(expiry.getTime())) {\n return \"-\";\n }\n\n const diff = expiry - now;\n\n if (diff <= 0) {\n return (`0${t(\"DAY\")}`).toLowerCase();\n }\n\n const days = Math.floor(diff / (1000 * 60 * 60 * 24));\n const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\n const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));\n\n const parts = [];\n\n if (days > 0) {\n const dayLabel = days === 1 ? t(\"DAY\") : t(\"DAYS\");\n parts.push(`${days}${dayLabel}`);\n }\n\n if (hours > 0) {\n const hourLabel = hours === 1 ? t(\"HR\") : t(\"HRS\");\n parts.push(`${hours}${hourLabel}`);\n }\n\n if (minutes > 0) {\n const minuteLabel = minutes === 1 ? t(\"MIN_\") : t(\"MINS\");\n parts.push(`${minutes}${minuteLabel}`);\n }\n\n return parts.join(\" \").toLowerCase();\n };\n return (\n
\n\n {\n _dispatch(setSpinWheelListModal(false))\n }}\n >\n \n
\n
{t(\"SPIN_WHEEL_TOKENS\")}
\n
\n
\n _dispatch(setSpinWheelListModal(false))}\n >\n \n
\n
\n \n \n
\n
\n\n\n
\n
\n
\n \n
\n
{`${t(\"WALLET_BALANCE\")}:`}
\n \n {numberWithCurrencyFormat(\n walletsDetails.currentWalletBalance,\n 2,\n true\n )}\n
\n
\n
\n {\n _dispatch(setSpinWheelReportModal(true));\n _dispatch(setSpinWheelListModal(false));\n }}\n >\n {/* */}\n \n {t(\"RECORD\")}\n \n
\n
\n
\n \n {t(\"SPINS_WHEEL_REMINDER\")}\n
\n\n\n {isLoadingList &&\n
\n
\n \n
\n
\n }\n {!isLoadingList && spinWheelList && spinWheelList.length > 0 && (\n <>
\n {spinWheelList.map((item, index) => (\n
\n
\n {`${t(\"SPIN_WHEEL\")} #${item.id}`}\n
\n
\n {`${t(\"CAMPAIGN\")}: ${item.campaignName}`}\n
\n
\n \n \n {t(\"EXPIRES_IN\")}: {item.expiryDateTxt}\n \n
\n\n {item.completedAt == null ? (\n isLoadingBtn == item.id ?\n
\n \n
\n :\n {\n initSpin(item.id)\n // setIsModalOpen(!isModalOpen);\n }}\n >\n
{t(\"SPIN_NOW\")}
\n \n\n ) : (\n
\n {t(\"COMPLETED_ON\")} {item.completedAt}\n
\n )}\n\n
\n ))}\n
\n\n {paginationPageNum > 1 && (\n \n )}\n \n )}\n\n\n {!isLoadingList && spinWheelList && spinWheelList.length == 0 && (\n
\n
\n \n
{t(\"NO_SPIN_WHEEL_TOKENS\")}
\n
\n
\n )}\n\n
\n \n
\n \n \n \n\n );\n};\n\nexport default SpinWheelListPopUpModal;\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { find, map, set,filter } from \"lodash\";\nimport Countdown, { zeroPad } from \"react-countdown\";\nimport ApiEngine from \"util/ApiEngine\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tSessionKey,\n\tWebUrl,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tDEFAULT_PAGE_SIZE,\n} from \"util/Constant\";\nimport { setLoginModal } from \"redux/AppAction\";\nimport { useTranslation } from \"react-i18next\";\nimport { bindMember, setBusy, setIdle,setSpinWheelListModal } from \"redux/AppAction\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { themeIcons } from \"config/theme\";\nimport { stringIsNullOrEmpty } from '../../util/Util'\nimport SpinWheelListPopUpModal from \"components/template_1/spinWheel/SpinWheelListPopUpModal\";\nimport \"../../assets/css/spinwheel.css\"\n\nconst SpinWheel = ({ isPromoInfo, onClickPromoInfo, promoInfoId,chatRef }) => {\n\tconst { t, i18n } = useTranslation();\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst _userData = useSelector((state) => state.authState.userData);\n\tconst memberData = useSelector((state) => state.appState.member);\n const [iframeSrc, setIframeSrc] = useState('');\n var { heartBeat } = useSelector((state) => state.authState);\n \n const [spinWheelEnabled, setSpinWheelEnabled] = useState(false);\n const [showSpinWheelForGuest, setShowSpinWheelForGuest] = useState(false);\n const [shouldShowSpinWheel, setShouldShowSpinWheel] = useState(false);\n const [clickCloseSpinWheel, setClickCloseSpinWheel] = useState(false);\n const [showSpinWheelListPopup,setShowSpinWheelListPopup] = useState(false);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [spinWheelImg,setSpinWheelImg]=useState(require(\"../../assets/img/icon/spin-wheel-btn.svg\"));\n const [iconColor, setIconColor] = useState('#FFF');\n\n\tuseEffect(() => {\n\t\tinit();\n\n const parentElement = document.querySelector('.page-container');\n \n if(parentElement){\n const backgroundColor = window.getComputedStyle(parentElement).backgroundColor; \n const isDarkTheme = isDarkBackground(backgroundColor);\n setIconColor(isDarkTheme ? '#FFF' : '#383838');\n }\n\t}, []);\n\n useEffect(() => {\n init()\n }, [heartBeat]);\n\n useEffect(()=>{\n\n if(!shouldShowSpinWheel){\n if (chatRef.current) {\n chatRef.current.changeBtmPos();\n }\n }else{\n if (chatRef.current) {\n chatRef.current.changeTopPos();\n }\n }\n\n },[shouldShowSpinWheel])\n\n async function init() {\n // Get spinwheel settings\n\n let spinWheelIcon = find(companyIcons, { iconCategory: \"side_nav\",iconName: \"Spin Wheel Bonus\" });\n\n if(spinWheelIcon){\n setSpinWheelImg(spinWheelIcon.iconImage);\n }\n\n let responseJson = await ApiEngine.get(\n ApiUrl._API_GET_SPINWHEEL_SETTINGS\n );\n\n if(responseJson[ApiKey._API_SUCCESS_KEY]){\n var spinWheelEnabled = false;\n var showSpinWheelForGuestTemp = false;\n\n if(responseJson[ApiKey._API_DATA_KEY].spinWheelEnabled == \"1\"){\n spinWheelEnabled = true;\n }\n\n if(responseJson[ApiKey._API_DATA_KEY].showSpinWheelForGuest == \"1\"){\n showSpinWheelForGuestTemp = true;\n setShowSpinWheelForGuest(true);\n }\n\n if(heartBeat && spinWheelEnabled && !clickCloseSpinWheel) {\n setShouldShowSpinWheel(true);\n } else if(!heartBeat && spinWheelEnabled && showSpinWheelForGuestTemp && !clickCloseSpinWheel) {\n setShouldShowSpinWheel(true);\n } else {\n setShouldShowSpinWheel(false);\n } \n }\n }\n\n const [imgLoad, setImgLoad] = useState(false);\n\n const SpinWheelIcon = (props) => (\n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n \"spin-wheel-icon\" setImgLoad(true)}/>\n );\n\n const isDarkBackground = (bgColor) => {\n const rgb = bgColor.match(/\\d+/g);\n if (rgb) {\n const r = parseInt(rgb[0], 10);\n const g = parseInt(rgb[1], 10);\n const b = parseInt(rgb[2], 10);\n return (r * 0.299 + g * 0.587 + b * 0.114) < 128;\n }\n return false;\n };\n\n const CloseBtn = (props)=> (\n {\n e.stopPropagation();\n setShouldShowSpinWheel(false);\n setClickCloseSpinWheel(true); \n }}\n >\n \n \n );\n\n\treturn (\n <>\n {shouldShowSpinWheel && _location.pathname !== \"/\"+ WebUrl.getCurrentLocale() +\"/livechat\" && (\n
\n {\n if (!heartBeat && showSpinWheelForGuest) {\n _dispatch(setLoginModal(true));\n } else {\n //_history.push(WebUrl._URL_SPIN_WHEEL_LIST);\n _dispatch(setSpinWheelListModal(true));\n }\n }}>\n {/* {imgLoad && } */}\n {/* */}\n {imgLoad && (\n {\n e.stopPropagation();\n setShouldShowSpinWheel(false);\n setClickCloseSpinWheel(true);\n }}\n >\n \n
\n )}\n \"spin-wheel-icon\" setImgLoad(true)} />\n {imgLoad && (
{t(\"SPIN_NOW\")}
)}\n \n \n )}\n \n \n\t);\n};\n\nexport default SpinWheel;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState } from \"react\";\nimport ReactPlayer from \"react-player\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport { map } from \"lodash\";\nimport VIcon from \"components/custom/Icon\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl } from \"../../util/Constant\";\nimport { createFormBody } from \"../../util/Util.js\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { setMusicPlayerModal, showMessage } from \"../../redux/AppAction.js\";\nimport { Spinner } from \"react-bootstrap\";\n\nconst MusicPlayerModal = (props) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n var {\n systemMusicTracks,\n setSystemMusicPlayList,\n memberFavoriteTracks,\n setMemberFavoritePlaylist,\n setPlayList,\n playing,\n setPlaying,\n currentTrack,\n setCurrentTrack,\n currentTrackIndex,\n setCurrentTrackIndex,\n trackDuration,\n trackProgress,\n setTrackProgress,\n playedProgress,\n setPlayed,\n playerRef,\n setSeeking,\n isLoading,\n setIsLoading,\n loop,\n setLoop,\n isShuffle,\n setIsShuffle,\n setShuffleBtnClicked,\n currentPlayListType,\n setCurrentPlayListType\n } = props;\n\n const musicPlayerModal = useSelector((state) => state.appState.musicPlayerModal);\n var { heartBeat } = useSelector((state) => state.authState);\n\n const [durations, setDurations] = useState([]);\n const [pendingItems, setPendingItems] = useState(systemMusicTracks);\n const [activeMusicListTab, setActiveMusicListTab] = useState(1);\n const iconTheme = \"music-player-contorl-btn-icon\";\n\n const musicListTab = [\n\t\t{\n text: t(\"SYSTEM_MUSIC\"),\n musicListTabId: 1,\n\t\t},\n\t\t{\n\t\t\ttext: t(\"MY_MUSIC\"),\n musicListTabId: 2,\n\t\t},\n\t];\n\n const closeBtn = (\n\t {\n _dispatch(setMusicPlayerModal(false));\n }}\n\t >\n\t\t \n\t \n );\n\n useEffect(() => {\n\n }, [musicPlayerModal]);\n\n //handle next music\n const handleNext = () => {\n var targetPlayList = currentPlayListType == \"system\" ? systemMusicTracks : memberFavoriteTracks;\n var nextIndex = (currentTrackIndex + 1) % targetPlayList.length;\n var isSameTrack = targetPlayList[nextIndex]?.id == currentTrack.id;\n\n if (!isSameTrack) {\n handleSeekAndProgress();\n setCurrentTrack(targetPlayList[nextIndex]);\n setCurrentTrackIndex(nextIndex); \n }\n };\n\n //handle previous music\n const handlePrevious = () => {\n var targetPlayList = currentPlayListType == \"system\" ? systemMusicTracks : memberFavoriteTracks;\n var prevIndex = (currentTrackIndex - 1 + targetPlayList.length) % targetPlayList.length;\n var isSameTrack = targetPlayList[prevIndex]?.id == currentTrack.id;\n\n if (!isSameTrack) {\n handleSeekAndProgress();\n setCurrentTrack(targetPlayList[prevIndex]);\n setCurrentTrackIndex(prevIndex);\n }\n };\n\n const handleSeekAndProgress = () => {\n setIsLoading(true);\n setTrackProgress(0);\n setPlayed(0);\n }\n\n const handlePlayPause = () => {\n setPlaying(!playing);\n };\n\n const formatTime = (seconds) => {\n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60); // Adjust minutes calculation\n const secs = Math.floor(seconds % 60);\n\n if (hours > 0) {\n // If hours are present, return hours, minutes, and seconds\n return `${hours}:${minutes < 10 ? \"0\" : \"\"}${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n } else {\n // If no hours, return only minutes and seconds\n return `${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n }\n };\n\n const handleSeekMouseDown = (e) => {\n setSeeking(true);\n };\n\n const handleSeekChange = (e) => {\n const newProgress = parseFloat(e.target.value);\n setTrackProgress(newProgress); // Update time in seconds\n setPlayed(newProgress / trackDuration); // Update fraction for CSS\n };\n\n const handleSeekMouseUp = (e) => {\n setSeeking(false);\n playerRef.current.seekTo(parseFloat(e.target.value), 'seconds');\n };\n\n const handleTouchStart = (e) => {\n setSeeking(true);\n };\n\n const handleTouchMove = (e) => {\n const touch = e.touches[0];\n const rect = e.target.getBoundingClientRect();\n const touchPosition = ((touch.clientX - rect.left) / rect.width) * trackDuration;\n\n // Clamp the value within trackDuration\n const clampedProgress = Math.min(Math.max(touchPosition, 0), trackDuration);\n setPlayed(clampedProgress / trackDuration); // Update fraction for CSS\n setTrackProgress(clampedProgress); // Update current progress in seconds\n };\n\n const handleTouchEnd = () => {\n setSeeking(false);\n playerRef.current.seekTo(trackProgress, 'seconds');\n };\n\n\n const handleToggleLoop = () => {\n setLoop(!loop);\n sessionStorage.setItem('loop', !loop);\n };\n\n const handleTrackDuration = (id, duration) => {\n setDurations((prev) => [\n ...prev,\n { id: id, duration }, // Add duration with ID\n ]);\n // Remove the video from pendingUrls after fetching the duration\n setPendingItems((prev) =>\n prev.filter((pendingItem) => pendingItem.id !== id)\n );\n };\n\n const handleListPlayPause = (selectedTrack, index) => {\n if (currentTrack.id !== selectedTrack.id) {\n handleSeekAndProgress();\n setCurrentPlayListType(activeMusicListTab == 1 ? \"system\" : \"member\");\n setPlayList(activeMusicListTab == 1 ? systemMusicTracks : memberFavoriteTracks);\n setCurrentTrack(selectedTrack);\n setCurrentTrackIndex(index);\n\n if (!playing) {\n setPlaying(true);\n }\n }\n else {\n setPlaying(!playing);\n }\n\n var activeMusicListTabType = activeMusicListTab == 1 ? \"system\" : \"member\";\n if (setCurrentPlayListType != activeMusicListTabType) {\n setCurrentPlayListType(activeMusicListTabType);\n setPlayList(activeMusicListTab == 1 ? systemMusicTracks : memberFavoriteTracks);\n setCurrentTrackIndex(index);\n }\n }\n\n const setTrackAsFavourite = (item) => {\n var index = systemMusicTracks.findIndex((x) => {\n return x.id == item.id;\n });\n\n var updatedPlayList = [...systemMusicTracks];\n updatedPlayList[index].favorite = !updatedPlayList[index].favorite;\n setSystemMusicPlayList(updatedPlayList);\n\n var updatedFavoriteList = updatedPlayList.filter((track) => track.favorite);\n updateMemberFavoriteTrackIds(updatedFavoriteList);\n }\n\n async function updateMemberFavoriteTrackIds(updatedFavoriteList) {\n setMemberFavoritePlaylist(updatedFavoriteList);\n const ids = updatedFavoriteList.map(track => track.id).join(',');\n\n let params = {\n memberFavoriteTrackIds: ids\n };\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_UPDATE_MEMBER_FAVORITE_TRACK_IDS,\n createFormBody(params)\n );\n\n if (typeof responseJson[ApiKey._API_SUCCESS_KEY] !== \"undefined\") {\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setMemberFavoritePlaylist(updatedFavoriteList);\n\n if (currentPlayListType == \"member\") {\n setCurrentTrackIndex(updatedFavoriteList.findIndex((x) => x.id == currentTrack.id));\n }\n }\n }\n }\n\n return (\n <>\n {\n _dispatch(setMusicPlayerModal(!musicPlayerModal))\n }}\n >\n \t\n {t(\"MUSIC_PLAYER\")}\n \n \n
\n
\n
\n
\n {pendingItems.map((item) => (\n handleTrackDuration(item.id, duration)}\n style={{ display: 'none' }}\n />\n ))}\n
\n \n {currentTrack?.title}\n
\n
\n
\n \n
\n
\n
\n {formatTime(trackProgress)}\n
\n
\n {isLoading ? (\n \n ) : (\n formatTime(trackDuration)\n )}\n
\n
\n
\n
\n {\n setShuffleBtnClicked(true);\n setIsShuffle((prev) => !prev)\n }}\n >\n \n
\n \n \n
\n \n {playing ?\n :\n \n }\n
\n \n \n
\n \n \n
\n \n \n \n
\n
\n {heartBeat && musicListTab &&\n musicListTab.length &&\n map(musicListTab, (item, index) => {\n if (!heartBeat && item.musicListTabId === 2) {\n return null;\n }\n\n return (\n {\n setActiveMusicListTab(item.musicListTabId);\n }}\n >\n \n {t(item.text)}\n
\n \n );\n })}\n
\n
\n
\n {activeMusicListTab === 1 &&\n systemMusicTracks.length &&\n map(systemMusicTracks, (item, index) => {\n const trackDuration = durations.find((d) => d.id === item.id);\n return (\n
\n
\n
\n
\n
\n {currentTrack && currentTrack.id == item.id &&\n \n }\n {item.title}\n
\n
\n \n {currentTrack && currentTrack.id == item.id ? formatTime(trackProgress) : \"0:00\"}\n \n  / \n \n {trackDuration ? formatTime(trackDuration.duration) : t(\"LOADING_DURATION\")}\n \n
\n
\n
\n handleListPlayPause(item, index)}\n >\n {playing && (currentTrack && currentTrack.id == item.id) ?\n :\n \n }\n
\n {heartBeat &&\n setTrackAsFavourite(item)}\n >\n {item.favorite ?\n :\n \n }\n
\n }\n
\n
\n
\n
\n
\n );\n })\n }\n\n {activeMusicListTab === 2 &&\n (memberFavoriteTracks.length ? (\n map(memberFavoriteTracks, (item, index) => {\n const trackDuration = durations.find((d) => d.id === item.id);\n return (\n <>\n
\n
\n
\n
\n {currentTrack && currentTrack.id === item.id && (\n \n )}\n {item.title}\n
\n
\n \n {currentTrack && currentTrack.id === item.id\n ? formatTime(trackProgress)\n : \"0:00\"}\n \n  / \n \n {trackDuration ? formatTime(trackDuration.duration) : t(\"LOADING_DURATION\")}\n \n
\n
\n
\n handleListPlayPause(item, index)}\n >\n {playing &&\n currentTrack &&\n currentTrack.id === item.id ? (\n \n ) : (\n \n )}\n
\n setTrackAsFavourite(item)}\n >\n {item.favorite ? (\n \n ) : (\n \n )}\n
\n
\n \n \n
\n \n );\n })\n ) : (\n
\n {t(\"NO_FAVORITE_MUSIC\")}\n
\n ))\n }\n \n \n \n \n \n
\n
\n \n )\n};\n\nexport default MusicPlayerModal;","import React, { useState, useRef, useEffect } from \"react\";\nimport ReactPlayer from \"react-player\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { Spinner } from \"react-bootstrap\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setMusicPlayerModal } from \"../../redux/AppAction.js\";\nimport MusicPlayerModal from \"../template_1/MusicPlayerModal\";\n\nconst MusicPlayer = (props) => {\n var {\n musicTrackList,\n setTrackTitle,\n setIsTrackLoading,\n setTrackProgress,\n setIsTrackPlaying,\n clickShuffleBtn,\n setClickShuffleBtn,\n shuffleEnabled,\n setShuffleEnabled,\n isPlayNextTrack,\n setIsPlayNextTrack,\n isPlayPrevTrack,\n setIsPlayPrevTrack,\n playButtonClicked,\n setPlayBtnClicked\n } = props;\n var _dispatch = useDispatch();\n var { heartBeat } = useSelector((state) => state.authState);\n var memberData = useSelector((state) => state.appState.member);\n\n const [systemMusicPlayList, setSystemMusicPlayList] = useState(musicTrackList);\n const [memberFavoritePlaylist, setMemberFavoritePlaylist] = useState([]);\n const [currentTrack, setCurrentTrack] = useState(null);\n const [currentTrackIndex, setCurrentTrackIndex] = useState(() => {\n const savedState = sessionStorage.getItem('currentTrackIndex');\n return savedState ? parseInt(savedState, 10) : 0; // Default to 0 if no value exists\n });\n const [playing, setPlaying] = useState(() => {\n const savedState = sessionStorage.getItem('playing');\n return savedState === 'true';\n });\n const [isShuffle, setIsShuffle] = useState(() => {\n const savedState = sessionStorage.getItem('isShuffle');\n return savedState === 'true';\n });\n\n const [loop, setLoop] = useState(() => {\n const savedState = sessionStorage.getItem('loop');\n return savedState === 'true';\n });\n\n const [muted, setMuted] = useState(false);\n const [seeking, setSeeking] = useState(false);\n const [duration, setDuration] = useState(false);\n const [progress, setProgress] = useState(0);\n const [played, setPlayed] = useState(0);\n const [isLoading, setIsLoading] = useState(false);\n const [currentPlayListType, setCurrentPlayListType] = useState(null);\n const [initFlag, setInitFlag] = useState(true);\n\n const iconTheme = \"music-player-contorl-btn-icon\";\n const [playList, setPlayList] = useState(musicTrackList);\n const [shuffleBtnClicked, setShuffleBtnClicked] = useState(false);\n const [isMobile, setIsMobile] = useState(true);\n const [mobileOS, setMobileOS] = useState(\"\");\n const [turnOnPlay, setTurnOnPlay] = useState(false);\n\n var playerRef = useRef(null);\n\n useEffect(() => {\n setPlayList(musicTrackList);\n setCurrentTrack(musicTrackList[currentTrackIndex]);\n setCurrentPlayListType(\"system\");\n setIsMobile(window.innerWidth < 900);\n detectMobileOS();\n }, []);\n\n useEffect(() => {\n if (heartBeat && initFlag) {\n var memberFavoriteTrackList = memberData.memberFavoriteTrackList;\n if (memberFavoriteTrackList && memberFavoriteTrackList.length) {\n setMemberFavoritePlaylist(memberFavoriteTrackList);\n setPlayList(memberFavoriteTrackList);\n setCurrentTrack(memberFavoriteTrackList[0]);\n setCurrentPlayListType(\"member\");\n\n systemMusicPlayList.forEach(track => {\n // Check if the track's id exists in `memberTracks`\n const memberTrack = memberFavoriteTrackList.find(memberTrack => memberTrack.id === track.id);\n if (memberTrack) {\n track.favorite = true; // Update favorite status if track exists in `memberTracks`\n }\n });\n\n setInitFlag(false);\n }\n }\n else if (!memberData.memberFavoriteTrackList) {\n if (currentPlayListType == \"member\") {\n setMemberFavoritePlaylist([]);\n setPlayList(systemMusicPlayList);\n setCurrentTrack(systemMusicPlayList[0]);\n setCurrentPlayListType(\"system\");\n }\n setInitFlag(true);\n }\n\n }, [heartBeat, memberData]);\n\n useEffect(() => {\n if (shuffleBtnClicked) {\n if (isShuffle) {\n // Generate a shuffled playlist when shuffle mode is enabled\n var shuffledSystemPlaylist = shufflePlaylist(systemMusicPlayList);\n setSystemMusicPlayList(shuffledSystemPlaylist);\n\n var shuffledMemberFavoritePlaylist = shufflePlaylist(memberFavoritePlaylist)\n setMemberFavoritePlaylist(shuffledMemberFavoritePlaylist);\n\n setPlayList(currentPlayListType == \"system\" ? shuffledSystemPlaylist : shuffledMemberFavoritePlaylist);\n if (currentTrack) {\n setNewCurrentTrackIndex(shuffledSystemPlaylist, shuffledMemberFavoritePlaylist);\n }\n\n } else {\n setSystemMusicPlayList([...musicTrackList]);\n var memberFavoriteList = memberData.memberFavoriteTrackList ? memberData.memberFavoriteTrackList : [];\n setMemberFavoritePlaylist(memberFavoriteList);\n setPlayList(currentPlayListType == \"system\" ? musicTrackList : memberFavoriteList);\n\n if (currentTrack) {\n setNewCurrentTrackIndex(musicTrackList, memberFavoriteList);\n }\n }\n\n sessionStorage.setItem('isShuffle', isShuffle);\n setShuffleBtnClicked(false);\n setShuffleEnabled(isShuffle);\n }\n\n }, [shuffleBtnClicked]);\n\n useEffect(() => {\n sessionStorage.setItem('currentTrackIndex', currentTrackIndex);\n }, [currentTrackIndex]);\n\n useEffect(() => {\n if (currentTrack) {\n setTrackTitle(currentTrack.title);\n }\n }, [currentTrack]);\n\n useEffect(() => {\n if (playButtonClicked) {\n handlePlayPause();\n setPlayBtnClicked(false);\n }\n }, [playButtonClicked]);\n\n useEffect(() => {\n if (clickShuffleBtn) {\n if (shuffleEnabled) {\n // Generate a shuffled playlist when shuffle mode is enabled\n var shuffledSystemPlaylist = shufflePlaylist(systemMusicPlayList);\n setSystemMusicPlayList(shuffledSystemPlaylist);\n\n var shuffledMemberFavoritePlaylist = shufflePlaylist(memberFavoritePlaylist)\n setMemberFavoritePlaylist(shuffledMemberFavoritePlaylist);\n\n setPlayList(currentPlayListType == \"system\" ? shuffledSystemPlaylist : shuffledMemberFavoritePlaylist);\n\n if (currentTrack) {\n setNewCurrentTrackIndex(shuffledSystemPlaylist, shuffledMemberFavoritePlaylist);\n }\n\n } else {\n setSystemMusicPlayList([...musicTrackList]);\n var memberFavoriteList = memberData.memberFavoriteTrackList ? memberData.memberFavoriteTrackList : [];\n setMemberFavoritePlaylist(memberFavoriteList);\n setPlayList(currentPlayListType == \"system\" ? musicTrackList : memberFavoriteList);\n\n if (currentTrack) {\n setNewCurrentTrackIndex(musicTrackList, memberFavoriteList);\n }\n }\n\n sessionStorage.setItem('isShuffle', shuffleEnabled);\n setClickShuffleBtn(false);\n setIsShuffle(shuffleEnabled);\n }\n }, [clickShuffleBtn]);\n\n useEffect(() => {\n if (isPlayNextTrack) {\n handleNext();\n setIsPlayNextTrack(false);\n }\n }, [isPlayNextTrack]);\n\n useEffect(() => {\n if (isPlayPrevTrack) {\n handlePrevious();\n setIsPlayPrevTrack(false);\n }\n }, [isPlayPrevTrack]);\n\n const handleTrackLoading = () => {\n setIsLoading(true);\n setIsTrackLoading(true);\n setProgress(0);\n setTrackProgress(0);\n }\n\n const setNewCurrentTrackIndex = (systemPlayList, memberPlayList) => {\n var newIndex = currentPlayListType == \"system\"\n ? systemPlayList.findIndex((x) => x.id == currentTrack.id)\n : memberPlayList.findIndex((x) => x.id == currentTrack.id);\n\n setCurrentTrackIndex(newIndex);\n }\n\n //handle next music\n const handleNext = () => {\n var nextIndex = (currentTrackIndex + 1) % playList.length;\n var isSameTrack = playList[nextIndex]?.id == currentTrack.id;\n\n if (!isSameTrack) {\n handleTrackLoading();\n setCurrentTrack(playList[nextIndex]);\n setCurrentTrackIndex(nextIndex); // Loop back to the first track\n }\n };\n\n //handle previous music\n const handlePrevious = () => {\n var prevIndex = (currentTrackIndex - 1 + playList.length) % playList.length;\n var isSameTrack = playList[prevIndex]?.id == currentTrack.id;\n\n if (!isSameTrack) {\n handleTrackLoading();\n setCurrentTrack(playList[prevIndex]);\n setCurrentTrackIndex(prevIndex); // Loop back to the last track\n }\n };\n\n const handlePlayPause = () => {\n setPlaying(!playing);\n setIsTrackPlaying(!playing);\n sessionStorage.setItem('playing', !playing);\n };\n\n const handlePlay = () => {\n setPlaying(true);\n };\n\n const handleBuffer = () => {\n console.log(\"bufferring...\");\n };\n\n const handleBufferEnd = () => {\n console.log(playerRef.current.getInternalPlayer());\n if (isMobile && mobileOS === \"iOS\" && turnOnPlay) {\n console.log(\"forcePlay\");\n setPlaying(true);\n setTurnOnPlay(false);\n if (playerRef.current.getInternalPlayer().playVideo) {\n playerRef.current.getInternalPlayer().playVideo();\n }\n }\n };\n\n // Handle song end\n const handleEnded = () => {\n handleTrackLoading();\n var nextIndex = currentTrackIndex + 1 < playList.length ? currentTrackIndex + 1 : 0; // Loop back to the start of the playlist\n setCurrentTrackIndex(nextIndex);\n setCurrentTrack(playList[nextIndex]);\n };\n\n // Function to shuffle the playlist\n const shufflePlaylist = (playlist) => {\n return [...playlist].sort(() => Math.random() - 0.5);\n };\n\n const handleDuration = (duration) => {\n setDuration(duration); // Set duration in seconds\n };\n\n const handleProgress = (state) => {\n if (!seeking) {\n setTrackProgress(state.playedSeconds);\n setProgress(state.playedSeconds);\n setPlayed(state.played);\n }\n };\n\n const formatTime = (seconds) => {\n const hours = Math.floor(seconds / 3600);\n const minutes = Math.floor((seconds % 3600) / 60); // Adjust minutes calculation\n const secs = Math.floor(seconds % 60);\n\n if (hours > 0) {\n // If hours are present, return hours, minutes, and seconds\n return `${hours}:${minutes < 10 ? \"0\" : \"\"}${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n } else {\n // If no hours, return only minutes and seconds\n return `${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n }\n };\n\n const handleError = () => {\n console.log(\"have error\")\n // Skip to next track if there's an error with the current track\n var nextIndex = currentTrackIndex + 1 < playList.length ? currentTrackIndex + 1 : 0; // Loop back to the start of the playlist\n setCurrentTrackIndex(nextIndex);\n setCurrentTrack(playList[nextIndex]);\n };\n\n const handleToggleMuted = (isMuted) => {\n setMuted(isMuted);\n };\n\n const handleReady = () => {\n setIsLoading(false);\n setIsTrackLoading(false);\n };\n\n function detectMobileOS() {\n const userAgent = navigator.userAgent || navigator.vendor || window.opera;\n // Check for Android\n if (/android/i.test(userAgent)) {\n setMobileOS(\"Android\");\n return;\n }\n\n // Check for iOS (iPhone, iPad, iPod)\n if (/iPhone|iPad|iPod/i.test(userAgent)) {\n setMobileOS(\"iOS\");\n return;\n }\n\n // Otherwise assume desktop or unknown device\n setMobileOS(\"others\");\n }\n\n return (\n
\n {\n _dispatch(setMusicPlayerModal(true))\n }}\n >\n \n
\n
\n \n
\n \n \n
\n \n {playing ?\n :\n \n }\n
\n \n \n \n {\n setShuffleBtnClicked(true);\n setIsShuffle((prev) => !prev);\n }}\n >\n \n \n {\n _dispatch(setMusicPlayerModal(true));\n }}\n >\n \n \n \n
\n \n
\n {currentTrack?.title}\n
\n
\n {isLoading ? (\n \n ) : (\n formatTime(progress)\n )}\n
\n
\n \n \n \n );\n};\n\nexport default MusicPlayer;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector} from \"react-redux\";\nimport VIcon from \"components/custom/Icon\";\nimport { themeIcons } from \"config/theme\";\nimport { stringIsNullOrEmpty } from '../../util/Util'\nimport \"../../assets/css/bannerapk.css\"\nimport { useLocation } from 'react-router-dom';\nimport {\n WebUrl,\n} from \"../../util/Constant\";\n\nconst BannerAPK = () => {\n var { heartBeat } = useSelector((state) => state.authState);\n \n const [shouldShowBannerAPK, setShouldShowBannerAPK] = useState(false);\n const [clickCloseBannerAPK, setClickCloseBannerAPK] = useState(false);\n const [bannerAPKImg,setBannerAPKImg]=useState(\"\");\n const [bannerAPKUrl,setBannerAPKUrl]=useState(\"\");\n\n const [iconColor, setIconColor] = useState('#FFF');\n const bannerAPK=useSelector((state)=>state.appState.bannerAPK);\n const [isMobile, setIsMobile] = useState(window.innerWidth <= 768);\n const location = useLocation();\n\n\n\n\tuseEffect(() => {\n \n\t\tinit();\n\n const parentElement = document.querySelector('.page-container');\n \n if(parentElement){\n const backgroundColor = window.getComputedStyle(parentElement).backgroundColor; \n const isDarkTheme = isDarkBackground(backgroundColor);\n setIconColor(isDarkTheme ? '#FFF' : '#383838');\n }\n \n const handleResize = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n\n\t}, []);\n\n useEffect(()=>{\n\n let bannerAPKIcon=bannerAPK;\n \n if(bannerAPKIcon){\n if (!stringIsNullOrEmpty(bannerAPKIcon?.desktopImage)){\n setBannerAPKImg(bannerAPKIcon.desktopImage);\n }\n\n if(isMobile && !stringIsNullOrEmpty(bannerAPKIcon?.mobileImage)){\n setBannerAPKImg(bannerAPKIcon.mobileImage);\n }\n }\n\n },[isMobile])\n\n // useEffect(() => {\n // init()\n // }, [heartBeat]);\n\n async function init() {\n\n let bannerAPKIcon=bannerAPK;\n \n if(bannerAPKIcon){\n if(!stringIsNullOrEmpty(bannerAPKIcon?.desktopImage) && isValidApkUrl(bannerAPKIcon?.url)){\n\n setBannerAPKUrl(bannerAPKIcon.url);\n \n if(!clickCloseBannerAPK){\n setShouldShowBannerAPK(true);\n }\n\n }else{\n setShouldShowBannerAPK(false);\n } \n }else{\n setShouldShowBannerAPK(false);\n }\n }\n\n function isValidApkUrl(url) {\n try {\n\n if(stringIsNullOrEmpty(url))return false;\n\n const parsedUrl = new URL(url);\n return parsedUrl.href.toLowerCase().endsWith(\".apk\");\n } catch (e) {\n return false;\n }\n }\n\n const handleDownloadAPK = () => {\n const fileName = bannerAPKUrl.substring(bannerAPKUrl.lastIndexOf(\"/\") + 1);\n const link = document.createElement(\"a\");\n link.href = bannerAPKUrl;\n link.download = fileName;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n\n const [imgLoad, setImgLoad] = useState(false);\n\n const BannerAPKIcon = (props) => (\n \"banner-apk-icon\" setImgLoad(true)}/>\n );\n\n const isDarkBackground = (bgColor) => {\n const rgb = bgColor.match(/\\d+/g);\n if (rgb) {\n const r = parseInt(rgb[0], 10);\n const g = parseInt(rgb[1], 10);\n const b = parseInt(rgb[2], 10);\n return (r * 0.299 + g * 0.587 + b * 0.114) < 128;\n }\n return false;\n };\n\n const CloseBtn = (props)=> (\n {\n e.stopPropagation();\n setShouldShowBannerAPK(false);\n setClickCloseBannerAPK(true);\n }}\n >\n \n \n );\n\n\treturn (\n <>\n {shouldShowBannerAPK && location.pathname !== \"/\"+ WebUrl.getCurrentLocale() +\"/livechat\" && (\n
\n
\n {imgLoad && }\n < BannerAPKIcon className=\"banner-apk-icon\" />\n
\n
\n )}\n \n\t);\n};\n\nexport default BannerAPK;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector} from \"react-redux\";\nimport VIcon from \"components/custom/Icon\";\nimport { themeIcons } from \"config/theme\";\nimport { stringIsNullOrEmpty } from '../../util/Util'\nimport \"../../assets/css/bannerapk.css\"\nimport { useLocation } from 'react-router-dom';\nimport {\n WebUrl,\n} from \"../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport { HIDE_APK_BANNER_DURATION } from \"../../util/Constant\";\n\nconst BannerAPKMobile = () => {\n \n const [shouldShowBannerAPK, setShouldShowBannerAPK] = useState(false);\n const [clickCloseBannerAPK, setClickCloseBannerAPK] = useState(false);\n const [bannerAPKUrl,setBannerAPKUrl]=useState(\"\");\n\n const bannerAPK=useSelector((state)=>state.appState.bannerAPK);\n const [isMobile, setIsMobile] = useState(window.innerWidth <= 768);\n const location = useLocation();\n var { t } = useTranslation();\n var brandName = useSelector((state) => state.appState.brandName);\n\n\n\n\tuseEffect(() => {\n \n\tinit();\n \n const handleResize = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n\n\t}, []);\n\n\n\n\n\n async function init() {\n\n let bannerAPKIcon=bannerAPK;\n \n if(bannerAPKIcon){\n if(!stringIsNullOrEmpty(bannerAPKIcon?.desktopImage) && isValidApkUrl(bannerAPKIcon?.url)){\n\n setBannerAPKUrl(bannerAPKIcon.url);\n \n if(!clickCloseBannerAPK){\n setShouldShowBannerAPK(true);\n }\n\n }else{\n setShouldShowBannerAPK(false);\n } \n }else{\n setShouldShowBannerAPK(false);\n }\n }\n\n function isValidApkUrl(url) {\n try {\n\n if(stringIsNullOrEmpty(url))return false;\n\n const parsedUrl = new URL(url);\n //operator might send us a google play url\n //return parsedUrl.href.toLowerCase().endsWith(\".apk\");\n return true;\n } catch (e) {\n return false;\n }\n }\n\n const handleDownloadAPK = () => {\n const fileName = bannerAPKUrl.substring(bannerAPKUrl.lastIndexOf(\"/\") + 1);\n const link = document.createElement(\"a\");\n link.href = bannerAPKUrl;\n link.download = fileName;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n\n const CloseBtn = (props)=> (\n \n \n );\n\n\treturn (\n <>\n {shouldShowBannerAPK && location.pathname !== \"/\"+ WebUrl.getCurrentLocale() +\"/livechat\" && !window.isWebView && (\n <>\n
\n
\n
\n \n
\n
\n
{t(\"APK_UP_LBL\", { brandName })}
\n
{t(\"APK_BTM_LBL\")}
\n
\n
\n \n \n
\n \n
\n
{t(\"DOWNLOAD\")}
\n
\n \n \n \n )}\n \n\t);\n};\n\nexport default BannerAPKMobile;\n","import React, { useEffect, useState,useImperativeHandle,forwardRef, useRef } from \"react\";\nimport { useSelector} from \"react-redux\";\nimport VIcon from \"components/custom/Icon\";\nimport { themeIcons } from \"config/theme\";\nimport { stringIsNullOrEmpty } from '../../util/Util'\nimport \"../../assets/css/floatingchat.css\"\nimport { useLocation } from 'react-router-dom';\nimport { AnimatedList } from \"react-animated-list\";\nimport { ApiUrl , ApiKey,WebUrl} from \"../../util/Constant\";\nimport ApiEngine from \"util/ApiEngine\";\n\n\nconst FloatingChat = forwardRef((props, ref) => {\n var { heartBeat } = useSelector((state) => state.authState);\n \n const [shouldShowFloatChannel, setShouldShowFloatChannel] = useState(false);\n const [clickCloseFloatChannel, setClickCloseFloatChannel] = useState(false);\n const [FloatChannelImg,setFloatChannelImg]=useState(\"\");\n\n const [iconColor, setIconColor] = useState('#FFF');\n const floatingChat=useSelector((state)=>state.appState.floatingChat);\n const location = useLocation();\n const[channelList,setChannelList]=useState();\n\n\n const [isChannelListOpen, setIsChannelListOpen] = useState(false);\n const [spinnerWheelExist,setSpinnerWheelExist]=useState(true);\n\n const clickCloseRef = useRef(clickCloseFloatChannel);\n const prevImageUrlRef = useRef(null);\n\n useEffect(() => {\n // Update the ref whenever `clickCloseFloatChannel` changes\n clickCloseRef.current = clickCloseFloatChannel;\n }, [clickCloseFloatChannel]);\n\n useImperativeHandle(ref, () => ({\n changeBtmPos: () => {\n setSpinnerWheelExist(false);\n },\n changeTopPos: () => {\n setSpinnerWheelExist(true);\n },\n}));\n\n\n\tuseEffect(() => {\n const parentElement = document.querySelector('.page-container');\n \n if(parentElement){\n const backgroundColor = window.getComputedStyle(parentElement).backgroundColor; \n const isDarkTheme = isDarkBackground(backgroundColor);\n setIconColor(isDarkTheme ? '#FFF' : '#383838');\n }\n\n getFloatingChannel();\n\t}, []);\n\n\n const getFloatingChannel = async () => {\n try {\n var responseJson = await ApiEngine.get(`${ApiUrl._API_GET_FLOATING_CHANNEL}`);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n const result = responseJson[ApiKey._API_DATA_KEY];\n\n if (result.floatingChat) {\n const newImageUrl = result.floatingChat[\"imageUrl\"];\n\n if (prevImageUrlRef.current !== newImageUrl) {\n setShouldShowFloatChannel(false);\n setImgLoad(false);\n setIsChannelListOpen(false);\n prevImageUrlRef.current = newImageUrl;\n }\n\n setFloatChannelImg(newImageUrl);\n setChannelList(result.floatingChat[\"channelList\"]);\n\n if (!clickCloseRef.current) {\n setShouldShowFloatChannel(true);\n }else{\n setShouldShowFloatChannel(false);\n }\n } else {\n setShouldShowFloatChannel(false);\n }\n }\n } catch (error) {\n setShouldShowFloatChannel(false);\n }\n };\n\n\n //async function init() {\n\n //await getFloatingChannel();\n // let floatingChannel=floatingChat;\n \n // if(floatingChannel){\n // if(!stringIsNullOrEmpty(floatingChannel?.imageUrl)){\n\n // setFloatChannelImg(floatingChannel.imageUrl);\n // setChannelList(floatingChannel.channelList);\n \n // if(!clickCloseFloatChannel){\n // setShouldShowFloatChannel(true);\n // }\n\n // }else{\n // setShouldShowFloatChannel(false);\n // } \n // }else{\n // setShouldShowFloatChannel(false);\n // }\n //}\n\n\n const isDarkBackground = (bgColor) => {\n const rgb = bgColor.match(/\\d+/g);\n if (rgb) {\n const r = parseInt(rgb[0], 10);\n const g = parseInt(rgb[1], 10);\n const b = parseInt(rgb[2], 10);\n return (r * 0.299 + g * 0.587 + b * 0.114) < 128;\n }\n return false;\n };\n\n\n\n const CloseBtn = (props)=> (\n {\n e.stopPropagation();\n setShouldShowFloatChannel(false);\n setClickCloseFloatChannel(true);\n }}\n >\n \n \n );\n\n const [imgLoad, setImgLoad] = useState(false);\n\t\n return (\n <>\n {shouldShowFloatChannel && location.pathname !== \"/\"+ WebUrl.getCurrentLocale() +\"/livechat\" && (\n
\n {isChannelListOpen && (\n
\n \n {channelList && channelList.map((icon, index) => (\n {\n setIsChannelListOpen(false);\n }}\n >\n \"Icon\"\n \n ))}\n
)}\n
\n )}\n \n \n )}\n \n );\n \n\n});\n\nexport default FloatingChat;\n","import React, { useEffect, useState, useRef, useCallback } from \"react\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { map, debounce, find, filter, upperCase, get, forEach, isEmpty } from \"lodash\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tSessionKey,\n\tAlertTypes,\n\t_MAIN_WALLET_ID,\n\t//PhoneNumberPrefix,\n\tDEFAULT_REFERRAL_CODE,\n} from \"../../util/Constant\";\nimport {\n\tAlert,\n\tDropdown,\n\tDropdownItem,\n\tDropdownMenu,\n\tDropdownToggle,\n\tModal,\n\tModalBody,\n\tSpinner,\n\tUncontrolledDropdown,\n} from \"reactstrap\";\nimport PinInput from \"react-pin-input\";\nimport Input from \"../../components/custom/Input\";\nimport { useForm } from \"react-hook-form\";\nimport {\n\tbindMember,\n\tsetBusy,\n\tsetDepositModal,\n\tsetIdle,\n\tsetLoginModal,\n\tsetRegisterModal,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n\tsetDailyCheckinModal,\n\tsetMusicPlayerModal\n} from \"../../redux/AppAction.js\";\nimport SecureLS from \"secure-ls\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n\tcreateFormBody,\n\tcreateMultiPartFormBody,\n} from \"../../util/Util\";\nimport { setOpenMenu,setSpinWheelListModal } from \"redux/AppAction\";\nimport i18n from \"localization/i18n\";\nimport { saveLanguageId } from \"redux/LanguageAction\";\nimport SpinWheel from \"components/spinwheel/SpinWheel\";\nimport MusicPlayer from \"components/custom/MusicPlayer\"\nimport \"../../assets/css/spinwheel.css\"\nimport BannerAPK from \"components/bannerAPK/BannerAPK\";\nimport BannerAPKMobile from \"components/bannerAPK/BannerAPKMobile\";\nimport FloatingChat from \"components/FloatingChat/FloatingChat\";\n\nconst Header = (props) => {\n\tvar { t } = useTranslation();\n\tvar _history = useHistory();\n\tvar _dispatch = useDispatch();\n\tconst location = useLocation();\n\n\tvar ls = new SecureLS();\n\tconst search = window.location.search;\n\tconst params = new URLSearchParams(search);\n\tconst {\n\t\tregister: tacVerifyRegister,\n\t\thandleSubmit: tacVerifyHandleSubmit,\n\t\terrors: tacVerifyErrors,\n\t\twatch: tacVerifyWatch,\n\t\tsetValue: tacVerifySetValue,\n\t\tunregister: tacVerifyUnregister,\n\t} = useForm();\n\tconst {\n\t\tregister: ResetPasswordRegister,\n\t\thandleSubmit: ResetPasswordHandleSubmit,\n\t\terrors: ResetPasswordErrors,\n\t\twatch: ResetPasswordWatch,\n\t\tsetValue: ResetPasswordSetValue,\n\t\tunregister: ResetPasswordUnregister,\n\t} = useForm();\n\tvar brandName = useSelector((state) => state.appState.brandName);\n\tconst [showCodeError, setShowCodeError] = useState(false);\n\tconst {\n\t\tregister,\n\t\thandleSubmit,\n\t\terrors,\n\t\tclearErrors,\n\t\tsetError,\n\t\tsetValue,\n\t\tgetValues,\n\t\twatch,\n\t\tcontrol,\n\t\ttrigger,\n\t\tphoneNumberChk,\n\t} = useForm();\n\tconst { handleSubmit: PasswordUpdatedHandleSubmit } = useForm();\n\n\tconst handleReferralCode = (code) => {\n\t\tsetReferralCode(code);\n\t};\n\n\tconst PhoneNumberPrefix = useSelector((state) => state.appState.dialingCodes);\n\tconst [showModalLogin, setShowModalLogin] = useState(false);\n\tconst registerModal = useSelector((state) => state.appState.registerModal);\n\tconst [hideLoginPassword, setHideLoginPassword] = useState(true);\n\tconst [registerSteps, setRegisterSteps] = useState(1);\n\tconst openMenu = useSelector((state) => state.appState.openMenu);\n\tconst [activeLanguage, setActiveLanguage] = useState(\n\t\tlocalStorage.getItem(SessionKey._LANGUAGE) || \"EN\"\n\t);\n\tconst [currentWalletBalance, setCurrentWalletBalance] = useState(0);\n\tvar _userData = useSelector((state) => state.authState.userData);\n\tvar { heartBeat } = useSelector((state) => state.authState);\n\tconst [referralCode, setReferralCode] = useState(\"\");\n\tconst [formattedPhone, setFormattedPhone] = useState(\"\");\n\tconst [phoneNumberError, setPhoneNumberError] = useState(false);\n\tconst [_username, _setUsername] = useState(\"\");\n\tconst [isUsernameAvailable, setIsUsernameAvailable] = useState();\n\tconst [isDigit, setIsDigit] = useState(false);\n\tconst [selectedPhonePrefix, setSelectedPhonePrefix] = useState(\"\");\n\n\tconst [phoneNumber, setPhoneNumber] = useState(\"\");\n\tconst [enteredPinNumber, setEnteredPinNumber] = useState(\"\");\n\tconst [enteredPinNumberConfirm, setEnteredPinNumberConfirm] = useState(\"\");\n\tconst [pinNumberConfirmFocused, setPinNumberConfirmFocused] = useState(0);\n\tconst [pinNumber, setPinNumber] = useState(\"\");\n\tconst _TAC_VALID_TIMER = 60000;\n\tconst _SECONDS_IN_MS = 1000;\n\n\tconst _TAC_TIMEOUT_IN_MINUTES = 1;\n\tconst [TACtimer, setTACtimer] = useState(setTimeout(() => {}, 60000));\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst [TACcountdownPeriod, setTACCountdownPeriod] = useState(0);\n\tconst [TACsent, setTACsent] = useState(true);\n\tconst [TACtimedOut, setTACtimedOut] = useState(true);\n\tconst [canSendTAC, setCanSendTAC] = useState(true);\n\tconst [TACBtnAble, setTACBtnAble] = useState(false);\n\tconst [attemp, setAttemp] = useState(1);\n\n\tconst elePin = useRef(null);\n\tconst [tempPinNumberFocused, setTempPinNumberFocused] = useState(0);\n\tconst [tempPinNumber, setTempPinNumber] = useState();\n\tconst OTP_VIA_SMS = 1;\n\tconst OTP_VIA_EMAIL = 2;\n\tconst OTP_VIA_WHATSAPP = 3;\n\tconst [isLiveChatOpen, setIsLiveChatOpen] = useState(false);\n\tconst [registerStepsViaEmail, setRegisterStepsViaEmail] = useState(false);\n\tconst [registerStepsThreeFirst, setRegisterStepsThreeFirst] = useState(false);\n\tconst [_email, _setEmail] = useState(\"\");\n\tconst [_emailText, _setEmailText] = useState(\"\");\n\tconst [isEmailAvailable, setIsEmailAvailable] = useState();\n\n\tconst [password, setPassword] = useState(\"\");\n\tconst [referralCodeString, setReferralCodeString] = useState(\"\");\n\n\tconst _MIN_PASSWORD_LENGTH = 8;\n\n\tconst [forgotPassword, setForgotPassword] = useState(false);\n\tconst [isModalVisible, setIsModalVisible] = useState(false);\n\tconst [isForgetPassword, setIsForgetPassword] = useState(false);\n\tconst [isLogin, setIsLogin] = useState(true);\n\tconst [verifyPhoneTAC, setVerifyPhoneTAC] = useState(false);\n\tconst [isPasswordUpdated, setIsPasswordUpdated] = useState(false);\n\tconst verifyState = {\n\t\tbutton: 1,\n\t};\n\tconst [isUpdatePassword, setIsUpdatePassword] = useState(false);\n\tconst [tempPhoneNum, setTempPhoneNum] = useState(\"\");\n\tconst [countdownTAC, setCountdownTAC] = useState(false);\n\tconst [username, setUsername] = useState(\"\");\n\n\tconst channels = useSelector((state) => state.appState.channels);\n\n\tconst [selectedChannel, setSelectedChannel] = useState();\n\tconst [toggleModal, setToggleModal] = useState();\n\tconst [isLoginLoading, setIsLoginLoading] = useState(false);\n\tconst [isTACLoading, setIsTACLoading] = useState(false);\n\tconst [isRegisterLoading, setIsRegisterLoading] = useState(false);\n\tconst [disableRegister, setDisableRegister] = useState(false);\n\tconst [disableViaEmail, setDisableViaEmail] = useState(false);\n\tconst [viaEmailLoading, setViaEmailLoading] = useState(false);\n\n\tconst [pinLoading, setPinLoading] = useState(false);\n\tconst [timerPeriod, setTimerPeriod] = useState(null);\n\tconst [pinInputDisabled, setPinInputDisabled] = useState(false);\n\tconst activeLanguageCode = useSelector(\n\t\t(state) => state.languageState.languageId\n\t);\n\tconst [tabActive, setTabActive] = useState();\n\tconst [disabledRefrerral, setDisabledRefrerral] = useState(false);\n\tconst walletsDetails = useSelector((state) => state.appState.walletsDetails);\n\tconst walletBalance = useSelector((state) => state.appState.walletBalance);\n\tconst companyIcons = useSelector((state) => state.appState.companyIcons);\n\tconst [sideMenuList, setSideMenuList] = useState();\n\tconst [spinWheelMenuItem, setSpinWheelMenuItem] = useState();\n\tconst [shouldShowSpinWheel, setShouldShowSpinWheel] = useState(true);\n\t\n\tconst [logo, setLogo] = useState();\n\tconst [smallLogo, setSmallLogo] = useState();\n\tconst [alertIcon, setAlertIcon] = useState();\n\tconst [profileIcon, setProfileIcon] = useState();\n\tconst [loginBanner, setLoginBanner] = useState();\n\tconst [dropdownOpen, setDropdownOpen] = useState(false);\n\n\tconst [openMobileSideMenu, setOpenMobileSideMenu] = useState(false);\n\tconst [balanceRefresh, setBalanceRefresh] = useState(false);\n\tconst [chatLoading, setChatLoading] = useState(true);\n\tconst [affliateItem, setAffliateItem] = useState();\n\n\tconst bannerAPK = useSelector((state)=>state.appState.bannerAPK);\n\tconst floatingChat=useSelector((state)=>state.appState.floatingChat);\n\tconst isHotGameEnabled = useSelector(\n\t\t(state) => state.appState.isHotGameEnabled\n \t);\n\tconst [APKMobileBannerIsVisible, setAPKMobileBannerIsVisible]=useState(true);\n\n\tvar companyLanguages = useSelector((state) => state.appState.languages);\n\tconst [languageSelected, setLanguageSelected] = useState(\n\t\tcompanyLanguages.find(\n\t\t\t(x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n\t\t)\n\t);\n\n\tvar registerChannel = useSelector((state) => state.appState.chatSphere);\n\tvar totalPromoClaimable = useSelector((state) =>\n\t\tstate.authState.heartBeat ? state.authState.userData.totalPromoClaimable : 1\n\t);\n\tvar unreadLivechat = useSelector((state) =>\n\t\tstate.authState.heartBeat ? state.authState.userData.totalUnreadLivechat : 1\n\t);\n\tconst customerServiceUrl = \"/livechat\";\n\tconst [languageDetected, setLanguageDetected] = useState(false);\n\n\tconst membershipEnabled = useSelector(\n\t\t(state) => state.appState.membershipEnabled\n\t);\n\tconst memberData = useSelector((state) => state.appState.member);\n const dailyCheckInExist = useSelector((state) => state.appState.dailyCheckInExist);\n\n\tconst [showSpinWheelForGuest, setShowSpinWheelForGuest] = useState(false);\n\n\tconst musicPlayerEnabled = useSelector(\n\t\t(state) => state.appState.musicPlayerEnabled\n\t);\n\t// const musicPlayerEnabled = true;\n\n\tconst musicTrackList = useSelector(\n\t\t(state) => state.appState.musicTrackList\n\t);\n\n\tconst availableProductCategories = useSelector(\n\t\t(state) => state.appState.availableProductCategories\n\t);\n\n\tconst [isTrackPlaying, setIsTrackPlaying] = useState(false);\n\tconst [trackTitle, setTrackTitle] = useState(null);\n\tconst [shuffleEnabled, setShuffleEnabled] = useState(false);\n\tconst [trackProgress, setTrackProgress] = useState(false);\n\tconst [isTrackLoading, setIsTrackLoading] = useState(false);\n\tconst [shuffleBtnClicked, setShuffleBtnClicked] = useState(false);\n\tconst [isPlayNextTrack, setIsPlayNextTrack] = useState(false);\n\tconst [isPlayPrevTrack, setIsPlayPrevTrack] = useState(false);\n\tconst [playButtonClicked, setPlayBtnClicked] = useState(false);\n\tconst chatRef = useRef(null);\n\n\tconst iconTheme = \"music-player-contorl-btn-icon\";\n\n\tconst [rolloverData, setRolloverData] = useState([]);\n\n\tconst affiliateLink = useSelector(\n\t\t(state) => state.appState.affiliateLink\n\t);\n\n\n\tconst formatTime = (seconds) => {\n\t\tconst hours = Math.floor(seconds / 3600);\n\t\tconst minutes = Math.floor((seconds % 3600) / 60); // Adjust minutes calculation\n\t\tconst secs = Math.floor(seconds % 60);\n\n\t\tif (hours > 0) {\n\t\t\t// If hours are present, return hours, minutes, and seconds\n\t\t\treturn `${hours}:${minutes < 10 ? \"0\" : \"\"}${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n\t\t} else {\n\t\t\t// If no hours, return only minutes and seconds\n\t\t\treturn `${minutes}:${secs < 10 ? \"0\" : \"\"}${secs}`;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n\tuseEffect(() => {\n\t\tconsole.log(\"floatingchat\",floatingChat);\n\t\tif (!heartBeat) {\n\t\t\tsetCurrentWalletBalance(0);\n\t\t} else {\n\t\t\tbindMember(_dispatch);\n\t\t}\n\t\tconst fetchData = async () => {\n\t\t\tif (_userData[\"walletBalance\"]) {\n\t\t\t\tsetCurrentWalletBalance(_userData[\"walletBalance\"]);\n\t\t\t}\n\t\t};\n\t\tfetchData();\n\t}, [heartBeat, localStorage.getItem(SessionKey._TEMP_GUID)]);\n\n\tuseEffect(() => {\n\t\tif (location.state) {\n\t\t\tsetTabActive(location.state.reference);\n\t\t} else {\n\t\t\tif (location.pathname == \"/\") {\n\t\t\t\tsetTabActive(\"Home\");\n\t\t\t} else {\n\t\t\t\tsetTabActive();\n\t\t\t}\n\t\t}\n\t}, [location]);\n\n\t/*useEffect(() => {\n\t\tif (heartBeat) {\n\t\t\tbindMember(_dispatch);\n\t\t}\n\t}, [activeLanguageCode]);*/\n\n\tuseEffect(() => {\n\t\tif (!registerModal) {\n\t\t\tsetRegisterSteps(1);\n\t\t\tsetAttemp(1);\n\t\t\t_setEmail(\"\");\n\t\t\t_setEmailText(\"\");\n\t\t\tclearTimeout(timerPeriod);\n\t\t\tclearTimeout(TACtimer);\n\t\t}\n\t}, [registerModal]);\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tsetTimerPeriod(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tuseEffect(() => {\n\t\tif (TACcountdownPeriod > 0) {\n\t\t\tsetTACtimer(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = TACcountdownPeriod - 1;\n\t\t\t\t\tsetTACCountdownPeriod(tempPeriod);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [TACcountdownPeriod]);\n\n\tuseEffect(() => {\n\t\t// Set default language\n\t\tif (companyLanguages?.length) {\n\t\t\tconst tempLangCode = companyLanguages[0]?.code;\n\t\t\tconst storedLanguage = localStorage.getItem(SessionKey._LANGUAGE);\n\t\t\tconst tempLang = companyLanguages.find((x) => x.isDefault === true);\n\n\t\t\t// console.log('storedLanguage', storedLanguage)\n\t\t\t// console.log('tempLang', tempLang)\n\n\t\t\t//console.log('Set default lang')\n\t\t\tif (storedLanguage && storedLanguage !== \"undefined\") {\n\t\t\t\tonInitLanguage(storedLanguage);\n\t\t\t} else if (tempLang) {\n\t\t\t\tonInitLanguage(tempLang.code);\n\t\t\t} else {\n\t\t\t\tonInitLanguage(tempLangCode);\n\t\t\t}\n\t\t}\n\n\t\t// Hierarchy: account lang > user selected lang > ip lang > browser lang > default\n\n\t\tconst currentDate = new Date();\n\t\tconst oneDayInMilliseconds = 24 * 60 * 60 * 1000;\n\t\tconst localeUserCreatedDate = new Date(\n\t\t\tlocalStorage.getItem(\"userSelectedLanguageCodeCreatedAt\") || 0\n\t\t);\n\t\tconst localeIpCreatedDate = new Date(\n\t\t\tlocalStorage.getItem(\"ipCreatedAt\") || 0\n\t\t);\n\n\t\tif (\n\t\t\theartBeat &&\n\t\t\tObject.keys(memberData).length > 0 &&\n\t\t\tcompanyLanguages != undefined &&\n\t\t\tcurrentDate - localeUserCreatedDate > oneDayInMilliseconds\n\t\t) {\n\t\t\tconst language = companyLanguages.find(\n\t\t\t\t(x) => x.id == memberData.languageSetting\n\t\t\t);\n\t\t\tlocalStorage.setItem(\"userSelectedLanguageCode\", language.code);\n\t\t\tlocalStorage.setItem(\"userSelectedLanguageCodeCreatedAt\", new Date());\n\t\t\t//console.log('Set lang by member')\n\t\t\tonInitLanguage(language.code);\n\t\t} else {\n\t\t\tif (\n\t\t\t\tlocalStorage.getItem(\"userSelectedLanguageCode\") &&\n\t\t\t\tcurrentDate - localeUserCreatedDate <= oneDayInMilliseconds\n\t\t\t) {\n\t\t\t\t//console.log('Set lang by guest user')\n\t\t\t\tonInitLanguage(localStorage.getItem(\"userSelectedLanguageCode\"));\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\t!localStorage.getItem(\"ipLanguageCode\") ||\n\t\t\t\t\tcurrentDate - localeIpCreatedDate > oneDayInMilliseconds\n\t\t\t\t) {\n\t\t\t\t\t// Disabled by Chris 20241009 - calling too many times and also causing CORS errors, remove for now\n\t\t\t\t\t// setLanguageByIPLocaleOrBrowserLocale();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [\n\t\tcompanyLanguages,\n\t\tmemberData,\n\t\theartBeat,\n\t\tlanguageSelected,\n\t\tlocalStorage.getItem(SessionKey._LANGUAGE),\n\t]);\n\n\tuseEffect(() => {\n\t\tif (heartBeat) {\n\t\t getLatestRolloverRecord();\n\t\t}\n\t }, [walletBalance, walletsDetails, heartBeat, companyIcons]);\n\n\tasync function getLatestRolloverRecord() {\n\t\tvar responseJson = await ApiEngine.get(\n\t\t ApiUrl._API_GET_LATEST_ROLLOVER_RECORD\n\t\t);\n\t\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t setRolloverData(responseJson[ApiKey._API_DATA_KEY]);\n\t\t} else {\n\t\t\tsetRolloverData([]);\n\t\t}\n\t}\n\n\tconst loadSpinWheelMenu=async()=>{\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_SPINWHEEL_SETTINGS\n\t\t );\n\t \n\t\t if(responseJson[ApiKey._API_SUCCESS_KEY]){\n\t\t\tvar spinWheelEnabled = false;\n\t\t\tvar showSpinWheelForGuestTemp = false;\n\t \n\t\t\tif(responseJson[ApiKey._API_DATA_KEY].spinWheelEnabled == \"1\"){\n\t\t\t spinWheelEnabled = true;\n\t\t\t}\n\t \n\t\t\tif(responseJson[ApiKey._API_DATA_KEY].showSpinWheelForGuest == \"1\"){\n\t\t\t showSpinWheelForGuestTemp = true;\n\t\t\t setShowSpinWheelForGuest(true);\n\t\t\t}\n\t \n\t\t\tif(heartBeat && spinWheelEnabled) {\n\t\t\t setShouldShowSpinWheel(true);\n\t\t\t} else if(!heartBeat && spinWheelEnabled && showSpinWheelForGuestTemp) {\n\t\t\t setShouldShowSpinWheel(true);\n\t\t\t} else {\n\t\t\t setShouldShowSpinWheel(false);\n\t\t\t} \n\t\t }\n\t}\n\n\tconst setLanguageByIPLocaleOrBrowserLocale = async () => {\n\t\tconst response = await ApiEngine.get(\"https://ipapi.co/json/\");\n\t\t// const response = {\n\t\t// \t\"ip\": \"146.70.29.196\",\n\t\t// \t\"network\": \"146.70.29.0/24\",\n\t\t// \t\"version\": \"IPv4\",\n\t\t// \t\"city\": \"Singapore\",\n\t\t// \t\"region\": null,\n\t\t// \t\"region_code\": null,\n\t\t// \t\"country\": \"SG\",\n\t\t// \t\"country_name\": \"Singapore\",\n\t\t// \t\"country_code\": \"SG\",\n\t\t// \t\"country_code_iso3\": \"SGP\",\n\t\t// \t\"country_capital\": \"Singapore\",\n\t\t// \t\"country_tld\": \".sg\",\n\t\t// \t\"continent_code\": \"AS\",\n\t\t// \t\"in_eu\": false,\n\t\t// \t\"postal\": \"13\",\n\t\t// \t\"latitude\": 1.2982,\n\t\t// \t\"longitude\": 103.7836,\n\t\t// \t\"timezone\": \"Asia/Singapore\",\n\t\t// \t\"utc_offset\": \"+0800\",\n\t\t// \t\"country_calling_code\": \"+65\",\n\t\t// \t\"currency\": \"SGD\",\n\t\t// \t\"currency_name\": \"Dollar\",\n\t\t// \t\"languages\": \"cmn,en-SG,ms-SG,ta-SG,zh-SG\",\n\t\t// \t\"country_area\": 692.7,\n\t\t// \t\"country_population\": 5638676,\n\t\t// \t\"asn\": \"AS9009\",\n\t\t// \t\"org\": \"M247 Europe SRL\"\n\t\t// }\n\t\t// const response = {};\n\n\t\tif (response && Object.keys(response).length > 0) {\n\t\t\tconst languagesArray = response.languages.split(\",\");\n\n\t\t\t// Detect the first language tag that has a dash (e.g., en-SG, zh-Hans)\n\t\t\tconst languageWithDash = languagesArray.find((lang) =>\n\t\t\t\tlang.includes(\"-\")\n\t\t\t);\n\n\t\t\tconst convertedMainLanguages = languageWithDash.toLowerCase();\n\n\t\t\tcompanyLanguages.forEach((language) => {\n\t\t\t\tif (convertedMainLanguages?.includes(language.code)) {\n\t\t\t\t\t// Set by ip language\n\t\t\t\t\tconsole.log(\"Set by ip language\");\n\t\t\t\t\tlocalStorage.setItem(\"ipLanguageCode\", convertedMainLanguages);\n\t\t\t\t\tlocalStorage.setItem(\"ipCreatedAt\", new Date());\n\t\t\t\t\tonChangeLanguage(language);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// If IP geo location doesn't exist then use browser language\n\t\t\tconst browserLanguage = navigator.language || navigator.userLanguage;\n\t\t\tconst convertedBrowserLanguage = browserLanguage.toLowerCase();\n\n\t\t\tcompanyLanguages.forEach((language) => {\n\t\t\t\tif (convertedBrowserLanguage.includes(language.code)) {\n\t\t\t\t\t// Set by browser language\n\t\t\t\t\tconsole.log(\"Set by browser language\");\n\t\t\t\t\tonChangeLanguage(language);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\tasync function checkIfReferralExist2(code) {\n\t\tlet referralCode = code;\n\t\tif (code.includes(\" +\")) {\n\t\t\treferralCode = code.substring(0, code.indexOf(\" +\"));\n\t\t}\n\t\tlet apiUrl =\n\t\t\tApiUrl._API_CHECK_IF_REFERRAL_CODE_EXIST + \"?code=\" + referralCode;\n\t\tlet responseJson = await ApiEngine.get(apiUrl);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\tasync function checkIfReferralExist(code) {\n\t\tlet referralCode = code;\n\t\tif (code.includes(\" +\")) {\n\t\t\treferralCode = code.substring(0, code.indexOf(\" +\"));\n\t\t}\n\t\tlet apiUrl =\n\t\t\tApiUrl._API_CHECK_IF_REFERRAL_CODE_EXIST + \"?code=\" + referralCode;\n\t\tlet responseJson = await ApiEngine.get(apiUrl);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetDisabledRefrerral(true);\n\t\t\tsetRegisterSteps(1);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tt(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\")\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\tasync function checkUsername(username) {\n\t\tlet avail = true;\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_CHECK_USERNAME +\n\t\t\t\t\"?username=\" +\n\t\t\t\tusername +\n\t\t\t\t\"&code=\" +\n\t\t\t\treferralCode\n\t\t);\n\t\tavail = responseJson[ApiKey._API_SUCCESS_KEY];\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetIsUsernameAvailable(true);\n\t\t} else {\n\t\t\tsetIsUsernameAvailable(false);\n\t\t}\n\n\t\treturn avail;\n\t}\n\n\tfunction onchange(e) {\n\t\tconst re = /^[0-9\\b]+$/;\n\t\tlet value = e.target.value;\n\n\t\t// Check if the value contains only digits\n\t\tif (re.test(value)) {\n\t\t\t// Limit the value to 12 characters\n\t\t\tif (value.length > 12) {\n\t\t\t\tvalue = value.slice(0, 12);\n\t\t\t}\n\n\t\t\tsetIsDigit(true);\n\t\t\tsetFormattedPhone(value);\n\t\t} else {\n\t\t\treturn false;\n\t\t\tsetIsDigit(false);\n\t\t}\n\t}\n\n\tconst submitRegisterForm2 = async (data, e) => {\n\t\tsetDisableRegister(true);\n\t\tsetIsRegisterLoading(true);\n\n\t\tsetPassword(data.password);\n\t\tlet usernameAvail = await checkUsername(data.username);\n\t\tlet phoneError = false;\n\t\tif (!usernameAvail) {\n\t\t\tsetError(\"username\", { message: t(\"USERNAME_TAKEN\") });\n\t\t}\n\n\t\tlet referralString = \"\";\n\t\tlet referralCheck = true;\n\t\tif (referralCode !== \"\") {\n\t\t\tif (referralCode.length >= 8) {\n\t\t\t\tsetShowCodeError(false);\n\t\t\t\treferralString = referralCode;\n\t\t\t\tsetReferralCodeString(referralString);\n\t\t\t\treferralCheck = await checkIfReferralExist2(referralString);\n\t\t\t\tif (!referralCheck) {\n\t\t\t\t\t_dispatch(\n\t\t\t\t\t\tshowResponseMessage(false, t(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\"))\n\t\t\t\t\t);\n\t\t\t\t\tsetIsRegisterLoading(false);\n\t\t\t\t\tsetDisableRegister(false);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetShowCodeError(true);\n\t\t\t}\n\t\t} else {\n\t\t\tvar defaultReferralCode = await ApiEngine.get(\n\t\t\t\tApiUrl._API_GET_MASTER_REFERRAL_CODE\n\t\t\t);\n\t\t\tif (defaultReferralCode[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\treferralString = defaultReferralCode[ApiKey._API_DATA_KEY].code;\n\n\t\t\t\tsetReferralCodeString(referralString);\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowResponseMessage(false, t(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\"))\n\t\t\t\t);\n\t\t\t\tsetIsRegisterLoading(false);\n\t\t\t\tsetDisableRegister(false);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\ttypeof formattedPhone !== \"undefined\" &&\n\t\t\t(selectedPhonePrefix + formattedPhone).length >= 10\n\t\t) {\n\t\t\tif (!errors.phoneNumber && usernameAvail) {\n\t\t\t\tlet params = {\n\t\t\t\t\tphoneNumber: selectedPhonePrefix + formattedPhone,\n\t\t\t\t\treferralCode: referralString,\n\t\t\t\t\tlanguageCode: \"en\",\n\t\t\t\t\tcountdown: 0,\n\t\t\t\t\tTACExist: false,\n\t\t\t\t\ttype: 1,\n\t\t\t\t\tusage: \"createMember\",\n\t\t\t\t};\n\n\t\t\t\tlet responseJson = await ApiEngine.post(\n\t\t\t\t\tApiUrl._API_GENERATE_OTP,\n\t\t\t\t\tcreateFormBody(params)\n\t\t\t\t);\n\t\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\tconst phoneNo = selectedPhonePrefix + formattedPhone;\n\t\t\t\t\tconst phoneNum =\n\t\t\t\t\t\tArray.from({ length: phoneNo.length - 3 - 1 }, () => \"*\").join(\"\") +\n\t\t\t\t\t\tphoneNo.slice(-4);\n\t\t\t\t\tsetPhoneNumber(phoneNum);\n\t\t\t\t\t_setUsername(data.username);\n\t\t\t\t\tsetPhoneNumberError(false);\n\t\t\t\t\tphoneError = false;\n\t\t\t\t} else {\n\t\t\t\t\t_dispatch(\n\t\t\t\t\t\tshowMessage({\n\t\t\t\t\t\t\tcustom: true,\n\t\t\t\t\t\t\tcustomIcon: (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tcontent: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t\tphoneError = true;\n\t\t\t\t\tsetPhoneNumberError(true);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tsetError(\"registerPhone\", { message: t(\"INVALID_PHONE_NUMBER\") });\n\t\t}\n\n\t\tif (usernameAvail && !phoneError && referralCheck) {\n\t\t\tsetTACCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\t\t\tsetCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\t\t\tsetRegisterSteps(2);\n\t\t\tsetRegisterStepsThreeFirst(true);\n\t\t}\n\n\t\tsetIsRegisterLoading(false);\n\t\tsetDisableRegister(false);\n\t};\n\n\tasync function submitPin(pin) {\n\t\tlet params = {\n\t\t\tusername: _username,\n\t\t\temail: _email,\n\t\t\tpassword: password,\n\t\t\tphoneNumber: selectedPhonePrefix + formattedPhone,\n\t\t\treferralCode: referralCodeString,\n\t\t\tlanguageSetting: \"en\",\n\t\t\tTAC: pin,\n\t\t};\n\t\tlet responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_REGISTER,\n\t\t\tcreateFormBody(params)\n\t\t);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetRegisterSteps(3);\n\t\t\t_dispatch(\n\t\t\t\tshowMessage({\n\t\t\t\t\ttype: AlertTypes._SUCCESS,\n\t\t\t\t\tcontent: t(\"REGISTRATION_COMPLETED\"), // KT: Can say something about deposit now and get promotion etc maybe ?\n\t\t\t\t\tonConfirm: async () => {\n\t\t\t\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t\t\tif (responseJson[ApiKey._API_DATA_KEY]) {\n\t\t\t\t\t\t\t\t// KT: Register completed.\n\t\t\t\t\t\t\t\t_dispatch(setRegisterModal(false));\n\t\t\t\t\t\t\t\t_dispatch(setDepositModal(true));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twindow.location.replace(\"https://www.google.com\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(false, t(responseJson[ApiKey._API_MESSAGE_KEY]))\n\t\t\t);\n\t\t\telePin[\"current\"].clear();\n\t\t\tsetPinNumber(\"\");\n\t\t\tsetEnteredPinNumber(\"\");\n\t\t\tsetEnteredPinNumberConfirm(\"\");\n\t\t\tsetPinNumberConfirmFocused(0);\n\t\t}\n\t}\n\n\tasync function onKeyPress(key, index) {\n\t\t//setAllowPinClick(false);\n\t\t// 1st: have to check currentPinRef\n\t\t// 2nd: have to know which index is currently focused for altering the state.value\n\t\t// 3rd: have to check if at elePin.index(3), if yes then convert value to string and focus on eleConfirm.index(0)\n\t\t// 4th: have to check if at eleConfirm.index(3), if yes then convert value to string, and submitPin\n\t\t// let currentIndex = 0;\n\t\tlet pinStr = tempPinNumber;\n\t\tlet keyLength = key.split(\"\");\n\t\tif (key !== \"{bksp}\" && key !== \" \") {\n\t\t\tpinStr = key;\n\t\t\tsetTempPinNumber(pinStr);\n\t\t\tif (keyLength.length !== 6) {\n\t\t\t} else {\n\t\t\t\tsetTempPinNumber(\"\");\n\t\t\t\tsetPinInputDisabled(true);\n\t\t\t\tsetPinLoading(true);\n\n\t\t\t\tawait submitPin(pinStr);\n\n\t\t\t\tsetPinLoading(false);\n\t\t\t\tsetPinInputDisabled(false);\n\t\t\t}\n\t\t} else {\n\t\t\telePin[\"current\"].clear();\n\t\t\tsetPinNumber(\"\");\n\t\t\tsetTempPinNumber(\"\");\n\t\t\tsetPinNumberConfirmFocused(0);\n\t\t\tsetTempPinNumberFocused(0);\n\t\t}\n\t}\n\n\tasync function checkEmail(email) {\n\t\tlet avail = true;\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_CHECK_EMAIL + \"?email=\" + email + \"&code=\" + referralCode\n\t\t);\n\t\tavail = responseJson[ApiKey._API_SUCCESS_KEY];\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetIsEmailAvailable(true);\n\t\t} else {\n\t\t\tsetIsEmailAvailable(false);\n\t\t}\n\n\t\treturn avail;\n\t}\n\n\tconst submitForm = async (data, e) => {\n\t\tsetDisableViaEmail(true);\n\t\tsetViaEmailLoading(true);\n\t\tif (selectedPhonePrefix == \"\") {\n\t\t\tsetSelectedPhonePrefix(PhoneNumberPrefix[0].value);\n\t\t}\n\t\tif (canSendTAC) {\n\t\t\tif (TACtimedOut || countdownPeriod > 0) {\n\t\t\t\tlet emailAvail = await checkEmail(data.email);\n\t\t\t\tif (emailAvail) {\n\t\t\t\t\tlet params = {\n\t\t\t\t\t\tphoneNumber: selectedPhonePrefix + formattedPhone,\n\t\t\t\t\t\treferralCode: referralCode,\n\t\t\t\t\t\temail: data.email,\n\t\t\t\t\t\tlanguageCode: \"en\",\n\t\t\t\t\t\tcountdown: countdownPeriod,\n\t\t\t\t\t\tTACExist: !TACtimedOut,\n\t\t\t\t\t\ttype: OTP_VIA_EMAIL,\n\t\t\t\t\t\tusage: \"createMember\",\n\t\t\t\t\t};\n\n\t\t\t\t\tlet responseJson = await ApiEngine.post(\n\t\t\t\t\t\tApiUrl._API_GENERATE_OTP,\n\t\t\t\t\t\tcreateFormBody(params)\n\t\t\t\t\t);\n\t\t\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t\t_setEmail(data.email);\n\t\t\t\t\t\t_setEmailText(\"*\".repeat(4) + data.email.substr(4));\n\t\t\t\t\t\tsetTACsent(true);\n\t\t\t\t\t\tsetTACtimedOut(false);\n\t\t\t\t\t\tsetCountdownPeriod(0);\n\t\t\t\t\t\tsetCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\t\t\t\t\t\tsetTACBtnAble(false);\n\t\t\t\t\t\tsetAttemp(attemp + 1);\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tsetTACBtnAble(true);\n\t\t\t\t\t\t\tsetTACtimedOut(true);\n\t\t\t\t\t\t}, _TAC_VALID_TIMER);\n\t\t\t\t\t\tsetRegisterStepsViaEmail(false);\n\t\t\t\t\t\tsetRegisterSteps(2);\n\t\t\t\t\t\tsetRegisterStepsThreeFirst(true);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsetError(\"email\", { message: t(\"EMAIL_TAKEN\") });\n\t\t\t\t\tsetDisableViaEmail(false);\n\t\t\t\t\tsetViaEmailLoading(false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tsetCanSendTAC(false);\n\t\tclearTimeout(TACtimer);\n\t\tclearTimeout(timerPeriod);\n\t\tsetTACCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\t\tsetTimeout(() => {\n\t\t\tsetCanSendTAC(true);\n\t\t}, _SECONDS_IN_MS * 60 * _TAC_TIMEOUT_IN_MINUTES);\n\n\t\tsetDisableViaEmail(false);\n\t\tsetViaEmailLoading(false);\n\t};\n\n\tasync function submitVerifyTAC(data) {\n\t\tsetIsTACLoading(true);\n\t\tif (verifyState.button == 1) {\n\t\t\tlet formData = {\n\t\t\t\ttaccode: data.taccode,\n\t\t\t\tusername: username,\n\t\t\t};\n\t\t\tlet formBody = createMultiPartFormBody(formData);\n\t\t\tlet TACjson = await ApiEngine.post(\n\t\t\t\tApiUrl._API_VERIFY_RESET_PASSWORD_SMS,\n\t\t\t\tformBody\n\t\t\t);\n\t\t\tif (TACjson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetVerifyPhoneTAC(false);\n\t\t\t\tsetIsUpdatePassword(true);\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage({\n\t\t\t\t\t\tcustom: true,\n\t\t\t\t\t\tcustomIcon: (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcontent: t(TACjson[ApiKey._API_MESSAGE_KEY]),\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (verifyState.button == 2) {\n\t\t\tlet formData = {\n\t\t\t\tlanguage: \"en\",\n\t\t\t\tusername: username,\n\t\t\t\ttype: verifyState.button,\n\t\t\t\tusage: \"resetPassword\",\n\t\t\t};\n\t\t\tlet formBody = createMultiPartFormBody(formData);\n\t\t\t//data[\"phoneNumber\"] = formattedPhoneNumber;\n\t\t\tdata[\"language\"] = \"en\";\n\t\t\tvar responseJson = await ApiEngine.post(\n\t\t\t\tApiUrl._API_GENERATE_OTP,\n\t\t\t\tformBody\n\t\t\t);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetCountdownTAC(false);\n\t\t\t\tsetPhoneNumber(responseJson.data);\n\t\t\t\tsetTempPhoneNum(\n\t\t\t\t\tresponseJson.data.replace(\n\t\t\t\t\t\tresponseJson.data.substr(3, responseJson.data.length - 7),\n\t\t\t\t\t\tresponseJson.data\n\t\t\t\t\t\t\t.substr(1, responseJson.data.length - 4)\n\t\t\t\t\t\t\t.replace(/./g, \"*\")\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tsetVerifyPhoneTAC(true);\n\t\t\t\tsetIsForgetPassword(false);\n\t\t\t\tsetAttemp(attemp + 1);\n\t\t\t\tverifyState.button = verifyState.button + 1;\n\t\t\t\tsetCanSendTAC(false);\n\t\t\t\tclearTimeout(TACtimer);\n\t\t\t\tclearTimeout(timerPeriod);\n\t\t\t\tsetTACCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\t\t\t\tsetTACsent(true);\n\t\t\t\tsetTACtimedOut(false);\n\t\t\t\tsetCountdownPeriod(0);\n\t\t\t\tsetCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\t\t\t\tclearTimeout(TACtimer);\n\t\t\t\tclearTimeout(timerPeriod);\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsetCanSendTAC(true);\n\t\t\t\t\tsetCountdownTAC(true);\n\t\t\t\t}, _SECONDS_IN_MS * 60 * _TAC_TIMEOUT_IN_MINUTES);\n\n\t\t\t\t//resetForm();\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage({\n\t\t\t\t\t\tcustom: true,\n\t\t\t\t\t\tcustomIcon: (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t),\n\t\t\t\t\t\tcontent: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tsetIsTACLoading(false);\n\t}\n\n\tasync function submitNewPassword(data) {\n\t\t_dispatch(setBusy());\n\t\tlet formData = {\n\t\t\tnewpassword: data.newPassword,\n\t\t\tconfpassword: data.confPassword,\n\t\t\tusername: username,\n\t\t};\n\n\t\tlet formBody = createMultiPartFormBody(formData);\n\n\t\tvar responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_MEMBER_RESET_PASSWORD_BEFORE_LOGIN,\n\t\t\tformBody\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetIsUpdatePassword(false);\n\t\t\tsetIsPasswordUpdated(true);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\t_dispatch(setIdle());\n\t}\n\tasync function submitPasswordUpdated(data) {\n\t\tsetIsUpdatePassword(false);\n\t\tsetIsPasswordUpdated(false);\n\t\tsetIsLogin(true);\n\t\tsetIsModalVisible(false);\n\t}\n\n\tconst goToLogin = async (data, e) => {\n\t\t_dispatch(setRegisterModal(false));\n\t\t_dispatch(setLoginModal(true));\n\t};\n\n\tconst validateReferralCode = (e) => {\n\t\tvar regexp = /^[A-Za-z0-9]+$/i;\n\t\tif (e.nativeEvent.data === null || regexp.test(e.nativeEvent.data)) {\n\t\t\tsetReferralCode(e.target.value);\n\t\t}\n\t};\n\n\tconst onChangeUsername = useCallback(\n\t\tdebounce(async (e) => {\n\t\t\tvar regexp = /^[\\S]*^[^ \\[\\]`~\\/!@#$%^&*()\"':;?|{}=+_<>,.\\\\-]*$/g;\n\t\t\tif (e.nativeEvent.data === null || regexp.test(e.nativeEvent.data)) {\n\t\t\t\t_setUsername(e.target.value);\n\t\t\t}\n\t\t}, 500),\n\t\t[]\n\t);\n\n\tconst handleChange = (event) => {\n\t\t// Remove spaces and convert to lowercase\n\t\tconst newValue = event.target.value.replace(/\\s/g, \"\").toLowerCase();\n\t\t_setEmail(newValue);\n\t};\n\n\tuseEffect(() => {\n\t\tif (selectedChannel) {\n\t\t\tif (!stringIsNullOrEmpty(selectedChannel.attachment)) {\n\t\t\t\tsetToggleModal(true);\n\t\t\t}\n\t\t}\n\t}, [selectedChannel]);\n\n\tuseEffect(() => {\n\t\tconst parsedReferralCode = params.get(\"code\");\n\t\tif (parsedReferralCode != null && !heartBeat) {\n\t\t\t// getUpline(parsedReferralCode);\n\t\t\t_dispatch(setRegisterModal(true));\n\t\t\tsetReferralCode(parsedReferralCode);\n\t\t\t// setRegisterSteps(2);\n\t\t\tcheckIfReferralExist(parsedReferralCode);\n\t\t} else if (parsedReferralCode != null && heartBeat) {\n\t\t\t_dispatch(\n\t\t\t\tshowMessage({\n\t\t\t\t\t//KT: The company icons details not loaded when reach this point.\n\t\t\t\t\tcontent: t(\"ALREADY_LOGIN\"),\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t}, []);\n\n\tfunction handleClick(channel) {\n\t\tif (window.ReactNativeWebView) {\n\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\taction: \"chat\",\n\t\t\t\t\t//url: `${channel.actionUrl}`,\n\t\t\t\t\turl:\n\t\t\t\t\t\tchannel.actionUrl.match(/livechat/i) != null\n\t\t\t\t\t\t\t? `${window.location.origin}${channel.cta}`\n\t\t\t\t\t\t\t: `${channel.cta}`,\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\tsetToggleModal(false);\n\t\t\t\twindow.open(channel.cta, \"_blank\");\n\t\t\t\t// window.location.href = channel.cta;\n\t\t\t} else {\n\t\t\t\tsetSelectedChannel(channel);\n\t\t\t\tsetToggleModal(true);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst toggleDropDown = () => setDropdownOpen((prevState) => !prevState);\n\tconst onInitLanguage = (value) => {\n\t\t// console.log(\"onInitLanguage\", value);\n\t\tlet findLanguage = find(companyLanguages, { code: value });\n\t\tonChangeLanguage(findLanguage);\n\t};\n\tconst onClickLanguage = async (value) => {\n\t\tlet findLanguage = find(companyLanguages, { code: value });\n\t\tonChangeLanguage(findLanguage);\n\n\t\tlocalStorage.setItem(\"userSelectedLanguageCode\", findLanguage.code);\n\t\tlocalStorage.setItem(\"userSelectedLanguageCodeCreatedAt\", new Date());\n\n\t\tif (heartBeat) {\n\t\t\tlet data = {};\n\t\t\tdata[\"languageSetting\"] = findLanguage.code;\n\n\t\t\tawait ApiEngine.post(\n\t\t\t\tApiUrl._API_UPDATE_MEMBER_LANGUAGE,\n\t\t\t\tcreateMultiPartFormBody(data)\n\t\t\t);\n\n\t\t\t// KT: Why we call this? After change language we need to bindMember for language?\n\t\t\t// bindMember(_dispatch);\n\t\t}\n\t};\n\n\tconst onChangeLanguage = async (selectedLanguage) => {\n\t\tsetLanguageSelected(selectedLanguage);\n\n\t\tconst previousLocale = localStorage.getItem(SessionKey._LANGUAGE);\n\t\tif (selectedLanguage) {\n\t\t\ti18n.changeLanguage(selectedLanguage.code);\n\t\t\t_dispatch(saveLanguageId(selectedLanguage.code, true));\n\n\t\t\t// CHRIS_LOCALE: Update the URL to reflect the new language\n\t\t\tif (previousLocale !== selectedLanguage.code) {\n\t\t\t\tlet locationPathname = location.pathname;\n\n\t\t\t\t// Use the regex to replace the locale at the start of the pathname\n\t\t\t\tif (locationPathname.startsWith(`/${previousLocale}`)) {\n\t\t\t\t\tconst regex = new RegExp(`^/${previousLocale}(/|$)`);\n\t\t\t\t\tlocationPathname = location.pathname.replace(\n\t\t\t\t\t\tregex,\n\t\t\t\t\t\t`/${selectedLanguage.code}/`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// Ensure that the URL does not end with a slash, unless it's just the root \"/\"\n\t\t\t\tlocationPathname =\n\t\t\t\t\tlocationPathname === `/${selectedLanguage.code}/`\n\t\t\t\t\t\t? `/${selectedLanguage.code}`\n\t\t\t\t\t\t: locationPathname;\n\n\t\t\t\tlocationPathname += location.search;\n\n\t\t\t\t_history.replace(locationPathname);\n\n\t\t\t\t// CHRIS_LOCALE: Update the current locale in WebUrl\n\t\t\t\t// console.log(\"WebUrl.setCurrentLocale\", selectedLanguage.code);\n\t\t\t\tWebUrl.setCurrentLocale(selectedLanguage.code);\n\n\t\t\t\t// Create a custom event\n\t\t\t\tconst customEvent = new CustomEvent(\"changedLocale\", {\n\t\t\t\t\tdetail: { message: \"Changed locale!\" },\n\t\t\t\t});\n\n\t\t\t\t// Dispatch the event\n\t\t\t\twindow.dispatchEvent(customEvent);\n\t\t\t}\n\t\t}\n\t};\n\n\tasync function getRestore() {\n\t\tsetBalanceRefresh(true);\n\t\tlet responseJson = await ApiEngine.get(ApiUrl._API_RESTORE_ALL_WALLET);\n\n\t\t// KT: I dont see a point popping out \"Success\"\n\t\t/*_dispatch(\n\t\t\tshowResponseMessage(\n\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t)\n\t\t);*/\n\t\tbindMember(_dispatch);\n\t\tsetBalanceRefresh(false);\n\t}\n\n\tasync function getCompanyIcon() {\n\t\t_dispatch(setBusy());\n\t\tsetChatLoading(true);\n\n\t\tlet sideNavList = companyIcons.filter(\n\t\t\t(icon) => icon.iconCategory === \"side_nav\" && icon.iconName !== \"Spin Wheel Bonus\"\n\t\t );\n\t\t\n\t\tlet spinnerWheelMenu=companyIcons.find(\n\t\t\t(icon) => icon.iconCategory === \"side_nav\" && icon.iconName == \"Spin Wheel Bonus\"\n\t\t );\n\n\t\tlet affliateMenu=companyIcons.find(\n\t\t\t(icon) => icon.iconCategory === \"side_nav\" && icon.iconName == \"Affiliate\"\n\t\t ); \n\n\t\t setAffliateItem(affliateMenu)\n\n\t\tif(spinnerWheelMenu){\n setSpinWheelMenuItem(spinnerWheelMenu);\n\t\t}\n\n\t\tif (sideNavList) {\n\t\t\t// Remove Membership icon if membership is not enabled\n\t\t\tif (!membershipEnabled) {\n\t\t\t\t// Filter out the \"/membership\" path from the list\n\t\t\t\tsideNavList = filter(\n\t\t\t\t\tsideNavList,\n\t\t\t\t\t(item) => item.pathname !== \"/membership\"\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsetSideMenuList(sideNavList);\n\t\t}\n\n\t\tconst logo = find(companyIcons, { iconCategory: \"logo\" });\n\t\tif (logo) {\n\t\t\tsetLogo(logo.iconImage||logo.defaultImage);\n\t\t}\n\n\t\tconst smallLogo = find(companyIcons, { iconCategory: \"small_logo\" });\n\t\tif (smallLogo) {\n\t\t\tsetSmallLogo(smallLogo.iconImage||smallLogo.defaultImage);\n\t\t}\n\n\t\tconst alert = find(companyIcons, { iconCategory: \"alert\" });\n\t\tif (alert) {\n\t\t\tsetAlertIcon(alert.iconImage||alert.defaultImage);\n\t\t}\n\n\t\tconst profile = find(companyIcons, { iconCategory: \"profile\" });\n\t\tif (profile) {\n\t\t\tsetProfileIcon(profile.iconImage||profile.defaultImage);\n\t\t}\n\n\t\tconst loginBanner = find(companyIcons, { iconCategory: \"login_popup\" });\n\t\tif (loginBanner) {\n\t\t\tsetLoginBanner(loginBanner.iconImage||loginBanner.defaultImage);\n\t\t}\n\t\tsetChatLoading(false);\n\t\t_dispatch(setIdle());\n\t}\n\n\tasync function handleRegisterClick(channel) {\n\t\tif (window.ReactNativeWebView) {\n\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\taction: \"chat\",\n\t\t\t\t\t//url: `${channel.actionUrl}`,\n\t\t\t\t\turl:\n\t\t\t\t\t\tchannel.actionUrl.match(/livechat/i) != null\n\t\t\t\t\t\t\t? `${window.location.origin}${channel.url}`\n\t\t\t\t\t\t\t: `${channel.url}`,\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\tvar selectedReferralCode =\n\t\t\t\treferralCode == \"\" ? referralCodeString : referralCode;\n\t\t\tif (!stringIsNullOrEmpty(channel.url)) {\n\t\t\t\tsetToggleModal(false);\n\t\t\t\tlet referralString = \"\";\n\n\t\t\t\tif (stringIsNullOrEmpty(selectedReferralCode)) {\n\t\t\t\t\tvar defaultReferralCode = await ApiEngine.get(\n\t\t\t\t\t\tApiUrl._API_GET_MASTER_REFERRAL_CODE\n\t\t\t\t\t);\n\t\t\t\t\tif (defaultReferralCode[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t\treferralString = defaultReferralCode[ApiKey._API_DATA_KEY].code;\n\n\t\t\t\t\t\tselectedReferralCode = referralString;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_dispatch(\n\t\t\t\t\t\t\tshowResponseMessage(\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\tt(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\")\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\twindow.location.href = channel.url + selectedReferralCode;\n\t\t\t} else {\n\t\t\t\tsetSelectedChannel(channel);\n\t\t\t\tsetToggleModal(true);\n\t\t\t}\n\t\t}\n\t}\n\tconst handleImageError = (e) => {\n\t\t// setIsImageBroken(true);\n\t\te.target.style.display = \"none\";\n\t};\n\n\tfunction isNumber(value) {\n\t\treturn typeof value === \"number\" && Number.isFinite(value);\n\t}\n\n\t\n\tconst handleDownloadAPK = () => {\n\t\tlet bannerAPKUrl = bannerAPK?.url;\n\n\t\tif(!stringIsNullOrEmpty(bannerAPKUrl)){\n\t\t\tconst fileName = bannerAPKUrl.substring(bannerAPKUrl.lastIndexOf(\"/\") + 1);\n\t\t\tconst link = document.createElement(\"a\");\n\t\t\tlink.href = bannerAPKUrl;\n\t\t\tlink.download = fileName;\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t }\n\t};\n\n\tuseEffect(() => {\n\t\tconst handleResize = () => {\n\t\t\t// Check if url is on homepage\n\t\t\tif(location.pathname === \"/\" + localStorage.getItem(SessionKey._LANGUAGE) || location.pathname === \"/\" + localStorage.getItem(SessionKey._LANGUAGE) + \"/\") {\n\t\t\t\tsetAPKMobileBannerIsVisible(window.innerWidth <= 900 && bannerAPK?.displayMode === 2);\t\n\t\t\t} else {\n\t\t\t\tsetAPKMobileBannerIsVisible(false);\n\t\t\t}\n\t\t};\n\n\t\thandleResize();\n\t\twindow.addEventListener(\"resize\", handleResize);\n\t\t\n\t\treturn () => window.removeEventListener(\"resize\", handleResize);\n\t}, [window.location, bannerAPK]);\n\n\treturn (\n\t<>\n\t\t{/* Download APK Mobile Banner Top */}\n\t\t{bannerAPK != \"\" && APKMobileBannerIsVisible && (\n\t\t\t\n\t \t)}\n\n\t\t{/* Floating Chat */}\n\t\t\t\n\n\t\t\t{/* /////////t3 header */}\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t _dispatch(setOpenMenu(!openMenu))}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t _history.push(WebUrl._URL_MAIN)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{logo ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\n\n\t\t\t\t
\n\t\t\t\t\t{heartBeat == false ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t setShowModalLogin(true)}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t(\"LOGIN\")}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setShowModalRegister(true)}\n\t\t\t\t\t\t\t\tonClick={() => _dispatch(setRegisterModal(true))}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{t(\"REGISTER\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t// \n\t\t\t\t\t\t//
\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t_history.push(WebUrl._URL_SETTINGS);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{/* {\n\t\t\t\t\t\t\t\t\tisBalanceLoading ? \t\n\t\t\t\t\t\t\t\t\t\t() : \"\"\n\t\t\t\t\t\t\t\t\t\t} */}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t(\"BALANCE\")}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{!isNumber(walletBalance)\n\t\t\t\t\t\t\t\t\t\t\t\t? walletBalance\n\t\t\t\t\t\t\t\t\t\t\t\t: numberWithCurrencyFormat(walletBalance, 2, true)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
getRestore()}>\n\t\t\t\t\t\t\t\t\t{/* refresh */}\n\t\t\t\t\t\t\t\t\t{balanceRefresh ? (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t setShowDepositAndWithdrawPopup(true)}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\t_dispatch(setDepositModal(true));\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t(\"DEPOSIT\")}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{rolloverData &&\n\t\t\t\t\t\t\t\trolloverData.length > 0 &&\n\t\t\t\t\t\t\t\tmap(rolloverData, (item, index) => {\n\t\t\t\t\t\t\t\t\tif (item[\"rolloverTarget\"] === 0) {\n\t\t\t\t\t\t\t\t\t\treturn null; // Skip items with rolloverTarget as 0\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t///make changes to make negative not appear\n\t\t\t\t\t\t\t\t\tlet percentage;\n\t\t\t\t\t\t\t\t\tlet value = item[\"isLatestRecord\"] == 1 \n\t\t\t\t\t\t\t\t\t? (item[\"rolloverProgress\"] < 0 ? 0 : item[\"rolloverProgress\"]) \n\t\t\t\t\t\t\t\t\t: item[\"rolloverTarget\"];\n\n\t\t\t\t\t\t\t\t\tif (value == 0 && item[\"rolloverTarget\"] == 0) {\n\t\t\t\t\t\t\t\t\t\tpercentage = 0;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tpercentage = (value / item[\"rolloverTarget\"]) * 100;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tconst formattedPercentage = Math.round(percentage);\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"YOUR_ROLLOVER_PROGRESS_IS\")}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"isLatestRecord\"] == 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? item[\"rolloverProgress\"] < 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"rolloverProgress\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"rolloverTarget\"]}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/ {item[\"rolloverTarget\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\".\"}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{formattedPercentage}%\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t_history.push(WebUrl._URL_SETTINGS);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{_userData[\"username\"]}
\n\t\t\t\t\t\t\t\t\t{membershipEnabled && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{t(upperCase(_userData[\"vipName\"]))}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t// \n\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t{ bannerAPK?.displayMode===2 &&(\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t{companyLanguages && companyLanguages.length > 1 && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\t{languageSelected && languageSelected.icon ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{companyLanguages &&\n\t\t\t\t\t\t\t\t\tcompanyLanguages.length > 0 &&\n\t\t\t\t\t\t\t\t\tmap(companyLanguages, (item, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t onClickLanguage(item.code)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{item.icon ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"flag\"\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t)}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t setOpenMobileSideMenu(!openMobileSideMenu)}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t{/* /////////t3 side menu */}\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{dailyCheckInExist && (\n\t\t\t\t\t\t\t
{ \n\t\t\t\t\t\t\t\t\tif(heartBeat){\n\n\t\t\t\t\t\t\t\t\t\tif(dailyCheckInExist){\n\t\t\t\t\t\t\t\t\t\t\t_dispatch(setDailyCheckinModal(true))\n\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\t_dispatch(\n\t\t\t\t\t\t\t\t\t\t\t\tshowMessage({\n\t\t\t\t\t\t\t\t\t\t\t\t\tcustom: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\tcustomIcon: (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: t(\"DAILY_CHECKIN_EMPTY\")\n\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true))\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t(\"DAILY_BONUS_CLAIM\")}
\n\t\t\t\t\t\t\t\t\t{/*
{t(\"JOIN_DAILY_BONUS\")}
*/}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\n\n\t\t\t\t\t\t{ spinWheelMenuItem && shouldShowSpinWheel &&(\n\t\t\t\t\t\t\t
{ \n\t\t\t\t\t\t\t\t\t\t\tif(!heartBeat && showSpinWheelForGuest){\n\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\t_dispatch(setSpinWheelListModal(true));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
{t(\"SPIN_WHEEL_BONUS\")}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{ bannerAPK?.displayMode===2 &&(\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t(\"DOWNLOAD\")}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{musicPlayerEnabled &&\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{/* */}\n\n\t\t\t\t\t\t{sideMenuList &&\n\t\t\t\t\t\t\tsideMenuList.length &&\n\t\t\t\t\t\t\tmap(sideMenuList, (item, index) => {\n\t\t\t\t\t\t\t\t// CHRIS 20250107 TODO: Instead of using iconSettings to configure sideMenuList, create a separate sidenav menu list configurator, iconSettings only use for showing icon\n\t\t\t\t\t\t\t\t// Only apply this filtering criteria if availableProductCategories is not empty\n\t\t\t\t\t\t\t\tif(availableProductCategories.length > 0) {\n\t\t\t\t\t\t\t\t\t// Call sidenavitems to get only the available categories - hide categories that are not available\n\t\t\t\t\t\t\t\t\tlet availableProductCategory = availableProductCategories.filter((sidenavItem) => {\n\t\t\t\t\t\t\t\t\t\treturn sidenavItem.productCategory.title.trim() == item.iconName.trim();\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t// Ignore some items\n\t\t\t\t\t\t\t\t\tlet ignoreLinks = [\"Home\", \"Membership\", \"Referral\", \"Rebate\", \"Promotion\", \"Recent Game\", \"Affiliate\"];\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif(isHotGameEnabled){\n\t\t\t\t\t\t\t\t\t\tignoreLinks.push(\"Hot Games\")\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (!ignoreLinks.includes(item.iconName) && availableProductCategory.length == 0 ) {\n\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t// CHRIS_LOCALE: Ensure that locale is prepended\n\t\t\t\t\t\t\t\t\t\t\tvar locale = localStorage.getItem(SessionKey._LANGUAGE);\n\t\t\t\t\t\t\t\t\t\t\tlet itemPathname = stringIsNullOrEmpty(item[\"pathname\"])\n\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t: item[\"pathname\"];\n\t\t\t\t\t\t\t\t\t\t\titemPathname = locale\n\t\t\t\t\t\t\t\t\t\t\t\t? \"/\" + locale + itemPathname\n\t\t\t\t\t\t\t\t\t\t\t\t: itemPathname;\n\n\t\t\t\t\t\t\t\t\t\t\tif (heartBeat) {\n\t\t\t\t\t\t\t\t\t\t\t\t// Check if affiliate link\n\t\t\t\t\t\t\t\t\t\t\t\tif(item[\"iconName\"] == \"Affiliate\"){\n\t\t\t\t\t\t\t\t\t\t\t\t\t// open in new tab\n\t\t\t\t\t\t\t\t\t\t\t\t\twindow.open(affiliateLink, \"_blank\");\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t_history.push({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: itemPathname,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treference: item[\"iconName\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] == \"/recent-games\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(item[\"iconName\"] == \"Affiliate\"){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twindow.open(affiliateLink, \"_blank\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_history.push({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: stringIsNullOrEmpty(item[\"pathname\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"pathname\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treference: item[\"iconName\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
{t(item[\"iconName\"])}
\n\t\t\t\t\t\t\t\t\t\t{item[\"pathname\"] === \"/promotion\" &&\n\t\t\t\t\t\t\t\t\t\t\ttotalPromoClaimable > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{totalPromoClaimable}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t
\n\t\t\t\t\t\n\n\t\t\t\t\t{!chatLoading && (\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{/* {\n\t\t\t\t\t\t\t\t\t!isEmpty(affiliateLink) && !isEmpty(affliateItem) &&\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
{t(affliateItem.iconName)}
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t */}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t_dispatch(setOpenMenu(true));\n\t\t\t\t\t\t\t\t\t\t_history.push(WebUrl._URL_LIVECHAT);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{ position: \"relative\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t(\"LIVE_CHAT\")}
\n\t\t\t\t\t\t\t\t\t{unreadLivechat > 0 && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{unreadLivechat}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{channels && channels.length > 0 && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{map(channels, (channel, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (channel.name == \"Livechat\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsLiveChatOpen(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{map(channels, (channel, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.actionUrl)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (channel.name == \"Livechat\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsLiveChatOpen(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* {channels && channels.length > 0 && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
{t(\"SOCIAL_MEDIA\")}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{map(channels, (channel, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t} else if (channel.name == \"Livechat\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsLiveChatOpen(true);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{map(channels, (channel, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.actionUrl)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t} else if (channel.name == \"Livechat\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsLiveChatOpen(true);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)} */}\n\t\t\t\t\n\t\t\t\n\n\t\t\t{/* /////////t3 mobile menu pop.up */}\n\t\t\t{openMobileSideMenu && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"logo\"\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setOpenMobileSideMenu(!openMobileSideMenu)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdailyCheckInExist && (\n\t\t\t\t\t\t\t\t\t\t
{ \n\t\t\t\t\t\t\t\t\t\t\t\tif(heartBeat){\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif(dailyCheckInExist){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setDailyCheckinModal(true))\n\t\t\t\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tshowMessage({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcustom: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcustomIcon: (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: t(\"DAILY_CHECKIN_EMPTY\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonConfirm: () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// console.log(\"hi\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(!openMobileSideMenu)\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true))\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(false)\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
{t(\"DAILY_BONUS_CLAIM\")}
\n\t\t\t\t\t\t\t\t\t\t\t\t{/*
{t(\"JOIN_DAILY_BONUS\")}
*/}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t{musicPlayerEnabled && \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t setIsPlayPrevTrack(true)}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetPlayBtnClicked(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{isTrackPlaying ?\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t :\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t setIsPlayNextTrack(true)}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShuffleBtnClicked(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShuffleEnabled((prev) => !prev);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setMusicPlayerModal(true));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (setOpenMobileSideMenu) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{trackTitle}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{isTrackLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tformatTime(trackProgress)\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t{ spinWheelMenuItem && shouldShowSpinWheel &&(\n\t\t\t\t\t\t\t\t\t
{ \n\t\t\t\t\t\t\t\t\t\t\t\t\tif(!heartBeat && showSpinWheelForGuest){\n\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setSpinWheelListModal(true));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(false);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
{t(\"SPIN_WHEEL_BONUS\")}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{sideMenuList &&\n\t\t\t\t\t\t\t\t\tsideMenuList.length &&\n\t\t\t\t\t\t\t\t\tmap(sideMenuList, (item, index) => {\n\t\t\t\t\t\t\t\t\t\t// CHRIS 20250107 TODO: Instead of using iconSettings to configure sideMenuList, create a separate sidenav menu list configurator, iconSettings only use for showing icon\n\t\t\t\t\t\t\t\t\t\t// Only apply this filtering criteria if availableProductCategories is not empty\n\t\t\t\t\t\t\t\t\t\tif(availableProductCategories.length > 0) {\n\t\t\t\t\t\t\t\t\t\t\t// Call sidenavitems to get only the available categories - hide categories that are not available\n\t\t\t\t\t\t\t\t\t\t\tlet availableProductCategory = availableProductCategories.filter((sidenavItem) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn sidenavItem.productCategory.title.trim() == item.iconName.trim();\n\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t// Ignore some items\n\t\t\t\t\t\t\t\t\t\t\tvar ignoreLinks = [\"Home\", \"Membership\", \"Referral\", \"Rebate\", \"Promotion\", \"Recent Game\", \"Affiliate\"];\n\n\t\t\t\t\t\t\t\t\t\t\tif (!ignoreLinks.includes(item.iconName) && availableProductCategory.length == 0 ) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// CHRIS_LOCALE: Ensure that locale is prepended\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar locale = localStorage.getItem(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSessionKey._LANGUAGE\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\tlet itemPathname = stringIsNullOrEmpty(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem[\"pathname\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"pathname\"];\n\t\t\t\t\t\t\t\t\t\t\t\t\titemPathname = locale\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"/\" + locale + itemPathname\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: itemPathname;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (heartBeat) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(!openMobileSideMenu);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Check if affiliate link\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(item[\"iconName\"] == \"Affiliate\"){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// open in new tab\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twindow.open(affiliateLink, \"_blank\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_history.push({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: itemPathname,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treference: item[\"iconName\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] == \"/keno\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (item[\"pathname\"] == \"/promotion\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] == \"/recent-games\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(!openMobileSideMenu);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(!openMobileSideMenu);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Check if affiliate link\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(item[\"iconName\"] == \"Affiliate\"){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// open in new tab\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twindow.open(affiliateLink, \"_blank\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_history.push({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: itemPathname,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treference: item[\"iconName\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] == \"/keno\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
{t(item[\"iconName\"])}
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t{/* {\n\t\t\t\t\t\t\t\t\t\t!isEmpty(affiliateLink) && !isEmpty(affliateItem) && (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
{t(affliateItem.iconName)}
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t} */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{channels && channels.length > 0 && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
{t(\"SOCIAL_MEDIA\")}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{channels &&\n\t\t\t\t\t\t\t\t\t\tchannels.length &&\n\t\t\t\t\t\t\t\t\t\tmap(channels, (channel, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{process.env.REACT_APP_VERSION && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tBuild v{process.env.REACT_APP_VERSION}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{/* ///register pop.up */}\n\t\t\t {\n\t\t\t\t\t_dispatch(setRegisterModal(false));\n\t\t\t\t\t// setShowModalRegister(false);\n\t\t\t\t}}\n\t\t\t\tbackdrop={\"static\"}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"logo\"\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setShowModalRegister(!showModalRegister)}\n\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\tif (params.get(\"code\") != referralCode) {\n\t\t\t\t\t\t\t\t\t\tsetReferralCode(\"\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t_dispatch(setRegisterModal(false));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t{/*\t{t(\"BUILD_THE_BEST_CASINO_TOGETHER\")}*/}\n\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{registerSteps == 1 && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \t(await checkUsername(value)) ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \t(console.log(\"test\"), \"USERNAME_TAKEN\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpattern: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: /^(?=.*[A-Za-z0-9])[A-Za-z0-9]{4,9}$/i,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmessage: t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"USERNAME_REQUIRES_ALPHANUMERIC_WITH_LOWERCASE_MINIMUM_4_9_CHARACTERS_ONLY\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"loginUsername\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"username\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// value={_username.toLowerCase()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// onInput={(e) => validateUsername(e)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// onChange={onChangeUsername}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonInput={onChangeUsername}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"t3-custom-input-text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst key = e.key;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst allowedKeys = [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Backspace\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowLeft\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowRight\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Delete\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Tab\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Allow lowercase letters, numbers, and allowed keys\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!/[a-z0-9]/.test(key) &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!allowedKeys.includes(key)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (/[A-Z]/.test(key)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst start = e.target.selectionStart;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst end = e.target.selectionEnd;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Insert the lowercase version of the uppercase key\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.value =\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.value.slice(0, start) +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey.toLowerCase() +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.value.slice(end);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Adjust the cursor position to be after the inserted character\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.setSelectionRange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstart + 1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstart + 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Prevent any other unwanted key input\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* {isObjectEmpty(errors) &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisUsernameAvailable &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_username != \"\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"THIS_USERNAME_IS_AVAILABLE\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)} */}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedPhonePrefix(e.target.value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{PhoneNumberPrefix != undefined &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPhoneNumberPrefix.map((prefix, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{prefix.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst key = e.key;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst allowedKeys = [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Backspace\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowLeft\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowRight\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Delete\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Tab\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!/[0-9]/.test(key) &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!allowedKeys.includes(key)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Prevent '0' as the first character\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst inputValue = e.target.value;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (inputValue.length === 0 && key === \"0\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet newValue = e.target.value;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Remove all leading zeros\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnewValue = newValue.replace(/^0+/, '');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Call your original `onChange` function\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonchange(e);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Update the input field with the modified value\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.value = newValue;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t{phoneNumberError == true ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"NUMBER_NOT_AVAILABLE\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : errors.registerPhone ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.registerPhone.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst key = e.key;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst allowedKeys = [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Backspace\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowLeft\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowRight\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Delete\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"Tab\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!/[a-zA-Z0-9]/.test(key) &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!allowedKeys.includes(key)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors={errors}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"password\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"password\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype={hideLoginPassword ? \"password\" : \"text\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"t3-custom-input-text\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautocomplete=\"new-password\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetHideLoginPassword(!hideLoginPassword)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"REGISTER_PAGE_MIN_8_CHARS\")}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ONLY_LETTERS_NUMBERS_9\")}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"NO_SPECIAL_SYMBOLS\")}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t validateReferralCode(e)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={referralCode}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// disabled={true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{showCodeError && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"INVALID_REFERRAL_CODE\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t console.log(\"btnsubmit\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disableRegister}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{isRegisterLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tt(\"REGISTER\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ALREADY_HAVE_AN_ACCOUNT\")}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setRegisterModal(false));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOGIN_NOW\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t{registerSteps == 2 && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{registerStepsThreeFirst && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"VERIFY_YOUR_NUMBER\")}\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ENTER_THE_CODE_WE_SENT_TO\")}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{_emailText != \"\" ? _emailText : phoneNumber}.\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonKeyPress(value, index);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t// onChange={(value, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t// \tonKeyPress(value,index);\n\t\t\t\t\t\t\t\t\t\t\t\t\t// \t// setPinNumberFocused(index);\n\t\t\t\t\t\t\t\t\t\t\t\t\t// }}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t{TACsent && countdownPeriod != 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"TAC_SENT\")} {countdownPeriod}s\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t\t\t{pinLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t\t\t{countdownPeriod == 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"DIDNT_RECEIVE_A_CODE_TRY_OTHER_METHOD\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* {attemp == 1 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetRegisterStepsThreeFirst(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetRegisterStepsViaEmail(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={pinInputDisabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"RECEIVE_OTP_VIA_EMAIL\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{attemp == 2 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t setIsLiveChatOpen(true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={pinInputDisabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"CONTACT_CUSTOMER_SERVICE\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)} */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t{!registerStepsThreeFirst && registerStepsViaEmail && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{viaEmailLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tt(\"CONTINUE\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{registerSteps == 3 && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"REGISTRATION_COMPLETED\")}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t{/* KT: Maybe can replace this with welcoming msgs etc. \n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSubmit(goToLogin)();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{isLoginLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tt(\"LOGIN\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
*/}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{registerChannel && registerChannel.length > 0 && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{t(\"REGISTER_THROUGH_SOCIAL_MEDIA\")}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{map(registerChannel, (channel, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.url)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleRegisterClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\n\t\t\t{/* Seem Like Not Using Anymore */}\n\t\t\t {\n\t\t\t\t\tsetIsModalVisible(false);\n\t\t\t\t\tsetIsForgetPassword(true);\n\t\t\t\t\tsetVerifyPhoneTAC(false);\n\t\t\t\t\tsetIsUpdatePassword(false);\n\t\t\t\t\tsetIsPasswordUpdated(false);\n\t\t\t\t\tsetIsLogin(true);\n\t\t\t\t}}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"logo\"\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setIsModalVisible(!isModalVisible)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t{/*\t{t(\"BUILD_THE_BEST_CASINO_TOGETHER\")}*/}\n\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{verifyPhoneTAC && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t(\"PHONE_TAC_SEND_TO\")}\n\t\t\t\t\t\t\t\t\t\t\t{tempPhoneNum}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{TACsent && countdownPeriod != 0 && (\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"TAC_SENT\")} {countdownPeriod}s\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t (verifyState.button = \"1\")}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"CONTINUE\")}\n\t\t\t\t\t\t\t\t\t\t\t\t{isTACLoading ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t{countdownTAC && countdownPeriod == 0 && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"DIDNT_RECEIVE_A_CODE_TRY_OTHER_METHOD\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t\t\t{attemp == 1 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t (verifyState.button = 2)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"RECEIVE_OTP_VIA_EMAIL\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t{attemp == 2 && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t setIsLiveChatOpen(true)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"CONTACT_CUSTOMER_SERVICE\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{isUpdatePassword && (\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\twatch(\"confPassword\") == \"\" ||\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue != watch(\"confPassword\") ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"PASSWORD_MISMATCH\",\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\terrors={ResetPasswordErrors}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\twatch(\"newPassword\") == \"\" ||\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue != watch(\"newPassword\") ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"PASSWORD_MISMATCH\",\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\terrors={ResetPasswordErrors}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{isPasswordUpdated && (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"RESET_PASSWORD_SUCCESS\")}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsModalVisible(!isModalVisible);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetForgotPassword(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowModalLogin(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\n\t\t\t\n\t\t\t{bannerAPK != \"\" && bannerAPK?.displayMode === 1 && (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default Header;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { map, debounce, find, filter, upperCase, findIndex, get } from \"lodash\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tSessionKey,\n\tAlertTypes,\n} from \"../../util/Constant\";\nimport { Alert, Modal, ModalBody, Spinner } from \"reactstrap\";\nimport PinInput from \"react-pin-input\";\nimport Input from \"../../components/custom/Input\";\nimport { useForm } from \"react-hook-form\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tsetLoginModal,\n\tsetProvider,\n\tshowMessage,\n\tbindCompanyIcon,\n\tsetDepositModal,\n} from \"../../redux/AppAction.js\";\nimport SecureLS from \"secure-ls\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { stringIsNullOrEmpty } from \"../../util/Util\";\nimport FallBackImage from \"components/template_1/FallBackImage\";\nimport ProviderIcon, { ProviderIconDisplay } from \"components/custom/ProviderIcon\";\nfunction parseVersion(variable) {\n\t// Split the variable by dot.\n\tconst parts = variable.split(\".\");\n\n\t// Reassemble the parts as required.\n\tconst result = `${parts[0]}.${parseInt(parts[2])/1000}`;\n\n\treturn result;\n}\n\nconst preloadIcons = (icons) => {\n\ticons.forEach((icon) => {\n\t\tconst img = new Image();\n\t\timg.src = icon.image; // Preload inactive icon\n\n\t\tconst imgActive = new Image();\n\t\timgActive.src = icon.activeImage; // Preload active icon\n\t});\n };\n\nconst Footer = (props) => {\n\tvar { t } = useTranslation();\n\tvar _history = useHistory();\n\tvar _dispatch = useDispatch();\n\tconst location = useLocation();\n\tvar ls = new SecureLS();\n\tconst search = window.location.search;\n\tconst params = new URLSearchParams(search);\n\n\tconst openMenu = useSelector((state) => state.appState.openMenu);\n\tconst [currentWalletBalance, setCurrentWalletBalance] = useState(0);\n\tconst memberData = useSelector((state) => state.appState.member);\n\tvar { heartBeat } = useSelector((state) => state.authState);\n\tvar companyLanguages = useSelector((state) => state.appState.languages);\n\n\tconst [_username, _setUsername] = useState(\"\");\n\n\tconst _SECONDS_IN_MS = 1000;\n\tconst [TACtimer, setTACtimer] = useState(setTimeout(() => {}, 60000));\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst [TACcountdownPeriod, setTACCountdownPeriod] = useState(0);\n\n\tconst [_email, _setEmail] = useState(\"\");\n\tconst [_emailText, _setEmailText] = useState(\"\");\n\tconst channels = useSelector((state) => state.appState.channels);\n\tconst settingApiComplete = useSelector((state) => state.appState.settingApiComplete);\n\n\tconst [selectedChannel, setSelectedChannel] = useState();\n\tconst [toggleModal, setToggleModal] = useState();\n\tconst [openMobileSideMenu, setOpenMobileSideMenu] = useState(false);\n\n\tconst providerList = useSelector((state) => state.appState.provider);\n\tconst companyIcons = useSelector((state) => state.appState.companyIcons);\n\tconst [sideMenuList, setSideMenuList] = useState();\n\tconst [logo, setLogo] = useState();\n\tconst [alertIcon, setAlertIcon] = useState();\n\tconst [tabActive, setTabActive] = useState();\n\tconst [bottomNavList, setBottomNavList] = useState();\n\tconst [displayDefaultIcon,setDisplayDefaultIcon]=useState(false);\n\tconst [defaultIcon,setDefaultIcon]=useState();\n\n\tvar brandName = useSelector((state) => state.appState.brandName);\n\tvar totalPromoClaimable = useSelector((state) =>\n\t\tstate.authState.heartBeat ? state.authState.userData.totalPromoClaimable : 1\n\t);\n\tvar unreadLivechat = useSelector((state) =>\n\t\tstate.authState.heartBeat ? state.authState.userData.totalUnreadLivechat : 1\n\t);\n\n\tconst [footerSections, setFooterSections] = useState([]);\n\tconst [sectionSettings, setSectionSettings] = useState({});\n\tconst [activeLanguage, setActiveLanguage] = useState(\"\");\n\tconst [activeLanguageId, setActiveLanguageId] = useState(0);\n\tconst activeLanguageCode = useSelector(\n\t\t(state) => state.languageState.languageId\n\t);\n\tconst [defaultGameIcon, setDefaultGameIcon] = useState();\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tlocation.pathname === WebUrl._URL_PROMOTION ||\n\t\t\tlocation.pathname === WebUrl._URL_PROMOTION_INFO ||\n\t\t\tlocation.pathname.includes(\"/promo/\")\n\t\t\t//KT: Alamak two ppl do same, if use state?, user directly go into link I think cant get \"Promotion\"\n\t\t\t//location.pathname == WebUrl._URL_PROMOTION ||\n\t\t\t//location.pathname == WebUrl._URL_PROMOTION_INFO ||\n\t\t\t//location.state?.reference == \"Promotion\"\n\t\t) {\n\t\t\tlet navIndex = findIndex(bottomNavList, {\n\t\t\t\tpathname: WebUrl._URL_PROMOTION,\n\t\t\t});\n\t\t\tsetTabActive(navIndex);\n\t\t} else if (\n\t\t\tlocation.pathname === WebUrl._URL_REFERRAL ||\n\t\t\tlocation.pathname === WebUrl._URL_LIVECHAT ||\n\t\t\tlocation.pathname === WebUrl._URL_SETTINGS\n\t\t) {\n\t\t\tlet navIndex = findIndex(bottomNavList, {\n\t\t\t\tpathname: location.pathname,\n\t\t\t});\n\t\t\tsetTabActive(navIndex);\n\t\t} else {\n\t\t\tsetTabActive(0);\n\t\t}\n\t}, [location]);\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t}, _SECONDS_IN_MS);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tuseEffect(() => {\n\t\tif (TACcountdownPeriod > 0) {\n\t\t\tsetTACtimer(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = TACcountdownPeriod - 1;\n\t\t\t\t\tsetTACCountdownPeriod(tempPeriod);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [TACcountdownPeriod]);\n\n\tuseEffect(() => {\n\t\tif (selectedChannel) {\n\t\t\tif (!stringIsNullOrEmpty(selectedChannel.attachment)) {\n\t\t\t\tsetToggleModal(true);\n\t\t\t}\n\t\t}\n\t}, [selectedChannel]);\n\n\tuseEffect(() => {\n\t\tif (companyLanguages != undefined) {\n\t\t\tconst tempLangCode = get(companyLanguages[0], \"code\");\n\t\t\tconst tempLangId = get(companyLanguages[0], \"id\");\n\t\t\tif (\n\t\t\t\tlocalStorage.getItem(SessionKey._LANGUAGE) &&\n\t\t\t\tlocalStorage.getItem(SessionKey._LANGUAGE) !== \"undefined\"\n\t\t\t) {\n\t\t\t\tlet tempLang = companyLanguages.filter(\n\t\t\t\t\t(x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n\t\t\t\t)[0];\n\n\t\t\t\tif (tempLang != undefined) {\n\t\t\t\t\tsetActiveLanguage(tempLang.code);\n\t\t\t\t\tsetActiveLanguageId(tempLang.id);\n\t\t\t\t} else {\n\t\t\t\t\tsetActiveLanguage(tempLangCode);\n\t\t\t\t\tsetActiveLanguageId(tempLangId);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsetActiveLanguage(tempLangCode);\n\t\t\t\tsetActiveLanguageId(tempLangId);\n\t\t\t}\n\t\t} else {\n\t\t\tsetActiveLanguage(\"en\");\n\t\t\tsetActiveLanguageId(1);\n\t\t}\n\t}, [companyLanguages, activeLanguageCode]);\n\n\tuseEffect(() => {\n\t\tif (activeLanguageId > 0) {\n\t\t\tgetFooterSections();\n\t\t}\n\t}, [activeLanguageId]);\n\n\tuseEffect(() => {\n\t\tsetProvider(_dispatch);\n\t}, []);\n\n\tfunction handleClick(channel) {\n\t\tif (window.ReactNativeWebView) {\n\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\taction: \"chat\",\n\t\t\t\t\t//url: `${channel.actionUrl}`,\n\t\t\t\t\turl:\n\t\t\t\t\t\tchannel.actionUrl.match(/livechat/i) != null\n\t\t\t\t\t\t\t? `${window.location.origin}${channel.cta}`\n\t\t\t\t\t\t\t: `${channel.cta}`,\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\tsetToggleModal(false);\n\t\t\t\twindow.location.href = channel.cta;\n\t\t\t} else {\n\t\t\t\tsetSelectedChannel(channel);\n\t\t\t\tsetToggleModal(true);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function getCompanyIcon() {\n\t\t_dispatch(setBusy());\n\t\tconst sideNavList = filter(companyIcons, { iconCategory: \"side_nav\" });\n\t\tif (sideNavList) {\n\t\t\tsetSideMenuList(sideNavList);\n\t\t}\n\n\t\tconst bottomNavList = filter(companyIcons, { iconCategory: \"bottom_nav\" });\n\n\t\t// const defaultBottomNavIcon = filter(companyIcons, { iconCategory: \"default_bottomnav_icon\" });\n\n\t\t// setDefaultIcon(defaultBottomNavIcon[0]?.iconImage);\n\n\t\tif (bottomNavList && bottomNavList.length > 0) {\n\t\t\tconst bottomNav = [];\n\n\t\t\tbottomNavList.map((x) => {\n\t\t\t\tconst defaultIcon = _BOTTOM_NAV_LIST.find(item => item.title === x.iconName) || {};\n\n\t\t\t\tconst sanitizedIconName = x.iconName.replace(/\\s*\\([^)]*\\)\\s*$/, \"\");\n\n\t\t\t\tbottomNav.push({\n\t\t\t\t\ttitle: sanitizedIconName,\n\t\t\t\t\tpathname: x.pathname ? \"/\" + WebUrl.getCurrentLocale() + x.pathname : defaultIcon.pathname,\n\t\t\t\t\timage: x.iconImage ? x.iconImage : defaultIcon?.image,\n\t\t\t\t\tactiveImage: x.activeIconImage ? x.activeIconImage : x.iconImage ? x.iconImage : defaultIcon?.activeImage,\n\t\t\t\t\tsubLink: [],\n text: _BOTTOM_NAV_LIST.filter(y => x.iconName && y.title === sanitizedIconName)[0].text || sanitizedIconName\n\t\t\t\t\t\t// .filter(y => x.iconName && y.title === sanitizedIconName)\n\t\t\t\t\t\t// .map(z => z.text) // take only the text from the filtered array\n\t\t\t\t\t\t// .join('') // Convert from array to string\n\t\t\t\t});\n\t\t\t});\n\t\t\tsetBottomNavList(bottomNav);\n\t\t\tpreloadIcons(bottomNav);\t\t\t\n\t\t}else{\n\t\t\tconst bottomNav = [];\n\n\t\t\t// setDisplayDefaultIcon(true);\n\n\t\t\t_BOTTOM_NAV_LIST.map((x)=>{\n\t\t\t\tconsole.log(x)\n\t\t\t\tbottomNav.push({\n\t\t\t\t\ttitle: x.title,\n\t\t\t\t\tpathname: x.pathname,\n\t\t\t\t\timage: x.image,\n\t\t\t\t\tactiveImage: x.activeImage,\n\t\t\t\t\tsubLink: [],\n text: x.text\n\t\t\t\t});\n\t\t\t})\n\t\t\tsetBottomNavList(bottomNav);\n\n\t\t}\n\n\t\tconst logo = find(companyIcons, { iconCategory: \"logo\" });\n\t\tif (logo) {\n\t\t\tsetLogo(logo.iconImage||logo.defaultImage);\n\t\t}\n\n\t\tconst alert = find(companyIcons, { iconCategory: \"alert\" });\n\t\tif (alert) {\n\t\t\tsetAlertIcon(alert.iconImage||alert.defaultImage);\n\t\t}\n\n\t\tconst defaultGameIconTemp = filter(companyIcons, (icon) => {\n\t\t\treturn icon.iconCategory === \"default_game_icon\";\n\t\t});\n\t\tif (defaultGameIconTemp) {\n\t\t\tsetDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n\t\t}\n\n\t\t_dispatch(setIdle());\n\t}\n\n\tconst currentYear = new Date().getFullYear();\n\n\tfunction handleClick(channel) {\n\t\tif (window.ReactNativeWebView) {\n\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\tJSON.stringify({\n\t\t\t\t\taction: \"chat\",\n\t\t\t\t\t//url: `${channel.actionUrl}`,\n\t\t\t\t\turl:\n\t\t\t\t\t\tchannel.actionUrl.match(/livechat/i) != null\n\t\t\t\t\t\t\t? `${window.location.origin}${channel.cta}`\n\t\t\t\t\t\t\t: `${channel.cta}`,\n\t\t\t\t})\n\t\t\t);\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\tsetToggleModal(false);\n\t\t\t\t// window.location.href = channel.cta;\n\t\t\t\twindow.open(channel.cta, \"_blank\");\n\t\t\t} else {\n\t\t\t\tsetSelectedChannel(channel);\n\t\t\t\tsetToggleModal(true);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction validateFooterSections(sections) {\n\t\tif (typeof sections.id !== \"number\") return false;\n\t\tif (typeof sections.title !== \"string\") return false;\n\t\tif (typeof sections.settings !== \"string\") return false;\n\n\t\tconst sectionJson = JSON.parse(sections.settings);\n\n\t\tif (typeof sectionJson !== \"object\") return false;\n\n\t\tconst result = sectionJson.every((x) => {\n\t\t\tif (typeof x.type !== \"string\") return false;\n\t\t\tif (typeof x.blocks !== \"object\") return false;\n\t\t\tif (typeof x.block_order !== \"object\") return false;\n\t\t\tif (typeof x.settings !== \"object\") return false;\n\t\t\treturn true;\n\t\t});\n\n\t\tif (!result) return false;\n\n\t\treturn true;\n\t}\n\n\tasync function getFooterSections() {\n\t\ttry {\n\t\t\tlet responseJson = await ApiEngine.get(\n\t\t\t\tApiUrl._API_GET_THEME_SECTION_BY_HANDLE + \"?handle=footer&languageId=\" + activeLanguageId\n\t\t\t);\n\t\t\tif (\n\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY] &&\n\t\t\t\tObject.keys(responseJson[ApiKey._API_DATA_KEY]).length > 0\n\t\t\t) {\n\t\t\t\tlet footerSections = responseJson[ApiKey._API_DATA_KEY];\n\n\t\t\t\tif (validateFooterSections(footerSections)) {\n\t\t\t\t\tsetFooterSections(footerSections);\n\t\t\t\t} else {\n\t\t\t\t\t// console.error(\"Invalid footer section structure\", footerSections);\n\t\t\t\t\t// Handle invalid structure, e.g., set an error state or fallback\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// console.error(\"Error fetching footer sections:\", error);\n\t\t\t// Handle error, e.g., set an error state or retry\n\t\t}\n\t}\n\n\t// Set defaults\n\tconst _BOTTOM_NAV_LIST = [\n\t\t\n {\n title: \"Home\",\n\t\t\ttext: \"HOME\",\n\t\t\tpathname: WebUrl._URL_HOME,\n\t\t\timage: `${require('../../assets/img/icon/icon-bottom-home.svg')}`,\n\t\t\tactiveImage: `${require('../../assets/img/icon/icon-bottom-home.svg')}`\n },\n {\n title: \"Referral\",\n\t\t\ttext: \"REFERRAL\",\n\t\t\tpathname: WebUrl._URL_REFERRAL,\n\t\t\timage: require('../../assets/img/icon/icon-bottom-referral.svg'),\n\t\t\tactiveImage: require('../../assets/img/icon/icon-bottom-referral.svg')\n },\n {\n title: \"Promotions\",\n\t\t\t text: \"PROMOTION\",\n\t\t\t pathname: WebUrl._URL_PROMOTION,\n\t\t\t image: require('../../assets/img/icon/icon-bottom-promo.svg'),\n\t\t\t activeImage: require('../../assets/img/icon/icon-bottom-promo.svg')\n\n },\n {\n title: \"Livechat\",\n\t\t\ttext: \"LIVECHAT\",\n\t\t\tpathname: WebUrl._URL_LIVE_CHAT,\n\t\t\timage: require('../../assets/img/icon/icon-bottom-livechat.svg'),\n\t\t\tactiveImage: require('../../assets/img/icon/icon-bottom-livechat.svg')\n\n },\n {\n title: \"Account\",\n\t\t\ttext: \"ACCOUNT\",\n\t\t\tpathname: WebUrl._URL_SETTINGS,\n\t\t\timage: require('../../assets/img/icon/icon-bottom-account.svg'),\n\t\t\tactiveImage: require('../../assets/img/icon/icon-bottom-account.svg')\n\n }\n ];\n\n\tconst sanitizeUrls = (settings, translatedSettings) => {\n\t\tif (!settings.blocks) {\n\t\t\treturn settings;\n\t\t}\n\n\t\tif (translatedSettings && translatedSettings.length !== 0) {\n\t\t\tvar translatedSettingsBlock = settings.blocks.map((b, index) => {\n\t\t\t\tvar match = translatedSettings[b.id];\n\t\t\t\t\treturn {\n\t\t\t\t\t...b,\n\t\t\t\t\tsettings : match ? match : b.settings,\n\t\t\t\t\tdefaultSettings : settings.blocks[index].settings,\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tsettings.blocks = translatedSettingsBlock;\n\t\t}\n\n\t\tsettings.blocks = Object.entries(settings.blocks).reduce(\n\t\t\t(acc, [block_id, block]) => {\n\t\t\t\tif (block && block.type === \"link_list\") {\n\t\t\t\t\tObject.entries(block.settings.links).forEach(([link_key, link]) => {\n\t\t\t\t\t\tif (!link.url) return; // Skip if URL is missing\n\n\t\t\t\t\t\t// Sanitize URL\n\t\t\t\t\t\tlink.url = link.url.replace(\"http://\", \"https://\");\n\n\t\t\t\t\t\t// CHRIS: Don't sanitize here - we should sanitize and redirect at the app level in case people browse to http://\n\t\t\t\t\t\t// if (!link.url.match(/^https?:\\/\\//)) {\n\t\t\t\t\t\t// \tlink.url = 'https://' + link.url;\n\t\t\t\t\t\t// }\n\t\t\t\t\t});\n\t\t\t\t} else if (block && block.type === \"image\") {\n\t\t\t\t\tif (typeof block.settings.image === \"string\") {\n\t\t\t\t\t\tblock.settings.image = block.settings.image.replace(\n\t\t\t\t\t\t\t\"http://\",\n\t\t\t\t\t\t\t\"https://\"\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tacc[block_id] = block;\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\n\t\treturn settings;\n\t};\n\n\tuseEffect(() => {\n\t\tif (Object.keys(footerSections).length) {\n\t\t\tvar parsedSettings = JSON.parse(footerSections.settings);\n\t\t\tvar parsedTranslatedSettings = JSON.parse(footerSections.translatedSettings);\n\n\t\t\tsetSectionSettings(sanitizeUrls(parsedSettings[0], parsedTranslatedSettings));\n\t\t}\n\t}, [footerSections]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{/* \n\t\t\t\t\t\t\tTODO: - Chris\n\t\t\t\t\t\t\t- Create a 2nd style for footer navigation (to accommodate for menus with very few links)\n\t\t\t\t\t\t\t- Single line centered navigation menu\n\t\t\t\t\t\t*/}\n\t\t\t\t\t\t{sectionSettings &&\n\t\t\t\t\t\t\tsectionSettings.block_order &&\n\t\t\t\t\t\t\tsectionSettings.block_order.length > 0 && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{sectionSettings.block_order.map((block_id, index) => {\n\t\t\t\t\t\t\t\t\t\tconst block = find(sectionSettings.blocks, {\n\t\t\t\t\t\t\t\t\t\t\tid: block_id,\n\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\tif(block.defaultSettings?.disabled) {\n\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif (block.type === \"link_list\") {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{block.settings.heading ? block.settings.heading : block.defaultSettings.heading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{Object.keys(block.settings.links).map(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(link_key, link_index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst link = block.settings.links[link_key];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst defaultLink = block.defaultSettings?.links.find(linkItem => linkItem.id == link_key);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \t{link.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// TODO: Chris\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Add a checker link.internalLink to see if the link is internal or external\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// If external, use , if internal, use \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{link.name ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{link.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{defaultLink?.name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else if (block.type === \"image\") {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{block && block.settings.image ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else if (block.type === \"rich_text\") {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{block.settings.heading ? block.settings.heading : block.defaultSettings.heading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{block.settings.content ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \twindow.location.href = block.url;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>
\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \twindow.location.href = block.url;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// }}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>
\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{providerList?.length>0 && \n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{providerList &&\n\t\t\t\t\t\t\t\t\tproviderList.length>0 &&\n\t\t\t\t\t\t\t\t\tmap(providerList, (item, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\titem && (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
*/}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{!settingApiComplete ? (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tsettingApiComplete &&\n\t\t\t\t\t\t\t\t\t\tchannels &&\n\t\t\t\t\t\t\t\t\t\tchannels.length > 0 &&\n\t\t\t\t\t\t\t\t\t\tmap(channels, (item, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(item.cta)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(item);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

0) ? '15px' : '5px',\n }}>{t(\"FOOTER_NOTES\")}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t©{currentYear} {brandName.toUpperCase()}. All rights reserved. | 18+ {process.env.REACT_APP_VERSION && (| v{parseVersion(process.env.REACT_APP_VERSION)})}\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t{/* /////////t3 footer */}\n\n\t\t\t{/* /////////t3 mobile bottom nav */}\n\t\t\t
\n \n\t\t\t {/* {\n displayDefaultIcon?(\n\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t):( */}\n\t\t\t\t\t{bottomNavList &&\n\t\t\t\t\t\tbottomNavList.length > 0 &&\n\t\t\t\t\tmap(bottomNavList, (item, index) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t_dispatch(setDepositModal(false));\n\t\t\t\t\t\t\t\t\t\tif (heartBeat) {\n\t\t\t\t\t\t\t\t\t\t\t_history.push({ // Chris: We use history.push instead of history.replace because it allows users to reliably go back or forwards\n\t\t\t\t\t\t\t\t\t\t\t\tpathname: item.pathname,\n\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\treference: item.state,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", index);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] !== \"/\"+WebUrl.getCurrentLocale()+ \"/settings\") {\n\t\t\t\t\t\t\t\t\t\t\t\t_history.push({\n\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: stringIsNullOrEmpty(item[\"pathname\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"pathname\"],\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", index);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t// backgroundImage: `url(\"${item[\"activeImage\"]}\")`,\n\t\t\t\t\t\t\t\t\t\t// backgroundSize:`${\n\t\t\t\t\t\t\t\t\t\t// \t\titem.text\n\t\t\t\t\t\t\t\t\t\t// \t\t\t? \"30px\"\n\t\t\t\t\t\t\t\t\t\t// \t\t\t: \"35px\"\n\t\t\t\t\t\t\t\t\t\t// \t}`\n\t\t\t\t\t\t\t\t\t\t// background: `url(\"${\n\t\t\t\t\t\t\t\t\t\t// \ttabActive === index\n\t\t\t\t\t\t\t\t\t\t// \t\t? item[\"activeImage\"]\n\t\t\t\t\t\t\t\t\t\t// \t\t: item[\"inactiveImage\"]\n\t\t\t\t\t\t\t\t\t\t// }\") center center / contain no-repeat`,\n\t\t\t\t\t\t\t\t\t\t// width: \"100%\",\n\t\t\t\t\t\t\t\t\t\t// height: \"68px\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t> \n\t\t\t\t\t\t\t\t {/*
\n\t\t\t\t\t\t\t\t\t
*/}\n\t \n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t{item[\"pathname\"] == WebUrl._URL_LIVECHAT && unreadLivechat > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{unreadLivechat}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t{item[\"pathname\"] == WebUrl._URL_PROMOTION && totalPromoClaimable > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{totalPromoClaimable}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{item.text && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{t(item.text)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t{/* )\n\n\t\t\t } */}\n\t\t\t\t\n\t\t\t\n\n\t\t\t{/* /////////t3 mobile menu pop.up */}\n\t\t\t{openMobileSideMenu && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"logo\"\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t setOpenMobileSideMenu(!openMobileSideMenu)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{sideMenuList &&\n\t\t\t\t\t\t\t\t\tsideMenuList.length > 0 &&\n\t\t\t\t\t\t\t\t\tmap(sideMenuList, (item, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (heartBeat) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(!openMobileSideMenu);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_history.replace({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: stringIsNullOrEmpty(item[\"pathname\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"pathname\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treference: item[\"iconName\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] == \"/keno\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else if (item[\"pathname\"] == \"/promotion\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] == \"/recent-games\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_dispatch(setLoginModal(true));\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetOpenMobileSideMenu(!openMobileSideMenu);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_history.replace({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpathname: stringIsNullOrEmpty(item[\"pathname\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"pathname\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treference: item[\"iconName\"],\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item[\"pathname\"] == \"/keno\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem(\"defaultActiveNav\", 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
{t(item[\"iconName\"])}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
{t(\"SOCIAL_MEDIA\")}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{channels &&\n\t\t\t\t\t\t\t\t\tchannels.length &&\n\t\t\t\t\t\t\t\t\tmap(channels, (channel, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (!stringIsNullOrEmpty(channel.cta)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleClick(channel);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default Footer;\n","import React from \"react\";\n\n/**\n * Author: -\n */\nconst InfoBox = React.forwardRef((props, ref) => {\n\tconst {\n\t\tname,\n\t\tclassName=\"\",\n\t\tcontainerClassName = \"\",\n\t\ticonClassName = \"\",\n\t\tcontentClassName = \"\",\n\t\tcontent=\"\",\n\t\ttype=\"default\",\n\t\t...rest\n\t} = props;\n\n\tconst typeConfig = {\n\t\tnotice: {\n\t\t iconColor: \"#FF0000\",\n\t\t textColor: \"#FF0000\",\n\t\t highlightColor: \"#FF493F\",\n\t\t bgColor: \"rgba(100, 0, 0, 0.3)\"\n\t\t},\n\t\tdanger: {\n\t\t iconColor: \"#FF0000\",\n\t\t textColor: \"#FF0000\",\n\t\t highlightColor: \"#FF493F\",\n\t\t bgColor: \"rgba(100, 0, 0, 0.3)\"\n\t\t},\n\t\tdefault: {\n\t\t iconColor: \"#FF0000\",\n\t\t textColor: \"#FF0000\",\n\t\t highlightColor: \"#FF493F\",\n\t\t bgColor: \"rgba(100, 0, 0, 0.3)\"\n\t\t}\n\t};\n\n\tconst { iconColor, textColor, highlightColor, bgColor } = typeConfig[type] || typeConfig.default;\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{/* */}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{content}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n});\n\nexport default InfoBox;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { ApiKey,ClientTemplates } from \"../../util/Constant\";\nimport * as Util from \"../../util/Util\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showMessage, showResponseMessage } from \"../../redux/AppAction\";\nimport { setPageSize, setY, setBusy, setIdle } from \"../../redux/AppAction.js\";\nimport { useTranslation } from \"react-i18next\";\nimport ApiEngine from \"../../util/ApiEngine\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport axios from \"axios\";\nimport AbortController from \"abort-controller\";\nimport { find } from \"lodash\";\n\n/// \n/// Author: -\n/// \nconst DynamicLoadTable = (props) => {\n\tconst { t, i18n } = useTranslation();\n\tvar _supportInfiniteLoading = props[\"infiniteLoadEnable\"] ?? true;\n\tconst _dispatch = useDispatch();\n\tconst [dataList, setDataList] = useState([]);\n\tconst [totalRecords, setTotaRecords] = useState(0);\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [searchEnabled, setSearchEnabled] = useState(false);\n\tconst [autoscrollEnabled, setAutoscrollEnabled] = useState(false);\n\n\tconst [apiQuery, setApiQuery] = useState(props[\"apiQuery\"]);\n\tconst [title, setTitle] = useState(\"TOTAL_RECORD\");\n\tconst [isTable, setIsTable] = useState(false);\n\tconst y = useSelector((state) => state.appState.y);\n\n\tconst _DEFAULT_PAGE_SIZE = 20;\n\n\tconst [pageSize, setPageSize] = useState(_DEFAULT_PAGE_SIZE);\n\tconst [template, setTemplate] = useState('template_1')\n\tconst latestApiQuery = useRef(props.apiQuery);\n\t// AbortController scoped to the component or module\n\tconst abortControllerRef = useRef(null); \n\tconst companyIcons = useSelector((state) => state.appState.companyIcons);\n\tconst [noDataBg, setNoDataBg] = useState();\n\n\tconst [triggerCount, setTriggerCount] = useState(0);\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n\tasync function getCompanyIcon() {\n\t\t_dispatch(setBusy());\n\t\tconst noDataBg = find(companyIcons, { iconCategory: \"no_data_background\" });\n\t\tif (noDataBg) {\n\t\t\tsetNoDataBg(noDataBg.iconImage||noDataBg.defaultImage);\n\t\t}\n\t\t_dispatch(setIdle());\n\t}\n\n\tuseEffect(() => {\n\t\tif (!Util.stringIsNullOrEmpty(props[\"apiQuery\"])) {\n\t\t\tsetDataList([]);\n\t\t\tsetTitle(props[\"title\"]);\n\t\t\tsetApiQuery(props[\"apiQuery\"]);\n\t\t}\n\t}, [props[\"apiQuery\"]]);\n\n\t/// \n\t/// Author: -\n\t/// \n\tuseEffect(() => {\n\t\tsetSearchEnabled(props[\"searchEnabled\"]);\n\t\tif (!props[\"searchEnabled\"]) {\n\n\t\t\tsetDataList([]);\n\t\t}\n\n\t\tif (props[\"autoscrollEnabled\"]) {\n\t\t\tsetAutoscrollEnabled(props[\"autoscrollEnabled\"]);\n\t\t}\n\n\t\tif (props[\"isTable\"]) {\n\t\t\tsetIsTable(props[\"isTable\"]);\n\t\t}\n\t}, [props[\"searchEnabled\"]]);\n\n\t/// \n\t/// Author: -\n\t/// \n\tuseEffect(() => {\n\t\tif (props[\"returnRecord\"]) {\n\t\t\tprops.returnRecord(dataList);\n\t\t}\n\n\t}, [dataList]);\n\n\tuseEffect(() => {\n\t\tif (props[\"totalRecords\"]) {\n\t\t\tprops.totalRecords(totalRecords);\n\t\t}\n\t}, [dataList, totalRecords]);\n\n\t/// \n\t/// Author: -\n\t/// \n\tuseEffect(() => {\n\t\tsetPageSize(props[\"pageSize\"] ? props[\"pageSize\"] : _DEFAULT_PAGE_SIZE);\n\t}, [props[\"pageSize\"]]);\n\n\t/// \n\t/// Author: -\n\t/// \n\tuseEffect(() => {\n\t\tlet templateFilter = ClientTemplates.filter((x) => x.hostname == window.location.hostname)[0]\n\t\t?.template ?? \"template_1\"\n\t\tsetTemplate(templateFilter)\n\t\tif (!Util.stringIsNullOrEmpty(apiQuery)) {\n\t\t\tgetDataList();\n\t\t}\n\t}, [apiQuery, searchEnabled, pageSize]);\n\n\t/// \n\t/// Author: -\n\t/// \n\tuseEffect(() => {\n\t\tif (_supportInfiniteLoading) {\n\t\t\t// Reset trigger count when dataList is reset to first page\n\t\t\tif(dataList.length <= pageSize){\n\t\t\t\tsetTriggerCount(0);\n\t\t\t}\n\n\t\t\t// var container = document.querySelector('.page-content-full-height');\n\t\t\t// container.addEventListener(\"scroll\", onScrollHandler);\n\n\t\t\twindow.addEventListener(\"scroll\", onScrollHandler);\n\n\t\t\tconst popUpModalId = document.getElementById('modalBody');\n\n\t\t\tif (popUpModalId) {\n\t\t\t\tpopUpModalId.addEventListener(\"scroll\", onScrollHandlerModal);\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\twindow.removeEventListener(\"scroll\", onScrollHandler);\n\t\t\t\t// container.removeEventListener(\"scroll\", onScrollHandler);\n\n\t\t\t\tif (popUpModalId) {\n\t\t\t\t\tpopUpModalId.removeEventListener(\"scroll\", onScrollHandlerModal);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}, [dataList, totalRecords, isLoading, pageSize]);\n\n\tuseEffect(() => {\n\t\tcheckTriggerInfiniteLoading('.t3-game-list-box');\n\t}, [triggerCount]);\n\n\tasync function onScrollHandlerModal() {\n\t\tif (isLoading) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar popUpModalId = document.getElementById('modalBody');\n\n\t\tconst windowHeight = popUpModalId.clientHeight\n\t\tconst docHeight = Math.max(\n\t\t\tpopUpModalId.scrollHeight,\n\t\t\tpopUpModalId.offsetHeight,\n\t\t\tpopUpModalId.clientHeight,\n\t\t);\n\n\t\tconst windowBottom = windowHeight + Math.ceil(popUpModalId.scrollTop);\n\n\t\tif (autoscrollEnabled && popUpModalId.scrollTop > 0) {\n\t\t\t_dispatch(setY(popUpModalId.scrollTop));\n\t\t}\n\n\t\tif (popUpModalId) {\n\t\t\tconst modalElement = document.getElementById('modalBody');\n\t\t\tconst modalBottom = modalElement.scrollHeight - modalElement.clientHeight;\n\t\t\tconst modalScroll = Math.ceil(modalElement.scrollTop);\n\n\t\t\tif (modalScroll >= modalBottom && !isLoading) {\n\t\t\t\tif (dataList.length < totalRecords) {\n\t\t\t\t\tmodalElement.scrollTo({ top: modalBottom, behavior: 'smooth' });\n\t\t\t\t\tsetIsLoading(true)\n\t\t\t\t\tgetDataList(dataList);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (windowBottom >= docHeight && !isLoading) {\n\t\t\tif (dataList.length < totalRecords) {\n\t\t\t\tsetIsLoading(true)\n\t\t\t\tgetDataList();\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function onScrollHandler() {\n\t\tif (isLoading) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Chris - use this instead\n\t\tcheckTriggerInfiniteLoading('.t3-game-list-box');\n\n\t\tvar container = document.querySelector('.page-content-full-height');\n\n\t\t// const windowHeight =\n\t\t// \t\"innerHeight\" in window\n\t\t// \t\t? window.innerHeight\n\t\t// \t\t: document.documentElement.offsetHeight;\n\t\t// const body = document.body;\n\t\t// const html = document.documentElement;\n\t\t// const docHeight = Math.max(\n\t\t// \tbody.scrollHeight,\n\t\t// \tbody.offsetHeight,\n\t\t// \thtml.clientHeight,\n\t\t// \thtml.scrollHeight,\n\t\t// \thtml.offsetHeight\n\t\t// );\n\n\t\t// const windowBottom = windowHeight + Math.ceil(window.pageYOffset);\n\n\t\tconst windowHeight = container.clientHeight\n\t\tconst docHeight = Math.max(\n\t\t\tcontainer.scrollHeight,\n\t\t\tcontainer.offsetHeight,\n\t\t\tcontainer.clientHeight,\n\t\t);\n\n\t\tconst windowBottom = windowHeight + Math.ceil(container.scrollTop);\n\n\t\tif (autoscrollEnabled && container.scrollTop > 0) {\n\t\t\t_dispatch(setY(container.scrollTop));\n\t\t}\n\n\t\tvar popUpModalId = document.getElementById('t3-custom-modal-withdraw');\n\n\t\tif (popUpModalId) {\n\t\t\tconst modalElement = document.getElementById('popUpModal');\n\n\t\t\tif(modalElement){\n\t\t\tconst modalBottom = modalElement.scrollHeight - modalElement.clientHeight;\n\t\t\tconst modalScroll = Math.ceil(modalElement.scrollTop);\n\n\t\t\t// if (windowBottom >= windowHeight && !isLoading) {\n\t\t\t// \tif (dataList.length < totalRecords) {\n\t\t\t// \t\tgetDataList(dataList);\n\t\t\t// \t}\n\t\t\t// }\n\n\t\t\tif (modalScroll >= modalBottom && !isLoading) {\n\t\t\t\tif (dataList.length < totalRecords) {\n\t\t\t\t\tmodalElement.scrollTo({ top: modalBottom, behavior: 'smooth' });\n\t\t\t\t\tgetDataList();\n\t\t\t\t}\n\t\t\t}\n\t\t }\n\t\t} else if (windowBottom >= docHeight && !isLoading) {\n\t\t\tif (dataList.length < totalRecords) {\n\t\t\t\tgetDataList();\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction checkTriggerInfiniteLoading(elem) {\n\t\t// Chris: do not look for the end of the page-content-full-height, we look for the div that contains the content\n\t\tvar listContainer = document.querySelector(elem);\n\t\t\n\t\tif(listContainer){\n\n\t\t\t// Then find the bottom part of that div (Get the height of the div)\n\t\t\tvar triggerHeight = listContainer.offsetHeight + listContainer.offsetTop;\n\n\t\t\t// // Debug - add red line\n\t\t\t// document.querySelectorAll('.red-line').forEach(x => x.remove());\n\t\t\t// document.body.appendChild(Object.assign(document.createElement('div'), { className: 'red-line', style: `height: 1px; background-color: red; position: absolute; top: ${triggerHeight}px; left: 0; right: 0; z-index: 9999;` }));\n\n\t\t\t// Add some buffer so that we can lazy load the next page before we hit the red line\n\t\t\tvar bufferTriggerHeight = triggerHeight - 200;\n\n\t\t\t// // Debug - add yellow line\n\t\t\t// document.querySelectorAll('.yellow-line').forEach(x => x.remove());\n\t\t\t// document.body.appendChild(Object.assign(document.createElement('div'), { className: 'yellow-line', style: `height: 1px; background-color: yellow; position: absolute; top: ${bufferTriggerHeight}px; left: 0; right: 0; z-index: 9999;` }));\n\n\t\t\t// Now we can track the viewport to see if it cross the red line\n\t\t\tvar viewportTracker = window.scrollY + window.innerHeight - 100;\n\n\t\t\t// // Debug - add green line\n\t\t\t// document.querySelectorAll('.green-line').forEach(x => x.remove());\n\t\t\t// document.body.appendChild(Object.assign(document.createElement('div'), { className: 'green-line', style: `height: 1px; background-color: green; position: absolute; top: ${viewportTracker}px; left: 0; right: 0; z-index: 9999;` }));\n\n\t\t\t// Load the next page if we are below the red line\n\t\t\tif (viewportTracker > bufferTriggerHeight\n\t\t\t\t&& dataList.length < totalRecords\n\t\t\t\t&& triggerCount < 3\n\t\t\t\t&& !isLoading\n\t\t\t) {\n\t\t\t\tsetTriggerCount(triggerCount + 1);\n\t\t\t\tgetDataList();\n\t\t\t}\n\t\t\t// Chris - infinite load end\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tlatestApiQuery.current = props.apiQuery;\t\n\t}, [props.apiQuery]);\n\n\tuseEffect(() => {\n\t\tgetDataList();\n\t}, [latestApiQuery.current]);\n\n\tasync function getDataList(list, signal) {\n\t\tif(props.abortController){\n\t\t\tif (abortControllerRef.current) {\n\t\t\t\tabortControllerRef.current.abort();\n\t\t\t}\n\t\t}\n\t\t\n\t\tabortControllerRef.current = new AbortController();\n\n\t\tif (!props.apiQuery) return;\n\n\t\tif (searchEnabled && !isLoading) {\n\t\t\tsetIsLoading(true);\n\n\t\t\tvar pageNumber = Math.ceil(dataList.length / pageSize);\n\t\t\tvar isQueryStringAppended = latestApiQuery.current.includes(\"?\");\n\t\t\tvar apiUrl =\n\t\t\t\tlatestApiQuery.current +\n\t\t\t\t(isQueryStringAppended ? \"&\" : \"?\") +\n\t\t\t\t\"count=\" +\n\t\t\t\tpageSize +\n\t\t\t\t\"&start=\" +\n\t\t\t\tpageNumber * pageSize;\n\n\t\t\t// try {\n\t\t\t\tlet responseJson = await ApiEngine.get(apiUrl, { signal: abortControllerRef.current.signal });\n\t\t\t\t// await new Promise(resolve => setTimeout(resolve, 300));\n\t\t\t\t\n\t\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\tsetIsLoading(true);\n\t\t\t\t\tif (latestApiQuery.current === props.apiQuery) {\n\t\t\t\t\t\tsetDataList([...dataList, ...responseJson[ApiKey._API_DATA_KEY].data]);\n\t\t\t\t\t\tsetTotaRecords(responseJson[ApiKey._API_DATA_KEY].totalCount);\n\t\t\t\t\t\tif (props.onComplete) {\n\t\t\t\t\t\t\tprops.onComplete({\n\t\t\t\t\t\t\t\ttotalDataLoaded: [\n\t\t\t\t\t\t\t\t\t...dataList,\n\t\t\t\t\t\t\t\t\t...responseJson[ApiKey._API_DATA_KEY].data,\n\t\t\t\t\t\t\t\t][\"length\"],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetIsLoading(true);\n\t\t\t\t\t\tvar isQueryStringAppended1 = latestApiQuery.current.includes(\"?\");\n\t\t\t\t\t\tvar currentApiUrl =\n\t\t\t\t\t\t\tlatestApiQuery.current +\n\t\t\t\t\t\t\t(isQueryStringAppended1 ? \"&\" : \"?\") +\n\t\t\t\t\t\t\t\"count=\" +\n\t\t\t\t\t\t\tpageSize +\n\t\t\t\t\t\t\t\"&start=\" +\n\t\t\t\t\t\t\tpageNumber * pageSize;\n\t\t\t\t\t\tlet currentResponseJson = await ApiEngine.get(currentApiUrl, { signal: abortControllerRef.current.signal });\n\t\t\t\t\t\tif (currentResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t\t\tsetDataList([...dataList, ...currentResponseJson[ApiKey._API_DATA_KEY].data]);\n\t\t\t\t\t\t\tsetTotaRecords(currentResponseJson[ApiKey._API_DATA_KEY].totalCount);\n\t\t\t\t\t\t}\n\t\t\t\t\t} \n\t\t\t\t\tvar container = document.querySelector('.page-content-full-height');\n\n\t\t\t\t\tif (autoscrollEnabled && container.scrollTop == 0 && y > 0) {\n\t\t\t\t\t\twindow.scrollTo(0, y);\n\t\t\t\t\t}\n\t\t\t\t\t// var container2 = document.getElementById('modalBody');\n\n\t\t\t\t\t// if (autoscrollEnabled && container2.scrollTop == 0 && y > 0) { \n\t\t\t\t\t// \twindow.scrollTo(0, y);\n\t\t\t\t\t// }\n\t\t\t\t} else {\n\t\t\t\t\tif(props.abortController == false){\n\t\t\t\t\t\t_dispatch(\n\t\t\t\t\t\t\tshowResponseMessage(\n\t\t\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t// } catch (error) {\n\t\t\t// \tconsole.error(\"Error during fetch:\", error);\n\t\t\t// \tsetIsLoading(false);\n\t\t\t// \tif (axios.isCancel(error)) {\n\t\t\t// \t\tconsole.log('Request was cancelled');\n\t\t\t// \t} else {\n\t\t\t// \t\t_dispatch(showResponseMessage(false, t(\"Error loading data\")));\n\t\t\t// \t}\n\t\t\t// }\n\t\t} else {\n\n\t\t\tsetDataList([]);\n\t\t\tsetTotaRecords(\"0\");\n\t\t}\n\t\tsetIsLoading(false);\n\t\t//window.scrollTo(0, 200);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{dataList.length == 0 &&\n\t\t\t\t!isLoading &&\n\t\t\t\tprops[\"type\"] == \"notification\" && (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t(\"NO_NOTIFICATIONS\")}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t{dataList.length == 0 &&\n\t\t\t\t!isLoading &&\n\t\t\t\tprops[\"type\"] != \"notification\" && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{!props[\"noDataSecondDesign\"] ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(\"NO_DATA_FOUND\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{t(\"NO_DATA_FOUND2\")}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t{dataList.length != 0 && (\n\t\t\t\t<>\n\t\t\t\t\t{dataList.map((data, i) => {\n\t\t\t\t\t\tdata.dataLength = dataList.length;\n\t\t\t\t\t\treturn props.render(data, i);\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{isLoading && isTable && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\t\t\t{isLoading && !isTable && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{dataList \n\t\t\t&& dataList.length > 0 \n\t\t\t&& dataList.length < totalRecords \n\t\t\t&& triggerCount >= 2 \n\t\t\t&& !isLoading \n\t\t\t&& !isTable \n\t\t\t&& (\n\t\t\t\t {\n\t\t\t\t\t\tsetTriggerCount(0);\n\t\t\t\t\t}}\n\t\t\t\t\tstyle={{ cursor: \"pointer\", gridColumn: \"1 / -1\", justifySelf: \"center\", marginTop: \"20px\" }}\n\t\t\t\t>\n\t\t\t\t\t{t(\"LOAD_MORE\")}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default DynamicLoadTable;\n","import { createMultiPartFormBody } from \"../util/Util\";\nimport { ApiKey, ApiUrl } from \"../util/Constant\";\nimport {\n\tshowResponseMessage,\n\t_SET_RESET_PASSWORD,\n\t_BIND_MEMBER,\n\t_BIND_MEMBER_WALLET_BALANCE,\n\tuserKeepLogin\n} from \"./AppAction\";\nimport ApiEngine from \"../util/ApiEngine.js\";\nimport { _SAVE_LANGUAGE_ID } from \"./LanguageAction\";\n\nexport const _LOGIN_SUCCESS = \"LoginSuccess\";\nexport const _LOGIN_FAILED = \"LoginFailed\";\nexport const _LOGOUT = \"Logout\";\nexport const _GET_SHOP_CREDIT = \"GetShopCredit\";\nexport const _UPDATE_USER_DATA = \"UpdateUserData\";\nexport const _LOGIN_MODAL = \"LoginModal\";\n\n/// \n/// Author :\n/// expose login action as function to be called from classes\n/// \nexport function performLogin(\n\tusername,\n\tpassword,\n\tselectedLanguage\n) {\n\treturn async (dispatch, getState) => {\n\t\tdispatch({\n\t\t\ttype: _LOGOUT,\n\t\t});\n\t\tlet params = {\n\t\t\tusername: username,\n\t\t\tpassword: password,\n\t\t\tselectedLanguage: selectedLanguage,\n\t\t};\n\n\t\tvar responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_LOGIN,\n\t\t\tcreateMultiPartFormBody(params)\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tvar userData = responseJson[ApiKey._API_DATA_KEY][\"userData\"];\n\t\t\tif (window.ReactNativeWebView) {\n\t\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\taction: \"login\",\n\t\t\t\t\t\tjwtToken: responseJson[ApiKey._API_DATA_KEY][\"jwtToken\"],\n\t\t\t\t\t\tuserId: userData[\"userId\"],\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t\t\n\t\t\tdispatch({\n\t\t\t\ttype: _LOGIN_SUCCESS,\n\t\t\t\tuserData: userData,\n\t\t\t});\n\t\t} else {\n\t\t\tdispatch({\n\t\t\t\ttype: _LOGIN_FAILED,\n\t\t\t\tmessage: responseJson[ApiKey._API_MESSAGE_KEY],\n\t\t\t});\n\t\t\tdispatch(\n\t\t\t\tshowResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t);\n\t\t}\n\t};\n}\n\nexport function performLoginReturnMessage(\n\tusername,\n\tpassword,\n\tselectedLanguage,\n\tisKeepedLogin,\n\tisLoginAttemptBlockingEnabled\n) {\n\treturn async (dispatch, getState) => {\n\t\tdispatch({\n\t\t\ttype: _LOGOUT,\n\t\t});\n\t\tdispatch(userKeepLogin(isKeepedLogin));\n\t\tlet params = {\n\t\t\tusername: username,\n\t\t\tpassword: password,\n\t\t\tisKeepedLogin: isKeepedLogin,\n\t\t\tselectedLanguage: selectedLanguage,\n\t\t\tisLoginAttemptBlockingEnabled: isLoginAttemptBlockingEnabled\n\t\t};\n\n\t\tvar responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_LOGIN,\n\t\t\tcreateMultiPartFormBody(params)\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tvar userData = responseJson[ApiKey._API_DATA_KEY][\"userData\"];\n\t\t\tif (window.ReactNativeWebView) {\n\t\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\taction: \"login\",\n\t\t\t\t\t\tjwtToken: responseJson[ApiKey._API_DATA_KEY][\"jwtToken\"],\n\t\t\t\t\t\tuserId: userData[\"userId\"],\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tdispatch({\n\t\t\t\ttype: _LOGIN_SUCCESS,\n\t\t\t\tuserData: userData,\n\t\t\t});\n\t\t\tdispatch({\n\t\t\t\ttype: _SET_RESET_PASSWORD,\n\t\t\t\tisResetPassword: userData[\"isResetPassword\"],\n\t\t\t});\n\t\t\t\t\n\t\t\treturn {\n\t\t\t\ttype: _LOGIN_SUCCESS,\n\t\t\t\tmessage: _LOGIN_SUCCESS\n\t\t\t}\n\t\t} else {\n\t\t\tdispatch({\n\t\t\t\ttype: _LOGIN_FAILED,\n\t\t\t\tmessage: responseJson[ApiKey._API_MESSAGE_KEY],\n\t\t\t});\n\t\t\treturn {\n\t\t\t\ttype: _LOGIN_FAILED,\n\t\t\t\tmessage: responseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t}\n\t\t}\n\t};\n}\n/// \n/// Author :\n/// this function is to only update user status to login if it is already considered authenticated in cookie\n/// \nexport const updateLoginUser = (userData) => {\n\treturn {\n\t\ttype: _LOGIN_SUCCESS,\n\t\tuserData: userData,\n\t};\n};\n\nexport const updateWalletBalance = (userData) => {\n\t\n\treturn {\n\t\ttype: _BIND_MEMBER_WALLET_BALANCE,\n\t\twalletBalance: userData.walletBalance + userData.bonusBalance,\n\t\twalletsDetails: {\n\t\t\tcurrentWalletBalance : userData.walletBalance,\n\t\t\tbonusWalletBalance :userData.bonusBalance,\n\t\t\tisPromoCleared :userData.isPromoCleared,\n\t\t\tisBonusWalletRestored : userData.isBonusWalletRestored,\n\t\t\tisValidForPromotion : userData.isAnyTransactionValidForPromo,\n\t\t\tisActivedPromoExist: userData.isActivedPromoExist,\n\t\t\tpromoMaxWithdrawal: userData.promoMaxWithdrawal,\n\t\t\tminCoinTarget: userData.minCoinTarget\n\t\t}\n\t};\n};\n\n\n\n/// \n/// Author :\n/// \nexport const updateUserData = () => {\n\treturn async (dispatch) => {\n\t\tvar responseJson = await ApiEngine.get(ApiUrl._API_UPDATE_USER_DATA);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tdispatch({\n\t\t\t\ttype: _UPDATE_USER_DATA,\n\t\t\t\tuserData: responseJson[ApiKey._API_DATA_KEY],\n\t\t\t});\n\t\t}\n\t};\n};\n\n/// \n/// Author :\n/// expose logout action as function to be called from classes\n/// \nexport const performLogout = () => {\n\treturn async (dispatch) => {\n\t\tvar responseJson = await ApiEngine.post(ApiUrl._API_LOGOUT);\n\n\n\t\tawait responseJson;\n\t\tif (window.ReactNativeWebView) {\n\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\tJSON.stringify({ message: \"Succesfully logged out.\", code: \"LOGOUT\" })\n\t\t\t);\n\t\t}\n\t\tdispatch({\n\t\t\ttype: _LOGOUT,\n\t\t});\n\n\t\tdispatch({\n\t\t\ttype: _BIND_MEMBER,\n\t\t\tmember: [],\n\t\t\twalletBalance: 0,\n\t\t\twalletsDetails: {\n\t\t\t\tcurrentWalletBalance: 0,\n\t\t\t\tbonusWalletBalance: 0,\n\t\t\t\tisPromoCleared: false,\n\t\t\t\tisBonusWalletRestored: false,\n\t\t\t\tisValidForPromotion: false,\n\t\t\t\tisActivedPromoExist: false,\n\t\t\t\tpromoMaxWithdrawal: 0,\n\t\t\t\tminCoinTarget: 0\n\t\t\t},\n\t\t});\n\t};\n};\n\n/// \n/// Author :\n/// this function is to only update user status to logout\n/// \nexport const resetLogin = () => {\n\treturn async (dispatch) => {\n\t\tdispatch({\n\t\t\ttype: _LOGOUT,\n\t\t});\n\t};\n};\n\nexport const forceLogout = () => {\n\treturn async (dispatch) => {\n\t\tlocalStorage.removeItem(\"isOnload\");\n\n\t\tdispatch(showResponseMessage(false, \"FORCED_LOGOUT\", true));\n\t\tdispatch({\n\t\t\ttype: _LOGOUT,\n\t\t});\n\t};\n};\n\n/// \n/// Author : -\n/// \nexport const heartBeat = () => {\n\treturn async (dispatch, getState) => {\n\t\tvar responseJson = await ApiEngine.get(ApiUrl._API_IS_LOGGED_IN); //, createMultiPartFormBody(params));\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tdispatch(updateWalletBalance(responseJson[ApiKey._API_DATA_KEY]));\n\t\t\tdispatch(updateLoginUser(responseJson[ApiKey._API_DATA_KEY]));\n\t\t} else if (\n\t\t\t!responseJson[ApiKey._API_SUCCESS_KEY] &&\n\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY] == \"FORCE_LOGOUT\"\n\t\t) {\n\t\t\tdispatch(forceLogout());\n\t\t} else {\n\t\t\tdispatch(resetLogin());\n\t\t}\n\t};\n};\n\nexport const setToggleLoginModal = (isToggleLoginModal) => {\n\treturn (dispatch) => {\n\t\tdispatch({\n\t\t\ttype: _LOGIN_MODAL,\n\t\t\tisToggleLoginModal: isToggleLoginModal,\n\t\t});\n\t};\n};\n","import React from \"react\";\nimport { getValidationMessage, stringIsNullOrEmpty } from \"../../util/Util\";\nimport { useTranslation } from \"react-i18next\";\nimport { ApiKey } from \"../../util/Constant\";\n\n/**\n * Author: -\n */\nconst Input = React.forwardRef((props, ref) => {\n\tconst {\n\t\tname,\n\t\tcontainerClassName = \"\",\n\t\tlabelClassName = \"\",\n\t\tinputClassName = \"\",\n\t\ttype = \"text\",\n\t\tlabel,\n\t\tsmall,\n\t\tplaceholder = \"\",\n\t\terrors,\n\t\tdisabled,\n\t\tinputGroupType,\n\t\tinputGroupContent,\n\t\tonChange,\n\t\tautoComplete,\n\t\t...rest\n\t} = props;\n\tconst { t, i18n } = useTranslation();\n\n\treturn (\n\t\t<>\n\t\t\t
\n\t\t\t\t{label && (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t{inputGroupType ? (\n\t\t\t\t\t
\n\t\t\t\t\t\t{inputGroupType == \"prepend\" && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{inputGroupContent}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{inputGroupType == \"append\" && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{inputGroupContent}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t) : !disabled ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t
{props.value}
\n\t\t\t\t)}\n\t\t\t
\n\t\t\t{small &&
{small}
}\n\t\t\t{errors\n\t\t\t\t? errors[name] && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{stringIsNullOrEmpty(errors[name][ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t\t\t\t\t? t(getValidationMessage(errors[name]))\n\t\t\t\t\t\t\t\t\t: t(errors[name][ApiKey._API_MESSAGE_KEY])}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t )\n\t\t\t\t: \"\"}\n\t\t\n\t);\n});\n\nexport default Input;\n","module.exports = __webpack_public_path__ + \"static/media/icon-bottom-home.98146925.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-bottom-referral.e441b82d.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-bottom-promo.3888b014.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-bottom-livechat.5a7c4140.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon-bottom-account.3093688b.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAYAAADgKtSgAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAOySURBVHgBnVXPT1xVFP7unTe8YTrlRztDpUBlWki0XTDaxCZGkhIThVZDbTXqwgiNG1etfwFpgm6FhTsjoAsTf8RpYuqG2Ek1miYqY0LpolCg7dAWaGce84CZN/Pu7bmPznR+MED7JZN579xzv3PuOd89j2ELdF9eOs44P8UY723xzde90/JT3caKjEIiKm021tM4GKm0n1Ui5S5thDG06jyNKlcabzVdhN+zWO4s5ZyEvNDT8MXotuQnr8S/JOt59ayIPwx+h91uA9uBQQ69Gfj8M1QiP/FHfIIModx7574IQvX/lhGNznyCZKYWr/j/wjH/33l7xkbk7ecGu8rIcxnrVIIPWr+F+leYWH4e7TUL2Osx8yTXjSNYydTgcO1U2anSGTnUu3/jBA75iSvLfYy5RtRzDTl/fOjrfIaLaz4kUgv49PA4vJrl2PfqJipBSOC+ga7+9sGItmFyDeQjC4+TmYI6erWbVnkTvrr+PoxUBpYQ1NgkBl6+mA9WCE7pVutSJRpkShkuTbuMHcCyBaYeGERuEnm4iHwtA8waPjT5THgo5bsmujTScV8piVJJx57/cNA3TbVPlQSQREry5BbmjSpat+D3AibFGZk5g94D/6B99zUwW5zSOOcdhZtr3Cs4feCHyvJzb/wlKObYzOswLB/Otv3m1FrAg6jRjZVsAL8vtPRyFEhPQclrJ7pWR3+j8SrWbR3fTPfgl9udqNZcztrN1aOqd3W8dFOz9zZ2AkUeCjxE/6FLdEkZ5s1G7PHoTxwk6lRzE3hGqAAdFOBs+yW8UF9FY+JJrqr5XEhZVIOpxzLcKaqoEvt3mWioXs3b1rM2bBpunM4ULnT+P34Uy+kGPA0sG9TEhiJySBZVaglTo8/lFtLUoO9nP8KLtZPw60vOGFA/JctKWE4Fit7vra6DieyYc/1P/hmfpQa0YguoAaYG2WZZX1084khQ4WHKwq3k6lzs9MGg0wEm0Y9tEKVyxdaay+xZARiZwONAwskaUlxQ7w75r531EQYxvF2A8bvdpF+9yKauvaq3LSWmE0lY2exw7EzbqJN0oeNr44sTtbo7tFWAXHlSWSKlqTwRfxWTxjGaKyZdKDtK5Xgp51v2JaIAQ3TTzhVqthTBXZPw8iXcS7fhxso+xJJrsIU9HHu37Xyh36bf0Kafp/sCXu8AnaLV59bK1tXYNahxqnmU7RyzWf+d94KRUr9NyXNo/nH2uGSyT3exkFtzdaiG2UImskIYtDHMJA9vRprDI1YMgSox3y/ZAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/trophy-gif.af045908.gif\";","import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tTransactionType,\n\tTransactionStatus,\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport { debounce, map, find, filter, upperCase, orderBy } from \"lodash\";\nimport { themeIcons } from \"config/theme\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\n\nconst TransactionHistory = forwardRef((props,ref) => {\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst { t, i18n } = useTranslation();\n\tconst [transactionDetailsActiveTaB, setTransactionDetailsActiveTaB] =\n\t\tuseState(1);\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [sortOrder, setSortOrder] = useState(\"\");\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n\tconst [searchTransactionHistory, setSearchTransactionHistory] = useState([]);\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\")\n\t\t\t: moment().startOf(\"isoWeek\")\n\t);\n\tconst [referralBonus, setReferralBonus] = useState([]);\n\tconst [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\n\tconst [noDataBg, setNoDataBg] = useState();\n\tconst companyIcons = useSelector((state) => state.appState.companyIcons);\n\n\tuseEffect(() => {\n\t\tinit()\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n\tuseImperativeHandle(ref, () => ({\n\t\t\tinitRebateCommission: () => {\n\t\t\t\tGetReferralBonus()\n\t\t\t},\n\t}));\n\tfunction init() {\n\t\tGetReferralBonus();\n\n\t}\n\tasync function getCompanyIcon() {\n\t\t_dispatch(setBusy());\n\t\tconst noDataBg = find(companyIcons, { iconCategory: \"no_data_background\" });\n\t\tif (noDataBg) {\n\t\t\tsetNoDataBg(noDataBg.iconImage||noDataBg.defaultImage);\n\t\t}\n\t\t_dispatch(setIdle());\n\t}\n\n\tasync function GetReferralBonus() {\n\t\tvar response = await ApiEngine.get(ApiUrl._API_GET_MEMBER_REFERRAL_BONUS);\n\t\tif (response[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet temp = response[ApiKey._API_DATA_KEY];\n\t\t\tsetReferralBonus(temp);\n\n\t\t}\n\t\tsetLoadingFlag(false);\n\t}\n\n\tasync function ClaimReferralBonus() {\n\t\t_dispatch(setBusy());\n\t\tsetIsSubmitLoading(true)\n\t\tvar response = await ApiEngine.get(ApiUrl._API_CLAIM_MEMBER_REFERRAL_BONUS);\n\t\tif (response[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet temp = response[ApiKey._API_DATA_KEY];\n\n\t\t}\n\t\tGetReferralBonus()\n\t\t_dispatch(\n\t\t\tshowResponseMessage(\n\t\t\t\tresponse[ApiKey._API_SUCCESS_KEY],\n\t\t\t\tt(response[ApiKey._API_MESSAGE_KEY])\n\t\t\t)\n\t\t);\n\n\t\tsetIsSubmitLoading(false)\n\t\t_dispatch(setIdle());\n\t}\n\n\treturn (\n\t\t
\n\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* */}\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{referralBonus &&\n\t\t\t\t\t\t\t\treferralBonus.length != 0 ? (\n\t\t\t\t\t\t\t\t\treferralBonus.map((data, index) => {\n\n\t\t\t\t\t\t\t\t\tvar statusHtml = \"\";\n\t\t\t\t\t\t\t\t\tswitch (data[\"isClaimed\"]) {\n\t\t\t\t\t\t\t\t\t\tcase true:\n\t\t\t\t\t\t\t\t\t\t\tstatusHtml = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"CLAIMED\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase false:\n\t\t\t\t\t\t\t\t\t\t\tstatusHtml = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"UNCLAIMED\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// \t\n\t\t\t\t\t\t\t\t// \n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"DOWNLINE\")}{t(\"DATE\")}{t(\"BONUS_AMOUNT\")}{t(\"ROLLOVER_MULTIPLIER\")}{t(\"STATUS\")}{t(\"CLAIMED_TIME\")}{t(\"DEPOSIT_TIME\")}
{data[\"username\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"createdTime\"]}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(parseFloat(data.bonusAmount), 3, true)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tx{data[\"rolloverMultiplier\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t{statusHtml}\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"claimedDate\"]}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"createdTime\"]}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t{t(\"NO_DATA_FOUND2\")}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{/*{paginationPageNum > 1 && (*/}\n\t\t\t{/*\t*/}\n\t\t\t{/*)}*/} \n\t\t\t{/* {referralBonus.some(x => !x.isClaimed) &&\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t} */}\n\t\t
\n\t);\n});\n\nexport default TransactionHistory;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl } from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { showResponseMessage, bindMember, setMyProfileModal } from \"../../redux/AppAction.js\";\nimport { map, find, debounce, isEmpty } from \"lodash\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport { useForm } from \"react-hook-form\";\nimport { createFormBody, stringIsNullOrEmpty, createMultiPartFormBody } from \"../../util/Util.js\";\nimport moment from \"moment\";\nimport DatePicker from \"react-bootstrap-daterangepicker\";\nimport PinInput from \"react-pin-input\";\nimport Skeleton from \"react-loading-skeleton\";\nimport VerifyPhoneNumberModal from \"./VerifyPhoneNumberModal\";\nimport AddPhoneModal from \"./AddPhoneModal\";\n\n\nconst MyProfileModal = ({popout}) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n const [alertIcon, setAlertIcon] = useState(\"\");\n const [showAlert, setShowAlert] = useState(false);\n const profileModal = useSelector((state) => state.appState.profileModal)\n\n const memberData = useSelector((state) => state.appState.member);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const isEWalletActive = useSelector((state) => state.appState.isEWalletActive);\n const otpEnabled = useSelector((state) => state.appState.otpEnabled);\n const isBankTransferActive = useSelector((state) => state.appState.isBankTransferActive);\n const [birthDate, setBirthDate] = useState(\n moment().subtract(18, \"years\").format(\"DD-MM-YYYY\")\n );\n\n const maxDate = moment().subtract(18, \"years\");\n const minDate = moment().subtract(100, \"years\");\n\n const [isEditBirthDate, setIsEditBirthDate] = useState(false);\n const [memberBankAccounts, setMemberBankAccounts] = useState({});\n var { heartBeat } = useSelector((state) => state.authState);\n\n const [showVerifyOtpModal, setShowVerifyOtpModal] = useState(false);\n const [showAddPhoneNumberModal, setShowAddPhoneNumberModal] = useState(false);\n const [otpValue, setOtpValue] = useState(\"\");\n const [showVerifyOtpError, setShowVerifyOtpError] = useState(false);\n const [sentCode, setSentCode] = useState(false);\n\n const [countdownPeriod, setCountdownPeriod] = useState(0);\n const [TACcountdownPeriod, setTACCountdownPeriod] = useState(0);\n const [TACtimer, setTACtimer] = useState(setTimeout(() => { }, 60000));\n const [TACtimedOut, setTACtimedOut] = useState(true);\n const [attemp, setAttemp] = useState(1);\n const elePin = useRef(null);\n const [pinInputDisabled, setPinInputDisabled] = useState(false);\n const [tempPinNumber, setTempPinNumber] = useState();\n const [pinLoading, setPinLoading] = useState(false);\n\n const [formattedPhoneNumber, setFormattedPhoneNumber] = useState(false);\n const [memberEwalletAccounts, setMemberEwalletAccounts] = useState([]);\n const [selectedPhoneNumber, setSelectedPhoneNumber] = useState(\"\");\n const [selectedPhoneNumberId, setSelectedPhoneNumberId] = useState(\"\");\n const [showDeletePhoneNumberModal, setShowDeletePhoneNumberModal] = useState(false);\n const [phoneNumType,setPhoneNumType]=useState(\"\");\n\n const _COUNTDOWN_PERIOD = 120;\n const _TAC_VALID_TIMER = 60000;\n const _SECONDS_IN_MS = 1000;\n const _TAC_TIMEOUT_IN_MINUTES = 1;\n\n const {\n register: completeProfile,\n handleSubmit: completeProfileHandleSubmit,\n errors: completeProfileErrors,\n setError: setCompleteProfileError,\n } = useForm();\n\n const {\n register: ewalletRegister,\n handleSubmit: ewalletHandleSubmit,\n errors: ewalletErrors,\n setError: ewalletError,\n } = useForm();\n\n useEffect(() => {\n if (profileModal) {\n getMemberEwalletAccounts();\n }\n }, [profileModal]);\n\n useEffect(() => {\n // Ensure memberData has content before checking birthdate\n if (memberData && Object.keys(memberData).length > 0) {\n checkBirthDate()\n }\n }, [memberData])\n\n useEffect(() => {\n if (heartBeat) {\n getMemberBankAccount();\n }\n }, [heartBeat]);\n\n useEffect(() => {\n if (companyIcons.length > 0) {\n getCompanyIcon();\n }\n }, [companyIcons]);\n\n const getCompanyIcon = async () => {\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n }\n\n const submitComplteProfileForm = async (data, e) => {\n let params = {\n // email: email,\n birthDate: moment(birthDate, \"DD-MM-YYYY\").format(\"YYYY-MM-DD\"),\n };\n\n var responseJson = await ApiEngine.post(\n ApiUrl._API_MEMBER_UPDATE_PROFILE,\n createFormBody(params)\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n bindMember(_dispatch);\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n _dispatch(setMyProfileModal(false))\n }\n };\n\n const checkBirthDate = async () => {\n if (\n stringIsNullOrEmpty(memberData.birthDateString) ||\n memberData.birthDateString == \"01-01-0001\"\n ) {\n if (popout) {\n setShowAlert(true)\n }\n \n setIsEditBirthDate(true)\n } else {\n setIsEditBirthDate(false)\n setShowAlert(false)\n }\n }\n\n const getMemberBankAccount = async () => {\n try {\n let responseJson = await ApiEngine.get(\n ApiUrl._API_GET_MEMBER_BANK_ACCOUNT_BY_MEMBER\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n let bankAccountList = [];\n responseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n bankAccountList.push({\n label: bankAccount.bankName + \" - \" + bankAccount.accountNumber,\n value: bankAccount.id,\n bankId: bankAccount.bankId,\n accountHolderName: bankAccount.accountHolderName,\n accNum: bankAccount.accountNumber,\n bankName: bankAccount.bankName,\n isDefault: bankAccount.isDefault,\n });\n });\n // setMemberBankAccounts(bankAccountList);\n // setSearchMemberBankAccount(bankAccountList);\n\n setMemberBankAccounts(bankAccountList?.[0]);\n\n }\n } catch (err) {\n _dispatch(showResponseMessage(false, err));\n }\n }\n\n let countdownPeriodTimeOutId,apiTimeOutId;\n\n // OTP functions\n // useEffect(() => {\n // if (countdownPeriod > 0) {\n // countdownPeriodTimeOutId=setTimeout(() => {\n // let tempPeriod = countdownPeriod - 1;\n // setCountdownPeriod(tempPeriod);\n // }, _SECONDS_IN_MS);\n // }\n // }, [countdownPeriod]);\n\n // useEffect(() => {\n // if (TACcountdownPeriod > 0) {\n // setTACtimer(\n // setTimeout(() => {\n // let tempPeriod = TACcountdownPeriod - 1;\n // setTACCountdownPeriod(tempPeriod);\n // }, _SECONDS_IN_MS)\n // );\n // }\n // }, [TACcountdownPeriod]);\n\n // const sendOtp = async () => {\n // const OTP_VIA_SMS = 1;\n // const channelType = OTP_VIA_SMS;\n\n // let params = {\n // phoneNumber: selectedPhoneNumber,\n // languageCode: \"en\",\n // countdown: countdownPeriod,\n // TACExist: !TACtimedOut,\n // type: OTP_VIA_SMS,\n // usage: \"verifyPhoneNumber\",\n // };\n\n // let responseJson = await ApiEngine.post(\n // ApiUrl._API_GENERATE_OTP,\n // createFormBody(params)\n // );\n\n // if (responseJson[ApiKey._API_SUCCESS_KEY]\n // ) {\n // setSentCode(true);\n // setTACtimedOut(false);\n // setCountdownPeriod(0);\n // setCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n // setAttemp(attemp + 1);\n // apiTimeOutId=setTimeout(() => {\n // setTACtimedOut(true);\n // }, _TAC_VALID_TIMER);\n // }else{\n // setShowVerifyOtpModal(false);\n // _dispatch(\n // showResponseMessage(\n // responseJson[ApiKey._API_SUCCESS_KEY],\n // responseJson[ApiKey._API_MESSAGE_KEY]\n // )\n // );\n // }\n // }\n\n // const stopTimeout = () => {\n // clearTimeout(countdownPeriodTimeOutId);\n // clearTimeout(apiTimeOutId);\n // };\n\n const handleVerifyOtp = async (data, e) => {\n // Reset send OTP modal\n setSentCode(false);\n setTACtimedOut(true);\n setCountdownPeriod(0);\n\n // Open modal\n setShowVerifyOtpModal(true);\n }\n\n // Old code - from withdrawal, not in use anymore\n // const sendVerificationCode = async () => {\n // await ApiEngine.post(\n // ApiUrl._API_SEND_VERIFICATION_CODE,\n // createMultiPartFormBody({ phoneNumber: selectedPhoneNumber })\n // ).then((response) => {\n // if (response[ApiKey._API_SUCCESS_KEY]) {\n // setSentCode(true);\n // setCountdownPeriod(_COUNTDOWN_PERIOD);\n // }\n // });\n // };\n\n // async function onKeyPress(key, index) {\n // //setAllowPinClick(false);\n // // 1st: have to check currentPinRef\n // // 2nd: have to know which index is currently focused for altering the state.value\n // // 3rd: have to check if at elePin.index(3), if yes then convert value to string and focus on eleConfirm.index(0)\n // // 4th: have to check if at eleConfirm.index(3), if yes then convert value to string, and submitPin\n // // let currentIndex = 0;\n // let pinStr = tempPinNumber;\n // let keyLength = key.split(\"\");\n // if (key !== \"{bksp}\" && key !== \" \") {\n // pinStr = key;\n // setTempPinNumber(pinStr);\n // if (keyLength.length !== 6) {\n // } else {\n // setTempPinNumber(\"\");\n // setPinInputDisabled(true);\n // setPinLoading(true);\n\n // await verifyOTP(pinStr);\n\n // setPinLoading(false);\n // setPinInputDisabled(false);\n // }\n // } else {\n // elePin[\"current\"].clear();\n // }\n // }\n\n // const verifyOTP = async (pinstr) => {\n // await ApiEngine.post(\n // ApiUrl._API_VERIFY_MULTIPLE_PHONE_NUMBER,\n // createMultiPartFormBody({\n // verificationCode: pinstr,\n // phoneNum:selectedPhoneNumber,\n // phoneNumType:phoneNumType\n // })\n // ).then((response) => {\n // if (response[ApiKey._API_SUCCESS_KEY]) {\n // setShowVerifyOtpModal(false);\n // getMemberEwalletAccounts();\n\n // if(phoneNumType==\"member\"){\n // memberData.isPhoneVerify=true;\n // }\n // }\n\n // _dispatch(\n // showResponseMessage(\n // response[ApiKey._API_SUCCESS_KEY],\n // response[ApiKey._API_MESSAGE_KEY]\n // )\n // );\n // });\n // };\n \n const handleVerifyOtpCallback = async (response) => {\n setShowVerifyOtpModal(false);\n getMemberEwalletAccounts();\n\n if(phoneNumType==\"member\"){\n memberData.isPhoneVerify=true;\n }\n };\n\n const handleAddPhoneCallback = async (response) => {\n setShowAddPhoneNumberModal(false);\n getMemberEwalletAccounts();\n };\n \n const getMemberEwalletAccounts = async () => {\n let responseJson = await ApiEngine.get(ApiUrl._API_GET_MEMBER_PHONE_NUMBERS);\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n let memberEwalletAccounts = responseJson[ApiKey._API_DATA_KEY];\n setMemberEwalletAccounts(memberEwalletAccounts);\n }\n }\n\n return (\n
\n {showAlert && (\n
\n \n )}\n customButtons={\n \n
\n setShowAlert(false)}\n >\n {t(\"LATER\")}\n \n { _dispatch(setMyProfileModal(true)); setShowAlert(false); }}\n >\n {t(\"CONTINUE\")}\n \n
\n\n
\n }\n >\n \n {t(\"COMPLETE_PROFILE_INFO\")}\n \n
\n
\n
\n \n
\n
\n

\n {t(\"COMPLETE_PROFILE_DANGER\")}\n

\n
\n
\n
\n \n
\n )}\n\n {\n _dispatch(setMyProfileModal(false))\n }}\n >\n \n
\n {\n // setManageProfileShow(false);\n _dispatch(setMyProfileModal(false))\n\n }}\n >\n \n
\n
{t(\"MY_PROFILE\")}
\n
\n
\n _dispatch(setMyProfileModal(false))}\n >\n \n
\n \n \n \n {memberData ? (\n
\n
\n \n
\n {t(\"GENERAL\")}\n
\n
\n
\n \n
{memberData.username}
\n
\n {\n memberData && !isEmpty(memberData?.userFullName) && (\n
\n \n
{memberData?.userFullName}
\n
\n )\n }\n \n {\n isEditBirthDate ?\n (\n <>\n
\n \n {memberData.birthDateString != \"01-01-0001\" && memberData.birthDateString != \"\" ?\n
{memberData.birthDateString}
\n :\n {\n setBirthDate(\n moment(picker.startDate).format(\"DD-MM-YYYY\")\n );\n }}\n alwaysShowCalendars={true}\n locale={{ \n applyLabel: t(\"APPLY\"),\n cancelLabel: t(\"CANCEL\"),\n }}\n showDropdowns={true}\n opens=\"center\"\n containerStyles={{ height: \"10%\", width: \"100%\", padding: \"0px 15px 0px 0px\" }}\n minDate={minDate}\n maxDate={maxDate}\n startDate={moment().subtract(18, \"years\")}\n >\n \n \n }\n
\n
\n
\n \n
\n
{t(\"FILL_IN_BIRTHDAY_INFO\")}
\n
\n \n ) :\n (\n
\n \n
{memberData.birthDateString}
\n
\n )\n }\n
\n {t(\"CONTACT_DETAILS\")}\n
\n {memberData ? (\n <>\n
\n
\n \n {memberData.phoneNumber ?? \"-\"}\n {!memberData.isPhoneVerify && otpEnabled &&(
{\n setSelectedPhoneNumber(memberData.phoneNumber);\n setPhoneNumType(\"member\");\n handleVerifyOtp();\n }}\n >\n {t(\"VERIFY_OTP\")}\n
\n )}\n
\n
\n \n ) : (\n \n )}\n {\n memberBankAccounts && isBankTransferActive && (\n <>\n
\n {t(\"BANK\")}\n
\n
\n
\n \n
{memberBankAccounts.bankName}
\n
\n\n
\n \n
{memberBankAccounts.accountHolderName}
\n
\n
\n \n
{memberBankAccounts.accNum}
\n
\n\n\n
\n \n )\n }\n {isEWalletActive &&\n
\n\n
\n {t(\"EWALLET_ACCOUNTS\")}\n
\n {/* EWallet Account (Phone Numbers) Section */}\n {memberEwalletAccounts && memberEwalletAccounts.length > 0 && (\n
\n {memberEwalletAccounts.map((item, index) => (\n
\n
\n \n
\n
\n {item.phoneNumber}\n {!item.verified && (\n {\n setSelectedPhoneNumber(item.phoneNumber);\n setPhoneNumType(\"memberEwalletAccounts\");\n handleVerifyOtp();\n }}\n >\n {t(\"VERIFY_OTP\")}\n
\n )}\n
\n
{t(\"ACCOUNT_HOLDER\")}: {item.accountHolderName ? item.accountHolderName : \"-\"}
\n
\n
\n
\n ))}\n
\n )}\n\n {/* Add Phone Number Button */}\n {memberEwalletAccounts && memberEwalletAccounts.length < 3 && (\n
\n \n
\n )}\n
\n }\n \n\n { isEditBirthDate &&\n
\n \n
\n }\n
\n \n
\n \n ) : (\n \n )}\n
\n \n \n setShowAddPhoneNumberModal(false)}\n onCallback={(e) => {\n handleAddPhoneCallback(e)\n }}\n /> \n\n setShowVerifyOtpModal(false)}\n phoneNumber={selectedPhoneNumber}\n phoneNumType={phoneNumType}\n onCallback={(e) => {\n handleVerifyOtpCallback(e)\n }}\n />\n \n\n );\n};\n\nexport default MyProfileModal;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n ApiKey,\n ApiUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport {\n Spinner,\n} from \"reactstrap\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n map,\n find,\n filter,\n} from \"lodash\";\nimport {\n setBusy,\n setIdle,\n} from \"../../redux/AppAction.js\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\n// LiveTransactions component\nconst LiveTransactions = (props) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n const [transLoading, setTransLoading] = useState();\n const [latestDepositList, setLatestDepositList] = useState();\n const [latestWithdrawalList, setLatestWithdrawalList] = useState();\n const [noDataBg, setNoDataBg] = useState(\"\");\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n\n useEffect(() => {\n getCompanyIcon();\n getWithdrawalDepositTransaction()\n }, []);\n\n const getWithdrawalDepositTransaction = async () => {\n setTransLoading(true)\n var responseJson2 = await ApiEngine.get(\n ApiUrl._API_GET_TOP_DEPOSIT_WITHDRAWAL\n );\n\n if (responseJson2[ApiKey._API_SUCCESS_KEY]) {\n // _dispatch(setBusy());\n const latestDepositData = filter(responseJson2[ApiKey._API_DATA_KEY], {\n transactionTypeId: 1,\n });\n const latestWithdrawalData = filter(responseJson2[ApiKey._API_DATA_KEY], {\n transactionTypeId: 2,\n });\n\n setLatestDepositList(latestDepositData);\n setLatestWithdrawalList(latestWithdrawalData);\n // _dispatch(setIdle());\n } else {\n throw responseJson2[ApiKey._API_MESSAGE_KEY];\n }\n\n setTransLoading(false)\n\n\n }\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n\n const noDataBg = find(companyIcons, { iconCategory: \"no_data_background\" });\n if (noDataBg) {\n setNoDataBg(noDataBg.iconImage||noDataBg.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n return (\n
\n

\n {t(\"LIVE\")} {t(\"TRANSACTION_UPPER\")}\n

\n
\n
\n
\n
\n
{t(\"DEPOSIT\")}
\n
\n\n {transLoading ?\n
\n \n
:\n latestDepositList && latestDepositList.length > 0 ? (\n map(latestDepositList, (item, index) => {\n return (\n
\n
\n \n {item.username}\n
\n
{item.amount.toFixed(2)}
\n
\n );\n })\n ) : (\n
\n {noDataBg ?\n <>

{t(\"NO_DATA_FOUND\")}

: \n }\n
\n )}\n
\n
\n
\n
\n
\n
{t(\"WITHDRAWAL\")}
\n
\n {transLoading ?\n
\n \n
:\n latestWithdrawalList && latestWithdrawalList.length > 0 ? (\n map(latestWithdrawalList, (item, index) => {\n return (\n
\n
\n \n {item.username}\n
\n
{item.amount.toFixed(2)}
\n
\n );\n })\n ) : (\n
\n {noDataBg ?\n <>

{t(\"NO_DATA_FOUND\")}

: \n }\n
\n )}\n
\n
\n
\n
\n )\n}\n\nexport default LiveTransactions;","import React, { useEffect, useState, useRef } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n filter,\n} from \"lodash\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport Skeleton from \"react-loading-skeleton\";\nimport {\n stringIsNullOrEmpty,\n} from \"../../util/Util\";\nimport FallBackImage from \"components/template_1/FallBackImage\";\nimport {\n setGameLobbyModal,\n setLoginModal,\n setBusy,\n setIdle,\n} from \"../../redux/AppAction.js\";\nimport Slider from \"react-slick\";\nimport GameLobbyModal from \"components/template_1/GameLobbyModal\";\n\n\n// RecentBigWin component\nconst RecentBigWin = ({ updateMasterProductId, updateSelectedGameIsSeamless, updateSelectedGameName, updateProductGameId,\n updatePopBannerImage, updateTitle, updateCategoryTitle, UpdateIsSupportIframe, updateProviderName, pageName }) => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n\n var { heartBeat } = useSelector((state) => state.authState);\n const memberData = useSelector((state) => state.appState.member);\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [masterProductId, setMasterProductId] = useState(0);\n const [isApp, setIsApp] = useState(false);\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [selectedGameHasOwnLobby, setSelectedGameHasOwnLobby] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [showPregamePopup, setShowPregamePopup] = useState(false);\n const [productGameId, setProductGameId] = useState(0);\n const [toLobbyBtn, SetToLobbyBtn] = useState(false);\n const [appUrl, setAppUrl] = useState(\"\");\n const [clubFee, setClubFee] = useState(0);\n const [initFlag, setInitFlag] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [defaultGameIcon, setDefaultGameIcon] = useState();\n const [bigWinList, setBigWinList] = useState([]);\n const companyCurrencySymbol = useSelector((state) => state.appState.currencySymbol);\n const [isSupportIframeState, setIsSupportIframeState] = useState(false);\n const [categoryTitle, setCategoryTitle] = useState(\"\");\n const [iframeAlert, setIsIframeAlert] = useState(false);\n const [providerName, setProviderName] = useState(\"\");\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [productCommRate, setProductCommRate] = useState([]);\n const [isGameLobbyModal, setIsGameLobbyModal] = useState(false);\n const isCasinoLobbyEnabled = useSelector(\n (state) => state.appState.isCasinoLobbyEnabled\n )\n\n const chunkArray = (arr, chunkSize) => {\n const result = [];\n for (let i = 0; i < arr.length; i += chunkSize) {\n result.push(arr.slice(i, i + chunkSize));\n }\n return result;\n };\n\n const itemsPerSlide = 2; // Two columns and three rows\n const slides = chunkArray(bigWinList, itemsPerSlide);\n\n const settings = {\n dots: false,\n infinite: true,\n speed: 500,\n slidesToShow: slides.length > 2 ? 3 : 2, // Show one slide at a time\n slidesToScroll: 1,\n vertical: true,\n verticalSwiping: false,\n autoplay: true, // Enable auto-slide\n autoplaySpeed: 3000, // Time in milliseconds between slides\n arrows: false, // Hide navigation arrows\n responsive: [\n {\n\n breakpoint: 768,\n settings: {\n className: \"\",\n\n variableWidth: false,\n\n slidesToShow: 2,\n slidesToScroll: 1,\n vertical: true,\n verticalSwiping: false,\n autoplay: true, // Enable auto-slide\n autoplaySpeed: 3000, // Time in milliseconds between slides\n arrows: false, // Hide navigation arrows\n\n },\n }\n ]\n };\n\n useEffect(() => {\n getCompanyIcon()\n getBigWin()\n\n }, []);\n\n\n const getBigWin = async () => {\n var responseJsonBigWin = await ApiEngine.get(\n ApiUrl._API_GET_BIG_WIN\n );\n if (responseJsonBigWin[ApiKey._API_SUCCESS_KEY]) {\n\n var bigWinResult = responseJsonBigWin[ApiKey._API_DATA_KEY];\n\n if (bigWinResult.length % 2 !== 0) {\n bigWinResult.pop();\n }\n setBigWinList(bigWinResult)\n }\n\n setInitFlag(true)\n }\n\n async function startGame(\n gameId,\n hasOwnLobby,\n masterProductId,\n gameName,\n isSeamless,\n isApp,\n appUrl,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframe,\n categoryTitle,\n providerName,\n popoutBanner\n ) {\n setSelectedGameName(gameName);\n setMasterProductId(masterProductId);\n setIsApp(isApp);\n setAppDeepLink(appDeepLink);\n setPackageNameKeyword(packageNameKeyword);\n setSelectedGameHasOwnLobby(hasOwnLobby);\n setSelectedGameIsSeamless(isSeamless);\n setIsSupportIframeState(isSupportIframe);\n setCategoryTitle(categoryTitle);\n setProviderName(providerName);\n\n if (pageName == \"HOME\") {\n updateMasterProductId(masterProductId);\n updateSelectedGameIsSeamless(isSeamless);\n updateSelectedGameName(gameName);\n updateProductGameId(gameId);\n updatePopBannerImage(popoutBanner);\n updateTitle(t(\"HOME\"))\n updateCategoryTitle(categoryTitle);\n UpdateIsSupportIframe(isSupportIframe);\n updateProviderName(providerName);\n }\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n setIsGameLobbyModal(true);\n } else {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: t(\"HOME\"),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n } else {\n window.open(\n ApiUrl._API_START +\n \"?gameId=\" +\n gameId + \"&device=\" + (window.innerWidth <= 768 ? \"m\" : \"d\")\n );\n }\n\n }\n } else {\n if (isSeamless == false) {\n if (categoryTitle == \"Casino\" && !isCasinoLobbyEnabled) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n setIsGameLobbyModal(true);\n }\n else {\n setIsLoading(true);\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n\n }\n\n setShowPregamePopup(true);\n getProductComRate(gameName);\n setProductGameId(gameId);\n SetToLobbyBtn(true);\n getRolloverProgress(gameId);\n\n var path = WebUrl._URL_GAME_LOBBY +\n \"?name=\" +\n gameName +\n \"&id=\" +\n gameId +\n \"&languageId=\" +\n memberData[\"languageSetting\"] +\n \"&category=\" +\n categoryTitle;\n\n var breadcrumbData = [{\n pageName: t('HOME'),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }, {\n pageName: gameName,\n location: path\n }];\n\n var state = {\n breadcrumbData: breadcrumbData\n }\n\n _history.push(path, state);\n setIsLoading(false);\n }\n }\n }\n }\n\n async function getProductComRate(selectedGameName) {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.productName === selectedGameName\n );\n\n if (data.length > 0) {\n setProductCommRate(data[0]);\n }\n }\n }\n\n async function getRolloverProgress(masterProductId) {\n setRolloverBalance(\"\");\n setRolloverTarget(\"\");\n if (masterProductId != \"0\" && !stringIsNullOrEmpty(masterProductId)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n }\n }\n }\n }\n }\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n\n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n \n\n return (\n <>\n {initFlag ? (\n <>\n {bigWinList && bigWinList.length > 0 && (\n
\n
\n

\n {t(\"RECENT\")} {t(\"BIG_WINS\")}\n

\n
\n \n {slides.map((slide, index) => (\n
\n {slide.map((item, index) => (\n
\n \n\n
\n
\n
{t(\"PROVIDER\")}: {item.productName}
\n
{item.username} {t(\"in\")} {item.gameName} {t(\"won\")}
\n
{companyCurrencySymbol}{item.winning.toFixed(2)}
\n
\n
{\n if (heartBeat) {\n setPopupBannerImage(item[\"popupBannerImage\"]);\n if (item[\"gameUm\"] !== true) {\n setIsSupportIframeState(item[\"isSupportIframe\"])\n if (item[\"isSupportIframe\"]) {\n startGame(\n item[\"id\"],\n item[\"hasOwnLobby\"],\n item[\"masterProductId\"],\n item[\"gameName\"],\n item[\"masterProductIsSeamless\"],\n item[\"isApp\"],\n item[\"appUrl\"],\n item[\"appDeepLink\"],\n item[\"isNewWindow\"],\n item[\"packageNameKeyword\"],\n item[\"isSupportIframe\"],\n item[\"categoryTitle\"],\n item[\"providerName\"],\n item[\"popupBannerImage\"]\n );\n } else {\n setSelectedGameName(item[\"gameName\"]);\n setMasterProductId(item[\"masterProductId\"]);\n setIsApp(item[\"isApp\"]);\n setAppDeepLink(item[\"appDeepLink\"]);\n setPackageNameKeyword(item[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(item[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(item[\"isSeamless\"]);\n setIsSupportIframeState(item[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(item[\"appUrl\"]);\n }\n setProductGameId(item[\"id\"]);\n setIsIframeAlert(true)\n }\n\n }\n } else {\n _dispatch(setLoginModal(true));\n\n\n }\n }}>\n \n \n \n
\n
\n\n
\n ))}\n
\n ))}\n
\n
\n
\n
\n )}\n \n ) : (\n \n )\n }\n {pageName != \"HOME\" &&\n \n }\n \n )\n}\n\nexport default RecentBigWin;","import React, { useEffect, useState, useRef } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n setBusy,\n setIdle,\n setLoginModal,\n setDownlineModal,\n setShareReferralModal,\n} from \"../../redux/AppAction.js\";\nimport {\n find,\n} from \"lodash\";\nimport { themeIcons } from \"config/theme\";\nimport {\n Spinner,\n} from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\n\n// ReferralBanner component\nconst ReferralBanner = () => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n\n var { heartBeat } = useSelector((state) => state.authState);\n const [showCodeAlert, setShowCodeAlert] = useState(false);\n const [referralBanner, setReferralBanner] = useState(\"\");\n const [referralBannerMobile, setReferralBannerMobile] = useState(\"\");\n const [uplineLoading, setUplineLoading] = useState(false);\n var referralDetails = useSelector((state) => state.appState.member.referralCode);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [copy1, setCopy1] = useState(false);\n const [copy2, setCopy2] = useState(false);\n var _codeRef = useRef();\n var _linkRef = useRef();\n const _ALERT_TIMEOUT = 3000;\n const [registerUrl, setRegisterUrl] = useState(\"\");\n const _APPEND_REGISTER_URL = \"/register?code=\";\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n\n const tempReferralBanner = find(companyIcons, { iconCategory: \"referral_banner\" });\n if (tempReferralBanner) {\n setReferralBanner(tempReferralBanner.iconImage||tempReferralBanner.defaultImage);\n }\n\n const tempReferralBannerMobile = find(companyIcons, { iconCategory: \"referral_banner_mobile\" });\n if (tempReferralBannerMobile) {\n setReferralBannerMobile(tempReferralBannerMobile.iconImage||tempReferralBannerMobile.defaultImage);\n }\n _dispatch(setIdle());\n }\n\n const copyItem = (item) => {\n navigator.clipboard.writeText(item.current.innerText);\n\n setCopy1(true)\n setTimeout(() => setCopy1(false), [_ALERT_TIMEOUT]);\n };\n const copyItem2 = (item) => {\n navigator.clipboard.writeText(item.current.innerText);\n\n setCopy2(true)\n setTimeout(() => setCopy2(false), [_ALERT_TIMEOUT]);\n };\n\n useEffect(() => {\n getCompanyIcon();\n\n }, []);\n\n useEffect(() => {\n setRegisterUrl(window.location.origin + _APPEND_REGISTER_URL + referralDetails);\n }, [referralDetails]);\n\n return (\n <>\n {heartBeat && (\n
\n
\n  \n
\n {showCodeAlert && (\n
\n
\n
\n \n
\n
\n

\n {t(\"COPY_SUCCESS\")}\n

\n
\n
\n
\n )}\n
\n
\n {referralBanner ?\n\n \n :\n \n }\n {referralBannerMobile ?\n\n \n :\n \n }\n
\n
\n
\n {t(\"MY_REFERRAL_CODE\")}\n
\n
\n
\n {/* {referralDetails} */}\n {uplineLoading ? (\n \n ) : (\n referralDetails\n )}\n
\n
\n {copy1 ? t(\"COPIED\") : ( copyItem(_codeRef)}\n className=\"vicon\"\n />)}\n
\n
\n
\n
\n
\n {t(\"MY_REFERRAL_LINK\")}\n
\n
\n
\n {uplineLoading ? (\n \n ) : (\n registerUrl\n )}\n
\n
\n {copy2 ? t(\"COPIED\") : ( copyItem2(_linkRef)}\n className=\"vicon\"\n />)}\n
\n
\n
\n\n
\n {\n if (heartBeat) {\n _dispatch(setShareReferralModal(true));\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n >\n {t(\"SHARE\")}\n
\n {\n if (heartBeat) {\n _dispatch(setDownlineModal(true));\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n style={{ cursor: \"pointer\" }}\n >\n {t(\"DOWNLINE\")}\n
\n
\n {\n if (heartBeat) {\n _history.push(WebUrl._URL_REFERRAL);\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n style={{ cursor: \"pointer\" }}\n >\n {t(\"MORE_INFO\")}\n
\n
\n \n \n \n )}\n \n )\n}\n\nexport default ReferralBanner; ","import React, { useEffect, useRef, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n setBusy,\n setIdle,\n bindGames,\n setGameLobbyModal,\n setLoginModal,\n bindHotGames,\n} from \"../../redux/AppAction.js\";\nimport {\n map,\n find,\n filter,\n includes,\n} from \"lodash\";\nimport GameLobbyModal from \"components/template_1/GameLobbyModal\";\nimport FallBackImage from \"components/template_1/FallBackImage\";\nimport LoadingGames from \"components/template_1/LoadingGames\";\nimport SwiperCore, { Autoplay } from 'swiper';\nimport {\n stringIsNullOrEmpty,\n} from \"../../util/Util\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\n\n// ProviderList component\nconst ProviderList = ({ updateMasterProductId, updateSelectedGameIsSeamless, updateSelectedGameName, updateProductGameId,\n updatePopBannerImage, updateTitle, updateCategoryTitle, UpdateIsSupportIframe, updateProviderName , pageName}) => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n\n // Swiper Plugins\n SwiperCore.use([Autoplay]);\n var { heartBeat } = useSelector((state) => state.authState);\n const memberData = useSelector((state) => state.appState.member);\n\n const [gameCategoryActive, setGameCategoryActive] = useState();\n const [gameCategories, setGameCategories] = useState([]);\n const [games, setGames] = useState(\n useSelector((state) => state.appState.games)\n );\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [masterProductId, setMasterProductId] = useState(0);\n const [isApp, setIsApp] = useState(false);\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [selectedGameHasOwnLobby, setSelectedGameHasOwnLobby] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [showPregamePopup, setShowPregamePopup] = useState(false);\n const [productGameId, setProductGameId] = useState(0);\n const [toLobbyBtn, SetToLobbyBtn] = useState(false);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [productCommRate, setProductCommRate] = useState([]);\n const [appUrl, setAppUrl] = useState(\"\");\n const [clubFee, setClubFee] = useState(0);\n const latestBets = useSelector((state) => state.appState.latestBets);\n const [isLoading, setIsLoading] = useState(false);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState();\n const [teamBanner, setTeamBanner] = useState();\n const [coinIcon, setCoinIcon] = useState();\n const [logo, setLogo] = useState();\n const [noDataBg, setNoDataBg] = useState();\n const [referralBannerMobile, setReferralBannerMobile] = useState(\"\");\n const [defaultGameIcon, setDefaultGameIcon] = useState();\n const [isSupportIframeState, setIsSupportIframeState] = useState(false);\n const [categoryTitle, setCategoryTitle] = useState(\"\");\n const [providerName, setProviderName] = useState(\"\");\n const [referralBanner, setReferralBanner] = useState(\"\");\n const [initFlag, setInitFlag] = useState(false);\n const [iframeAlert, setIsIframeAlert] = useState(false);\n\n const [selectedGameCategoryGames, setSelectedGameCategoryGames] = useState([]);\n const [isNewWindow, setIsNewWindow] = useState(false);\n \n const availableProductCategories = useSelector((state) => state.appState.availableProductCategories);\n const [hotGames, setHotgames] = useState(\n useSelector((state) => state.appState.hotGames)\n );\n const [activeLanguageId, setActiveLanguageId] = useState(0);\n const isHotGameEnabled = useSelector(\n (state) => state.appState.isHotGameEnabled\n );\n const isCasinoLobbyEnabled = useSelector(\n (state) => state.appState.isCasinoLobbyEnabled\n );\n const containerRef = useRef(null);\n\n useEffect(() => {\n getCompanyIcon();\n init()\n }, []);\n\n\n useEffect(() => {\n if(games.length){\n const container = document.getElementById(\"game-category-id\");\n const leftButton = document.querySelector(\".left-scroll\");\n const rightButton = document.querySelector(\".right-scroll\");\n\n if (!container || !leftButton || !rightButton) return;\n\n const scrollAmount = 100; // scroll speed\n\n const scrollLeft = () => {\n container.scrollBy({ left: -scrollAmount, behavior: \"smooth\" });\n };\n\n const scrollRight = () => {\n container.scrollBy({ left: scrollAmount, behavior: \"smooth\" });\n };\n\n leftButton.addEventListener(\"click\", scrollLeft);\n rightButton.addEventListener(\"click\", scrollRight);\n\n\n if (containerRef.current) {\n const containerCurr = containerRef.current;\n \n const activeElement = containerRef.current.querySelector(`.t3-game-category-item.active`); // More specific selector\n \n if (activeElement) {\n // Calculate the desired scroll position\n const activeElementLeft = activeElement.offsetLeft;\n const containerLeft = container.offsetLeft;\n // Calculate the amount to scroll\n let scrollAmountActive = 0;\n\n scrollAmountActive = activeElementLeft - ((containerCurr.getBoundingClientRect().width-activeElement.getBoundingClientRect().width+containerLeft)/2);\n \n if (scrollAmount !== 0) { // Only scroll if needed\n containerCurr.scrollBy({ left: scrollAmountActive, behavior: \"smooth\" });\n }\n }\n }\n\n return () => {\n leftButton.removeEventListener(\"click\", scrollLeft);\n rightButton.removeEventListener(\"click\", scrollRight);\n };\n }\n \n }, [initFlag, games]);\n\n useEffect(async () => {\n \n if (gameCategoryActive && games.length > 0) {\n if (gameCategoryActive.title === \"All\") {\n setSelectedGameCategoryGames(games);\n }\n else if (gameCategoryActive.title === \"Hot Games\") {\n\n if (hotGames.length === 0) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_HOT_GAMES\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n let data = responseJson[ApiKey._API_DATA_KEY];\n if (data == null) {\n data = [];\n }\n // Map gameId as Id - because GameList uses gameId\n data.map((game, index) => {\n game[\"id\"] = game[\"gameId\"];\n })\n setSelectedGameCategoryGames(data);\n _dispatch(bindHotGames(data));\n }\n } else {\n setSelectedGameCategoryGames(hotGames)\n }\n\n }\n else {\n var selectedCategoryGameList = games.filter(game => game[\"categoryTitle\"] === gameCategoryActive.title);\n setSelectedGameCategoryGames(selectedCategoryGameList);\n }\n }\n\n\n }, [gameCategoryActive, games]);\n\n // useEffect(() => {\n // if (games.length) {\n // setSelectedGameCategoryGames(games);\n // }\n // }, [games]);\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n\n const gameCategories = [];\n let pathnamesToFilter = [\"/game-list\", \"/sports\", \"/casino\", \"/slots\", \"/keno\", \"/fish\", \"/e-sport\", \"/arcade\", \"/crash\", \"/exchange\"];\n\n if(isHotGameEnabled){\n pathnamesToFilter.push(\"/hot-games\")\n }\n const gameList = filter(companyIcons, item => includes(pathnamesToFilter, item.pathname));\n if (gameList) {\n\n gameList.forEach(function (x) {\n gameCategories.push({\n id: x.iconName == \"All\" ? -1 : x.id,\n title: x.iconName,\n image: x.iconImage||x.defaultImage,\n });\n });\n \n let defaultCategory = gameCategories.findIndex((x)=> x.title === \"Slots\")\n if(defaultCategory && defaultCategory >= 0){\n setGameCategoryActive(gameCategories[defaultCategory])\n \n } else {\n setGameCategoryActive(gameCategories[0])\n }\n setGameCategories(gameCategories);\n\n }\n\n const teamBanner = find(companyIcons, { iconCategory: \"team_banner\" });\n if (teamBanner) {\n setTeamBanner(teamBanner.iconImage||teamBanner.defaultImage);\n }\n\n const coinIcon = find(companyIcons, { iconCategory: \"coin_icon\" });\n if (coinIcon) {\n setCoinIcon(coinIcon.iconImage||coinIcon.defaultImage);\n }\n\n const logo = find(companyIcons, { iconCategory: \"logo\" });\n if (logo) {\n setLogo(logo.iconImage||logo.defaultImage);\n }\n\n const noDataBg = find(companyIcons, { iconCategory: \"no_data_background\" });\n if (noDataBg) {\n setNoDataBg(noDataBg.iconImage||noDataBg.defaultImage);\n }\n\n const tempReferralBanner = find(companyIcons, { iconCategory: \"referral_banner\" });\n if (tempReferralBanner) {\n setReferralBanner(tempReferralBanner.iconImage||tempReferralBanner.defaultImage);\n }\n\n const tempReferralBannerMobile = find(companyIcons, { iconCategory: \"referral_banner_mobile\" });\n if (tempReferralBannerMobile) {\n setReferralBannerMobile(tempReferralBannerMobile.iconImage||tempReferralBannerMobile.defaultImage);\n }\n\n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n async function init() {\n \n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_CATEGORY_GROUP_GAME_DASHBOARD +\n \"?isCasinoLobbyEnabled=\" + isCasinoLobbyEnabled\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setGames(responseJson[ApiKey._API_DATA_KEY]);\n _dispatch(bindGames(responseJson[ApiKey._API_DATA_KEY]));\n /// preload\n responseJson[ApiKey._API_DATA_KEY].map((game, index) => {\n let image = new Image();\n image.src = game[\"image\"];\n\n window[game[\"image\"]] = image;\n });\n } else {\n throw responseJson[ApiKey._API_MESSAGE_KEY];\n }\n\n setInitFlag(true);\n }\n\n async function startGame(\n gameId,\n hasOwnLobby,\n masterProductId,\n gameName,\n isSeamless,\n isApp,\n appUrl,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframe,\n categoryTitle,\n providerName,\n popoutBanner\n ) {\n setSelectedGameName(gameName);\n setMasterProductId(masterProductId);\n setIsApp(isApp);\n setAppDeepLink(appDeepLink);\n setPackageNameKeyword(packageNameKeyword);\n setSelectedGameHasOwnLobby(hasOwnLobby);\n setSelectedGameIsSeamless(isSeamless);\n setIsSupportIframeState(isSupportIframe);\n setCategoryTitle(categoryTitle);\n setProductGameId(gameId);\n setProviderName(providerName);\n console.log(categoryTitle)\n\n if (pageName == \"HOME\" && hasOwnLobby !== true) {\n updateMasterProductId(masterProductId);\n updateSelectedGameIsSeamless(isSeamless);\n updateSelectedGameName(gameName);\n updateProductGameId(gameId);\n updatePopBannerImage(popoutBanner);\n updateTitle(t(\"HOME\"))\n updateCategoryTitle(categoryTitle);\n UpdateIsSupportIframe(isSupportIframe);\n updateProviderName(providerName);\n }\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\n _dispatch(setGameLobbyModal(true));\n } else {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: t(\"HOME\"),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n } else {\n setIsIframeAlert(true);\n }\n\n }\n } else {\n if (isSeamless == false) {\n if(categoryTitle == \"Casino\" && !isCasinoLobbyEnabled){\n if (pageName == \"HOME\") {\n updateMasterProductId(masterProductId);\n updateSelectedGameIsSeamless(isSeamless);\n updateSelectedGameName(gameName);\n updateProductGameId(gameId);\n updatePopBannerImage(popoutBanner);\n updateTitle(t(\"HOME\"))\n updateCategoryTitle(categoryTitle);\n UpdateIsSupportIframe(isSupportIframe);\n updateProviderName(providerName);\n }\n _dispatch(setGameLobbyModal(true));\n return;\n }\n\n setIsLoading(true);\n \n setShowPregamePopup(true);\n getProductComRate(gameName);\n setProductGameId(gameId);\n SetToLobbyBtn(true);\n getRolloverProgress(gameId);\n\n var path = WebUrl._URL_GAME_LOBBY +\n \"?name=\" +\n gameName +\n \"&id=\" +\n gameId +\n \"&languageId=\" +\n memberData[\"languageSetting\"] +\n \"&category=\" +\n categoryTitle;\n\n var breadcrumbData = [{\n pageName: t('HOME'),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }, {\n pageName: gameName,\n location: path\n }];\n\n var state = {\n breadcrumbData: breadcrumbData\n }\n\n _history.push(path, state);\n\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n\n }\n\n setIsLoading(false);\n }\n }\n }\n\n async function getProductComRate(selectedGameName) {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.productName === selectedGameName\n );\n\n if (data.length > 0) {\n setProductCommRate(data[0]);\n }\n }\n }\n\n async function getRolloverProgress(masterProductId) {\n setRolloverBalance(\"\");\n setRolloverTarget(\"\");\n if (masterProductId != \"0\" && !stringIsNullOrEmpty(masterProductId)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n }\n }\n }\n }\n }\n\n return (\n <>\n {iframeAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setIsIframeAlert(false);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n startGame(\n productGameId,\n selectedGameHasOwnLobby,\n masterProductId,\n selectedGameName,\n selectedGameIsSeamless,\n isApp,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframeState\n )\n setIsIframeAlert(false);\n }}\n >\n {t(\"CONTINUE\")}\n \n (_dispatch(setGameLobbyModal(false)), setIsIframeAlert(false))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"CLOSE\")}\n \n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n \n \n
\n )}\n {games?.length > 0 && (\n <>\n
\n
\n {gameCategories &&\n gameCategories.length > 0 &&\n map(gameCategories, (item, index) => {\n // CHRIS 20250107 TODO: Instead of using iconSettings to configure sideMenuList, create a separate sidenav menu list configurator, iconSettings only use for showing icon\n // Only apply this filtering criteria if availableProductCategories is not empty\n if( item.title !==\"Hot Games\" && availableProductCategories.length > 0) {\n // Call gameCategories to get only the available categories - hide categories that are not available\n let availableProductCategory = availableProductCategories.filter((productCategory) => {\n return productCategory.productCategory.title.trim() == item.title.trim();\n });\n\n if (availableProductCategory.length == 0 ) {\n return null;\n }\n }\n\n return (\n \n setGameCategoryActive({\n id: item.id,\n title: item.title,\n })\n }\n >\n
\n \n
\n
{t(item.title)}
\n
\n );\n })}\n
\n
\n
\n
\n {selectedGameCategoryGames?.length > 0 ? (\n
\n
\n {/* */}\n {games.length == 0 && }\n
\n {selectedGameCategoryGames.map((game, index) => {\n return (\n {\n if (heartBeat) {\n //updateGameDetail()\n setPopupBannerImage(game[\"popupBannerImage\"]);\n if (game[\"gameUm\"] !== true) {\n setIsSupportIframeState(game[\"isSupportIframe\"])\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\"masterProductIsSeamless\"],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"],\n game[\"categoryTitle\"],\n game[\"gameName\"],\n game[\"popupBannerImage\"]\n );\n //}\n //else {\n // setSelectedGameName(game[\"gameName\"]);\n // setMasterProductId(game[\"masterProductId\"]);\n // setIsApp(game[\"isApp\"]);\n // setAppDeepLink(game[\"appDeepLink\"]);\n // setPackageNameKeyword(game[\"packageNameKeyword\"]);\n // setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n // setSelectedGameIsSeamless(game[\"isSeamless\"]);\n // setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n // if (isApp && !stringIsNullOrEmpty(appUrl)) {\n // setAppUrl(game[\"appUrl\"]);\n // }\n // setProductGameId(game[\"id\"]);\n // setIsIframeAlert(true);\n //}\n }\n /* if (walletsDetails.isValidForPromotion) {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: \"Custom,\n content: t(\"PLEASE_CLAIM_PROMO_BEFORE_ENTER_GAME\"),\n showCancel: true,\n onConfirm: () => {\n setTransactionValidForPromo();\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\"masterProductIsSeamless\"],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"]\n );\n }\n })\n );\n } else {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\"masterProductIsSeamless\"],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"]\n );\n } */\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n >\n
\n
\n
\n \n {game[\"gameUm\"] == true && (\n <>\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n )}\n
\n {game[\"gameUm\"] == false && (\n
\n \n \n \n \n \n \n \n
\n )}\n
\n
\n
\n
{game[\"gameName\"]}
\n
\n
\n );\n })}\n \n \n \n ) : (\n
\n
\n \n
\n
\n {t(\"NO_DATA_FOUND2\")}\n
\n
\n )\n }\n \n )}\n\n {pageName != \"HOME\" &&\n \n }\n \n\n \n )\n}\n\nexport default ProviderList;\n","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n ApiKey,\n ApiUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n setBusy,\n setIdle,\n} from \"../../redux/AppAction.js\";\nimport {\n map,\n filter,\n} from \"lodash\";\nimport Slider from \"react-slick\";\nimport SwiperCore, { Autoplay } from 'swiper';\nimport FallBackImage from \"components/template_1/FallBackImage\";\n\nconst RecentPayout = (props) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n // Swiper Plugins\n SwiperCore.use([Autoplay]);\n\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [payoutList, setPayoutList] = useState([]);\n const [defaultGameIcon, setDefaultGameIcon] = useState();\n const companyCurrencySymbol = useSelector((state) => state.appState.currencySymbol);\n\n const payoutSlick = {\n className: \"slider variable-width\",\n dots: false,\n infinite: true,\n // centerMode: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n variableWidth: true,\n draggable: false,\n autoplay: true,\n speed: 1000,\n autoplaySpeed: 3000,\n arrows: false,\n responsive: [\n {\n breakpoint: 900,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 1,\n },\n },\n {\n breakpoint: 768,\n settings: {\n className: \"\",\n variableWidth: false,\n slidesToShow: 3,\n slidesToScroll: 1,\n vertical: true,\n verticalSwiping: true,\n draggable: false,\n autoplay: true,\n touchMove: false,\n },\n }\n ]\n };\n\n useEffect(() => {\n getCompanyIcon()\n getRecentPayout();\n }, []);\n\n\n const getRecentPayout = async () => {\n var responseJsonPayout = await ApiEngine.get(\n ApiUrl._API_GET_RECENT_PAYOUT\n );\n if (responseJsonPayout[ApiKey._API_SUCCESS_KEY]) {\n setPayoutList(responseJsonPayout[ApiKey._API_DATA_KEY])\n }\n }\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n \n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n return (\n <>\n {\n payoutList?.length > 0 && (\n
\n
\n

\n {t(\"RECENT\")} {t(\"PAYOUT\")}\n

\n
\n \n {\n map(payoutList, (item, index) => {\n return (\n
\n
\n
\n \n
\n {/* */}\n
\n
{item.game}
\n
{item.username}
\n
{companyCurrencySymbol}{item.winning.toFixed(2)}
\n
\n\n
\n\n
\n )\n })\n }\n\n
\n\n
\n
\n
\n )\n }\n \n )\n}\n\nexport default RecentPayout;","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n setBusy,\n setIdle,\n showMessage,\n bindGamesRecommended,\n setGameLobbyModal,\n setLoginModal,\n} from \"../../redux/AppAction.js\";\nimport {\n stringIsNullOrEmpty,\n} from \"../../util/Util\";\nimport {\n map,\n filter,\n isEmpty,\n} from \"lodash\";\nimport Slider from \"react-slick\";\nimport 'swiper/swiper-bundle.css';\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport LoadingGames from \"components/template_1/LoadingGames\";\nimport FallBackImage from \"components/template_1/FallBackImage\";\n\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\nconst RecommendedSlots = ({ updateMasterProductId, updateSelectedGameIsSeamless, updateSelectedGameName, updateProductGameId,\n updatePopBannerImage, updateTitle, updateCategoryTitle, UpdateIsSupportIframe, updateProviderName, pageName }) => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n const slotSlickRef = React.useRef(null);\n\n var { heartBeat } = useSelector((state) => state.authState);\n const memberData = useSelector((state) => state.appState.member);\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [masterProductId, setMasterProductId] = useState(0);\n const [isApp, setIsApp] = useState(false);\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [selectedGameHasOwnLobby, setSelectedGameHasOwnLobby] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [showPregamePopup, setShowPregamePopup] = useState(false);\n const [productGameId, setProductGameId] = useState(0);\n const [toLobbyBtn, SetToLobbyBtn] = useState(false);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [productCommRate, setProductCommRate] = useState([]);\n const [appUrl, setAppUrl] = useState(\"\");\n const [clubFee, setClubFee] = useState(0);\n const [activeLanguageId, setActiveLanguageId] = useState(0);\n const [recommendedSlotGames, setRecommendedSlotGames] = useState(\n useSelector((state) => state.appState.gamesRecommended.slotGames)\n );\n const [recommendedSlotGamesCount, setRecommendedSlotGamesCount] = useState(\n useSelector((state) => state.appState.gamesRecommended.casinoGamesCount)\n );\n const [recommendedCasinoGames, setRecommendedCasinoGames] = useState(\n useSelector((state) => state.appState.gamesRecommended.casinoGames)\n );\n const [recommendedCasinoGamesCount, setRecommendedCasinoGamesCount] =\n useState(\n useSelector((state) => state.appState.gamesRecommended.casinoGamesCount)\n );\n\n const [dragging, setDragging] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState();\n const [defaultGameIcon, setDefaultGameIcon] = useState();\n const [isSupportIframeState, setIsSupportIframeState] = useState(false);\n const [categoryTitle, setCategoryTitle] = useState(\"\");\n const [iframeAlert, setIsIframeAlert] = useState(false);\n const [providerName, setProviderName] = useState(\"\");\n const [loadingRecommendedGames, setLoadingRecommendedGames] = useState(false);\n const [isGameLobbyModal, setIsGameLobbyModal] = useState(false);\n const [isNewWindow, setIsNewWindow] = useState(false);\n\n\n const slotSlick = {\n slidesToShow: 1,\n dots: false,\n arrows: false,\n lazyLoad: true,\n swipe: true,\n infinite: false,\n swipeToSlide: true,\n speed: 1000,\n beforeChange: () => setDragging(true),\n afterChange: () => setDragging(false),\n };\n\n\n useEffect(() => {\n getCompanyIcon();\n getNewGames()\n \n }, []);\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n\n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n async function getNewGames() {\n if (recommendedCasinoGamesCount == 0) {\n setLoadingRecommendedGames(true);\n let responseJson = await ApiEngine.get(\n ApiUrl._API_HOMEPAGE_PRODUCTS +\n \"?languageId=\" +\n activeLanguageId + \"&type=Recommended\"\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n /////get recommended Slots\n const data = responseJson[ApiKey._API_DATA_KEY].recommendedGames.filter(\n (x) => x.categoryTitle === \"Slots\"\n );\n setRecommendedSlotGamesCount(data.length);\n\n let groupedArray = [];\n\n for (let i = 0; i < data.length; i += 12) {\n groupedArray.push(data.slice(i, i + 12));\n }\n setRecommendedSlotGames(groupedArray);\n\n /////get recommended Casino\n const casinoRecommendedGame = responseJson[\n ApiKey._API_DATA_KEY\n ].recommendedGames.filter((x) => x.categoryTitle === \"Casino\");\n\n setRecommendedCasinoGamesCount(casinoRecommendedGame.length);\n let casinoGameGrouped = [];\n\n for (let i = 0; i < casinoRecommendedGame.length; i += 12) {\n casinoGameGrouped.push(casinoRecommendedGame.slice(i, i + 12));\n }\n setRecommendedCasinoGames(casinoGameGrouped);\n setLoadingRecommendedGames(false);\n\n \n\n _dispatch(\n bindGamesRecommended({\n slotGamesCount: data.length,\n slotGames: groupedArray,\n casinoGamesCount: casinoRecommendedGame.length,\n casinoGames: casinoGameGrouped,\n })\n );\n }\n setLoadingRecommendedGames(false);\n }\n \n }\n\n async function startGame(\n gameId,\n hasOwnLobby,\n masterProductId,\n gameName,\n isSeamless,\n isApp,\n appUrl,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframe,\n categoryTitle,\n providerName,\n popoutBanner\n ) {\n setSelectedGameName(gameName);\n setMasterProductId(masterProductId);\n setIsApp(isApp);\n setAppDeepLink(appDeepLink);\n setPackageNameKeyword(packageNameKeyword);\n setSelectedGameHasOwnLobby(hasOwnLobby);\n setSelectedGameIsSeamless(isSeamless);\n setIsSupportIframeState(isSupportIframe);\n setCategoryTitle(categoryTitle);\n setProviderName(providerName);\n\n if (pageName == \"HOME\") {\n updateMasterProductId(masterProductId);\n updateSelectedGameIsSeamless(isSeamless);\n updateSelectedGameName(gameName);\n updateProductGameId(gameId);\n updatePopBannerImage(popoutBanner);\n updateTitle(t(\"HOME\"))\n updateCategoryTitle(categoryTitle);\n UpdateIsSupportIframe(isSupportIframe);\n updateProviderName(providerName);\n }\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n setIsGameLobbyModal(true);\n } else {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: t(\"HOME\"),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n } else {\n window.open(\n ApiUrl._API_START +\n \"?gameId=\" +\n gameId + \"&device=\" + (window.innerWidth <= 768 ? \"m\" : \"d\")\n );\n }\n\n }\n } else {\n if (isSeamless == false) {\n setIsLoading(true);\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n\n }\n\n setShowPregamePopup(true);\n getProductComRate(gameName);\n setProductGameId(gameId);\n SetToLobbyBtn(true);\n getRolloverProgress(gameId);\n\n var path = WebUrl._URL_GAME_LOBBY +\n \"?name=\" +\n gameName +\n \"&id=\" +\n gameId +\n \"&languageId=\" +\n memberData[\"languageSetting\"] +\n \"&category=\" +\n categoryTitle;\n\n var breadcrumbData = [{\n pageName: t('HOME'),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }, {\n pageName: gameName,\n location: path\n }];\n\n var state = {\n breadcrumbData: breadcrumbData\n }\n\n _history.push(path, state);\n setIsLoading(false);\n }\n }\n }\n\n async function setTransactionValidForPromo(gameId) {\n _dispatch(setBusy());\n let responseJson = await ApiEngine.get(\n ApiUrl._API_UPDATE_TRANSACTION_VALID_FOR_PROMO\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n // setIsValidForPromotion(false);\n }\n _dispatch(setIdle());\n }\n\n async function getProductComRate(selectedGameName) {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.productName === selectedGameName\n );\n\n if (data.length > 0) {\n setProductCommRate(data[0]);\n }\n }\n }\n\n async function getRolloverProgress(masterProductId) {\n setRolloverBalance(\"\");\n setRolloverTarget(\"\");\n if (masterProductId != \"0\" && !stringIsNullOrEmpty(masterProductId)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n }\n }\n }\n }\n }\n\n return (\n <>\n {iframeAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setIsIframeAlert(false);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n startGame(\n productGameId,\n selectedGameHasOwnLobby,\n masterProductId,\n selectedGameName,\n selectedGameIsSeamless,\n isApp,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframeState\n )\n setIsIframeAlert(false);\n }}\n >\n {t(\"CONTINUE\")}\n \n (_dispatch(setGameLobbyModal(false)), setIsIframeAlert(false))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"CLOSE\")}\n \n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n \n \n
\n )}\n {recommendedSlotGames?.length > 0 &&\n
\n
\n
\n

\n {t(\"RECOMMENDED\")} {t(\"SLOTS\").toUpperCase()}\n

\n
\n
\n
\n {t(\"ALL\")} {recommendedSlotGamesCount}{\" \"}\n {t(\"SLOTS\")}\n
\n {slotSlickRef?.current?.innerSlider.props.children.length > 1 && <>\n
\n
slotSlickRef?.current?.slickPrev()}>\n \n
\n
slotSlickRef?.current?.slickNext()}>\n \n
\n
\n \n }\n
\n
\n\n
\n {recommendedSlotGames.length == 0 && }\n \n {recommendedSlotGames &&\n recommendedSlotGames.length &&\n map(recommendedSlotGames, (item, index) => {\n return (\n
\n {item &&\n item.length &&\n map(item, (game, index2) => {\n return (\n {\n if (dragging) {\n e.preventDefault();\n } else {\n if (heartBeat) {\n setPopupBannerImage(\n game[\"popupBannerImage\"]\n );\n if (game[\"gameUm\"] !== true) {\n if (\n walletsDetails.isValidForPromotion\n ) {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(\n \"PLEASE_CLAIM_PROMO_BEFORE_ENTER_GAME\"\n ),\n showCancel: true,\n onConfirm: () => {\n setTransactionValidForPromo();\n setIsSupportIframeState(game[\"isSupportIframe\"])\n if (game[\"isSupportIframe\"]) {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\n \"masterProductIsSeamless\"\n ],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"],\n game[\"categoryTitle\"]\n );\n }\n else {\n setSelectedGameName(game[\"gameName\"]);\n setMasterProductId(game[\"masterProductId\"]);\n setIsApp(game[\"isApp\"]);\n setAppDeepLink(game[\"appDeepLink\"]);\n setPackageNameKeyword(game[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(game[\"isSeamless\"]);\n setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(game[\"appUrl\"]);\n }\n setProductGameId(game[\"id\"]);\n setIsIframeAlert(true);\n }\n },\n })\n );\n } else {\n setIsSupportIframeState(game[\"isSupportIframe\"])\n if (game[\"isSupportIframe\"]) {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\"masterProductIsSeamless\"],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"],\n game[\"categoryTitle\"]\n );\n } else {\n setSelectedGameName(game[\"gameName\"]);\n setMasterProductId(game[\"masterProductId\"]);\n setIsApp(game[\"isApp\"]);\n setAppDeepLink(game[\"appDeepLink\"]);\n setPackageNameKeyword(game[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(game[\"isSeamless\"]);\n setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(game[\"appUrl\"]);\n }\n setProductGameId(game[\"id\"]);\n setIsIframeAlert(true);\n }\n\n }\n }\n } else {\n _dispatch(setLoginModal(true));\n }\n }\n }}\n >\n
\n
\n
\n {!isEmpty(game.iconImage) || !isEmpty(game.defaultImage) ? (\n \n ) : (\n \"\"\n )}\n\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n
\n
{game.gameName}
\n
\n
\n );\n })}\n
\n );\n })}\n \n
\n
\n }\n \n )\n\n}\n\nexport default RecommendedSlots","import moment from \"moment\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n setBusy,\n setIdle,\n showMessage,\n bindGamesFeatured,\n setGameLobbyModal,\n setLoginModal,\n} from \"../../redux/AppAction.js\";\nimport {\n stringIsNullOrEmpty,\n} from \"../../util/Util\";\nimport {\n map,\n filter,\n} from \"lodash\";\nimport Slider from \"react-slick\";\nimport SwiperCore, { Autoplay } from 'swiper';\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport LoadingGames from \"components/template_1/LoadingGames\";\nimport FallBackImage from \"components/template_1/FallBackImage\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\nconst FeaturedSlots = ({ updateMasterProductId, updateSelectedGameIsSeamless, updateSelectedGameName, updateProductGameId,\n updatePopBannerImage, updateTitle, updateCategoryTitle, UpdateIsSupportIframe, updateProviderName, pageName }) => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n const featuredSlickRef = React.useRef(null);\n\n // Swiper Plugins\n SwiperCore.use([Autoplay]);\n\n var { heartBeat } = useSelector((state) => state.authState);\n const memberData = useSelector((state) => state.appState.member);\n const _FIRST_TAB = 1;\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [masterProductId, setMasterProductId] = useState(0);\n const [isApp, setIsApp] = useState(false);\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [selectedGameHasOwnLobby, setSelectedGameHasOwnLobby] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [showPregamePopup, setShowPregamePopup] = useState(false);\n const [productGameId, setProductGameId] = useState(0);\n const [toLobbyBtn, SetToLobbyBtn] = useState(false);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [productCommRate, setProductCommRate] = useState([]);\n const [appUrl, setAppUrl] = useState(\"\");\n const [clubFee, setClubFee] = useState(0);\n const [activeLanguageId, setActiveLanguageId] = useState(0);\n \n\n const [featuredSlotGames, setFeaturedSlotGames] = useState(\n useSelector((state) => state.appState.gamesFeatured.slotGames)\n );\n\n const [featuredSlotGamesCount, setFeaturedSlotGamesCount] = useState(\n useSelector((state) => state.appState.gamesFeatured.slotGamesCount)\n );\n \n const [dragging, setDragging] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n\n \n\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState();\n \n const [defaultGameIcon, setDefaultGameIcon] = useState();\n \n const [isSupportIframeState, setIsSupportIframeState] = useState(false);\n const [categoryTitle, setCategoryTitle] = useState(\"\");\n const [iframeAlert, setIsIframeAlert] = useState(false);\n const arraySlider = Array(8).fill();\n const [providerName, setProviderName] = useState(\"\");\n const [loadingRecommendedGames, setLoadingRecommendedGames] = useState(false);\n\n const [isGameLobbyModal, setIsGameLobbyModal] = useState(false);\n const [isNewWindow, setIsNewWindow] = useState(false);\n \n\n const slotSlick = {\n slidesToShow: 1,\n dots: false,\n arrows: false,\n lazyLoad: true,\n swipe: true,\n infinite: false,\n swipeToSlide: true,\n speed: 1000,\n beforeChange: () => setDragging(true),\n afterChange: () => setDragging(false),\n };\n\n\n useEffect(() => {\n getCompanyIcon();\n getNewGames()\n\n }, []);\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n\n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n async function getNewGames() {\n if (featuredSlotGamesCount == 0) {\n setLoadingRecommendedGames(true);\n let responseJson = await ApiEngine.get(\n ApiUrl._API_HOMEPAGE_PRODUCTS +\n \"?languageId=\" +\n activeLanguageId + \"&type=Featured\"\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n /////get recommended Slots\n const featuredGame = responseJson[\n ApiKey._API_DATA_KEY\n ].isFeaturedGame.filter((x) => x.categoryTitle === \"Slots\");\n\n setFeaturedSlotGamesCount(featuredGame.length);\n\n let featuredGameGrouped = [];\n\n for (let i = 0; i < featuredGame.length; i += 12) {\n featuredGameGrouped.push(featuredGame.slice(i, i + 12));\n }\n setFeaturedSlotGames(featuredGameGrouped);\n\n _dispatch(\n bindGamesFeatured({\n slotGamesCount: featuredGame.length,\n slotGames: featuredGameGrouped,\n }));\n }\n setLoadingRecommendedGames(false);\n\n }\n \n }\n\n async function startGame(\n gameId,\n hasOwnLobby,\n masterProductId,\n gameName,\n isSeamless,\n isApp,\n appUrl,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframe,\n categoryTitle,\n providerName,\n popoutBanner\n ) {\n setSelectedGameName(gameName);\n setMasterProductId(masterProductId);\n setIsApp(isApp);\n setAppDeepLink(appDeepLink);\n setPackageNameKeyword(packageNameKeyword);\n setSelectedGameHasOwnLobby(hasOwnLobby);\n setSelectedGameIsSeamless(isSeamless);\n setIsSupportIframeState(isSupportIframe);\n setCategoryTitle(categoryTitle);\n setProviderName(providerName);\n\n if (pageName == \"HOME\") {\n updateMasterProductId(masterProductId);\n updateSelectedGameIsSeamless(isSeamless);\n updateSelectedGameName(gameName);\n updateProductGameId(gameId);\n updatePopBannerImage(popoutBanner);\n updateTitle(t(\"HOME\"))\n updateCategoryTitle(categoryTitle);\n UpdateIsSupportIframe(isSupportIframe);\n updateProviderName(providerName);\n }\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n setIsGameLobbyModal(true);\n } else {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: t(\"HOME\"),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n } else {\n window.open(\n ApiUrl._API_START +\n \"?gameId=\" +\n gameId + \"&device=\" + (window.innerWidth <= 768 ? \"m\" : \"d\")\n );\n }\n\n }\n } else {\n if (isSeamless == false) {\n setIsLoading(true);\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n\n }\n\n setShowPregamePopup(true);\n getProductComRate(gameName);\n setProductGameId(gameId);\n SetToLobbyBtn(true);\n getRolloverProgress(gameId);\n\n var path = WebUrl._URL_GAME_LOBBY +\n \"?name=\" +\n gameName +\n \"&id=\" +\n gameId +\n \"&languageId=\" +\n memberData[\"languageSetting\"] +\n \"&category=\" +\n categoryTitle;\n\n var breadcrumbData = [{\n pageName: t('HOME'),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }, {\n pageName: gameName,\n location: path\n }];\n\n var state = {\n breadcrumbData: breadcrumbData\n }\n\n _history.push(path, state);\n setIsLoading(false);\n }\n }\n }\n\n async function setTransactionValidForPromo(gameId) {\n _dispatch(setBusy());\n let responseJson = await ApiEngine.get(\n ApiUrl._API_UPDATE_TRANSACTION_VALID_FOR_PROMO\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n // setIsValidForPromotion(false);\n }\n _dispatch(setIdle());\n }\n\n async function getProductComRate(selectedGameName) {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.productName === selectedGameName\n );\n\n if (data.length > 0) {\n setProductCommRate(data[0]);\n }\n }\n }\n\n async function getRolloverProgress(masterProductId) {\n setRolloverBalance(\"\");\n setRolloverTarget(\"\");\n if (masterProductId != \"0\" && !stringIsNullOrEmpty(masterProductId)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n }\n }\n }\n }\n }\n\n return (\n <>\n {iframeAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setIsIframeAlert(false);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n startGame(\n productGameId,\n selectedGameHasOwnLobby,\n masterProductId,\n selectedGameName,\n selectedGameIsSeamless,\n isApp,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframeState\n )\n setIsIframeAlert(false);\n }}\n >\n {t(\"CONTINUE\")}\n \n (_dispatch(setGameLobbyModal(false)), setIsIframeAlert(false))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"CLOSE\")}\n \n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n \n \n
\n )}\n {featuredSlotGames?.length > 0 &&\n
\n
\n
\n

\n {t(\"FEATURE_BUY_IN\")} {t(\"SLOTS\").toUpperCase()}\n

\n
\n
\n
\n {t(\"ALL\")} {featuredSlotGamesCount} {t(\"SLOTS\")}\n
\n {featuredSlickRef?.current?.innerSlider.props.children.length > 1 && <>\n
\n
featuredSlickRef?.current?.slickPrev()}>\n \n
\n
featuredSlickRef?.current?.slickNext()}>\n \n
\n
\n \n }\n
\n
\n
\n {featuredSlotGames && featuredSlotGames.length == 0 && (\n \n )}\n \n {featuredSlotGames &&\n featuredSlotGames.length &&\n map(featuredSlotGames, (item, index) => {\n return (\n
\n {item &&\n item.length &&\n map(item, (game, index2) => {\n return (\n {\n if (dragging) {\n e.preventDefault();\n } else {\n if (heartBeat) {\n setPopupBannerImage(\n game[\"popupBannerImage\"]\n );\n if (game[\"gameUm\"] !== true) {\n if (\n walletsDetails.isValidForPromotion\n ) {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(\n \"PLEASE_CLAIM_PROMO_BEFORE_ENTER_GAME\"\n ),\n showCancel: true,\n onConfirm: () => {\n setTransactionValidForPromo();\n setIsSupportIframeState(game[\"isSupportIframe\"])\n if (game[\"isSupportIframe\"]) {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\n \"masterProductIsSeamless\"\n ],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"]\n );\n } else {\n setSelectedGameName(game[\"gameName\"]);\n setMasterProductId(game[\"masterProductId\"]);\n setIsApp(game[\"isApp\"]);\n setAppDeepLink(game[\"appDeepLink\"]);\n setPackageNameKeyword(game[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(game[\"isSeamless\"]);\n setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(game[\"appUrl\"]);\n }\n setProductGameId(game[\"id\"]);\n setIsIframeAlert(true);\n }\n\n },\n })\n );\n } else {\n setIsSupportIframeState(game[\"isSupportIframe\"])\n if (game[\"isSupportIframe\"]) {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\"masterProductIsSeamless\"],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"]\n );\n } else {\n setSelectedGameName(game[\"gameName\"]);\n setMasterProductId(game[\"masterProductId\"]);\n setIsApp(game[\"isApp\"]);\n setAppDeepLink(game[\"appDeepLink\"]);\n setPackageNameKeyword(game[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(game[\"isSeamless\"]);\n setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(game[\"appUrl\"]);\n }\n setProductGameId(game[\"id\"]);\n setIsIframeAlert(true);\n }\n\n }\n }\n } else {\n _dispatch(setLoginModal(true));\n }\n }\n }}\n >\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n
\n
{game[\"gameName\"]}
\n
\n
\n );\n })}\n
\n );\n })}\n \n
\n
\n }\n \n )\n\n}\n\nexport default FeaturedSlots","import React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport {\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport {\n map,\n} from \"lodash\";\nimport Slider from \"react-slick\";\nimport SwiperCore, { Autoplay } from 'swiper';\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport ProviderIcon, { ProviderIconDisplay } from \"components/custom/ProviderIcon\";\n\nconst HotProviders = () => {\n var { t } = useTranslation();\n\n // Swiper Plugins\n SwiperCore.use([Autoplay]);\n\n const providerList = useSelector((state) => state.appState.provider);\n \n const [providerSlick, setProviderSlick] = useState({\n slidesToShow: 4,\n dots: false,\n arrows: false,\n swipe: true,\n infinite: true,\n swipeToSlide: true,\n speed: 1000,\n autoplay: true,\n autoplaySpeed: 5000,\n });\n\n return (\n <>\n {providerList?.length > 0 &&\n
\n

{t(\"HOT\")} {t(\"PROVIDERS\")}

\n
\n = 4}>\n {providerList &&\n providerList.length &&\n map(providerList, (item, index) => {\n return (\n item && (\n
\n {/*
\n \n
*/}\n \n
\n )\n );\n })}\n
\n
\n
\n }\n \n )\n\n}\n\nexport default HotProviders","import moment from \"moment\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n setBusy,\n setIdle,\n showMessage,\n setGameLobbyModal,\n setLoginModal,\n} from \"../../redux/AppAction.js\";\nimport {\n stringIsNullOrEmpty,\n} from \"../../util/Util\";\nimport {\n map,\n filter,\n} from \"lodash\";\nimport Slider from \"react-slick\";\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport 'swiper/swiper-bundle.css';\nimport SwiperCore, { Autoplay } from 'swiper';\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\n// import Spinner from \"react-bootstrap/Spinner\";\nimport {\n} from \"reactstrap\";\nimport LoadingGames from \"components/template_1/LoadingGames\";\nimport FallBackImage from \"components/template_1/FallBackImage\";\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\n\nconst RecommendedCasino = ({ updateMasterProductId, updateSelectedGameIsSeamless, updateSelectedGameName, updateProductGameId,\n updatePopBannerImage, updateTitle, updateCategoryTitle, UpdateIsSupportIframe, updateProviderName, pageName }) => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n const liveSlickRef = React.useRef(null);\n\n // Swiper Plugins\n SwiperCore.use([Autoplay]);\n\n var { heartBeat } = useSelector((state) => state.authState);\n const memberData = useSelector((state) => state.appState.member);\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [masterProductId, setMasterProductId] = useState(0);\n const [isApp, setIsApp] = useState(false);\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [selectedGameHasOwnLobby, setSelectedGameHasOwnLobby] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [showPregamePopup, setShowPregamePopup] = useState(false);\n const [productGameId, setProductGameId] = useState(0);\n const [toLobbyBtn, SetToLobbyBtn] = useState(false);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [productCommRate, setProductCommRate] = useState([]);\n const [appUrl, setAppUrl] = useState(\"\");\n const [clubFee, setClubFee] = useState(0);\n const [activeLanguageId, setActiveLanguageId] = useState(0);\n const [recommendedSlotGames, setRecommendedSlotGames] = useState(\n useSelector((state) => state.appState.gamesRecommended.slotGames)\n );\n const [recommendedSlotGamesCount, setRecommendedSlotGamesCount] = useState(\n useSelector((state) => state.appState.gamesRecommended.casinoGamesCount)\n );\n const [recommendedCasinoGames, setRecommendedCasinoGames] = useState(\n useSelector((state) => state.appState.gamesRecommended.casinoGames)\n );\n const [recommendedCasinoGamesCount, setRecommendedCasinoGamesCount] =\n useState(\n useSelector((state) => state.appState.gamesRecommended.casinoGamesCount)\n );\n\n // const [latestBets, setLatestBets] = useState(\"\");\n const latestBets = useSelector((state) => state.appState.latestBets);\n const [dragging, setDragging] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState();\n const [defaultGameIcon, setDefaultGameIcon] = useState();\n const [isSupportIframeState, setIsSupportIframeState] = useState(false);\n const [categoryTitle, setCategoryTitle] = useState(\"\");\n const [iframeAlert, setIsIframeAlert] = useState(false);\n const [providerName, setProviderName] = useState(\"\");\n const [loadingRecommendedGames, setLoadingRecommendedGames] = useState(false);\n\n const [isGameLobbyModal, setIsGameLobbyModal] = useState(false);\n const [isNewWindow, setIsNewWindow] = useState(false);\n const isCasinoLobbyEnabled = useSelector(\n (state) => state.appState.isCasinoLobbyEnabled\n )\n\n\n const slotSlick = {\n slidesToShow: 1,\n dots: false,\n arrows: false,\n lazyLoad: true,\n swipe: true,\n infinite: false,\n swipeToSlide: true,\n speed: 1000,\n beforeChange: () => setDragging(true),\n afterChange: () => setDragging(false),\n };\n\n\n useEffect(() => {\n getCompanyIcon();\n getNewGames()\n\n }, []);\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n\n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n async function getNewGames() {\n if (recommendedCasinoGamesCount == 0) {\n setLoadingRecommendedGames(true);\n let responseJson = await ApiEngine.get(\n ApiUrl._API_HOMEPAGE_PRODUCTS +\n \"?languageId=\" +\n activeLanguageId + \"&type=Recommended\"\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\n /////get recommended Slots\n const data = responseJson[ApiKey._API_DATA_KEY].recommendedGames.filter(\n (x) => x.categoryTitle === \"Slots\"\n );\n setRecommendedSlotGamesCount(data.length);\n\n let groupedArray = [];\n\n for (let i = 0; i < data.length; i += 12) {\n groupedArray.push(data.slice(i, i + 12));\n }\n setRecommendedSlotGames(groupedArray);\n\n /////get recommended Casino\n const casinoRecommendedGame = responseJson[\n ApiKey._API_DATA_KEY\n ].recommendedGames.filter((x) => x.categoryTitle === \"Casino\");\n\n setRecommendedCasinoGamesCount(casinoRecommendedGame.length);\n let casinoGameGrouped = [];\n\n for (let i = 0; i < casinoRecommendedGame.length; i += 12) {\n casinoGameGrouped.push(casinoRecommendedGame.slice(i, i + 12));\n }\n setRecommendedCasinoGames(casinoGameGrouped);\n setLoadingRecommendedGames(false);\n\n\n //_dispatch(\n // bindGamesRecommended({\n // slotGamesCount: data.length,\n // slotGames: groupedArray,\n // casinoGamesCount: casinoRecommendedGame.length,\n // casinoGames: casinoGameGrouped,\n // })\n //);\n }\n setLoadingRecommendedGames(false);\n }\n\n }\n\n async function startGame(\n gameId,\n hasOwnLobby,\n masterProductId,\n gameName,\n isSeamless,\n isApp,\n appUrl,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframe,\n categoryTitle,\n providerName,\n popoutBanner\n ) {\n setSelectedGameName(gameName);\n setMasterProductId(masterProductId);\n setIsApp(isApp);\n setAppDeepLink(appDeepLink);\n setPackageNameKeyword(packageNameKeyword);\n setSelectedGameHasOwnLobby(hasOwnLobby);\n setSelectedGameIsSeamless(isSeamless);\n setIsSupportIframeState(isSupportIframe);\n setCategoryTitle(categoryTitle);\n setProviderName(providerName);\n\n if (pageName == \"HOME\") {\n updateMasterProductId(masterProductId);\n updateSelectedGameIsSeamless(isSeamless);\n updateSelectedGameName(gameName);\n updateProductGameId(gameId);\n updatePopBannerImage(popoutBanner);\n updateTitle(t(\"HOME\"))\n updateCategoryTitle(categoryTitle);\n UpdateIsSupportIframe(isSupportIframe);\n updateProviderName(providerName);\n }\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n setIsGameLobbyModal(true);\n } else {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: t(\"HOME\"),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n } else {\n window.open(\n ApiUrl._API_START +\n \"?gameId=\" +\n gameId + \"&device=\" + (window.innerWidth <= 768 ? \"m\" : \"d\")\n );\n }\n\n }\n } else {\n if (isSeamless == false) {\n if(categoryTitle == \"Casino\" && !isCasinoLobbyEnabled){\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n setIsGameLobbyModal(true);\n return;\n }\n setIsLoading(true);\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n\n }\n\n setShowPregamePopup(true);\n getProductComRate(gameName);\n setProductGameId(gameId);\n SetToLobbyBtn(true);\n getRolloverProgress(gameId);\n\n var path = WebUrl._URL_GAME_LOBBY +\n \"?name=\" +\n gameName +\n \"&id=\" +\n gameId +\n \"&languageId=\" +\n memberData[\"languageSetting\"] +\n \"&category=\" +\n categoryTitle;\n\n var breadcrumbData = [{\n pageName: t('HOME'),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }, {\n pageName: gameName,\n location: path\n }];\n\n var state = {\n breadcrumbData: breadcrumbData\n }\n\n _history.push(path, state);\n setIsLoading(false);\n }\n }\n }\n\n async function setTransactionValidForPromo(gameId) {\n _dispatch(setBusy());\n let responseJson = await ApiEngine.get(\n ApiUrl._API_UPDATE_TRANSACTION_VALID_FOR_PROMO\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n // setIsValidForPromotion(false);\n }\n _dispatch(setIdle());\n }\n\n async function getProductComRate(selectedGameName) {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.productName === selectedGameName\n );\n\n if (data.length > 0) {\n setProductCommRate(data[0]);\n }\n }\n }\n\n async function getRolloverProgress(masterProductId) {\n setRolloverBalance(\"\");\n setRolloverTarget(\"\");\n if (masterProductId != \"0\" && !stringIsNullOrEmpty(masterProductId)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n }\n }\n }\n }\n }\n\n return (\n <>\n {iframeAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setIsIframeAlert(false);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n startGame(\n productGameId,\n selectedGameHasOwnLobby,\n masterProductId,\n selectedGameName,\n selectedGameIsSeamless,\n isApp,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframeState\n )\n setIsIframeAlert(false);\n }}\n >\n {t(\"CONTINUE\")}\n \n (_dispatch(setGameLobbyModal(false)), setIsIframeAlert(false))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"CLOSE\")}\n \n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n \n \n
\n )}\n {!loadingRecommendedGames && recommendedCasinoGames?.length > 0 &&\n
\n
\n
\n

\n {t(\"RECOMMENDED\")} {t(\"LIVE\")}{\" \"}{t(\"CASINO\").toUpperCase()}\n

\n
\n
\n
\n {t(\"ALL\")} {recommendedCasinoGamesCount}{\" \"}\n {t(\"CASINO\")}\n
\n {liveSlickRef?.current?.innerSlider.props.children.length > 1 && <>\n
\n
liveSlickRef?.current?.slickPrev()}>\n \n
\n
liveSlickRef?.current?.slickNext()}>\n \n
\n
\n }\n
\n
\n {recommendedCasinoGames.length == 0 && (\n
\n \n
\n )}\n
\n \n {recommendedCasinoGames &&\n recommendedCasinoGames.length &&\n map(recommendedCasinoGames, (item, index) => {\n return (\n
\n {item &&\n item.length &&\n map(item, (game, index2) => {\n return (\n {\n if (dragging) {\n e.preventDefault();\n } else {\n if (heartBeat) {\n setPopupBannerImage(\n game[\"popupBannerImage\"]\n );\n if (game[\"gameUm\"] !== true) {\n if (\n walletsDetails.isValidForPromotion\n ) {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(\n \"PLEASE_CLAIM_PROMO_BEFORE_ENTER_GAME\"\n ),\n showCancel: true,\n onConfirm: () => {\n setTransactionValidForPromo();\n setIsSupportIframeState(game[\"isSupportIframe\"])\n if (game[\"isSupportIframe\"]) {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\n \"masterProductIsSeamless\"\n ],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"]\n );\n } else {\n setSelectedGameName(game[\"gameName\"]);\n setMasterProductId(game[\"masterProductId\"]);\n setIsApp(game[\"isApp\"]);\n setAppDeepLink(game[\"appDeepLink\"]);\n setPackageNameKeyword(game[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(game[\"isSeamless\"]);\n setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(game[\"appUrl\"]);\n }\n setProductGameId(game[\"id\"]);\n setIsIframeAlert(true);\n }\n\n },\n })\n );\n } else {\n setIsSupportIframeState(game[\"isSupportIframe\"])\n if (game[\"isSupportIframe\"]) {\n startGame(\n game[\"id\"],\n game[\"hasOwnLobby\"],\n game[\"masterProductId\"],\n game[\"gameName\"],\n game[\"masterProductIsSeamless\"],\n game[\"isApp\"],\n game[\"appUrl\"],\n game[\"appDeepLink\"],\n game[\"isNewWindow\"],\n game[\"packageNameKeyword\"],\n game[\"isSupportIframe\"]\n );\n } else {\n setSelectedGameName(game[\"gameName\"]);\n setMasterProductId(game[\"masterProductId\"]);\n setIsApp(game[\"isApp\"]);\n setAppDeepLink(game[\"appDeepLink\"]);\n setPackageNameKeyword(game[\"packageNameKeyword\"]);\n setSelectedGameHasOwnLobby(game[\"hasOwnLobby\"]);\n setSelectedGameIsSeamless(game[\"isSeamless\"]);\n setIsSupportIframeState(game[\"isSupportIframe\"]);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(game[\"appUrl\"]);\n }\n setProductGameId(game[\"id\"]);\n setIsIframeAlert(true);\n }\n\n }\n }\n } else {\n _dispatch(setLoginModal(true));\n }\n }\n }}\n >\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n
\n
{game[\"gameName\"]}
\n
\n
\n );\n })}\n
\n );\n })}\n \n
\n
\n }\n \n )\n\n}\n\nexport default RecommendedCasino","import React from 'react';\nimport '../../assets/css/animation.css'\n\nconst SpeakerIcon = () => {\n return (\n \n \n \n \n \n\n );\n};\n\nexport default SpeakerIcon;","import React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n ApiKey,\n ApiUrl,\n _MAIN_WALLET_ID,\n SessionKey\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n stringIsNullOrEmpty,\n} from \"../../util/Util\";\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport SpeakerIcon from \"components/custom/SpeakerIcon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport parse from \"react-html-parser\";\nimport {\n get,\n} from \"lodash\";\nimport Marquee from \"react-marquee-slider\";\n\n\nconst MarqueAnnoucement = () => {\n var { t } = useTranslation();\n const [content, setContent] = useState([]);\n var companyLanguages = useSelector((state) => state.appState.languages);\n const activeLanguageCode = useSelector((state) => state.languageState.languageId);\n const [activeLanguage, setActiveLanguage] = useState(\"\");\n const [activeLanguageId, setActiveLanguageId] = useState(companyLanguages.filter(\n (x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n )[0].id);\n\n async function getMarqueeTagContent() {\n let responseJson = await ApiEngine.get(\n ApiUrl._API_GET_MARQUEE_TAG_CONTENT_BY_PLATFORM +\n //\"?MarqueeTagId=1\" +\n \"?LanguageId=\" +\n ((activeLanguageId == undefined || stringIsNullOrEmpty(activeLanguageId)) ? 0 : activeLanguageId) +\n \"&Platform=\" +\n \"MemberApp\"\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n const contents = responseJson[ApiKey._API_DATA_KEY].map(option => option[\"content\"])\n setContent(contents);\n }\n }\n\n useEffect(() => {\n if (companyLanguages != undefined) {\n const tempLangCode = get(companyLanguages[0], \"code\");\n const tempLangId = get(companyLanguages[0], \"id\");\n if (\n localStorage.getItem(SessionKey._LANGUAGE) &&\n localStorage.getItem(SessionKey._LANGUAGE) !== \"undefined\"\n ) {\n let tempLang = companyLanguages.filter(\n (x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n )[0];\n\n if (tempLang != undefined) {\n setActiveLanguage(tempLang.code);\n setActiveLanguageId(tempLang.id);\n } else {\n setActiveLanguage(tempLangCode);\n setActiveLanguageId(tempLangId);\n }\n } else {\n setActiveLanguage(tempLangCode);\n setActiveLanguageId(tempLangId);\n }\n } else {\n setActiveLanguage(\"en\");\n setActiveLanguageId(1);\n }\n }, [companyLanguages, activeLanguageCode]);\n\n useEffect(() => {\n if(activeLanguageId != undefined) {\n getMarqueeTagContent();\n }\n }, [activeLanguageId]);\n\n return (\n <>\n {content && content.length>0 && (\n
\n
\n {/* */}\n \n
\n
\n \n {content\n .filter(text => !stringIsNullOrEmpty(text))\n .map((text, index) => (\n {parse(text)}\n ))}\n \n
\n
\n )}\n \n )\n\n}\n\nexport default MarqueAnnoucement","import React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n ApiKey,\n ApiUrl,\n _MAIN_WALLET_ID,\n SessionKey\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport { useDispatch, useSelector } from \"react-redux\";\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport Skeleton from \"react-loading-skeleton\";\nimport {\n setBanners,\n setDepositModal,\n setLoginModal,\n} from \"../../redux/AppAction.js\";\nimport { Swiper, SwiperSlide } from 'swiper/react';\nimport 'swiper/swiper-bundle.css';\nimport {\n map,\n get,\n} from \"lodash\";\n\n\nconst HomePageBanner = () => {\n var { t } = useTranslation();\n var companyLanguages = useSelector((state) => state.appState.languages);\n const activeLanguageCode = useSelector((state) => state.languageState.languageId);\n const [activeLanguage, setActiveLanguage] = useState(\"\");\n const [activeLanguageId, setActiveLanguageId] = useState(companyLanguages.filter(\n (x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n )[0].id);\n const [bannerLoading, setBannerLoading] = useState(true)\n var { heartBeat } = useSelector((state) => state.authState);\n const [bannersList, setBannersList] = useState(\n useSelector((state) => state.appState.banners)\n );\n var _dispatch = useDispatch();\n\n const getBanners = async () => {\n setBannerLoading(true)\n let responseJson = await ApiEngine.get(\n ApiUrl._API_GET_USER_BANNER +\n \"?page=/dashboard\" +\n \"&languagecode=\" +\n activeLanguage\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setBannersList(responseJson[ApiKey._API_DATA_KEY]);\n _dispatch(setBanners(responseJson[ApiKey._API_DATA_KEY]));\n }\n setBannerLoading(false)\n };\n\n useEffect(() => {\n if (companyLanguages != undefined) {\n const tempLangCode = get(companyLanguages[0], \"code\");\n const tempLangId = get(companyLanguages[0], \"id\");\n if (\n localStorage.getItem(SessionKey._LANGUAGE) &&\n localStorage.getItem(SessionKey._LANGUAGE) !== \"undefined\"\n ) {\n let tempLang = companyLanguages.filter(\n (x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n )[0];\n\n if (tempLang != undefined) {\n setActiveLanguage(tempLang.code);\n setActiveLanguageId(tempLang.id);\n } else {\n setActiveLanguage(tempLangCode);\n setActiveLanguageId(tempLangId);\n }\n } else {\n setActiveLanguage(tempLangCode);\n setActiveLanguageId(tempLangId);\n }\n } else {\n setActiveLanguage(\"en\");\n setActiveLanguageId(1);\n }\n // getBanners(); // CHRIS NOTE 20250306: getBanners is always called twice because companyLangauges is updated, \n // this happens to other components too\n }, [companyLanguages, activeLanguageCode]);\n\n useEffect(() => {\n if(activeLanguage != \"\"){\n getBanners();\n }\n }, [activeLanguage]);\n\n return (\n
\n {!bannerLoading ? (\n {\n // console.log('slide change')\n }}\n onSwiper={(swiper) => {\n // console.log(swiper)\n }}\n loop={bannersList.length > 3}\n autoplay={{\n delay: 4000,\n disableOnInteraction: false,\n pauseOnMouseEnter: true,\n }}\n breakpoints={{\n 1280: {\n slidesPerView: 3,\n spaceBetween: 0,\n },\n 1024: {\n slidesPerView: 3,\n spaceBetween: 0,\n },\n 480: {\n slidesPerView: 2,\n spaceBetween: 0,\n },\n 0: {\n slidesPerView: 1,\n spaceBetween: 0,\n },\n }}\n >\n {bannersList &&\n bannersList.length > 0 ? (\n // Swiper v9.4.1+ => Because of nature of how the loop mode works (it will rearrange slides), total number of slides must be >= slidesPerView * 2\n Array.from({ length: Math.ceil(bannersList.length / 3) }).map((_, i) => (\n map(bannersList, (item, index) => {\n return (\n \n {\n if (item.url && item.url == \"/deposit\") {\n if (heartBeat) {\n _dispatch(setDepositModal(true));\n } else {\n _dispatch(setLoginModal(true));\n }\n } else {\n if (item.url) {\n window.location.href = `${process.env.REACT_APP_ENDPOINT_URL || \"\"\n }${item.url}`;\n }\n }\n // if (heartBeat) {\n // if (item.url && item.url == \"/deposit\") {\n // _dispatch(setDepositModal(true));\n // } else {\n // window.location.href = `${process.env.REACT_APP_ENDPOINT_URL || \"\"\n // }${item.url}`;\n // }\n // } else {\n // if (item.url == \"/deposit\") {\n // _dispatch(\n // showMessage({\n // custom: true,\n // customIcon: (\n // \n // ),\n // content: t(\"PLEASE_LOGIN_FIRST\"),\n // })\n // );\n // }\n // }\n }}\n >\n \n
\n \n );\n })\n ))\n ) : (\n null\n //
\n // \n // \n // \n //
\n )}\n \n ) : (\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n )}\n \n )\n\n}\n\nexport default HomePageBanner","import React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n ApiKey,\n ApiUrl,\n _MAIN_WALLET_ID,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n showResponseMessage,\n setDepositModal,\n setLoginModal,\n setRegisterModal,\n} from \"../../redux/AppAction.js\";\nimport {\n numberWithCurrencyFormat,\n} from \"../../util/Util\";\nimport {\n map,\n} from \"lodash\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\n// import Spinner from \"react-bootstrap/Spinner\";\nimport {\n Spinner,\n} from \"reactstrap\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\nconst MobileLoginComponent = () => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n\n var { heartBeat } = useSelector((state) => state.authState);\n const memberData = useSelector((state) => state.appState.member);\n const walletsDetails = useSelector((state) => state.appState.walletsDetails);\n const [balanceRefresh, setBalanceRefresh] = useState(false);\n const [minimumDeposit, setMinimumDeposit] = useState(0);\n const [minimumWithdrawal, setMinimumWithdrawal] = useState(0);\n const [rolloverWarning, setRolloverWarning] = useState(false);\n const [rolloverData, setRolloverData] = useState([]);\n const membershipEnabled = useSelector(\n (state) => state.appState.membershipEnabled\n );\n var _userData = useSelector((state) => state.authState.userData);\n\n useEffect(() => {\n if (heartBeat) {\n getMinumumDepositWithdrawal()\n }\n\n \n }, []);\n\n useEffect(() => {\n if (heartBeat) {\n getLatestRolloverRecord();\n }\n }, [walletsDetails, heartBeat]);\n\n\n const getMinumumDepositWithdrawal = async () => {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_MINIMUM_DEPOSIT_WITHDRAWAL\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setMinimumDeposit(responseJson[ApiKey._API_DATA_KEY]?.minimumDeposit);\n setMinimumWithdrawal(\n responseJson[ApiKey._API_DATA_KEY]?.minimumWithdrawal\n );\n }\n };\n\n async function checkMemberRollover() {\n try {\n getLatestRolloverRecord();\n var rolloverJson = await ApiEngine.get(ApiUrl._API_CHECK_MEMBER_ROLLOVER);\n if (rolloverJson[ApiKey._API_SUCCESS_KEY]) {\n _dispatch(setDepositModal(true, 2));\n } else {\n setRolloverWarning(true);\n }\n } catch (err) {\n _dispatch(showResponseMessage(false, err));\n }\n }\n\n async function getRestore() {\n setBalanceRefresh(true);\n let responseJson = await ApiEngine.get(ApiUrl._API_RESTORE_ALL_WALLET);\n\n // _dispatch(\n // showResponseMessage(\n // responseJson[ApiKey._API_SUCCESS_KEY],\n // responseJson[ApiKey._API_MESSAGE_KEY]\n // )\n // );\n setBalanceRefresh(false);\n }\n\n async function getLatestRolloverRecord() {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_LATEST_ROLLOVER_RECORD\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setRolloverData(responseJson[ApiKey._API_DATA_KEY]);\n }\n }\n\n return (\n <>\n {rolloverWarning && (\n
\n {\n setRolloverWarning(false);\n }}\n >\n \n {t(\"ROLLOVER_REQUIREMENT_ERROR\")}\n \n\n
\n
\n
{t(\"LATEST_ROLLOVER_PROGRESS\")}
\n
\n {rolloverData &&\n rolloverData.length > 0 &&\n map(rolloverData, (item, index) => {\n const percentage =\n (item[\"isLatestRecord\"] == 1\n ? item[\"rolloverProgress\"]\n : item[\"rolloverTarget\"]) == 0 &&\n item[\"rolloverTarget\"] == 0\n ? \"0%\"\n : ((item[\"isLatestRecord\"] == 1\n ? item[\"rolloverProgress\"]\n : item[\"rolloverTarget\"]) /\n item[\"rolloverTarget\"]) *\n 100;\n return (\n
\n
\n \n = 50\n ? `rotate(180deg)`\n : `rotate(${(percentage / 100) * 180\n }deg)`,\n }}\n >\n \n \n 50\n ? `rotate(${(percentage / 100) * -180\n }deg)`\n : `rotate(-0deg)`,\n }}\n >\n \n
\n {percentage.toFixed(2)}\n %\n
\n
\n\n
\n \n {/* {t(\"LATEST_TOP_UP\")} :{\" \"} */}\n {t(\"LATEST_TOP_UP_AND_BONUS\")} :{\" \"}\n \n \n {numberWithCurrencyFormat(\n parseFloat(item[\"amount\"]),\n 2,\n true\n )}\n \n
{item[\"date\"]}
\n
\n {t(\"YOU_HAVE\")}{\" \"}\n \n {item[\"isLatestRecord\"] == 1\n ? item[\"rolloverProgress\"]\n : item[\"rolloverTarget\"]}{\" \"}\n / {item[\"rolloverTarget\"]}\n {\" \"}\n {t(\"TO_GO\")}!\n
\n
\n
\n );\n })}\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n

\n {t(\"ROLLOVER_RED_WARNING\")}\n

\n
\n
\n
\n \n
\n )}\n
\n {heartBeat == false && (\n <>\n
\n {\n _dispatch(setLoginModal(true));\n }}\n >\n {t(\"LOGIN\")}\n
\n {\n _dispatch(setRegisterModal(true));\n }}\n >\n {t(\"REGISTER\")}\n
\n \n \n )}\n {heartBeat && (\n
\n {heartBeat && (\n
\n
{memberData[\"username\"]}
\n {membershipEnabled &&\n
\n {t(\"MEMBERSHIP\")}: {t(_userData.vipName.toUpperCase())}\n \n
\n }\n
\n )}\n
\n
\n
{t(\"BALANCE\")}:
\n
\n {numberWithCurrencyFormat(\n walletsDetails.currentWalletBalance +\n walletsDetails.bonusWalletBalance,\n 2,\n true\n )}\n
\n
\n {t(\"MIN_DEPOSIT\")}: {minimumDeposit.toFixed(2)}\n
\n
\n {t(\"MIN_WITHDRAWAL\")}:{\" \"}\n {minimumWithdrawal.toFixed(2)}\n
\n
\n
\n
\n {\n if (heartBeat) {\n // _history.push(WebUrl._URL_DEPOSIT)\n _dispatch(setDepositModal(true));\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n >\n \n {t(\"DEPOSIT\")}\n \n {\n if (heartBeat) {\n checkMemberRollover();\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n >\n \n {t(\"WITHDRAW\")}\n \n {\n if (heartBeat) {\n getRestore();\n } else {\n _dispatch(setLoginModal(true));\n }\n }}\n >\n {balanceRefresh ? (\n \n ) : (\n \n )}\n {t(\"REFRESH\")}\n \n
\n
\n
\n\n {rolloverData &&\n rolloverData.length > 0 &&\n map(rolloverData, (item, index) => {\n if (item[\"rolloverTarget\"] === 0) {\n return null; // Skip items with rolloverTarget as 0\n }\n \n const percentage =\n (item[\"isLatestRecord\"] == 1\n ? item[\"rolloverProgress\"]\n : item[\"rolloverTarget\"]) == 0 &&\n item[\"rolloverTarget\"] == 0\n ? 0\n : ((item[\"isLatestRecord\"] == 1\n ? item[\"rolloverProgress\"]\n : item[\"rolloverTarget\"]) /\n item[\"rolloverTarget\"]) *\n 100;\n const formattedPercentage = Math.round(percentage);\n return (\n
\n
\n {t(\"YOUR_ROLLOVER_PROGRESS_IS\")}{\" \"}\n \n {item[\"isLatestRecord\"] == 1\n ? item[\"rolloverProgress\"]\n : item[\"rolloverTarget\"]}{\" \"}\n / {item[\"rolloverTarget\"]}\n {\".\"}\n
\n
\n
\n \n
\n {formattedPercentage}%\n
\n
\n );\n })}\n
\n )}\n \n \n )\n\n}\n\nexport default MobileLoginComponent","import moment from \"moment\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport {\n ApiKey,\n ApiUrl,\n WebUrl,\n SessionKey,\n _MAIN_WALLET_ID,\n TransactionStatus,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n showResponseMessage,\n setBusy,\n setIdle,\n setGameLobbyModal,\n} from \"../../redux/AppAction.js\";\nimport {\n stringIsNullOrEmpty,\n numberWithCurrencyFormat,\n createFormBody,\n} from \"../../util/Util\";\nimport {\n map,\n find,\n filter,\n get,\n includes,\n forEach,\n} from \"lodash\";\nimport 'swiper/swiper-bundle.css';\nimport SwiperCore, { Autoplay } from 'swiper';\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\n// import Spinner from \"react-bootstrap/Spinner\";\nimport {\n Modal,\n ModalBody,\n Spinner,\n} from \"reactstrap\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport LoadingPlaceholder from \"components/template_1/LoadingPlaceholder\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport GameLobbyModal from \"components/template_1/GameLobbyModal\";\nimport PlaceholderLoading from \"react-placeholder-loading\";\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport LiveTransactions from \"components/custom/LiveTransactions\";\nimport RecentBigWin from \"components/custom/RecentBigWin\";\nimport ReferralBannerComponent from \"components/custom/ReferralBanner\";\nimport ProviderList from \"components/custom/ProviderList\";\nimport RecentPayout from \"components/custom/RecentPayout\";\nimport RecommendedSlots from \"components/custom/RecommendedSlots\";\nimport FeaturedSlots from \"components/custom/FeaturedSlots\";\nimport HotProviders from \"components/custom/HotProviders\";\nimport RecommendedCasino from \"components/custom/RecommendedCasino\";\nimport MarqueAnnoucement from \"components/custom/MarqueAnnoucement\";\nimport HomePageBanner from \"components/custom/HomePageBanner\";\nimport MobileLoginComponents from \"components/custom/MobileLoginComponents\";\nimport { useMediaQuery } from 'react-responsive';\n\nconst Login = (props) => {\n var { t } = useTranslation();\n var _history = useHistory();\n var _dispatch = useDispatch();\n\n // Swiper Plugins\n SwiperCore.use([Autoplay]);\n\n\n const memberData = useSelector((state) => state.appState.member);\n\n let isAutoScrolling = false;\n const container = document.getElementById(\"t3-scroll-row\");\n const [isStopScroll, setIsStopScroll] = useState(false);\n const [gameCategoryActive, setGameCategoryActive] = useState({\n id: -1,\n title: \"All\",\n });\n const [gameCategories, setGameCategories] = useState([]);\n const [games, setGames] = useState(\n useSelector((state) => state.appState.games)\n );\n const [popupBannerImage, setPopupBannerImage] = useState(\"\");\n const [selectedGameName, setSelectedGameName] = useState(\"\");\n const [masterProductId, setMasterProductId] = useState(0);\n const [isApp, setIsApp] = useState(false);\n const [appDeepLink, setAppDeepLink] = useState(\"\");\n const [packageNameKeyword, setPackageNameKeyword] = useState(\"\");\n const [selectedGameHasOwnLobby, setSelectedGameHasOwnLobby] = useState(false);\n const [selectedGameIsSeamless, setSelectedGameIsSeamless] = useState(false);\n const [walletList, setWalletList] = useState([]);\n const [bonus, setBonus] = useState(0);\n const [commission, setCommission] = useState(0);\n const [gameWalletBalanceBeforeTransfer, setGameWalletBalanceBeforeTransfer] =\n useState(0);\n const [masterProductContent, setMasterProductContent] = useState(\"\");\n const [fromOptions, setFromOptions] = useState([]);\n const [toOptions, setToOptions] = useState([]);\n const [isNewWindow, setIsNewWindow] = useState(false);\n const [showPregamePopup, setShowPregamePopup] = useState(false);\n const [productGameId, setProductGameId] = useState(0);\n const [toLobbyBtn, SetToLobbyBtn] = useState(false);\n const [rolloverBalance, setRolloverBalance] = useState(\"\");\n const [rolloverTarget, setRolloverTarget] = useState(\"\");\n const [productCommRate, setProductCommRate] = useState([]);\n const [appUrl, setAppUrl] = useState(\"\");\n const [clubFee, setClubFee] = useState(0);\n const [isTransferSuccess, setIsTransferSuccess] = useState(false);\n const [transferShow, setTransferShow] = useState(false);\n const [toGameAmount, setToGameAmount] = useState(0);\n const [promoId, setPromoId] = useState(\"\");\n const [promoCodeList, setPromoCodeList] = useState([]);\n const [inputValue, setInputValue] = useState(\"\");\n const [promoShow, setPromoShow] = useState(false);\n const [paidAmount, setPaidAmount] = useState();\n const [transferDate, setTransferDate] = useState();\n const openMenu = useSelector((state) => state.appState.openMenu);\n const [activeLanguage, setActiveLanguage] = useState(\"\");\n const [activeLanguageId, setActiveLanguageId] = useState(0);\n const activeLanguageCode = useSelector(\n (state) => state.languageState.languageId\n );\n const [isLoading, setIsLoading] = useState(false);\n const [transferLoading, setTransferLoading] = useState(false);\n\n const [showDepositSuccess, setShowDepositSuccess] = useState(false);\n const [showDepositFailed, setShowDepositFailed] = useState(false);\n\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState();\n var companyLanguages = useSelector((state) => state.appState.languages);\n const [teamBanner, setTeamBanner] = useState();\n const [coinIcon, setCoinIcon] = useState();\n const _APPEND_REGISTER_URL = \"/register?code=\";\n const [showAnnouncementModal, setShowAnnouncementModal] = useState(false);\n const [logo, setLogo] = useState();\n const [announcementList, setAnnouncementsList] = useState([]);\n const [noDataBg, setNoDataBg] = useState();\n const [registerUrl, setRegisterUrl] = useState(\"\");\n const [referralBanner, setReferralBanner] = useState(\"\");\n const [referralBannerMobile, setReferralBannerMobile] = useState(\"\");\n const [defaultGameIcon, setDefaultGameIcon] = useState();\n const [bigWinList, setBigWinList] = useState([]);\n const [isSupportIframeState, setIsSupportIframeState] = useState(false);\n const [categoryTitle, setCategoryTitle] = useState(\"\");\n const [iframeAlert, setIsIframeAlert] = useState(false);\n const [providerName, setProviderName] = useState(\"\");\n\n const [selectedGameCategoryGames, setSelectedGameCategoryGames] = useState([]);\n const [transcactionNumber, setTranscactionNumber] = useState();\n const dashboardComponent = useSelector((state) => state.appState.dashboardComponent);\n const [isMobile, setIsMobile] = useState(window.innerWidth <= 768);\n const isPC = useMediaQuery({ query: '(min-width: 900px)' });\n var { heartBeat } = useSelector((state) => state.authState);\n const [isLogin, setIsLogin] = useState(false);\n\n const {\n handleSubmit: handleSubmitPopup,\n register: registerPopup,\n control: controlPopup,\n watch: watchPopup,\n getValues: getValuesPopup,\n setValue: setValuePopup,\n errors: errorsPopup,\n reset: resetPopup,\n } = useForm();\n var referralDetails = useSelector((state) => state.appState.member.referralCode);\n\n\n const [providerSlick, setProviderSlick] = useState({\n slidesToShow: 4,\n dots: false,\n arrows: false,\n swipe: true,\n infinite: true,\n swipeToSlide: true,\n speed: 1000,\n autoplay: true,\n autoplaySpeed: 5000,\n });\n\n // Detect window size\n const handleWindowSizeChange = () => {\n if (window.innerWidth < 900) {\n setProviderSlick({\n ...providerSlick,\n slidesToShow: 2,\n });\n } else {\n setProviderSlick({\n ...providerSlick,\n slidesToShow: 4,\n });\n }\n };\n useEffect(() => {\n handleWindowSizeChange()\n window.addEventListener(\"resize\", handleWindowSizeChange);\n return () => {\n window.removeEventListener(\"resize\", handleWindowSizeChange);\n };\n }, []);\n\n\n useEffect(() => {\n if (companyIcons.length > 0) {\n getCompanyIcon();\n }\n }, [companyIcons]);\n\n useEffect(() => {\n if (companyLanguages != undefined) {\n const tempLangCode = get(companyLanguages[0], \"code\");\n const tempLangId = get(companyLanguages[0], \"id\");\n if (\n localStorage.getItem(SessionKey._LANGUAGE) &&\n localStorage.getItem(SessionKey._LANGUAGE) !== \"undefined\"\n ) {\n let tempLang = companyLanguages.filter(\n (x) => x.code == localStorage.getItem(SessionKey._LANGUAGE)\n )[0];\n\n if (tempLang != undefined) {\n setActiveLanguage(tempLang.code);\n setActiveLanguageId(tempLang.id);\n } else {\n setActiveLanguage(tempLangCode);\n setActiveLanguageId(tempLangId);\n }\n } else {\n setActiveLanguage(tempLangCode);\n setActiveLanguageId(tempLangId);\n }\n } else {\n setActiveLanguage(\"en\");\n setActiveLanguageId(1);\n }\n }, [companyLanguages, activeLanguageCode]);\n\n\n useEffect(() => {\n init();\n }, []);\n\n useEffect(() => {\n if (heartBeat) {\n setIsLogin(true);\n } else {\n setIsLogin(false);\n setShowAnnouncementModal(false);\n }\n }, [heartBeat]);\n\n useEffect(() => {\n if (activeLanguageId > 0) {\n getAnnouncement();\n }\n }, [activeLanguageId, isLogin]);\n\n useEffect(() => {\n setRegisterUrl(window.location.origin + _APPEND_REGISTER_URL + referralDetails);\n }, [referralDetails]);\n\n\n useEffect(() => {\n if (announcementList.length > 0) {\n setShowAnnouncementModal(true);\n }\n }, [announcementList]);\n\nuseEffect(() => {\n if (gameCategoryActive.title === \"All\") {\n setSelectedGameCategoryGames(games);\n }\n else {\n var selectedCategoryGameList = games.filter(game => game[\"categoryTitle\"] === gameCategoryActive.title);\n setSelectedGameCategoryGames(selectedCategoryGameList);\n }\n\n}, [gameCategoryActive]);\n\nuseEffect(() => { \n if (games.length) {\n setSelectedGameCategoryGames(games);\n }\n}, [games]);\n\n const closePopUp = () => {\n // setting key \"seenPopUp\" with value true into localStorage\n // localStorage.setItem(\"seenPopUp\", true);\n // setting state to false to not display pop-up\n setShowAnnouncementModal(false);\n };\n\n async function init() {\n // if (heartBeat) {\n // \tbindMember(_dispatch);\n // }\n\n const search = window.location.search;\n const params = new URLSearchParams(search);\n\n if (params.get(\"transactionStatus\")) {\n let transactionStatus = params.get(\"transactionStatus\");\n\n if (transactionStatus == TransactionStatus._APPROVED) {\n setShowDepositSuccess(true);\n } else if (transactionStatus == TransactionStatus._REJECTED) {\n setShowDepositFailed(true);\n }\n // params.get('transactionStatus') == TransactionStatus._APPROVED ? setShowDepositSuccess(true) :\n // \tparams.get('transactionStatus') == TransactionStatus._REJECTED ? setShowDepositFailed(true) : \"\";\n }\n\n \n }\n\n async function startGame(\n gameId,\n hasOwnLobby,\n masterProductId,\n gameName,\n isSeamless,\n isApp,\n appUrl,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframe,\n categoryTitle,\n providerName\n ) {\n setSelectedGameName(gameName);\n setMasterProductId(masterProductId);\n setIsApp(isApp);\n setAppDeepLink(appDeepLink);\n setPackageNameKeyword(packageNameKeyword);\n setSelectedGameHasOwnLobby(hasOwnLobby);\n setSelectedGameIsSeamless(isSeamless);\n setIsSupportIframeState(isSupportIframe);\n setCategoryTitle(categoryTitle);\n setProviderName(providerName);\n\n if (isApp && !stringIsNullOrEmpty(appUrl)) {\n setAppUrl(appUrl);\n }\n if (hasOwnLobby !== true) {\n if (isSeamless == false) {\n setProductGameId(gameId);\n _dispatch(setGameLobbyModal(true));\n } else {\n if (isSupportIframe) {\n var breadcrumbData = [{\n pageName: t(\"HOME\"),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }];\n\n var path = WebUrl._URL_IFRAME_GAME_PAGE + \"?gameId=\" + gameId;\n _history.push(path, {\n breadcrumbData: breadcrumbData\n });\n } else {\n window.open(\n ApiUrl._API_START +\n \"?gameId=\" +\n gameId + \"&device=\" + (window.innerWidth <= 768 ? \"m\" : \"d\")\n );\n }\n\n }\n } else {\n if (isSeamless == false) {\n setIsLoading(true);\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setWalletList(responseJson[ApiKey._API_DATA_KEY]);\n\n let tempFromOptions = [];\n let tempToOptions = [];\n\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n setBonus(product.bonus);\n setCommission(product.commission);\n if (product.productName === \"D2 Poker\") {\n setClubFee(product.clubFee);\n }\n setGameWalletBalanceBeforeTransfer(product.balance);\n if (product.masterProductContent !== null) {\n setMasterProductContent(product.masterProductContent);\n } else {\n setMasterProductContent(\"\");\n }\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n\n }\n\n setShowPregamePopup(true);\n getProductComRate(gameName);\n setProductGameId(gameId);\n SetToLobbyBtn(true);\n getRolloverProgress(gameId);\n\n var path = WebUrl._URL_GAME_LOBBY +\n \"?name=\" +\n gameName +\n \"&id=\" +\n gameId +\n \"&languageId=\" +\n memberData[\"languageSetting\"] +\n \"&category=\" +\n categoryTitle;\n\n var breadcrumbData = [{\n pageName: t('HOME'),\n location: _history.location.pathname + _history.location.search,\n state: _history.location.state\n }, {\n pageName: gameName,\n location: path\n }];\n\n var state = {\n breadcrumbData: breadcrumbData\n }\n\n _history.push(path, state);\n setIsLoading(false);\n }\n }\n }\n\n async function getProductComRate(selectedGameName) {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.productName === selectedGameName\n );\n\n if (data.length > 0) {\n setProductCommRate(data[0]);\n }\n }\n }\n\n async function getRolloverProgress(masterProductId) {\n setRolloverBalance(\"\");\n setRolloverTarget(\"\");\n if (masterProductId != \"0\" && !stringIsNullOrEmpty(masterProductId)) {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_DEPOSIT_PROMOTION_ROLLOVER_PROGRESS +\n \"?masterProductId=\" +\n masterProductId\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY] != null) {\n if (responseJson[ApiKey._API_DATA_KEY].data != null) {\n setRolloverBalance(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverBalance\"]\n );\n setRolloverTarget(\n responseJson[ApiKey._API_DATA_KEY].data[\"rolloverTarget\"]\n );\n }\n }\n }\n }\n }\n\n\n const submitPopupForm = async (data, e) => {\n setTransferLoading(true);\n let params = {\n fromWallet: _MAIN_WALLET_ID,\n toWallet: masterProductId,\n amount: toGameAmount,\n promotionProductId: promoId,\n };\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_CREATE_WALLET_TRANSFER_TRANSACTION,\n createFormBody(params)\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n await updateWalletBalance(\n parseFloat(responseJson[ApiKey._API_DATA_KEY].amount).toFixed(2)\n );\n setPaidAmount(responseJson[ApiKey._API_DATA_KEY].amount);\n setTransferDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n setIsTransferSuccess(true);\n setShowPregamePopup(true);\n setTransferShow(false);\n setTranscactionNumber(responseJson[ApiKey._API_DATA_KEY].transactionId);\n getRolloverProgress(masterProductId);\n e.target.reset();\n } else {\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n }\n setTransferLoading(false);\n };\n\n async function updateWalletBalance() {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_NON_SEAMLESS_PRODUCT_BALANCE\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n let tempFromOptions = [];\n let tempToOptions = [];\n responseJson[ApiKey._API_DATA_KEY].map((product) => {\n let option = {\n label: product.productName,\n value: product.productId,\n amount: parseFloat(product.balance),\n };\n if (product.productId === _MAIN_WALLET_ID) {\n tempFromOptions.push(option);\n } else if (product.productId === masterProductId) {\n let gameWalletBalance = parseFloat(product.balance);\n setGameWalletBalanceBeforeTransfer(gameWalletBalance);\n tempToOptions.push(option);\n }\n });\n setFromOptions(tempFromOptions);\n setToOptions(tempToOptions);\n }\n }\n\n\n useEffect(() => {\n if (container) {\n startAutoScroll();\n }\n }, [container]);\n\n useEffect(() => {\n if (isStopScroll) {\n setTimeout(() => {\n startAutoScroll();\n setIsStopScroll(false);\n }, 500);\n }\n }, [isStopScroll]);\n\n function startAutoScroll() {\n isAutoScrolling = true;\n scrollToBottom();\n container.addEventListener(\"wheel\", () => {\n stopAutoScroll();\n });\n }\n\n function stopAutoScroll() {\n isAutoScrolling = false;\n setIsStopScroll(true);\n }\n\n function scrollToBottom() {\n if (!isAutoScrolling) {\n return;\n }\n\n const start = container.scrollTop;\n const end = container.scrollHeight - container.clientHeight;\n const duration = 15000; // Set the duration in milliseconds\n\n const startTime = performance.now();\n\n function scroll(currentTime) {\n if (!isAutoScrolling) {\n return;\n }\n\n const elapsedTime = currentTime - startTime;\n\n const percentage = Math.min(1, elapsedTime / duration);\n const easeInOut = 0.5 - 0.5 * Math.cos(Math.PI * percentage);\n\n container.scrollTop = start + easeInOut * (end - start);\n\n if (percentage < 1) {\n requestAnimationFrame(scroll);\n }\n }\n\n requestAnimationFrame(scroll);\n }\n\n async function getCompanyIcon() {\n _dispatch(setBusy());\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n\n const gameCategories = [];\n const pathnamesToFilter = [\"/game-list\", \"/sports\", \"/casino\", \"/slots\", \"/keno\", \"/fish\", \"/e-sport\", \"/arcade\", \"/crash\", \"/exchange\"];\n\n const gameList = filter(companyIcons, item => includes(pathnamesToFilter, item.pathname));\n if (gameList) {\n gameList.forEach(function (x) {\n gameCategories.push({\n id: x.iconName == \"All\" ? -1 : x.id,\n title: x.iconName,\n image: x.iconImage||x.defaultImage,\n });\n });\n setGameCategories(gameCategories);\n }\n\n const teamBanner = find(companyIcons, { iconCategory: \"team_banner\" });\n if (teamBanner) {\n setTeamBanner(teamBanner.iconImage||teamBanner.defaultImage);\n }\n\n const coinIcon = find(companyIcons, { iconCategory: \"coin_icon\" });\n if (coinIcon) {\n setCoinIcon(coinIcon.iconImage||coinIcon.defaultImage);\n }\n\n const logo = find(companyIcons, { iconCategory: \"logo\" });\n if (logo) {\n setLogo(logo.iconImage||logo.defaultImage);\n }\n\n const noDataBg = find(companyIcons, { iconCategory: \"no_data_background\" });\n if (noDataBg) {\n setNoDataBg(noDataBg.iconImage||noDataBg.defaultImage);\n }\n\n const tempReferralBanner = find(companyIcons, { iconCategory: \"referral_banner\" });\n if (tempReferralBanner) {\n setReferralBanner(tempReferralBanner.iconImage||tempReferralBanner.defaultImage);\n }\n\n const tempReferralBannerMobile = find(companyIcons, { iconCategory: \"referral_banner_mobile\" });\n if (tempReferralBannerMobile) {\n setReferralBannerMobile(tempReferralBannerMobile.iconImage||tempReferralBannerMobile.defaultImage);\n }\n\n const defaultGameIconTemp = filter(companyIcons, (icon) => {\n return icon.iconCategory === \"default_game_icon\";\n });\n if (defaultGameIconTemp) {\n setDefaultGameIcon(defaultGameIconTemp[0]?.iconImage||defaultGameIconTemp[0]?.defaultImage);\n }\n\n _dispatch(setIdle());\n }\n\n\n const chunkArray = (arr, chunkSize) => {\n const result = [];\n for (let i = 0; i < arr.length; i += chunkSize) {\n result.push(arr.slice(i, i + chunkSize));\n }\n return result;\n };\n\n const itemsPerSlide = 2; // Two columns and three rows\n const slides = chunkArray(bigWinList, itemsPerSlide);\n\n\n const updateMasterProductId = (id) => {\n setMasterProductId(id)\n };\n const updateSelectedGameIsSeamless = (bool) => {\n setSelectedGameIsSeamless(bool)\n };\n const updateSelectedGameName = (name) => {\n setSelectedGameName(name)\n };\n const updateProductGameId = (id) => {\n setProductGameId(id)\n };\n const updatePopBannerImage = (url) => {\n setPopupBannerImage(url)\n };\n const updateTitle = (id) => {\n //null\n };\n const updateCategoryTitle = (category) => {\n setCategoryTitle(category)\n };\n const UpdateIsSupportIframe = (bool) => {\n setIsSupportIframeState(bool)\n };\n const updateProviderName = (name) => {\n setProviderName(name)\n };\n\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth <= 899);\n };\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const getAnnouncement = async () => {\n var responseJson = await ApiEngine.get(\n ApiUrl._API_GET_ANNOUNCEMENT + \"?languageId=\" + activeLanguageId\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setAnnouncementsList(responseJson[ApiKey._API_DATA_KEY]);\n }\n };\n\n return (\n <>\n {/*
*/}\n\n {/* /////////t3 content */}\n
\n {showDepositSuccess && (\n {\n setShowDepositSuccess(false);\n }}\n >\n {t(\"DEPOSIT_SUCCESS\")}\n \n )}\n\n {showDepositFailed && (\n {\n setShowDepositFailed(false);\n }}\n >\n {t(\"DEPOSIT_FAILED\")}\n \n )}\n\n {iframeAlert && (\n
\n )}\n cancelBtnText={t(\"CANCEL\")}\n confirmBtnText={t(\"CONTINUE\")}\n icon\n // onConfirm={() => {\n // getRestoreAccountBlance();\n // }}\n onCancel={() => {\n setIsIframeAlert(false);\n }}\n custom\n showCancel\n reverseButtons={true}\n cancelBtnBsStyle=\"danger\"\n customButtons={\n \n
\n {\n startGame(\n productGameId,\n selectedGameHasOwnLobby,\n masterProductId,\n selectedGameName,\n selectedGameIsSeamless,\n isApp,\n appDeepLink,\n isNewWindow,\n packageNameKeyword,\n isSupportIframeState\n )\n setIsIframeAlert(false);\n }}\n >\n {t(\"CONTINUE\")}\n \n ( _dispatch(setGameLobbyModal(false)), setIsIframeAlert(false))}\n className=\"btn btn-primary btn-lg\"\n >\n {t(\"CLOSE\")}\n \n
\n\n
\n }\n >\n \n
') }} style={{ marginBottom: \"20px\", fontSize: \"14px\" }} />\n \n \n
\n )}\n\n {/*arrangement set in BO (control by company)*/}\n
\n
\n {dashboardComponent != null && dashboardComponent.filter(x => x.status && isMobile ? x.deviceType == 2 : x.deviceType == 1) !=null &&\n <>\n {dashboardComponent.filter(x => (x.componentStatus && x.userComponentStatus) && (isMobile ? x.deviceType == 2 : x.deviceType == 1)).map((item, index) => {\n\n switch (item.name) {\n case \"Homepage Banner\":\n return ;\n case \"Marque Annoucement\":\n return ;\n case \"Mobile Login Components\":\n return ;\n case \"Live Transactions\":\n return ;\n case \"Recent BigWin\":\n return ;\n case \"Referral Banner\":\n return ;\n case \"Provider List\":\n return ;\n case \"Recent Payout\":\n return ;\n case \"Recommended Slot\":\n return ;\n case \"Featured Slot\":\n return \n case \"Hot Providers\":\n return ;\n case \"Recommended Casino\":\n return ;\n }\n })}\n \n }\n\n {/*default arrangement set in BO (control by super company)*/}\n {dashboardComponent != null && dashboardComponent.filter(x => x.status && x.deviceType ==3) != null &&\n <>\n {dashboardComponent.filter(x => (x.componentStatus && x.userComponentStatus) && x.deviceType == 3).map((item, index) => {\n switch (item.name) {\n case \"Homepage Banner\":\n return ;\n case \"Marque Annoucement\":\n return ;\n case \"Mobile Login Components\":\n return ;\n case \"Live Transactions\":\n return ;\n case \"Recent BigWin\":\n return ;\n case \"Referral Banner\":\n return ;\n case \"Provider List\":\n return ;\n case \"Recent Payout\":\n return ;\n case \"Recommended Slot\":\n return ;\n case \"Featured Slot\":\n return \n case \"Hot Providers\":\n return ;\n case \"Recommended Casino\":\n return ;\n }\n })}\n \n }\n\n {/*original arrangement*/}\n {dashboardComponent == null &&\n <>\n \n \n\n \n \n \n \n\n \n \n \n\n \n\n \n\n \n \n }\n\n {/* {latestBets && latestBets.length > 0 && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{t(\"LATEST\")} {t(\"BETS\")} \n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{t(\"GAME\")}\n\t\t\t\t\t\t\t\t\t{t(\"PLAYER\")}\n\t\t\t\t\t\t\t\t\t{t(\"BETS\")}\n\t\t\t\t\t\t\t\t\t{t(\"NET_PROFIT\")}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{latestBets &&\n\t\t\t\t\t\t\t\t\t\tlatestBets.length > 0 &&\n\t\t\t\t\t\t\t\t\t\tmap(latestBets, (item, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.gameName}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.player.substring(0, 2) +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"*\".repeat(item.player.length - 2)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.validTurnover}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t= 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"t3-text-green\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"t3-text-red\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item.profit}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)} */}\n
\n
\n\n {/* /////////t3 footer */ }\n {/*
*/ }\n\n {/* ///pregame popup */ }\n \n\n {\n setTransferShow(false);\n }}\n // centered\n >\n \n
\n
\n
\n
{t(\"TRANSFER_BALANCE\")}
\n
\n
\n {\n setTransferShow(false);\n setToGameAmount(0);\n setPromoId(\"\");\n setShowPregamePopup(true);\n }}\n >\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n {\n let amount = e.target.value\n .replace(\n /[a-zA-Z`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?(kr|$||)]*/g,\n \"\"\n )\n .trim();\n\n let value = Number(parseFloat(amount) / 100).toFixed(2);\n if (\n parseFloat(value) > parseFloat(fromOptions[0].amount)\n ) {\n value = fromOptions[0].amount;\n }\n e.target.setSelectionRange(value.length, value.length);\n setInputValue(value);\n setToGameAmount(value);\n }}\n disabled={\n fromOptions.length > 0 &&\n fromOptions[0].amount >\n numberWithCurrencyFormat(parseFloat(0), 2, true)\n ? \"\"\n : \"disabled\"\n }\n />\n
\n \n {t(\"AVAILABLE_BALANCE\")}\n {fromOptions.length > 0\n ? numberWithCurrencyFormat(fromOptions[0].amount, 2)\n : \"\"}\n \n
\n \n {t(\"Min\")}:{\" \"}\n {promoId != \"\"\n ? numberWithCurrencyFormat(\n promoCodeList.filter(\n (x) => x.id == parseInt(promoId)\n )[0].minDeposit,\n 2,\n true\n )\n : numberWithCurrencyFormat(1, 2, true)}\n \n {\n setPromoShow(true);\n setTransferShow(false);\n }}\n style={{ cursor: \"pointer\" }}\n >\n
\n
\n \n
\n
\n {promoId == \"\"\n ? t(\"PROMO_CODE\")\n : promoCodeList.filter(\n (x) => x.id == parseInt(promoId)\n )[0].name}\n
\n
\n
\n \n
\n
\n {promoId != null &&\n promoCodeList\n .filter((x) => x.id == parseInt(promoId))\n .map((item, index) => {\n return (\n \n
\n
\n
{t(\"BONUS\")} %
\n
\n
\n \n {\" \"}\n {item.bonus}\n
\n
\n\n
\n
\n
Rollover
\n
\n \n {\" \"}\n x{item.rollover}\n
\n \n \n );\n })}\n\n
\n {bonus > 0 && (\n <>\n \n {t(\"BONUS\")}:{\" \"}\n {numberWithCurrencyFormat(parseFloat(bonus), 2, true)}%\n \n
\n \n )}\n
\n
\n 0\n ? \"t3-custom-light-btn mt-4 mb-4\"\n : \"t3-custom-light-btn mt-4 mb-4 disabled\"\n }\n >\n {t(\"TRANSFER_TO_WALLET\")}\n {transferLoading ? (\n \n ) : (\n \"\"\n )}\n \n
\n \n \n \n \n \n\n {\n setPromoShow(false);\n }}\n centered\n >\n \n
\n
\n
\n
{t(\"PROMO_CODE\")}
\n
\n
\n {\n setPromoShow(false);\n setTransferShow(true);\n }}\n >\n \n
\n
\n
\n
\n
\n
\n \n
\n {\n setPromoId(\"\");\n setPromoShow(false);\n setTransferShow(true);\n }}\n style={{ cursor: \"pointer\" }}\n >\n
\n
\n \n
\n
\n {t(\"NO_BONUS\")}\n
\n
\n
\n {promoCodeList\n .filter((x) => x.productId == masterProductId)\n .map((promo, index) => {\n return (\n {\n setPromoId(promo.id);\n setPromoShow(false);\n setTransferShow(true);\n }}\n style={{ cursor: \"pointer\" }}\n >\n
\n
\n \n
\n
\n {selectedGameName} - {promo.name}\n
\n
\n \n );\n })}\n \n \n \n
\n \n\n {\n setShowAnnouncementModal(false);\n }}\n centered\n fullscreen\n >\n \n
\n
\n
\n {logo ? (\n \"logo\"\n ) : (\n \n )}\n
\n setShowModalRegister(!showModalRegister)}\n onClick={() => closePopUp()}\n >\n \n
\n
\n
\n
\n {announcementList &&\n announcementList.length > 0 &&\n map(announcementList, (item, index) => {\n return (\n
\n {item.announcementLanguages ? (\n \n ) : (\n \n )\n }\n
\n );\n })}\n
\n
\n closePopUp()}\n >\n OK\n \n
\n
\n \n
\n \n\n { isLoading ? : \"\" }\n \n );\n};\n\nexport default Login;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACcAAAAnCAYAAACMo1E1AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQLSURBVHgB7ZhNbBtFFMffm92kDcSNYydOnBQUQIhKCKlQ9YJQSCSQCkKFE9xo6I1ycesibiFuD6gQNy4XPg4tomcQolSCA2okhAQSAgSoNAioJT78FbdJ2rR1vTuvb9M6Wdv76a7THvqT7J2ZNzP73503b54NcIfWQAiIcILCXdVcD2zsXs6lN81DALQsbjBZGuPBO3mGJ4Egzk1x06zL/D0Hkn4joZzEpStf5D4cvgQ+8SUunDgbvkvpThDAq1yNeR1HgEsC5KdS7UjlD/VmvY7zLG5gX2mnEPg+EMXhZkA4mJvun/TW1YWxsVPqH9sePsJPvwcCA7OkKuNub9FR3OY3FyP68tWveV22QuBgVkfxfHE68otdD2Fn6Nt9JqRfrH7ZHmEGNKKCfmLwjfMj4FdcZ2/fWzzBdmgjRHAvavopY6NZ2S3FDSaLuwjoNVgXaKRLhFJWliaf27yXunRRPm0MgvVE0Gjundg35ia1sY/E8u6bEcYxcBZJniBUyiv3lKhKkMOI+CDP/gwgRi0HanCAv8fNTU1vLp6cP9uqOPahqfzh/pSdfShZ+onF224wTadHS5nYz7V6nc8N7yuNty6MPnISttIH4BEnu6qIl8z1OnES8AVoEZ20o072ePL/bXxRnPoA0g5ztd7nUG5tNRcQiphrbONlnORd/wQRXubqouskHFON+Dp/dMuFZnGAW6BFCne/V5cmGVkLL2PKeFj08bxqT/QhvvxglFeXtX9PsRt8ZBoNEKRSEgKAXeueWnlVnBpSI3AbIFAP1cqry6pfqVYUVYBPZjl8zFpaVDVLVW1q7aY4wv43AS5IUi40iSuGY6X4xTI7LfWARwxhduHjRjq0ahtK5J8CRZkAFwTQubVyjRSyz1AB2gTng56SVKVD/FUr160jIX4LbQIFbnLtRFD67+3ov7VqfSiR+izP8gp4hP0owcfdBAdP4tT7frPt+g8gPGZqCq+cEY7Ir8y1OnEbZefnFUWrcHEDeIAdPLxyU7K769pR6CbLQJfwiblet6zZTO8CR8wP4FZAlC1mBj4zN4nmPlVDXCAB1Q/8+/ZAY1uTuHw6fprX4F1YTxDn8tPRY43NllG3q0OZ4ssZWAfYFzXSqjusbJbi/j4UWZRSeZGLgfzn4QTvpf35TDxrZbM9rwozkV8l4nOcUCxAmyAUk4V07Iid3fEwLUz3fV+VnduNnQTByqqQlPvZzw469XI96UszPX9WQBllrz0OQUD4O+j4eH5mIO3W1VMacu5w9J9cuu9lFsif1jaK4R6SaO+GUPSxXKb/Ry9jVPABCzTe3vF48vwokbaLM9xnuT5oO4BgSQJ9R5I+vgqXTi5k7mub/1oSe33hgaFk+WlrKwX2z+kd/HANo89mPd81XDsAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACcAAAAnCAYAAACMo1E1AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQcSURBVHgB7ZhfaNtVFMfPuUnblOmWMBxJk2mn/ZOpExHBl7IFofpi9yAY2hS3TvAPgtYNQS1CNweKexARX+aDOucWGvGpqDDBupf5IMN/rK5JatKlbZL9M7I/SZPf7x7P3QikaZr98q8d2z6Q3ntPzrn5cu+593d+BbjDLQjCTULXlzGnaDH3AuonTve7gsq26uI6x+a3ChJvEkFf3iZJ7g772j5eHXFE2DF2ttdE9A4BeJZ+TamQz2EzwwrS8fWFtcKU3UNjyeeQ4EFaxg8RrapdEXH3HknZLGJhGEDjD1qRbhhySv1pqLjNh+cek03mPSTT21nU3YYDCUKqaYg4tz/uIcBRXeUTZzrvU0XxKOq8ch3fU4splRwkhJckwBNQA1LK31Rbs7j2LyLWZovlDfov8Toh2qAOaFmMqbZqcd3+M20ELSPcHeQksRrZON7qY0D4N6IcLud3VWB126rySQfB9xN5+OeajUVRTAixO6fJNSaBB2/gPJ3cYb+iOgIM0h1IPNntT0xIwAkEeopNxoQhfZTNZB4hTXexsENssZT3x0i+W3blVD41tbbu5HtphHTYAJVANMkH49XwgON4lz++V51eg3F/lRXnPjS7XjabXuOFHWZnK1QCwoIk+iDsc+xTw05/Yj837xoNJ9J/LSmu6+jZHhD0opQwwG5NKoUrgmAiC/RCdMARvS4s+R6ngGFh16donl8kzh24uIX07CcE0nNNT4XlAIck+a4dCfvsn6uxZ3TCHO92f8aHZhdUyLpLMycWiZNSex9KVAdGkASfZsy50VnvxotqfH9get2ctuYbfij0QqUQxE6+/HhukTjS08MoLP/yT/WpB7PBqaKSTENh3z3H84aOb2dduGAeZ2GPQhUQij8Lx9fEhQbv+4ebHarfGbjQC3puCAG3srtryQRqDsL9l+7a8GF8O17N27sC552U1X5gYQ9DtfAJXyKukJB3/Y/cqA+4jyb6JOKzHPU0Dx0s7Geh6a9MPe+cKozhi7mdU+MnTtVNUAN86S5dueU47bOPczOuFusB/7xresAZK+WnLmZe0naoFRNECoc1l+mbD59z6GZ9HupANpO2RXdtSuXHhh9fy5HWLvNBwhTUCtFUoTBFzeJ4wgzf6m9zNw01wOVWvNhWszhFyNd2EE3wEHejUCUI4pdiW13EKaa89ojZpG/jKuQrqAZdRopNdROnmPQ6zwT7HTv5vfMtqPDBrIH592JbXcXl4RfiA1yZbIEKtvmK1CaLbQ0Rp+CS6RSYcj28ft8ZcJ/JV7+FNEycIujdOBf02Z+RQHvLe2KwlLWh4vJwNbwPsEUVA9GSDkgnS5lXRJwi2G/7AxZyPXxKji36gmgmS1TypWdV/svUeSQ+BEJs43w8dxlaD8R9a8/DHW4X/ge4ko4BDwqHQgAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAP1BMVEUAAAD/SD//Sj//ST//SED/SED/ST7/SkD/ST//SkD/SD//RED/SUD/ST//RUD/SD//ST//RkD/SED/SkL/ST8EMutfAAAAFHRSTlMAb+/fYF+PML+vrxDfgDDfz1AgH0PyfKsAAACTSURBVBjTbZBZDsMgDAUNDglL9sz9z9oIIhpXnR9g9CxsS6W4NMOegnwZPA/a9QjRXSLToLA0t+CdPDjPWGvxk3Qmz3EfSstBy+LLHVR5S4kESQQrHVlmVitPtN/N5a+cucQwsUvCWTmQxRFtuRKk+N/mtY25mjFDXZJdyNJXp+FOny7C2D9UHvzx7iNvsOVQ6usD79AIckf+z48AAAAASUVORK5CYII=\"","import { fetch } from 'whatwg-fetch';\nimport { InputValidationKey } from './Constant';\n\n/// \n/// Author : \n/// To Check if it is empty or null string\n/// \nexport function stringIsNullOrEmpty(data) {\n return data == null || data == '';\n}\n\n/// \n/// Author : \n/// Convert array into form that use to post data\n/// \nexport function createFormBody(params) {\n let formBody = [];\n\n for (let property in params) {\n let encodedKey = encodeURIComponent(property);\n let encodedValue = encodeURIComponent(params[property]);\n formBody.push(encodedKey + \"=\" + encodedValue);\n }\n\n formBody = formBody.join(\"&\");\n return formBody;\n}\n\n/// \n/// Author : \n/// Convert array into form that use to post data\n/// \nexport function createMultiPartFormBody(params) {\n var formBody = new FormData();\n\n for (const [key, value] of Object.entries(params)) {\n formBody.append(key, value);\n }\n\n return formBody;\n}\n\n/// \n/// Author : \n/// Used to Navigation to certain path\n/// \nexport function navigateTo(history, url, state) {\n if (state !== undefined) {\n history.push({\n pathname: url,\n state: state\n });\n } else {\n history.push(url);\n }\n}\n\n/// \n/// Author : \n/// \nexport const dataTableFilterCaseInsensitive = (filter, row) => {\n const id = filter.pivotId || filter.id;\n if (row[id] !== null && typeof row[id] === 'string') {\n return (\n row[id] !== undefined ?\n String(row[id].toLowerCase()).startsWith(filter.value.toLowerCase()) : true\n )\n } else {\n return (\n String(row[filter.id]) === filter.value\n )\n }\n}\n\n/// \n/// Author: -\n/// \nexport function getValidationMessage(error) {\n var validationMsg = \"\";\n switch (error.type) {\n case InputValidationKey._REQUIRED_KEY:\n validationMsg = \"INPUT_FIELD_REQUIRED\";\n break;\n case InputValidationKey._MAX_LENGTH_KEY:\n validationMsg = \"MAX_LENGTH_EXCEEDED\";\n break;\n case InputValidationKey._MIN_LENGTH_KEY:\n validationMsg = \"MIN_LENGTH_NO_MET\";\n break;\n default:\n validationMsg = error.message\n break;\n }\n return validationMsg;\n}\n\n/// \n/// Author: -\n/// \nexport const capitalize = (string) => {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\n/// \n/// Author: -\n/// \nexport function isObjectEmpty(data) {\n return Object.keys(data).length === 0;\n}\n\n/// \n/// Author : \n/// \nexport async function imagePathToFileObject(imagePath) {\n const response = await fetch(imagePath);\n const blob = await response.blob();\n const file = new File([blob], imagePath);\n return file;\n}\n\n/// \n/// Author : \n/// \nexport function formatNumber(data, decimalPlaces) {\n return parseFloat(data).toLocaleString(undefined, { minimumFractionDigits: decimalPlaces })\n}\n\n/// \n/// Author : \n/// \nexport function arrayGroupByKey(array, key) {\n return array.reduce((result, currentValue) => {\n (result[currentValue[key]] = result[currentValue[key]] || []).push(\n currentValue\n );\n\n return result;\n }, {});\n};\n\n/// \n/// Author : \n/// \nexport function numberWithCurrencyFormat(value, decimal = 2, force = false) {\n const CURRENCY_DECIMAL = 2;\n\n \n if (decimal === 0) {\n return Math.round(value).toString().replace(/\\d(?=(\\d{3})+$)/g, '$&,');\n }\n\n\n var convertedNumber = parseFloat((Math.round(value * Math.pow(10, decimal))) / Math.pow(10, decimal)).toFixed(decimal).toString().replace(/\\d(?=(\\d{3})+\\.)/g, '$&,');\n\n if (decimal > CURRENCY_DECIMAL) {\n let afterDecimalNumber = convertedNumber.split('.');\n let decimalDiff = decimal - CURRENCY_DECIMAL;\n if (afterDecimalNumber.length == 2 && convertedNumber.lastIndexOf('0') == (convertedNumber.length - 1)) {\n let processNumber = afterDecimalNumber[1];\n let beginNumber = !force ? processNumber.length - 1 : processNumber;\n for (let i = beginNumber; (i > 0 && decimalDiff > 0); i--) {\n if (processNumber.charAt(i) == '0') {\n processNumber = processNumber.substr(0, i) + processNumber.substr(i + 1);\n } else {\n break;\n }\n decimalDiff--;\n }\n convertedNumber = afterDecimalNumber[0] + \".\" + processNumber;\n }\n }\n\n return convertedNumber\n}\n\n/// \n/// Author : \n/// \nexport function ignoreDecimal(e) {\n const _KEYCODE_DECIMAL = 190;\n const _KEYCODE_E = 69;\n let keyCode = e.keyCode;\n\n if (keyCode == _KEYCODE_DECIMAL || keyCode == _KEYCODE_E) {\n e.preventDefault();\n }\n}\n\nexport function formatPercent(v) {\n return `${v}%`\n}\n\n// CHRIS_LOCALE: Add locale definitions and functions\nconst VALID_LOCALES = [ 'ab' , 'aa' , 'af' , 'ak' , 'sq' , 'am' , 'ar' , 'an' , 'hy' , 'as' , 'av' , 'ae' , 'ay' , 'az' , 'bm' , 'ba' , 'eu' , 'be' , 'bn' , 'bh' , 'bi' , 'bs' , 'br' , 'bg' , 'my' , 'ca' , 'km' , 'ch' , 'ce' , 'ny' , 'zh', 'zk', 'cu' , 'cv' , 'kw' , 'co' , 'cr' , 'hr' , 'cs' , 'da' , 'dv' , 'nl' , 'dz' , 'en' , 'eo' , 'et' , 'ee' , 'fo' , 'fj' , 'fi' , 'fr' , 'ff' , 'gd' , 'gl' , 'lg' , 'ka' , 'de' , 'ki' , 'el' , 'kl' , 'gn' , 'gu' , 'ht' , 'ha' , 'he' , 'hz' , 'hi' , 'ho' , 'hu' , 'is' , 'io' , 'ig' , 'id' , 'ia' , 'ie' , 'iu' , 'ik' , 'ga' , 'it' , 'ja' , 'jv' , 'kn' , 'kr' , 'ks' , 'kk' , 'rw' , 'kv' , 'kg' , 'ko' , 'kj' , 'ku' , 'ky' , 'lo' , 'la' , 'lv' , 'lb' , 'li' , 'ln' , 'lt' , 'lu' , 'mk' , 'mg' , 'ms' , 'ml' , 'mt' , 'gv' , 'mi' , 'mr' , 'mh' , 'ro' , 'mn' , 'na' , 'nv' , 'nd' , 'ng' , 'ne' , 'se' , 'no' , 'nb' , 'nn' , 'ii' , 'oc' , 'oj' , 'or' , 'om' , 'os' , 'pi' , 'pa' , 'ps' , 'fa' , 'pl' , 'pt' , 'qu' , 'rm' , 'rn' , 'ru' , 'sm' , 'sg' , 'sa' , 'sc' , 'sr' , 'sn' , 'sd' , 'si' , 'sk' , 'sl' , 'so' , 'st' , 'nr' , 'es' , 'su' , 'sw' , 'ss' , 'sv' , 'tl' , 'ty' , 'tg' , 'ta' , 'tt' , 'te' , 'th' , 'bo' , 'ti' , 'to' , 'ts' , 'tn' , 'tr' , 'tk' , 'tw' , 'ug' , 'uk' , 'ur' , 'uz' , 've' , 'vi' , 'vo' , 'wa' , 'cy' , 'fy' , 'wo' , 'xh' , 'yi' , 'yo' , 'za' , 'zu', 'tpi']; // ISO 639-1\n\nexport function isValidLocale(locale) {\n return VALID_LOCALES.includes(locale);\n}\n\n// Checks if url has valid locale\nexport function hasValidLocale(pathname) {\n // Get locale from browser url\n const browserLocale = extractLocaleFromPathname(pathname);\n const regex = new RegExp(`^/${browserLocale}$`);\n \n // For condition where url ends with locale\n if(isValidLocale(browserLocale) && pathname.endsWith(`/${browserLocale}`) && pathname.match(regex)) {\n return `${browserLocale}`\n }\n\n // For condition where url contains locale\n const regex2 = new RegExp(`^/${browserLocale}(/|$)`)\n if(isValidLocale(browserLocale) && pathname.startsWith(`/${browserLocale}`) && pathname.match(regex2)) {\n return `${browserLocale}`\n } else {\n return false\n }\n}\n\nexport function extractLocaleFromPathname(pathname) {\n // Split the pathname by slashes and filter out empty strings\n const pathSegments = pathname.split('/').filter(segment => segment.trim() !== '');\n // Check if there's at least one segment that could be the locale\n if (pathSegments.length > 0) {\n return pathSegments[0];\n } else {\n return null; // or a default locale, depending on your application's needs\n }\n}\n\nexport function abbreviateNumber(number) {\n //parse the number just incase got \",\" or any symbols - john\n const parsedNumber = parseInt(number.replace(/[^0-9.-]+/g, \"\"));\n\n if (parsedNumber >= 1_000_000_000) {\n return (parsedNumber / 1_000_000_000).toFixed(1).replace(/\\.0$/, '') + 'b';\n } else if (parsedNumber >= 1_000_000) {\n return (parsedNumber / 1_000_000).toFixed(1).replace(/\\.0$/, '') + 'm';\n } else if (parsedNumber >= 1_000) {\n return (parsedNumber / 1_000).toFixed(1).replace(/\\.0$/, '') + 'k';\n }\n return parsedNumber.toString();\n}\n\n// Utility function to adjust the font size\nexport const adjustFontSizeToFit = () => {\n // Select all the elements you want to adjust (you can customize this selector)\n const elements = document.querySelectorAll(\".adjust-font-size\");\n\n elements.forEach(element => {\n //console.log(element);\n const maxWidth = element.clientWidth;\n const maxHeight = element.clientHeight;\n let fontSize = parseInt(window.getComputedStyle(element).fontSize, 10);\n //console.log(\"element.scrollWidth\", element.scrollWidth, \" > \", maxWidth, \" | \", element.scrollHeight , \" > \" , maxHeight)\n\n // Decrease font size until the element fits within the container\n while (\n (element.scrollWidth > maxWidth || element.scrollHeight > maxHeight) &&\n fontSize > 10\n ) {\n //console.log(fontSize)\n fontSize -= 1;\n element.style.fontSize = `${fontSize}px`;\n }\n });\n};\n\nexport function waitForFbPixel(callback, timeout = 5000) {\n const startTime = Date.now();\n\n function checkFbq() {\n // If fbq is defined, loaded, and at least one pixel is configured, execute callback.\n if (window.fbq !== undefined && window.fbq?.loaded) {\n console.log(\"FB Pixel loaded\");\n callback();\n }\n // If timeout exceeded, log a warning and stop checking.\n else if (Date.now() - startTime >= timeout) {\n console.warn(\"FB Pixel not loaded within timeout\");\n }\n // Otherwise, check again after 200ms.\n else {\n setTimeout(checkFbq, 200);\n }\n }\n\n checkFbq();\n}","import React, { useState, useRef, useEffect } from 'react';\nimport { useHistory } from \"react-router-dom\";\nimport { useTranslation } from 'react-i18next';\nimport DateTime from 'react-datetime';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport { useSelector } from \"react-redux\";\n\nconst DateRangeFilter = (props) => {\n let _history = useHistory();\n const { t, i18n } = useTranslation();\n\n const [sDate, setSDate] = useState();\n const [eDate, setEDate] = useState();\n const [selectedOption, setSelectedOption] = useState({});\n //const [openCalendar, setOpenCalendar] = useState(false);\n const[calendarOpen,setCalendarOpen]=useState(\n {\n startCalendar:false,\n endCalendar:false\n }\n );\n const [optionClicked, setOptionClicked] = useState(false);\n const [currMinDate, setCurrMinDate] = useState(moment());\n const [currMaxDate, setCurrMaxDate] = useState(moment());\n const [chgOption, setchgOption] = useState();\n var _dateRef = useRef(null);\n\n const {\n startDate = sDate,\n endDate = eDate,\n setStartDate,\n setEndDate,\n minDate,\n maxDate,\n onStartDateChange,\n onEndDateChange,\n onSave,\n options = false,\n ...rest\n } = props;\n const _PREV_DAY = \"PREV\";\n const _NEXT_DAY = \"NEXT\";\n\n const _DATE_SELECTIONS = [\n // {\n // label: t(\"PREV_DAY\"),\n // from: _PREV_DAY,\n // },\n {\n label: t(\"TODAY\"),\n from: moment().startOf('day'),\n to:moment().endOf('day'),\n //initialType: moment().startOf('day').format(\"DD-MM-YYYY\") + t(\"TO\") + moment().endOf('day').format(\"DD-MM-YYYY\")\n },\n {\n label: t(\"YESTERDAY\"),\n from: moment().subtract(1, 'day').startOf('day'),\n to: moment().subtract(1, 'day').endOf('day'),\n initialType: moment().subtract(1, 'day').startOf('day').format(\"DD-MM-YYYY\") + t(\"TO\") + moment().subtract(1, 'day').endOf('day').format(\"DD-MM-YYYY\")\n },\n {\n label: t(\"THIS_WEEK\"),\n from: moment().startOf('isoWeek'),\n to:moment().endOf('day'),\n initialType: moment().startOf(\"isoWeek\").format(\"DD-MM-YYYY\") + t(\"TO\") + moment().endOf('day').format(\"DD-MM-YYYY\")\n },\n {\n label: t(\"LAST_WEEK\"),\n from: moment().subtract(1, 'week').startOf('isoWeek'),\n to: moment().subtract(1, 'week').endOf('isoWeek'),\n initialType: moment().subtract(1, \"week\").startOf(\"isoWeek\").format(\"DD-MM-YYYY\") + t(\"TO\") + moment().subtract(1, \"week\").endOf(\"isoWeek\").format(\"DD-MM-YYYY\")\n },\n {\n label: t(\"THIS_MONTH\"),\n from: moment().startOf('month'),\n to:moment().endOf('day'),\n initialType: moment().startOf(\"month\").format(\"DD-MM-YYYY\") + t(\"TO\") + moment().endOf('day').format(\"DD-MM-YYYY\")\n },\n {\n label: t(\"LAST_MONTH\"),\n from: moment().subtract(1, 'month').startOf('month'),\n to: moment().subtract(1, 'month').endOf('month'),\n initialType: moment().subtract(1, \"month\").startOf(\"month\").format(\"DD-MM-YYYY\") + t(\"TO\") + moment().subtract(1, 'month').endOf('month').format(\"DD-MM-YYYY\")\n },\n // {\n // label: t(\"NEXT_DAY\"),\n // from: _NEXT_DAY\n // },\n ];\n\n useEffect(() => {\n\n let tempMinDate = props.minDate;\n let tempMaxDate = props.maxDate;\n if (props.minDate === undefined) {\n tempMinDate = moment().subtract(2, 'months');\n }\n if (props.maxDate === undefined) {\n tempMaxDate = moment();\n }\n setCurrMinDate(tempMinDate);\n setCurrMaxDate(tempMaxDate);\n let startDateMoment;\n let endDateMoment;\n if (selectedOption.from == _PREV_DAY) {\n startDateMoment = moment(startDate).subtract(1, 'day');\n endDateMoment = moment(startDate).subtract(1, 'day');\n\n if(moment(startDate).startOf('day').isSameOrBefore(moment(currMinDate).add(1,'day').startOf('day'))){\n startDateMoment = moment(startDate);\n endDateMoment = moment(startDate);\n }\n } else if (selectedOption.from == _NEXT_DAY) {\n startDateMoment = moment(startDate).add(1, 'day');\n endDateMoment = moment(startDate).add(1, 'day'); \n \n if(moment(startDate).startOf('day').isSameOrAfter(moment(currMaxDate).startOf('day'))){\n startDateMoment = moment(startDate);\n endDateMoment = moment(startDate)\n }\n } else {\n startDateMoment = selectedOption.from ? selectedOption.from : moment();\n endDateMoment = selectedOption.to ? selectedOption.to : moment();\n }\n\n if (startDate === undefined || optionClicked) {\n setSDate(startDateMoment);\n if (typeof (setStartDate) !== \"undefined\") {\n props.setStartDate(startDateMoment);\n }\n }\n else\n setSDate(startDate);\n if (endDate === undefined || optionClicked) {\n setEDate(endDateMoment);\n if (typeof (setEndDate) !== \"undefined\") {\n props.setEndDate(endDateMoment);\n }\n }\n else\n setEDate(endDate);\n\n setOptionClicked(false);\n }, [selectedOption]);\n\n // useEffect(() => {\n // if (openCalendar) {\n // _dateRef.current.openCalendar();\n // }\n // }, [openCalendar])\n\n function handleStartDate(date) {\n date=moment(date).startOf('day');\n if(!checkOptionActive(date))setchgOption(true);\n setSDate(date);\n props.setStartDate(date);\n //setOpenCalendar(true);\n if (onStartDateChange) {\n onStartDateChange(date);\n }\n }\n\n useEffect(() => {\n if (chgOption) {\n var object={};\n object.initialType=\"\";\n setOptionClicked(false);\n setSelectedOption(object.initialType);\n updateTypeOnSelection(object);\n setchgOption(false);\n }\n }, [chgOption]);\n\n function handleEndDate(date) {\n date=moment(date).endOf('day');\n if(!checkOptionActive(date))setchgOption(true); \n setEDate(date);\n props.setEndDate(date);\n if (onEndDateChange) {\n onEndDateChange(date);\n }\n }\n\n function checkOptionActive(date){\n var isActive=false;\n\n // Get the localized \"to\" separator\n const separator = t(\"TO\").trim();\n\n if(props.initialType !== undefined && props.initialType.trim()!==''){\n const [startDateStr, endDateStr] = props.initialType.split(`${separator}`);\n \n var startDate=moment(new Date(startDateStr.split('-').reverse().join('-'))).startOf('day');\n var endDate=moment(new Date(endDateStr.split('-').reverse().join('-'))).startOf('day');\n\n if(\n moment(date).startOf('day').isBetween(startDate, endDate, undefined, '[]')\n ){\n isActive=true; \n }\n\n }\n\n return isActive;\n }\n\n function handleSave() {\n if (onSave) {\n onSave(sDate, eDate);\n }\n }\n var sDateValid = function(current){\n return current.isSameOrAfter(currMinDate) && current.isSameOrBefore(moment(eDate).startOf('day'));\n }\n\n function updateTypeOnSelection(selection) {\n if (props.typeOnSelect != undefined) {\n props.typeOnSelect(selection.initialType);\n }\n }\n var eDateValid = function(current){\n return current.isSameOrAfter(moment(sDate).startOf('day')) && current.isSameOrBefore(currMaxDate);\n }\n\n\n\nconst handleClick = (type) => {\n setCalendarOpen((prevState) => {\n if (type === \"start\") {\n return { ...prevState, startCalendar: true };\n } else {\n return { ...prevState, endCalendar: true };\n }\n });\n};\n\nconst handleTouchStart = (type) => (e) => {\n e.preventDefault();\n\n setCalendarOpen((prevState) => {\n if (type === \"start\") {\n return { ...prevState, startCalendar: true };\n } else {\n return { ...prevState, endCalendar: true };\n }\n });\n};\n\nconst startDateTimeRef = useRef(null);\nconst endDateTimeRef = useRef(null);\n\nuseEffect(() => {\n const handleClickOutside = (e) => {\n if (\n (startDateTimeRef.current && !startDateTimeRef.current.contains(e.target) && calendarOpen.startCalendar) ||\n (endDateTimeRef.current && !endDateTimeRef.current.contains(e.target) && calendarOpen.endCalendar)\n ) {\n setCalendarOpen((prevState) => ({\n startCalendar: false,\n endCalendar: false\n }));\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n document.addEventListener(\"touchstart\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n document.removeEventListener(\"touchstart\", handleClickOutside);\n };\n}, [calendarOpen]);\n\n return (\n /*
*/\n
\n
\n
\n
\n \n
\n handleClick(\"start\")} // Open calendar on focus\n onClick={() =>handleClick(\"start\")}\n onTouchStart={handleTouchStart(\"start\")} // Also open calendar on click\n inputProps={{ className: \"t3-custom-input-text date\", readOnly: true }}\n name=\"startDate\"\n dateFormat=\"DD-MM-YYYY\"\n closeOnSelect={true}\n value={moment(sDate).format(\"DD-MM-YYYY\")}\n isValidDate={sDateValid}\n timeFormat={false}\n onChange={handleStartDate}\n />\n
\n
\n\n
\n \n
\n handleClick(\"end\")} // Open calendar on focus\n onClick={() =>handleClick(\"end\")}\n onTouchStart={handleTouchStart(\"end\")} // Also open calendar on click\n inputProps={{ className: \"t3-custom-input-text date\", readOnly: true }}\n name=\"endDate\"\n dateFormat=\"DD-MM-YYYY\"\n closeOnSelect={true}\n timeFormat={false}\n value={moment(eDate).format(\"DD-MM-YYYY\")}\n isValidDate={eDateValid}\n //ref={_dateRef}\n onChange={handleEndDate}\n />\n
\n
\n\n \n
\n
    \n {_DATE_SELECTIONS.map((selection, index) => {\n return (\n {\n setOptionClicked(true);\n setSelectedOption(selection);\n updateTypeOnSelection(selection); \n }}\n >\n
    {selection.label}
    \n \n );\n })}\n
\n \n \n
\n\n
\n );\n};\n\nexport default DateRangeFilter;","var map = {\n\t\"./template_1/Login\": 356\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(function() {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 513;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/LiveChat\": [\n\t\t767,\n\t\t27\n\t],\n\t\"./template_1/home/LiveChat\": [\n\t\t397,\n\t\t1\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 514;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Settings\": [\n\t\t721,\n\t\t0,\n\t\t32\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 515;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Kpi\": [\n\t\t722,\n\t\t50\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 516;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/News\": [\n\t\t723,\n\t\t51\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 517;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/NewsDetails\": [\n\t\t724,\n\t\t52\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 518;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/GameLobby\": [\n\t\t765,\n\t\t22\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 519;\nmodule.exports = webpackAsyncContext;","import React, { useState, useEffect } from \"react\";\n\nconst Pagination = (props) => {\n const { totalPages, retrieveDataRecords, searchKeyword, isResetCurrentPage, setIsChangeTab } = props;\n const [currentPage, setCurrentPage] = useState(1);\n const pageLimit = 5;\n const startPage = Math.max(1, currentPage - Math.floor(pageLimit / 2));\n const endPage = Math.min(totalPages, startPage + pageLimit - 1);\n\n const adjustedStartPage = endPage - startPage + 1 < pageLimit ? Math.max(1, endPage - pageLimit + 1) : startPage;\n\n useEffect(() => {\n if (isResetCurrentPage) {\n resetCurrentPage();\n setIsChangeTab(false);\n }\n }, [isResetCurrentPage]);\n\n const goToPage = (pageNumber) => {\n if (pageNumber >= 1 && pageNumber <= totalPages) {\n setCurrentPage(pageNumber);\n retrieveDataRecords(pageNumber, searchKeyword);\n }\n };\n\n const previousPage = () => {\n if (currentPage > 1) {\n goToPage(currentPage - 1);\n }\n };\n\n const nextPage = () => {\n if (currentPage < totalPages) {\n goToPage(currentPage + 1);\n }\n };\n\n function resetCurrentPage() {\n setCurrentPage(prev => 1);\n }\n\n return (\n
\n \n
\n {[...Array(endPage - adjustedStartPage + 1).keys()].map((_, index) => {\n const pageNumber = adjustedStartPage + index;\n return (\n \n goToPage(pageNumber)}\n >\n {pageNumber}\n \n )\n })}\n
\n \n
\n );\n};\n\nexport default Pagination;","var map = {\n\t\"./template_1/game/UnderMaintenance\": [\n\t\t725,\n\t\t31\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 520;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/report/GameDetails\": [\n\t\t726,\n\t\t30\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 521;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/ContactForm\": [\n\t\t727,\n\t\t29\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 522;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/LiveChat\": [\n\t\t397,\n\t\t1\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 523;\nmodule.exports = webpackAsyncContext;","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 524;","var map = {\n\t\"./template_1/home/Promotion\": [\n\t\t728,\n\t\t53\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 525;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/PromotionInfo\": [\n\t\t729,\n\t\t54\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 526;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/CustomPage\": [\n\t\t730,\n\t\t49\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 527;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/GameList\": [\n\t\t770,\n\t\t23\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 528;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Referral.js\": [\n\t\t769,\n\t\t0,\n\t\t19\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 529;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Vip.js\": [\n\t\t766,\n\t\t21\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 530;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/home/Rebate.js\": [\n\t\t731,\n\t\t28\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 531;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/RecentGames.js\": [\n\t\t732,\n\t\t26\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 532;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/HotGames.js\": [\n\t\t733,\n\t\t25\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 533;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/NotFound.js\": 232\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(function() {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 534;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/game/GamePage2\": [\n\t\t768,\n\t\t20\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 535;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./template_1/profile/SpinWheelList\": [\n\t\t734,\n\t\t0,\n\t\t24\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 536;\nmodule.exports = webpackAsyncContext;","module.exports = __webpack_public_path__ + \"static/media/spin-wheel-btn.aeb00e2d.svg\";","import React, { useState } from 'react';\n\nconst FallbackImage = ({ src, alt, fallbackSrc }) => {\n const [imageLoaded, setImageLoaded] = useState(true);\n const [imageError, setImageError] = useState(false);\n\n const handleLoad = () => {\n // console.log(\"Load\")\n setImageLoaded(true);\n setImageError(false);\n };\n\n const handleError = () => {\n console.log(\"Error\")\n setImageLoaded(false);\n setImageError(true);\n };\n\n return (\n <>\n {imageLoaded && !imageError && src ? (\n \n ) : (\n \"Fallback\n )}\n \n );\n};\n\nexport default FallbackImage;\n","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport { Language, SessionKey } from \"../util/Constant\";\n\nimport common_en from \"./en/common.json\";\nimport common_kh from \"./kh/common.json\";\nimport common_cn from \"./zh/common.json\";\nimport common_vi from \"./vi/common.json\";\nimport common_id from \"./id/common.json\";\nimport common_pt from \"./pt/common.json\";\nimport common_bn from \"./bn/common.json\";\nimport common_zh_hk from \"./zh-HK/common.json\";\nimport common_ur from \"./ur/common.json\";\nimport common_ne from \"./ne/common.json\";\nimport common_tpi from \"./tpi/common.json\";\nimport common_ho from \"./ho/common.json\";\n\n/// \n/// Author: -\n/// \nconst _resources = {};\n_resources[Language._ENGLISH] = { common: common_en };\n_resources[Language._KHMER] = { common: common_kh };\n_resources[Language._CHINESE] = { common: common_cn };\n_resources[Language._VIETNAMESE] = { common: common_vi };\n_resources[Language._INDON] = { common: common_id };\n_resources[Language._PORTUGUESE] = { common: common_pt };\n_resources[Language._BENGALI] = { common: common_bn };\n_resources[Language._TRADITIONAL_CHINESE] = { common: common_zh_hk };\n_resources[Language._URDU] = { common: common_ur };\n_resources[Language._NEPALI] = { common: common_ne };\n_resources[Language._TOK_PISIN] = { common: common_tpi };\n_resources[Language._HIRI_MOTU] = { common: common_ho };\n\n\nif (window.ReactNativeWebView) {\n\twindow.ReactNativeWebView.postMessage(\n\t\tJSON.stringify({\n\t\t\taction: \"language\",\n\t\t\tlanguage: localStorage.getItem(SessionKey._LANGUAGE) || Language._ENGLISH,\n\t\t})\n\t);\n}\n\ni18n.use(initReactI18next).init({\n\tdefaultNS: \"common\",\n\tdebug: false,\n\tresources: _resources,\n\tlng: localStorage.getItem(SessionKey._LANGUAGE) || Language._ENGLISH,\n\tfallbackLng: [Language._ENGLISH, Language._KHMER],\n\tkeySeparator: false,\n\tinterpolation: {\n\t\tescapeValue: false, // react already safes from xss\n\t},\n});\n\nexport default i18n;\n","/// \n/// Author: -\n/// \nimport axios from \"axios\";\nimport { ApiKey } from \"./Constant.js\";\nimport * as AppActions from \"../redux/AppAction\";\nimport * as AuthActions from \"../redux/AuthAction\";\nimport store from \"../ApplicationStore\";\nimport i18n from \"i18next\";\n\nconst _HTTP_CODE_UNAUTHORIZED = 401;\nconst _HTTP_CODE_FORBIDDEN = 403;\n\n/// \n/// Author: -\n/// \nasync function interceptRequest(requestConfig) {\n //store.dispatch(AppActions.setBusy());\n return requestConfig;\n}\n\n/// \n/// Author: -\n/// \nfunction interceptResponse(response) {\n store.dispatch(\n AppActions.setPerformApiCall(\n response.data[ApiKey._API_SUCCESS_KEY],\n response.config.url\n )\n );\n\n //store.dispatch(AppActions.setIdle());\n return response.data;\n}\n\n/// \n/// Author: -\n/// \nfunction interceptError(error) {\n var returnData = {};\n\n store.dispatch(AppActions.setIdle());\n if (error && error.response) {\n if (\n error.response.status == _HTTP_CODE_UNAUTHORIZED ||\n error.response.status == _HTTP_CODE_FORBIDDEN\n ) {\n store.dispatch(AuthActions.performLogout());\n store.dispatch(\n AppActions.showResponseMessage(false, i18n.t(\"SESSION_EXPIRED\"))\n );\n returnData = {\n success: false,\n message: i18n.t(\"SESSION_EXPIRED\"),\n };\n if (window.ReactNativeWebView) {\n window.ReactNativeWebView.postMessage(JSON.stringify(error.response));\n }\n }\n }\n\n // if (!store.getState().authState.heartBeat) {\n // store.dispatch(AuthActions.setToggleLoginModal(true));\n // }\n return returnData;\n}\n\n//const baseURL = \"https://staging.riocity9.com\";\nconst baseURL = \"\";\n\nconst ApiEngine = axios.create({\n baseURL,\n withCredentials: true,\n headers: {\n \"X-Requested-With\": ApiKey._API_XML_HTTP_REQUEST_KEY,\n },\n});\n\nApiEngine.interceptors.request.use(\n async (config) => {\n if (!navigator.onLine) {\n store.dispatch(AppActions.showResponseMessage(false, i18n.t(\"NO_INTERNET\")));\n return Promise.reject({\n success: false,\n message: \"No internet connection. Please try again later.\"\n });\n }\n return interceptRequest(config);\n },\n (error) => Promise.reject(error)\n);\n\nApiEngine.interceptors.response.use(\n (response) => interceptResponse(response),\n (error) => interceptError(error)\n);\n\nexport default ApiEngine;\nexport { baseURL };\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAAAOVBMVEUAAAD/tgD/tgD/tgD/tgD/tQD/tgD/tQD/tgD/rwD/tgD/tgD/tQD/sgD/twD/tQD/twD/tQD/tgC3MNVUAAAAEnRSTlMA32/vr2BfMI8Qv8+AUCAfv3+ARKcuAAAAjklEQVQY022QWQ7DIAwFvQVCmqWd+x+2KEQ0VJkfzOhZGMtJsVB4RZIfk3OhXc+w2CGSJ4W1uRU3uTBnPnvxLJ3sbPVQWg5aFi81qHKXspAkSKM0QpQ8yh3t9b14lsohA5mXBDbKiRBjGduVJMX/h9eHb7a553Ehn746TTW92xvm/qBy4dt9jqheI5Xz9gUbIgdk90m2kQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/img_404_dark.d07cad8d.png\";","module.exports = __webpack_public_path__ + \"static/media/referral-banner.ba3c75f0.jpg\";","module.exports = __webpack_public_path__ + \"static/media/referral-banner-mobile.d735fe75.jpg\";","var map = {\n\t\"./9loonbet.css\": [\n\t\t749,\n\t\t33\n\t],\n\t\"./blue.min.css\": [\n\t\t750,\n\t\t34\n\t],\n\t\"./dhakacity.css\": [\n\t\t751,\n\t\t35\n\t],\n\t\"./el77.css\": [\n\t\t752,\n\t\t36\n\t],\n\t\"./fengshuibet.css\": [\n\t\t753,\n\t\t37\n\t],\n\t\"./joyi8.css\": [\n\t\t754,\n\t\t38\n\t],\n\t\"./kantipur.css\": [\n\t\t755,\n\t\t39\n\t],\n\t\"./kantipur777.css\": [\n\t\t756,\n\t\t40\n\t],\n\t\"./pkspin.css\": [\n\t\t757,\n\t\t41\n\t],\n\t\"./pkspinbase.css\": [\n\t\t758,\n\t\t42\n\t],\n\t\"./root.css\": [\n\t\t759,\n\t\t43\n\t],\n\t\"./root9loonbet.css\": [\n\t\t760,\n\t\t44\n\t],\n\t\"./rootHk.css\": [\n\t\t761,\n\t\t45\n\t],\n\t\"./rootIndia.css\": [\n\t\t762,\n\t\t46\n\t],\n\t\"./rootbase.css\": [\n\t\t763,\n\t\t47\n\t],\n\t\"./rootbaseS8.css\": [\n\t\t764,\n\t\t48\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 699;\nmodule.exports = webpackAsyncContext;","module.exports = \"data:image/png;base64,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\"","import React from 'react';\n\nexport const PageSettings = React.createContext();","import React, { lazy, Suspense } from \"react\";\nimport { Redirect } from \"react-router-dom\";\nimport { BaseWebUrl as WebUrl } from \"../util/Constant\";\n\n// export const _LOGIN_ROUTE2 = {\n// path: WebUrl._URL_MAIN,\n// exact: false,\n// authRequired: false,\n// component: ,\n// };\n\nexport async function fetchRoute(themeVar, type) {\n // CHRIS_LOCALE: Redirect if trailing slash detected\n if (window.location.pathname !== null && window.location.pathname !== \"/\" && window.location.pathname.endsWith(\"/\")) {\n // // CHRIS TODO: Send 301 redirect for SEO\n // Replace isn't ideal inside react router because it will cause rerender\n // window.location.replace(window.location.pathname.slice(0, -1) + window.location.search);\n\n window.location.href = window.location.pathname.slice(0, -1);\n\n // doesn't work\n // return ;\n }\n\n // Use the variable to fetch data or perform some logic\n // (`Fetching data for variable: ${themeVar}`);\n\n // const Welcome = lazy(async () => await import(`pages/${themeVar}/Welcome`));\n const Login = lazy(async () => await import(`pages/${themeVar}/Login`));\n const LiveChat = lazy(async () => await import(`pages/${themeVar}/LiveChat`));\n // const Register = lazy(async () => await import(`pages/${themeVar}/Register`));\n // const Forgot = lazy(async () => await import(`pages/${themeVar}/Forgot`));\n // const Dashboard = lazy(\n // async () => await import(`pages/${themeVar}/home/Dashboard`)\n // );\n // const Transaction = lazy(\n // async () => await import(`pages/${themeVar}/transaction/Transaction`)\n // );\n // const TransferSuccessful = lazy(\n // async () => await import(`pages/${themeVar}/transaction/TransferSuccessful`)\n // );\n // const Withdrawal = lazy(\n // async () => await import(`pages/${themeVar}/transaction/WithdrawalMobile`)\n // );\n // const WithdrawalRecord = lazy(\n // async () => await import(`pages/${themeVar}/transaction/WithdrawalRecord`)\n // );\n // const Deposit = lazy(\n // async () => await import(`pages/${themeVar}/transaction/Deposit`)\n // );\n // const DepositRecord = lazy(\n // async () => await import(`pages/${themeVar}/transaction/DepositRecord`)\n // );\n // const Downline = lazy(\n // async () => await import(`pages/${themeVar}/home/Downline`)\n // );\n // const MyDownline = lazy(\n // async () => await import(`pages/${themeVar}/home/MyDownline`)\n // );\n // const DownlineDetails = lazy(\n // async () => await import(`pages/${themeVar}/home/DownlineDetails`)\n // );\n // const EditDownline = lazy(\n // async () => await import(`pages/${themeVar}/home/EditDownline`)\n // );\n const Settings = lazy(() => import(`pages/${themeVar}/home/Settings`));\n const Kpi = lazy(async () => await import(`pages/${themeVar}/home/Kpi`));\n const News = lazy(async () => await import(`pages/${themeVar}/home/News`));\n const NewsDetails = lazy(\n async () => await import(`pages/${themeVar}/home/NewsDetails`)\n );\n\n // const PoolResult = lazy(\n // async () => await import(`pages/${themeVar}/game/PoolResult`)\n // );\n const GameLobby = lazy(\n async () => await import(`pages/${themeVar}/game/GameLobby`)\n );\n const UnderMaintenance = lazy(\n async () => await import(`pages/${themeVar}/game/UnderMaintenance`)\n );\n\n // const ReportMenu = lazy(\n // async () => await import(`pages/${themeVar}/report/ReportMenu`)\n // );\n // const WalletHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/WalletHistory`)\n // );\n // const WalletHistoryMobile = lazy(\n // async () => await import(`pages/${themeVar}/report/WalletHistoryMobile`)\n // );\n // const CommissionHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/CommissionHistory`)\n // );\n // const BonusHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/BonusHistory`)\n // );\n // const InternaTransferHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/InternaTransferHistory`)\n // );\n // const RolloverStatement = lazy(\n // async () => await import(`pages/${themeVar}/report/RolloverStatement`)\n // );\n // const TransactionHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/TransactionHistory`)\n // );\n // const GameHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/GameHistory`)\n // );\n const GameDetails = lazy(\n async () => await import(`pages/${themeVar}/report/GameDetails`)\n );\n // const MembersTransfer = lazy(\n // async () => await import(`pages/${themeVar}/report/MembersTransfer`)\n // );\n // const GameWalletTransfer = lazy(\n // async () => await import(`pages/${themeVar}/report/GameWalletTransfer`)\n // );\n // const ReportsOverview = lazy(\n // async () => await import(`pages/${themeVar}/report/ReportsOverview`)\n // );\n // const ForgetPin = lazy(\n // async () => await import(`pages/${themeVar}/member/ForgetPin`)\n // );\n\n // const DownlineGroupDetail = lazy(\n // async () => await import(`pages/${themeVar}/member/DownlineGroupDetail`)\n // );\n\n // const UnclaimCommissionHistory = lazy(\n // async () =>\n // await import(`pages/${themeVar}/member/UnclaimCommissionHistory`)\n // );\n\n // const Maintenance = lazy(\n // async () => await import(`pages/${themeVar}/Maintenance`)\n // );\n const ContactUs = lazy(\n async () => await import(`pages/${themeVar}/home/ContactForm`)\n );\n const LiveChatPage = lazy(\n async () => await import(`pages/${themeVar}/home/LiveChat`)\n );\n\n // const Shareholder = lazy(\n // async () => await import(`pages/${themeVar}/shareholder/Shareholder`)\n // );\n // const ShareholderDetails = lazy(\n // async () => await import(`pages/${themeVar}/shareholder/ShareholderDetails`)\n // );\n // const EditShareholder = lazy(\n // async () => await import(`pages/${themeVar}/shareholder/EditShareholder`)\n // );\n // const RewardsTnC = lazy(\n // async () => await import(`pages/${themeVar}/home/RewardsTnC`)\n // );\n // const ClaimRecord = lazy(\n // async () => await import(`pages/${themeVar}/shareholder/ClaimRecord`)\n // );\n // const SummaryDownlineSales = lazy(\n // async () =>\n // await import(`pages/${themeVar}/shareholder/SummaryDownlineSales`)\n // );\n // const DownlineProductRateDetail = lazy(\n // async () =>\n // await import(`pages/${themeVar}/member/DownlineProductRateDetail`)\n // );\n\n // const Rewards = lazy(\n // async () => await import(`pages/${themeVar}/home/Rewards`)\n // );\n // const RewardsHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/RewardsHistory`)\n // );\n // const RewardsDetail = lazy(\n // async () => await import(`pages/${themeVar}/report/RewardsDetail`)\n // );\n // const GamePage = lazy(\n // async () => await import(`pages/${themeVar}/home/GamePage`)\n // );\n // const WalletTransferHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/WalletTransferHistory`)\n // );\n // const WalletStatement = lazy(\n // async () => await import(`pages/${themeVar}/report/WalletStatement`)\n // );\n\n // const TouchnGO = lazy(\n // async () => await import(`pages/${themeVar}/transaction/ReloadTnG`)\n // );\n // const ReloadBank = lazy(\n // async () => await import(`pages/${themeVar}/transaction/ReloadBank`)\n // );\n // const UploadReloadReceipt = lazy(\n // async () => await import(`pages/${themeVar}/transaction/UploadReloadReceipt`)\n // );\n // const ReloadDone = lazy(\n // async () => await import(`pages/${themeVar}/transaction/ReloadDone`)\n // );\n // const MainWallet = lazy(\n // async () => await import(`pages/${themeVar}/transaction/MainWallet`)\n // );\n // const GameReload = lazy(\n // async () => await import(`pages/${themeVar}/game/GameReload`)\n // );\n // const WithdrawalMethods = lazy(\n // async () => await import(`pages/${themeVar}/transaction/WithdrawalMethods`)\n // );\n // const ScanQR = lazy(async () => await import(`pages/${themeVar}/qr/ScanQR`));\n // const CreateAccount = lazy(\n // async () => await import(`pages/${themeVar}/qr/CreateAccount`)\n // );\n // const VerifyCreateAccount = lazy(\n // async () => await import(`pages/${themeVar}/qr/Verify`)\n // );\n // const CreatePassword = lazy(\n // async () => await import(`pages/${themeVar}/qr/CreatePassword`)\n // );\n // const CreateAccountSuccess = lazy(\n // async () => await import(`pages/${themeVar}/qr/Success`)\n // );\n // const CreateAccountByReferralCode = lazy(\n // async () => await import(`pages/${themeVar}/qr/Referral`)\n // );\n // const WithdrawalInProgress = lazy(\n // async () =>\n // await import(`pages/${themeVar}/transaction/WithdrawalInProgress`)\n // );\n // const Commission = lazy(\n // async () => await import(`pages/${themeVar}/home/Commission`)\n // );\n const Transfer = lazy(\n async () => await import(`pages/${themeVar}/transaction/Transfer`)\n );\n // const VipBenefits = lazy(\n // async () => await import(`pages/${themeVar}/home/VipBenefits`)\n // );\n const Promotion = lazy(\n async () => await import(`pages/${themeVar}/home/Promotion`)\n );\n const PromotionInfo = lazy(\n async () => await import(`pages/${themeVar}/home/PromotionInfo`)\n );\n const CustomPage = lazy(\n async () => await import(`pages/${themeVar}/home/CustomPage`)\n );\n // const Home = lazy(async () => await import(`pages/${themeVar}/home/Home`));\n // const Giftpace = lazy(\n // async () => await import(`pages/${themeVar}/transaction/Giftpace`)\n // );\n // const CommissionsInfo = lazy(\n // async () => await import(`pages/${themeVar}/home/CommissionsInfo`)\n // );\n // const Topkash = lazy(\n // async () => await import(`pages/${themeVar}/transaction/Topkash`)\n // );\n // const DailyCheckIn = lazy(\n // async () => await import(`pages/${themeVar}/home/DailyCheckIn`)\n // );\n // const DCRedemption = lazy(\n // async () => await import(`pages/${themeVar}/home/DCRedemption`)\n // );\n // const DCRedemptionHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/DCRedemptionHistory`)\n // );\n // const UnclaimDCPoints = lazy(\n // async () => await import(`pages/${themeVar}/member/UnclaimDCPoints`)\n // );\n // const DCPointsHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/DCPointsHistory`)\n // );\n // const VipCommissionHistory = lazy(\n // async () => await import(`pages/${themeVar}/report/VipCommissionHistory`)\n // );\n\n // const HuiOneDeposit = lazy(\n // async () => await import(`pages/${themeVar}/transaction/HuiOneDeposit`)\n // );\n // const CryptoWalletsDeposit = lazy(\n // async () =>\n // await import(`pages/${themeVar}/transaction/CryptoWalletsDeposit`)\n // );\n\n // const CryptoDeposit = lazy(\n // async () => await import(`pages/${themeVar}/transaction/CryptoDeposit`)\n // );\n\n ///template 3\n const GameList = lazy(\n async () => await import(`pages/${themeVar}/game/GameList`)\n );\n const Referral = lazy(async () => await import(`pages/${themeVar}/home/Referral.js`));\n const Vip = lazy(async () => await import(`pages/${themeVar}/home/Vip.js`));\n const Rebate = lazy(async () => await import(`pages/${themeVar}/home/Rebate.js`));\n \n const RecentGames = lazy(async () => await import(`pages/${themeVar}/game/RecentGames.js`));\n const HotGames = lazy(async () => await import(`pages/${themeVar}/game/HotGames.js`));\n\n const NotFound = lazy(async () => await import(`pages/${themeVar}/NotFound.js`));\n // const WingWeiluyDeposit = lazy(\n // async () => await import(`pages/${themeVar}/transaction/WingWeiluyDeposit`)\n // );\n // const UploadWingWeiluyReceipt = lazy(\n // async () => await import(`pages/${themeVar}/transaction/UploadWingWeiluyReceipt`)\n // );\n\n // Add your data fetching logic here\n\n // const _LOGIN_ROUTE = {\n // path: WebUrl._URL_MAIN,\n // exact: false,\n // authRequired: false,\n // component: ,\n // };\n const IframeGamePage = lazy(\n async () => await import(`pages/${themeVar}/game/GamePage2`)\n );\n const SpinWheelList = lazy(\n async () => await import(`pages/${themeVar}/profile/SpinWheelList`)\n );\n\n const _LOGIN_ROUTE3 = [{\n // path: WebUrl._URL_MAIN,\n // exact: false,\n // authRequired: false,\n // component: ,\n path: WebUrl._URL_HOME,\n exact: true,\n title: \"Home\",\n component: ,\n }];\n\n const _ROUTES = [\n {\n path: WebUrl._URL_NOT_FOUND,\n exact: true,\n title: \"404 Not Found\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_LIVECHAT,\n exact: true,\n title: \"LiveChat\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_UNDER_MAINTENANCE,\n exact: true,\n title: \"Under Maintenance\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_SETTINGS,\n exact: true,\n title: \"Settings\",\n authRequired: true,\n component: ,\n },\n {\n path: WebUrl._URL_REGISTER,\n exact: true,\n title: \"Register\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LOBBY,\n exact: true,\n title: \"Game Lobby\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_NEWS,\n exact: true,\n title: \"News\",\n authRequired: true,\n component: ,\n },\n {\n path: WebUrl._URL_NEWS_DETAILS,\n exact: true,\n title: \"Detail\",\n authRequired: true,\n component: ,\n },\n {\n path: WebUrl._URL_CONTACT_US,\n exact: true,\n title: \"Contact Us\",\n component: ,\n },\n {\n path: WebUrl._URL_LIVE_CHAT,\n exact: true,\n title: \"Live Chat\",\n component: ,\n },\n // {\n // path: WebUrl._URL_GAME_PAGE,\n // exact: true,\n // title: \"Game\",\n // authRequired: true,\n // component: ,\n // },\n {\n path: WebUrl._URL_PROMOTION,\n exact: true,\n title: \"Promotion\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_PROMOTION_INFO,\n exact: true,\n title: \"Promotion Information\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_HOME,\n exact: true,\n title: \"Home\",\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST,\n exact: true,\n title: \"Game List\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_REFERRAL,\n exact: true,\n title: \"Referral\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_VIP,\n exact: true,\n title: \"Vip\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_REBATE,\n exact: true,\n title: \"Rebate\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_RECENT_GAMES,\n exact: true,\n title: \"Recent Games\",\n authRequired: true,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_SPORTS,\n exact: true,\n title: \"Sport\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_SLOTS,\n exact: true,\n title: \"Slots\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_CASINO,\n exact: true,\n title: \"Casino\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_FISHHUNT,\n exact: true,\n title: \"Fish Hunt\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_KENO,\n exact: true,\n title: \"Keno\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_ARCADE,\n exact: true,\n title: \"Arcade\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_CRASH,\n exact: true,\n title: \"Crash\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_EXCHANGE,\n exact: true,\n title: \"Exchange\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_POKER,\n exact: true,\n title: \"Poker\",\n authRequired: false,\n component: ,\n },\n {\n path: \"/promo/:slug\",\n exact: false,\n title: \"Promotion Information\",\n authRequired: false,\n component: ,\n },\n {\n path: \"/pages/:slug\",\n exact: false,\n title: \"Custom Pages\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_GAME_LIST_E_SPORT,\n exact: true,\n title: \"E-Sport\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_IFRAME_GAME_PAGE,\n exact: true,\n title: \"Game Page\",\n authRequired: false,\n component: ,\n },\n {\n path: WebUrl._URL_HOT_GAMES,\n exact: true,\n title: \"Hot Games\",\n authRequired: false,\n component: ,\n },\n // {\n // path: WebUrl._URL_SPIN_WHEEL_LIST,\n // exact: true,\n // title: \"Spin Wheel\",\n // authRequired: true,\n // component: ,\n // },\n ];\n\n // const createRoutesWithTrailingSlashRedirects = (routes) => {\n // return routes.reduce((acc, route) => {\n // const { path, title, exact, authRequired, component } = route;\n\n // // Skip wildcard path '*' since it should not have a trailing slash redirect\n // if (path === '*') {\n // return acc.concat(route);\n // }\n\n // const routesWithRedirect = [\n // {\n // path: `${path}/`,\n // exact: true,\n // title: title,\n // authRequired: false, // No auth required for redirects\n // component: ,\n // },\n // route,\n // ];\n\n // return acc.concat(routesWithRedirect);\n // }, []);\n // };\n\n // const locales = ['en', 'bn']; // Example locales\n\n // const generateLocaleRoutes = (routes) => {\n // // return locales.flatMap(locale =>\n // // routes.map(route => ({\n // // ...route,\n // // path: `/${locale}${route.path}`,\n // // }))\n // // );\n // return routes\n // };\n\n // Do not need this anymore - better to do directly\n // const _SANITISED_ROUTES = createRoutesWithTrailingSlashRedirects(generateLocaleRoutes(_ROUTES));\n\n switch (type) {\n case \"login\":\n return ConvertToLocalePath(_LOGIN_ROUTE3);\n // if (themeVar == \"template_1\") return _LOGIN_ROUTE3;\n // else return _LOGIN_ROUTE;\n break;\n default:\n // return _ROUTES;\n return ConvertToLocalePath(_ROUTES);\n break;\n }\n}\n\nfunction ConvertToLocalePath(routes) {\n // CHRIS_LOCALE: Prepend locale to each path\n // Add :locale to all route paths to accommodate for example.com/:locale/pathname\n\n let _LOCALED_ROUTES = [];\n try {\n _LOCALED_ROUTES = routes.map((route) => {\n const { path } = route;\n const localePath = path.startsWith('/') ? `/:locale${path}` : `:locale${path}`;\n return {\n ...route,\n path: localePath,\n }\n });\n } catch (error) {\n console.error(error)\n throw error\n }\n\n return _LOCALED_ROUTES;\n}","import React, { useEffect, useState, useRef, useCallback } from \"react\";\nimport { useHistory, withRouter } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n\tWebUrl,\n\tApiUrl,\n\tApiKey,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tSessionKey,\n} from \"../../../util/Constant\";\nimport { map, isNumber, debounce, toString } from \"lodash\";\nimport {\n\tnumberWithCurrencyFormat,\n\tstringIsNullOrEmpty,\n\tcreateMultiPartFormBody,\n\tabbreviateNumber,\n\twaitForFbPixel\n} from \"../../../util/Util\";\nimport ApiEngine from \"../../../util/ApiEngine.js\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tsetDepositModal,\n\tshowMessage,\n\tshowResponseMessage,\n\tsetBusyLoading,\n} from \"../../../redux/AppAction\";\nimport moment from \"moment\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { Modal, ModalBody, Alert } from \"reactstrap\";\nimport LoadingOverlay from \"react-loading-overlay\";\nimport classNames from \"classnames\";\nimport { Spinner } from \"react-bootstrap\";\n\n/// \n/// Author: -\n/// \nconst UploadReloadReceipt = (props) => {\n\tvar { t, i18n } = useTranslation();\n\tvar _history = useHistory();\n\tconst [file, setFile] = useState();\n\tlet _dispatch = useDispatch();\n\tconst walletsDetails = useSelector((state) => state.appState.walletsDetails);\n\tconst [receiptReference, setReceiptReference] = useState(\"\");\n\tconst [selected, setSelected] = useState(0);\n\tconst [amount, setAmount] = useState(0.0);\n\tconst [paidAmount, setPaidAmount] = useState(0);\n\tconst [isReloadSuccess, setIsReloadSuccess] = useState(false);\n\tconst [reloadDate, setReloadDate] = useState();\n\tconst [min, setMin] = useState(0);\n\tconst [max, setMax] = useState(0);\n\tconst [bankAccountId, setBankAccountId] = useState(props.selectedBank);\n\tconst [isDisabled, setIsDisabled] = useState(false);\n\tconst [bankName, setBankName] = useState(\"\");\n\tconst [accNumber, setAccNumber] = useState(\"\");\n\tconst [label, setLabel] = useState(\"\");\n\tconst [bankref, setBankRef] = useState(\"\");\n\tconst [showCodeAlert, setShowCodeAlert] = useState(false);\n\tconst [bonusDeposit, setBonusDeposit] = useState(\"\");\n\tconst [bankAccountOption, setBankAccountOption] = useState([]);\n\tconst companyCurrency = useSelector(\n\t\t(state) => state.appState.companyCurrency\n\t);\n\tconst depositPresetAmt = useSelector(\n\t\t(state) => state.appState.depositPresetAmt\n\t);\n\tconst amountState = [\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t];\n\tconst [addAmountList, setAddAmountList] = useState(amountState);\n\n\tconst _ALERT_TIMEOUT = 1600;\n\tvar _accNumberRef = useRef();\n\tvar _labelRef = useRef();\n\tvar _bankRef = useRef();\n\tconst [copied, setCopied] = useState(\"\");\n\tconst [toobj, setToobj] = useState(null);\n\tconst memberData = useSelector((state) => state.appState.member);\n\n\tconst [headerMsg, setHeaderMsg] = useState(\"\");\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [transType, setTransType] = useState(\"\");\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [loadingSpinner, setLoadingSpinner] = useState(true);\n\tconst [bankLogo, setBankLogo] = useState(\"\");\n\tconst [collapse, setCollapse] = useState(false);\n\tconst [bankError, setBankError] = useState(false);\n\tconst [amountError, setAmountError] = useState(false);\n\tconst [refError, setRefError] = useState(false);\n\tconst [fileError, setFileError] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\n\tconst _SECONDS_IN_MS = 1000;\n\n\tuseEffect(() => {\n\t\tconst depositPresetAmtArray = depositPresetAmt.split(\",\");\n\n\t\tconst updatedData = addAmountList.map((item, index) => {\n\t\t\treturn { ...item, amount: depositPresetAmtArray[index] || \"\" };\n\t\t});\n\t\tsetAddAmountList(updatedData);\n\t}, [depositPresetAmt]);\n\n\tuseEffect(() => {\n\t\tinit();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tclearTimeout(countdownTime);\n\t\t\tsetCountdownTime(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t\t\tlet tempX = moment.duration(tempPeriod);\n\t\t\t\t\tlet tempMM = Math.floor(tempX[\"_milliseconds\"] / 60);\n\t\t\t\t\tlet tempSS = tempX[\"_milliseconds\"] - tempMM * 60;\n\t\t\t\t\tsetTimeDiffSeconds(tempX[\"_milliseconds\"]);\n\t\t\t\t\tlet tempStr =\n\t\t\t\t\t\t(tempMM.toString().length > 1 ? tempMM : \"0\" + tempMM) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"MINUTES\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(tempSS.toString().length > 1 ? tempSS : \"0\" + tempSS) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"SECOND\");\n\t\t\t\t\tsetCountdownStr(tempStr);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tuseEffect(() => {\n\t\tif (!stringIsNullOrEmpty(bankAccountId) && bankAccountId > 0) {\n\t\t\tgetBankAccInfo();\n\t\t}\n\t}, [bankAccountId]);\n\n\tuseEffect(() => {\n\t\tsetSelected(amount.toString());\n\t}, [amount]);\n\n\tasync function init() {\n\t\tvar pendingTransactionJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_PENDING_TRANSACTION\n\t\t);\n\t\tif (pendingTransactionJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tif (pendingTransactionJson[ApiKey._API_DATA_KEY] != null) {\n\t\t\t\tclearTimeout(countdownTime);\n\t\t\t\tlet tempS = parseInt(\n\t\t\t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"timeSpan\"]\n\t\t\t\t);\n\t\t\t\tsetTransType(pendingTransactionJson[ApiKey._API_DATA_KEY][\"transType\"]);\n\t\t\t\tsetTimeDiffSeconds(tempS);\n\t\t\t\tsetCountdownPeriod(tempS < 0 ? 0 : tempS);\n\t\t\t\tsetHasPendingTxn(true);\n\t\t\t\t// oktocont = false;\n\t\t\t\tsetHeaderMsg(t(\"NEW_TXN_PROHIBITED\"));\n\t\t\t} else {\n\t\t\t\tif (props.bankOptions.length>0) {\n\t\t\t\t\tlet bankAccountList = [];\n\t\t\t\t\tprops.bankOptions.forEach(function (bankAccount) {\n\t\t\t\t\t\tbankAccountList.push({\n\t\t\t\t\t\t\tlabel: bankAccount.accountHolderName,\n\t\t\t\t\t\t\tvalue: bankAccount.id,\n\t\t\t\t\t\t\taccNumber: bankAccount.accountNumber,\n\t\t\t\t\t\t\tmin: bankAccount.minimumDeposit,\n\t\t\t\t\t\t\tmax: bankAccount.maximumDeposit,\n\t\t\t\t\t\t\tbankName: bankAccount.bankName,\n\t\t\t\t\t\t\tbankLogo: bankAccount.bankLogo,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tsetBankAccountOption(bankAccountList);\n\t\t\t\t} else {\n\t\t\t\t\tlet responseJson = await ApiEngine.get(\n\t\t\t\t \tApiUrl._API_GET_BANK_ACCOUNT_2 + \"?deposit=\" + true\n\t\t\t\t );\n\t\t\t\t if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t let bankAccountList = [];\n\t\t\t\t \tresponseJson[ApiKey._API_DATA_KEY].forEach(function (bankAccount) {\n\t\t\t\t \t\tbankAccountList.push({\n\t\t\t\t \t\t\tlabel: bankAccount.accountHolderName,\n\t\t\t\t \t\t\tvalue: bankAccount.id,\n\t\t\t\t \t\t\taccNumber: bankAccount.accountNumber,\n\t\t\t\t \t\t\tmin: bankAccount.minimumDeposit,\n\t\t\t\t \t\t\tmax: bankAccount.maximumDeposit,\n\t\t\t\t \t\t\tbankName: bankAccount.bankName,\n\t\t\t\t \t\t\tbankLogo: bankAccount.bankLogo,\n\t\t\t\t \t\t});\n\t\t\t\t \t});\n\n\t\t\t\t \tsetBankAccountOption(bankAccountList);\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\tsetLoadingSpinner(false);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tfalse,\n\t\t\t\t\tpendingTransactionJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\tconst debouncedAmount = useCallback(\n\t\tdebounce((value) => {\n\t\t\tsetSelected(value);\n\t\t}, 500), // 500ms debounce time\n\t\t[]\n\t);\n\n\tasync function enterAmount(e) {\n\t\tlet amount = e.target.value\n\t\t\t.replace(/[a-zA-Z`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?(kr|$|£|€)]*/g, \"\")\n\t\t\t.trim();\n\n\t\tif (amount == \"\") {\n\t\t\tamount = 0;\n\t\t}\n\t\tlet value = 0;\n\t\tif (companyCurrency === \"PKR\") {\n\t\t\tvalue = Number(parseFloat(amount) / 1).toFixed(0);\n\t\t} else {\n\t\t\tvalue = Number(parseFloat(amount) / 100).toFixed(2);\n\t\t}\n\n\t\tif (parseFloat(value) > max) {\n\t\t\tvalue = max;\n\t\t}\n\t\te.target.setSelectionRange(value.length, value.length);\n\t\tsetAmount(value);\n\t\tif (value || !isNaN(value) || Number(value) >= min) {\n\t\t\tsetAmountError(false);\n\t\t}\n\t\tdebouncedAmount(toString(parseInt(value)));\n\t}\n\n\tconst generateReferenceReceipt = async () => {\n\t\tlet receiptReference = `INV${Math.floor(100000 + Math.random() * 900000)}`;\n\t\tsetBankRef(receiptReference);\n\t};\n\n\tasync function getBankAccInfo() {\n\t\t_dispatch(setBusy());\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_BANK_ACCOUNT_BY_BANK_ID + \"?bankId=\" + bankAccountId\n\t\t);\n\n\t\tif (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t}\n\n\t\tsetMin(responseJson[ApiKey._API_DATA_KEY][0][\"minimumDeposit\"]);\n\t\tsetMax(responseJson[ApiKey._API_DATA_KEY][0][\"maximumDeposit\"]);\n\t\tsetBankName(responseJson[ApiKey._API_DATA_KEY][0][\"bankName\"]);\n\t\tsetAccNumber(responseJson[ApiKey._API_DATA_KEY][0][\"accountNumber\"]);\n\t\tsetLabel(responseJson[ApiKey._API_DATA_KEY][0][\"accountHolderName\"]);\n\t\tsetBankLogo(responseJson[ApiKey._API_DATA_KEY][0][\"bankLogo\"])\n\t\t// generateReferenceReceipt();\n\t\t//setBankRef(Math.floor(Math.random() * 9000 + 1000));\n\n\t\t_dispatch(setIdle());\n\t}\n\n\tconst truncate_text = (text) => {\n\t\tif (text.length > 15) {\n\t\t\treturn text.slice(0, 15) + \" . . .\";\n\t\t}\n\t\treturn text;\n\t};\n\n\tconst formatBytes = (bytes, decimals = 2) => {\n\t\tif (!+bytes) return \"0 Bytes\";\n\n\t\tconst k = 1024;\n\t\tconst dm = decimals < 0 ? 0 : decimals;\n\t\tconst sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n\t\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\n\t\treturn `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n\t};\n\n\tconst handleClick = (item) => {\n\t\tlet total = parseFloat(item);\n\t\tif (min > total) {\n\t\t\ttotal = min;\n\t\t}\n\t\tif (max > 0) {\n\t\t\tif (total > max) {\n\t\t\t\t// setSelected(0);\n\t\t\t\ttotal = max;\n\t\t\t} else {\n\t\t\t\t// setSelected(item);\n\t\t\t}\n\t\t\tsetAmount(total);\n\t\t\tif (total || !isNaN(total) || Number(total) >= min) {\n\t\t\t\tsetAmountError(false);\n\t\t\t}\n\t\t} else {\n\t\t\t_dispatch(showResponseMessage(false, \"PLEASE_SELECT_BANK\"));\n\t\t}\n\t};\n\n\tasync function handleRedirect() {\n\t\tif (stringIsNullOrEmpty(bankAccountId)) {\n\t\t\tsetBankError(true);\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\t!amount ||\n\t\t\tisNaN(amount) ||\n\t\t\tNumber(amount) <= 0 ||\n\t\t\tNumber(amount) < min\n\t\t) {\n\t\t\tsetAmountError(true);\n\t\t\treturn;\n\t\t}\n\n\t\tif (stringIsNullOrEmpty(bankref)) {\n\t\t\tsetRefError(true);\n\t\t\tsetErrorMessage(\"REFERENCE_NUMBER_REQUIRED\");\n\t\t\treturn;\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(errorMessage)) {\n\t\t\t\tsetRefError(true);\n\t\t\t\tsetErrorMessage(errorMessage);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (!file) {\n\t\t\tsetFileError(true);\n\t\t\treturn;\n\t\t}\n\n\t\tlet params = {\n\t\t\ttransactionTypeId: TransactionType._DEPOSIT,\n\t\t\tamount: parseFloat(amount),\n\t\t\tchannel: BankingChannel._CHANNEL_OFFLINE_BANKING,\n\t\t\tpanel: PanelType._MEMBERSITE,\n\t\t\tbankAccountId: bankAccountId,\n\t\t\treceiptReference: bankref,\n\t\t};\n\n\t\tif (!stringIsNullOrEmpty(bankAccountId)) {\n\t\t\tparams[\"bankAccountId\"] = bankAccountId;\n\t\t}\n\n\t\tif (!stringIsNullOrEmpty(file)) {\n\t\t\tparams[\"receipt\"] = file;\n\t\t}\n\n\t\tif (!stringIsNullOrEmpty(bonusDeposit) && bonusDeposit != \"-1\") {\n\t\t\tparams[\"depositBonusId\"] = bonusDeposit;\n\t\t} else if (bonusDeposit === \"-1\") {\n\t\t\tparams[\"depositBonusId\"] = \"\";\n\t\t}\n\t\t_dispatch(setBusyLoading(true));\n\t\tlet responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t\tcreateMultiPartFormBody(params)\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetPaidAmount(params.amount);\n\t\t\tsetIsReloadSuccess(true);\n\t\t\tsetReloadDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t\t_dispatch(setBusyLoading(false));\n\n\t\t\t_dispatch(setDepositModal(false));\n\t\t\t_dispatch(\n\t\t\t\tshowMessage({\n\t\t\t\t\tcustom: true,\n\t\t\t\t\tcustomIcon: (\n\t\t\t\t\t\t\n\t\t\t\t\t),\n\t\t\t\t\tcontent: t(\"WE_ARE_VERIFYING_YOUR_PAYMENT\"),\n\t\t\t\t})\n\t\t\t);\n\n\t\t\t// Check if FB Pixel exists and has valid Pixel ID\n\t\t\twaitForFbPixel(() => {\n\t\t\t\twindow.fbq('track', 'Purchase', {\n\t\t\t\t\tvalue: params.amount,\n\t\t\t\t\tcurrency: companyCurrency\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tsetIsDisabled(false);\n\t\t\tsetAmount(0);\n\t\t\tsetSelected(0);\n\t\t\tsetFile();\n\t\t\tsetReceiptReference(\"\");\n\t\t\t_dispatch(setBusyLoading(false));\n\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\tconst copyItem = (ref, type) => {\n\t\tif (!ref.current) return; // Prevent errors if ref is null\n\n\t\tlet textToCopy =\n\t\t\tref.current.tagName === \"INPUT\"\n\t\t\t\t? ref.current.value\n\t\t\t\t: ref.current.innerText;\n\n\t\tnavigator.clipboard\n\t\t\t.writeText(textToCopy)\n\t\t\t.then(() => {\n\t\t\t\tsetCopied(type);\n\n\t\t\t\tsetShowCodeAlert(true);\n\n\t\t\t\tif (toobj) clearTimeout(toobj);\n\n\t\t\t\tsetToobj(\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tsetCopied(\"\");\n\t\t\t\t\t}, _ALERT_TIMEOUT)\n\t\t\t\t);\n\t\t\t})\n\t\t\t.catch((err) => console.error(\"Copy failed:\", err));\n\t};\n\n\tconst handleFileChange = (e) => {\n\t\tconst selectedFile = e.target.files[0];\n\t\tconst validImageTypes = [\"image/png\", \"image/jpeg\", \"image/jpg\"];\n\n\t\t// Check if the file exists and is an image\n\t\tif (selectedFile && validImageTypes.includes(selectedFile.type)) {\n\t\t\tsetFile(selectedFile);\n\t\t\tsetFileError(false);\n\t\t} else {\n\t\t\tsetFile(null);\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(false, t(\"PLEASE_UPLOAD_A_VALID_IMAGE_FILE\"))\n\t\t\t);\n\t\t}\n\t};\n\n\tconst handleBankRef = (e) => {\n\t\tlet value = e.target.value;\n\t\tconst sanitizedValue = value.replace(/[^a-zA-Z0-9]/g, \"\"); // Remove special characters\n\n\t\tif (sanitizedValue.length > 30) {\n\t\t\tsetRefError(true);\n\t\t\tsetErrorMessage(\"MAXIMUM_30_ALPHANUMERIC_CHARACTERS\");\n\t\t} else {\n\t\t\tsetRefError(false);\n\t\t\tsetErrorMessage(\"\");\n\t\t}\n\n\t\tsetBankRef(sanitizedValue);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{loadingSpinner && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{!loadingSpinner && hasPendingTxn && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{timeDiffSeconds > 0\n\t\t\t\t\t\t\t\t\t? t(\"PLEASE_WAIT\") +\n\t\t\t\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t\t\t\t countdownStr +\n\t\t\t\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t\t\t\t (transType === \"Deposit\"\n\t\t\t\t\t\t\t\t\t\t\t? t(\"FOR_DEPOSIT_APPROVAL\")\n\t\t\t\t\t\t\t\t\t\t\t: t(\"FOR_WITHDRAWAL_APPROVAL\"))\n\t\t\t\t\t\t\t\t\t: headerMsg}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{!loadingSpinner && !hasPendingTxn && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"BALANCE\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\twalletsDetails.currentWalletBalance,\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"MIN_DEPOSIT\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* {numberWithCurrencyFormat(min, 2, true)} */}\n\t\t\t\t\t\t\t\t{min ? numberWithCurrencyFormat(min, 0, true) : \"-\"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"NOTES\")} : \n\t\t\t\t\t\t\t

{t(\"UPLOAD_DESCRIPTION\")}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{memberData.isActivedPromoExist && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"NEW_TRANSACTION_NOT_QUALIFY_FOR_PROMO\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\n\t\t\t\t\t
\n\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.target.className =\n\t\t\t\t\t\t\t\t\t\te.target.options[e.target.selectedIndex].className;\n\t\t\t\t\t\t\t\t\tsetBankAccountId(e.target.value);\n\t\t\t\t\t\t\t\t\tsetAmount(0.0);\n\t\t\t\t\t\t\t\t\tsetSelected(0);\n\t\t\t\t\t\t\t\t\tsetBankError(false);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(\"PLEASE_SELECT_BANK\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{bankAccountOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{option.bankName}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
*/}\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbankAccountOption.map((bank, bankIndex)=>{\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetBankAccountId(bank.value);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetAmount(0.0)\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelected(0)\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbank.bankLogo ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
{bank.bankName}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
{bank.min} - {bank.max}
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{addAmountList &&\n\t\t\t\t\t\t\t\t\taddAmountList.length &&\n\t\t\t\t\t\t\t\t\tmap(addAmountList, (item, index) => {\n\t\t\t\t\t\t\t\t\t\tif (item.amount != \"\") {\n\t\t\t\t\t\t\t\t\t\t\tconst formattedCurrency = numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\titem.amount,\n\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t max || min > item.amount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"disabled \"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\") +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(item.amount === selected ? \"active\" : \"\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleClick(item.amount)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t// style={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{abbreviateNumber(formattedCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{companyCurrency}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? parseInt(amount) // Show without decimals for AUD\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Number(amount) > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Number(amount).toFixed(2) // Show decimals for other currencies\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\"\n\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonChange={enterAmount}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{amountError && (\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{amount <= 0\n\t\t\t\t\t\t\t\t\t\t\t? t(\"AMOUNT_IS_REQUIRED\")\n\t\t\t\t\t\t\t\t\t\t\t: t(\"VALUE_LESS_THAN_MINIMUM\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{min > 0 && max > 0 ? (\n\t\t\t\t\t\t\t\t\t\tcompanyCurrency +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\tmin +\n\t\t\t\t\t\t\t\t\t\t\" - \" +\n\t\t\t\t\t\t\t\t\t\tcompanyCurrency +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\tmax\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<> \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{!stringIsNullOrEmpty(bankAccountId) && bankAccountId > 0 && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{/*{ showCodeAlert &&
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"COPY_SUCCESS\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
}*/}\n\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"BANK_NAME\")}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

{bankName}

\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ACCOUNT_NUMBER\")}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{accNumber}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t copyItem(_accNumberRef, \"acc\")}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{copied === \"acc\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"COPIED\")}\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ACCOUNT_HOLDER_NAME\")}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t copyItem(_labelRef, \"label\")}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{copied === \"label\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"COPIED\")}\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"REFERENCE_TRANSACTION_ID\")} *\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{refError && (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errorMessage)}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t copyItem(_bankRef, \"ref\")}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{copied === \"ref\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"COPIED\")}\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

{t(\"UPLOAD_DESCRIPTION\")}

\n\n\t\t\t\t\t\t\t\t\t{!file && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{file && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{truncate_text(file.name)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatBytes(file.size)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t setFile()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{fileError && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t(\"PAYMENT_RECEIPT_REQUIRED\")}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{!stringIsNullOrEmpty(bankAccountId) && bankAccountId > 0 && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t_dispatch(setDepositModal(false));\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"CANCEL\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!isDisabled && (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\thandleRedirect();\n\t\t\t\t\t\t\t\t\t\t// setIsDisabled(true);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{t(\"SUBMIT\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{isDisabled && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(\"SUBMIT\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default UploadReloadReceipt;\n","import React, { useEffect, useState, useRef, useCallback } from \"react\";\nimport { useHistory, withRouter } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n\tWebUrl,\n\tApiUrl,\n\tApiKey,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tSessionKey,\n} from \"../../../util/Constant\";\nimport { map, isNumber, debounce, toString, includes } from \"lodash\";\nimport {\n\tnumberWithCurrencyFormat,\n\tstringIsNullOrEmpty,\n\tcreateMultiPartFormBody,\n\tabbreviateNumber,\n\twaitForFbPixel\n} from \"../../../util/Util\";\nimport ApiEngine from \"../../../util/ApiEngine.js\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tsetDepositModal,\n\tshowMessage,\n\tshowResponseMessage,\n\tsetBusyLoading,\n\tsetMyProfileModal,\n} from \"../../../redux/AppAction\";\nimport moment from \"moment\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { Modal, ModalBody, Alert } from \"reactstrap\";\nimport LoadingOverlay from \"react-loading-overlay\";\nimport classNames from \"classnames\";\nimport { Spinner } from \"react-bootstrap\";\n\n/// \n/// Author: -\n/// \nconst InstantPayDeposit = (props) => {\n\tvar { t, i18n } = useTranslation();\n\tvar _history = useHistory();\n\tconst [file, setFile] = useState();\n\tlet _dispatch = useDispatch();\n\tconst walletsDetails = useSelector((state) => state.appState.walletsDetails);\n\tconst [receiptReference, setReceiptReference] = useState(\"\");\n\tconst [selected, setSelected] = useState(0);\n\tconst [amount, setAmount] = useState(0.0);\n\tconst [paidAmount, setPaidAmount] = useState(0);\n\tconst [isReloadSuccess, setIsReloadSuccess] = useState(false);\n\tconst [reloadDate, setReloadDate] = useState();\n\tconst [min, setMin] = useState(0);\n\tconst [max, setMax] = useState(0);\n\tconst [bankAccountId, setBankAccountId] = useState();\n\tconst [isDisabled, setIsDisabled] = useState(false);\n\tconst [bankName, setBankName] = useState(\"\");\n\tconst [accNumber, setAccNumber] = useState(\"\");\n\tconst [label, setLabel] = useState(\"\");\n\tconst [bankref, setBankRef] = useState(\"\");\n\tconst [showCodeAlert, setShowCodeAlert] = useState(false);\n\tconst [bonusDeposit, setBonusDeposit] = useState(\"\");\n\tconst [bankAccountOption, setBankAccountOption] = useState([]);\n\tconst [selectedEwallet, setSelectedEwallet] = useState();\n\tconst [isDirect, setIsDirect] = useState(true);\n\tconst [displayNotes, setDisplayNotes] = useState(false);\n\n\tconst companyCurrency = useSelector(\n\t\t(state) => state.appState.companyCurrency\n\t);\n\tconst depositPresetAmt = useSelector(\n\t\t(state) => state.appState.depositPresetAmt\n\t);\n\tconst amountState = [\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t\t{ amount: \"\" },\n\t];\n\tconst [addAmountList, setAddAmountList] = useState(amountState);\n\n\tconst walletOption = [\n\t\t{\n\t\t\tvalue: \"bkash\",\n\t\t\tlabel: \"Bkash\",\n\t\t},\n\t\t{\n\t\t\tvalue: \"rocket\",\n\t\t\tlabel: \"Rocket\",\n\t\t},\n\t\t{\n\t\t\tvalue: \"nagad\",\n\t\t\tlabel: \"Nagad\",\n\t\t},\n\t];\n\n\tconst _ALERT_TIMEOUT = 1600;\n\tvar _accNumberRef = useRef();\n\tvar _labelRef = useRef();\n\tvar _bankRef = useRef();\n\tconst [copied, setCopied] = useState(\"\");\n\tconst [toobj, setToobj] = useState(null);\n\tconst memberData = useSelector((state) => state.appState.member);\n\tconst [instantBankSetting, setInstantBankSetting] = useState();\n\tconst [instantPayGatewayId, setinstantPayGatewayId] = useState();\n\n\tconst [headerMsg, setHeaderMsg] = useState(\"\");\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [transType, setTransType] = useState(\"\");\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [loadingSpinner, setLoadingSpinner] = useState(true);\n\tconst [phoneNumber, setSelectedPhoneNumber] = useState();\n\tconst [phoneOption, setPhoneOption] = useState([]);\n\tconst [requirePhone, setRequirePhone] = useState(false);\n\tconst PhoneNumberPrefix = useSelector((state) => state.appState.dialingCodes);\n\tconst [selectedPhonePrefix, setSelectedPhonePrefix] = useState(\"\");\n\tconst [phone, setPhone] = useState(\"\");\n\tconst [errorPhone, setErrorPhone] = useState(\"\");\n\tconst [bankError, setBankError] = useState(false);\n\tconst [amountError, setAmountError] = useState(false);\n\tconst [refError, setRefError] = useState(false);\n\tconst [fileError, setFileError] = useState(false);\n\tconst [errorMessage, setErrorMessage] = useState(\"\");\n\n\tuseEffect(() => {\n\t\tconst depositPresetAmtArray = depositPresetAmt.split(\",\");\n\n\t\tconst updatedData = addAmountList.map((item, index) => {\n\t\t\treturn { ...item, amount: depositPresetAmtArray[index] || \"\" };\n\t\t});\n\t\tsetAddAmountList(updatedData);\n\t}, [depositPresetAmt]);\n\n\tuseEffect(() => {\n\t\tinit();\n\t\t// getMemberEwalletAccounts();\n\t}, []);\n\n\tuseEffect(() => {\n\t\t// if(props.instantBankSetting){\n\t\t// setBankAccountOption(props.instantBankSetting.instantBankSettingModel)\n\t\t// }\n\t}, props);\n\tuseEffect(() => {\n\t\tif (instantBankSetting) {\n\t\t\tif (\n\t\t\t\tincludes(instantBankSetting?.bankCode, \"Ewallet\") ||\n\t\t\t\tincludes(instantBankSetting?.bankCode, \"ewallet\")\n\t\t\t) {\n\t\t\t\tsetIsDirect(false);\n\t\t\t\tsetRequirePhone(false);\n\t\t\t} else if (\n\t\t\t\tincludes(instantBankSetting?.bankCode, \"FPay\") ||\n\t\t\t\tincludes(instantBankSetting?.bankCode, \"fpay\")\n\t\t\t) {\n\t\t\t\tsetIsDirect(true);\n\t\t\t\tsetRequirePhone(true);\n\t\t\t} else {\n\t\t\t\tsetIsDirect(true);\n\t\t\t\tsetSelectedEwallet(\"bkash\");\n\t\t\t\tsetRequirePhone(false);\n\t\t\t}\n\t\t}\n\t}, [instantBankSetting]);\n\n\t// useEffect(() => {\n\t// \tif (!stringIsNullOrEmpty(bankAccountId) && bankAccountId > 0) {\n\t// \t\tgetBankAccInfo();\n\t// \t}\n\t// }, [bankAccountId]);\n\n\tasync function init() {\n\t\tvar responseJson = await ApiEngine.get(ApiUrl._API_GET_PENDING_TRANSACTION);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tif (responseJson[ApiKey._API_DATA_KEY] != null) {\n\t\t\t\tclearTimeout(countdownTime);\n\t\t\t\tlet tempS = parseInt(responseJson[ApiKey._API_DATA_KEY][\"timeSpan\"]);\n\t\t\t\tsetTransType(responseJson[ApiKey._API_DATA_KEY][\"transType\"]);\n\t\t\t\tsetTimeDiffSeconds(tempS);\n\t\t\t\tsetCountdownPeriod(tempS < 0 ? 0 : tempS);\n\t\t\t\tsetHasPendingTxn(true);\n\t\t\t\tsetHeaderMsg(t(\"NEW_TXN_PROHIBITED\"));\n\t\t\t} else {\n\t\t\t\tconst instantBankSettingModelList =\n\t\t\t\t\tprops.instantBankSetting?.instantBankSettingModel;\n\t\t\t\tlet bankAccountList = [];\n\t\t\t\tconst instantBankSettingModel =\n\t\t\t\t\tprops.instantBankSetting?.instantBankSettingModel[0];\n\n\t\t\t\tif (instantBankSettingModelList) {\n\t\t\t\t\tinstantBankSettingModelList.forEach(function (bankAccount) {\n\t\t\t\t\t\tbankAccountList.push({\n\t\t\t\t\t\t\tlabel: bankAccount.name,\n\t\t\t\t\t\t\tvalue: bankAccount.id,\n\t\t\t\t\t\t\t// accNumber: bankAccount.accountNumber,\n\t\t\t\t\t\t\tmin: bankAccount.minimumDeposit,\n\t\t\t\t\t\t\tmax: bankAccount.maximumDeposit,\n\t\t\t\t\t\t\tbankName: bankAccount.name,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\tsetBankAccountOption(bankAccountList);\n\n\t\t\t\t\tsetMin(instantBankSettingModel.minimumDeposit);\n\t\t\t\t\tsetMax(instantBankSettingModel.maximumDeposit);\n\t\t\t\t\tsetBankName(instantBankSettingModel.name);\n\n\t\t\t\t\t// generateReferenceReceipt();\n\n\t\t\t\t\tsetDisplayNotes(props.instantPayGatewayNotes ? true : false);\n\n\t\t\t\t\tsetBankAccountId(instantBankSettingModel.bankId);\n\n\t\t\t\t\tsetInstantBankSetting(instantBankSettingModel);\n\t\t\t\t\tsetinstantPayGatewayId(props.instantBankSetting.instantPayGatewayId);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetLoadingSpinner(false);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t);\n\t\t}\n\n\t\t// let res = await ApiEngine.get(\n\t\t// \tApiUrl._API_GET_PAYMENT_GATEWAY_INFO_BY_ID + \"?id=\" + props.instantBankSettingId\n\t\t// );\n\t\t// console.log(res);\n\n\t\t// if (!res[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \tthrow res[ApiKey._API_MESSAGE_KEY];\n\t\t// }\n\t\t// let responseJson = await ApiEngine.get(\n\t\t// \tApiUrl._API_GET_BANK_ACCOUNT_2 + \"?deposit=\" + true\n\t\t// );\n\t\t// if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \tlet bankAccountList = [];\n\t\t// \tresponseJson[ApiKey._API_DATA_KEY].forEach(function (bankAccount) {\n\t\t// \t\tbankAccountList.push({\n\t\t// \t\t\tlabel: bankAccount.accountHolderName,\n\t\t// \t\t\tvalue: bankAccount.id,\n\t\t// \t\t\taccNumber: bankAccount.accountNumber,\n\t\t// \t\t\tmin: bankAccount.minimumDeposit,\n\t\t// \t\t\tmax: bankAccount.maximumDeposit,\n\t\t// \t\t\tbankName: bankAccount.bankName,\n\t\t// \t\t});\n\t\t// \t});\n\t\t// console.log(bankAccountList)\n\t\t// \tsetBankAccountOption(bankAccountList);\n\t\t// }\n\t}\n\n\tconst debouncedAmount = useCallback(\n\t\tdebounce((value) => {\n\t\t\tsetSelected(value);\n\t\t}, 500), // 500ms debounce time\n\t\t[]\n\t);\n\n\tasync function enterAmount(e) {\n\t\tlet amount = e.target.value\n\t\t\t.replace(/[a-zA-Z`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?(kr|$|£|€)]*/g, \"\")\n\t\t\t.trim();\n\n\t\tif (amount == \"\") {\n\t\t\tamount = 0;\n\t\t}\n\n\t\tlet value = 0;\n\t\tif (companyCurrency === \"PKR\") {\n\t\t\tvalue = Number(parseFloat(amount)).toFixed(0);\n\t\t} else {\n\t\t\tvalue = Number(parseFloat(amount) / 100).toFixed(2);\n\t\t}\n\n\t\t// let value = Number(parseFloat(amount) / 100).toFixed(2);\n\n\t\tif (parseFloat(value) > max) {\n\t\t\tvalue = max;\n\t\t}\n\t\te.target.setSelectionRange(value.length, value.length);\n\t\tsetAmount(value);\n\t\tif (value || !isNaN(value) || Number(value) >= min) {\n\t\t\tsetAmountError(false);\n\t\t}\n\t\tdebouncedAmount(toString(parseInt(value)));\n\t}\n\n\tasync function getBankAccInfo() {\n\t\t_dispatch(setBusy());\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_BANK_ACCOUNT_BY_BANK_ID + \"?bankId=\" + bankAccountId\n\t\t);\n\n\t\tif (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t}\n\n\t\tsetMin(responseJson[ApiKey._API_DATA_KEY][0][\"minimumDeposit\"]);\n\t\tsetMax(responseJson[ApiKey._API_DATA_KEY][0][\"maximumDeposit\"]);\n\t\tsetBankName(responseJson[ApiKey._API_DATA_KEY][0][\"bankName\"]);\n\t\tsetAccNumber(responseJson[ApiKey._API_DATA_KEY][0][\"accountNumber\"]);\n\t\tsetLabel(responseJson[ApiKey._API_DATA_KEY][0][\"accountHolderName\"]);\n\t\t//setBankRef(Math.floor(Math.random() * 9000 + 1000));\n\n\t\t_dispatch(setIdle());\n\t}\n\n\tconst truncate_text = (text) => {\n\t\tif (text.length > 15) {\n\t\t\treturn text.slice(0, 15) + \" . . .\";\n\t\t}\n\t\treturn text;\n\t};\n\n\tconst formatBytes = (bytes, decimals = 2) => {\n\t\tif (!+bytes) return \"0 Bytes\";\n\n\t\tconst k = 1024;\n\t\tconst dm = decimals < 0 ? 0 : decimals;\n\t\tconst sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n\n\t\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\n\t\treturn `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;\n\t};\n\n\tconst handleClick = (item) => {\n\t\tlet total = parseFloat(item);\n\t\tif (min > total) {\n\t\t\ttotal = min;\n\t\t}\n\t\tif (max > 0) {\n\t\t\tif (total > max) {\n\t\t\t\tsetSelected(0);\n\t\t\t\ttotal = max;\n\t\t\t} else {\n\t\t\t\tsetSelected(item);\n\t\t\t}\n\t\t\tsetAmount(total);\n\t\t\tif (total || !isNaN(total) || Number(total) >= min) {\n\t\t\t\tsetAmountError(false);\n\t\t\t}\n\t\t} else {\n\t\t\t_dispatch(showResponseMessage(false, \"PLEASE_SELECT_BANK\"));\n\t\t}\n\t};\n\n\tasync function handleRedirect() {\n\t\tif (stringIsNullOrEmpty(selectedEwallet) && !requirePhone) {\n\t\t\tsetBankError(true);\n\t\t\treturn;\n\t\t}\n\n\t\tif (requirePhone) {\n\t\t\tif (stringIsNullOrEmpty(phone)) {\n\t\t\t\tsetErrorPhone(t(\"ENTER_PHONE_NUMBER\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\t!amount ||\n\t\t\tisNaN(amount) ||\n\t\t\tNumber(amount) <= 0 ||\n\t\t\tNumber(amount) < min\n\t\t) {\n\t\t\tsetAmountError(true);\n\t\t\treturn;\n\t\t}\n\n\t\t// if (stringIsNullOrEmpty(bankref)) {\n\t\t// \tsetRefError(true);\n\t\t// \tsetErrorMessage(\"REFERENCE_NUMBER_REQUIRED\");\n\t\t// \treturn;\n\t\t// } else {\n\t\t// \tif (!stringIsNullOrEmpty(errorMessage)) {\n\t\t// \t\tsetRefError(true);\n\t\t// \t\tsetErrorMessage(errorMessage);\n\t\t// \t\treturn;\n\t\t// \t}\n\t\t// }\n\n\t\tlet params = {\n\t\t\ttransactionTypeId: TransactionType._DEPOSIT,\n\t\t\tbankId: instantBankSetting.bankId,\n\t\t\tamount: parseFloat(amount),\n\t\t\tbankCode: selectedEwallet,\n\t\t\tchannel: instantPayGatewayId,\n\t\t\tpanel: PanelType._MEMBERSITE,\n\t\t\tinstantPayBankSettingId: instantBankSetting.id,\n\t\t\tcurrency: instantBankSetting.currency,\n\t\t\tinstantPay: true,\n\t\t\t// receiptReference: bankref,\n\t\t\tbankAccountId: bankAccountId,\n\t\t};\n\n\t\tif (requirePhone) {\n\t\t\tif (!stringIsNullOrEmpty(phone)) {\n\t\t\t\tparams[\"phoneNumber\"] =\n\t\t\t\t\t(selectedPhonePrefix == \"\"\n\t\t\t\t\t\t? PhoneNumberPrefix[0].value\n\t\t\t\t\t\t: selectedPhonePrefix) + phone;\n\t\t\t}\n\t\t}\n\n\t\tif (!stringIsNullOrEmpty(bonusDeposit) && bonusDeposit != \"-1\") {\n\t\t\tparams[\"depositBonusId\"] = bonusDeposit;\n\t\t} else if (bonusDeposit === \"-1\") {\n\t\t\tparams[\"depositBonusId\"] = \"\";\n\t\t}\n\n\t\t_dispatch(setBusyLoading(true));\n\t\tlet responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t\tcreateMultiPartFormBody(params)\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetPaidAmount(params.amount);\n\t\t\tsetIsReloadSuccess(true);\n\t\t\tsetReloadDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\n\t\t\tif (window.ReactNativeWebView) {\n\t\t\t\twindow.ReactNativeWebView.postMessage(\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\taction: \"payment\",\n\t\t\t\t\t\turl: responseJson[ApiKey._API_DATA_KEY][\"redirectUrl\"],\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\twindow.location.href =\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][\"redirectUrl\"];\n\t\t\t}\n\n\t\t\t// console.log(responseJson)\n\t\t\t// _dispatch(setDepositModal(false));\n\t\t\t// _dispatch(\n\t\t\t// \tshowMessage({\n\t\t\t// \t\tcustom: true,\n\t\t\t// \t\tcustomIcon: (\n\t\t\t// \t\t\t\n\t\t\t// \t\t),\n\t\t\t// \t\tcontent: t(\"WE_ARE_VERIFYING_YOUR_PAYMENT\"),\n\t\t\t// \t})\n\t\t\t// );\n\n\t\t\t// Check if FB Pixel exists and has valid Pixel ID\n\t\t\twaitForFbPixel(() => {\n\t\t\t\twindow.fbq('track', 'Purchase', {\n\t\t\t\t\tvalue: params.amount,\n\t\t\t\t\tcurrency: companyCurrency\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tsetIsDisabled(false);\n\t\t\tsetAmount(0);\n\t\t\tsetSelected(0);\n\t\t\tsetFile();\n\t\t\tsetReceiptReference(\"\");\n\t\t\t// _dispatch(setBusyLoading(false))\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\t_dispatch(setBusyLoading(false));\n\t}\n\n\tconst copyItem = (ref, type) => {\n\t\tif (!ref.current) return; // Prevent errors if ref is null\n\n\t\tlet textToCopy =\n\t\t\tref.current.tagName === \"INPUT\"\n\t\t\t\t? ref.current.value\n\t\t\t\t: ref.current.innerText;\n\n\t\tnavigator.clipboard\n\t\t\t.writeText(textToCopy)\n\t\t\t.then(() => {\n\t\t\t\tsetCopied(type);\n\n\t\t\t\tsetShowCodeAlert(true);\n\n\t\t\t\tif (toobj) clearTimeout(toobj);\n\n\t\t\t\tsetToobj(\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tsetCopied(\"\");\n\t\t\t\t\t}, _ALERT_TIMEOUT)\n\t\t\t\t);\n\t\t\t})\n\t\t\t.catch((err) => console.error(\"Copy failed:\", err));\n\t};\n\n\tconst generateReferenceReceipt = async () => {\n\t\tlet receiptReference = `INV${Math.floor(100000 + Math.random() * 900000)}`;\n\t\tsetBankRef(receiptReference);\n\t};\n\n\t// async function getMemberEwalletAccounts() {\n\t// \tlet responseJson = await ApiEngine.get(\n\t// \t\t// ApiUrl._API_GET_MEMBER_PHONE_NUMBERS + \"?isVerifyRequired=true\"\n\t// \t\tApiUrl._API_GET_MEMBER_PHONE_NUMBERS\n\t// \t);\n\t// \tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\tconsole.log(responseJson)\n\t// \t\tlet phoneNumberList = [];\n\t// \t\tresponseJson[ApiKey._API_DATA_KEY].map((phoneNumber) => {\n\t// \t\t\tphoneNumberList.push({\n\t// \t\t\t\tlabel: phoneNumber.phoneNumber,\n\t// \t\t\t\tvalue: phoneNumber.id,\n\t// \t\t\t\tid: phoneNumber.id, // CHRIS 20241206: added this here for convenience\n\t// \t\t\t\tverified: phoneNumber.verified,\n\t// \t\t\t\tphoneNumType: \"memberEwalletAccounts\", // member or memberEwalletAccounts\n\t// \t\t\t\taccountHolderName: phoneNumber.accountHolderName\n\t// \t\t\t});\n\t// \t\t});\n\t// \t\tsetPhoneOption(phoneNumberList);\n\t// \t} else {\n\t// \t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t// \t}\n\t// }\n\n\tfunction handleSelectedPhoneNumber(value) {\n\t\tconst phoneNumberData = phoneOption.filter((x) => x.value == value)[0];\n\n\t\tsetSelectedPhoneNumber(phoneNumberData);\n\t\t// setValue(value);\n\t}\n\n\tconst validatePhone = (value) => {\n\t\tif (value.length < 8) {\n\t\t\treturn t(\"MIN_CHARACTERS\", { length: 8 });\n\t\t}\n\t\tif (value.length > 11) {\n\t\t\treturn t(\"MAX_CHARACTERS\", { length: 11 });\n\t\t}\n\t\tif (!/^[0-9]+$/.test(value)) {\n\t\t\treturn (\n\t\t\t\tt(\"MIN_CHARACTERS\", { length: 8 }) +\n\t\t\t\t\" \" +\n\t\t\t\tt(\"AND\") +\n\t\t\t\t\" \" +\n\t\t\t\tt(\"ONLY_NUMBERS\")\n\t\t\t);\n\t\t}\n\t\treturn \"\";\n\t};\n\n\tconst handleChange = (e) => {\n\t\tlet value = e.target.value;\n\t\t// Remove all leading zeros\n\t\tvalue = value.replace(/^0+/, \"\");\n\t\t// Update the input field with the modified value\n\t\te.target.value = value;\n\n\t\tconst validationError = validatePhone(value);\n\t\tsetErrorPhone(validationError);\n\t\t// setIsDisabled(true)\n\t\tif (!validationError) {\n\t\t\tsetPhone(value);\n\t\t\t// setIsDisabled(false)\n\t\t}\n\t};\n\n\t// const handleBankRef = (e) => {\n\t// \tlet value = e.target.value;\n\t// \tconst sanitizedValue = value.replace(/[^a-zA-Z0-9]/g, \"\"); // Remove special characters\n\n\t// \tif (sanitizedValue.length > 30) {\n\t// \t\tsetRefError(true);\n\t// \t\tsetErrorMessage(\"MAXIMUM_30_ALPHANUMERIC_CHARACTERS\");\n\t// \t} else {\n\t// \t\tsetRefError(false);\n\t// \t\tsetErrorMessage(\"\");\n\t// \t}\n\n\t// \tsetBankRef(sanitizedValue);\n\t// };\n\n\treturn (\n\t\t<>\n\t\t\t{loadingSpinner && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t{!loadingSpinner && hasPendingTxn && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{timeDiffSeconds > 0\n\t\t\t\t\t\t\t\t\t? t(\"PLEASE_WAIT\") +\n\t\t\t\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t\t\t\t countdownStr +\n\t\t\t\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t\t\t\t (transType === \"Deposit\"\n\t\t\t\t\t\t\t\t\t\t\t? t(\"FOR_DEPOSIT_APPROVAL\")\n\t\t\t\t\t\t\t\t\t\t\t: t(\"FOR_WITHDRAWAL_APPROVAL\"))\n\t\t\t\t\t\t\t\t\t: headerMsg}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{!loadingSpinner && !hasPendingTxn && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"BALANCE\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\twalletsDetails.currentWalletBalance,\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"MIN_DEPOSIT\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* {numberWithCurrencyFormat(min, 2, true)} */}\n\t\t\t\t\t\t\t\t{min ? numberWithCurrencyFormat(min, 0, true) : \"-\"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{displayNotes && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{t(\"NOTES\")} : \n\t\t\t\t\t\t\t\t\t

{t(\"UPLOAD_DESCRIPTION\")}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t
\n\t\t\t\t\t{memberData.isActivedPromoExist && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"NEW_TRANSACTION_NOT_QUALIFY_FOR_PROMO\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{!isDirect && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedEwallet(e.target.value);\n\t\t\t\t\t\t\t\t\t\t\tsetBankError(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{t(\"PLEASE_SELECT_EWALLET\")}\n\t\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t\t{walletOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{bankError && (\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t{t(\"PLEASE_SELECT_EWALLET\")}\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{/* {\n\t\t\t\t\t\t\trequirePhone && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t numberWithCurrencyFormat(parseFloat(0), 2, true) \n\t\t\t\t\t\t\t\t\t// \t// && stringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t// \t\t? \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t// \t\t: \"t3-withdrawal-option-select disabled\"\n\t\t\t\t\t\t\t\t\t// }\n\t\t\t\t\t\t\t\t\tname=\"phoneNumber\"\n\t\t\t\t\t\t\t\t\t// ref={register({\n\t\t\t\t\t\t\t\t\t// \trequired: \"FIELD_REQUIRED\",\n\t\t\t\t\t\t\t\t\t// })}\n\t\t\t\t\t\t\t\t\tdefaultValue={phoneNumber}\n\t\t\t\t\t\t\t\t\tplaceholder={t(\"PLEASE_SELECT_PHONE_NUMBER\")}\n\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t// setValue(\"phoneNumber\",e.target.value)\n\t\t\t\t\t\t\t\t\t\thandleSelectedPhoneNumber(e.target.value);\n\t\t\t\t\t\t\t\t\t\t// clearErrors(\"phoneNumber\");\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{phoneOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tphoneOption.length < 3 && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} */}\n\t\t\t\t\t\t{requirePhone && (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedPhonePrefix(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ height: \"45px\", width: \"95px\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{PhoneNumberPrefix.map((prefix, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{prefix.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tconst key = e.key;\n\t\t\t\t\t\t\t\t\t\t\tconst allowedKeys = [\n\t\t\t\t\t\t\t\t\t\t\t\t\"Backspace\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowLeft\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"ArrowRight\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"Delete\",\n\t\t\t\t\t\t\t\t\t\t\t\t\"Tab\",\n\t\t\t\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\t\t\t\t\tif (!/[0-9]/.test(key) && !allowedKeys.includes(key)) {\n\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Prevent '0' as the first character\n\t\t\t\t\t\t\t\t\t\t\tconst inputValue = e.target.value;\n\t\t\t\t\t\t\t\t\t\t\tif (inputValue.length === 0 && key === \"0\") {\n\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{errorPhone && (\n\t\t\t\t\t\t\t\t\t\t{errorPhone}\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{addAmountList &&\n\t\t\t\t\t\t\t\t\taddAmountList.length &&\n\t\t\t\t\t\t\t\t\tmap(addAmountList, (item, index) => {\n\t\t\t\t\t\t\t\t\t\tif (item.amount != \"\") {\n\t\t\t\t\t\t\t\t\t\t\tconst formattedCurrency = numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\titem.amount,\n\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t max || min > item.amount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"disabled \"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\") +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(item.amount === selected ? \"active\" : \"\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleClick(item.amount)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t// style={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{abbreviateNumber(formattedCurrency)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{companyCurrency}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? parseInt(amount) // Show without decimals for AUD\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t: Number(amount) > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t? Number(amount).toFixed(2) // Show decimals for other currencies\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonChange={enterAmount}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{amountError && (\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{amount <= 0\n\t\t\t\t\t\t\t\t\t\t\t? t(\"AMOUNT_IS_REQUIRED\")\n\t\t\t\t\t\t\t\t\t\t\t: t(\"VALUE_LESS_THAN_MINIMUM\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{min > 0 && max > 0 ? (\n\t\t\t\t\t\t\t\t\t\tcompanyCurrency +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\tmin +\n\t\t\t\t\t\t\t\t\t\t\" - \" +\n\t\t\t\t\t\t\t\t\t\tcompanyCurrency +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\tmax\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<> \n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{!stringIsNullOrEmpty(bankAccountId) && bankAccountId > 0 && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{/*{ showCodeAlert &&
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"COPY_SUCCESS\")}\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
}*/}\n\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"BANK_NAME\")}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

{bankName}

\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t(\"ACCOUNT_NUMBER\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{accNumber}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t copyItem(_accNumberRef, \"acc\")}\n\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{(copied === \"acc\" ? \"Copied\" : \"\")} \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t */}\n\t\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t(\"ACCOUNT_HOLDER_NAME\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t copyItem(_labelRef, \"label\")}\n\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{(copied === \"label\" ? \"Copied\" : \"\")} \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t */}\n\t\t\t\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t{/* \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"REFERENCE_TRANSACTION_ID\")} *\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{refError && (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errorMessage)}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t copyItem(_bankRef, \"ref\")}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{copied === \"ref\" ? (\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"COPIED\")}\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t */}\n\n\t\t\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t

{t(\"UPLOAD_DESCRIPTION\")}

\n\n\t\t\t\t\t\t\t{!file && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{file && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{truncate_text(file.name)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{formatBytes(file.size)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t setFile()}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t setFile(e.target.files[0])}\n\t\t\t\t\t\t\t\tvalue=\"\"\n\t\t\t\t\t\t\t\taccept=\"image/png, image/jpeg,image/jpg\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{!stringIsNullOrEmpty(bankAccountId) && bankAccountId > 0 && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t_dispatch(setDepositModal(false));\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"CANCEL\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{!isDisabled && (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\thandleRedirect();\n\t\t\t\t\t\t\t\t\t\t// setIsDisabled(true);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{t(\"SUBMIT\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t{isDisabled && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{t(\"SUBMIT\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default InstantPayDeposit;\n","import React, { useState, useEffect } from \"react\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { ApiKey, ApiUrl, WebUrl } from \"../../../util/Constant\";\nimport { Link, Redirect, useHistory } from \"react-router-dom\";\nimport moment from \"moment\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { useAccordionButton } from \"react-bootstrap/AccordionButton\";\nimport { stringIsNullOrEmpty, createFormBody } from \"../../../util/Util\";\nimport {\n\tshowResponseMessage,\n\tshowResponseMessageWithoutT,\n\tsetPaymentList,\n} from \"../../../redux/AppAction\";\nimport { find, isEmpty, map } from \"lodash\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport UploadReloadReceipt from \"../transaction/UploadReloadReceipt\";\nimport { heartBeat } from \"../../../redux/AuthAction\";\nimport InstantPayDeposit from \"./InstantPayDeposit\";\n\n// function CustomToggle({ children, eventKey }) {\n// \tconst wrapOnClick = useAccordionButton(eventKey, () =>\n// \t\tconsole.log(\"totally custom!\")\n// \t);\n\n// \treturn
{children}
;\n// }\n\n/// \n/// Author: -\n/// \nconst Deposit = (props) => {\n\tconst { t, i18n } = useTranslation();\n\tconst _history = useHistory();\n\tconst _dispatch = useDispatch();\n\tconst { handleSubmit, control, setValue } = useForm();\n\t\n\tconst _NORMAL_DEPOSIT = -1;\n\tconst _INSTANT_PAYMENT = 1;\n\tconst [instantPayOption, setInstantPayOption] = useState([]);\n\tconst [paymentOptionList, setPaymentOptionList] = useState(\n\t\tuseSelector((state) => state.appState.payments)\n\t);\n\tconst [paymentOption, setPaymentOption] = useState(_NORMAL_DEPOSIT);\n\tconst [activeTab, setActiveTab] = useState(_INSTANT_PAYMENT);\n\tconst [showFullnamePopup, setShowFullnamePopup] = useState(false);\n\tconst [memberId, setMemberId] = useState(\"\");\n\tconst [activePaymentOption, setActivePaymentOption] = useState(\"\");\n\t\n\tconst [headerMsg, setHeaderMsg] = useState(\"\");\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [transType, setTransType] = useState(\"\");\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst _SECONDS_IN_MS = 1000;\n\tconst [showConfirmation, setShowConfirmation] = useState(false);\n\tconst [loadingSpinner, setLoadingSpinner] = useState(false);\n\tconst [selected, setSelected] = useState(\"\");\n\tconst [showBankOptions, setShowBankOptions] = useState(true);\n\tconst [showBackward, setShowBackward] = useState(false)\n\tconst [isNormalDepositEnable, setIsNormalDepositEnable] = useState(\n\t\tuseSelector((state) => state.appState.isNormalDepositEnable)\n\t);\n\tconst [activeIndex, setActiveIndex] = useState(0);\n\tconst [selectedBank, setSelectedBank] = useState(\"\");\n\tconst [filterBankOptions, setFilterBankOptions] = useState([])\n\n\tuseEffect(() => {\n\t\tinit();\n\t}, []);\n\n\t// useEffect(() => {\n\t// \tif (countdownPeriod > 0) {\n\t// \t\tclearTimeout(countdownTime);\n\t// \t\tsetCountdownTime(\n\t// \t\t\tsetTimeout(() => {\n\t// \t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t// \t\t\t\tsetCountdownPeriod(tempPeriod);\n\t// \t\t\t\tlet tempX = moment.duration(tempPeriod);\n\t// \t\t\t\tlet tempMM = Math.floor(tempX[\"_milliseconds\"] / 60);\n\t// \t\t\t\tlet tempSS = tempX[\"_milliseconds\"] - tempMM * 60;\n\t// \t\t\t\tsetTimeDiffSeconds(tempX[\"_milliseconds\"]);\n\t// \t\t\t\tlet tempStr =\n\t// \t\t\t\t\t(tempMM.toString().length > 1 ? tempMM : \"0\" + tempMM) +\n\t// \t\t\t\t\t\" \" +\n\t// \t\t\t\t\tt(\"MINUTES\") +\n\t// \t\t\t\t\t\" \" +\n\t// \t\t\t\t\t(tempSS.toString().length > 1 ? tempSS : \"0\" + tempSS) +\n\t// \t\t\t\t\t\" \" +\n\t// \t\t\t\t\tt(\"SECOND\");\n\t// \t\t\t\tsetCountdownStr(tempStr);\n\t// \t\t\t}, _SECONDS_IN_MS)\n\t// \t\t);\n\t// \t}\n\t// }, [countdownPeriod]);\n\n\tuseEffect(()=>{\n\n\t\tif(paymentOptionList.length > 0){\n\t\t\tconst normalOptions = paymentOptionList.filter(item => item.value === 'Normal');\n\t\t\tconst isOnlyOne = paymentOptionList.length === 1;\n\t\t\t\n\t\t\tif (isOnlyOne) {\n\t\t\t\tif(normalOptions.length === 1){\n\t\t\t\t\tsetSelected(normalOptions.length === 1 ? \"Normal\" : paymentOptionList[0].label);\n\t\t\t\t\tsetShowBackward(false);\n\t\t\t\t}else if(paymentOptionList[0].label){\n\t\t\t\t\tsetSelected(paymentOptionList[0].label);\n\t\t\t\t\tsetShowBackward(false);\n\t\t\t\t}else{\n\t\t\t\t\tsetSelected(\"\");\n\t\t\t\t\tsetShowBackward(true)\n\t\t\t\t}\n\t\t\t}else{\n\t\t\t\tsetSelected(\"\");\n\t\t\t\tsetShowBackward(true)\n\n\t\t\t}\n\n\t\t}\n\t},[paymentOptionList])\n\n\tasync function init() {\n\t\tvar oktocont = true;\n\t\tsetLoadingSpinner(true);\n\t\t_dispatch(heartBeat());\n\t\t(async function () {\n\t\t\t//KT: NO POINT HAVING THIS, WE ARE NOT REQUIRING FULL NAME TO DEPOSIT\n\t\t\t/*let memberJson = await ApiEngine.get(ApiUrl._API_GET_USER_FULLNAME);\n\t\t\tif (memberJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t// setMemberId(memberJson[ApiKey._API_DATA_KEY][\"memberId\"]);\n\t\t\t\tif (\n\t\t\t\t\tstringIsNullOrEmpty(memberJson[ApiKey._API_DATA_KEY][\"userFullName\"])\n\t\t\t\t) {\n\t\t\t\t\tsetShowFullnamePopup(true);\n\t\t\t\t}\n\t\t\t}*/\n\n\t\t\t// Check if redux already has the payment option list saved\n\t\t\tif (paymentOptionList.length > 0) {\n\t\t\t\tinitOptions(paymentOptionList);\n\t\t\t} else {\n\t\t\t\t//payment gateway list\n\t\t\t\tlet responseJson = await ApiEngine.get(\n\t\t\t\t\tApiUrl._API_GET_USER_PAYMENT_GATEWAY_INFO\n\t\t\t\t);\n\t\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t// Save payment list into redux to avoid calling API again if unnecessary\n\t\t\t\t\t_dispatch(setPaymentList(responseJson[ApiKey._API_DATA_KEY]));\n\n\t\t\t\t\tinitOptions(responseJson[ApiKey._API_DATA_KEY]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t//-------------------------------------------------------------------\n\n\n\t\t\t// setHeaderMsg(\"\");\n\t\t\t// var pendingTransactionJson = await ApiEngine.get(\n\t\t\t// \tApiUrl._API_GET_PENDING_TRANSACTION\n\t\t\t// );\n\t\t\t// if (pendingTransactionJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t// \tif (pendingTransactionJson[ApiKey._API_DATA_KEY] != null) {\n\t\t\t// \t\tclearTimeout(countdownTime);\n\t\t\t// \t\tlet tempS = parseInt(\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"timeSpan\"]\n\t\t\t// \t\t);\n\t\t\t// \t\tsetTransType(\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"transType\"]\n\t\t\t// \t\t);\n\t\t\t// \t\tsetTimeDiffSeconds(tempS);\n\t\t\t// \t\tsetCountdownPeriod(tempS < 0 ? 0 : tempS);\n\t\t\t// \t\tsetHasPendingTxn(true);\n\t\t\t// \t\toktocont = false;\n\t\t\t// \t\tsetHeaderMsg(t(\"NEW_TXN_PROHIBITED\"));\n\t\t\t// \t}\n\t\t\t// } else {\n\t\t\t// \t_dispatch(\n\t\t\t// \t\tshowResponseMessage(\n\t\t\t// \t\t\tfalse,\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t// \t\t)\n\t\t\t// \t);\n\t\t\t// }\n\n\t\t\t//KT: IF PENDING TXN FOUND, WHY CONTINUE AND STILL GET DATA WE DONT NEED?\n\t\t\tif (oktocont) {\n\t\t\t\tawait getRestore();\n\t\t\t\t//await getMultipleTap();\n\t\t\t}\n\n\t\t\t//KT this is very slow, we're not going to use Payment Gateway for AUD, might as well dont check and waste time\n\t\t\t// setSelected(\"Normal\");\n\t\t\tsetLoadingSpinner(false);\n\t\t})();\n\t}\n\n\tasync function initOptions(responseJsonData) {\n\t\tsetInstantPayOption(responseJsonData);\n\t\tlet tempOptions = [];\n\n\t\tlet responseJsonBank = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_BANK_ACCOUNT_2 + \"?deposit=\" + true\n\t\t);\n\t\tif (responseJsonBank[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet bankAccountList = responseJsonBank[ApiKey._API_DATA_KEY]\n\n\t\t\tconst hasEwallet = bankAccountList.some(bank => bank.isEwallet);\n\t\t\tconst hasNormalBank = bankAccountList.some(bank => !bank.isEwallet);\n\n\n\t\t\tif(hasNormalBank){\n\t\t\t\ttempOptions.push({\n\t\t\t\t\tkey: _NORMAL_DEPOSIT,\n\t\t\t\t\tvalue: _NORMAL_DEPOSIT,\n\t\t\t\t\tlabel: \"Normal\",\n\t\t\t\t\timage: null,\n\t\t\t\t\tpaymentType: t(\"NORMAL_DEPOSIT\"),\n\t\t\t\t\tfee: 0,\n\t\t\t\t\tremark: t(\"NORMAL_BANK_TRANSFER\"),\n\t\t\t\t\tbankOptions:bankAccountList.filter(account => account.isEwallet === false)\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t\n\t\t\tif(hasEwallet){\n\t\t\t\ttempOptions.push({\n\t\t\t\t\tkey: _NORMAL_DEPOSIT,\n\t\t\t\t\tvalue: _NORMAL_DEPOSIT,\n\t\t\t\t\tlabel: \"E-wallet\",\n\t\t\t\t\timage: null,\n\t\t\t\t\tpaymentType: t(\"EWALLET\"),\n\t\t\t\t\tfee: 0,\n\t\t\t\t\tremark: t(\"EWALLET_MANUAL\"),\n\t\t\t\t\tbankOptions:bankAccountList.filter(account => account.isEwallet === true)\n\t\t\t\t});\n\t\t\t}\n\n\t\t}\n\t\t\n\n\t\tlet temp = responseJsonData.findIndex(\n\t\t\t(x) => x.instantPayGatewayString === activePaymentOption\n\t\t);\n\n\t\tsetPaymentOption(temp);\n\t\tresponseJsonData.map((option, index) => {\n\t\t\toption[\"status\"] === true &&\n\t\t\t\ttempOptions.push({\n\t\t\t\t\tkey: index,\n\t\t\t\t\tvalue: option.id,\n\t\t\t\t\tlabel: option.instantPayGatewayString,\n\t\t\t\t\timage: option.image,\n\t\t\t\t\tfee: option.serviceCharge,\n\t\t\t\t\tpaymentType:\n\t\t\t\t\t\toption.instantPayGatewayString.endsWith(\" QR\") ||\n\t\t\t\t\t\toption.instantPayGatewayString == \"TruePay\"\n\t\t\t\t\t\t\t? t(\"DUIT_NOW\")\n\t\t\t\t\t\t\t: t(\"INSTANT_PAYMENT\"),\n\t\t\t\t\tremark: option.remarks,\n\t\t\t\t\tnotes:option.notes\n\t\t\t\t});\n\t\t});\n\n\t\tif (\n\t\t\ttempOptions.filter((x) => x.paymentType === t(\"INSTANT_PAYMENT\"))\n\t\t\t\t.length <= 0\n\t\t) {\n\t\t\tsetActiveTab(_NORMAL_DEPOSIT);\n\t\t}\n\t\tsetValue(\"paymentMethod\", tempOptions[0].value);\n\t\tsetPaymentOptionList(tempOptions);\n\t}\n\n\tasync function getRestore() {\n\t\tlet responseJson = await ApiEngine.get(ApiUrl._API_RESTORE_ALL_WALLET);\n\t}\n\n\n\treturn (\n\t\t
\n\t\t\t{showBankOptions && selected === \"\" && (\n\t\t\t\t<>\n\t\t\t\t\t{showConfirmation && (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetShowConfirmation(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"#05102F\",\n\t\t\t\t\t\t\t\tborderColor: \"white !important\",\n\t\t\t\t\t\t\t\topacity: 0.9,\n\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\tmarginTop: \"68%\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tcancelBtnBsStyle=\"#45ff8b\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t\t\"PLEASE_WAIT_FOR_PREVIOUS_TRANSACTION_APPROVAL_OR_CONTACT_CUSTOMER_SERVICE\"\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t{!loadingSpinner && paymentOptionList.length > 1 &&
\n\t\t\t\t\t\t
{t(\"SELECT_A_RELOAD_OPTION\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t
}\n\n\t\t\t\t\t{\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{loadingSpinner ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\tpaymentOptionList.map((option, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t {\n\n\t\t\t\t\t\t\t\t\t\t\t\tif(option.bankOptions){\n\t\t\t\t\t\t\t\t\t\t\t\t setActiveIndex(activeIndex === index ? null : index) \n\n\t\t\t\t\t\t\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\t\t\t\t\t // if (hasPendingTxn) {\n\t\t\t\t\t\t\t\t\t\t\t // \tsetShowConfirmation(true);\n\t\t\t\t\t\t\t\t\t\t\t // } else {\n\t\t\t\t\t\t\t\t\t\t\t // \tsetSelected(option[\"label\"]);\n\t\t\t\t\t\t\t\t\t\t\t // \tsetShowBankOptions(false);\n\t\t\t\t\t\t\t\t\t\t\t // }\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelected(option[\"label\"]);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowBankOptions(false);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option[\"label\"] == \"Normal\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? t(\"BANK\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: option[\"label\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option[\"remark\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\toption.bankOptions \n\t\t\t\t\t\t\t\t\t\t\t\t\t? option.bankOptions.map((bank, bankIndex)=>{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedBank(bank.id);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelected(option[\"label\"]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowBankOptions(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetFilterBankOptions(option.bankOptions);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbank.bankLogo ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{bank.bankName}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{bank.minimumDeposit} - {bank.maximumDeposit}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\n\t\t\t)}\n\n\n\n\t\t\t{/* {hasPendingTxn && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{timeDiffSeconds > 0\n\t\t\t\t\t\t\t\t\t? t(\"PLEASE_WAIT\") +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\tcountdownStr +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t(transType === \"Deposit\"\n\t\t\t\t\t\t\t\t\t\t? t(\"FOR_DEPOSIT_APPROVAL\")\n\t\t\t\t\t\t\t\t\t\t: t(\"FOR_WITHDRAWAL_APPROVAL\"))\n\t\t\t\t\t\t\t\t\t: headerMsg}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)} */}\n\n\n\t\t\t{!showBankOptions && showBackward && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
{selected === \"Normal\" ? t(\"NORMAL_BANK_TRANSFER\") : t(`${selected}`)}
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t\n\n\t\t\t{ selected === \"Normal\" || selected === \"E-wallet\" ? (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) : selected === \"\" ? (\n\t\t\t\t\"\"\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t{/* x.instantPayGatewayString === selected\n\t\t\t\t\t\t\t)[0]\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t/> */}\n\t\t\t\t\t x.instantPayGatewayString === selected\n\t\t\t\t\t\t\t)[0].id\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbankId={\n\t\t\t\t\t\t\tinstantPayOption.filter(\n\t\t\t\t\t\t\t\t(x) => x.instantPayGatewayString === selected\n\t\t\t\t\t\t\t)[0].instantBankSettingModel[0].bankId\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinstantBankSetting={find(instantPayOption, {instantPayGatewayString : selected})}\n\t\t\t\t\t\tinstantPayGatewayId={\n\t\t\t\t\t\t\tinstantPayOption.filter(\n\t\t\t\t\t\t\t\t(x) => x.instantPayGatewayString === selected\n\t\t\t\t\t\t\t)[0].instantPayGatewayId\n\t\t\t\t\t\t}\n\t\t\t\t\t\t instantPayGatewayNotes={\n\t\t\t\t\t\t\tinstantPayOption.filter(\n\t\t\t\t\t\t\t\t(x) => x.instantPayGatewayString === selected\n\t\t\t\t\t\t\t)[0].notes\n\t\t\t\t\t\t }\n\t\t\t\t\t\t\n\t\t\t\t\t/>\n\t\t\t\t\t {/* */}\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default Deposit;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl } from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { showResponseMessage, bindMember, setMyProfileModal, setCompleteInfoModal } from \"../../redux/AppAction.js\";\nimport { find, isEmpty } from \"lodash\";\nimport { useForm } from \"react-hook-form\";\nimport { createFormBody, stringIsNullOrEmpty } from \"../../util/Util.js\";\nimport { Spinner } from \"react-bootstrap\";\n\n\nconst CompleteInfoModal = ({member}) => {\n var _dispatch = useDispatch();\n var { t } = useTranslation();\n const completeInfoModal = useSelector((state) => state.appState.completeInfoModal);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [alertIcon, setAlertIcon] = useState(\"\");\n const memberData = useSelector((state) => state.appState.member);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false)\n const priorityModalType = useSelector((state) => state.appState.priorityModalTypeId)\n\tconst customerServiceUrl = \"/livechat\";\n\n const {\n\t\thandleSubmit,\n\t\tregister,\n\t\tcontrol,\n\t\twatch,\n\t\tgetValues,\n\t\terrors,\n\t\tclearErrors,\n\t\treset,\n\t\ttrigger,\n\t} = useForm();\n\n\n useEffect(()=>{\n getCompanyIcon();\n },[])\n\n\n async function getCompanyIcon() {\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n \n \n }\n\n async function onSubmit(data){\n setIsSubmitLoading(true)\n let params = {};\n\n if(data.phone){\n params['phoneNumber'] = data.phone\n }\n\n // if(data.email){\n // params['email'] = data.email\n // }\n\n if(data.fullName){\n params['userFullName'] = data.fullName\n }\n\n\n var responseJson = await ApiEngine.post(\n ApiUrl._API_MEMBER_UPDATE_PROFILE,\n createFormBody(params)\n );\n \n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n await bindMember(_dispatch);\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n setIsSubmitLoading(false)\n\n _dispatch(setCompleteInfoModal(false))\n }\n else{\n setIsSubmitLoading(false)\n\n }\n\n \n }\n\n const closeBtn = (\n\t\t _dispatch(setCompleteInfoModal(false))}\n\t\t>\n\t\t\t\n\t\t\n\t );\n return (\n {\n _dispatch(setCompleteInfoModal(!completeInfoModal))\n }}\n centered\n >\n \t\n Notice\n \n \n
\n
\n
\n \n
{t(\"OOPS\")}
\n
{t(\"COMPLETE_REQUIRED\")}
\n
\n
\n
\n {\n !memberData?.userFullName && isEmpty(memberData?.userFullName) && (\n
\n \n
\n \n \n {errors.fullName && (\n
\n {t(errors.fullName.message)}\n
\n )}\n
\n
\n
\n
\n \n
\n
\n

\n {/* {t('ACCOUNT_BALANCE_ZERO')} */}\n {t('ENSURE_FULL_NAME')}\n

\n
\n
\n
\n
\n )\n }\n {\n !isEmpty(memberData) && !memberData?.phoneNumber && isEmpty(memberData?.phoneNumber) &&\n (\n
\n \n
\n {\n const key = e.key;\n const allowedKeys = [\n \"Backspace\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n \"Tab\",\n ];\n \n if (\n !/[0-9]/.test(key) &&\n !allowedKeys.includes(key)\n ) {\n e.preventDefault();\n }\n\n // Prevent '0' as the first character\n const inputValue = e.target.value;\n if (inputValue.length === 0 && key === \"0\") {\n e.preventDefault();\n }\n }}\n onChange={(e) => {\n let newValue = e.target.value;\n \n // Remove all leading zeros\n newValue = newValue.replace(/^0+/, '');\n \n // Update the input field with the modified value\n e.target.value = newValue;\n }}\n />\n \n {errors.phone && (\n
\n {t(errors.phone.message)}\n
\n )}\n
\n
\n )\n }\n {/* {\n !memberData?.email && isEmpty(memberData?.email) && (\n
\n \n
\n \n {errors.email && (\n
\n {t(errors.email.message)}\n
\n )}\n
\n
\n )\n } */}\n\n\n
\n \n
\n\n
\n\n
\n \n\n
\n \n \n
\n
\n
\n\n )\n};\n\nexport default CompleteInfoModal;","import React, { useCallback, useEffect, useState, useRef } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport Input from \"../../../components/custom/Input\";\nimport { useForm } from \"react-hook-form\";\nimport { createMultiPartFormBody } from \"../../../util/Util\";\nimport { map, debounce, find, filter, upperCase, isEmpty } from \"lodash\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport Keyboard from \"react-simple-keyboard\";\nimport PinInput from \"react-pin-input\";\nimport \"react-swipeable-list/dist/styles.css\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n\tcreateFormBody,\n} from \"../../../util/Util\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tAlertTypes,\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tbindMember,\n\tsetBusy,\n\tsetBusyLoading,\n\tsetCompleteInfoModal,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n} from \"../../../redux/AppAction\";\nimport \"react-simple-keyboard/build/css/index.css\";\nimport StyledSelect from \"../../../components/custom/StyledSelect\";\nimport moment from \"moment\";\nimport { heartBeat } from \"../../../redux/AuthAction\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport Accordion from \"react-bootstrap/Accordion\";\nimport LoadingOverlay from \"react-loading-overlay\";\nimport classNames from \"classnames\";\nimport { Spinner } from \"react-bootstrap\";\nimport CompleteInfoModal from \"components/template_1/CompleteInfoModal\";\n\nconst WithdrawByBankTransfer = ({onRenderComplete,onAfterHandleCheck}) => {\n\tvar { t, i18n } = useTranslation();\n\tvar _history = useHistory();\n\tlet _location = useLocation();\n\tvar _userData = useSelector((state) => state.authState.userData);\n\tvar [action, setAction] = useState([]);\n\tlet _dispatch = useDispatch();\n\tconst [addSuccessModelShow, setAddSuccessModelShow] = useState(false);\n\tconst userFullName = useSelector(\n\t\t(state) => state.authState.userData.userFullName\n\t);\n\tconst [selected, setSelected] = useState(false);\n\tconst [selectedBank, setSelectedBank] = useState([]);\n\tconst [amount, setAmount] = useState(0);\n\tconst [value, setValue] = useState(\"\");\n\tconst [accountNumber, setAccountNumber] = useState(\"\");\n\tconst [accountHolderName, setAccountHolderName] = useState(\"\");\n\tconst [headerMsg, setHeaderMsg] = useState(\"\");\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [transType, setTransType] = useState(\"\");\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst [isInsufficientAmount, setIsInsufficientAmount] = useState(false);\n\tconst companyCurrency = useSelector((state) => state.appState.companyCurrency);\n\n\t// ROSE START HERE\n\tconst {\n\t\thandleSubmit,\n\t\tregister,\n\t\tcontrol,\n\t\twatch,\n\t\tgetValues,\n\t\terrors,\n\t\tclearErrors,\n\t\treset,\n\t\ttrigger,\n\t} = useForm();\n\n\tconst [bankOption, setBankOption] = useState([]);\n\tconst [memberBankAccounts, setMemberBankAccounts] = useState([]);\n\tconst [transcactionNumber, setTranscactionNumber] = useState();\n\tconst [isWithdrawalSuccess, setIsWithdrawalSuccess] = useState(false);\n\tconst [withdrawalAmount, setWithdrawalAmount] = useState(0);\n\tconst [withdrawalDate, setWithdrawalDate] = useState();\n\t// const [member, setMember] = useState();\n\tconst member = useSelector((state) => state.appState.member);\n\n\tconst [showPinEntry, setShowPinEntry] = useState(false);\n\tconst [showVerifyPhone, setShowVerifyPhone] = useState(false);\n\tconst [changePinShow, setChangePinShow] = useState(false);\n\tconst _COUNTDOWN_PERIOD = 120;\n\tconst _SECONDS_IN_MS = 1000;\n\tconst _ALERT_TIMEOUT = 3000;\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst mainForm = useRef(null);\n\n\tconst [success, setSuccess] = useState(false);\n\tconst [successMsg, setSuccessMsg] = useState(\"\");\n\n\tconst [pinEntered, setPinEntered] = useState(false);\n\t\n\tconst [pinNumberFinal, setPinNumberFinal] = useState(\"\");\n\tconst [enteredPinNumberFinal, setEnteredPinNumberFinal] = useState(\"\");\n\tconst [pinNumberFinalFocused, setPinNumberFinalFocused] = useState(0);\n\n\tconst [initDone, setInitDone] = useState(false);\n\tconst [hasRolloverBal, setHasRolloverBal] = useState(false);\n\tconst [memberEmail,setMemberEmail] = useState()\n\n\tconst [memberPhone,setMemberPhone] = useState()\n\n\n\tconst [tempPhoneNum, setTempPhoneNum] = useState(\"\");\n\tconst verifyState = {\n\t\tbutton: \"1\",\n\t};\n\n\n\n\tconst [transactionData, setTransactionData] = useState([]);\n\tconst [showFullnamePopup, setShowFullnamePopup] = useState(false);\n\n\t\n\n\n\tconst [showModal, setShowModal] = useState(false);\n\tconst [displayDataIndex, setDisplayDataIndex] = useState(-1);\n\tconst [min, setMin] = useState(0);\n\tconst customerServiceUrl = \"/livechat\";\n\tconst [totalWithdrawAmountToday, setTotalWithdrawAmountToday] = useState(0);\n\tconst [totalWithdrawCountToday, setTotalWithdrawCountToday] = useState(0);\n\tconst [isWithdrawalLimitError, setIsWithdrawalLimitError] = useState(0);\n\tconst [remainingWithdrawalLimit, setRemainingWithdrawalLimit] = useState(0);\n\tconst [memberWithdrawalAmountLimit, setMemberWithdrawalAmountLimit] = useState(0);\n\tconst specificElementRef = useRef(null); \n\n const [isWithdrawLoading, setIsWithdrawLoading] = useState(false)\n\n\tuseEffect(() => {\n\t\tinit();\n\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (member) {\n\t\t\tif (!stringIsNullOrEmpty(member.userFullName)) {\n\t\t\t\tsetAccountHolderName(member.userFullName);\n\t\t\t}\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(userFullName)) {\n\t\t\t\tsetAccountHolderName(userFullName);\n\t\t\t}\n\t\t}\n\t}, [member, userFullName]);\n\n\tuseEffect(() => {\n\t\tconst checkElementRendered = () => {\n\t\t if (specificElementRef.current) {\n\t\t\tonRenderComplete();\n\t\t }\n\t\t};\n\t\n\t\tcheckElementRendered();\n\t }, [onRenderComplete]);\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tclearTimeout(countdownTime);\n\t\t\tsetCountdownTime(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t\t\tlet tempX = moment.duration(tempPeriod);\n\t\t\t\t\tlet tempMM = Math.floor(tempX[\"_milliseconds\"] / 60);\n\t\t\t\t\tlet tempSS = tempX[\"_milliseconds\"] - tempMM * 60;\n\t\t\t\t\tsetTimeDiffSeconds(tempX[\"_milliseconds\"]);\n\t\t\t\t\tlet tempStr =\n\t\t\t\t\t\t(tempMM.toString().length > 1 ? tempMM : \"0\" + tempMM) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"MINUTES\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(tempSS.toString().length > 1 ? tempSS : \"0\" + tempSS) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"SECOND\");\n\t\t\t\t\tsetCountdownStr(tempStr);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tuseEffect(() => {\n\t\tgetMemberBankAccount();\n\t\tgetBankList();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (bankOption && !stringIsNullOrEmpty(bankOption)) {\n\t\t\tif (!stringIsNullOrEmpty(selectedBank)) {\n\t\t\t\tconst bankInfo = bankOption.filter(\n\t\t\t\t\t(x) => x.value == value\n\t\t\t\t)[0];\n\n\t\t\t\tif(bankInfo){\n\t\t\t\t\tsetMin(bankInfo[\"min\"]);\n\n\t\t\t\t}\n\t\t\t\t// console.log(bankInfo)\n\t\t\t}\n\t\t}\n\t}, [bankOption, value]);\n\n\tuseEffect(() => {\n\t\tif(!isEmpty(member)){\n\t\t\t// console.log(member.membership.maxWithdrawalAmount);\n\t\t\t// console.log(member.membership.maxWithdrawalCount);\n\t\t\t// console.log(totalWithdrawAmountToday);\n\t\t\t// console.log(totalWithdrawCountToday);\n\t\t\tsetMemberWithdrawalAmountLimit(member.membership.maxWithdrawalAmount)\n\t\t\t////error 1 - Withdrawal limit amount is maxed out for today\n\t\t\t////error 2 - Withdrawal limit count is maxed out for today\n\t\t\t////error 3 - if value of input amount is greater than the withdraw amount limit remaining\n\t\t\tif (totalWithdrawAmountToday >= member.membership.maxWithdrawalAmount && member.membership.maxWithdrawalAmount > 0){\n\t\t\t\tsetIsWithdrawalLimitError(1);\n\t\t\t} else if (member.membership.maxWithdrawalCount >0 && totalWithdrawCountToday >= member.membership.maxWithdrawalCount && member.membership.maxWithdrawalCount != -1) {\n\t\t\t\tsetIsWithdrawalLimitError(2);\n\t\t\t} else {\n\t\t\t\tconst withdrawAmountLimitRemainingToday = member.membership.maxWithdrawalAmount - totalWithdrawAmountToday;\n\t\t\t\t// console.log(withdrawAmountLimitRemainingToday)\n\t\t\t\t// console.log(amount)\n\t\t\t\tif (withdrawAmountLimitRemainingToday < amount && member.membership.maxWithdrawalAmount > 0){\n\t\t\t\t\tsetRemainingWithdrawalLimit(withdrawAmountLimitRemainingToday);\n\t\t\t\t\tsetIsWithdrawalLimitError(3);\n\t\t\t\t\tconsole.log(\"the amount is greater than your daily limit to withdraw, here's your remaining total amount to withdraw for today - \" + withdrawAmountLimitRemainingToday);\n\t\t\t\t} else {\n\t\t\t\t\tsetIsWithdrawalLimitError(0);\n\t\t\t\t}\n\t\t\t}\n\t\t\n\t\t\n\t\t}\n\t\t\n\t}, [totalWithdrawCountToday,totalWithdrawAmountToday,member, amount]);\n\n\tasync function init() {\n\t\ttry {\n\t\t\tif (_userData[\"walletBalance\"] == 0) {\n\t\t\t\tsetIsInsufficientAmount(true);\n\t\t\t}\n\n\t\t\t// CHRIS 20241206 - Removing check for pending transaction because WithdrawalMethod already has it\n\t\t\t// var oktocont = true;\n\t\t\t// setHeaderMsg(\"\");\n\t\t\t// var pendingTransactionJson = await ApiEngine.get(\n\t\t\t// \tApiUrl._API_GET_PENDING_TRANSACTION\n\t\t\t// );\n\t\t\t// if (pendingTransactionJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t// \tif (pendingTransactionJson[ApiKey._API_DATA_KEY] != null) {\n\t\t\t// \t\tclearTimeout(countdownTime);\n\t\t\t// \t\tlet tempS = parseInt(\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"timeSpan\"]\n\t\t\t// \t\t);\n\t\t\t// \t\tsetTransType(\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"transType\"]\n\t\t\t// \t\t);\n\t\t\t// \t\tsetTimeDiffSeconds(tempS);\n\t\t\t// \t\tsetCountdownPeriod(tempS < 0 ? 0 : tempS);\n\t\t\t// \t\tsetHasPendingTxn(true);\n\t\t\t// \t\toktocont = false;\n\t\t\t// \t\tsetHeaderMsg(t(\"NEW_TXN_PROHIBITED\"));\n\t\t\t// \t}\n\t\t\t// } else {\n\t\t\t// \t_dispatch(\n\t\t\t// \t\tshowResponseMessage(\n\t\t\t// \t\t\tfalse,\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t// \t\t)\n\t\t\t// \t);\n\t\t\t// }\n\n\t\t\t// //KT: IF PENDING TXN FOUND, WHY CONTINUE AND STILL GET DATA WE DONT NEED?\n\t\t\t// if (!oktocont) {\n\t\t\t// \treturn false;\n\t\t\t// }\n\n\t\t\t// let tempMemberData = {};\n\t\t\tgetLatestRolloverRecord(); //KT: WHY DO WE NEED TO CALL TWICE?\n\t\t\t// var rolloverJson = await ApiEngine.get(ApiUrl._API_CHECK_MEMBER_ROLLOVER); //KT: AND CALL THIS? \n\t\t\tgetMemberDetails();\n\t\t\t// if (rolloverJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t// var memberJson = await ApiEngine.get(\n\t\t\t\t// \tApiUrl._API_GET_MEMBER_DETAILS\n\t\t\t\t// );\n\n\t\t\t\t// if (memberJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t// \tconsole.log('info', memberJson[ApiKey._API_DATA_KEY])\n\t\t\t\t// \tsetMember(memberJson[ApiKey._API_DATA_KEY]);\n\t\t\t\t// \ttempMemberData = memberJson[ApiKey._API_DATA_KEY];\n\t\t\t\t// \tsetTempPhoneNum(\n\t\t\t\t// \t\ttempMemberData[\"phoneNumber\"].replace(\n\t\t\t\t// \t\t\ttempMemberData[\"phoneNumber\"].substr(\n\t\t\t\t// \t\t\t\t3,\n\t\t\t\t// \t\t\t\ttempMemberData[\"phoneNumber\"].length - 7\n\t\t\t\t// \t\t\t),\n\t\t\t\t// \t\t\ttempMemberData[\"phoneNumber\"]\n\t\t\t\t// \t\t\t\t.substr(1, tempMemberData[\"phoneNumber\"].length - 4)\n\t\t\t\t// \t\t\t\t.replace(/./g, \"*\")\n\t\t\t\t// \t\t)\n\t\t\t\t// \t);\n\t\t\t\t// } else {\n\t\t\t\t// \tthrow memberJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t\t// }\n\n\t\t\t\t///get total withdrawal\n\t\t\t\tlet tempWithdData = {};\n\t\t\t\tvar transactionTodayJson = await ApiEngine.get(\n\t\t\t\t\tApiUrl._API_GET_TRANSACTION_TODAY_BY_USER\n\t\t\t\t);\n\n\t\t\t\tif (transactionTodayJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t\n\t\t\t\t\tlet transactionsToday = transactionTodayJson[ApiKey._API_DATA_KEY];\n\t\t\t\t\tif(transactionsToday){\n\t\t\t\t\t\tconst totalAmount = transactionsToday.reduce((accumulator, transactionsToday) => {\n\t\t\t\t\t\t\treturn accumulator + transactionsToday.amount;\n\t\t\t\t\t\t}, 0);\n\t\t\t\t\t\tsetTotalWithdrawAmountToday(totalAmount);\n\t\t\t\t\t\tsetTotalWithdrawCountToday(transactionsToday.length);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\tthrow transactionTodayJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t\t}\n\n\n\t\t\t\t\n\n\n\t\t\t\t// getLatestRolloverRecord(); //KT: WHY DO WE NEED TO CALL TWICE?\n\t\t\t\tlet responseJson = await ApiEngine.get(\n\t\t\t\t\tApiUrl._API_GET_USER_BANK + \"?type=WITHDRAWAL\"\n\t\t\t\t);\n\t\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\tlet bankList = [];\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t\t\t\t\t\tbankList.push({\n\t\t\t\t\t\t\tlabel: bankAccount.bankName,\n\t\t\t\t\t\t\tvalue: bankAccount.id,\n\t\t\t\t\t\t\tbankName: bankAccount.bankName,\n\t\t\t\t\t\t\tbankCode: bankAccount.bankCode,\n\t\t\t\t\t\t\tmin: bankAccount.minimumWithdrawal,\n\t\t\t\t\t\t\tmax: bankAccount.maximumWithdrawal,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tsetBankOption(bankList);\n\t\t\t\t} else {\n\t\t\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t\t}\n\n\t\t\t\tgetMemberBankAccount();\n\t\t\t\t_dispatch(heartBeat());\n\t\t\t// } else {\n\t\t\t// \tsetHasRolloverBal(true);\n\t\t\t// \tthrow rolloverJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t// }\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetInitDone(true);\n\t}\n\n\tasync function getMemberDetails() {\n\t\tawait _dispatch(bindMember)\n\n\t\t\n\t\t// let tempMemberData = {};\n\n\t\t// var memberJson = await ApiEngine.get(\n\t\t// \tApiUrl._API_GET_MEMBER_DETAILS\n\t\t// );\n\n\t\t// if (memberJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \tconsole.log('info', memberJson[ApiKey._API_DATA_KEY])\n\t\t// \tsetMember(memberJson[ApiKey._API_DATA_KEY]);\n\t\t// \ttempMemberData = memberJson[ApiKey._API_DATA_KEY];\n\t\t// \tsetTempPhoneNum(\n\t\t// \t\ttempMemberData[\"phoneNumber\"].replace(\n\t\t// \t\t\ttempMemberData[\"phoneNumber\"].substr(\n\t\t// \t\t\t\t3,\n\t\t// \t\t\t\ttempMemberData[\"phoneNumber\"].length - 7\n\t\t// \t\t\t),\n\t\t// \t\t\ttempMemberData[\"phoneNumber\"]\n\t\t// \t\t\t\t.substr(1, tempMemberData[\"phoneNumber\"].length - 4)\n\t\t// \t\t\t\t.replace(/./g, \"*\")\n\t\t// \t\t)\n\t\t// \t);\n\t\t// } else {\n\t\t// \tthrow memberJson[ApiKey._API_MESSAGE_KEY];\n\t\t// }\n\t}\n\n\tasync function getLatestRolloverRecord() {\n\t\tvar responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_LATEST_ROLLOVER_RECORD\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetTransactionData(responseJson[ApiKey._API_DATA_KEY]);\n\t\t}\n\t}\n\n\tasync function getMemberBankAccount() {\n\t\ttry {\n\t\t\tlet responseJson = await ApiEngine.get(\n\t\t\t\tApiUrl._API_GET_MEMBER_BANK_ACCOUNT_BY_MEMBER\n\t\t\t);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tconst data = responseJson[ApiKey._API_DATA_KEY]?.[0];\n\n\t\t\t\tif (!stringIsNullOrEmpty(data)) {\n\t\t\t\t\tsetAccountNumber(data[\"accountNumber\"]);\n\t\t\t\t\t// setValue('addAccountNumber')\n\t\t\t\t\tsetValue(data[\"bankId\"]);\n\n\t\t\t\t\tlet bankAccountList = [];\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t\t\t\t\t\tbankAccountList.push({\n\t\t\t\t\t\t\tlabel: bankAccount.bankName + \" - \" + bankAccount.accountNumber,\n\t\t\t\t\t\t\tvalue: bankAccount.id,\n\t\t\t\t\t\t\tbankId: bankAccount.bankId,\n\t\t\t\t\t\t\taccountHolderName: bankAccount.accountHolderName,\n\t\t\t\t\t\t\taccNum: bankAccount.accountNumber,\n\t\t\t\t\t\t\tbankName: bankAccount.bankName,\n\t\t\t\t\t\t\tbankCode: bankAccount.bankCode,\n\t\t\t\t\t\t\tisDefault: bankAccount.isDefault,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\tsetSelectedBank(bankAccountList?.[0]);\n\t\t\t\t\tsetMemberBankAccounts(bankAccountList);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t}\n\n\tasync function submitWithdrawal() {\n\t\t// _dispatch(setBusy());\n\t\t// console.log(memberBankAccounts)\n\t\t_dispatch(setBusyLoading(true))\n\n\t\tsetIsWithdrawLoading(true)\n\t\tawait getMemberDetails();\n\n\t\t// if(isEmpty(member.email) || isEmpty(member.phoneNumber))\n\t\tif(isEmpty(member.phoneNumber))\n\t\t{\n\t\t\t_dispatch(setCompleteInfoModal(true))\n\n\t\t\tsetIsWithdrawLoading(false)\n\t\t\t\t\t_dispatch(setBusyLoading(false))\n\n\n\t\t\treturn false\n\t\t}\n\n\t\t\t// return false\n\n\n\t\t// _dispatch(setBusyLoading(true))\n\n\t\tif (stringIsNullOrEmpty(memberBankAccounts)) {\n\t\t\tlet createAccParams = {\n\t\t\t\tbankId: value,\n\t\t\t\taccountNumber: accountNumber,\n\t\t\t\taccountHolderName: accountHolderName,\n\t\t\t};\n\n\n\t\t\tlet params = {\n\t\t\t\tuserFullName: accountHolderName,\n\t\t\t};\n\n\t\t\t\n\t\t\tlet responseJson = await ApiEngine.post(\n\t\t\t\tApiUrl._API_UPDATE_MEMBER_USERFULLNAME,\n\t\t\t\tcreateFormBody(params)\n\t\t\t);\n\n\t\t\tif (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowResponseMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tlet createAccResponseJson = await ApiEngine.post(\n\t\t\t\tApiUrl._API_CREATE_OR_UPDATE_MEMBER_BANK_ACCOUNT,\n\t\t\t\tcreateMultiPartFormBody(createAccParams)\n\t\t\t);\n\n\t\t\tif (createAccResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tlet createTransParams = {\n\t\t\t\t\ttransactionTypeId: TransactionType._WITHDRAWAL,\n\t\t\t\t\tamount: amount,\n\t\t\t\t\tchannel: \"Bank Transfer\",\n\t\t\t\t\tpanel: PanelType._MEMBERSITE,\n\t\t\t\t\tbankAccountNumber: accountNumber,\n\t\t\t\t\tbankAccountHolderName: accountHolderName,\n\t\t\t\t\tbankName: selectedBank.bankName,\n\t\t\t\t\tbankCode: selectedBank.bankCode,\n\t\t\t\t};\n\n\t\t\t\tlet createTransResponseJson = await ApiEngine.post(\n\t\t\t\t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t\t\t\tcreateFormBody(createTransParams)\n\t\t\t\t);\n\n\t\t\t\tif (createTransResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\tsetShowPinEntry(false);\n\t\t\t\t\tsetWithdrawalAmount(amount);\n\t\t\t\t\tsetIsWithdrawalSuccess(true);\n\t\t\t\t\tsetWithdrawalDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t\t\t\tsetTranscactionNumber(createTransResponseJson[ApiKey._API_DATA_KEY]);\n\t\t\t\t\t_dispatch(heartBeat());\n\t\t\t\t\tinit();\n\t\t\t\t} else {\n\t\t\t\t\t_dispatch(\n\t\t\t\t\t\tshowResponseMessage(\n\t\t\t\t\t\t\tcreateTransResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\t\tcreateTransResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tsetPinEntered(false);\n\t\t\t\tsetPinNumberFinal(\"\");\n\t\t\t\tsetEnteredPinNumberFinal(\"\");\n\t\t\t\tsetPinNumberFinalFocused(0);\n\t\t\t\tsetShowPinEntry(false);\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowResponseMessage(\n\t\t\t\t\t\tcreateAccResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tcreateAccResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\n\t\t\tlet createTransParams2 = {\n\t\t\t\ttransactionTypeId: TransactionType._WITHDRAWAL,\n\t\t\t\tamount: amount,\n\t\t\t\tchannel: \"Bank Transfer\",\n\t\t\t\tpanel: PanelType._MEMBERSITE,\n\t\t\t\tbankAccountNumber: accountNumber,\n\t\t\t\tbankAccountHolderName: accountHolderName,\n\t\t\t\tbankName: selectedBank.bankName,\n\t\t\t\tbankCode: selectedBank.bankCode,\n\t\t\t};\n\n\t\t\tlet createTransResponseJson = await ApiEngine.post(\n\t\t\t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t\t\tcreateFormBody(createTransParams2)\n\t\t\t);\n\n\t\t\tif (createTransResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetShowPinEntry(false);\n\t\t\t\tsetWithdrawalAmount(amount);\n\t\t\t\tsetIsWithdrawalSuccess(true);\n\t\t\t\tsetWithdrawalDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t\t\tsetTranscactionNumber(createTransResponseJson[ApiKey._API_DATA_KEY]);\n\t\t\t\t_dispatch(heartBeat());\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowResponseMessage(\n\t\t\t\t\t\tcreateTransResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tcreateTransResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\tsetPinEntered(false);\n\t\t\tsetPinNumberFinal(\"\");\n\t\t\tsetEnteredPinNumberFinal(\"\");\n\t\t\tsetPinNumberFinalFocused(0);\n\t\t\tsetShowPinEntry(false);\n\t\t}\n\n\t\tgetMemberBankAccount();\n\t\t// _dispatch(setIdle());\n\t\tsetIsWithdrawLoading(false)\n\n\t\t_dispatch(setBusyLoading(false))\n\t\ttriggerParentFunction();\n\t}\n\tconst triggerParentFunction = () => {\n if (onAfterHandleCheck) {\n onAfterHandleCheck(); // Call the first parent function\n }\n };\n\n\tasync function onSubmit(data, e) {\n\t\tsubmitWithdrawal();\n\t\t// setShowPinEntry(true);\n\t}\n\n\tconst getBankList = async () => {\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_USER_BANK + \"?type=WITHDRAWAL\"\n\t\t);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet bankList = [];\n\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t\t\t\tbankList.push({\n\t\t\t\t\tlabel: bankAccount.bankName,\n\t\t\t\t\tvalue: bankAccount.id,\n\t\t\t\t\tbankName: bankAccount.bankName,\n\t\t\t\t\tbankCode: bankAccount.bankCode,\n\t\t\t\t\tmin: bankAccount.minimumWithdrawal,\n\t\t\t\t\tmax: bankAccount.maximumWithdrawal,\n\t\t\t\t});\n\t\t\t});\n\t\t\tsetBankOption(bankList);\n\t\t} else {\n\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t}\n\t};\n\n\tasync function submitFullName(data) {\n\t\tlet params = {\n\t\t\tuserFullName: data.userFullName,\n\t\t};\n\n\t\tlet responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_UPDATE_MEMBER_USERFULLNAME,\n\t\t\tcreateFormBody(params)\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t)\n\t\t\t);\n\t\t\tsetShowFullnamePopup(false);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\t// init();\n\t}\n\n\tconst handleDownlineOnClick = async (index, e) => {\n\t\t_dispatch(setBusy());\n\t\te.preventDefault();\n\t\tif (displayDataIndex === index) {\n\t\t\tsetDisplayDataIndex(-1);\n\t\t} else {\n\t\t\tsetDisplayDataIndex(index);\n\t\t}\n\t\t_dispatch(setIdle());\n\t};\n\n\tfunction handleSelectedBank(value) {\n\t\tconst bank = bankOption.filter((x) => x.value == value)[0];\n\n\t\tsetSelectedBank(bank);\n\t\tsetValue(value);\n\t}\n\n\n\n\treturn (\n\t\t<>\n\t\t\t{/* {hasPendingTxn && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{timeDiffSeconds > 0\n\t\t\t\t\t\t\t\t\t? t(\"PLEASE_WAIT\") +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\tcountdownStr +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\t(transType === \"Deposit\"\n\t\t\t\t\t\t\t\t\t\t\t? t(\"FOR_DEPOSIT_APPROVAL\")\n\t\t\t\t\t\t\t\t\t\t\t: t(\"FOR_WITHDRAWAL_APPROVAL\"))\n\t\t\t\t\t\t\t\t\t: headerMsg}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)} */}\n\t\t\t{success && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t(successMsg)}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{!hasPendingTxn && !showModal && initDone && isWithdrawalLimitError != 1 && isWithdrawalLimitError != 2 && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"BALANCE\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t_userData[\"walletBalance\"],\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"MIN_WITHDRAWAL\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{min ?\n\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\tmin,\n\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\"-\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"NOTES\")} : \n\t\t\t\t\t\t\t

{t(\"WITHDRAWAL_NOTES\") + \".\"}

\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{stringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t? t(\"BANK_ACC_WARNING\") + \".\"\n\t\t\t\t\t\t\t\t\t: t(\"WITHDRAWAL_WARNING\") + \".\"}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t(\"BANK_ACCOUNT_INFO\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true) &&\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tname=\"bank\"\n\t\t\t\t\t\t\t\t\t\t\tref={register({\n\t\t\t\t\t\t\t\t\t\t\t\trequired: \"FIELD_REQUIRED\",\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tdefaultValue={value}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={t(\"PLEASE_SELECT_BANK\")}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetValue(\"bank\",e.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\thandleSelectedBank(e.target.value);\n\t\t\t\t\t\t\t\t\t\t\t\tclearErrors(\"bank\");\n\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{bankOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{errors.bank&& (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.bank.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t setAccountHolderName(e.target.value)}\n\n\t\t\t\t\t\t\t\t\t\t\treadOnly={\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(_userData.userFullName) && _userData.walletBalance > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t\t\t\t\t\t: true\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.addAccountHolderName&& (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.addAccountHolderName.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t_userData.walletBalance <= 0 && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{t('ACCOUNT_BALANCE_ZERO')}\n\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t{ stringIsNullOrEmpty(_userData.userFullName) && _userData.walletBalance > 0 &&\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true) &&\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t\t\t: { pointerEvents: \"none\" }\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => setAccountNumber(e.target.value)}\n\t\t\t\t\t\t\t\t\t\t\treadOnly={\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts) &&\n\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t\t\t\t\t\t: true\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.addAccountNumber&& (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.addAccountNumber.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
{companyCurrency}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? parseInt(amount) // Show without decimals for AUD\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: Number(amount) > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Number(amount).toFixed(2) // Show decimals for other currencies\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tt(\"PLEASE_ENTER_AMOUNT\")\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_userData[\"walletBalance\"] > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"disabled-action\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet amount = e.target.value\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.replace(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/[a-zA-Z`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?(kr|$|£|€)]*/g,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.trim();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet value = 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (companyCurrency === \"PKR\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = Number(parseFloat(amount)).toFixed(0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = Number(parseFloat(amount) / 100).toFixed(2);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// let value = Number(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tparseFloat(amount) / 100\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// ).toFixed(2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(value) >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(_userData.walletBalance)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = _userData.walletBalance;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAmount(value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.target.setSelectionRange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue.length,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!hasRolloverBal &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"disabled\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{isWithdrawalLimitError == 3 && (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"WITHDRAW_LIMIT_ERROR\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tremainingWithdrawalLimit: remainingWithdrawalLimit,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmemberWithdrawalAmountLimit: memberWithdrawalAmountLimit,\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{/* {transactionData &&\n\t\t\t\t\t\t\ttransactionData.length > 0 &&\n\t\t\t\t\t\t\tmap(transactionData, (item, index) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleDownlineOnClick(index, e);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"date\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LATEST_TOP_UP_AND_BONUS\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"amount\"] === item[\"amount\"] && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(item[\"amount\"]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"amount\"] === item[\"amount\"] && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{displayDataIndex === index ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ROLLOVER\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"isLatestRecord\"] == 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? item[\"rolloverProgress\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"rolloverTarget\"]}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/ {item[\"rolloverTarget\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})} */}\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* ////error 1 - Withdrawal limit amount is maxed out for today */}\n\t\t\t{!hasPendingTxn && !showModal && initDone && isWithdrawalLimitError == 1 && (\n\t\t\t\t<>\n\t\t\t\t\t
{t(\"WITHDRAWAL_LIMIT_AMOUNT_MAX_ERROR\")}
\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* ////error 2 - Withdrawal limit count is maxed out for today */}\n\t\t\t{ !hasPendingTxn && !showModal && initDone && isWithdrawalLimitError == 2 && (\n\t\t\t\t<>\n\t\t\t\t\t
{t(\"WITHDRAWAL_LIMIT_COUNT_MAX_ERROR\")}
\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\n\t\t\t{/* WITHDRAW TRANSACTION SUCCESS START */}\n\t\t\t {\n\t\t\t\t\tsetIsWithdrawalSuccess(false);\n\t\t\t\t}}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"WITHDRAWAL_REQUEST_SUBMMITED\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"REQUEST_RECEIVED\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetIsWithdrawalSuccess(false);\n\t\t\t\t\t\t\t\t\t\t\tsetSelected(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"GOT_IT\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{/* WITHDRAW TRANSACTION SUCCESS END */}\n\t\t\t{/* SUCESS MODAL START */}\n\t\t\t {\n\t\t\t\t\tsetAddSuccessModelShow(false);\n\t\t\t\t}}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

{action} successful!

\n\t\t\t\t\t\t\t\t\t

{action} is completed!

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetAddSuccessModelShow(false);\n\t\t\t\t\t\t\t\t\t\t\tsetSelected(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"GOT_IT\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{/* SUCCESS MODAL END */}\n\t\t\t{/* */}\n\n\t\t\n\t);\n};\n\nexport default WithdrawByBankTransfer;\n","import React, { useCallback, useEffect, useState, useRef } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport Input from \"../../../components/custom/Input\";\nimport { useForm } from \"react-hook-form\";\nimport { createMultiPartFormBody } from \"../../../util/Util\";\nimport { includes, isEmpty } from \"lodash\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport Keyboard from \"react-simple-keyboard\";\nimport PinInput from \"react-pin-input\";\nimport \"react-swipeable-list/dist/styles.css\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n\tcreateFormBody,\n} from \"../../../util/Util\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tAlertTypes,\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tbindMember,\n\tsetBusy,\n\tsetBusyLoading,\n\tsetCompleteInfoModal,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n} from \"../../../redux/AppAction\";\nimport \"react-simple-keyboard/build/css/index.css\";\nimport StyledSelect from \"../../../components/custom/StyledSelect\";\nimport moment from \"moment\";\nimport { heartBeat } from \"../../../redux/AuthAction\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport Accordion from \"react-bootstrap/Accordion\";\nimport LoadingOverlay from \"react-loading-overlay\";\nimport classNames from \"classnames\";\nimport { Spinner } from \"react-bootstrap\";\nimport CompleteInfoModal from \"components/template_1/CompleteInfoModal\";\nimport VerifyPhoneNumberModal from \"components/template_1/VerifyPhoneNumberModal\";\n\nconst WithdrawByPhoneNumber = ({type, onRenderComplete, instantBankSetting, instantPayGatewayId, ...props}) => {\n\tvar { t, i18n } = useTranslation();\n\tvar _history = useHistory();\n\tlet _location = useLocation();\n\tvar _userData = useSelector((state) => state.authState.userData);\n\tvar [action, setAction] = useState([]);\n\tlet _dispatch = useDispatch();\n\tconst [addSuccessModelShow, setAddSuccessModelShow] = useState(false);\n\tconst userFullName = useSelector(\n\t\t(state) => state.authState.userData.userFullName\n\t);\n\tconst [selected, setSelected] = useState(false);\n\tconst [selectedBank, setSelectedBank] = useState([]);\n\tconst [selectedPhoneNumber, setSelectedPhoneNumber] = useState(null);\n\tconst [amount, setAmount] = useState(0);\n\tconst [value, setValue] = useState(\"\");\n\tconst [accountNumber, setAccountNumber] = useState(\"\");\n\tconst [accountHolderName, setAccountHolderName] = useState(\"\");\n\tconst [headerMsg, setHeaderMsg] = useState(\"\");\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [transType, setTransType] = useState(\"\");\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst [isInsufficientAmount, setIsInsufficientAmount] = useState(false);\n\tconst companyCurrency = useSelector((state) => state.appState.companyCurrency);\n\n\t// ROSE START HERE\n\tconst {\n\t\thandleSubmit,\n\t\tregister,\n\t\tcontrol,\n\t\twatch,\n\t\tgetValues,\n\t\terrors,\n\t\tclearErrors,\n\t\treset,\n\t\ttrigger,\n\t} = useForm();\n\n\tconst [bankOption, setBankOption] = useState([]);\n\tconst [phoneOption, setPhoneOption] = useState([]);\n\tconst [memberBankAccounts, setMemberBankAccounts] = useState([]);\n\tconst [transcactionNumber, setTranscactionNumber] = useState();\n\tconst [isWithdrawalSuccess, setIsWithdrawalSuccess] = useState(false);\n\tconst [withdrawalAmount, setWithdrawalAmount] = useState(0);\n\tconst [withdrawalDate, setWithdrawalDate] = useState();\n\t// const [member, setMember] = useState();\n\tconst member = useSelector((state) => state.appState.member);\n\n\tconst [showPinEntry, setShowPinEntry] = useState(false);\n\tconst [showVerifyPhone, setShowVerifyPhone] = useState(false);\n\tconst [changePinShow, setChangePinShow] = useState(false);\n\tconst _COUNTDOWN_PERIOD = 120;\n\tconst _SECONDS_IN_MS = 1000;\n\tconst _ALERT_TIMEOUT = 3000;\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst mainForm = useRef(null);\n\n\tconst [success, setSuccess] = useState(false);\n\tconst [successMsg, setSuccessMsg] = useState(\"\");\n\n\tconst [pinEntered, setPinEntered] = useState(false);\n\t\n\tconst [pinNumberFinal, setPinNumberFinal] = useState(\"\");\n\tconst [enteredPinNumberFinal, setEnteredPinNumberFinal] = useState(\"\");\n\tconst [pinNumberFinalFocused, setPinNumberFinalFocused] = useState(0);\n\n\tconst [initDone, setInitDone] = useState(false);\n\tconst [hasRolloverBal, setHasRolloverBal] = useState(false);\n\tconst [memberEmail,setMemberEmail] = useState()\n\n\tconst [memberPhone,setMemberPhone] = useState()\n\n\n\tconst [tempPhoneNum, setTempPhoneNum] = useState(\"\");\n\tconst verifyState = {\n\t\tbutton: \"1\",\n\t};\n\n\tconst walletOption = [\n\t\t{\n\t\t\tvalue: \"bkash\",\n\t\t\tlabel: \"Bkash\"\n\t\t},\n\t\t{\n\t\t\tvalue: \"rocket\",\n\t\t\tlabel: \"Rocket\"\n\t\t},\n\t\t{\n\t\t\tvalue: \"nagad\",\n\t\t\tlabel: \"Nagad\"\n\t\t},\n\t];\n\n\tconst [transactionData, setTransactionData] = useState([]);\n\tconst [showFullnamePopup, setShowFullnamePopup] = useState(false);\n\n\t\n\n\n\tconst [showModal, setShowModal] = useState(false);\n\tconst [displayDataIndex, setDisplayDataIndex] = useState(-1);\n\tconst [min, setMin] = useState(0);\n\tconst customerServiceUrl = \"/livechat\";\n\tconst [totalWithdrawAmountToday, setTotalWithdrawAmountToday] = useState(0);\n\tconst [totalWithdrawCountToday, setTotalWithdrawCountToday] = useState(0);\n\tconst [isWithdrawalLimitError, setIsWithdrawalLimitError] = useState(0);\n\tconst [remainingWithdrawalLimit, setRemainingWithdrawalLimit] = useState(0);\n\tconst [memberWithdrawalAmountLimit, setMemberWithdrawalAmountLimit] = useState(0);\n\tconst specificElementRef = useRef(null); \n\n const [isWithdrawLoading, setIsWithdrawLoading] = useState(false)\n\tconst [selectedEwallet, setSelectedEwallet] = useState();\n\tconst [isDirect, setIsDirect] = useState(true);\n\tconst [showVerifyOtpModal, setShowVerifyOtpModal] = useState(false);\n\tconst [phoneNumType, setPhoneNumType] = useState(\"\");\n\n\tuseEffect(() => {\n\t\tinit();\n\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (member) {\n\t\t\tif (!stringIsNullOrEmpty(member.userFullName)) {\n\t\t\t\tsetAccountHolderName(member.userFullName);\n\t\t\t}\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(userFullName)) {\n\t\t\t\tsetAccountHolderName(userFullName);\n\t\t\t}\n\t\t}\n\t}, [member, userFullName]);\n\n\tuseEffect(() => {\n\t\tconst checkElementRendered = () => {\n\t\t if (specificElementRef.current) {\n\t\t\tonRenderComplete();\n\t\t }\n\t\t};\n\t\n\t\tcheckElementRendered();\n\t}, [onRenderComplete]);\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tclearTimeout(countdownTime);\n\t\t\tsetCountdownTime(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t\t\tlet tempX = moment.duration(tempPeriod);\n\t\t\t\t\tlet tempMM = Math.floor(tempX[\"_milliseconds\"] / 60);\n\t\t\t\t\tlet tempSS = tempX[\"_milliseconds\"] - tempMM * 60;\n\t\t\t\t\tsetTimeDiffSeconds(tempX[\"_milliseconds\"]);\n\t\t\t\t\tlet tempStr =\n\t\t\t\t\t\t(tempMM.toString().length > 1 ? tempMM : \"0\" + tempMM) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"MINUTES\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(tempSS.toString().length > 1 ? tempSS : \"0\" + tempSS) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"SECOND\");\n\t\t\t\t\tsetCountdownStr(tempStr);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tuseEffect(() => {\n\t\t// getMemberBankAccount();\n\t\t// getBankList();\n\t}, []);\n\n\tuseEffect(()=>{\n\t\tconsole.log(member)\n\t},[member])\n\n\t// useEffect(() => {\n\t// \tif (bankOption && !stringIsNullOrEmpty(bankOption)) {\n\t// \t\tif (!stringIsNullOrEmpty(selectedBank)) {\n\t// \t\t\tconst bankInfo = bankOption.filter(\n\t// \t\t\t\t(x) => x.value == value\n\t// \t\t\t)[0];\n\t// \t\t\tconsole.log(bankOption)\n\t// \t\t\tconsole.log(value)\n\n\t// \t\t\tif(bankInfo){\n\t// \t\t\t\tsetMin(bankInfo[\"min\"]);\n\n\t// \t\t\t}\n\t// \t\t\t// console.log(bankInfo)\n\t// \t\t}\n\t// \t}\n\t// }, [bankOption, value]);\n\n\tuseEffect(() => {\n\t\tif(member && member.membership && member.membership.maxWithdrawalAmount && member.membership.maxWithdrawalCount){\n\t\t\t// console.log(member.membership.maxWithdrawalAmount);\n\t\t\t// console.log(member.membership.maxWithdrawalCount);\n\t\t\t// console.log(totalWithdrawAmountToday);\n\t\t\t// console.log(totalWithdrawCountToday);\n\t\t\tsetMemberWithdrawalAmountLimit(member.membership.maxWithdrawalAmount)\n\t\t\t////error 1 - Withdrawal limit amount is maxed out for today\n\t\t\t////error 2 - Withdrawal limit count is maxed out for today\n\t\t\t////error 3 - if value of input amount is greater than the withdraw amount limit remaining\n\t\t\tif (totalWithdrawAmountToday >= member.membership.maxWithdrawalAmount && member.membership.maxWithdrawalAmount > 0){\n\t\t\t\tsetIsWithdrawalLimitError(1);\n\t\t\t} else if (member.membership.maxWithdrawalCount >0 && totalWithdrawCountToday >= member.membership.maxWithdrawalCount && member.membership.maxWithdrawalCount != -1) {\n\t\t\t\tsetIsWithdrawalLimitError(2);\n\t\t\t} else {\n\t\t\t\tconst withdrawAmountLimitRemainingToday = member.membership.maxWithdrawalAmount - totalWithdrawAmountToday;\n\t\t\t\t// console.log(withdrawAmountLimitRemainingToday)\n\t\t\t\t// console.log(amount)\n\t\t\t\tif (withdrawAmountLimitRemainingToday < amount && member.membership.maxWithdrawalAmount > 0){\n\t\t\t\t\tsetRemainingWithdrawalLimit(withdrawAmountLimitRemainingToday);\n\t\t\t\t\tsetIsWithdrawalLimitError(3);\n\t\t\t\t\tconsole.log(\"the amount is greater than your daily limit to withdraw, here's your remaining total amount to withdraw for today - \" + withdrawAmountLimitRemainingToday);\n\t\t\t\t} else {\n\t\t\t\t\tsetIsWithdrawalLimitError(0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [totalWithdrawCountToday, totalWithdrawAmountToday, member, amount]);\n\n\tuseEffect(()=>{\n\t\tif(instantBankSetting){\n\t\t\tconsole.log('instantBankSetting', instantBankSetting)\n\t\t\tif (includes(instantBankSetting?.instantBankSettingModel[0]?.bankCode,'Ewallet') || includes(instantBankSetting?.instantBankSettingModel[0]?.bankCode,'ewallet')) {\n\t\t\t\tsetIsDirect(false)\n\t\t\t\t// DEBUG THIS\n\t\t\t} else {\n\t\t\t\tsetIsDirect(true)\n\t\t\t\tsetSelectedEwallet('bkash')\n\t\t\t}\n\t\t}\n\t}, [instantBankSetting])\n\n\tasync function init() {\n\t\ttry {\n\t\t\tif (_userData[\"walletBalance\"] == 0) {\n\t\t\t\tsetIsInsufficientAmount(true);\n\t\t\t}\n\n\t\t\t// Set min based on instant pay settings\n\t\t\tconst instantBankSettingModel = instantBankSetting?.instantBankSettingModel[0]\n\t\t\tsetMin(instantBankSettingModel?.minimumWithdrawal);\n\n\t\t\t// CHRIS 20241206 - Removing check for pending transaction because WithdrawalMethod already has it\n\t\t\t// var oktocont = true;\n\t\t\t// setHeaderMsg(\"\");\n\t\t\t// var pendingTransactionJson = await ApiEngine.get(\n\t\t\t// \tApiUrl._API_GET_PENDING_TRANSACTION\n\t\t\t// );\n\t\t\t// if (pendingTransactionJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t// \tif (pendingTransactionJson[ApiKey._API_DATA_KEY] != null) {\n\t\t\t// \t\tclearTimeout(countdownTime);\n\t\t\t// \t\tlet tempS = parseInt(\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"timeSpan\"]\n\t\t\t// \t\t);\n\t\t\t// \t\tsetTransType(\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_DATA_KEY][\"transType\"]\n\t\t\t// \t\t);\n\t\t\t// \t\tsetTimeDiffSeconds(tempS);\n\t\t\t// \t\tsetCountdownPeriod(tempS < 0 ? 0 : tempS);\n\t\t\t// \t\tsetHasPendingTxn(true);\n\t\t\t// \t\toktocont = false;\n\t\t\t// \t\tsetHeaderMsg(t(\"NEW_TXN_PROHIBITED\"));\n\t\t\t// \t}\n\t\t\t// } else {\n\t\t\t// \t_dispatch(\n\t\t\t// \t\tshowResponseMessage(\n\t\t\t// \t\t\tfalse,\n\t\t\t// \t\t\tpendingTransactionJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t// \t\t)\n\t\t\t// \t);\n\t\t\t// }\n\n\t\t\t// //KT: IF PENDING TXN FOUND, WHY CONTINUE AND STILL GET DATA WE DONT NEED?\n\t\t\t// if (!oktocont) {\n\t\t\t// \treturn false;\n\t\t\t// }\n\n\t\t\t// let tempMemberData = {};\n\t\t\t// getLatestRolloverRecord(); //KT: WHY DO WE NEED TO CALL TWICE?\n\t\t\t// var rolloverJson = await ApiEngine.get(ApiUrl._API_CHECK_MEMBER_ROLLOVER); //KT: AND CALL THIS? \n\t\t\tgetMemberDetails();\n\t\t\t// if (rolloverJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t// var memberJson = await ApiEngine.get(\n\t\t\t\t// \tApiUrl._API_GET_MEMBER_DETAILS\n\t\t\t\t// );\n\n\t\t\t\t// if (memberJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t// \tconsole.log('info', memberJson[ApiKey._API_DATA_KEY])\n\t\t\t\t// \tsetMember(memberJson[ApiKey._API_DATA_KEY]);\n\t\t\t\t// \ttempMemberData = memberJson[ApiKey._API_DATA_KEY];\n\t\t\t\t// \tsetTempPhoneNum(\n\t\t\t\t// \t\ttempMemberData[\"phoneNumber\"].replace(\n\t\t\t\t// \t\t\ttempMemberData[\"phoneNumber\"].substr(\n\t\t\t\t// \t\t\t\t3,\n\t\t\t\t// \t\t\t\ttempMemberData[\"phoneNumber\"].length - 7\n\t\t\t\t// \t\t\t),\n\t\t\t\t// \t\t\ttempMemberData[\"phoneNumber\"]\n\t\t\t\t// \t\t\t\t.substr(1, tempMemberData[\"phoneNumber\"].length - 4)\n\t\t\t\t// \t\t\t\t.replace(/./g, \"*\")\n\t\t\t\t// \t\t)\n\t\t\t\t// \t);\n\t\t\t\t// } else {\n\t\t\t\t// \tthrow memberJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t\t// }\n\n\t\t\t\t///get total withdrawal\n\t\t\t\tvar transactionTodayJson = await ApiEngine.get(\n\t\t\t\t\tApiUrl._API_GET_TRANSACTION_TODAY_BY_USER\n\t\t\t\t);\n\n\t\t\t\tif (transactionTodayJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t\t\n\t\t\t\t\tlet transactionsToday = transactionTodayJson[ApiKey._API_DATA_KEY];\n\t\t\t\t\tif(transactionsToday){\n\t\t\t\t\t\tconst totalAmount = transactionsToday.reduce((accumulator, transactionsToday) => {\n\t\t\t\t\t\t\treturn accumulator + transactionsToday.amount;\n\t\t\t\t\t\t}, 0);\n\t\t\t\t\t\tsetTotalWithdrawAmountToday(totalAmount);\n\t\t\t\t\t\tsetTotalWithdrawCountToday(transactionsToday.length);\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\tthrow transactionTodayJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t\t}\n\n\t\t\t\t// getLatestRolloverRecord(); //KT: WHY DO WE NEED TO CALL TWICE?\n\n\t\t\t\t// let responseJson = await ApiEngine.get(\n\t\t\t\t// \tApiUrl._API_GET_USER_BANK + \"?type=WITHDRAWAL\"\n\t\t\t\t// );\n\t\t\t\t// if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t// \tlet bankList = [];\n\t\t\t\t// \tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t\t\t\t// \t\tbankList.push({\n\t\t\t\t// \t\t\tlabel: bankAccount.bankName,\n\t\t\t\t// \t\t\tvalue: bankAccount.id,\n\t\t\t\t// \t\t\tbankName: bankAccount.bankName,\n\t\t\t\t// \t\t\tbankCode: bankAccount.bankCode,\n\t\t\t\t// \t\t\tmin: bankAccount.minimumWithdrawal,\n\t\t\t\t// \t\t\tmax: bankAccount.maximumWithdrawal,\n\t\t\t\t// \t\t});\n\t\t\t\t// \t});\n\t\t\t\t// \tsetBankOption(bankList);\n\t\t\t\t// } else {\n\t\t\t\t// \tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t\t// }\n\n\t\t\t\tgetMemberEwalletAccounts();\n\n\t\t\t\t// getMemberBankAccount();\n\t\t\t\t_dispatch(heartBeat());\n\t\t\t// } else {\n\t\t\t// \tsetHasRolloverBal(true);\n\t\t\t// \tthrow rolloverJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t// }\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetInitDone(true);\n\t}\n\n\tasync function getMemberEwalletAccounts() {\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_MEMBER_PHONE_NUMBERS + \"?isVerifyRequired=true\"\n\t\t);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet phoneNumberList = [];\n\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((phoneNumber) => {\n\t\t\t\tphoneNumberList.push({\n\t\t\t\t\tlabel: phoneNumber.phoneNumber,\n\t\t\t\t\tvalue: phoneNumber.id,\n\t\t\t\t\tid: phoneNumber.id, // CHRIS 20241206: added this here for convenience\n\t\t\t\t\tverified: phoneNumber.verified,\n\t\t\t\t\tphoneNumType: \"memberEwalletAccounts\", // member or memberEwalletAccounts\n\t\t\t\t});\n\t\t\t});\n\t\t\tsetPhoneOption(phoneNumberList);\n\t\t} else {\n\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t}\n\t}\n\n\tasync function getMemberDetails() {\n\t\tawait _dispatch(bindMember)\n\n\t\t// let tempMemberData = {};\n\n\t\t// var memberJson = await ApiEngine.get(\n\t\t// \tApiUrl._API_GET_MEMBER_DETAILS\n\t\t// );\n\n\t\t// if (memberJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \tconsole.log('info', memberJson[ApiKey._API_DATA_KEY])\n\t\t// \tsetMember(memberJson[ApiKey._API_DATA_KEY]);\n\t\t// \ttempMemberData = memberJson[ApiKey._API_DATA_KEY];\n\t\t// \tsetTempPhoneNum(\n\t\t// \t\ttempMemberData[\"phoneNumber\"].replace(\n\t\t// \t\t\ttempMemberData[\"phoneNumber\"].substr(\n\t\t// \t\t\t\t3,\n\t\t// \t\t\t\ttempMemberData[\"phoneNumber\"].length - 7\n\t\t// \t\t\t),\n\t\t// \t\t\ttempMemberData[\"phoneNumber\"]\n\t\t// \t\t\t\t.substr(1, tempMemberData[\"phoneNumber\"].length - 4)\n\t\t// \t\t\t\t.replace(/./g, \"*\")\n\t\t// \t\t)\n\t\t// \t);\n\t\t// } else {\n\t\t// \tthrow memberJson[ApiKey._API_MESSAGE_KEY];\n\t\t// }\n\t}\n\n\t// Chris 20241205: Disabled because not in use\n\t// async function getLatestRolloverRecord() {\n\t// \tvar responseJson = await ApiEngine.get(\n\t// \t\tApiUrl._API_GET_LATEST_ROLLOVER_RECORD\n\t// \t);\n\n\t// \tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\tsetTransactionData(responseJson[ApiKey._API_DATA_KEY]);\n\t// \t}\n\t// }\n\n\t// async function getMemberBankAccount() {\n\t// \ttry {\n\t// \t\tlet responseJson = await ApiEngine.get(\n\t// \t\t\tApiUrl._API_GET_MEMBER_BANK_ACCOUNT_BY_MEMBER\n\t// \t\t);\n\n\t// \t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\t\tconst data = responseJson[ApiKey._API_DATA_KEY]?.[0];\n\n\t// \t\t\tif (!stringIsNullOrEmpty(data)) {\n\t// \t\t\t\tsetAccountNumber(data[\"accountNumber\"]);\n\t// \t\t\t\t// setValue('addAccountNumber')\n\t// \t\t\t\tsetValue(data[\"bankId\"]);\n\n\t// \t\t\t\tlet bankAccountList = [];\n\t// \t\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t// \t\t\t\t\tbankAccountList.push({\n\t// \t\t\t\t\t\tlabel: bankAccount.bankName + \" - \" + bankAccount.accountNumber,\n\t// \t\t\t\t\t\tvalue: bankAccount.id,\n\t// \t\t\t\t\t\tbankId: bankAccount.bankId,\n\t// \t\t\t\t\t\taccountHolderName: bankAccount.accountHolderName,\n\t// \t\t\t\t\t\taccNum: bankAccount.accountNumber,\n\t// \t\t\t\t\t\tbankName: bankAccount.bankName,\n\t// \t\t\t\t\t\tbankCode: bankAccount.bankCode,\n\t// \t\t\t\t\t\tisDefault: bankAccount.isDefault,\n\t// \t\t\t\t\t});\n\t// \t\t\t\t});\n\n\t// \t\t\t\tsetSelectedBank(bankAccountList?.[0]);\n\t// \t\t\t\tsetMemberBankAccounts(bankAccountList);\n\t// \t\t\t}\n\t// \t\t} else {\n\t// \t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t// \t\t}\n\t// \t} catch (err) {\n\t// \t\t_dispatch(showResponseMessage(false, err));\n\t// \t}\n\t// }\n\n\tasync function submitWithdrawal() {\n\t\t_dispatch(setBusyLoading(true))\n\n\t\tsetIsWithdrawLoading(true)\n\n\t\tawait getMemberDetails();\n\n\t\tif(isEmpty(member.phoneNumber))\n\t\t{\n\t\t\t_dispatch(setCompleteInfoModal(true))\n\t\t\t_dispatch(setBusyLoading(false))\n\t\t\tsetIsWithdrawLoading(false)\n\n\t\t\treturn false\n\t\t}\n\n\t\t// if (stringIsNullOrEmpty(memberBankAccounts)) {\n\t\t// \tlet createAccParams = {\n\t\t// \t\tbankId: value,\n\t\t// \t\taccountNumber: accountNumber,\n\t\t// \t\taccountHolderName: accountHolderName,\n\t\t// \t};\n\n\t\t// \tlet params = {\n\t\t// \t\tuserFullName: accountHolderName,\n\t\t// \t};\n\t\t\t\n\t\t// \tlet responseJson = await ApiEngine.post(\n\t\t// \t\tApiUrl._API_UPDATE_MEMBER_USERFULLNAME,\n\t\t// \t\tcreateFormBody(params)\n\t\t// \t);\n\n\t\t// \tif (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \t\t_dispatch(\n\t\t// \t\t\tshowResponseMessage(\n\t\t// \t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t// \t\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t// \t\t\t)\n\t\t// \t\t);\n\t\t// \t\treturn false\n\t\t// \t}\n\n\t\t// \tlet createAccResponseJson = await ApiEngine.post(\n\t\t// \t\tApiUrl._API_CREATE_OR_UPDATE_MEMBER_BANK_ACCOUNT,\n\t\t// \t\tcreateMultiPartFormBody(createAccParams)\n\t\t// \t);\n\n\t\t// \tif (createAccResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \t\tlet createTransParams = {\n\t\t// \t\t\ttransactionTypeId: TransactionType._WITHDRAWAL,\n\t\t// \t\t\tamount: amount,\n\t\t// \t\t\tchannel: \"\",\n\t\t// \t\t\tpanel: PanelType._MEMBERSITE,\n\t\t// \t\t\tbankAccountNumber: accountNumber,\n\t\t// \t\t\tbankAccountHolderName: accountHolderName,\n\t\t// \t\t\tbankName: selectedBank.bankName,\n\t\t// \t\t\tbankCode: selectedBank.bankCode,\n\t\t// \t\t};\n\n\t\t// \t\tlet createTransResponseJson = await ApiEngine.post(\n\t\t// \t\t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t// \t\t\tcreateFormBody(createTransParams)\n\t\t// \t\t);\n\n\t\t// \t\tif (createTransResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \t\t\tsetShowPinEntry(false);\n\t\t// \t\t\tsetWithdrawalAmount(amount);\n\t\t// \t\t\tsetIsWithdrawalSuccess(true);\n\t\t// \t\t\tsetWithdrawalDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t// \t\t\tsetTranscactionNumber(createTransResponseJson[ApiKey._API_DATA_KEY]);\n\t\t// \t\t\t_dispatch(heartBeat());\n\t\t// \t\t\tinit();\n\t\t// \t\t} else {\n\t\t// \t\t\t_dispatch(\n\t\t// \t\t\t\tshowResponseMessage(\n\t\t// \t\t\t\t\tcreateTransResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t// \t\t\t\t\tcreateTransResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t// \t\t\t\t)\n\t\t// \t\t\t);\n\t\t// \t\t}\n\t\t// \t\tsetPinEntered(false);\n\t\t// \t\tsetPinNumberFinal(\"\");\n\t\t// \t\tsetEnteredPinNumberFinal(\"\");\n\t\t// \t\tsetPinNumberFinalFocused(0);\n\t\t// \t\tsetShowPinEntry(false);\n\t\t// \t} else {\n\t\t// \t\t_dispatch(\n\t\t// \t\t\tshowResponseMessage(\n\t\t// \t\t\t\tcreateAccResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t// \t\t\t\tcreateAccResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t// \t\t\t)\n\t\t// \t\t);\n\t\t// \t}\n\t\t// } else {\n\t\t// \tlet createTransParams2 = {\n\t\t// \t\ttransactionTypeId: TransactionType._WITHDRAWAL,\n\t\t// \t\tamount: amount,\n\t\t// \t\tchannel: \"\",\n\t\t// \t\tpanel: PanelType._MEMBERSITE,\n\t\t// \t\tbankAccountNumber: accountNumber,\n\t\t// \t\tbankAccountHolderName: accountHolderName,\n\t\t// \t\tbankName: selectedBank.bankName,\n\t\t// \t\tbankCode: selectedBank.bankCode,\n\t\t// \t};\n\n\t\t// \tlet createTransResponseJson = await ApiEngine.post(\n\t\t// \t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t// \t\tcreateFormBody(createTransParams2)\n\t\t// \t);\n\n\t\t// \tif (createTransResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t// \t\tsetShowPinEntry(false);\n\t\t// \t\tsetWithdrawalAmount(amount);\n\t\t// \t\tsetIsWithdrawalSuccess(true);\n\t\t// \t\tsetWithdrawalDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t// \t\tsetTranscactionNumber(createTransResponseJson[ApiKey._API_DATA_KEY]);\n\t\t// \t\t_dispatch(heartBeat());\n\t\t// \t\tinit();\n\t\t// \t} else {\n\t\t// \t\t_dispatch(\n\t\t// \t\t\tshowResponseMessage(\n\t\t// \t\t\t\tcreateTransResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t// \t\t\t\tcreateTransResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t// \t\t\t)\n\t\t// \t\t);\n\t\t// \t}\n\t\t// \tsetPinEntered(false);\n\t\t// \tsetPinNumberFinal(\"\");\n\t\t// \tsetEnteredPinNumberFinal(\"\");\n\t\t// \tsetPinNumberFinalFocused(0);\n\t\t// \tsetShowPinEntry(false);\n\t\t// }\n\n\t\t//let createTransParams = {\n\t\t//\ttransactionTypeId: TransactionType._DEPOSIT,\n\t\t//\tbankId: instantBankSetting.bankId,\n\t\t//\tamount: parseFloat(amount),\n\t\t//\tbankCode: selectedEwallet,\n\t\t//\tchannel: instantPayGatewayId,\n\t\t//\tpanel: PanelType._MEMBERSITE,\n\t\t//\tinstantPayBankSettingId:instantBankSetting.id,\n\t\t//\tcurrency: instantBankSetting.currency,\n\t\t//\tinstantPay: true,\n\t\t//\t// receiptReference: bankref,\n\t\t//\tbankAccountId: instantBankSetting.bankId,\n\t\t//\tphoneNumberId: selectedPhoneNumber.id\n\t\t//};\n\n\t\tlet createTransParams = {\n\t\t\ttransactionTypeId: TransactionType._WITHDRAWAL,\n\t\t\tamount: amount,\n\t\t\tchannel: \"\",\n\t\t\tpanel: PanelType._MEMBERSITE,\n\t\t\tbankAccountNumber: accountNumber,\n\t\t\tbankAccountHolderName: accountHolderName,\n\t\t\tbankName: selectedBank.bankName,\n\t\t\tbankCode: selectedBank.bankCode,\n\t\t};\n\nconsole.log('createTransParams', createTransParams)\n\n\t\t let createTransResponseJson = await ApiEngine.post(\n\t\t \tApiUrl._API_CREATE_TRANSACTION,\n\t\t \tcreateFormBody(createTransParams)\n\t\t );\n\n\t\t if (createTransResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t \tsetWithdrawalAmount(amount);\n\t\t \tsetIsWithdrawalSuccess(true);\n\t\t \tsetWithdrawalDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t \tsetTranscactionNumber(createTransResponseJson[ApiKey._API_DATA_KEY]);\n\t\t \t_dispatch(heartBeat());\n\t\t \tinit();\n\t\t } else {\n\t\t \t_dispatch(\n\t\t \t\tshowResponseMessage(\n\t\t \t\t\tcreateTransResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t \t\t\tcreateTransResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t \t\t)\n\t\t \t);\n\t\t }\n\n\t\t// getMemberBankAccount();\n\t\t// _dispatch(setIdle());\n\t\tsetIsWithdrawLoading(false)\n\n\t\t_dispatch(setBusyLoading(false))\n\n\t}\n\n\tasync function onSubmit(data, e) {\n\t\tsubmitWithdrawal();\n\t}\n\n\t// const getBankList = async () => {\n\t// \tlet responseJson = await ApiEngine.get(\n\t// \t\tApiUrl._API_GET_USER_BANK + \"?type=WITHDRAWAL\"\n\t// \t);\n\t// \tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\tlet bankList = [];\n\t// \t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t// \t\t\tbankList.push({\n\t// \t\t\t\tlabel: bankAccount.bankName,\n\t// \t\t\t\tvalue: bankAccount.id,\n\t// \t\t\t\tbankName: bankAccount.bankName,\n\t// \t\t\t\tbankCode: bankAccount.bankCode,\n\t// \t\t\t\tmin: bankAccount.minimumWithdrawal,\n\t// \t\t\t\tmax: bankAccount.maximumWithdrawal,\n\t// \t\t\t});\n\t// \t\t});\n\t// \t\tsetBankOption(bankList);\n\t// \t} else {\n\t// \t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t// \t}\n\t// };\n\n\t// function handleSelectedBank(value) {\n\t// \tconst bank = bankOption.filter((x) => x.value == value)[0];\n\n\t// \tsetSelectedBank(bank);\n\t// \tsetValue(value);\n\t// }\n\n\tfunction handleSelectedPhoneNumber(value) {\n\t\tconst phoneNumberData = phoneOption.filter((x) => x.value == value)[0];\n\n\t\tsetSelectedPhoneNumber(phoneNumberData);\n\t\tsetValue(value);\n\t}\n\n\tconst handleVerifyOtp = async (data, e) => {\n\t\t// Open modal\n\t\tsetShowVerifyOtpModal(true);\n\t}\n\n\tuseEffect(() => {\n\t\tif (phoneOption.length > 0 && selectedPhoneNumber) {\n\t\t\tconst phoneNumberData = phoneOption.filter(\n\t\t\t\t(x) => x.value === selectedPhoneNumber.id\n\t\t\t)[0];\n\t\n\t\t\tsetSelectedPhoneNumber(phoneNumberData);\n\t\t\tsetValue(value);\n\t\t}\n\t}, [phoneOption]); // Runs whenever phoneOption updates after handleVerifyOtpCallback\n\n\tconst handleVerifyOtpCallback = async (response) => {\n\t\tif(response[ApiKey._API_SUCCESS_KEY]){\n\t\t\t// Close modal\n\t\t\tsetShowVerifyOtpModal(false);\n\n\t\t\t// Refresh member phone numbers list\n\t\t\tawait getMemberEwalletAccounts();\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{/* {hasPendingTxn && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{timeDiffSeconds > 0\n\t\t\t\t\t\t\t\t\t? t(\"PLEASE_WAIT\") +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\tcountdownStr +\n\t\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t\t(transType === \"Deposit\"\n\t\t\t\t\t\t\t\t\t\t\t? t(\"FOR_DEPOSIT_APPROVAL\")\n\t\t\t\t\t\t\t\t\t\t\t: t(\"FOR_WITHDRAWAL_APPROVAL\"))\n\t\t\t\t\t\t\t\t\t: headerMsg}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)} */}\n\t\t\t{success && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t(successMsg)}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{\n\t\t\t// !hasPendingTxn && \n\t\t\t!showModal && initDone && isWithdrawalLimitError != 1 && isWithdrawalLimitError != 2 && (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"BALANCE\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t_userData[\"walletBalance\"],\n\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"MIN_WITHDRAWAL\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{min ?\n\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\tmin,\n\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\"-\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{t(\"NOTES\")} : \n\t\t\t\t\t\t\t

{t(\"WITHDRAWAL_NOTES_EWALLET\") + \".\"}

\n\t\t\t\t\t\t\t{/*

\n\t\t\t\t\t\t\t\t{stringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t? t(\"BANK_ACC_WARNING\") + \".\"\n\t\t\t\t\t\t\t\t\t: t(\"WITHDRAWAL_WARNING\") + \".\"}\n\t\t\t\t\t\t\t

*/}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{!isDirect && (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetSelectedEwallet(e.target.value)\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{walletOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
{t(\"EWALLET_ACCOUNT_INFO\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t numberWithCurrencyFormat(parseFloat(0), 2, true) \n\t\t\t\t\t\t\t\t\t\t\t\t// && stringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tname=\"phoneNumber\"\n\t\t\t\t\t\t\t\t\t\t\tref={register({\n\t\t\t\t\t\t\t\t\t\t\t\trequired: \"FIELD_REQUIRED\",\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tdefaultValue={value}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={t(\"PLEASE_SELECT_PHONE_NUMBER\")}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetValue(\"phoneNumber\",e.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\thandleSelectedPhoneNumber(e.target.value);\n\t\t\t\t\t\t\t\t\t\t\t\tclearErrors(\"phoneNumber\");\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{phoneOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{errors.phoneNumber && (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.phoneNumber.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t{/* Show error when phone number is not yet verified */}\n\t\t\t\t\t\t\t\t{ selectedPhoneNumber && !selectedPhoneNumber.verified &&\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetPhoneNumType(\"member\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleVerifyOtp();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>{t(\"VERIFY_OTP\")}\n\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true) &&\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"t3-withdrawal-option-select disabled\"\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tname=\"bank\"\n\t\t\t\t\t\t\t\t\t\t\tref={register({\n\t\t\t\t\t\t\t\t\t\t\t\trequired: \"FIELD_REQUIRED\",\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\tdefaultValue={value}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder={t(\"PLEASE_SELECT_BANK\")}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetValue(\"bank\",e.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\thandleSelectedBank(e.target.value);\n\t\t\t\t\t\t\t\t\t\t\t\tclearErrors(\"bank\");\n\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\t\t// !hasRolloverBal &&\n\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true) &&\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t\t\t\t\t\t: true\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{bankOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{errors.bank&& (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.bank.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
*/}\n{/* \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t setAccountHolderName(e.target.value)}\n\n\t\t\t\t\t\t\t\t\t\t\treadOnly={\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(_userData.userFullName) && _userData.walletBalance > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t\t\t\t\t\t: true\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.addAccountHolderName&& (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.addAccountHolderName.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
*/}\n\n\t\t\t\t\t\t\t\t{ _userData.walletBalance <= 0 && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t{t('ACCOUNT_BALANCE_ZERO')}\n\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t{ stringIsNullOrEmpty(_userData.userFullName) && _userData.walletBalance > 0 &&\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t{/*
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true) &&\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t\t\t: { pointerEvents: \"none\" }\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => setAccountNumber(e.target.value)}\n\t\t\t\t\t\t\t\t\t\t\treadOnly={\n\t\t\t\t\t\t\t\t\t\t\t\tstringIsNullOrEmpty(memberBankAccounts) &&\n\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? false\n\t\t\t\t\t\t\t\t\t\t\t\t\t: true\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t{errors.addAccountNumber&& (\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.addAccountNumber.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
*/}\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
{companyCurrency}
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? parseInt(amount) // Show without decimals for AUD\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: Number(amount) > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Number(amount).toFixed(2) // Show decimals for other currencies\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={t(\"PLEASE_ENTER_AMOUNT\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_userData[\"walletBalance\"] > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"disabled-action\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet value = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet amount = e.target.value\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.replace(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/[a-zA-Z`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?(kr|$|£|€)]*/g,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.trim();\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif(amount > 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (companyCurrency === \"PKR\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = Number(parseFloat(amount)).toFixed(0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = Number(parseFloat(amount) / 100).toFixed(2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// CHRIS 20241210 - better not to do this, we show error to user to alert them, allow them to have agency to correct their amount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// if (parseFloat(value) > parseFloat(_userData.walletBalance)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tvalue = _userData.walletBalance;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAmount(value);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// CHRIS 20241210 - better not to do this, allow user to have agency to manage their own cursor position\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// e.target.setSelectionRange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tvalue.length,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tvalue.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// );\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t!hasRolloverBal &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"disabled\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{isWithdrawalLimitError == 3 && (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"WITHDRAW_LIMIT_ERROR\", {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tremainingWithdrawalLimit: remainingWithdrawalLimit,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmemberWithdrawalAmountLimit: memberWithdrawalAmountLimit,\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{/* {transactionData &&\n\t\t\t\t\t\t\ttransactionData.length > 0 &&\n\t\t\t\t\t\t\tmap(transactionData, (item, index) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleDownlineOnClick(index, e);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"date\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LATEST_TOP_UP_AND_BONUS\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"amount\"] === item[\"amount\"] && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(item[\"amount\"]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"amount\"] === item[\"amount\"] && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{displayDataIndex === index ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"ROLLOVER\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"isLatestRecord\"] == 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? item[\"rolloverProgress\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"rolloverTarget\"]}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/ {item[\"rolloverTarget\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})} */}\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* ////error 1 - Withdrawal limit amount is maxed out for today */}\n\t\t\t{!hasPendingTxn && !showModal && initDone && isWithdrawalLimitError == 1 && (\n\t\t\t\t<>\n\t\t\t\t\t
{t(\"WITHDRAWAL_LIMIT_AMOUNT_MAX_ERROR\")}
\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* ////error 2 - Withdrawal limit count is maxed out for today */}\n\t\t\t{ !hasPendingTxn && !showModal && initDone && isWithdrawalLimitError == 2 && (\n\t\t\t\t<>\n\t\t\t\t\t
{t(\"WITHDRAWAL_LIMIT_COUNT_MAX_ERROR\")}
\n\t\t\t\t\n\t\t\t)}\n\t\t\t\n\n\t\t\t{/* WITHDRAW TRANSACTION SUCCESS START */}\n\t\t\t {\n\t\t\t\t\tsetIsWithdrawalSuccess(false);\n\t\t\t\t}}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"WITHDRAWAL_REQUEST_SUBMMITED\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"REQUEST_RECEIVED\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetIsWithdrawalSuccess(false);\n\t\t\t\t\t\t\t\t\t\t\tsetSelected(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"GOT_IT\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{/* WITHDRAW TRANSACTION SUCCESS END */}\n\t\t\t{/* SUCESS MODAL START */}\n\t\t\t {\n\t\t\t\t\tsetAddSuccessModelShow(false);\n\t\t\t\t}}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

{action} successful!

\n\t\t\t\t\t\t\t\t\t

{action} is completed!

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetAddSuccessModelShow(false);\n\t\t\t\t\t\t\t\t\t\t\tsetSelected(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"GOT_IT\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{/* SUCCESS MODAL END */}\n\t\t\t\n\n\t\t\t setShowVerifyOtpModal(false)}\n\t\t\t\tphoneNumber={selectedPhoneNumber?.label}\n\t\t\t\tphoneNumType={selectedPhoneNumber?.phoneNumType}\n\t\t\t\tonCallback={(e) => {\n\t\t\t\t\thandleVerifyOtpCallback(e)\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default WithdrawByPhoneNumber;\n","import React, { useCallback, useEffect, useState, useRef } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport Input from \"../../../components/custom/Input\";\nimport { useForm } from \"react-hook-form\";\nimport { createMultiPartFormBody } from \"../../../util/Util\";\nimport { includes, isEmpty } from \"lodash\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport Keyboard from \"react-simple-keyboard\";\nimport PinInput from \"react-pin-input\";\nimport \"react-swipeable-list/dist/styles.css\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n\tcreateFormBody,\n} from \"../../../util/Util\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tTransactionType,\n\tBankingChannel,\n\tPanelType,\n\tAlertTypes,\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tbindMember,\n\tsetBusy,\n\tsetBusyLoading,\n\tsetCompleteInfoModal,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tsetMyProfileModal,\n\tsetDepositModal\n} from \"../../../redux/AppAction\";\nimport \"react-simple-keyboard/build/css/index.css\";\nimport StyledSelect from \"../../../components/custom/StyledSelect\";\nimport moment from \"moment\";\nimport { heartBeat } from \"../../../redux/AuthAction\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport Accordion from \"react-bootstrap/Accordion\";\nimport LoadingOverlay from \"react-loading-overlay\";\nimport classNames from \"classnames\";\nimport { Spinner } from \"react-bootstrap\";\nimport CompleteInfoModal from \"components/template_1/CompleteInfoModal\";\nimport VerifyPhoneNumberModal from \"components/template_1/VerifyPhoneNumberModal\";\nimport AddPhoneModal from \"components/template_1/AddPhoneModal\";\n\nconst WithdrawByPhoneNumber = ({ onRenderComplete,selectedBankCode,onAfterHandleCheck }) => {\n\tvar { t, i18n } = useTranslation();\n\tvar _history = useHistory();\n\tlet _location = useLocation();\n\tvar _userData = useSelector((state) => state.authState.userData);\n\tconst membershipEnabled = useSelector(\n (state) => state.appState.membershipEnabled\n );\n\tvar [action, setAction] = useState([]);\n\tlet _dispatch = useDispatch();\n\tconst [addSuccessModelShow, setAddSuccessModelShow] = useState(false);\n\tconst userFullName = useSelector(\n\t\t(state) => state.authState.userData.userFullName\n\t);\n\tconst [selected, setSelected] = useState(false);\n\tconst [selectedBank, setSelectedBank] = useState([]);\n\tconst [selectedPhoneNumber, setSelectedPhoneNumber] = useState(null);\n\tconst [amount, setAmount] = useState(0);\n\tconst [value, setValue] = useState(\"\");\n\tconst [accountHolderName, setAccountHolderName] = useState(\"\");\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst [isInsufficientAmount, setIsInsufficientAmount] = useState(false);\n\tconst companyCurrency = useSelector((state) => state.appState.companyCurrency);\n\tconst [showAddPhoneNumberModal, setShowAddPhoneNumberModal] = useState(false);\n\tconst [bankError, setBankError] = useState(false);\n\tconst [amountError, setAmountError] = useState(false);\n\tconst [eWalletError, setEWalletError] = useState(false);\n\tconst eWalletOTPEnabled = useSelector((state) => state.appState.eWalletOTPEnabled );\n\n\tconst profileModal = useSelector(\n\t\t(state) => state.appState.profileModal\n\t);\n\n\tconst {\n\t\thandleSubmit,\n\t\tregister,\n\t\terrors,\n\t\ttrigger,\n\t\tclearErrors,\n\t} = useForm();\n\n\tconst [bankOption, setBankOption] = useState([]);\n\tconst [phoneOption, setPhoneOption] = useState([]);\n\tconst [transcactionNumber, setTranscactionNumber] = useState();\n\tconst [isWithdrawalSuccess, setIsWithdrawalSuccess] = useState(false);\n\tconst [withdrawalAmount, setWithdrawalAmount] = useState(0);\n\tconst [withdrawalDate, setWithdrawalDate] = useState();\n\t// const [member, setMember] = useState();\n\tconst member = useSelector((state) => state.appState.member);\n\n\tconst _SECONDS_IN_MS = 1000;\n\tconst _ALERT_TIMEOUT = 3000;\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst mainForm = useRef(null);\n\n\tconst [success, setSuccess] = useState(false);\n\tconst [successMsg, setSuccessMsg] = useState(\"\");\n\n\tconst [initDone, setInitDone] = useState(false);\n\tconst [hasRolloverBal, setHasRolloverBal] = useState(false);\n\n\tconst [showModal, setShowModal] = useState(false);\n\tconst [min, setMin] = useState(0);\n\tconst [max, setMax] = useState(0);\n\tconst customerServiceUrl = \"/livechat\";\n\tconst [totalWithdrawAmountToday, setTotalWithdrawAmountToday] = useState(0);\n\tconst [totalWithdrawCountToday, setTotalWithdrawCountToday] = useState(0);\n\tconst [isWithdrawalLimitError, setIsWithdrawalLimitError] = useState(0);\n\tconst [remainingWithdrawalLimit, setRemainingWithdrawalLimit] = useState(0);\n\tconst [memberWithdrawalAmountLimit, setMemberWithdrawalAmountLimit] = useState(0);\n\tconst specificElementRef = useRef(null);\n\n\tconst [isWithdrawLoading, setIsWithdrawLoading] = useState(false)\n\tconst [selectedEwallet, setSelectedEwallet] = useState();\n\tconst [showVerifyOtpModal, setShowVerifyOtpModal] = useState(false);\n\tconst [phoneNumType, setPhoneNumType] = useState(\"\");\n\tconst [collapse, setCollapse] = useState(false);\n\n\tuseEffect(() => {\n\t\tinit();\n\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (member) {\n\t\t\tif (!stringIsNullOrEmpty(member.userFullName)) {\n\t\t\t\tsetAccountHolderName(member.userFullName);\n\t\t\t}\n\t\t} else {\n\t\t\tif (!stringIsNullOrEmpty(userFullName)) {\n\t\t\t\tsetAccountHolderName(userFullName);\n\t\t\t}\n\t\t}\n\t}, [member, userFullName]);\n\n\tuseEffect(() => {\n\t\tconst checkElementRendered = () => {\n\t\t\tif (specificElementRef.current) {\n\t\t\t\tonRenderComplete();\n\t\t\t}\n\t\t};\n\n\t\tcheckElementRendered();\n\t}, [onRenderComplete]);\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tclearTimeout(countdownTime);\n\t\t\tsetCountdownTime(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t\t\tlet tempX = moment.duration(tempPeriod);\n\t\t\t\t\tlet tempMM = Math.floor(tempX[\"_milliseconds\"] / 60);\n\t\t\t\t\tlet tempSS = tempX[\"_milliseconds\"] - tempMM * 60;\n\t\t\t\t\tsetTimeDiffSeconds(tempX[\"_milliseconds\"]);\n\t\t\t\t\tlet tempStr =\n\t\t\t\t\t\t(tempMM.toString().length > 1 ? tempMM : \"0\" + tempMM) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"MINUTES\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(tempSS.toString().length > 1 ? tempSS : \"0\" + tempSS) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"SECOND\");\n\t\t\t\t\tsetCountdownStr(tempStr);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tuseEffect(() => {\n\t\t// getMemberBankAccount();\n\t\t// getBankList();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tgetMemberEwalletAccounts();\n\t}, [profileModal])\n\n\tuseEffect(() => {\n\t\tif (bankOption && !stringIsNullOrEmpty(bankOption)) {\n\t\t\tlet test = bankOption.find(x => x.bankCode == selectedBankCode)\n\t\t\tsetSelectedBank(bankOption.find(x => x.bankCode == selectedBankCode))\n\t\t\tsetSelectedEwallet(selectedBankCode)\n\t\t}\n\t}, [bankOption]);\n\n\tuseEffect(() => {\n\t\tif (member && member.membership && member.membership.maxWithdrawalAmount && member.membership.maxWithdrawalCount) {\n\t\t\t// console.log(member.membership.maxWithdrawalAmount);\n\t\t\t// console.log(member.membership.maxWithdrawalCount);\n\t\t\t// console.log(totalWithdrawAmountToday);\n\t\t\t// console.log(totalWithdrawCountToday);\n\t\t\tsetMemberWithdrawalAmountLimit(member.membership.maxWithdrawalAmount)\n\t\t\t////error 1 - Withdrawal limit amount is maxed out for today\n\t\t\t////error 2 - Withdrawal limit count is maxed out for today\n\t\t\t////error 3 - if value of input amount is greater than the withdraw amount limit remaining\n\t\t\tif (totalWithdrawAmountToday >= member.membership.maxWithdrawalAmount && member.membership.maxWithdrawalAmount > 0) {\n\t\t\t\tsetIsWithdrawalLimitError(1);\n\t\t\t} else if (member.membership.maxWithdrawalCount > 0 && totalWithdrawCountToday >= member.membership.maxWithdrawalCount && member.membership.maxWithdrawalCount != -1) {\n\t\t\t\tsetIsWithdrawalLimitError(2);\n\t\t\t} else {\n\t\t\t\tconst withdrawAmountLimitRemainingToday = member.membership.maxWithdrawalAmount - totalWithdrawAmountToday;\n\t\t\t\t// console.log(withdrawAmountLimitRemainingToday)\n\t\t\t\t// console.log(amount)\n\t\t\t\tif (withdrawAmountLimitRemainingToday < amount && member.membership.maxWithdrawalAmount > 0) {\n\t\t\t\t\tsetRemainingWithdrawalLimit(withdrawAmountLimitRemainingToday);\n\t\t\t\t\tsetIsWithdrawalLimitError(3);\n\t\t\t\t\tconsole.log(\"the amount is greater than your daily limit to withdraw, here's your remaining total amount to withdraw for today - \" + withdrawAmountLimitRemainingToday);\n\t\t\t\t} else {\n\t\t\t\t\tsetIsWithdrawalLimitError(0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [totalWithdrawCountToday, totalWithdrawAmountToday, member, amount]);\n\n\n\tasync function init() {\n\t\ttry {\n\t\t\tif (_userData[\"walletBalance\"] == 0) {\n\t\t\t\tsetIsInsufficientAmount(true);\n\t\t\t}\n\n\t\t\tgetMemberDetails();\n\t\t\t\n\t\t\tvar transactionTodayJson = await ApiEngine.get(\n\t\t\t\tApiUrl._API_GET_TRANSACTION_TODAY_BY_USER\n\t\t\t);\n\n\t\t\tif (transactionTodayJson[ApiKey._API_SUCCESS_KEY]) {\n\n\t\t\t\tlet transactionsToday = transactionTodayJson[ApiKey._API_DATA_KEY];\n\t\t\t\tif (transactionsToday) {\n\t\t\t\t\tconst totalAmount = transactionsToday.reduce((accumulator, transactionsToday) => {\n\t\t\t\t\t\treturn accumulator + transactionsToday.amount;\n\t\t\t\t\t}, 0);\n\t\t\t\t\tsetTotalWithdrawAmountToday(totalAmount);\n\t\t\t\t\tsetTotalWithdrawCountToday(transactionsToday.length);\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tthrow transactionTodayJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t}\n\n\t\t\tgetBankList();\n\t\t\tgetMemberEwalletAccounts();\n\n\t\t\t// getMemberBankAccount();\n\t\t\t_dispatch(heartBeat());\n\t\t\t// } else {\n\t\t\t// \tsetHasRolloverBal(true);\n\t\t\t// \tthrow rolloverJson[ApiKey._API_MESSAGE_KEY];\n\t\t\t// }\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetInitDone(true);\n\t}\n\n\tasync function getMemberEwalletAccounts() {\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\t// ApiUrl._API_GET_MEMBER_PHONE_NUMBERS + \"?isVerifyRequired=true\"\n\t\t\tApiUrl._API_GET_MEMBER_PHONE_NUMBERS\n\t\t);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet phoneNumberList = [];\n\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((phoneNumber) => {\n\t\t\t\tphoneNumberList.push({\n\t\t\t\t\tlabel: phoneNumber.phoneNumber,\n\t\t\t\t\tvalue: phoneNumber.id,\n\t\t\t\t\tid: phoneNumber.id, // CHRIS 20241206: added this here for convenience\n\t\t\t\t\tverified: phoneNumber.verified,\n\t\t\t\t\tphoneNumType: \"memberEwalletAccounts\", // member or memberEwalletAccounts\n\t\t\t\t\taccountHolderName: phoneNumber.accountHolderName\n\t\t\t\t});\n\t\t\t});\n\t\t\tsetPhoneOption(phoneNumberList);\n\t\t} else {\n\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t}\n\t}\n\n\tasync function getMemberDetails() {\n\t\tawait _dispatch(bindMember)\n\t}\n\n\t\n\n\tasync function submitWithdrawal() {\n\t\t_dispatch(setBusyLoading(true))\n\t\tsetIsWithdrawLoading(true)\n\n\t\tawait getMemberDetails();\n\n\t\tif (isEmpty(member.phoneNumber)) {\n\t\t\t_dispatch(setCompleteInfoModal(true))\n\t\t\t_dispatch(setBusyLoading(false))\n\t\t\tsetIsWithdrawLoading(false)\n\n\t\t\treturn false\n\t\t}\n\n\t\tlet createTransParams = {\n\t\t\ttransactionTypeId: TransactionType._WITHDRAWAL,\n\t\t\tamount: amount,\n\t\t\tchannel: \"E-Wallet\",\n\t\t\tpanel: PanelType._MEMBERSITE,\n\t\t\tbankAccountNumber: selectedPhoneNumber.label,\n\t\t\tbankAccountHolderName: selectedPhoneNumber.accountHolderName,\n\t\t\tbankName: selectedBank.bankName,\n\t\t\tbankCode: selectedBank.bankCode,\n\t\t};\n\n\n\t\tlet createTransResponseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_CREATE_TRANSACTION,\n\t\t\tcreateFormBody(createTransParams)\n\t\t);\n\n\t\tif (createTransResponseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetWithdrawalAmount(amount);\n\t\t\tsetIsWithdrawalSuccess(true);\n\t\t\tsetWithdrawalDate(moment().format(\"DD MMM YYYY, hh:mm A\"));\n\t\t\tsetTranscactionNumber(createTransResponseJson[ApiKey._API_DATA_KEY]);\n\t\t\t_dispatch(heartBeat());\n\t\t\tinit();\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowResponseMessage(\n\t\t\t\t\tcreateTransResponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\tcreateTransResponseJson[ApiKey._API_MESSAGE_KEY]\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t// getMemberBankAccount();\n\t\t// _dispatch(setIdle());\n\t\tsetIsWithdrawLoading(false)\n\n\t\t_dispatch(setBusyLoading(false))\n\n\t}\n\n\tasync function onSubmit(data, e) {\n\t\tsetBankError(false);\n\t\tsetAmountError(false);\n\t\tsetEWalletError(false);\n\t\tlet error = false;\n\t\tif (stringIsNullOrEmpty(selectedEwallet)) {\n\t\t\ttrigger(\"ewallet\");\n\t\t\tsetBankError(true);\n\t\t\terror = true;\n\t\t}\n\n\t\tif (\n\t\t\t!data.amount ||\n\t\t\tisNaN(data.amount) ||\n\t\t\tNumber(data.amount) <= 0 ||\n\t\t\tNumber(data.amount) < min\n\t\t) {\n\t\t\ttrigger(\"amount\");\n\t\t\tsetAmountError(true);\n\t\t\terror = true;\n\t\t}\n\n\t\tif (stringIsNullOrEmpty(data.phoneNumber)) {\n\t\t\ttrigger(\"phoneNumber\");\n\t\t\tsetEWalletError(true);\n\t\t\terror = true;\n\t\t} \n\n\t\tif(!error)\n\t\t{\n\t\t\tsubmitWithdrawal();\n\t\t}\n\n\t}\n\n\t const getBankList = async () => {\n\t \tlet responseJson = await ApiEngine.get(\n\t\t\t\tApiUrl._API_GET_USER_E_WALLET + \"?type=WITHDRAWAL\"\n\t \t);\n\t \tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t \t\tlet bankList = [];\n\t \t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t \t\t\tbankList.push({\n\t \t\t\t\tlabel: bankAccount.bankName,\n\t \t\t\t\tvalue: bankAccount.id,\n\t \t\t\t\tbankName: bankAccount.bankName,\n\t \t\t\t\tbankCode: bankAccount.bankCode,\n\t \t\t\t\tmin: bankAccount.minimumWithdrawal,\n\t \t\t\t\tmax: bankAccount.maximumWithdrawal,\n\t\t\t\t\tbankLogo: bankAccount.bankLogo\n\t \t\t\t});\n\t \t\t});\n\t \t\tsetBankOption(bankList);\n\t \t} else {\n\t \t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t \t}\n\t };\n\n\tfunction handleSelectedPhoneNumber(value) {\n\t\tconst phoneNumberData = phoneOption.filter((x) => x.value == value)[0];\n\n\t\tsetSelectedPhoneNumber(phoneNumberData);\n\t\tsetValue(value);\n\n\t}\n\n\tconst handleVerifyOtp = async (data, e) => {\n\t\t// Open modal\n\t\tsetShowVerifyOtpModal(true);\n\t}\n\n\tuseEffect(() => {\n\t\tif (phoneOption.length > 0 && selectedPhoneNumber) {\n\t\t\tconst phoneNumberData = phoneOption.filter(\n\t\t\t\t(x) => x.value === selectedPhoneNumber.id\n\t\t\t)[0];\n\n\t\t\tsetSelectedPhoneNumber(phoneNumberData);\n\t\t\tsetValue(value);\n\t\t}\n\t}, [phoneOption]); // Runs whenever phoneOption updates after handleVerifyOtpCallback\n\n\tconst handleAddPhoneCallback = async (response) => {\n\t\tsetShowAddPhoneNumberModal(false);\n\t\tgetMemberEwalletAccounts();\n\t};\n\n\tconst handleVerifyOtpCallback = async (response) => {\n\t\tif (response[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t// Close modal\n\t\t\tsetShowVerifyOtpModal(false);\n\n\t\t\t// Refresh member phone numbers list\n\t\t\tawait getMemberEwalletAccounts();\n\t\t}\n\t};\n\tconst triggerParentFunction = () => {\n if (onAfterHandleCheck) {\n onAfterHandleCheck(); // Call the first parent function\n }\n };\n\treturn (\n\t\t<>\n\t\t\t{success && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{t(successMsg)}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{\n\t\t\t\t// !hasPendingTxn && \n\t\t\t\t!showModal && initDone && isWithdrawalLimitError != 1 && isWithdrawalLimitError != 2 && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t(\"BALANCE\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t_userData[\"walletBalance\"],\n\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t(\"MIN_WITHDRAWAL\")}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{min ?\n\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\tmin,\n\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\t\t\t\"-\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{memberWithdrawalAmountLimit > 0 && (
\n\t\t\t\t\t\t\t\t{t(\"MEMBERSHIP_DAILY_WITHDRAWAL_LIMIT\")}
\n\t\t\t\t\t\t\t\t{membershipEnabled && _userData.vipName != null &&\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t({t(\"MEMBERSHIP\")}: {t(_userData.vipName.toUpperCase())})\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\tmemberWithdrawalAmountLimit,\n\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
)}\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{t(\"NOTES\")} : \n\t\t\t\t\t\t\t\t

{t(\"WITHDRAWAL_NOTES_EWALLET\") + \".\"}

\n\t\t\t\t\t\t\t\t{/*

\n\t\t\t\t\t\t\t\t{stringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t? t(\"BANK_ACC_WARNING\") + \".\"\n\t\t\t\t\t\t\t\t\t: t(\"WITHDRAWAL_WARNING\") + \".\"}\n\t\t\t\t\t\t\t

*/}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbankOption.map((bank, bankIndex)=>{\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetBankError(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedEwallet(bank.bankCode)\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedBank(bank)\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetMin(bank.min);\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetMax(bank.max);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tbank.bankLogo ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
{bank.bankName}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{
{bank.min} - {bank.max}
}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{bankError && (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t)}\n\n\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
{t(\"EWALLET_ACCOUNT_INFO\")}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t numberWithCurrencyFormat(parseFloat(0), 2, true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// && stringIsNullOrEmpty(memberBankAccounts)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"t3-withdrawal-option-select\"\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"phoneNumber\"\n\t\t\t\t\t\t\t\t\t\t\t\tref={register({\n\t\t\t\t\t\t\t\t\t\t\t\t\trequired: \"FIELD_REQUIRED\",\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\tdefaultValue={value}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={t(\"PLEASE_SELECT_PHONE_NUMBER\")}\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetValue(\"phoneNumber\", e.target.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\thandleSelectedPhoneNumber(e.target.value);\n\t\t\t\t\t\t\t\t\t\t\t\t\tclearErrors(\"phoneNumber\");\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{phoneOption.map((option, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{option.accountHolderName} - {option.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{errors.phoneNumber && (\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(errors.phoneNumber.message)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{/* Show error when phone number is not yet verified */}\n\t\t\t\t\t\t\t\t\t{ eWalletOTPEnabled && selectedPhoneNumber && !selectedPhoneNumber.verified &&\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetPhoneNumType(\"member\");\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleVerifyOtp();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>{t(\"VERIFY_OTP\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t{phoneOption.length < 3 && (
\n { setShowAddPhoneNumberModal(true); }}>{t(\"ADD_E_WALLET\")}\n\t\t\t\t\t\t\t\t\t
)}\n\n\t\t\t\t\t\t\t\t\t{_userData.walletBalance <= 0 && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t('ACCOUNT_BALANCE_ZERO')}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t{stringIsNullOrEmpty(_userData.userFullName) && _userData.walletBalance > 0 &&\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
{companyCurrency}
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? parseInt(amount) // Show without decimals for AUD\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: Number(amount) > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? Number(amount).toFixed(2) // Show decimals for other currencies\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={t(\"PLEASE_ENTER_AMOUNT\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_userData[\"walletBalance\"] > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"disabled-action\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet value = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet amount = e.target.value\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.replace(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/[a-zA-Z`!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?(kr|$|£|€)]*/g,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t.trim();\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (amount > 0) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (companyCurrency === \"PKR\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = Number(parseFloat(amount)).toFixed(0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue = Number(parseFloat(amount) / 100).toFixed(2);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAmountError(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// CHRIS 20241210 - better not to do this, we show error to user to alert them, allow them to have agency to correct their amount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// if (parseFloat(value) > parseFloat(_userData.walletBalance)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tvalue = _userData.walletBalance;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetAmount(value);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// CHRIS 20241210 - better not to do this, allow user to have agency to manage their own cursor position\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// e.target.setSelectionRange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tvalue.length,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tvalue.length\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t!hasRolloverBal &&\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_userData.walletBalance >\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnumberWithCurrencyFormat(parseFloat(0), 2, true)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"disabled\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t{amountError && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{amount <= 0 && ()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{(amount < min || amount > max) && ()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t{isWithdrawalLimitError == 3 && (\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t)}\n\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t 0.99 && isWithdrawalLimitError == 0 && (!eWalletOTPEnabled || selectedPhoneNumber?.verified) ? \"\" : \"disabled\" || hasRolloverBal || isWithdrawLoading}\n\t\t\t\t\t\t\t\t\tclassName={`\n\t\t\t\t\t\t\t\t\tt3-custom-light-btn \n\t\t\t\t\t\t\t\t\t${amount > 0.99 && isWithdrawalLimitError == 0 && (!eWalletOTPEnabled || selectedPhoneNumber?.verified) ? \"\" : \"disabled\"}\n\t\t\t\t\t\t\t\t`}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{isWithdrawLoading ? (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tt(\"WITHDRAW\")\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t{/* ////error 1 - Withdrawal limit amount is maxed out for today */}\n\t\t\t{!hasPendingTxn && !showModal && initDone && isWithdrawalLimitError == 1 && (\n\t\t\t\t<>\n\t\t\t\t\t
{t(\"WITHDRAWAL_LIMIT_AMOUNT_MAX_ERROR\")}
\n\t\t\t\t\n\t\t\t)}\n\t\t\t{/* ////error 2 - Withdrawal limit count is maxed out for today */}\n\t\t\t{!hasPendingTxn && !showModal && initDone && isWithdrawalLimitError == 2 && (\n\t\t\t\t<>\n\t\t\t\t\t
{t(\"WITHDRAWAL_LIMIT_COUNT_MAX_ERROR\")}
\n\t\t\t\t\n\t\t\t)}\n\n\n\t\t\t{/* WITHDRAW TRANSACTION SUCCESS START */}\n\t\t\t {\n\t\t\t\t\tsetIsWithdrawalSuccess(false);\n\t\t\t\t}}\n\t\t\t\tbackdrop={\"static\"}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"WITHDRAWAL_REQUEST_SUBMMITED\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"REQUEST_RECEIVED\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetIsWithdrawalSuccess(false);\n\t\t\t\t\t\t\t\t\t\t\tsetSelected(false);\n\t\t\t\t\t\t\t\t\t\t\ttriggerParentFunction();\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"GOT_IT\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{/* WITHDRAW TRANSACTION SUCCESS END */}\n\n\t\t\t setShowAddPhoneNumberModal(false)}\n\t\t\t\tonCallback={(e) => {\n\t\t\t\t\thandleAddPhoneCallback(e)\n\t\t\t\t}}\n\t\t\t/> \n\n\t\t\t{/* SUCESS MODAL START */}\n\t\t\t {\n\t\t\t\t\tsetAddSuccessModelShow(false);\n\t\t\t\t}}\n\t\t\t\tcentered\n\t\t\t>\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

{action} successful!

\n\t\t\t\t\t\t\t\t\t

{action} is completed!

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetAddSuccessModelShow(false);\n\t\t\t\t\t\t\t\t\t\t\tsetSelected(false);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{t(\"GOT_IT\")}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t\t{/* SUCCESS MODAL END */}\n\t\t\t\n\t\t\t setShowVerifyOtpModal(false)}\n\t\t\t\tphoneNumber={selectedPhoneNumber?.label}\n\t\t\t\tphoneNumType={selectedPhoneNumber?.phoneNumType}\n\t\t\t\tonCallback={(e) => {\n\t\t\t\t\thandleVerifyOtpCallback(e)\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default WithdrawByPhoneNumber;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { useHistory, withRouter } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tTransactionType,\n} from \"../../../util/Constant\";\nimport Input from \"../../../components/custom/Input\";\nimport { find, map } from \"lodash\";\nimport { Link } from \"react-router-dom\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { numberWithCurrencyFormat } from \"../../../util/Util\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport moment from \"moment\";\nimport ContentHeader from \"../../../components/contentheader/header\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport { setThemeName, setPaymentList } from \"../../../redux/AppAction\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport WithdrawByBankTransfer from \"../transaction/WithdrawByBankTransfer\";\nimport { heartBeat } from \"../../../redux/AuthAction\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport WithdrawByPhoneNumber from \"../transaction/WithdrawByPhoneNumber\";\nimport WithdrawByEWallet from \"../transaction/WithdrawByEWallet\";\n\n/// \n/// Author: -\n/// \nconst WithdrawalMethods = ({isHidden}) => {\n\tvar { t, i18n } = useTranslation();\n\tconst _dispatch = useDispatch();\n\tvar _history = useHistory();\n\tvar _userData = useSelector((state) => state.authState.userData);\n\tconst [headerMsg, setHeaderMsg] = useState(\"\");\n\tconst [countdownPeriod, setCountdownPeriod] = useState(0);\n\tconst [hasPendingTxn, setHasPendingTxn] = useState(false);\n\tconst [countdownStr, setCountdownStr] = useState(\"\");\n\tconst [timeDiffSeconds, setTimeDiffSeconds] = useState(0);\n\tconst [transType, setTransType] = useState(\"\");\n\tconst [countdownTime, setCountdownTime] = useState();\n\tconst _SECONDS_IN_MS = 1000;\n\tconst [isInsufficientAmount, setIsInsufficientAmount] = useState(false);\n\tconst [showConfirmation, setShowConfirmation] = useState(false);\n\tconst [showWithdrawBankTransfer, setShowWithdrawBankTransfer] = useState(false);\n\tconst [showWithdrawTopkash, setShowWithdrawTopkash] = useState(false);\n\tconst [showWithdrawMethods, setShowWithdrawMethods] = useState(true);\n\tconst [showWithdrawBCPay, setShowWithdrawBCPay] = useState(false);\n\tconst [instantPayOption, setInstantPayOption] = useState([]);\n\tconst [isInitFinished, setIsInitFinished] = useState(false); // used to ensure RestoreAllWallet is done\n\tconst [isWithdrawEleReady, setIsWithdrawEleReady] = useState(false); \n\tconst [showWithdrawByPhoneNumber1, setShowWithdrawByPhoneNumber1] = useState(false);\n\tconst [showWithdrawByPhoneNumber2, setShowWithdrawByPhoneNumber2] = useState(false);\n\tconst [showWithdrawByEWallet, setShowWithdrawByEWallet] = useState(false);\n\tconst [paymentOptionList, setPaymentOptionList] = useState(\n\t\tuseSelector((state) => state.appState.payments)\n\t);\n\tconst [withdrawMethods, setWithdrawMethods] = useState([\n\t]);\n\tconst [isNormalWithdrawalEnable, setIsNormalWithdrawalEnable] = useState(\n\t\tuseSelector((state) => state.appState.isNormalWithdrawalEnable)\n\t);\n\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [showBackward, setShowBackward] = useState(false);\n\tconst [selectedWithdrawMethod, setSelectedWithdrawMethod] = useState([]);\n\tconst [activeIndex, setActiveIndex] = useState(0);\n\tconst [selectedBank, setSelectedBank] = useState(\"\");\n\n\tuseEffect(() => {\n\t\tinit();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (isWithdrawEleReady) {\n\t\t\tisHidden();\n\t\t}\n\t}, [isWithdrawEleReady]);\n\n\tconst handleChildRenderComplete = () => {\n\t\tsetIsInitFinished(true);\n\t\tsetIsWithdrawEleReady(true);\n\t\tsetIsLoading(false);\n\t};\n\tconst afterHandleCheck = () => {\n\t\tsetSelectedWithdrawMethod([]);\n\t\tsetShowWithdrawMethods(true);\n\t\tsetShowBackward(false);\n\n\t\t// hide all the child components\n\t\tsetShowWithdrawBankTransfer(false);\n\t\tsetShowWithdrawByPhoneNumber1(false);\n\t\tsetShowWithdrawByPhoneNumber2(false);\n\t\tsetShowWithdrawByEWallet(false);\n\t\tsetIsWithdrawEleReady(false);\n\n\t\tsetIsInitFinished(false);\n\t\tsetIsWithdrawEleReady(false);\n\t\tsetIsLoading(false);\n\t\t\n\t\tinit();\n\t\t\n\t};\n\n\n\tasync function init() {\n\t\t_dispatch(heartBeat());\n\t\tsetIsLoading(true);\n\n\t\tsetHeaderMsg(\"\");\n\t\t// setWithdrawMethods([])\n\t\tlet withdrawList = []\n\t\tif (isNormalWithdrawalEnable) {\n\n\n\t\t\twithdrawList = [\n ...withdrawList,\n {\n title: \"BANK_TRANSFER\",\n handle: \"BANK_TRANSFER\",\n remark: t(\"NORMAL_BANK_TRANSFER\"),\n },\n ];\n\t\t\t// setWithdrawMethods((withdrawMethods) => [\n\t\t\t// \t...withdrawMethods,\n\t\t\t// \t{\n\t\t\t// \t\t// image: require(\"../../../assets/img/new_icons/bank.png\"),\n\t\t\t// \t\ttitle: \"BANK_TRANSFER\",\n\t\t\t// \t\thandle: \"BANK_TRANSFER\",\n\t\t\t// \t\tremark: t(\"NORMAL_BANK_TRANSFER\"),\n\t\t\t// \t\t// link: WebUrl._URL_WITHDRWAL_BY_BANK_TRANSFER,\n\t\t\t// \t}\n\t\t\t// ]);\n\n\t\t\tsetWithdrawMethods(withdrawList)\n\t\t}\n\n\t\tvar responseJson = await ApiEngine.get(ApiUrl._API_GET_PENDING_TRANSACTION);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tif (responseJson[ApiKey._API_DATA_KEY] != null) {\n\t\t\t\tclearTimeout(countdownTime);\n\t\t\t\tlet tempS = parseInt(responseJson[ApiKey._API_DATA_KEY][\"timeSpan\"]);\n\t\t\t\tsetTransType(responseJson[ApiKey._API_DATA_KEY][\"transType\"]);\n\t\t\t\tsetTimeDiffSeconds(tempS);\n\t\t\t\tsetCountdownPeriod(tempS < 0 ? 0 : tempS);\n\t\t\t\tsetHasPendingTxn(true);\n\t\t\t\tsetHeaderMsg(t(\"NEW_TXN_PROHIBITED\"));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tawait getRestore();\n\t\t\t}\n\t\t}\n\n\t\t//KT this is very slow, we're not going to use Payment Gateway for AUD, might as well dont check and waste time\n\n\t\tvar responseJson3 = await ApiEngine.get(ApiUrl._API_GET_EWALLET_STATUS);\n\t\tif (responseJson3[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tif (responseJson3[ApiKey._API_DATA_KEY]) {\n\n\t\t\t\tlet ewalletlList = await getBankEwallet();\n\t\t\t\tsetWithdrawMethods((withdrawMethods) => [\n\t\t\t\t\t...withdrawMethods,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: t(\"E_WALLET\"),\n\t\t\t\t\t\thandle: \"E_WALLET\",\n\t\t\t\t\t\tremark: \"\",\n\t\t\t\t\t\tbankOptions: ewalletlList\n\t\t\t\t\t},\n\t\t\t\t]);\n\t\t\t}\n\t\t}\n\n\t\t// Check if redux already has the payment option list saved\n\t\t// we dont have payment gateway for withdrawal yet. so comment first (JW)\n\t\t//if (paymentOptionList.length > 0) {\n\t\t//\tinitOptions(paymentOptionList);\n\t\t//} else {\n\t\t//\tlet responseJson2 = await ApiEngine.get(\n\t\t//\t\tApiUrl._API_GET_USER_PAYMENT_GATEWAY_INFO\n\t\t//\t);\n\t\t//\tif (responseJson2[ApiKey._API_SUCCESS_KEY]) {\n\t\t//\t\t// Save payment list into redux to avoid calling API again if unnecessary\n\t\t//\t\t_dispatch(setPaymentList(responseJson2[ApiKey._API_DATA_KEY]));\n\n\t\t//\t\tinitOptions(responseJson2[ApiKey._API_DATA_KEY]);\n\t\t//\t}\n\t\t//}\n\n\t\tsetIsInitFinished(true);\n\t\tsetIsLoading(false);\n\t}\n\n\tfunction initOptions(responseJsonData) {\n\t\tif(responseJsonData) {\n\t\t\tsetInstantPayOption(responseJsonData);\n\n\t\t\tresponseJsonData.forEach((item) => {\n\t\t\t\tsetWithdrawMethods((withdrawMethods) => [\n\t\t\t\t\t...withdrawMethods,\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle: item.instantPayGatewayString,\n\t\t\t\t\t\thandle: item.instantPayGatewayString.toUpperCase().replace(/ /g, \"_\"),\n\t\t\t\t\t\tremark: item.remarks\n\t\t\t\t\t},\n\t\t\t\t]);\n\t\t\t})\n\n\t\t\tif (withdrawMethods.length === 1 && responseJsonData.length == 0) {\n\t\t\t\tsetShowWithdrawBankTransfer(true);\n\t\t\t\tsetShowBackward(false);\n\t\t\t}\n\t\t}\n\t}\n\n\tasync function getRestore() {\n\t\tlet responseJson = await ApiEngine.get(ApiUrl._API_RESTORE_ALL_WALLET);\n\t}\n\n\tuseEffect(() => {\n\t\tif (countdownPeriod > 0) {\n\t\t\tclearTimeout(countdownTime);\n\t\t\tsetCountdownTime(\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tlet tempPeriod = countdownPeriod - 1;\n\t\t\t\t\tsetCountdownPeriod(tempPeriod);\n\t\t\t\t\tlet tempX = moment.duration(tempPeriod);\n\t\t\t\t\tlet tempMM = Math.floor(tempX[\"_milliseconds\"] / 60);\n\t\t\t\t\tlet tempSS = tempX[\"_milliseconds\"] - tempMM * 60;\n\t\t\t\t\tsetTimeDiffSeconds(tempX[\"_milliseconds\"]);\n\t\t\t\t\tlet tempStr =\n\t\t\t\t\t\t(tempMM.toString().length > 1 ? tempMM : \"0\" + tempMM) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"MINUTES\") +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t(tempSS.toString().length > 1 ? tempSS : \"0\" + tempSS) +\n\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\tt(\"SECOND\");\n\t\t\t\t\tsetCountdownStr(tempStr);\n\t\t\t\t}, _SECONDS_IN_MS)\n\t\t\t);\n\t\t}\n\t}, [countdownPeriod]);\n\n\tconst getBankEwallet = async () => {\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\t ApiUrl._API_GET_USER_E_WALLET + \"?type=WITHDRAWAL\"\n\t\t);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tlet bankList = [];\n\t\t\tresponseJson[ApiKey._API_DATA_KEY].map((bankAccount) => {\n\t\t\t\tbankList.push({\n\t\t\t\t\tlabel: bankAccount.bankName,\n\t\t\t\t\tvalue: bankAccount.id,\n\t\t\t\t\tbankName: bankAccount.bankName,\n\t\t\t\t\tbankCode: bankAccount.bankCode,\n\t\t\t\t\tmin: bankAccount.minimumWithdrawal,\n\t\t\t\t\tmax: bankAccount.maximumWithdrawal,\n\t\t\t\t\tbankLogo: bankAccount.bankLogo,\n\t\t\t\t});\n\t\t\t});\n\t\t\t// setBankOption(bankList);\n\t\t\treturn bankList;\n\t\t} else {\n\t\t\tthrow responseJson[ApiKey._API_MESSAGE_KEY];\n\t\t}\n\t};\n\n\treturn (\n\t\t
\n\t\t\t{ !isLoading && hasPendingTxn && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t{timeDiffSeconds > 0\n\t\t\t\t\t\t\t\t\t? t(\"PLEASE_WAIT\") +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\tcountdownStr +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t(transType === \"Deposit\"\n\t\t\t\t\t\t\t\t\t\t? t(\"FOR_DEPOSIT_APPROVAL\")\n\t\t\t\t\t\t\t\t\t\t: t(\"FOR_WITHDRAWAL_APPROVAL\"))\n\t\t\t\t\t\t\t\t\t: headerMsg}\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{!hasPendingTxn && showWithdrawMethods && (\n\t\t\t\t<>\n\t\t\t\t\t{showConfirmation && (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetShowConfirmation(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: \"#05102F\",\n\t\t\t\t\t\t\t\tborderColor: \"white !important\",\n\t\t\t\t\t\t\t\topacity: 0.9,\n\t\t\t\t\t\t\t\tcolor: \"white\",\n\t\t\t\t\t\t\t\tmarginTop: \"68%\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tcancelBtnBsStyle=\"#45ff8b\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t(\n\t\t\t\t\t\t\t\t\"PLEASE_WAIT_FOR_PREVIOUS_TRANSACTION_APPROVAL_OR_CONTACT_CUSTOMER_SERVICE\"\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* {isInsufficientAmount && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t{t(\"AMOUNT_TOO_LESS\")}\n\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)} */}\n\n\t\t\t\t\t
\n\t\t\t\t\t\t{isInitFinished && withdrawMethods && withdrawMethods.length > 1 && (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t? \"font14 f-weight-500 mb-3\"\n\t\t\t\t\t\t\t\t\t\t\t: \"font14 f-weight-500 mb-3 disabled-action\"\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{t(\"CHOOSE_ONE_FROM_THE_AVAILABLE_OPTIONS\") }\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tmap(withdrawMethods, (item, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (hasPendingTxn) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowConfirmation(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}else if (item.handle == \"E_WALLET\"){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetActiveIndex(index);\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawMethods(false);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (item.handle == \"BANK_TRANSFER\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawBankTransfer(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse if (item.handle == \"BCPAY\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawBCPay(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse if (item.handle == \"TAKAPAY_EWALLET\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawByPhoneNumber1(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\telse if (item.handle == \"TAKAPAY_DIRECT\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawByPhoneNumber2(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// else if (item.handle == \"E_WALLET\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// \tsetShowWithdrawByEWallet(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// }\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowBackward(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedWithdrawMethod(item);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsLoading(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyle={{ cursor: \"pointer\" }}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"title\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"title disabled-action\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(item.title)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"remark\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\titem.bankOptions && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\titem.bankOptions.map((bank, bankIndex)=>{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawMethods(false);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowWithdrawByEWallet(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowBackward(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedWithdrawMethod(item);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetSelectedBank(bank.bankCode)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsLoading(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbank.bankLogo ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{bank.bankName}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/*
{bank.min} - {bank.max}
*/}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\t{isInitFinished && withdrawMethods && withdrawMethods.length == 1 && withdrawMethods[0].title ==\"BANK_TRANSFER\" && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t)}\n\t\t\t{withdrawMethods.length == 1 && withdrawMethods[0].handle == \"E_WALLET\" && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{showBackward && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{selectedWithdrawMethod.handle === \"BANK_TRANSFER\" \n\t\t\t\t\t\t\t? t(\"NORMAL_BANK_TRANSFER\") \n\t\t\t\t\t\t\t: t(`${selectedWithdrawMethod.handle}`)\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{showWithdrawBankTransfer && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{/*We don't have payment gateway for withdrawal yet*/}\n\n\t\t\t{/*{showWithdrawByPhoneNumber1 && (*/}\n\t\t\t{/*\t
*/}\n\t\t\t{/*\t\t
*/}\n\t\t\t{/*)}*/}\n\n\t\t\t{/*We don't have payment gateway for withdrawal yet*/}\n\n\t\t\t{/*{showWithdrawByPhoneNumber2 && (*/}\n\t\t\t{/*\t
*/}\n\t\t\t{/*\t\t
*/}\n\t\t\t{/*)}*/}\n\n\t\t\t{showWithdrawByEWallet && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\n\t\t\t{/* x.instantPayGatewayString === \"BCPay\")[0].id} \n\t\t\t\tbankId={instantPayOption.filter((x) => x.instantPayGatewayString === \"BCPay\")[0].instantBankSettingModel[0].bankId}\n\t\t\t\tinstantPayGatewayId={instantPayOption.filter((x) => x.instantPayGatewayString === \"BCPay\")[0].instantPayGatewayId}\n\t\t\t/> */}\n\n\t\t\t{isLoading && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default WithdrawalMethods;\n","import { themeIcons } from \"config/theme\";\nimport Deposit from \"pages/template_1/transaction/Deposit\";\nimport WithdrawalMethods from \"pages/template_1/transaction/WithdrawalMethods\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport i18n from \"localization/i18n\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setDepositModal, setDepositTab } from \"redux/AppAction\";\nimport { ApiKey, ApiUrl } from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { showResponseMessage } from \"../../redux/AppAction.js\";\nimport { numberWithCurrencyFormat } from \"../../util/Util\";\nimport { map } from \"lodash\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\nconst DepositWithdrawalModal = (props) => {\n\tvar { t } = useTranslation();\n\tconst isDepositModal = useSelector((state) => state.appState.depositModal);\n\tconst depositAndWithdrawActive = useSelector(\n\t\t(state) => state.appState.depositTab\n\t);\n\tvar _dispatch = useDispatch();\n\tconst [rolloverWarning, setRolloverWarning] = useState(false);\n\tconst [rolloverData, setRolloverData] = useState([]);\n\tconst modalRef = useRef(null);\n\n\tconst handleWithdrawalMethodsModal = () => {\t\n\t\tif ( modalRef.current) {\n\t\t\tmodalRef.current.scrollIntoView();\n\t\t}\n\t};\n\n\tasync function checkMemberRollover() {\n\t\ttry {\n\t\t\tgetLatestRolloverRecord();\n\t\t\tvar rolloverJson = await ApiEngine.get(ApiUrl._API_CHECK_MEMBER_ROLLOVER);\n\t\t\tif (rolloverJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\t_dispatch(setDepositModal(true, 2));\n\t\t\t} else {\n\t\t\t\tsetRolloverWarning(true);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t}\n\n\tasync function getLatestRolloverRecord() {\n\t\tvar responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_LATEST_ROLLOVER_RECORD\n\t\t);\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetRolloverData(responseJson[ApiKey._API_DATA_KEY]);\n\t\t}\n\t}\n\tconst closeBtn = (\n\t\t _dispatch(setDepositModal(!isDepositModal))}\n\t\t>\n\t\t\t\n\t\t\n\t );\n\n\treturn (\n\t\t {\n\t\t\t\t// setShowModal(false);\n\t\t\t\t_dispatch(setDepositModal(!isDepositModal));\n\t\t\t}}\n\t\t\tfullscreen={\"true\" }\n\t\t\t// centered\n\t\t>
\n\t\t\t{/* {\n\t\t\t\t// setShowModal(false);\n\t\t\t\t_dispatch(setDepositModal(!isDepositModal));\n\t\t\t}}>Modal title */}\n\t\t\t\t\n\t\t\t\t{depositAndWithdrawActive == 1 ? t(\"DEPOSIT\") : t(\"WITHDRAWAL\")}\n\t\t\t\n\t\t\t\n\t\t\t\t{rolloverWarning && (\n\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetRolloverWarning(false);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{t(\"ROLLOVER_REQUIREMENT_ERROR\")}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
{t(\"LATEST_ROLLOVER_PROGRESS\")}
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{rolloverData &&\n\t\t\t\t\t\t\t\t\t\t\trolloverData.length > 0 &&\n\t\t\t\t\t\t\t\t\t\t\tmap(rolloverData, (item, index) => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst percentage =\n\t\t\t\t\t\t\t\t\t\t\t\t\t(item[\"isLatestRecord\"] == 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? item[\"rolloverProgress\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"rolloverTarget\"]) == 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\t\titem[\"rolloverTarget\"] == 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"0%\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: ((item[\"isLatestRecord\"] == 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? item[\"rolloverProgress\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: item[\"rolloverTarget\"]) /\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\titem[\"rolloverTarget\"]) *\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t 100;\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t= 50\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? `rotate(180deg)`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: `rotate(${\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(percentage / 100) * 180\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t }deg)`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t 50\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? `rotate(${\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(34 / 100) * -180\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t }deg)`\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: `rotate(-0deg)`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{percentage.toFixed(2)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t%\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* {t(\"LATEST_TOP_UP\")} :{\" \"} */}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LATEST_TOP_UP_AND_BONUS\")} :{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(item[\"amount\"]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
{item[\"date\"]}
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"YOU_HAVE\")}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item[\"isLatestRecord\"] == 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? numberWithCurrencyFormat(item[\"rolloverProgress\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: numberWithCurrencyFormat(item[\"rolloverTarget\"])}{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/ {numberWithCurrencyFormat(item[\"rolloverTarget\"])}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"TO_GO\")}!\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t{t(\"ROLLOVER_RED_WARNING\")}\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t_dispatch(setDepositTab(1));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t
{t(\"DEPOSIT\")}
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tcheckMemberRollover();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t
{t(\"WITHDRAWAL\")}
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{depositAndWithdrawActive == 1 && }\n\t\t\t\t\t\t{depositAndWithdrawActive == 2 && }\n\t\t\t\t\t
\n\t\t\t\t\n\n\t\t\t\t{/*
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{depositAndWithdrawActive == 1 ? t(\"DEPOSIT\") : t(\"WITHDRAWAL\")}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t_dispatch(setDepositModal(!isDepositModal));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t_dispatch(setDepositTab(1));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
{t(\"DEPOSIT\")}
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tcheckMemberRollover();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t
{t(\"WITHDRAWAL\")}
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{depositAndWithdrawActive == 1 && }\n\t\t\t\t\t{depositAndWithdrawActive == 2 && }\n\t\t\t\t */}\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default DepositWithdrawalModal;\n","import React, { useState, useEffect } from \"react\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport { useHistory } from \"react-router-dom\";\nimport { useDispatch } from \"react-redux\";\nimport { WebUrl, ApiUrl, ApiKey } from \"../../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n Modal,\n ModalBody,\n ModalHeader,\n Nav,\n NavItem,\n NavLink,\n TabContent,\n TabPane,\n} from \"reactstrap\";\nimport {\n showResponseMessage,\n setBusy,\n setIdle,\n setY,\n setPageSize,\n} from \"../../../redux/AppAction\";\nimport { stringIsNullOrEmpty, numberWithCurrencyFormat } from \"../../../util/Util\";\nimport { map } from \"lodash\";\nimport Input from \"../../../components/custom/Input\";\nimport classnames from \"classnames\";\nimport StyledSelect from \"../../../components/custom/StyledSelect\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport ContentHeader from \"../../../components/contentheader/header\";\nimport { Spinner } from \"reactstrap\";\n\nconst DownlineDetails = (props) => {\n const { username, setShowDownlineDetail, showDownlineDetail, setShowDownlineList, setShowDownlineDetailTab } = props;\n var _history = useHistory();\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n var _location = useLocation();\n const [activeTab, setActiveTab] = useState(0);\n const [downlineData, setDownlineData] = useState({});\n const [referralUsed, setReferralUsed] = useState(\"\");\n const [categories, setCategories] = useState([]);\n const [products, setProducts] = useState([]);\n const [nickname, setNickname] = useState(\"\");\n const [referralCodeDetail, setReferralCodeDetail] = useState([]);\n const [referralGroupOptions, setReferralGroupOptions] = useState([]);\n const [selectedReferralGroup, setSelectedReferralGroup] = useState(\"\");\n const [isModalVisible, setIsModalVisible] = useState(false);\n const [productCommRate, setProductCommRate] = useState([]);\n const [loadingDetails, setLoadingDetails] = useState(true);\n\n const [editDownlineShow, setEditDownlineShow] = useState(false);\n const { register, handleSubmit, errors, setValue, watch, control, trigger } =\n useForm();\n const {\n register: registerNickname,\n handleSubmit: handleSubmitNickname,\n errors: errorsNickname,\n setValue: setValueNickname,\n watch: watchNickname,\n control: controlNickname,\n trigger: triggerNickname,\n } = useForm();\n\n useEffect(() => {\n if (username) {\n init();\n _dispatch(setPageSize(_location[\"scrollIndex\"]));\n } else {\n _history.goBack();\n }\n }, [username]);\n\n const toggleTab = (tab) => {\n if (activeTab !== tab) {\n setActiveTab(tab);\n }\n };\n\n async function init() {\n _dispatch(setBusy());\n try {\n var responseJson = await ApiEngine.get(\n `${ApiUrl._API_GET_MEMBER_DETAILS}?memberdownline=${username}`\n );\n\n if (!responseJson[ApiKey._API_SUCCESS_KEY]) {\n throw responseJson[ApiKey._API_MESSAGE_KEY];\n }\n\n setDownlineData(responseJson[ApiKey._API_DATA_KEY]);\n setLoadingDetails(false);\n setNickname(responseJson[ApiKey._API_DATA_KEY].referralNickname);\n\n //const referralCodeId = responseJson[ApiKey._API_DATA_KEY].referralCodeId;\n //getReferralDetail(referralCodeId);\n\n // var responseCatJson = await ApiEngine.get(\n // ApiUrl._API_GET_PRODUCT_CATEGORY\n // );\n // if (responseCatJson[ApiKey._API_SUCCESS_KEY]) {\n // let categoryData = responseCatJson[ApiKey._API_DATA_KEY];\n // setCategories(categoryData);\n // setActiveTab(categoryData[0][\"id\"]);\n // }\n\n //let tempProducts = [];\n\n //getProductComRate();\n\n //var responseProductJson = await ApiEngine.get(\n //\tApiUrl._API_GET_PRODUCT_WITH_MAX_RATE\n //);\n\n //if (responseProductJson[ApiKey._API_SUCCESS_KEY]) {\n //\tlet productData = responseProductJson[ApiKey._API_DATA_KEY];\n\n //\tproductData.map((product) => {\n //\t\ttempProducts.push({\n //\t\t\tproductId: product.productId,\n //\t\t\tproductName: product.productName,\n //\t\t\ttitle: product.productName,\n //\t\t\tcategoryName: product.categoryName,\n //\t\t\tmaxBonus: product.maxBonus,\n //\t\t\tmaxClubFee: product.maxClubFee,\n //\t\t\tmaxCommission: product.maxCommission,\n //\t\t});\n //\t});\n\n //\tsetProducts(tempProducts);\n //}\n } catch (errorMessage) {\n _dispatch(\n showResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY])\n );\n } finally {\n _dispatch(setIdle());\n }\n }\n\n async function getReferralDetail(id) {\n let apiUrl = ApiUrl._API_GET_MEMBER_REFERRAL_CODES;\n\n if (!stringIsNullOrEmpty(id)) {\n apiUrl += \"?id=\" + id;\n }\n let data = [];\n let dataOptions = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY][0];\n dataOptions = responseJson[ApiKey._API_DATA_KEY];\n setReferralCodeDetail(data);\n setReferralGroupOptions(\n dataOptions.map((x) => {\n return { label: x.name + \"(\" + x.code + \")\", value: x.id };\n })\n );\n }\n return data;\n }\n\n async function updateDownline() {\n _dispatch(setBusy());\n var responseJson = await ApiEngine.post(\n ApiUrl._API_UPDATE_MEMBER_DOWNLINE +\n \"?memberdownline=\" +\n username +\n \"&nickname=\" +\n nickname +\n \"&referralId=\" +\n selectedReferralGroup\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n init();\n setEditDownlineShow(false);\n }\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n t(responseJson[ApiKey._API_MESSAGE_KEY])\n )\n );\n _dispatch(setIdle());\n }\n\n async function getProductComRate() {\n let apiUrl = ApiUrl._API_PRODUCT_COMM_RATE;\n let data = [];\n let responseJson = await ApiEngine.get(apiUrl);\n if (\n responseJson[ApiKey._API_SUCCESS_KEY] &&\n responseJson[ApiKey._API_DATA_KEY].length > 0\n ) {\n data = responseJson[ApiKey._API_DATA_KEY].filter(\n (x) => x.status === true\n );\n\n setProductCommRate(data);\n }\n }\n\n async function handleOnClick() {\n setEditDownlineShow(true);\n getReferralDetail();\n setSelectedReferralGroup(\n Object.keys(referralCodeDetail).length > 0 ? referralCodeDetail.id : -1\n );\n }\n\n return (\n <>\n
\n {!editDownlineShow &&\n
\n
\n
\n
\n
\n
\n {\n setShowDownlineDetail(false);\n setShowDownlineList(true);\n setShowDownlineDetailTab(true);\n }}\n >\n \n \n
{t(\"DOWNLINE_DETAIL\")}
\n
\n
\n
\n
\n
\n
\n
\n
\n
{t(\"USERNAME\")}
\n
\n {loadingDetails ? (\n \n ) : (\n downlineData[\"username\"]\n )}\n {/* {downlineData[\"username\"]} */}\n
\n
\n
\n \n
\n
\n
\n
\n
{t(\"CONTACT_NO\")}
\n
\n {loadingDetails ? (\n \n ) : (\n downlineData[\"phoneNumber\"]\n )}\n {/* {downlineData[\"phoneNumber\"]} */}\n
\n
\n
\n
{t(\"CREATED_DATE\")}
\n
\n {loadingDetails ? (\n \n ) : (\n downlineData[\"createdDate\"]\n )}\n {/* {downlineData[\"createdDate\"]} */}\n
\n
\n
\n
\n
\n
{t(\"REMARK\")}
\n
\n {loadingDetails ? (\n \n ) : (\n downlineData[\"referralNickname\"] != \"\"\n ? downlineData[\"referralNickname\"]\n : \"-\"\n )}\n {/* {downlineData[\"referralNickname\"] != \"\"\n ? downlineData[\"referralNickname\"]\n : \"-\"} */}\n
\n
\n
\n
\n
\n }\n\n {editDownlineShow &&\n
\n
\n
\n
\n
\n
\n {\n setEditDownlineShow(false)\n }}\n >\n \n \n
{t(\"EDIT_DOWNLINE_DETAIL\")}
\n
\n
\n
\n
\n
\n
\n
\n
\n
{downlineData[\"username\"]}
\n
\n {t(\"CONTACT_NO\")} : {downlineData[\"phoneNumber\"]}\n
\n
\n
\n \n
{t(\"REMARK\")}
\n {\n setNickname(e.target.value);\n }}\n autoFocus\n />\n {errorsNickname.nickname && (\n
\n {t(errorsNickname.nickname.message)}\n
\n )}\n\n
\n
\n \n {t(\"SAVE_CHANGES\")}\n \n
\n
\n \n
\n
\n }\n
\n \n );\n};\n\nexport default DownlineDetails;\n","import React, { useState, useEffect } from \"react\";\nimport { useHistory, Link, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl, WebUrl, LanguageKey } from \"../../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n setBusy,\n setIdle,\n showResponseMessage,\n setDownlineSearchText,\n setDownlineQuery,\n setPageSize,\n setY,\n setActiveTab,\n setDownline,\n setDownlineModal,\n} from \"../../../redux/AppAction.js\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport ApiEngine from \"../../../util/ApiEngine.js\";\nimport { ModalBody, Spinner } from \"reactstrap\";\nimport moment from \"moment\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport DownlineDetails from \"../../template_1/home/DownlineDetails\";\n\nconst DownlineSummary = (props) => {\n var { t } = useTranslation(LanguageKey._PRIMARY);\n var _history = useHistory();\n var _dispatch = useDispatch();\n var _location = useLocation();\n const { register, handleSubmit, errors, setValue, watch, control, trigger } =\n useForm();\n\n const [monthOptions, setMonthOptions] = useState([]);\n const [selectedMonth, setSelectedMonth] = useState(\"\");\n const [selectedYear, setSelectedYear] = useState(\"\");\n\n const [selectedGroup, setSelectedGroup] = useState(0);\n const [downlineShow, setDownlineShow] = useState(false);\n\n const downlineState = useSelector((state) => state.appState.downline);\n const { memberData, recentData } = useSelector(\n (state) => state.appState.downline\n );\n\n const [memberLMData, setMemberLMData] = useState([]);\n const dateRangePickerOnClose = () => {\n setIsDateFilterOpen(false);\n };\n const [startDate, setStartDate] = useState(\n moment().startOf(\"isoWeek\").format(\"YYYY-MM-DD\")\n );\n const [endDate, setEndDate] = useState(\n moment().endOf('day').format(\"YYYY-MM-DD\")\n );\n const [selectedDate, setSelectedDate] = useState(\"\");\n const [queryProduct, setQueryProduct] = useState(\"\");\n const [searchTrigger, setSearchTrigger] = useState(Date.now());\n const [isDateFilterOpen, setIsDateFilterOpen] = useState(false);\n const [selectedFilterType, setSelectedFilterType] = useState(\n moment().startOf(\"isoWeek\").format(\"DD-MM-YYYY\") +\n t(\"TO\") +\n moment().endOf('day').format(\"DD-MM-YYYY\")\n );\n const filterTypeOnSelect = (value) => {\n setSelectedFilterType(value);\n };\n\n const [newGen, setNewGen] = useState(\"\");\n const [newAllGens, setNewAllGens] = useState(\"\");\n const [totalGens, setTotalGens] = useState(\"\");\n const [totalAllGen, setTotalAllGen] = useState(\"\");\n const [numberOfGen, setNumberOfGen] = useState(\"\");\n\n const [memberDetailUrl, setMemberDetailUrl] = useState(\"\");\n const [loadingDetails, setLoadingDetails] = useState(false);\n const [showDownlineDetail, setShowDownlineDetail] = useState(false);\n const [username, setUsername] = useState(\"\");\n const [showDownlineLsit, setShowDownlineList] = useState(true)\n const isDownlineModal = useSelector((state) => state.appState.downlineModal);\n\n /// \n /// Author: -\n /// \n useEffect(() => {\n init();\n getReportDate();\n }, []);\n\n useEffect(() => {\n var months = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ];\n\n var month = months.indexOf(selectedMonth);\n var year = new Date().getFullYear();\n var targetedMonth = moment(new Date(year, month, 1)).format(\"MMM YY\");\n getMemberDetails(targetedMonth);\n }, [selectedMonth]);\n\n useEffect(() => {\n // if (memberData === null && recentData === null) {\n // _dispatch(setBusy());\n // } else {\n // _dispatch(setIdle());\n // }\n getMemberDetails(startDate)\n }, [startDate, endDate]);\n\n /// \n /// Author: -\n /// \n async function init() {\n await getRecentMember();\n }\n\n /// \n /// Author: -\n /// \n async function getRecentMember() {\n setMemberDetailUrl(\n ApiUrl._API_GET_USER_MEMBER_LIST_LATEST +\n \"?keyword=&directUserOnly=true\"\n );\n\n //var responseJson = await ApiEngine.get(\n //\tApiUrl._API_GET_USER_MEMBER_LIST_LATEST +\n //\t\t\"?keyword=&count=100&directUserOnly=true\"\n //);\n\n //if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n //\t_dispatch(\n //\t\tsetDownline({\n //\t\t\t...downlineState,\n //\t\t\trecentData: responseJson[ApiKey._API_DATA_KEY],\n //\t\t})\n //\t);\n //} else {\n //\t_dispatch(\n //\t\tshowResponseMessage(\n //\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n //\t\t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n //\t\t)\n //\t);\n //}\n\n //var startOfMonth = moment().startOf('month').format('DD-MM-YYYY HH:mm:ss');\n //var endOfMonth = moment().endOf('month').format('DD-MM-YYYY HH:mm:ss');\n setLoadingDetails(true);\n var responseJson2 = await ApiEngine.get(\n ApiUrl._API_GET_NUMBER_OF_GEN +\n \"?startDate=\" +\n startDate +\n \" 00:00:00\" +\n \"&endDate=\" +\n endDate +\n \" 23:59:59\"\n );\n setLoadingDetails(false);\n\n if (responseJson2[ApiKey._API_SUCCESS_KEY]) {\n //setNewGen(responseJson2[ApiKey._API_DATA_KEY].data.newGen);\n //setNewAllGens(responseJson2[ApiKey._API_DATA_KEY].data.newAllGens);\n //setTotalGens(responseJson2[ApiKey._API_DATA_KEY].data.totalGen);\n //setTotalAllGen(responseJson2[ApiKey._API_DATA_KEY].data.totalAllGen);\n //setNumberOfGen(responseJson2[ApiKey._API_DATA_KEY].data.numberOfGen);\n setNewGen(responseJson2[ApiKey._API_DATA_KEY].data.newGen);\n setNewAllGens(responseJson2[ApiKey._API_DATA_KEY].data.newAllGens);\n setTotalGens(responseJson2[ApiKey._API_DATA_KEY].data.totalGens);\n setTotalAllGen(responseJson2[ApiKey._API_DATA_KEY].data.totalAllGen);\n setNumberOfGen(responseJson2[ApiKey._API_DATA_KEY].data.numberOfGens);\n }\n // _dispatch(setIdle());\n }\n\n async function getMemberDetails(targetedMonth) {\n setLoadingDetails(true);\n\n const controller = new AbortController();\n const signal = controller.signal;\n\n // Cancel previous request (if any)\n if (window.apiController) {\n window.apiController.abort();\n }\n window.apiController = controller;\n\n var responseJson2 = await ApiEngine.get(\n ApiUrl._API_GET_NUMBER_OF_GEN +\n \"?startDate=\" +\n moment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\") +\n \" 00:00:00\" +\n \"&endDate=\" +\n moment(endDate).startOf(\"day\").format(\"YYYY-MM-DD\") +\n \" 23:59:59\"\n , { signal });\n setLoadingDetails(false);\n\n if (responseJson2[ApiKey._API_SUCCESS_KEY]) {\n setNewGen(responseJson2[ApiKey._API_DATA_KEY].data.newGen);\n setNewAllGens(responseJson2[ApiKey._API_DATA_KEY].data.newAllGens);\n setTotalGens(responseJson2[ApiKey._API_DATA_KEY].data.totalGens);\n setTotalAllGen(responseJson2[ApiKey._API_DATA_KEY].data.totalAllGen);\n setNumberOfGen(responseJson2[ApiKey._API_DATA_KEY].data.numberOfGens);\n }\n }\n\n const getReportDate = async () => {\n var apiUrl2 = ApiUrl._API_GET_REPORT_OVERVIEW_SELECT_DATE;\n let test = await ApiEngine.get(apiUrl2);\n if (test[ApiKey._API_SUCCESS_KEY]) {\n var data2 = test[ApiKey._API_DATA_KEY];\n\n setMonthOptions(\n data2.report.map((bd) => {\n return { label: bd.name, value: bd.month };\n })\n );\n var lg = data2[\"report\"].length - 1;\n setSelectedMonth(data2[\"report\"][lg][\"month\"]);\n setSelectedYear(data2[\"report\"][lg][\"year\"]);\n }\n };\n\n\treturn (\n
\n {showDownlineDetail && (\n
\n \n
\n\n )}\n {showDownlineLsit &&\n
\n {\n setStartDate(start);\n setEndDate(end);\n getMemberDetails();\n }}\n options={true}\n initialType={selectedFilterType}\n // onClose={dateRangePickerOnClose}\n typeOnSelect={filterTypeOnSelect}\n />\n {/*
* Gen = Generation
*/}\n\n
\n
\n
\n
{t(\"NEW_GEN\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{newGen}
\n )}\n
\n\n
\n
\n
{t(\"NEW_ALL_GENS\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{newAllGens}
\n )}\n
\n
\n
\n
{t(\"UP_TO_NOW\")}
\n
\n\n
\n
\n
\n
{t(\"TOTAL_GEN\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{totalGens}
\n )}\n
\n\n
\n
\n
{t(\"TOTAL_ALL_GENS\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{totalAllGen}
\n )}\n
\n\n
\n
\n
{t(\"NUMBER_OF_GENS\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{numberOfGen}
\n )}\n
\n
\n
\n }\n\n
\n\t)\n};\n\nexport default DownlineSummary;","import React, { useState, useEffect } from \"react\";\nimport { useHistory, Link, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl, WebUrl, LanguageKey } from \"../../../util/Constant\";\nimport { useTranslation , Trans} from \"react-i18next\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport ApiEngine from \"../../../util/ApiEngine.js\";\nimport { ModalBody, Spinner } from \"reactstrap\";\nimport { map, find, debounce, orderBy } from \"lodash\";\nimport {\n setBusy,\n setIdle,\n showMessage,\n showResponseMessage,\n bindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n stringIsNullOrEmpty,\n numberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport DownlineDetails from \"../../template_1/home/DownlineDetails\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\n\nconst DownlineKPI = (props) => {\n const { setShowDownlineDetailTab } = props;\n var { t } = useTranslation(LanguageKey._PRIMARY);\n var _history = useHistory();\n var _dispatch = useDispatch();\n var _location = useLocation();\n const { register, handleSubmit, errors, setValue, watch, control, trigger } =\n useForm();\n\n const [activeMemberCount, setActiveMemberCount] = useState(\"\");\n const [inactiveMemberCount, setInactiveMemberCount] = useState(\"\");\n\n const [paginationPageNum, setPaginationPageNum] = useState(0);\n\n const [loadingDetails, setLoadingDetails] = useState(false);\n const [showDownlineDetail, setShowDownlineDetail] = useState(false);\n const [username, setUsername] = useState(\"\");\n const [showDownlineList, setShowDownlineList] = useState(true)\n const [loadingFlag, setLoadingFlag] = useState(true);\n const [searchL1DownlineMemberData, setSearchL1DownlineMemberData] = useState([]);\n const [searchKeyword, setSearchKeyword] = useState(\"\");\n const [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n const [sortOrder, setSortOrder] = useState(\"\");\n\n const [downlineStatusActiveTab, setDownlineStatusActiveTab] = useState(1);\n const scrollCategory = [\n {\n text: \"ACTIVE_DOWNLINES\",\n downlineStatusTabId: 1,\n },\n {\n text: \"NOT_ACTIVE_DOWNLINES\",\n downlineStatusTabId: 2,\n },\n ];\n\n useEffect(() => {\n init();\n }, []);\n\n useEffect(() => {\n if (downlineStatusActiveTab != undefined) {\n getDownlineMemberData();\n }\n }, [downlineStatusActiveTab]);\n\n useEffect(() => {\n if (isResetCurrentPage) {\n setSortOrder(\"\");\n }\n }, [isResetCurrentPage]);\n\n useEffect(() => {\n if (sortOrder != \"\") {\n var downlineMemberData = searchL1DownlineMemberData;\n var sortedDownlineMemberData = orderBy(downlineMemberData, [\"totalDeposit\"], sortOrder);\n\n setSearchL1DownlineMemberData(sortedDownlineMemberData);\n }\n }, [sortOrder]);\n\n async function init() {\n await getDownlineMemberStatusCount();\n }\n\n async function getDownlineMemberStatusCount() {\n setLoadingDetails(true);\n\n var responseJson = await ApiEngine.get(ApiUrl._API_GET_DOWNLINE_MEMBER_STATUS_COUNT);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n var totalActiveMemberCount = responseJson[ApiKey._API_DATA_KEY].totalActiveMemberCount;\n var totalInactiveMemberCount = responseJson[ApiKey._API_DATA_KEY].totalInactiveMemberCount;\n\n setActiveMemberCount(totalActiveMemberCount);\n setInactiveMemberCount(totalInactiveMemberCount);\n }\n\n setLoadingDetails(false);\n }\n\n async function getDownlineMemberData(page, keyword) {\n setSearchL1DownlineMemberData([]);\n setSortOrder(\"\");\n setLoadingFlag(true);\n try {\n var memberDownlineStatus = downlineStatusActiveTab === 1 ? \"activeMember\" : \"inactiveMember\" ;\n page = page ? page : 1;\n var start = (page - 1) * 10;\n\n var apiUrl = ApiUrl._API_GET_USER_MEMBER_LIST_LATEST +\n \"?directUserOnly=true&memberDownlineStatus=\" + memberDownlineStatus + \"&start=\" + start + \"&count=10&keyword=\";\n\n if (!stringIsNullOrEmpty(keyword))\n apiUrl = apiUrl + keyword;\n\n var responseJson = await ApiEngine.get(apiUrl);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setSearchL1DownlineMemberData(responseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]);\n\n var totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n updatePageinationPageNum(Math.ceil(totalCount / 10));\n\n } else {\n _dispatch(\n showMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n t(responseJson[ApiKey._API_MESSAGE_KEY])\n )\n );\n }\n } catch (err) {\n _dispatch(showResponseMessage(false, err));\n }\n setLoadingFlag(false);\n return;\n }\n\n function updatePageinationPageNum(pageValue) {\n setPaginationPageNum(prevValue => pageValue);\n }\n\n const getText = async (e) => {\n getDownlineMemberData(1, e.target.value);\n setIsResetCurrentPage(true);\n setSearchKeyword(e.target.value);\n };\n\n async function clearSearchField() {\n document.getElementById('searchField').value = \"\";\n setSearchKeyword(\"\");\n }\n\n const handleSort = () => {\n setSortOrder(prevOrder => {\n if (prevOrder === \"\")\n return \"asc\";\n\n return prevOrder === \"asc\" ? \"desc\" : \"asc\";\n });\n };\n\n return (\n
\n {showDownlineDetail && (\n
\n \n
\n )}\n {showDownlineList &&\n
\n
\n
\n
\n
{t(\"TOTAL_ACTIVE_DOWNLINES\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{activeMemberCount}
\n )}\n
\n\n
\n
\n
{t(\"TOTAL_NOT_ACTIVE_DOWNLINES\")}
\n
\n {loadingDetails ? (\n \n ) : (\n
{inactiveMemberCount}
\n )}\n
\n
\n
\n
{t(\"DOWNLINE_L1_KPIS\")}
\n
\n
\n {scrollCategory &&\n scrollCategory.length &&\n map(scrollCategory, (item, index) => {\n return (\n {\n setDownlineStatusActiveTab(item.downlineStatusTabId);\n setIsResetCurrentPage(true);\n clearSearchField();\n }}\n >\n \n {t(item.text)}\n
\n \n );\n })}\n
\n {downlineStatusActiveTab == 2 && \n
\n
\n

\n \n

\n
\n
\n }\n
\n
\n
\n \n
\n getText(e), 500)}\n />\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n {searchL1DownlineMemberData &&\n searchL1DownlineMemberData.length != 0 ? (\n searchL1DownlineMemberData.map((data, index) => {\n return (\n {\n setUsername(data.username);\n setShowDownlineDetail(true);\n setShowDownlineList(false);\n setShowDownlineDetailTab(false);\n }}\n style={{ cursor: \"pointer\" }}\n key={index}\n >\n \n \n \n \n \n );\n })\n ) : (\n loadingFlag ? (\n \n \n \n ) : (\n \n \n \n )\n )}\n \n
{t(\"USERNAME\")}{t(\"DOWNLINE_CONTACT\")}{t(\"REGISTER_DATE\")}\n \n {t(\"DEPOSIT\")}\n \n \n {\"<\"}\n {\">\"}\n \n
\n {data.username}\n \n {data.phoneNumber}\n \n {data.createdDate}\n \n {numberWithCurrencyFormat(parseFloat(data.totalDeposit), 2)}\n
\n \n \n {t(\"LOADING\")}...\n \n \n
\n {t(\"NO_DATA_FOUND\")}\n
\n
\n
\n {paginationPageNum > 1 && }\n
\n }\n \n )\n};\n\nexport default DownlineKPI;","import React, { useState, useEffect } from \"react\";\nimport { useHistory, Link, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl, WebUrl, LanguageKey } from \"../../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n setBusy,\n setIdle,\n showResponseMessage,\n setDownlineSearchText,\n setDownlineQuery,\n setPageSize,\n setY,\n setActiveTab,\n setDownline,\n setDownlineModal,\n} from \"../../../redux/AppAction.js\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport ApiEngine from \"../../../util/ApiEngine.js\";\nimport DynamicLoadTable from \"../../../components/custom/DynamicLoadTable\";\nimport StyledSelect from \"../../../components/custom/StyledSelect\";\nimport { Modal, ModalBody, Spinner, ModalHeader } from \"reactstrap\";\nimport classnames from \"classnames\";\nimport {\n createFormBody,\n createMultiPartFormBody,\n stringIsNullOrEmpty,\n} from \"../../../util/Util\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport ToggleButton from \"react-toggle-button\";\nimport { map } from \"lodash\";\nimport ContentHeader from \"../../../components/contentheader/header\";\nimport moment from \"moment\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport DownlineDetails from \"../../template_1/home/DownlineDetails\";\nimport DownLineSummary from \"../../template_1/home/DownlineSummary\";\nimport DownlineKPI from \"../../template_1/home/DownlineKPI\";\n\n/// \n/// Author: -\n/// \nconst Downline = (props) => {\n var { t } = useTranslation(LanguageKey._PRIMARY);\n var _history = useHistory();\n var _dispatch = useDispatch();\n var _location = useLocation();\n const { register, handleSubmit, errors, setValue, watch, control, trigger } =\n useForm();\n\n const [monthOptions, setMonthOptions] = useState([]);\n const [selectedMonth, setSelectedMonth] = useState(\"\");\n const [selectedYear, setSelectedYear] = useState(\"\");\n\n const [selectedGroup, setSelectedGroup] = useState(0);\n const [downlineShow, setDownlineShow] = useState(false);\n\n const downlineState = useSelector((state) => state.appState.downline);\n const { memberData, recentData } = useSelector(\n (state) => state.appState.downline\n );\n\n const [memberLMData, setMemberLMData] = useState([]);\n const dateRangePickerOnClose = () => {\n setIsDateFilterOpen(false);\n };\n const [startDate, setStartDate] = useState(\n moment().startOf(\"week\").format(\"YYYY-MM-DD\")\n );\n const [endDate, setEndDate] = useState(\n moment().endOf(\"week\").format(\"YYYY-MM-DD\")\n );\n const [selectedDate, setSelectedDate] = useState(\"\");\n const [queryProduct, setQueryProduct] = useState(\"\");\n const [searchTrigger, setSearchTrigger] = useState(Date.now());\n const [isDateFilterOpen, setIsDateFilterOpen] = useState(false);\n const [selectedFilterType, setSelectedFilterType] = useState(\n moment().startOf(\"week\").format(\"DD-MM-YYYY\") +\n t(\"TO\") +\n moment().endOf(\"week\").format(\"DD-MM-YYYY\")\n );\n const filterTypeOnSelect = (value) => {\n setSelectedFilterType(value);\n };\n\n const isDownlineModal = useSelector((state) => state.appState.downlineModal);\n const [downlineDetailsActiveTab, setDownlineDetailsActiveTab] =\n useState(1);\n const [showDownlineDetailTab, setShowDownlineDetailTab] = useState(true);\n const scrollCategory = [\n {\n text: \"DOWNLINE_SUMMARY\",\n downlineTabId: 1,\n },\n {\n text: \"DOWNLINES_KPIS\",\n downlineTabId: 2,\n },\n ];\n\n useEffect(() => {\n // if (memberData === null && recentData === null) {\n // _dispatch(setBusy());\n // } else {\n // _dispatch(setIdle());\n // }\n }, [memberData, recentData]);\n\n const closeBtn = (\n _dispatch(setDownlineModal(!isDownlineModal))}\n >\n \n \n );\n\n return (\n {\n // setShowModal(false);\n _dispatch(setDownlineModal(!isDownlineModal));\n }}\n fullscreen={\"true\"}\n // centered\n >\n \n {t(\"DOWNLINE\")}\n \n \n {showDownlineDetailTab &&\n
\n {\n scrollCategory && scrollCategory.length &&\n map(scrollCategory, (item, index) => {\n return (\n {\n setDownlineDetailsActiveTab(item.downlineTabId);\n }}\n >\n \n {t(item.text)}\n
\n \n );\n })\n }\n \n }\n {downlineDetailsActiveTab == 1 && }\n {downlineDetailsActiveTab == 2 && }\n
\n \n\n );\n};\n\nexport default Downline;\n","import { themeIcons } from \"config/theme\";\nimport Deposit from \"pages/template_1/transaction/Deposit\";\nimport Downline from \"pages/template_1/home/Downline\";\nimport WithdrawalMethods from \"pages/template_1/transaction/WithdrawalMethods\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport i18n from \"localization/i18n\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setDownlineModal, setDepositTab } from \"redux/AppAction\";\n\n\nconst DownlineModal = (props) => {\n var { t } = useTranslation();\n const isDownlineModal = useSelector(\n (state) => state.appState.downlineModal\n );\n\n var _dispatch = useDispatch();\n\n useEffect(() => {\n }, [isDownlineModal]);\n\n\n return (\n {\n // setShowModal(false);\n _dispatch(setDownlineModal(!isDownlineModal));\n\n }}\n // centered\n >\n \n
\n
\n
\n
\n {t(\"DOWNLINES\")}\n
\n
\n
\n {\n // setShowModal(!showModal)\n _dispatch(setDownlineModal(!isDownlineModal));\n\n }}\n >\n \n
\n
\n
\n \n \n
\n \n )\n}\n\nexport default DownlineModal;\n","import { themeIcons } from \"config/theme\";\nimport Deposit from \"pages/template_1/transaction/Deposit\";\nimport Downline from \"pages/template_1/home/Downline\";\nimport WithdrawalMethods from \"pages/template_1/transaction/WithdrawalMethods\";\nimport React, { useEffect, useState, useRef, useMemo } from \"react\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport i18n from \"localization/i18n\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { showMessage, setShareReferralModal } from \"redux/AppAction\";\nimport { map } from \"lodash\";\nimport { InlineShareButtons } from \"sharethis-reactjs\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tSessionKey,\n\tAlertTypes,\n} from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport {\n\tstringIsNullOrEmpty,\n\tisObjectEmpty,\n\tnumberWithCurrencyFormat,\n\tcreateFormBody,\n} from \"../../util/Util\";\n\nconst ShareReferralModal = (props) => {\n\tvar { t } = useTranslation();\n var _history = useHistory();\n\tconst isShareReferralModal = useSelector(\n\t\t(state) => state.appState.shareReferralModal\n\t);\n\tconst memberData = useSelector((state) => state.appState.member);\n\tvar _dispatch = useDispatch();\n\tconst [registerUrl, setRegisterUrl] = useState(\"\");\n\tconst [uplineLoading, setUplineLoading] = useState(false);\n const _APPEND_REGISTER_URL = \"/register?code=\";\n\n\tuseEffect(() => {\n\t\tif (memberData[\"referralCode\"]) {\n\t\t\tgetUpline(memberData[\"referralCode\"]);\n\t\t}\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (memberData[\"referralCode\"]) {\n\t\t\tgetUpline(memberData[\"referralCode\"]);\n\t\t}\n\t}, [memberData[\"referralCode\"]]);\n\n\tconst socialMediaList = [\n\t\t{\n\t\t\timage: require(\"../../assets/img/template_1/share/ig.png\"),\n\t\t\ttext: \"Instagram\",\n\t\t},\n\t\t{\n\t\t\timage: require(\"../../assets/img/template_1/share/fb.png\"),\n\t\t\ttext: \"Facebook\",\n\t\t},\n\t\t{\n\t\t\timage: require(\"../../assets/img/template_1/share/tele.png\"),\n\t\t\ttext: \"Telegram\",\n\t\t},\n\t\t{\n\t\t\timage: require(\"../../assets/img/template_1/share/wa.png\"),\n\t\t\ttext: \"Whatapps\",\n\t\t},\n\t];\n\n\tasync function getUpline(code) {\n\t\t// _dispatch(setBusy());\n\t\tsetUplineLoading(true);\n\t\tlet responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_UPLINE_BY_REFERRAL_CODE + \"?code=\" + code\n\t\t);\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tsetRegisterUrl(window.location.origin + _APPEND_REGISTER_URL + code);\n\t\t} else {\n\t\t\t_dispatch(\n\t\t\t\tshowMessage({\n\t\t\t\t\ttype: AlertTypes._ERROR,\n\t\t\t\t\tcontent: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n\t\t\t\t\tonConfirm: () => _history.replace(WebUrl._URL_MAIN),\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\t// _dispatch(setIdle());\n\t\tsetUplineLoading(false);\n\t}\n\n\tconst ShareButton = useMemo(() => {\n\t\tif (!stringIsNullOrEmpty(registerUrl)) {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t);\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}, [registerUrl]);\n\n\tconst closeBtn = (\n\t\t {\n\t\t\t_dispatch(setShareReferralModal(!isShareReferralModal));\n\t\t }}\n\t\t>\n\t\t \n\t\t\n\t );\n\n\treturn (\n\t\t {\n\t\t\t\t_dispatch(setShareReferralModal(!isShareReferralModal));\n\t\t\t}}\n\t\t\t// fullscreen={\"true\"}\n\t\t\t//centered\n\t\t>\n\t\t\t\n\t\t\t\t
{t(\"SHARE_REFERRAL\")}
\n\t\t\t
\n\t\t\t\n \t\t
\n\t\t\t\t {ShareButton}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t\t// setShowModal(!showModal)\n\t\t\t\t\t\t\t_dispatch(setShareReferralModal(!isShareReferralModal));\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t(\"CLOSE\")}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default ShareReferralModal;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport i18n from \"localization/i18n\";\nimport {\n setRegisterModal,\n} from \"../../redux/AppAction.js\";\nimport { useTranslation } from \"react-i18next\";\nimport { Alert, Modal, ModalBody, Spinner } from \"reactstrap\";\nimport Input from \"components/custom/Input\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setLoginModal, showMessage, setBusy, setIdle, bindCompanyIcon } from \"redux/AppAction\";\nimport { useForm } from \"react-hook-form\";\nimport { performLoginReturnMessage } from \"redux/AuthAction\";\nimport SecureLS from \"secure-ls\";\nimport { ApiKey, ApiUrl, SessionKey } from \"util/Constant\";\nimport { createFormBody, createMultiPartFormBody, stringIsNullOrEmpty } from \"../../util/Util\";\nimport ApiEngine from \"util/ApiEngine\";\nimport { map, debounce, find, filter, upperCase } from \"lodash\";\nimport PinInput from \"react-pin-input\";\n\nconst LoginModal = (props) => {\n var { t } = useTranslation();\n const isLoginAttemptBlockingEnabled = useSelector((state) => state.appState.isLoginAttemptBlockingEnabled);\n const isDepositModal = useSelector((state) => state.appState.depositModal);\n const depositAndWithdrawActive = useSelector(\n (state) => state.appState.depositTab\n );\n const loginModal = useSelector((state)=>state.appState.loginModal)\n var _dispatch = useDispatch();\n var ls = new SecureLS();\n const {\n register,\n handleSubmit,\n errors,\n clearErrors,\n setError,\n setValue,\n getValues,\n watch,\n control,\n trigger,\n phoneNumberChk,\n } = useForm({\n mode: \"onBlur\",\n });\n const { handleSubmit: PasswordUpdatedHandleSubmit } = useForm();\n\n const [showModalLogin, setShowModalLogin] = useState(true);\n const [hideLoginPassword, setHideLoginPassword] = useState(true);\n const [hideNewPassword, setHideNewPassword] = useState(true);\n const [hideConfirmPassword, setHideConfirmPassword] = useState(true);\n\n const [visibleLoginAlert, setVisibleLoginAlert] = useState(false);\n const [forgotPassword, setForgotPassword] = useState(false);\n const [isLoginLoading, setIsLoginLoading] = useState(false);\n const [activeLanguage, setActiveLanguage] = useState(\n localStorage.getItem(SessionKey._LANGUAGE) || \"EN\"\n );\n const [loginMessage, setLoginMessage] = useState(\"\");\n const [isForgotPasswordLoading, setIsForgotPasswordLoading] = useState(false);\n const [countdownTAC, setCountdownTAC] = useState(false);\n const [canSendTAC, setCanSendTAC] = useState(true);\n const [TACcountdownPeriod, setTACCountdownPeriod] = useState(0);\n const [verifyPhoneTAC, setVerifyPhoneTAC] = useState(false);\n const [countdownPeriod, setCountdownPeriod] = useState(0);\n const [username, setUsername] = useState(\"\");\n const [phoneNumber, setPhoneNumber] = useState(\"\");\n const [tempPhoneNum, setTempPhoneNum] = useState(\"\");\n const [isTacModal, setIsTacModal] = useState(false);\n const [isForgetPassword, setIsForgetPassword] = useState(false);\n const [attempt, setAttempt] = useState(1);\n const [FPButtonAttempt, setFPButtonAttempt] = useState(0);\n const [TACsent, setTACsent] = useState(true);\n const [TACtimedOut, setTACtimedOut] = useState(true);\n const [isUpdatePassword, setIsUpdatePassword] = useState(false);\n const [isPasswordUpdated, setIsPasswordUpdated] = useState(false);\n const [isTACLoading, setIsTACLoading] = useState(false);\n const [isResetPasswordLoading, setIsResetPasswordLoading] = useState(false);\n\n const [isLiveChatOpen, setIsLiveChatOpen] = useState(false);\n const [emailExist, setEmailExist] = useState(false);\n\n const [TACtimer, setTACtimer] = useState(setTimeout(() => {}, 60000));\n const [timerPeriod, setTimerPeriod] = useState(null);\n const _TAC_VALID_TIMER = 60; // in seconds\n const _SECONDS_IN_MS = 1000;\n const _MIN_PASSWORD_LENGTH = 8;\n const [tacCode, setTacCode] = useState(\"\"); \n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const [logo, setLogo] = useState();\n const [alertIcon, setAlertIcon] = useState();\n const [loginBanner, setLoginBanner] = useState();\n\n const elePin = useRef(null);\n const [_email, _setEmail] = useState(\"\");\n const [_emailText, _setEmailText] = useState(\"\");\n const [pinInputDisabled, setPinInputDisabled] = useState(false);\n const [tempPinNumber, setTempPinNumber] = useState();\n const OTP_VIA_SMS = 1;\n const OTP_VIA_EMAIL = 2;\n const OTP_VIA_WHATSAPP = 3;\n const [pinLoading, setPinLoading] = useState(false);\n const customerServiceUrl = \"/livechat\";\n\n const PhoneNumberPrefix = useSelector((state) => state.appState.dialingCodes);\n const isEZUsernameEnabled = useSelector((state) => state.appState.isEZUsernameEnabled);\n const [countryCode, setCountryCode] = useState(null);\n const [phoneNumberError, setPhoneNumberError] = useState(false);\n const [formattedPhone, setFormattedPhone] = useState(\"\");\n const [selectedPhonePrefix, setSelectedPhonePrefix] = useState(\"\");\n\n useEffect(() => {\n if (!stringIsNullOrEmpty(countryCode)) {\n setSelectedPhonePrefix(countryCode.value);\n }\n}, [countryCode]);\n\n useEffect(() => {\n if (!stringIsNullOrEmpty(PhoneNumberPrefix)) {\n setCountryCode(PhoneNumberPrefix[0]);\n }\n\n}, [PhoneNumberPrefix]); \n const verifyState = {\n button: 1,\n };\n const {\n register: loginRegister,\n handleSubmit: loginHandleSubmit,\n errors: loginErrors,\n setValue: loginSetValue,\n } = useForm();\n\n const {\n register: forgotPasswordRegister,\n handleSubmit: forgotPasswordHandleSubmit,\n errors: forgotPasswordErrors,\n watch: forgotPasswordWatch,\n setValue: forgotPasswordSetValue,\n unregister: forgotPasswordUnregister,\n } = useForm();\n\n const {\n register: tacVerifyRegister,\n handleSubmit: tacVerifyHandleSubmit,\n errors: tacVerifyErrors,\n watch: tacVerifyWatch,\n setValue: tacVerifySetValue,\n unregister: tacVerifyUnregister,\n } = useForm();\n\n // Register the PinInput\n useEffect(() => {\n tacVerifyRegister('taccode');\n }, [tacVerifyRegister]);\n\n const {\n register: ResetPasswordRegister,\n handleSubmit: ResetPasswordHandleSubmit,\n errors: ResetPasswordErrors,\n watch: ResetPasswordWatch,\n setValue: ResetPasswordSetValue,\n unregister: ResetPasswordUnregister,\n } = useForm();\n\n useEffect(() => {\n\t\t//bindCompanyIcon(_dispatch);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (companyIcons.length > 0) {\n\t\t\tgetCompanyIcon();\n\t\t}\n\t}, [companyIcons]);\n\n useEffect(() => {\n if (countdownPeriod > 0) {\n setTimerPeriod(\n setTimeout(() => {\n let tempPeriod = countdownPeriod - 1;\n setCountdownPeriod(tempPeriod);\n }, _SECONDS_IN_MS)\n );\n } else if (countdownPeriod == 0) {\n // console.log(\"why calling this?\");\n //checkMemberEmail();\n }\n }, [countdownPeriod]);\n\n useEffect(() => {\n if (TACcountdownPeriod > 0) {\n setTACtimer(\n setTimeout(() => {\n let tempPeriod = TACcountdownPeriod - 1;\n setTACCountdownPeriod(tempPeriod);\n }, _SECONDS_IN_MS)\n );\n }\n }, [TACcountdownPeriod]);\n\n useEffect(() => {\n if (!isTacModal) {\n clearTimeout(timerPeriod);\n clearTimeout(TACtimer);\n }\n }, [isTacModal]);\n\n /*const checkMemberEmail = async () => {\n let formData = {\n username: username,\n };\n let formBody = createMultiPartFormBody(formData);\n let res = await ApiEngine.post(ApiUrl._API_CHECK_MEMBER_EMAIL, formBody);\n setEmailExist(res.success);\n };*/\n const submitLoginForm = async (data, e) => {\n // _dispatch(setBusy());\n setIsLoginLoading(true);\n console.log(data);\n if(isEZUsernameEnabled)\n data.username = (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhone;\n\n // setLoginAttemptUsername(data.username);\n if (data.isKeepedPassword) {\n ls.set(\"gR97lPRIn797\", {\n Do3SwI4cuvqR: data.username,\n gR1IPGBN01dS: data.password,\n PYTLczcty9uH: data.isKeepedPassword,\n });\n } else {\n ls.set(\"gR97lPRIn797\", {\n Do3SwI4cuvqR: \"fake\",\n gR1IPGBN01dS: \"null\",\n PYTLczcty9uH: false,\n });\n }\n let loginRes = await _dispatch(\n performLoginReturnMessage(\n data.username,\n data.password,\n activeLanguage,\n data.isKeepedLogin,\n isLoginAttemptBlockingEnabled\n )\n );\n\n let { type: loginType, message } = loginRes;\n\n let params = {\n username: data.username,\n };\n\n if (loginType == \"LoginSuccess\") {\n setVisibleLoginAlert(false);\n // setShowModalLogin(false);\n _dispatch(setLoginModal(false))\n } else {\n setVisibleLoginAlert(true);\n setLoginMessage(message);\n\n setTimeout(() => {\n setVisibleLoginAlert(false);\n }, 5000);\n }\n // _dispatch(setIdle());\n setIsLoginLoading(false);\n\n };\n async function submitForgotPasswordForm(data) {\n // _dispatch(setBusy());\n setFPButtonAttempt(FPButtonAttempt + 1);\n setIsForgotPasswordLoading(true);\n if(isEZUsernameEnabled)\n data.username = (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhone;\n let formData = {\n language: \"en\",\n username: data.username,\n type: verifyState.button,\n usage: \"resetPassword\",\n };\n let formBody = createMultiPartFormBody(formData);\n var responseJson = await ApiEngine.post(ApiUrl._API_GENERATE_OTP, formBody);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setCountdownTAC(false);\n setUsername(data.username);\n setPhoneNumber(responseJson.data);\n setTempPhoneNum(\n responseJson.data.replace(\n responseJson.data.substr(3, responseJson.data.length - 7),\n responseJson.data\n .substr(1, responseJson.data.length - 7)\n .replace(/./g, \"*\")\n )\n );\n setIsTacModal(true);\n setVerifyPhoneTAC(true);\n setIsForgetPassword(false);\n setCanSendTAC(false);\n clearTimeout(TACtimer);\n clearTimeout(timerPeriod);\n setTACCountdownPeriod(_TAC_VALID_TIMER);\n setTACsent(true);\n setTACtimedOut(false);\n setCountdownPeriod(_TAC_VALID_TIMER);\n\n // if return object is email then directly show CS (CN player)\n let regEmail =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/;\n if (regEmail.test(responseJson.data)) {\n setAttempt(attempt + 1);\n }\n setTimeout(() => {\n setCanSendTAC(true);\n setCountdownTAC(true);\n }, _TAC_VALID_TIMER * _SECONDS_IN_MS);\n } else {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n })\n );\n // _dispatch(\n // \tshowResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY])\n // );\n }\n // _dispatch(setIdle());\n setIsForgotPasswordLoading(false);\n }\n\n const handleChange = (event) => {\n\t\t// Remove spaces and convert to lowercase\n\t\tconst newValue = event.target.value.replace(/\\s/g, \"\").toLowerCase();\n\t\t_setEmail(newValue);\n\t};\n\n async function submitVerifyTAC(pin) {\n // _dispatch(setBusy());\n setIsTACLoading(true);\n if (verifyState.button == 1) {\n let formData = {\n taccode: pin,\n username: username,\n };\n let formBody = createMultiPartFormBody(formData);\n let TACjson = await ApiEngine.post(\n ApiUrl._API_VERIFY_RESET_PASSWORD_SMS,\n formBody\n );\n if (TACjson[ApiKey._API_SUCCESS_KEY]) {\n setTacCode(pin)\n setVerifyPhoneTAC(false);\n setIsUpdatePassword(true);\n //resetForm();\n\n console.log('elePin', elePin)\n } else {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(TACjson[ApiKey._API_MESSAGE_KEY]),\n })\n );\n }\n } else if (verifyState.button == 2) {\n let formData = {\n language: \"en\",\n username: username,\n type: verifyState.button,\n usage: \"resetPassword\",\n };\n let formBody = createMultiPartFormBody(formData);\n //data[\"phoneNumber\"] = formattedPhoneNumber;\n // data[\"language\"] = \"en\";\n var responseJson = await ApiEngine.post(\n ApiUrl._API_GENERATE_OTP,\n formBody\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setCountdownTAC(false);\n setPhoneNumber(responseJson.data);\n setTempPhoneNum(\n responseJson.data.replace(\n responseJson.data.substr(3, responseJson.data.length - 7),\n responseJson.data\n .substr(1, responseJson.data.length - 7)\n .replace(/./g, \"*\")\n )\n );\n setVerifyPhoneTAC(true);\n setIsForgetPassword(false);\n setAttempt(attempt + 1);\n verifyState.button = verifyState.button + 1;\n setCanSendTAC(false);\n clearTimeout(TACtimer);\n setTACCountdownPeriod(_TAC_VALID_TIMER);\n setTACsent(true);\n setTACtimedOut(false);\n setCountdownPeriod(0);\n setCountdownPeriod(_TAC_VALID_TIMER);\n clearTimeout(timerPeriod);\n\n setTimeout(() => {\n setCanSendTAC(true);\n setCountdownTAC(true);\n setTACtimedOut(true);\n }, _TAC_VALID_TIMER * _SECONDS_IN_MS);\n\n //resetForm();\n elePin.current.clear();\n } else {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n })\n );\n // _dispatch(\n // \tshowResponseMessage(\n // \t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n // \t\tresponseJson[ApiKey._API_MESSAGE_KEY]\n // \t)\n // );\n }\n }\n // _dispatch(setIdle());\n setIsTACLoading(false);\n }\n\n async function onKeyPress(key, index) {\n\t\t//setAllowPinClick(false);\n\t\t// 1st: have to check currentPinRef\n\t\t// 2nd: have to know which index is currently focused for altering the state.value\n\t\t// 3rd: have to check if at elePin.index(3), if yes then convert value to string and focus on eleConfirm.index(0)\n\t\t// 4th: have to check if at eleConfirm.index(3), if yes then convert value to string, and submitPin\n\t\t// let currentIndex = 0;\n\t\tlet pinStr = tempPinNumber;\n\t\tlet keyLength = key.split(\"\");\n\t\tif (key !== \"{bksp}\" && key !== \" \") {\n\t\t\tpinStr = key;\n\t\t\tsetTempPinNumber(pinStr);\n\t\t\tif (keyLength.length !== 6) {\n\t\t\t} else {\n\t\t\t\tsetTempPinNumber(\"\");\n\t\t\t\tsetPinInputDisabled(true);\n\t\t\t\tsetPinLoading(true);\n\n\t\t\t\tawait submitVerifyTAC(pinStr);\n\n\t\t\t\tsetPinLoading(false);\n\t\t\t\tsetPinInputDisabled(false);\n\t\t\t}\n\t\t} else {\n\t\t\telePin[\"current\"].clear();\n\t\t\tsetTempPinNumber(\"\");\n\t\t}\n\t}\n\n async function submitNewPassword(data) {\n // _dispatch(setBusy());\n setIsResetPasswordLoading(true);\n let formData = {\n newpassword: data.newPassword,\n confpassword: data.confPassword,\n username: username,\n tacCode: tacCode\n };\n\n let formBody = createMultiPartFormBody(formData);\n\n var responseJson = await ApiEngine.post(\n ApiUrl._API_MEMBER_RESET_PASSWORD_BEFORE_LOGIN,\n formBody\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setIsUpdatePassword(false);\n setIsPasswordUpdated(true);\n } else {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n })\n );\n // _dispatch(\n // showResponseMessage(\n // responseJson[ApiKey._API_SUCCESS_KEY],\n // responseJson[ApiKey._API_MESSAGE_KEY]\n // )\n // );\n }\n // _dispatch(setIdle());\n setIsResetPasswordLoading(false);\n }\n async function submitPasswordUpdated(data) {\n setIsUpdatePassword(false);\n setIsPasswordUpdated(false);\n // setIsLogin(true);\n setIsTacModal(false);\n }\n const preventZoom = (event) => {\n event.preventDefault();\n };\n\n async function getCompanyIcon() {\n\t\t_dispatch(setBusy());\n\t\tconst logo = find(companyIcons, { iconCategory: \"logo\" });\n\t\tif (logo) {\n\t\t\tsetLogo(logo.iconImage||logo.defaultImage);\n\t\t}\n \n const alert = find(companyIcons, { iconCategory: \"alert\" });\n\t\tif (alert) {\n\t\t\tsetAlertIcon(alert.iconImage||alert.defaultImage);\n\t\t}\n\n const loginBanner = find(companyIcons, { iconCategory: \"login_popup\" });\n\t\tif (loginBanner) {\n\t\t\tsetLoginBanner(loginBanner.iconImage||loginBanner.defaultImage);\n\t\t}\n\t\t_dispatch(setIdle());\n\t}\n \n function onchange(e) {\n const re = /^[0-9\\b]+$/;\n let value = e.target.value;\n\n // Check if the value contains only digits\n if (re.test(value)) {\n // Limit the value to 12 characters\n if (value.length > 12) {\n value = value.slice(0, 12);\n }\n\n // setIsDigit(true);\n setFormattedPhone(value);\n } else {\n return false;\n // setIsDigit(false);\n }\n }\n\n return (\n
\n {\n _dispatch(setLoginModal(false))\n // setShowModalLogin(false);\n }}\n backdrop={'static'}\n centered\n fullscreen={\"true\"}\n >\n \n
\n
\n
\n \n
\n {\n // setShowModalLogin(!showModalLogin);\n _dispatch(setLoginModal(!loginModal))\n\n setForgotPassword(false);\n }}\n >\n \n
\n
\n
\n \n {t(`${loginMessage}`)}\n \n \n
\n {/*
*/}\n {/* {t(\"BUILD_THE_BEST_CASINO_TOGETHER\")}*/}\n {/*
*/}\n
\n \n
\n
\n
\n {!forgotPassword && (\n
\n
\n {!isEZUsernameEnabled &&
\n \n
\n {\n // const key = e.key;\n // const allowedKeys = ['Backspace', 'ArrowLeft', 'ArrowRight', 'Delete', 'Tab'];\n\n // if (!/[a-z0-9]/.test(key) && !allowedKeys.includes(key)) {\n // e.preventDefault();\n // }\n // }\n // }\n onKeyDown={(e) => {\n const key = e.key;\n const allowedKeys = ['Backspace', 'ArrowLeft', 'ArrowRight', 'Delete', 'Tab'];\n \n // Allow lowercase letters, numbers, and allowed keys\n if (!/[a-z0-9]/.test(key) && !allowedKeys.includes(key)) {\n if (/[A-Z]/.test(key)) {\n e.preventDefault();\n const start = e.target.selectionStart;\n const end = e.target.selectionEnd;\n \n // Insert the lowercase version of the uppercase key\n e.target.value = e.target.value.slice(0, start) + key.toLowerCase() + e.target.value.slice(end);\n // Adjust the cursor position to be after the inserted character\n e.target.setSelectionRange(start + 1, start + 1);\n } else {\n // Prevent any other unwanted key input\n e.preventDefault();\n }\n }\n }}\n />\n
\n
}\n {isEZUsernameEnabled &&
\n \n
\n
\n {\n setCountryCode(PhoneNumberPrefix[e.target.value]);\n }}\n >\n {PhoneNumberPrefix.map((prefix, index) => {\n return (\n \n {prefix.label}\n \n );\n })}\n \n
\n
\n {\n const key = e.key;\n const allowedKeys = [\n \"Backspace\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n \"Tab\",\n ];\n\n if (\n !/[0-9]/.test(key) &&\n !allowedKeys.includes(key)\n ) {\n e.preventDefault();\n }\n\n // Prevent '0' as the first character\n const inputValue = e.target.value;\n if (inputValue.length === 0 && key === \"0\") {\n e.preventDefault();\n }\n }}\n onChange={(e) => {\n let newValue = e.target.value;\n\n // Remove all non-numeric characters\n newValue = newValue.replace(/[^0-9]/g, '');\n\n // Remove all leading zeros\n newValue = newValue.replace(/^0+/, '');\n\n loginSetValue(\"registerPhone\", newValue, { shouldValidate: true }); \n \n // Call your original `onChange` function\n onchange(e);\n \n // Update the input field with the modified value\n e.target.value = newValue;\n\n }}\n />\n\n {phoneNumberError == true ? (\n
\n
\n {t(\"NUMBER_NOT_AVAILABLE\")}\n
\n
\n ) : errors.registerPhone ? (\n
\n
\n {t(errors.registerPhone.message)}\n
\n
\n ) : (\n \"\"\n )}\n
\n
\n
}\n
\n \n
\n \n \n setHideLoginPassword(!hideLoginPassword)\n }\n />\n
\n
\n
\n
\n \n {t(\"REMEMBER_ME\")}\n
\n
\n
\n
\n \n {isLoginLoading ? (\n \n ) : (\n t(\"LOGIN\")\n )}\n \n
\n
\n setForgotPassword(true)}\n disabled={isLoginLoading}\n >\n {t(\"FORGOT_PASSWORD\")}\n \n\n \n
\n \n
\n
\n {t(\"DO_NOT_HAVE_AN_ACCOUNT_YET\")}{\" \"} { _dispatch(setLoginModal(false)); _dispatch(setRegisterModal(true)); }}>{t(\"REGISTER_NOW\")}\n
\n
\n
\n )}\n {forgotPassword && (\n \n
\n
\n {\n setForgotPassword(false);\n }}\n >\n \n
\n
{t(\"FORGOT_PASSWORD\")}
\n
\n {!isEZUsernameEnabled && \n
\n \n
\n \n
\n
}\n {isEZUsernameEnabled &&
\n \n
\n
\n {\n setCountryCode(PhoneNumberPrefix[e.target.value]);\n }}\n >\n {PhoneNumberPrefix.map((prefix, index) => {\n return (\n \n {prefix.label}\n \n );\n })}\n \n
\n
\n {\n const key = e.key;\n const allowedKeys = [\n \"Backspace\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n \"Tab\",\n ];\n\n if (\n !/[0-9]/.test(key) &&\n !allowedKeys.includes(key)\n ) {\n e.preventDefault();\n }\n\n // Prevent '0' as the first character\n const inputValue = e.target.value;\n if (inputValue.length === 0 && key === \"0\") {\n e.preventDefault();\n }\n }}\n onChange={(e) => {\n let newValue = e.target.value;\n\n // Remove all non-numeric characters\n newValue = newValue.replace(/[^0-9]/g, '');\n\n // Remove all leading zeros\n newValue = newValue.replace(/^0+/, '');\n\n forgotPasswordSetValue(\"registerPhone\", newValue, { shouldValidate: true }); \n \n // Call your original `onChange` function\n onchange(e);\n \n // Update the input field with the modified value\n e.target.value = newValue;\n\n }}\n />\n\n {phoneNumberError == true ? (\n
\n
\n {t(\"NUMBER_NOT_AVAILABLE\")}\n
\n
\n ) : errors.registerPhone ? (\n
\n
\n {t(errors.registerPhone.message)}\n
\n
\n ) : (\n \"\"\n )}\n
\n
\n
}\n
\n
\n \n {FPButtonAttempt > 2 && (\n
\n \n
\n )}\n
\n
\n
\n \n )}\n
\n
\n \n \n \n {\n setIsTacModal(false);\n setIsForgetPassword(true);\n setVerifyPhoneTAC(false);\n setIsUpdatePassword(false);\n setIsPasswordUpdated(false);\n // setIsLogin(true);\n \n }}\n centered\n >\n \n
\n
\n
\n \n
\n {\n setIsTacModal(!isTacModal)\n }}\n >\n \n
\n
\n
\n
\n {/*
*/}\n {/* {t(\"BUILD_THE_BEST_CASINO_TOGETHER\")}*/}\n {/*
*/}\n
\n \n
\n
\n
\n {verifyPhoneTAC && (\n <>\n
\n

\n {t(\"RESET_PASSWORD\")}\n

\n
\n {t(\"ENTER_THE_CODE_WE_SENT_TO\")}{\" \"}\n {_emailText != \"\" ? _emailText : tempPhoneNum}.\n
\n {\n onKeyPress(value, index);\n }}\n />\n {TACsent && countdownPeriod != 0 && (\n

\n {t(\"TAC_SENT\")}{\" \"}{/* {t(\"RESEND_IN\")} */}{countdownPeriod}s\n

\n )}\n\n {pinLoading ? (\n
\n \n
\n ) : (\n \"\"\n )}\n\n {countdownPeriod == 0 && (\n
\n \n {t(\"DIDNT_RECEIVE_A_CODE\")}\n
\n \n \n
\n\n // TODO: Change forgot password system to allow resend OTP once after 60s.\n // {attemp == 1 && (\n //
\n // {\n // setSendOTPViaEmail(true);\n // }}\n // disabled={pinInputDisabled}\n // >\n // {t(\"RECEIVE_OTP_VIA_EMAIL\")}\n // \n //
\n // )}\n // {attemp == 2 && (\n //
\n // setIsLiveChatOpen(true)}\n // disabled={pinInputDisabled}\n // >\n // {t(\"CONTACT_CUSTOMER_SERVICE\")}\n // \n //
\n // )}\n )}\n
\n\t\t\t\t\t\t\t\t\t\n )}\n {isUpdatePassword && (\n
\n
\n
\n
{t(\"RESET_PASSWORD\")}
\n
\n
\n \n
\n \n watch(\"confPassword\") == \"\" ||\n value != watch(\"confPassword\") ||\n \"PASSWORD_MISMATCH\",\n })}\n errors={ResetPasswordErrors}\n onKeyDown={(e) => {\n const key = e.key;\n const allowedKeys = [\n \"Backspace\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n \"Tab\",\n ];\n\n if (\n !/[a-zA-Z0-9]/.test(key) &&\n !allowedKeys.includes(key)\n ) {\n e.preventDefault();\n }\n }}\n />\n \n setHideNewPassword(!hideNewPassword)\n }\n />\n
\n
\n
\n
\n \n {t(\"REGISTER_PAGE_MIN_8_CHARS\")}\n
\n
\n \n {t(\"ONLY_LETTERS_NUMBERS_9\")}\n
\n
\n \n {t(\"NO_SPECIAL_SYMBOLS\")}\n
\n
\n
\n \n
\n \n watch(\"newPassword\") == \"\" ||\n value != watch(\"newPassword\") ||\n \"PASSWORD_MISMATCH\",\n })}\n errors={ResetPasswordErrors}\n />\n \n setHideConfirmPassword(!hideConfirmPassword)\n }\n />\n
\n
\n
\n
\n \n
\n
\n
\n
\n )}\n {isPasswordUpdated && (\n \n
\n

\n {t(\"RESET_PASSWORD_SUCCESS\")}\n

\n
\n {\n setIsTacModal(!isTacModal);\n setForgotPassword(false);\n // setShowModalLogin(true);\n _dispatch(setLoginModal(true));\n }}\n >\n \n
\n
\n
\n \n )}\n
\n \n \n
\n \n \n );\n};\n\nexport default LoginModal;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { themeIcons } from \"config/theme\";\nimport { useForm } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Modal, ModalBody, Spinner } from \"reactstrap\";\nimport Input from \"components/custom/Input\";\nimport { ApiKey,ApiUrl } from \"util/Constant\";\nimport { createMultiPartFormBody } from \"../../util/Util\";\nimport { setResetPassword } from \"redux/AppAction\";\nimport VIcon from \"components/custom/Icon\";\nimport ApiEngine from \"util/ApiEngine\";\nimport { showResponseMessage } from \"redux/AppAction\";\nconst ResetPasswordModal = (props) => {\n var { t } = useTranslation();\n var _dispatch = useDispatch();\n const _MIN_PASSWORD_LENGTH = 8;\n\n const isResetPassword = useSelector(\n (state) => state.appState.isResetPassword\n );\n const [isResetPasswordLoading, setResetPasswordLoading] = useState(false);\n const [hideNewPassword, setHideNewPassword] = useState(true);\n const [hideConfirmPassword, setHideConfirmPassword] = useState(true);\n\n const {\n register: resetPassword,\n handleSubmit: resetPasswordHandleSubmit,\n errors: resetPasswordErrors,\n setError: setResetPasswordError,\n } = useForm();\n\n const submitResetPasswordForm = async (data, e) => {\n\n let { password, confirm_password } = data;\n\n if (password !== confirm_password) {\n setResetPasswordError(\"confirm_password\", {\n message: \"PASSWORD_MISMATCH\",\n });\n } else {\n var responseJson = await ApiEngine.post(\n ApiUrl._API_MEMBER_FIRST_TIME_RESET_PASSWORD,\n createMultiPartFormBody(data)\n );\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n _dispatch(setResetPassword(false));\n }\n\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n responseJson[ApiKey._API_MESSAGE_KEY]\n )\n );\n }\n };\n return (\n
\n {\n _dispatch(setResetPassword(false));\n // setShowModalLogin(false);\n }}\n backdrop={\"static\"}\n centered\n fullscreen\n >\n \n
\n
\n
\n
{t(\"CHANGE_PASSWORD\")}
\n
\n _dispatch(setResetPassword(!isResetPassword))}\n >\n \n
\n
\n
\n \n
\n \n
\n \n setHideNewPassword(!hideNewPassword)}\n />\n
\n
\n
\n \n
\n \n \n setHideConfirmPassword(!hideConfirmPassword)\n }\n />\n
\n
\n
\n \n {isResetPasswordLoading ? (\n \n ) : (\n t(\"SAVE\")\n )}\n \n
\n \n
\n
\n \n \n \n );\n};\n\nexport default ResetPasswordModal;\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tTransactionType,\n\tTransactionStatus,\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport { debounce, map, find, filter, upperCase, orderBy } from \"lodash\";\nimport { themeIcons } from \"config/theme\";\nimport Spinner from \"react-bootstrap/Spinner\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\n\nconst TransactionHistory = () => {\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst { t, i18n } = useTranslation();\n\tconst [transactionDetailsActiveTaB, setTransactionDetailsActiveTaB] =\n\t\tuseState(1);\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [sortOrder, setSortOrder] = useState(\"\");\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n\tconst [searchTransactionHistory, setSearchTransactionHistory] = useState([]);\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\")\n\t\t\t: moment().startOf(\"isoWeek\")\n\t);\n\tconst [endDate, setEndDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[1], \"DD-MM-YYYY\")\n\t\t\t: moment().endOf(\"day\")\n\t);\n\n\tconst [selectedFilterType, setSelectedFilterType] = useState(\n\t\t_location?.state?.date\n\t\t\t? _location.state.date\n\t\t\t: moment().startOf(\"isoWeek\").format(\"DD-MM-YYYY\") +\n\t\t\t\t\tt(\"TO\") +\n\t\t\t\t\tmoment().endOf(\"day\").format(\"DD-MM-YYYY\")\n\t);\n\n\tconst filterTypeOnSelect = (value) => {\n\t\tsetSelectedFilterType(value);\n\t};\n\n\tconst scrollCategory = [\n\t\t{\n\t\t\ttext: \"DEPOSITS\",\n\t\t\ttransactionTypeId: 1,\n\t\t},\n\t\t{\n\t\t\ttext: \"WITHDRAWALS\",\n\t\t\ttransactionTypeId: 2,\n\t\t},\n\t];\n\n\tuseEffect(() => {\n\t\tif (transactionDetailsActiveTaB != undefined) {\n\t\t\tgetTransactionData();\n\t\t}\n\t}, [startDate, endDate, transactionDetailsActiveTaB]);\n\n\tuseEffect(() => {\n\t\tif (isResetCurrentPage) {\n\t\t\tsetSortOrder(\"\");\n\t\t}\n\t}, [isResetCurrentPage]);\n\n\tuseEffect(() => {\n\t\tif (sortOrder != \"\") {\n\t\t\tvar transactionData = searchTransactionHistory;\n\t\t\tvar sortedtransactionData = orderBy(\n\t\t\t\ttransactionData,\n\t\t\t\t[\"amount\"],\n\t\t\t\tsortOrder\n\t\t\t);\n\n\t\t\tsetSearchTransactionHistory(sortedtransactionData);\n\t\t}\n\t}, [sortOrder]);\n\n\tasync function getTransactionData(page, keyword) {\n\t\tsetSearchTransactionHistory([]);\n\t\tsetLoadingFlag(true);\n\t\ttry {\n\t\t\tpage = page ? page : 1;\n\t\t\tvar start = (page - 1) * 10;\n\n\t\t\tsetTransactionDetailsActiveTaB(transactionDetailsActiveTaB);\n\t\t\tvar apiUrl = `${\n\t\t\t\tApiUrl._API_GET_TRANSACTION_BY_MEMBER_DEPOSIT_AND_WITHDRAWAL +\n\t\t\t\t\"?StartDate=\" +\n\t\t\t\tmoment(startDate).format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&EndDate=\" +\n\t\t\t\tmoment(endDate).format(\"YYYY-MM-DD\")\n\t\t\t}`;\n\n\t\t\tif (transactionDetailsActiveTaB != 0) {\n\t\t\t\tapiUrl += \"&Type=\" + transactionDetailsActiveTaB;\n\t\t\t}\n\n\t\t\tapiUrl = apiUrl + \"&start=\" + start + \"&count=10\";\n\n\n\t\t\tvar responseJson = await ApiEngine.get(apiUrl);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetSearchTransactionHistory(\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t\t\t\t);\n\n\t\t\t\tvar totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t\t\t\tupdatePageinationPageNum(Math.ceil(totalCount / 10));\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetLoadingFlag(false);\n\t\treturn;\n\t}\n\n\tfunction updatePageinationPageNum(pageValue) {\n\t\tsetPaginationPageNum((prevValue) => pageValue);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

{t(\"TRANSACTION_RECORD\")}

\n\t\t\t {\n\t\t\t\t\tsetStartDate(start);\n\t\t\t\t\tsetEndDate(end);\n\t\t\t\t}}\n\t\t\t\toptions={true}\n\t\t\t\tinitialType={selectedFilterType}\n\t\t\t\t// onClose={dateRangePickerOnClose}\n\t\t\t\ttypeOnSelect={filterTypeOnSelect}\n\t\t\t/>\n\n\t\t\t
\n\t\t\t\t{scrollCategory &&\n\t\t\t\t\tscrollCategory.length &&\n\t\t\t\t\tmap(scrollCategory, (item, index) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetTransactionDetailsActiveTaB(item.transactionTypeId);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t
{t(item.text)}
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{searchTransactionHistory &&\n\t\t\t\t\t\t\tsearchTransactionHistory.length != 0 ? (\n\t\t\t\t\t\t\t\tsearchTransactionHistory.map((data, index) => {\n\t\t\t\t\t\t\t\t\tvar imgSrc = \"\";\n\t\t\t\t\t\t\t\t\tvar transactionType = \"\";\n\t\t\t\t\t\t\t\t\tswitch (data[\"transactionTypeId\"]) {\n\t\t\t\t\t\t\t\t\t\tcase TransactionType._DEPOSIT:\n\t\t\t\t\t\t\t\t\t\t\timgSrc = themeIcons.card;\n\t\t\t\t\t\t\t\t\t\t\ttransactionType = \"DEPOSIT\";\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase TransactionType._WITHDRAWAL:\n\t\t\t\t\t\t\t\t\t\t\timgSrc = themeIcons.okup_withdraw;\n\t\t\t\t\t\t\t\t\t\t\ttransactionType = \"WITHDRAWAL\";\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase TransactionType._TRANSFER:\n\t\t\t\t\t\t\t\t\t\t\timgSrc = themeIcons.wallet;\n\t\t\t\t\t\t\t\t\t\t\ttransactionType = \"TRANSFER\";\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\timgSrc = themeIcons.settingsBank;\n\t\t\t\t\t\t\t\t\t\t\ttransactionType = \"\";\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tvar statusHtml = \"\";\n\t\t\t\t\t\t\t\t\tswitch (data[\"approvalStatus\"]) {\n\t\t\t\t\t\t\t\t\t\tcase TransactionStatus._APPROVED:\n\t\t\t\t\t\t\t\t\t\t\tstatusHtml = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"APPROVED\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase TransactionStatus._REJECTED:\n\t\t\t\t\t\t\t\t\t\t\tstatusHtml = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"REJECTED\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tcase TransactionStatus._OPEN:\n\t\t\t\t\t\t\t\t\t\t\tstatusHtml = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"PROCESSING\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\tstatusHtml = (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"PROCESSING\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"DATE\")}{t(\"AMOUNT\")}{t(\"STATUS\")}{t(\"DESCRIPTION\")}
\n\t\t\t\t\t\t\t\t\t\t\t\t{moment(data.dateTime, \"DD/MM/YYYY, HH:mm:ss\").format(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"DD-MM-YYYY HH:mm:ss\"\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(parseFloat(data.amount), 2)}\n\t\t\t\t\t\t\t\t\t\t\t{statusHtml}\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"channel\"] != \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t? t(transactionType) + \" - \" + data[\"channel\"]\n\t\t\t\t\t\t\t\t\t\t\t\t\t: t(transactionType)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{paginationPageNum > 1 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default TransactionHistory;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport {\n\tApiKey,\n\tApiUrl,\n\tWebUrl,\n\tBetStatus,\n\tLanguageKey,\n\t_TICKET_STATUS,\n} from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport { Spinner } from \"reactstrap\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport { map, orderBy } from \"lodash\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\n\nconst GameHistory = () => {\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst { t, i18n } = useTranslation(LanguageKey._PRIMARY);\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [sortOrder, setSortOrder] = useState(\"\");\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n\tconst [gameHistoryData, setGameHistoryData] = useState([]);\n\tconst [products, setProducts] = useState([]);\n\tconst { control, watch, setValue } = useForm();\n\tconst [queryProduct, setQueryProduct] = useState(\"\");\n\tconst [totalProducts, setTotalProducts] = useState(0);\n\tconst [searchKeyword, setSearchKeyword] = useState(\"\");\n\tconst [loadingSearchData, setLoadingSearchData] = useState(false);\n\tconst [recordUrl, setRecordUrl] = useState(\"\");\n\tconst [selectedOption, setSelectedOption] = useState({});\n\tconst [optionClicked, setOptionClicked] = useState(false);\n\tconst [dateSelectedOption, setDateSelectedOption] = useState({});\n\tconst [chgOption, setchgOption] = useState();\n\tconst GroupDateRequired=true;\n\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\")\n\t\t\t: moment().startOf(\"isoWeek\")\n\t);\n\tconst [endDate, setEndDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[1], \"DD-MM-YYYY\")\n\t\t\t: moment().endOf(\"day\")\n\t);\n\tconst [selectedFilterType, setSelectedFilterType] = useState(\n\t\t_location?.state?.date\n\t\t\t? _location.state.date\n\t\t\t: moment().startOf(\"isoWeek\").format(\"DD-MM-YYYY\") +\n\t\t\t\t\tt(\"TO\") +\n\t\t\t\t\tmoment().endOf(\"day\").format(\"DD-MM-YYYY\")\n\t);\n\n\tconst filterTypeOnSelect = (value) => {\n\t\tsetSelectedFilterType(value);\n\t};\n\n\tuseEffect(() => {\n\t\tinit();\n\t}, []);\n\n\tuseEffect(() => {\n\t\tsetSearchKeyword(\"\");\n\t}, []);\n\n\tuseEffect(() => {\n\t\tlet startDateMoment = dateSelectedOption.from\n\t\t\t? dateSelectedOption.from\n\t\t\t: moment();\n\t\tlet endDateMoment = dateSelectedOption.to\n\t\t\t? dateSelectedOption.to\n\t\t\t: moment();\n\n\t\tif (startDate === undefined || optionClicked) {\n\t\t\tsetStartDate(startDateMoment);\n\t\t} else setStartDate(startDate);\n\t\tif (endDate === undefined || optionClicked) {\n\t\t\tsetEndDate(endDateMoment);\n\t\t} else setStartDate(startDate);\n\n\t\tsetOptionClicked(false);\n\t}, [dateSelectedOption]);\n\n\tuseEffect(() => {\n\t\tgetGameRecords();\n\t}, [selectedOption, startDate, endDate]);\n\n\tuseEffect(() => {\n\t\tif (isResetCurrentPage) {\n\t\t\tsetSortOrder(\"\");\n\t\t}\n\t}, [isResetCurrentPage]);\n\n\tuseEffect(() => {\n\t\tif (sortOrder != \"\") {\n\t\t\tvar gameHistoryData = gameHistoryData;\n\t\t\tvar sortedGameHistoryData = orderBy(\n\t\t\t\tgameHistoryData,\n\t\t\t\t[\"amount\"],\n\t\t\t\tsortOrder\n\t\t\t);\n\n\t\t\tsetGameHistoryData(sortedGameHistoryData);\n\t\t}\n\t}, [sortOrder]);\n\n\tasync function init() {\n\t\tsetLoadingSearchData(true);\n\t\ttry {\n\t\t\tvar responseJson = await ApiEngine.get(\n\t\t\t\t`${ApiUrl._API_GET_ASSIGNED_MEMBER_PRODUCT}?ignoreAccountProductStatus=true`\n\t\t\t);\n\n\t\t\tconst productList = [];\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][\"products\"].forEach(function (\n\t\t\t\t\tproduct\n\t\t\t\t) {\n\t\t\t\t\tproductList.push({\n\t\t\t\t\t\tlabel: product.productName,\n\t\t\t\t\t\tvalue: product.productId,\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tsetProducts(productList);\n\t\t\tsetTotalProducts(productList.length);\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetLoadingSearchData(false);\n\t}\n\n\tasync function getGameRecords(page, keyword) {\n\t\tsetGameHistoryData([]);\n\t\tsetLoadingFlag(true);\n\t\ttry {\n\t\t\tpage = page ? page : 1;\n\t\t\tvar start = (page - 1) * 10;\n\n\t\t\tvar apiUrl =\n\t\t\t\tApiUrl._API_GET_GAME_RECORD_BY_MEMBER +\n\t\t\t\t\"?startDate=\" +\n\t\t\t\tmoment(startDate).format(\"YYYY-MM-DD\") +\n\t\t\t\t\" 00:00:00\" +\n\t\t\t\t\"&endDate=\" +\n\t\t\t\tmoment(endDate).format(\"YYYY-MM-DD\") +\n\t\t\t\t\" 23:59:59\" +\n\t\t\t\t\"&v=\" +\n\t\t\t\tDate.now() +\n\t\t\t\t\"&GroupDateRequired=\" +GroupDateRequired+\n\t\t\t\t\"&TicketStatus=1\";\n\n\t\t\tif (typeof selectedOption !== \"undefined\" && selectedOption > 0) {\n\t\t\t\tapiUrl += \"&productId=\" + selectedOption;\n\t\t\t}\n\n\t\t\tsetValue(\n\t\t\t\t\"productId\",\n\t\t\t\tstringIsNullOrEmpty(queryProduct) ? null : queryProduct\n\t\t\t);\n\n\t\t\tapiUrl = apiUrl + \"&start=\" + start + \"&count=10\";\n\n\t\t\tsetRecordUrl(apiUrl);\n\n\t\t\tvar responseJson = await ApiEngine.get(apiUrl);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetGameHistoryData(\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t\t\t\t);\n\n\t\t\t\tvar totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t\t\t\tupdatePageinationPageNum(Math.ceil(totalCount / 10));\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetLoadingFlag(false);\n\t\treturn;\n\t}\n\n\tuseEffect(() => {\n\t\tif (chgOption) {\n\t\t\tsetOptionClicked(true);\n\t\t\tsetSelectedFilterType(\"\");\n\t\t\tsetchgOption(false);\n\t\t}\n\t}, [chgOption]);\n\n\tfunction updatePageinationPageNum(pageValue) {\n\t\tsetPaginationPageNum((prevValue) => pageValue);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

{t(\"BET_RECORD\")}

\n\t\t\t
\n\t\t\t\t
{t(\"STATISTICS\")}
\n\t\t\t\t
\n\t\t\t\t\t{!loadingSearchData ? (\n\t\t\t\t\t\tproducts && products.length > 0 ? (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetSelectedOption(e.target.value);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{products.map((item, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t\t\t)\n\t\t\t\t\t) : (\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t {\n\t\t\t\t\tsetStartDate(start);\n\t\t\t\t\tsetEndDate(end);\n\t\t\t\t}}\n\t\t\t\toptions={true}\n\t\t\t\tinitialType={selectedFilterType}\n\t\t\t\t// onClose={dateRangePickerOnClose}\n\t\t\t\ttypeOnSelect={filterTypeOnSelect}\n\t\t\t/>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{gameHistoryData && gameHistoryData.length != 0 ? (\n\t\t\t\t\t\t\t\tgameHistoryData.map((data, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(data[\"netProfit\"]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"GAMES\")}{t(\"DATE\")}{t(\"BET_AMOUNT\")}{t(\"NET_PROFIT\")}
{data[\"gameName\"]}\n\t\t\t\t\t\t\t\t\t\t\t\t{data[\"date\"]}\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(data[\"amount\"]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{paginationPageNum > 1 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default GameHistory;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport { ApiKey, ApiUrl, WebUrl } from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport { map, orderBy } from \"lodash\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\nconst CommissionHistory = () => {\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst { t, i18n } = useTranslation();\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [sortOrder, setSortOrder] = useState(\"\");\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n\tconst [commissionData, setCommissionData] = useState([]);\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\").format(\n\t\t\t\t\t\"YYYY-MM-DD\"\n\t\t\t )\n\t\t\t: moment().startOf(\"week\").format(\"YYYY-MM-DD\")\n\t);\n\tconst [endDate, setEndDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[1], \"DD-MM-YYYY\").format(\n\t\t\t\t\t\"YYYY-MM-DD\"\n\t\t\t )\n\t\t\t: moment().endOf(\"week\").format(\"YYYY-MM-DD\")\n\t);\n\tconst [commissionUrl, setCommissionUrl] = useState(\"\");\n\tconst [selectedFilterType, setSelectedFilterType] = useState(\n\t\t_location?.state?.date\n\t\t\t? _location.state.date\n\t\t\t: moment().startOf(\"week\").format(\"DD-MM-YYYY\") +\n\t\t\t\t\tt(\"TO\") +\n\t\t\t\t\tmoment().endOf(\"week\").format(\"DD-MM-YYYY\")\n\t);\n\n\tconst filterTypeOnSelect = (value) => {\n\t\tsetSelectedFilterType(value);\n\t};\n\n\tuseEffect(() => {\n\t\tgetCommissionData();\n\t}, [startDate, endDate]);\n\n\tuseEffect(() => {\n\t\tif (isResetCurrentPage) {\n\t\t\tsetSortOrder(\"\");\n\t\t}\n\t}, [isResetCurrentPage]);\n\n\tuseEffect(() => {\n\t\tif (sortOrder != \"\") {\n\t\t\tvar commData = commissionData;\n\t\t\tvar sortedCommissionMemberData = orderBy(commData, [\"amount\"], sortOrder);\n\n\t\t\tsetCommissionData(sortedCommissionMemberData);\n\t\t}\n\t}, [sortOrder]);\n\n\tasync function getCommissionData(page, keyword) {\n\t\tsetCommissionData([]);\n\t\tsetLoadingFlag(true);\n\t\ttry {\n\t\t\tpage = page ? page : 1;\n\t\t\tvar start = (page - 1) * 10;\n\n\t\t\tvar apiUrl =\n\t\t\t\tApiUrl._API_GET_COMMISSION_HISTORY +\n\t\t\t\t\"?StartDate=\" +\n\t\t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&EndDate=\" +\n\t\t\t\tmoment(endDate).endOf(\"day\").format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&v=\" +\n\t\t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\");\n\n\t\t\tapiUrl = apiUrl + \"&start=\" + start + \"&count=10\";\n\n\t\t\tsetCommissionUrl(apiUrl);\n\n\t\t\tvar responseJson = await ApiEngine.get(apiUrl);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetCommissionData(\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t\t\t\t);\n\n\t\t\t\tvar totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t\t\t\tupdatePageinationPageNum(Math.ceil(totalCount / 10));\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetLoadingFlag(false);\n\t\treturn;\n\t}\n\n\tfunction updatePageinationPageNum(pageValue) {\n\t\tsetPaginationPageNum((prevValue) => pageValue);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

{t(\"COMMISSION_RECORD\")}

\n\t\t\t {\n\t\t\t\t\tsetStartDate(start);\n\t\t\t\t\tsetEndDate(end);\n\t\t\t\t}}\n\t\t\t\toptions={true}\n\t\t\t\tinitialType={selectedFilterType}\n\t\t\t\t// onClose={dateRangePickerOnClose}\n\t\t\t\ttypeOnSelect={filterTypeOnSelect}\n\t\t\t/>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{commissionData && commissionData.length != 0 ? (\n\t\t\t\t\t\t\t\tcommissionData.map((data, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"DATE\")}{t(\"REBATE\")}{t(\"SALES\")}{t(\"REMARK\")}
\n\t\t\t\t\t\t\t\t\t\t\t\t{data.parsedTime}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(data.amount),\n\t\t\t\t\t\t\t\t\t\t\t\t\t3,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(parseFloat(data.turnover), 3)}\n\t\t\t\t\t\t\t\t\t\t\t{data.remark}
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{paginationPageNum > 1 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default CommissionHistory;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport { ApiKey, ApiUrl, WebUrl } from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport { map, orderBy } from \"lodash\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\nconst RebateHistory = () => {\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst { t, i18n } = useTranslation();\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [sortOrder, setSortOrder] = useState(\"\");\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n\tconst [commissionData, setCommissionData] = useState([]);\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\").format(\n\t\t\t\t\t\"YYYY-MM-DD\"\n\t\t\t )\n\t\t\t: moment().startOf(\"week\").format(\"YYYY-MM-DD\")\n\t);\n\tconst [endDate, setEndDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[1], \"DD-MM-YYYY\").format(\n\t\t\t\t\t\"YYYY-MM-DD\"\n\t\t\t )\n\t\t\t: moment().endOf(\"week\").format(\"YYYY-MM-DD\")\n\t);\n\tconst [commissionUrl, setCommissionUrl] = useState(\"\");\n\tconst [selectedFilterType, setSelectedFilterType] = useState(\n\t\t_location?.state?.date\n\t\t\t? _location.state.date\n\t\t\t: moment().startOf(\"week\").format(\"DD-MM-YYYY\") +\n\t\t\t\t\tt(\"TO\") +\n\t\t\t\t\tmoment().endOf(\"week\").format(\"DD-MM-YYYY\")\n\t);\n\n\tconst filterTypeOnSelect = (value) => {\n\t\tsetSelectedFilterType(value);\n\t};\n\n\tuseEffect(() => {\n\t\tgetCommissionData();\n\t}, [startDate, endDate]);\n\n\tuseEffect(() => {\n\t\tif (isResetCurrentPage) {\n\t\t\tsetSortOrder(\"\");\n\t\t}\n\t}, [isResetCurrentPage]);\n\n\tuseEffect(() => {\n\t\tif (sortOrder != \"\") {\n\t\t\tvar commData = commissionData;\n\t\t\tvar sortedCommissionMemberData = orderBy(commData, [\"amount\"], sortOrder);\n\n\t\t\tsetCommissionData(sortedCommissionMemberData);\n\t\t}\n\t}, [sortOrder]);\n\n\tasync function getCommissionData(page, keyword) {\n\t\tsetCommissionData([]);\n\t\tsetLoadingFlag(true);\n\t\ttry {\n\t\t\tpage = page ? page : 1;\n\t\t\tvar start = (page - 1) * 10;\n\n\t\t\tvar apiUrl =\n\t\t\t\tApiUrl._API_GET_REBATES_RECORD +\n\t\t\t\t\"?StartDate=\" +\n\t\t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&EndDate=\" +\n\t\t\t\tmoment(endDate).endOf(\"day\").format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&v=\" +\n\t\t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\");\n\n\t\t\tapiUrl = apiUrl + \"&start=\" + start + \"&count=10\";\n\n\t\t\tsetCommissionUrl(apiUrl);\n\n\t\t\tvar responseJson = await ApiEngine.get(apiUrl);\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetCommissionData(\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t\t\t\t);\n\n\t\t\t\tvar totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t\t\t\tupdatePageinationPageNum(Math.ceil(totalCount / 10));\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t_dispatch(showResponseMessage(false, err));\n\t\t}\n\t\tsetLoadingFlag(false);\n\t\treturn;\n\t}\n\n\tfunction updatePageinationPageNum(pageValue) {\n\t\tsetPaginationPageNum((prevValue) => pageValue);\n\t}\n\n\treturn (\n\t\t
\n\t\t\t

{t(\"REBATE_RECORD\")}

\n\t\t\t {\n\t\t\t\t\tsetStartDate(start);\n\t\t\t\t\tsetEndDate(end);\n\t\t\t\t}}\n\t\t\t\toptions={true}\n\t\t\t\tinitialType={selectedFilterType}\n\t\t\t\t// onClose={dateRangePickerOnClose}\n\t\t\t\ttypeOnSelect={filterTypeOnSelect}\n\t\t\t/>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{commissionData && commissionData.length != 0 ? (\n\t\t\t\t\t\t\t\tcommissionData.map((data, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"DATE\")}{t(\"REBATE\")}{t(\"SALES\")}{t(\"REMARK\")}
\n\t\t\t\t\t\t\t\t\t\t\t\t{data.parsedTime}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(data.amount),\n\t\t\t\t\t\t\t\t\t\t\t\t\t3,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(parseFloat(data.turnover), 3)}\n\t\t\t\t\t\t\t\t\t\t\t{data.remark}
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\t{paginationPageNum > 1 && (\n\t\t\t\t\n\t\t\t)}\n\t\t
\n\t);\n};\n\nexport default RebateHistory;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport moment from \"moment\";\nimport { ApiKey, ApiUrl, WebUrl } from \"../../../util/Constant\";\nimport ApiEngine from \"../../../util/ApiEngine\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowMessage,\n\tshowResponseMessage,\n\tbindCompanyIcon,\n} from \"../../../redux/AppAction\";\nimport {\n\tstringIsNullOrEmpty,\n\tnumberWithCurrencyFormat,\n} from \"../../../util/Util\";\nimport { map, orderBy } from \"lodash\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport PaginationBar from \"../../../components/custom/PaginationBar\";\nimport Spinner from \"react-bootstrap/Spinner\";\n\nconst DailyCheckInHistory = () => {\n\tlet _history = useHistory();\n\tlet _location = useLocation();\n\tconst _dispatch = useDispatch();\n\tconst { t, i18n } = useTranslation();\n\tconst [paginationPageNum, setPaginationPageNum] = useState(0);\n\tconst [isResetCurrentPage, setIsResetCurrentPage] = useState(false);\n\tconst [sortOrder, setSortOrder] = useState(\"\");\n\tconst [loadingFlag, setLoadingFlag] = useState(true);\n \tconst [dailyRecordData, setDailyRecordData] = useState([]);\n\n\tconst [startDate, setStartDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[0], \"DD-MM-YYYY\").format(\n\t\t\t\t\t\"YYYY-MM-DD\"\n\t\t\t )\n\t\t\t: moment().startOf(\"week\").format(\"YYYY-MM-DD\")\n\t);\n\tconst [endDate, setEndDate] = useState(\n\t\t_location?.state?.date\n\t\t\t? moment(_location.state.date.split(t(\"TO\"))[1], \"DD-MM-YYYY\").format(\n\t\t\t\t\t\"YYYY-MM-DD\"\n\t\t\t )\n\t\t\t: moment().endOf(\"week\").format(\"YYYY-MM-DD\")\n\t);\n\tconst [commissionUrl, setCommissionUrl] = useState(\"\");\n\tconst [selectedFilterType, setSelectedFilterType] = useState(\n\t\t_location?.state?.date\n\t\t\t? _location.state.date\n\t\t\t: moment().startOf(\"week\").format(\"DD-MM-YYYY\") +\n\t\t\t\t\tt(\"TO\") +\n\t\t\t\t\tmoment().endOf(\"week\").format(\"DD-MM-YYYY\")\n\t);\n\n\tconst filterTypeOnSelect = (value) => {\n\t\tsetSelectedFilterType(value);\n\t};\n\n\tuseEffect(() => {\n\t\t// getCommissionData();\n\t\tgetDailyCheckInData();\n\t}, [startDate, endDate]);\n\n\t// useEffect(() => {\n\t// \tif (isResetCurrentPage) {\n\t// \t\tsetSortOrder(\"\");\n\t// \t}\n\t// }, [isResetCurrentPage]);\n\n\t// useEffect(() => {\n\t// \tif (sortOrder != \"\") {\n\t// \t\tvar commData = commissionData;\n\t// \t\tvar sortedCommissionMemberData = orderBy(commData, [\"amount\"], sortOrder);\n\n\t// \t\tsetCommissionData(sortedCommissionMemberData);\n\t// \t}\n\t// }, [sortOrder]);\n\n\tasync function getDailyCheckInData(){\n\t\tsetDailyRecordData([]);\n\t\tsetLoadingFlag(true);\n\t\ttry{\n\t\t\t// page = page ? page : 1;\n\t\t\t// var start = (page - 1) * 10;\n\n\t\t\tvar apiUrl =\n\t\t\t\tApiUrl._API_GET_DAILY_CHECK_IN_RECORD +\n\t\t\t\t\"?StartDate=\" +\n\t\t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\") +\n\t\t\t\t\"&EndDate=\" +\n\t\t\t\tmoment(endDate).endOf(\"day\").format(\"YYYY-MM-DD\");\n\n\t\t\tapiUrl = apiUrl;\n\n\t\t\tvar responseJson = await ApiEngine.get(apiUrl);\n\t\t\tconsole.log(responseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY])\n\n\t\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t\tsetDailyRecordData(\n\t\t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t\t\t\t);\n\n\t\t\t\t// var totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t\t\t\t// updatePageinationPageNum(Math.ceil(totalCount / 10));\n\t\t\t} else {\n\t\t\t\t_dispatch(\n\t\t\t\t\tshowMessage(\n\t\t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t\t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t}catch(err){\n\t\t\t_dispatch(showResponseMessage(false, err));\n\n\t\t}\n\t\tsetLoadingFlag(false);\n\n\n\t}\n\t// async function getCommissionData(page, keyword) {\n\t// \tsetCommissionData([]);\n\t// \tsetLoadingFlag(true);\n\t// \ttry {\n\t// \t\tpage = page ? page : 1;\n\t// \t\tvar start = (page - 1) * 10;\n\n\t// \t\tvar apiUrl =\n\t// \t\t\tApiUrl._API_GET_REBATES_RECORD +\n\t// \t\t\t\"?StartDate=\" +\n\t// \t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\") +\n\t// \t\t\t\"&EndDate=\" +\n\t// \t\t\tmoment(endDate).endOf(\"day\").format(\"YYYY-MM-DD\") +\n\t// \t\t\t\"&v=\" +\n\t// \t\t\tmoment(startDate).startOf(\"day\").format(\"YYYY-MM-DD\");\n\n\t// \t\tapiUrl = apiUrl + \"&start=\" + start + \"&count=10\";\n\n\t// \t\tsetCommissionUrl(apiUrl);\n\n\t// \t\tvar responseJson = await ApiEngine.get(apiUrl);\n\n\t// \t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\t\tsetCommissionData(\n\t// \t\t\t\tresponseJson[ApiKey._API_DATA_KEY][ApiKey._API_DATA_KEY]\n\t// \t\t\t);\n\n\t// \t\t\tvar totalCount = responseJson[ApiKey._API_DATA_KEY].totalCount;\n\t// \t\t\tupdatePageinationPageNum(Math.ceil(totalCount / 10));\n\t// \t\t} else {\n\t// \t\t\t_dispatch(\n\t// \t\t\t\tshowMessage(\n\t// \t\t\t\t\tresponseJson[ApiKey._API_SUCCESS_KEY],\n\t// \t\t\t\t\tt(responseJson[ApiKey._API_MESSAGE_KEY])\n\t// \t\t\t\t)\n\t// \t\t\t);\n\t// \t\t}\n\t// \t} catch (err) {\n\t// \t\t_dispatch(showResponseMessage(false, err));\n\t// \t}\n\t// \tsetLoadingFlag(false);\n\t// \treturn;\n\t// }\n\n\t// function updatePageinationPageNum(pageValue) {\n\t// \tsetPaginationPageNum((prevValue) => pageValue);\n\t// }\n\n\treturn (\n\t\t
\n\t\t\t

{t(\"DAILY_CHECK_IN\")}

\n\t\t\t {\n\t\t\t\t\tsetStartDate(start);\n\t\t\t\t\tsetEndDate(end);\n\t\t\t\t}}\n\t\t\t\toptions={true}\n\t\t\t\tinitialType={selectedFilterType}\n\t\t\t\t// onClose={dateRangePickerOnClose}\n\t\t\t\ttypeOnSelect={filterTypeOnSelect}\n\t\t\t/>\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{dailyRecordData && dailyRecordData.length != 0 ? (\n\t\t\t\t\t\t\t\tdailyRecordData.map((data, index) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t) : loadingFlag ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t
{t(\"DATE\")}{t(\"DAYS\")}{t(\"ROLLOVER\")}{t(\"AMOUNT\")}
\n\t\t\t\t\t\t\t\t\t\t\t\t{moment(data.date).format(\"DD-MM-YYY\")}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{data.days}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{data.rolloverMultiplier}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{numberWithCurrencyFormat(\n\t\t\t\t\t\t\t\t\t\t\t\t\tparseFloat(data.amount),\n\t\t\t\t\t\t\t\t\t\t\t\t\t3,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{t(\"LOADING\")}...\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t\t
\n\t);\n};\n\nexport default DailyCheckInHistory;\n","import React, { useState, useEffect } from \"react\";\nimport { useHistory, Link, useLocation } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl, WebUrl, LanguageKey } from \"../../../util/Constant\";\nimport { useTranslation } from \"react-i18next\";\nimport {\n\tsetBusy,\n\tsetIdle,\n\tshowResponseMessage,\n\tsetPageSize,\n\tsetY,\n\tsetActiveTab,\n\tsetReportOverviewModal,\n} from \"../../../redux/AppAction.js\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport ApiEngine from \"../../../util/ApiEngine.js\";\nimport DynamicLoadTable from \"../../../components/custom/DynamicLoadTable\";\nimport StyledSelect from \"../../../components/custom/StyledSelect\";\nimport { Modal, ModalBody, Spinner, ModalHeader } from \"reactstrap\";\nimport classnames from \"classnames\";\nimport {\n\tcreateFormBody,\n\tcreateMultiPartFormBody,\n\tstringIsNullOrEmpty,\n} from \"../../../util/Util\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport ToggleButton from \"react-toggle-button\";\nimport { map } from \"lodash\";\nimport ContentHeader from \"../../../components/contentheader/header\";\nimport moment from \"moment\";\nimport DateRangeFilter from \"components/custom/DateRangeFilter\";\nimport { themeIcons } from \"config/theme\";\nimport VIcon from \"components/custom/Icon\";\nimport TransactionHistory from \"../report/TransactionHistory\";\nimport GameHistory from \"../report/GameHistory\";\nimport CommissionHistory from \"../report/CommissionHistory\";\nimport RebateHistory from \"../report/RebateHistory\";\nimport DailyCheckInHistory from \"./DailyCheckInHistory\";\n\nconst ReportOverview = (props) => {\n\tvar { t } = useTranslation(LanguageKey._PRIMARY);\n\tvar _history = useHistory();\n\tvar _dispatch = useDispatch();\n\tvar _location = useLocation();\n\tconst [loadingSearchData, setLoadingSearchData] = useState(false);\n const dailyCheckInExist = useSelector((state) => state.appState.dailyCheckInExist);\n\n\tconst recordType = [\n\t\t{\n\t\t\tlabel: \"TRANSACTION_RECORD\",\n\t\t\tvalue: 1,\n\t\t},\n\t\t{\n\t\t\tlabel: \"BET_RECORD\",\n\t\t\tvalue: 2,\n\t\t},\n\t\t{\n\t\t\tlabel: \"COMMISSION_RECORD\",\n\t\t\tvalue: 3,\n\t\t},\n\t\t{\n\t\t\tlabel: \"REBATE_RECORD\",\n\t\t\tvalue: 4,\n\t\t},\n\t];\n\n\tconst updatedRecordType = [\n\t\t...recordType,\n\t\t...(dailyCheckInExist\n\t\t\t? [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: \"DAILY_CHECK_IN\",\n\t\t\t\t\t\tvalue: 5,\n\t\t\t\t\t},\n\t\t\t ]\n\t\t\t: []),\n\t];\n\tconst [selectedOption, setSelectedOption] = useState(1);\n\tconst { memberData, recentData } = useSelector(\n\t\t(state) => state.appState.downline\n\t);\n\n\tconst isReportOverviewModal = useSelector((state) => state.appState.reportOverviewModal);\n\n\tuseEffect(() => {\n\t\t// if (memberData === null && recentData === null) {\n\t\t// _dispatch(setBusy());\n\t\t// } else {\n\t\t// _dispatch(setIdle());\n\t\t// }\n\t}, [memberData, recentData]);\n\n\tconst closeBtn = (\n\t\t _dispatch(setReportOverviewModal(!isReportOverviewModal))}\n\t\t>\n\t\t\t\n\t\t\n\t);\n\n\treturn (\n\t\t {\n\t\t\t\t// setShowModal(false);\n\t\t\t\t_dispatch(setReportOverviewModal(!isReportOverviewModal));\n\t\t\t}}\n\t\t\tfullscreen={\"true\"}\n\t\t\t// centered\n\t\t>\n\t\t\t{t(\"HISTORY_RECORD\")}\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
{t(\"RECORD_TYPE\")}
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{!loadingSearchData ? (\n\t\t\t\t\t\t\t\trecordType && recordType.length > 0 ? (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectedOption(e.target.value);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{updatedRecordType.map((item, index) => {\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t
{t(\"NO_DATA_FOUND\")}
\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t{selectedOption == 1 && }\n\t\t\t\t{selectedOption == 2 && }\n\t\t\t\t{selectedOption == 3 && }\n\t\t\t\t{selectedOption == 4 && }\n\t\t\t\t{selectedOption == 5 && }\n\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default ReportOverview;\n","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef, useCallback } from \"react\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport i18n from \"localization/i18n\";\nimport {\n setRegisterModal,\n showResponseMessage,\n setLoginModal,\n showMessage,\n setDepositModal,\n setCompleteInfoModal\n} from \"../../redux/AppAction.js\";\nimport { useTranslation } from \"react-i18next\";\nimport { Alert, Modal, ModalBody, Spinner } from \"reactstrap\";\nimport Input from \"components/custom/Input\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\n// import { setLoginModal, showMessage, setBusy, setIdle, bindCompanyIcon } from \"redux/AppAction\";\nimport { useForm } from \"react-hook-form\";\nimport { performLoginReturnMessage } from \"redux/AuthAction\";\nimport SecureLS from \"secure-ls\";\nimport {\n AlertTypes, ApiKey, ApiUrl,\n /*PhoneNumberPrefix,*/\n SessionKey\n} from \"util/Constant\";\nimport { createFormBody, createMultiPartFormBody, stringIsNullOrEmpty, waitForFbPixel } from \"../../util/Util\";\nimport ApiEngine from \"util/ApiEngine\";\nimport { map, debounce, find, filter, upperCase, get } from \"lodash\";\nimport PinInput from \"react-pin-input\";\nimport {\n\tloadCaptchaEnginge,\n\tLoadCanvasTemplateNoReload,\n\tvalidateCaptcha,\n} from \"react-simple-captcha\";\n\n\nconst RegisterModal = (props) => {\n var _dispatch = useDispatch();\n var { t } = useTranslation();\n\n const search = window.location.search;\n\n const params = new URLSearchParams(search);\n const elePin = useRef(null);\n\n const PhoneNumberPrefix = useSelector((state) => state.appState.dialingCodes);\n const [referralCode, setReferralCode] = useState(\"\");\n const [loginBanner, setLoginBanner] = useState();\n const [disableRegister, setDisableRegister] = useState(false);\n const [isRegisterLoading, setIsRegisterLoading] = useState(false);\n const [disableViaEmail, setDisableViaEmail] = useState(false);\n const [viaEmailLoading, setViaEmailLoading] = useState(false);\n const [password, setPassword] = useState(\"\");\n const [showCodeError, setShowCodeError] = useState(false);\n const [referralCodeString, setReferralCodeString] = useState(\"\");\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n var { heartBeat } = useSelector((state) => state.authState);\n const registerModal = useSelector((state) => state.appState.registerModal);\n const companyLanguages = useSelector((state) => state.appState.languages);\n\n const [logo, setLogo] = useState();\n const [selectedChannel, setSelectedChannel] = useState();\n\n const [disabledRefrerral, setDisabledRefrerral] = useState(false);\n\n const [_username, _setUsername] = useState(\"\");\n const [_email, _setEmail] = useState(\"\");\n\n const [_emailText, _setEmailText] = useState(\"\");\n \n const [selectedPhonePrefix, setSelectedPhonePrefix] = useState(\"\");\n const [countryCode, setCountryCode] = useState(null);\n \n const [phoneNumberError, setPhoneNumberError] = useState(false);\n\n const [formattedPhone, setFormattedPhone] = useState(\"\");\n const _MIN_PASSWORD_LENGTH = 8;\n const [hideLoginPassword, setHideLoginPassword] = useState(true);\n\n const [registerSteps, setRegisterSteps] = useState(1);\n const [registerStepsViaEmail, setRegisterStepsViaEmail] = useState(false);\n const [registerStepsViaOtherChannel, setRegisterStepsViaOtherChannel] = useState(false);\n\n const [registerStepsThreeFirst, setRegisterStepsThreeFirst] = useState(false);\n const [pinInputDisabled, setPinInputDisabled] = useState(false);\n\n const [TACsent, setTACsent] = useState(true);\n\n const [countdownPeriod, setCountdownPeriod] = useState(0);\n const [TACcountdownPeriod, setTACCountdownPeriod] = useState(0);\n const [TACtimedOut, setTACtimedOut] = useState(true);\n const [canSendTAC, setCanSendTAC] = useState(true);\n const [TACtimer, setTACtimer] = useState(setTimeout(() => { }, 60000));\n // const [TACtimer, setTACtimer] = useState(setTimeout(() => {}, 5000));\n\n const _TAC_VALID_TIMER = 60000;\n // const _TAC_VALID_TIMER = 5000;\n\n const _SECONDS_IN_MS = 1000;\n const _TAC_TIMEOUT_IN_MINUTES = 1;\n\n const [pinLoading, setPinLoading] = useState(false);\n const [timerPeriod, setTimerPeriod] = useState(null);\n\n const customerServiceUrl = \"/livechat\";\n const [attemp, setAttemp] = useState(1);\n var registerChannel = useSelector((state) => state.appState.chatSphere);\n const [alertIcon, setAlertIcon] = useState();\n\n const [tempPinNumber, setTempPinNumber] = useState();\n const OTP_VIA_SMS = 1;\n const OTP_VIA_EMAIL = 2;\n const OTP_BY_WHATSAPP = 3;\n const OTP_VIA_TELEGRAM = 4;\n\n const [phoneNumber, setPhoneNumber] = useState(\"\");\n\n //new flow\n const [smsChannel, setSmsChannel] = useState(false);\n const [chatSphereChannel, setChatSphereChannel] = useState(false);\n const [chatSphereChannelList, setChatSphereChannelList] = useState([])\n const [channleClick, setChannleClick] = useState('')\n\n const [channelType, setChannelType] = useState(OTP_VIA_SMS)\n\n const [showModalRegister, setShowModalRegister] = useState(false)\n\n const otpEnabled = useSelector((state) => state.appState.otpEnabled);\n const captchaEnabled = useSelector((state) => state.appState.captchaEnabled);\n const priorityModalType = useSelector((state) => state.appState.priorityModalTypeId)\n const isEZUsernameEnabled = useSelector((state) => state.appState.isEZUsernameEnabled);\n\n const {\n register,\n handleSubmit,\n errors,\n clearErrors,\n setError,\n setValue,\n getValues,\n watch,\n control,\n trigger,\n phoneNumberChk,\n } = useForm();\n\n const _captcha_length = 4;\n\n useEffect(() => {\n\n // init();\n //loadCaptchaEnginge(_captcha_length, \"black\", \"white\", \"numbers\");\n const parsedReferralCode = params.get(\"code\");\n if (parsedReferralCode != null && !heartBeat) {\n // getUpline(parsedReferralCode);\n _dispatch(setRegisterModal(true));\n setReferralCode(parsedReferralCode);\n setReferralCodeString(parsedReferralCode)\n // setRegisterSteps(2);\n checkIfReferralExist(parsedReferralCode);\n } else if (parsedReferralCode != null && heartBeat) {\n _dispatch(\n showMessage({\n //KT: The company icons details not loaded when reach this point.\n content: t(\"ALREADY_LOGIN\"),\n })\n );\n }\n\n }, []);\n \nuseEffect(() => {\n if (!stringIsNullOrEmpty(countryCode)) {\n setSelectedPhonePrefix(countryCode.value);\n }\n}, [countryCode]);\n\n useEffect(() => {\n if (!stringIsNullOrEmpty(PhoneNumberPrefix)) {\n setCountryCode(PhoneNumberPrefix[0]);\n }\n}, [PhoneNumberPrefix]); \n\n useEffect(() => {\n if (companyIcons.length > 0) {\n getCompanyIcon();\n }\n }, [companyIcons]);\n\n useEffect(() => {\n if (registerModal) {\n setShowModalRegister(true)\n init();\n }\n }, [registerModal]);\n\n useEffect(() => {\n\n if (!showModalRegister) {\n setRegisterSteps(1);\n setAttemp(1);\n _setEmail(\"\");\n _setEmailText(\"\");\n clearTimeout(timerPeriod);\n clearTimeout(TACtimer);\n setRegisterStepsThreeFirst(false)\n\n }\n }, [showModalRegister]);\n\n\n useEffect(() => {\n if (countdownPeriod > 0) {\n setTimerPeriod(\n setTimeout(() => {\n let tempPeriod = countdownPeriod - 1;\n setCountdownPeriod(tempPeriod);\n }, _SECONDS_IN_MS)\n );\n }\n }, [countdownPeriod]);\n\n useEffect(() => {\n if (TACcountdownPeriod > 0) {\n setTACtimer(\n setTimeout(() => {\n let tempPeriod = TACcountdownPeriod - 1;\n setTACCountdownPeriod(tempPeriod);\n }, _SECONDS_IN_MS)\n );\n }\n }, [TACcountdownPeriod]);\n\n\n const init = async () => {\n\n let responseJson = await ApiEngine.get(ApiUrl._API_GET_COMPANY_CHANNEL);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n let channelList = responseJson[ApiKey._API_DATA_KEY]\n if (channelList) {\n setChatSphereChannel(channelList.chatSphereChannelEnabled);\n setSmsChannel(channelList.smsChannelEnabled);\n\n if (channelList.chatSphereActionType.length > 0) {\n setChatSphereChannelList(channelList.chatSphereActionType)\n }\n }\n }\n if (captchaEnabled){\n loadCaptchaEnginge(_captcha_length, \"black\", \"white\", \"numbers\");\n }\n }\n async function getCompanyIcon() {\n // _dispatch(setBusy());\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n\n\n const loginBanner = find(companyIcons, { iconCategory: \"login_popup\" });\n if (loginBanner) {\n setLoginBanner(loginBanner.iconImage||loginBanner.defaultImage);\n }\n\n const logo = find(companyIcons, { iconCategory: \"logo\" });\n if (logo) {\n setLogo(logo.iconImage||logo.defaultImage);\n }\n\n // _dispatch(setIdle());\n }\n\n async function checkIfReferralExist(code) {\n let referralCode = code;\n if (code.includes(\" +\")) {\n referralCode = code.substring(0, code.indexOf(\" +\"));\n }\n let apiUrl =\n ApiUrl._API_CHECK_IF_REFERRAL_CODE_EXIST + \"?code=\" + referralCode;\n let responseJson = await ApiEngine.get(apiUrl);\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setDisabledRefrerral(true);\n setRegisterSteps(1);\n } else {\n _dispatch(\n showResponseMessage(\n responseJson[ApiKey._API_SUCCESS_KEY],\n t(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\")\n )\n );\n }\n }\n\n const validateReferralCode = (e) => {\n var regexp = /^[A-Za-z0-9]+$/i;\n if (e.nativeEvent.data === null || regexp.test(e.nativeEvent.data)) {\n setReferralCode(e.target.value);\n }\n };\n const onChangeUsername = useCallback(\n debounce(async (e) => {\n var regexp = /^[\\S]*^[^ \\[\\]`~\\/!@#$%^&*()\"':;?|{}=+_<>,.\\\\-]*$/g;\n if (e.nativeEvent.data === null || regexp.test(e.nativeEvent.data)) {\n _setUsername(e.target.value);\n }\n }, 500),\n []\n );\n\n async function checkUsername(username) {\n let avail = true;\n let responseJson = await ApiEngine.get(\n ApiUrl._API_CHECK_USERNAME +\n \"?username=\" +\n username +\n \"&code=\" +\n referralCode\n );\n avail = responseJson[ApiKey._API_SUCCESS_KEY];\n\n\n return avail;\n }\n\n\n function onchange(e) {\n const re = /^[0-9\\b]+$/;\n let value = e.target.value;\n\n // Check if the value contains only digits\n if (re.test(value)) {\n // Limit the value to 12 characters\n if (value.length > 12) {\n value = value.slice(0, 12);\n }\n\n // setIsDigit(true);\n setFormattedPhone(value);\n } else {\n return false;\n // setIsDigit(false);\n }\n }\n\n const handleChange = (event) => {\n // Remove spaces and convert to lowercase\n const newValue = event.target.value.replace(/\\s/g, \"\").toLowerCase();\n _setEmail(newValue);\n };\n\n async function checkIfReferralExist2(code) {\n let referralCode = code;\n if (code.includes(\" +\")) {\n referralCode = code.substring(0, code.indexOf(\" +\"));\n }\n let apiUrl =\n ApiUrl._API_CHECK_IF_REFERRAL_CODE_EXIST + \"?code=\" + referralCode;\n let responseJson = await ApiEngine.get(apiUrl);\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n return true;\n } else {\n return false;\n }\n }\n\n async function submitPin(pin) {\n let params = {\n username: _username,\n email: _email,\n password: password,\n phoneNumber: (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhone,\n referralCode: referralCodeString,\n TAC: pin,\n otpEnabled : otpEnabled\n };\n\n if (companyLanguages != undefined) {\n\t\t\tconst defaultLang = get(companyLanguages[0], \"code\");\n\t\t\tif (\n\t\t\t\tlocalStorage.getItem(SessionKey._LANGUAGE) &&\n\t\t\t\tlocalStorage.getItem(SessionKey._LANGUAGE) !== \"undefined\"\n\t\t\t) {\n\t\t\t\tif (\n\t\t\t\t\tcompanyLanguages.find(\n\t\t\t\t\t\t(x) => x.code === localStorage.getItem(SessionKey._LANGUAGE)\n\t\t\t\t\t) != undefined\n\t\t\t\t) {\n params[\"languageSetting\"] = companyLanguages.find(\n (x) => x.code === localStorage.getItem(SessionKey._LANGUAGE)\n ).code;\n\t\t\t\t} else {\n\t\t\t\t\tparams[\"languageSetting\"] = defaultLang;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tparams[\"languageSetting\"] = defaultLang;\n\t\t\t}\n\t\t}\n\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_REGISTER,\n createFormBody(params)\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n setRegisterSteps(3);\n _dispatch(\n showMessage({\n type: AlertTypes._SUCCESS,\n content: t(\"REGISTRATION_COMPLETED\"), // KT: Can say something about deposit now and get promotion etc maybe ?\n onConfirm: async () => {\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY]) {\n // KT: Register completed.\n _dispatch(setRegisterModal(false));\n setShowModalRegister(false)\n if(priorityModalType == 1){\n _dispatch(setDepositModal(true));\n\n }else{\n _dispatch(setCompleteInfoModal(true));\n\n }\n } else {\n window.location.replace(\"https://www.google.com\");\n }\n } else {\n }\n },\n })\n );\n\n // Check if FB Pixel exists and has valid Pixel ID\n if (responseJson[ApiKey._API_DATA_KEY]) {\n waitForFbPixel(() => {\n if (!sessionStorage.getItem(\"fbqCompleteRegistrationFired\")) {\n window.fbq('track', 'CompleteRegistration');\n sessionStorage.setItem(\"fbqCompleteRegistrationFired\", \"true\");\n }\n });\n }\n } else {\n _dispatch(\n showResponseMessage(false, t(responseJson[ApiKey._API_MESSAGE_KEY]))\n );\n elePin[\"current\"].clear();\n // setPinNumber(\"\");\n // setEnteredPinNumber(\"\");\n // setEnteredPinNumberConfirm(\"\");\n // setPinNumberConfirmFocused(0);\n }\n }\n\n async function onKeyPress(key, index) {\n //setAllowPinClick(false);\n // 1st: have to check currentPinRef\n // 2nd: have to know which index is currently focused for altering the state.value\n // 3rd: have to check if at elePin.index(3), if yes then convert value to string and focus on eleConfirm.index(0)\n // 4th: have to check if at eleConfirm.index(3), if yes then convert value to string, and submitPin\n // let currentIndex = 0;\n let pinStr = tempPinNumber;\n let keyLength = key.split(\"\");\n if (key !== \"{bksp}\" && key !== \" \") {\n pinStr = key;\n setTempPinNumber(pinStr);\n if (keyLength.length !== 6) {\n } else {\n setTempPinNumber(\"\");\n setPinInputDisabled(true);\n setPinLoading(true);\n\n await submitPin(pinStr);\n\n setPinLoading(false);\n setPinInputDisabled(false);\n }\n } else {\n elePin[\"current\"].clear();\n // setPinNumber(\"\");\n // setTempPinNumber(\"\");\n // setPinNumberConfirmFocused(0);\n // setTempPinNumberFocused(0);\n }\n }\n\n async function checkEmail(email) {\n let avail = true;\n let responseJson = await ApiEngine.get(\n ApiUrl._API_CHECK_EMAIL + \"?email=\" + email + \"&code=\" + referralCode\n );\n avail = responseJson[ApiKey._API_SUCCESS_KEY];\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n // setIsEmailAvailable(true);\n } else {\n // setIsEmailAvailable(false);\n }\n\n return avail;\n }\n\n async function registerWithoutOTP(data, referralString) {\n let params = {\n username: data.username,\n email: _email,\n password: data.password,\n phoneNumber: (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhone,\n dialingCode: (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix),\n referralCode: referralString,\n otpEnabled: otpEnabled\n };\n\n if (companyLanguages != undefined) {\n const defaultLang = get(companyLanguages[0], \"code\");\n if (\n localStorage.getItem(SessionKey._LANGUAGE) &&\n localStorage.getItem(SessionKey._LANGUAGE) !== \"undefined\"\n ) {\n if (\n companyLanguages.find(\n (x) => x.code === localStorage.getItem(SessionKey._LANGUAGE)\n ) != undefined\n ) {\n params[\"languageSetting\"] = companyLanguages.find(\n (x) => x.code === localStorage.getItem(SessionKey._LANGUAGE)\n ).code;\n } else {\n params[\"languageSetting\"] = defaultLang;\n }\n } else {\n params[\"languageSetting\"] = defaultLang;\n }\n }\n\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_REGISTER,\n createFormBody(params)\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n _dispatch(\n showMessage({\n type: AlertTypes._SUCCESS,\n content: t(\"REGISTRATION_COMPLETED\"), // KT: Can say something about deposit now and get promotion etc maybe ?\n onConfirm: async () => {\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n if (responseJson[ApiKey._API_DATA_KEY]) {\n // KT: Register completed.\n _dispatch(setRegisterModal(false));\n setShowModalRegister(false)\n // _dispatch(setDepositModal(true));\n if(priorityModalType == 1){\n _dispatch(setDepositModal(true));\n \n }else{\n _dispatch(setCompleteInfoModal(true));\n \n }\n } else {\n window.location.replace(\"https://www.google.com\");\n }\n } else {\n }\n },\n })\n );\n\n // Check if FB Pixel exists and has valid Pixel ID\n if (responseJson[ApiKey._API_DATA_KEY]) {\n waitForFbPixel(() => {\n if (!sessionStorage.getItem(\"fbqCompleteRegistrationFired\")) {\n window.fbq('track', 'CompleteRegistration');\n sessionStorage.setItem(\"fbqCompleteRegistrationFired\", \"true\");\n }\n });\n }\n } else {\n _dispatch(\n showResponseMessage(false, t(responseJson[ApiKey._API_MESSAGE_KEY]))\n );\n\n }\n }\n\n const submitForm = async (data, e) => {\n setDisableViaEmail(true);\n setViaEmailLoading(true);\n // return false\n if (canSendTAC) {\n\n if (TACtimedOut || countdownPeriod > 0) {\n\n let params = {}\n if (channelType == OTP_VIA_EMAIL) {\n let emailAvail = await checkEmail(data.email);\n if (emailAvail) {\n params = {\n phoneNumber: (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhone,\n referralCode: referralCodeString,\n email: data.email,\n languageCode: \"en\",\n countdown: countdownPeriod,\n TACExist: !TACtimedOut,\n type: channelType,\n usage: \"createMember\",\n };\n\n\n } else {\n setError(\"email\", { message: t(\"EMAIL_TAKEN\") });\n setDisableViaEmail(false);\n setViaEmailLoading(false);\n }\n } else {\n params = {\n phoneNumber: (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhone,\n referralCode: referralCodeString,\n // email: data.email,\n languageCode: \"en\",\n countdown: countdownPeriod,\n TACExist: !TACtimedOut,\n type: OTP_VIA_SMS,\n usage: \"createMember\",\n };\n }\n // let emailAvail = await checkEmail(data.email);\n // if (emailAvail) {\n // let params = {\n // \tphoneNumber: selectedPhonePrefix + formattedPhone,\n // \treferralCode: referralCode,\n // \temail: data.email,\n // \tlanguageCode: \"en\",\n // \tcountdown: countdownPeriod,\n // \tTACExist: !TACtimedOut,\n // \ttype: channleType,\n // \tusage: \"createMember\",\n // };\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_GENERATE_OTP,\n createFormBody(params)\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n // _setEmail(data.email);\n // _setEmailText(\"*\".repeat(4) + data.email.substr(4));\n if (channelType == OTP_VIA_EMAIL) {\n _setEmail(data.email);\n _setEmailText(\"*\".repeat(4) + data.email.substr(4));\n }\n setTACsent(true);\n setTACtimedOut(false);\n setCountdownPeriod(0);\n setCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n // setTACBtnAble(false);\n setAttemp(attemp + 1);\n setTimeout(() => {\n // setTACBtnAble(true);\n setTACtimedOut(true);\n }, _TAC_VALID_TIMER);\n setRegisterStepsViaEmail(false);\n setRegisterSteps(2);\n setRegisterStepsThreeFirst(true);\n }\n // } else {\n // \tsetError(\"email\", { message: t(\"EMAIL_TAKEN\") });\n // \tsetDisableViaEmail(false);\n // \tsetViaEmailLoading(false);\n // }\n }\n }\n\n setCanSendTAC(false);\n clearTimeout(TACtimer);\n clearTimeout(timerPeriod);\n setTACCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n\n setTimeout(() => {\n setCanSendTAC(true);\n }, _SECONDS_IN_MS * 60 * _TAC_TIMEOUT_IN_MINUTES);\n\n setDisableViaEmail(false);\n setViaEmailLoading(false);\n };\n\n\n\n const submitRegisterForm2 = async (data, e) => {\n if (captchaEnabled) {\n var temp = validateCaptcha(data.loginCaptcha);\n if (temp !== true) {\n _dispatch(\n showResponseMessage(false, t(\"CAPTCHA_FAILED\"))\n );\n return;\n }\n }\n\n setDisableRegister(true);\n setIsRegisterLoading(true);\n\n setPassword(data.password);\n if(isEZUsernameEnabled)\n data.username = (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix) + formattedPhone;\n\n let usernameAvail = await checkUsername(data.username);\n let phoneError = false;\n if (!usernameAvail) {\n setError(\"username\", { message: t(\"USERNAME_TAKEN\") });\n }\n\n let referralString = \"\";\n let referralCheck = true;\n if (referralCode !== \"\") {\n if (referralCode.length >= 6) {\n setShowCodeError(false);\n referralString = referralCode;\n setReferralCodeString(referralString);\n referralCheck = await checkIfReferralExist2(referralString);\n if (!referralCheck) {\n _dispatch(\n showResponseMessage(false, t(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\"))\n );\n setIsRegisterLoading(false);\n setDisableRegister(false);\n return false;\n }\n } else {\n setShowCodeError(true);\n }\n } else {\n var defaultReferralCode = await ApiEngine.get(\n ApiUrl._API_GET_MASTER_REFERRAL_CODE\n );\n if (defaultReferralCode[ApiKey._API_SUCCESS_KEY]) {\n referralString = defaultReferralCode[ApiKey._API_DATA_KEY].code;\n\n setReferralCodeString(referralString);\n } else {\n _dispatch(\n showResponseMessage(false, t(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\"))\n );\n setIsRegisterLoading(false);\n setDisableRegister(false);\n return false;\n }\n }\n\n var prefix = (selectedPhonePrefix == \"\" ? PhoneNumberPrefix[0].value : selectedPhonePrefix);\n if (\n typeof formattedPhone !== \"undefined\" &&\n (prefix + formattedPhone).length >= 10\n ) {\n if (!errors.phoneNumber && usernameAvail) {\n if (!otpEnabled) {\n await registerWithoutOTP(data, referralString);\n }\n else {\n let params = {\n phoneNumber: (prefix == \"\" ? PhoneNumberPrefix[0].value : prefix) + formattedPhone,\n referralCode: referralString,\n languageCode: \"en\",\n countdown: 0,\n TACExist: false,\n type: channelType,\n usage: \"createMember\",\n };\n\n let responseJson = await ApiEngine.post(\n ApiUrl._API_GENERATE_OTP,\n createFormBody(params)\n );\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n const phoneNo = (prefix == \"\" ? PhoneNumberPrefix[0].value : prefix) + formattedPhone;\n const phoneNum =\n Array.from({ length: phoneNo.length - 3 - 1 }, () => \"*\").join(\"\") +\n phoneNo.slice(-4);\n setPhoneNumber(phoneNum);\n _setUsername(data.username);\n setPhoneNumberError(false);\n phoneError = false;\n } else {\n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(responseJson[ApiKey._API_MESSAGE_KEY]),\n })\n );\n phoneError = true;\n setPhoneNumberError(true);\n }\n }\n }\n } else {\n setError(\"registerPhone\", { message: t(\"INVALID_PHONE_NUMBER\") });\n }\n\n if (usernameAvail && !phoneError && referralCheck && otpEnabled) {\n setTACCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n setCountdownPeriod(_TAC_VALID_TIMER / _SECONDS_IN_MS);\n setRegisterSteps(2);\n setRegisterStepsThreeFirst(true);\n }\n setIsRegisterLoading(false);\n setDisableRegister(false);\n };\n\n\n async function handleRegisterClick(channel) {\n if (window.ReactNativeWebView) {\n window.ReactNativeWebView.postMessage(\n JSON.stringify({\n action: \"chat\",\n //url: `${channel.actionUrl}`,\n url:\n channel.actionUrl.match(/livechat/i) != null\n ? `${window.location.origin}${channel.url}`\n : `${channel.url}`,\n })\n );\n } else {\n var selectedReferralCode =\n referralCode == \"\" ? referralCodeString : referralCode;\n if (!stringIsNullOrEmpty(channel.url)) {\n // setToggleModal(false);\n let referralString = \"\";\n\n if (stringIsNullOrEmpty(selectedReferralCode)) {\n var defaultReferralCode = await ApiEngine.get(\n ApiUrl._API_GET_MASTER_REFERRAL_CODE\n );\n if (defaultReferralCode[ApiKey._API_SUCCESS_KEY]) {\n referralString = defaultReferralCode[ApiKey._API_DATA_KEY].code;\n\n selectedReferralCode = referralString;\n } else {\n _dispatch(\n showResponseMessage(\n false,\n t(\"ERROR_REFERRAL_CODE_CANNOT_BE_FOUND\")\n )\n );\n }\n }\n\n window.location.href = channel.url + selectedReferralCode;\n } else {\n setSelectedChannel(channel);\n // setToggleModal(true);\n }\n }\n }\n\n return (\n {\n _dispatch(setRegisterModal(!registerModal));\n setShowModalRegister(false);\n }}\n backdrop={\"static\"}\n centered\n >\n \n
\n
\n
\n \"logo\"\n
\n {\n if (params.get(\"code\") != referralCode) {\n setReferralCode(\"\");\n }\n _dispatch(setRegisterModal(false));\n setShowModalRegister(false)\n\n }}\n >\n \n
\n
\n
\n
\n\n
\n \n
\n
\n
\n {registerSteps == 1 && (\n \n
\n {!isEZUsernameEnabled &&
\n \n
\n \n // \t(await checkUsername(value)) ||\n // \t(console.log(\"test\"), \"USERNAME_TAKEN\"),\n pattern: {\n value: /^(?=.*[A-Za-z0-9])[A-Za-z0-9]{4,9}$/i,\n message: t(\n \"USERNAME_REQUIRES_ALPHANUMERIC_WITH_LOWERCASE_MINIMUM_4_9_CHARACTERS_ONLY\"\n ),\n },\n })}\n id=\"loginUsername\"\n name=\"username\"\n // value={_username.toLowerCase()}\n // onInput={(e) => validateUsername(e)}\n // onChange={onChangeUsername}\n onInput={onChangeUsername}\n errors={errors}\n className=\"t3-custom-input-text\"\n autoFocus\n autoComplete=\"off\"\n onKeyDown={(e) => {\n const key = e.key;\n const allowedKeys = ['Backspace', 'ArrowLeft', 'ArrowRight', 'Delete', 'Tab'];\n\n // Allow lowercase letters, numbers, and allowed keys\n if (!/[a-z0-9]/.test(key) && !allowedKeys.includes(key)) {\n if (/[A-Z]/.test(key)) {\n e.preventDefault();\n const start = e.target.selectionStart;\n const end = e.target.selectionEnd;\n\n // Insert the lowercase version of the uppercase key\n e.target.value = e.target.value.slice(0, start) + key.toLowerCase() + e.target.value.slice(end);\n // Adjust the cursor position to be after the inserted character\n e.target.setSelectionRange(start + 1, start + 1);\n } else {\n // Prevent any other unwanted key input\n e.preventDefault();\n }\n }\n }}\n />\n\n
\n
}\n
\n \n
\n
\n
\n {\n setCountryCode(PhoneNumberPrefix[e.target.value]);\n }}\n >\n {PhoneNumberPrefix.map((prefix, index) => {\n return (\n \n {prefix.label}\n \n );\n })}\n \n
\n
\n {\n const key = e.key;\n const allowedKeys = [\n \"Backspace\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n \"Tab\",\n ];\n\n if (\n !/[0-9]/.test(key) &&\n !allowedKeys.includes(key)\n ) {\n e.preventDefault();\n }\n\n // Prevent '0' as the first character\n const inputValue = e.target.value;\n if (inputValue.length === 0 && key === \"0\") {\n e.preventDefault();\n }\n }}\n onChange={(e) => {\n let newValue = e.target.value;\n\n // Remove all non-numeric characters\n newValue = newValue.replace(/[^0-9]/g, '');\n\n // Remove all leading zeros\n newValue = newValue.replace(/^0+/, '');\n\n setValue(\"registerPhone\", newValue, { shouldValidate: true }); \n \n // Call your original `onChange` function\n onchange(e);\n \n // Update the input field with the modified value\n e.target.value = newValue;\n\n }}\n />\n\n {phoneNumberError == true ? (\n
\n
\n {t(\"NUMBER_NOT_AVAILABLE\")}\n
\n
\n ) : errors.registerPhone ? (\n
\n
\n {t(errors.registerPhone.message)}\n
\n
\n ) : (\n \"\"\n )}\n
\n
\n
\n \n
\n {\n const key = e.key;\n const allowedKeys = [\n \"Backspace\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Delete\",\n \"Tab\",\n ];\n\n if (\n !/[a-zA-Z0-9]/.test(key) &&\n !allowedKeys.includes(key)\n ) {\n e.preventDefault();\n }\n }}\n errors={errors}\n id=\"password\"\n name=\"password\"\n type={hideLoginPassword ? \"password\" : \"text\"}\n className=\"t3-custom-input-text\"\n autoComplete=\"new-password\"\n autoFocus\n />\n \n setHideLoginPassword(!hideLoginPassword)\n }\n />\n
\n
\n\n
\n
\n \n {t(\"REGISTER_PAGE_MIN_8_CHARS\")} c\n
\n
\n \n {t(\"ONLY_LETTERS_NUMBERS_9\")}\n
\n
\n \n {t(\"NO_SPECIAL_SYMBOLS\")}\n
\n
\n
\n \n
\n { setReferralCodeString(e.target.value); validateReferralCode(e) }}\n value={referralCode}\n autoFocus\n // disabled={true}\n />\n
\n {showCodeError && (\n
\n
\n {t(\"INVALID_REFERRAL_CODE\")}\n
\n
\n )}\n
\n {captchaEnabled && \n
\n
\n \n
\n
\n \n
\n
\n
\n {errors.loginCaptcha && (\n
\n {t(errors.loginCaptcha.message)}\n
\n )}\n
\n }\n
\n {otpEnabled &&\n <>\n {chatSphereChannel && chatSphereChannelList.length > 0 &&\n chatSphereChannelList.map((item, index) => {\n return (\n {\n setChannleClick(item.name)\n if (item.name == \"Whatsapp\") {\n setChannelType(OTP_BY_WHATSAPP)\n } else {\n setChannelType(OTP_VIA_TELEGRAM)\n }\n // setChannleType(OTP_VIA_SMS)\n }}\n disabled={disableRegister}\n >\n {isRegisterLoading && channleClick == item.name ? (\n \n ) : (\n `${t(\"REGISTER_VIA\")} ${item.name}`\n )}\n \n )\n })\n }\n {smsChannel && chatSphereChannelList.length == 0 &&\n
\n setChannelType(OTP_VIA_SMS)}\n disabled={disableRegister}\n >\n {isRegisterLoading ? (\n \n ) : (\n t(\"REGISTER\")\n )}\n \n
\n }\n \n }\n {!otpEnabled && \n
\n setChannelType(OTP_VIA_SMS)}\n disabled={disableRegister}\n >\n {isRegisterLoading ? (\n \n ) : (\n t(\"REGISTER\")\n )}\n \n
\n }\n
\n
\n {t(\"ALREADY_HAVE_AN_ACCOUNT\")}{\" \"}\n {\n _dispatch(setRegisterModal(false));\n setShowModalRegister(false)\n\n _dispatch(setLoginModal(true));\n }}\n >\n {t(\"LOGIN_NOW\")}\n \n
\n
\n \n )}\n\n {registerSteps == 2 && (\n <>\n {registerStepsThreeFirst && (\n
\n

\n {t(\"VERIFY_YOUR_NUMBER\")}\n

\n
\n {t(\"ENTER_THE_CODE_WE_SENT_TO\")}{\" \"}\n {_emailText != \"\" ? _emailText : phoneNumber}.\n
\n {\n onKeyPress(value, index);\n }}\n // onChange={(value, index) => {\n // \tonKeyPress(value,index);\n // \t// setPinNumberFocused(index);\n // }}\n />\n {TACsent && countdownPeriod != 0 && (\n

\n {t(\"TAC_SENT\")} {countdownPeriod}s\n

\n )}\n\n {pinLoading ? (\n
\n \n
\n ) : (\n \"\"\n )}\n\n {countdownPeriod == 0 && (\n
\n \n {t(\"DIDNT_RECEIVE_A_CODE_TRY_OTHER_METHOD\")}\n {\n attemp == 2 && (\n <>\n
\n \n \n )\n }\n \n {attemp == 1 && channelType != OTP_VIA_SMS && (\n <>\n
\n {smsChannel && \n (\n {\n\n submitForm()\n setChannelType(1)\n }}\n disabled={pinInputDisabled || viaEmailLoading ? true : false}\n >\n\n {viaEmailLoading ? (\n \n ) : (\n t(\"RECEIVE_OTP_VIA_SMS\")\n )}\n\n \n )}\n \n
\n
\n {\n setRegisterStepsThreeFirst(false);\n setRegisterStepsViaOtherChannel(true);\n setChannelType(OTP_VIA_EMAIL)\n }}\n disabled={pinInputDisabled || viaEmailLoading ? true : false}\n >\n {t(\"RECEIVE_OTP_VIA_EMAIL\")}\n \n
\n \n\n )}\n\n {attemp == 1 && channelType == OTP_VIA_SMS && (\n
\n {\n setRegisterStepsThreeFirst(false);\n setRegisterStepsViaOtherChannel(true);\n setChannelType(OTP_VIA_EMAIL)\n }}\n disabled={pinInputDisabled || viaEmailLoading ? true : false}\n >\n {t(\"RECEIVE_OTP_VIA_EMAIL\")}\n \n
\n )}\n {/* {attemp == 2 && (\n
\n setIsLiveChatOpen(true)}\n disabled={pinInputDisabled}\n >\n {t(\"CONTACT_CUSTOMER_SERVICE\")}\n \n
\n )} */}\n
\n )}\n
\n )}\n\n {!registerStepsThreeFirst && registerStepsViaOtherChannel && (\n
\n
\n
\n \n \n\n
\n
\n \n {viaEmailLoading ? (\n \n ) : (\n t(\"CONTINUE\")\n )}\n \n
\n
\n
\n
\n
\n )}\n \n )}\n {registerSteps == 3 && (\n <>\n
\n

\n {t(\"REGISTRATION_COMPLETED\")}\n

\n\n
\n \n )}\n
\n
\n {registerChannel && registerChannel.length > 0 && (\n \n
\n
\n {t(\"REGISTER_THROUGH_SOCIAL_MEDIA\")}\n
\n
\n
\n {map(registerChannel, (channel, index) => {\n return (\n {\n if (!stringIsNullOrEmpty(channel.url)) {\n handleRegisterClick(channel);\n }\n }}\n style={{ cursor: \"pointer\" }}\n >\n
\n \n
\n
\n );\n })}\n
\n \n \n )}\n \n
\n \n )\n};\n\nexport default RegisterModal;","import { themeIcons } from \"config/theme\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody, ModalHeader } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\n\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ApiKey, ApiUrl, PanelType, TransactionType } from \"../../util/Constant\";\nimport ApiEngine from \"../../util/ApiEngine.js\";\nimport { showResponseMessage, bindMember, setDailyCheckinModal, setBusyLoading, setDailyCheckInExist, showMessage } from \"../../redux/AppAction.js\";\nimport { find, isEmpty } from \"lodash\";\nimport { useForm } from \"react-hook-form\";\nimport { createFormBody, createMultiPartFormBody, stringIsNullOrEmpty } from \"../../util/Util.js\";\nimport { Spinner } from \"react-bootstrap\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport { chain } from \"lodash\";\nimport { heartBeat as heartBeatDispatch } from \"redux/AuthAction\";\n\nconst DailyCheckInModal = ({member}) => {\n var _dispatch = useDispatch();\n var { t } = useTranslation();\n const dailyCheckinModal = useSelector((state) => state.appState.dailyCheckinModal);\n const companyIcons = useSelector((state) => state.appState.companyIcons);\n const companyCurrency = useSelector((state) => state.appState.companyCurrency);\n\n const [alertIcon, setAlertIcon] = useState(\"\");\n const memberData = useSelector((state) => state.appState.member);\n const [isSubmitLoading, setIsSubmitLoading] = useState(false);\n\tvar { heartBeat } = useSelector((state) => state.authState);\n \n const [dailyItems, setDailyItems] = useState([]);\n const [disabledClaim , setDisabledClaim] = useState(false)\n const [accumulateDay , setAccumulateDay] = useState(0)\n const [monthMode , setMonthMode] = useState(false)\n const [monthText , setMonthText] = useState('')\n const [dcid , setDcid] = useState()\n const [timezone , setTimezone] = useState(0)\n const [claimedAmount , setClaimedAmount] = useState(0)\n const [successAlert , setSuccessAlert] = useState(false)\n\n const {\n\t\thandleSubmit,\n\t\tregister,\n\t\tcontrol,\n\t\twatch,\n\t\tgetValues,\n\t\terrors,\n\t\tclearErrors,\n\t\treset,\n\t\ttrigger,\n\t} = useForm();\n\n useEffect(()=>{\n if(heartBeat){\n init();\n }\n },[heartBeat])\n useEffect(()=>{\n getCompanyIcon();\n checkDailyCheckInStatus();\n },[])\n useEffect(()=>{\n if(dailyCheckinModal){\n init();\n }\n },[dailyCheckinModal])\n\n const init= async ()=>{\n \n var responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_GET_DAILY_CHECK_IN\n\t\t);\n\n if(responseJson[ApiKey._API_SUCCESS_KEY]){\n\n if(responseJson[ApiKey._API_DATA_KEY]){\n _dispatch(setDailyCheckInExist(true))\n setDailyItems(responseJson[ApiKey._API_DATA_KEY].dailyDetails)\n setDcid(responseJson[ApiKey._API_DATA_KEY].id)\n setTimezone(responseJson[ApiKey._API_DATA_KEY].timeZone)\n const totalDaysLeft = responseJson[ApiKey._API_DATA_KEY].dailyDetails\n .filter(item => item.claimed === 0).length;\n \n setAccumulateDay(totalDaysLeft)\n \n if(responseJson[ApiKey._API_DATA_KEY].days > 28){\n const today = new Date();\n const months = [\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"\n ];\n const monthName = months[today.getMonth()];\n const year = today.getFullYear();\n setMonthText(`${monthName} ${year}`)\n setMonthMode(true)\n }\n \n }else{\n _dispatch(setDailyCheckInExist(false))\n }\n\n }else{\n _dispatch(setDailyCheckInExist(false))\n }\n }\n\n async function checkDailyCheckInStatus(){\n var responseJson = await ApiEngine.get(\n\t\t\tApiUrl._API_DAILY_CHECK_IN_STATUS\n\t\t);\n if(responseJson[ApiKey._API_SUCCESS_KEY]){\n _dispatch(setDailyCheckInExist(responseJson[ApiKey._API_DATA_KEY]))\n }else{\n _dispatch(setDailyCheckInExist(false))\n }\n\n\n }\n\n\n async function getCompanyIcon() {\n const alert = find(companyIcons, { iconCategory: \"alert\" });\n if (alert) {\n setAlertIcon(alert.iconImage||alert.defaultImage);\n }\n \n \n }\n\n const claimDailyCheckIn = async ()=>{\n const activeItem = dailyItems.find(item => item.actived === 1);\n if(!activeItem){ \n \n _dispatch(\n showMessage({\n custom: true,\n customIcon: (\n \n ),\n content: t(\"CLAIMED_TODAY\"),\n onConfirm: () => {\n // console.log(\"hi\");\n },\n })\n );\n return false\n }\n\n let params = {\n\t\t\t//transactionTypeId: TransactionType._DAILY_CHECK_IN,\n\t\n\t\t\t//panel: PanelType._MEMBERSITE,\n dcdid: activeItem.id,\n dcid: dcid\n\t\t\t\n\t\t};\n\n _dispatch(setBusyLoading(true))\n setDisabledClaim(true)\n\n let responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_CLAIM_DAILY_CHECK_IN,\n\t\t\tcreateMultiPartFormBody(params)\n\t\t);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n \n setClaimedAmount(responseJson[ApiKey._API_DATA_KEY].amount)\n setSuccessAlert(true)\n\n \n _dispatch(heartBeatDispatch());\n\n await init()\n }else{\n _dispatch(showResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY]))\n }\n\n _dispatch(setBusyLoading(false))\n setDisabledClaim(false)\n\n }\n\n\n\n const closeBtn = (\n\t\t _dispatch(setDailyCheckinModal(false))}\n\t\t>\n\t\t\t\n\t\t\n\t );\n\n const testDailyfunction = async ()=>{ \n const dailyList = dailyItems;\n\n\n const claimedItem = chain(dailyList)\n .orderBy(['days'], ['desc']) // Sort by 'days' in descending order\n .find(item => item.claimed === 1) // Find the first item where claimed is 1\n .value(); // Retrieve the final result\n\n\n\n let params = {\n\t\t\t\n id: claimedItem.id,\n mainId: dcid\n\t\t\t\n\t\t};\n// return false\n _dispatch(setBusyLoading(true))\n\n \n let responseJson = await ApiEngine.post(\n\t\t\tApiUrl._API_TEST_DAILY_CHECK_IN,\n\t\t\tcreateMultiPartFormBody(params)\n\t\t);\n\n if (responseJson[ApiKey._API_SUCCESS_KEY]) {\n \n \n _dispatch(showResponseMessage(responseJson[ApiKey._API_SUCCESS_KEY], responseJson[ApiKey._API_MESSAGE_KEY]))\n \n\n init();\n }else{\n _dispatch(showResponseMessage(false, responseJson[ApiKey._API_MESSAGE_KEY]))\n init();\n }\n\n _dispatch(setBusyLoading(false))\n\n \n }\n\n return (\n <>\n {\n successAlert && (\n
\n }\n title={t(\"CONGRATULATIONS\")}\n onConfirm={() => {\n setSuccessAlert(false);\n }}\n\n >\n {t(\"SUCCESS_EARN\", { credit: claimedAmount})}\n \n
\n \n )\n }\n \n \n {\n _dispatch(setDailyCheckinModal(!dailyCheckinModal))\n }}\n centered\n >\n \t\n {t(\"DAILY_BONUS_CLAIM\")}\n \n \n \n
\n
\n
\n
\n
\n
\n {!monthMode && (
)}\n\n {/* You have accumulated 2 days check-in. */}\n
\n \n {/*
*/}\n
\n {monthMode && (
{monthText}
)}\n
\n {\n dailyItems.map((item, index) =>{\n let classDaily = ''\n if(item.claimed){\n classDaily = 'claimed' \n }else if(item.actived && !item.claimed){\n classDaily = 'active' \n }\n \n return (\n
\n\n {classDaily == 'claimed' && (
)}\n
\n\n \n \n
{`${companyCurrency} ${item.amount}`}
\n\n
\n )\n })\n\n \n }\n \n
\n\n\n
\n \n \n \n \n
\n\n
\n\n {/* */}\n \n\n
\n \n \n
\n \n \n \n \n\n )\n};\n\nexport default DailyCheckInModal;","import { themeIcons } from \"config/theme\";\nimport Deposit from \"pages/template_1/transaction/Deposit\";\nimport Downline from \"pages/template_1/home/Downline\";\nimport ReferralBonus from \"pages/template_1/report/ReferralBonus\";\nimport React, { useEffect, useState, useRef } from \"react\";\nimport { Link, useHistory, useLocation } from \"react-router-dom\";\nimport i18n from \"localization/i18n\";\nimport { useTranslation } from \"react-i18next\";\nimport { Modal, ModalBody } from \"reactstrap\";\nimport VIcon from \"components/custom/Icon\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { setReferralBonusModal, setDepositTab, setDownlineModal } from \"redux/AppAction\";\n\n\nconst ReferralBonusModal = (props) => {\n var { t } = useTranslation();\n const isDownlineModal = useSelector(\n (state) => state.appState.referralBonusModal\n );\n\n var _dispatch = useDispatch();\n\n useEffect(() => {\n }, []);\n\n useEffect(() => {\n }, [isDownlineModal]);\n\n\n return (\n {\n // setShowModal(false);\n _dispatch(setReferralBonusModal(!isDownlineModal));\n\n }}\n // centered\n >\n \n
\n
\n
\n
\n {t(\"REFERRAL_BONUS\")}\n
\n
\n
\n {\n // setShowModal(!showModal)\n _dispatch(setReferralBonusModal(!isDownlineModal));\n\n }}\n >\n \n
\n
\n
\n \n
\n \n \n )\n}\n\nexport default ReferralBonusModal;\n","import React, { lazy, Suspense } from \"react\";\nimport {\n\tRoute,\n\twithRouter,\n\tSwitch,\n\tRedirect,\n\tuseParams\n} from \"react-router-dom\";\nimport { \n\tfetchRoute, \n\t// _LOGIN_ROUTE2\n} from \"../../config/page-route.jsx\";\nimport { PageSettings } from \"../../config/page-settings.js\";\nimport { connect } from \"react-redux\";\nimport Footer from \"components/template_1/Footer.js\";\nimport Header from \"components/template_1/Header.js\";\nimport reactManifest from \"react-manifest\";\nimport manifest from \"../../manifest.json\";\nimport LoadingPlaceholder from \"components/template_1/LoadingPlaceholder.js\";\nimport { find, includes } from \"lodash\";\nimport DepositWithdrawalModal from \"components/template_1/DepositWithdrawalModal.js\";\nimport DownlineModal from \"components/template_1/DownlineModal.js\";\nimport ShareReferralModal from \"components/template_1/ShareReferralModal.js\";\nimport LoginModal from \"components/template_1/LoginModal.js\";\nimport {\n\tWebUrl,\n\tSessionKey,\n\tLanguage\n} from \"../../util/Constant\";\nimport { isValidLocale, hasValidLocale, extractLocaleFromPathname } from \"../../util/Util.js\";\nimport ApiEngine from \"util/ApiEngine.js\";\nimport ResetPasswordModal from \"components/template_1/ResetPasswordModal.js\";\nimport NotFound from \"pages/template_1/NotFound.js\";\nimport Login from \"pages/template_1/Login.js\";\nimport ReportOverviewModal from \"../../pages/template_1/report/ReportsOverview.js\";\nimport RegisterModal from \"components/template_1/RegisterModal.js\";\nimport DailyCheckInModal from \"components/template_1/DailyCheckInModal.js\";\nimport ReferralBonusModal from \"components/template_1/ReferralBonusModal\";\nimport MyProfileModal from \"components/template_1/MyProfileModal\";\nimport CompleteInfoModal from \"components/template_1/CompleteInfoModal.js\";\n\n\nclass Content extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis._TIMEOUT_TIME = 60 * 60 * 1000;\n\t\tthis.state = {\n\t\t\ttemplate: props.template ?? \"template_1\",\n\t\t\troutes: null,\n\t\t\tcurrroutes: null,\n\t\t\tloginRoute: null,\n\t\t\tcurrentPage: this.props.history.location.pathname,\n\t\t\tbottomNavIndex: 0,\n\t\t};\n\t}\n\n\tComponentRoute(routeComponent) {\n\t\treturn routeComponent;\n\t}\n\n\tPrivateRoute(index, routeData) {\n\t\tconst isLoggedIn = this.props.authState.heartBeat;\n\t\tconst sessionLocale = localStorage.getItem(SessionKey._LANGUAGE)\n\t\tconst shouldRedirect = routeData.authRequired && !isLoggedIn;\n\n\t\t// // DEBUG\n\t\t// const redirectPath = '/en';\n\t\t// const currentReference = routeData.reference;\n\t\t// const currentPath = this.props.history.location.pathname;\n\t\t// {console.log('currentPath', currentPath)}\n\t\t// // Force hard redirect for debugging\n\t\t// if (!hasValidLocale(currentPath)) {\n\t\t// \twindow.location.href = `/${sessionLocale}${currentPath}`;\n\t\t// }\n\t\t// return (\n\t\t// \t\n\t\t// );\n\n\t\t// CHRIS_LOCALE: Check if locale is valid, if not then redirect to valid locale\n\t\t// Get locale from browser url\n\t\tconst { pathname, state } = this.props.history.location;\n\t\t// Check if url contains valid locale\n\n\t\t// console.log('this.props.location', this.props.location)\n\t\tif (hasValidLocale(pathname)) {\n\t\t\t// Update locale of session to this new locale\n\t\t\t// console.log('this.extractLocaleFromPathname(pathname)', this.extractLocaleFromPathname(pathname))\n\t\t\tlocalStorage.setItem(SessionKey._LANGUAGE, extractLocaleFromPathname(pathname));\n\t\t} else {\n\t\t\t// CHRIS_LOCALE: Remove locale from url first\n\t\t\tconst currentReference = state?.reference; // state.reference is used at GameList.js and PromotionInfo.js\n\t\t\tconst currentLocale = WebUrl.getCurrentLocale();\n\t\t\t// console.log('content currentLocale', currentLocale)\n\t\t\tconst regex = new RegExp(`^/${currentLocale}(/|$)`);\n\t\t\tconst locationPathname = pathname.replace(regex, '/');\n\n\t\t\tconst redirectPath = WebUrl.getLocaleUrl(locationPathname);\n\t\t\t// // Get current url\n\t\t\t// console.log('currentURL', this.props.history.location.pathname)\n\t\t\t// console.log('pathname', pathname)\n\t\t\t// console.log('locationPathname', locationPathname)\n\t\t\t// console.log('currentReference', currentReference)\n\t\t\t// console.log('redirectPath', redirectPath)\n\t\t\t// console.log('shouldRedirect', shouldRedirect)\n\t\t\t// console.log('REDIRECT')\n\n\t\t\t// this.props.history.replace({\n\t\t\t// \tpathname: redirectPath,\n\t\t\t// \tstate: { reference: currentReference }\n\t\t\t// });\n\n\t\t\t// CHRIS TODO: Problem with passing state reference, because of redirect - need to find a way without redirect?\n\t\t\t// this.props.history.replace doesn't change the url underneath, so it causes problems with API calls\n\t\t\t// this.props.history.push changes the URL so state doesn't get passed and GameList doesn't work\n\t\t\t// Redirect/push might affect other things as well\n\n\t\t\treturn (\n\t\t\t\t// \n\t\t\t\t {\n\t\t\t\t\t\treturn \n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t {\n\t\t\t\t\t// \n\t\t\t\t\t// \t{ shouldRedirect\n\t\t\t\t\t// \t\t\t? this.state.loginRoute.component\n\t\t\t\t\t// \t\t\t: this.ComponentRoute(routeData.component) }\n\t\t\t\t\t// \n\n\t\t\t\t\tif (shouldRedirect) {\n\t\t\t\t\t\treturn \t\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t{this.ComponentRoute(routeData.component)}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t\t// component={\n\t\t\t\t// routeData.authRequired && !this.props.authState.heartBeat\n\t\t\t\t// ? this.state.loginRoute.component\n\t\t\t\t// : routeData.component\n\t\t\t\t// }\n\t\t\t\t// exact={routeData.exact}\n\t\t\t\t// path={routeData.path}\n\t\t\t\t// component={routeData.component}\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderFallback() {\n\t\treturn this.state.template === \"template_1\" ? : null;\n\t}\n\n\tcomponentWillUpdate() {\n\t\tif (this.currentPage !== this.props.history.location.pathname) {\n\t\t\tthis.currentPage = this.props.history.location.pathname;\n\t\t\tthis.resetTimeout();\n\t\t}\n\t}\n\n\tasync loadData() {\n\t\ttry {\n\t\t\tconst loginRouteVar = await fetchRoute(\"template_1\", \"login\");\n\t\t\tconst routesVar = await fetchRoute(\"template_1\", \"all\");\n\n\t\t\tthis.setState({\n\t\t\t\troutes: routesVar,\n\t\t\t\tloginRoute: loginRouteVar,\n\t\t\t\tcurrroutes: null,\n\t\t\t});\n\t\t\t// Now you can work with the data\n\t\t} catch (error) {\n\t\t\t// Handle errors\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { dispatch } = this.props;\n\n\t\tthis.loadData();\n\n\t\t/*if (this.state.template == \"template_1\") {\n\t\t\tif (this.props.history.location.pathname !== \"/\") {\n\t\t\t\tthis.startTimeout = setTimeout(() => {\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t}, this._TIMEOUT_TIME);\n\t\t\t}\n\t\t}*/\n\t\t//KT TODO CHECK THIS CODE FEASIBILITY\n\t}\n\n\tcomponentWillMount() {\n\t}\n\n\tresetTimeout = () => {\n\t\tclearTimeout(this.startTimeout);\n\n\t\tif (this.state.template == \"template_1\") {\n\t\t\tif (\n\t\t\t\tthis.currentPage !== \"/\" &&\n\t\t\t\tthis.props.history.location.pathname !== \"/\"\n\t\t\t) {\n\t\t\t\tthis.startTimeout = setTimeout(() => {\n\t\t\t\t\twindow.location.reload();\n\t\t\t\t}, this._TIMEOUT_TIME);\n\t\t\t}\n\t\t}\n\t};\n\n\trender() {\n\t\t// if (this.state.routes == null) return false;\n\t\t// this.state.currroutes = this.state.routes.filter((route) => {\n\t\t// \treturn route.path == this.props.history.location.pathname;\n\t\t// });\n\n\t\tif (this.state.routes == null) return false;\n\n\t\t// Optimization - Filter through routes to eliminate non-matching routes\n\t\tthis.state.currroutes = this.state.routes.filter((route) => {\n\t\t\tlet pathname = route.path;\n\t\t\tlet currRoutePath = this.props.history.location.pathname;\n\n\t\t\t///hotgame state\n\t\t\tconst hotGameWebUrl = WebUrl._URL_HOT_GAMES;\n\n\t\t\t // Remove leading and trailing slashes for easier comparison\n\t\t\t const normalizedPathname = pathname.replace(/^\\/|\\/$/g, '');\n\t\t\t const normalizedCurrRoutePath = currRoutePath.replace(/^\\/|\\/$/g, '');\n\t\t\t const normalizedHotGameUrl = hotGameWebUrl.replace(/^\\/|\\/$/g, '');\n\t\t \n\t\t\t // Split paths into segments\n\t\t\t const routeSegments = normalizedPathname.split('/');\n\t\t\t const pathSegments = normalizedCurrRoutePath.split('/');\n\t\t\t const hotGameSegments = normalizedHotGameUrl.split('/');\n\t\t\t \n\t\t\t ///check if HotGame is enabled\n\t\t\t if(!this.props.appState.isHotGameEnabled) {\n\t\t\t\tconst rebuiltPath = pathSegments.slice(1).join('/');\n\t\t\t\tconst hotGameUrl = hotGameSegments.slice(1).join('/');\n\t\t\t\tif(rebuiltPath === hotGameUrl){\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t }\n\t\t \n\t\t\t // Check for exact matches for non-parameterized routes\n\t\t\t if (route.exact && normalizedPathname === normalizedCurrRoutePath) {\n\t\t\t\t return true;\n\t\t\t }\n\t\t \n\t\t\t // Check for locale parameterized routes\n\t\t\t if (pathname.includes(':locale')) {\n\t\t\t\t const localeSegment = pathSegments[0]; // Assuming the locale is the first segment\n\t\t\t\t if (isValidLocale(localeSegment)) {\n\t\t\t\t\t // Rebuild the path without the locale for further matching\n\t\t\t\t\t const rebuiltPath = pathSegments.slice(1).join('/');\n\t\t\t\t\t const rebuiltRoutePath = routeSegments.slice(1).join('/');\n\t\t\t\t\t if (rebuiltPath === rebuiltRoutePath || pathname.endsWith(':slug')) {\n\t\t\t\t\t\t return true;\n\t\t\t\t\t }\n\t\t\t\t }\n\t\t\t }\n\t\t \n\t\t\t // Handling other parameterized routes that might contain slugs\n\t\t\t if (!route.exact && pathname.includes(':slug')) {\n\t\t\t\t return true; // Placeholder logic; refine this based on actual route structure\n\t\t\t }\n\n\t\t\t// // Exact match for non-parameterized routes\n\t\t\t// if (route.exact && pathname === currRoutePath) {\n\t\t\t// \treturn true;\n\t\t\t// }\n\n\t\t\t// if(pathname.includes(':locale')) return true\n\n\t\t\t// if (!route.exact && pathname.includes(':slug')) {\n\t\t\t// \t// const paramRegex = new RegExp(`/^\\/${currRoutePath}\\/[^/]+$`); // Adjust this regex as needed for your parameterized routes\n\t\t\t// \t// if (paramRegex.test(currRoutePath)){\n\t\t\t// \t// \tconsole.log('yes')\n\t\t\t// \t// \treturn true;// Match parameterized routes\n\n\t\t\t// \t// }\n\t\t\t// \treturn true\n\t\t\t// }\n\n\t\t\treturn false;\n\t\t})\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{({\n\t\t\t\t\tpageContentFullWidth,\n\t\t\t\t\tpageContentClass,\n\t\t\t\t\tpageContentInverseMode,\n\t\t\t\t}) => (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t{/* BrowserRouter located in index.js */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{/* */}\n\n\t\t\t\t\t\t\t\t{this.state.currroutes.map((route, index) => {\n\t\t\t\t\t\t\t\t\treturn this.PrivateRoute(index, route);\n\t\t\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t\t\t{/* Catch all undefined routes */}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* {\n\t\t\t\t\t\t\t\tincludes(this.props.history.location.pathname, 'livechat') ? \"\" :
\n\t\t\t\t\t\t\t} */}\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n}\n\nconst mapStateToProps = (state) => ({\n\t...state,\n});\n\nexport default connect(mapStateToProps, null)(withRouter(Content));\n","import React from \"react\";\nimport { PageSettings } from \"./config/page-settings.js\";\nimport Content from \"./components/content/content.jsx\";\nimport SweetAlert from \"react-bootstrap-sweetalert\";\nimport LoadingOverlay from \"react-loading-overlay\";\nimport { connect } from \"react-redux\";\nimport {\n\tupdateLoginUser,\n\tresetLogin,\n\tperformLogout,\n\theartBeat,\n} from \"./redux/AuthAction.js\";\nimport { setAppSetting } from \"./redux/AppAction.js\";\nimport { isObjectEmpty, stringIsNullOrEmpty, createFormBody, isValidLocale, hasValidLocale, extractLocaleFromPathname, waitForFbPixel } from \"./util/Util.js\";\nimport { withTranslation } from \"react-i18next\";\nimport ApiEngine from \"./util/ApiEngine.js\";\nimport { ApiKey, ApiUrl, HIDE_APK_BANNER_DURATION, WebUrl } from \"./util/Constant\";\nimport { themeGenerator } from \"config/theme.js\";\nimport { paramCase } from \"change-case\";\nimport { ClientTemplates } from \"./util/Constant\";\nimport { Helmet } from \"react-helmet\";\nimport { Spinner } from \"react-bootstrap\";\nimport classNames from \"classnames\";\nimport { map } from \"lodash\";\n// import parse from \"html-react-parser\";\n\nLoadingOverlay.propTypes = undefined;\nclass App extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.handleSetPageContent = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContent: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageContentClass = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContentClass: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageContentFullHeight = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContentFullHeight: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageContentFullWidth = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContentFullWidth: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageContentInverseMode = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageContentInverseMode: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetPageFooter = (value) => {\n\t\t\tthis.setState((state) => ({\n\t\t\t\tpageFooter: value,\n\t\t\t}));\n\t\t};\n\t\tthis.handleSetBodyWhiteBg = (value) => {\n\t\t\tif (value === true) {\n\t\t\t\tdocument.body.classList.add(\"bg-white\");\n\t\t\t} else {\n\t\t\t\tdocument.body.classList.remove(\"bg-white\");\n\t\t\t}\n\t\t};\n\n\t\tthis.state = {\n\t\t\ttemplate:\n\t\t\t\tClientTemplates.filter((x) => x.hostname == window.location.hostname)[0]\n\t\t\t\t\t?.template ?? \"template_1\",\n\t\t\tpageContent: true,\n\t\t\tpageContentClass: \"\",\n\t\t\tpageContentFullHeight: false,\n\t\t\tpageContentFullWidth: true,\n\t\t\tpageContentInverseMode: false,\n\t\t\tpageNavBar: \"\",\n\t\t\thandleSetPageContent: this.handleSetPageContent,\n\t\t\thandleSetPageContentClass: this.handleSetPageContentClass,\n\t\t\thandleSetPageContentFullHeight: this.handleSetPageContentFullHeight,\n\t\t\thandleSetPageContentFullWidth: this.handleSetPageContentFullWidth,\n\t\t\thandleSetPageContentInverseMode: this.handleSetPageContentInverseMode,\n\n\t\t\tpageFooter: false,\n\t\t\thandleSetPageFooter: this.handleSetPageFooter,\n\t\t\terror: null,\n\t\t\terrorInfo: null,\n\n\t\t\thandleSetBodyWhiteBg: this.handleSetBodyWhiteBg,\n\t\t\thandleSetPageBoxedLayout: this.handleSetPageBoxedLayout,\n\n\t\t\tinterval1: null,\n\t\t\tlocation: window.location.href,\n\t\t\tlanguage: this.props.i18n.language,\n\t\t\tappLoad: true\n\t\t};\n\n\t\tthis.scrollRef = React.createRef();\n\n\t}\n\n\t/// \n\t/// Author: -\n\t/// \n\tasync componentDidMount() {\n\t\tthis.setState({\n\t\t\t// hasGetSkinSettings: false,\n\t\t\thasCustomSkin: false,\n\t\t\tactiveTheme: 0,\n\t\t\tbackgroundImage: \"\",\n\t\t});\n\t\tclearInterval(this.state.interval1);\n\t\tthis.state.interval1 = null;\n\t\tthis.props.heartBeat();\n\t\tthis.state.interval1 = setInterval(() => this.props.heartBeat(), 20000);\n\n\n\t\t// Dynamically import the CSS file based on the environment variable\n\t\tconst root = process.env.REACT_APP_ROOT ? process.env.REACT_APP_ROOT : 'rootbase';\n\n\t\tthis.setState({ appLoad: true });\n\t\ttry {\n\t\t\tawait import(`./assets/css/theme/${root}.css`);\n\t\t\tconsole.log(`${root}.css loaded successfully!`);\n\t\t} catch (error) {\n\t\t\tconsole.log(`Failed to load ${root}.css`, error);\n\t\t} finally {\n\t\t\tthis.setState({ appLoad: false });\n\t\t}\n\n\t\t// this.getSetting(this.state.language);\n\n\t\tthis.fetchSettings();\n\t\tthis.getMeta(this.state.language);\n\n\t\t// Create a custom event\n\t\tconst customEvent = new CustomEvent('changedLocation', {\n\t\t\tdetail: { message: `Location changed to ${window.location.pathname}` }\n\t\t});\n\n\t\t// Dispatch the event\n\t\twindow.dispatchEvent(customEvent);\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\t// // CHRIS DEBUG\n\t\t// // Console log a styled note\n\t\t// console.log(\n\t\t// \t\"%ccomponentDidUpdate\",\n\t\t// \t\"background: #222; color: #bada55\"\n\t\t// );\n\n\t\t// // CHRIS DEBUG\n\t\t// // Compare props\n\t\t// const allPropsKeys = Object.keys({ ...prevProps, ...this.props });\n\t\t// allPropsKeys.forEach(key => {\n\t\t// if (prevProps[key] !== this.props[key]) {\n\t\t// \tconsole.log(`Prop '${key}' changed:`, prevProps[key], '->', this.props[key]);\n\t\t// }\n\t\t// });\n\n\t\t// // CHRIS DEBUG\n\t\t// // Compare state\n\t\t// const allStateKeys = Object.keys({ ...prevState, ...this.state });\n\t\t// allStateKeys.forEach(key => {\n\t\t// if (prevState[key] !== this.state[key]) {\n\t\t// \tconsole.log(`State '${key}' changed:`, prevState[key], '->', this.state[key]);\n\t\t// }\n\t\t// });\n\n\n\t\tif (\n\t\t\tthis.props.languageState.languageId != prevProps.languageState.languageId\n\t\t) {\n\t\t\tthis.props.i18n.changeLanguage(this.props.languageState.languageId);\n\t\t}\n\n\t\t// if (!this.state.hasCustomSkin) {\n\t\t// \tlet heartBeat = this.props.authState.heartBeat;\n\t\t// \tif (heartBeat) {\n\t\t// \t\tthis.getSkinSettings();\n\t\t// \t}\n\t\t// }\n\n\t\tif (\n\t\t\tthis.state.location != window.location.href ||\n\t\t\tthis.state.language != prevProps.i18n.language\n\t\t) {\n\t\t\t// console.log(\"%c componentDidUpdate getSetting\", \"background: #222; color:rgb(218, 85, 85)\");\n\t\t\t// CHRIS TODO 20250306: Instead of calling this.getSetting() every page change, we should use a caching method with 5 min expiry for active tabs\n\t\t\t// ie. if tab active - check expiry of settings every 5 min, if tab not active, pause checking\n\t\t\t// If no differences, do not update redux\n\t\t\tthis.getSetting(this.props.i18n.language);\n\t\t\tthis.getMeta(this.props.i18n.language);\n\t\t\tthis.state.location = window.location.href;\n\t\t\tthis.state.language = this.props.i18n.language;\n\n\t\t\tthis.scrollRef.current.scrollTop = 0;\n\t\t\twindow.scrollTo(0, 0);\n\n\t\t\t// Create a custom event\n\t\t\tconst customEvent = new CustomEvent('changedLocation', {\n\t\t\t\tdetail: { message: `Location changed to ${window.location.pathname}` }\n\t\t\t});\n\n\t\t\t// Dispatch the event\n\t\t\twindow.dispatchEvent(customEvent);\n\t\t}\n\n\n\t\tif (\n\t\t\tthis.state.seoTitle != this.props.appState.seoContent?.seoTitle\n\t\t\t|| this.state.seoDescription != this.props.appState.seoContent?.seoDescription\n\t\t\t|| this.state.seoImage != this.props.appState.seoContent?.seoImage\n\t\t) {\n\t\t\tthis.setState({\n\t\t\t\tseoTitle: this.props.appState.seoContent.seoTitle,\n\t\t\t\tseoDescription: this.props.appState.seoContent.seoDescription,\n\t\t\t\tseoImage: this.props.appState.seoContent.seoImage\n\t\t\t});\n\t\t}\n\t}\n\n\t// CHRIS 20240801: Not used for some reason\n\t// applyTheme() {\n\t// \tif (this.state.template == \"template_1\") {\n\t// \t\tconst themeValue = themeGenerator(\"template1\");\n\n\t// \t\tfor (const [key, value] of Object.entries(themeValue)) {\n\t// \t\t\tconst variableName = `--${paramCase(key)}`;\n\t// \t\t\tdocument.documentElement.style.setProperty(variableName, value);\n\t// \t\t}\n\t// \t}\n\t// }\n\n\t/// \n\t/// Author: -\n\t/// \n\tcomponentDidCatch(error, errorInfo) {\n\t\tthis.setState({\n\t\t\terror: error,\n\t\t\terrorInfo: errorInfo,\n\t\t});\n\t}\n\tgetPageSlug(pathname) {\n\t\tconst locale = WebUrl.getCurrentLocale();\n\n\t\t// Check if url contains valid locale\n\t\tconst regex = new RegExp(`^/${locale}(/|$)`);\n\n\t\tif (isValidLocale(locale) && pathname.startsWith(`/${locale}`) && pathname.match(regex)) {\n\t\t\tif (pathname === `/${locale}`) {\n\t\t\t\treturn '/';\n\t\t\t}\n\t\t\treturn pathname.replace(`/${locale}`, '');\n\t\t} else {\n\t\t\treturn pathname.replace(`/${locale}`, '');\n\t\t}\n\t}\n\n\tasync fetchSettings() {\n\t\tthis.setState({ appLoad: true });\n\t\tawait this.getSetting(this.state.language);\n\t\tthis.setState({ appLoad: false });\n\t}\n\n\tasync getMeta(language) {\n\t\t// SEO Override System - will override all other SEO settings from other pages\n\t\tvar pageSlug = this.getPageSlug(window.location.pathname);\n\n\t\tvar encodedPageSlug = encodeURIComponent(pageSlug);\n\t\tvar encodedLanguage = encodeURIComponent(language);\n\n\t\tvar responseJson = await ApiEngine.get(\n\t\t\t`${ApiUrl._API_GET_SEO_META_CONTENT}?slug=${encodedPageSlug}&language=${encodedLanguage}`\n\t\t);\n\n\t\tvar seoManagementFlag = false;\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\t// console.log('success', responseJson[ApiKey._API_DATA_KEY])\n\t\t\tvar data = responseJson[ApiKey._API_DATA_KEY];\n\n\t\t\tvar scriptTagRegex = /]*>([\\s\\S]*?)<\\/script>/gi;\n\t\t\t// const filteredData = data.filter(item => item.pageSlug == slug);\n\t\t\tvar pageName = data.pageName;\n\t\t\tvar seoTitle = '';\n\t\t\tvar seoDescription = '';\n\t\t\tvar seoImage = '';\n\t\t\tvar customScripts = '';\n\n\t\t\tif (data && data.languageSeoTitle) {\n\t\t\t\tseoTitle = data.languageSeoTitle;\n\t\t\t} else {\n\t\t\t\tseoTitle = data.seoTitle;\n\t\t\t}\n\n\t\t\tif (data && data.languageSeoDescription) {\n\t\t\t\tseoDescription = data.languageSeoDescription;\n\t\t\t} else {\n\t\t\t\tseoDescription = data.seoDescription;\n\t\t\t}\n\n\t\t\tif (data && data.languageSeoImage) {\n\t\t\t\tseoImage = data.languageSeoImage;\n\t\t\t} else {\n\t\t\t\tseoImage = data.seoImage;\n\t\t\t}\n\n\t\t\tif (data && data.languageCustomScripts) {\n\t\t\t\tcustomScripts = data.languageCustomScripts;\n\t\t\t} else {\n\t\t\t\tcustomScripts = data.customScripts;\n\t\t\t}\n\n\t\t\tseoManagementFlag = true;\n\n\t\t\t////get rawScripts\n\t\t\tif (customScripts) {\n\t\t\t\tvar customScriptsJson = JSON.parse(customScripts).html; /// extract the data from html JSON\n\t\t\t\tvar matches = customScriptsJson.match(scriptTagRegex); /// make the html into array\n\t\t\t\tvar contentWithoutScriptTags = null;\n\n\t\t\t\tif (matches) {\n\t\t\t\t\tvar contentWithArrayForTags = matches.map(match => match.match(/]*>([\\s\\S]*?)<\\/script>/i)); /////separate each value\n\t\t\t\t\tcontentWithoutScriptTags = contentWithArrayForTags.map(tags => tags[1]).join(''); ///join both value\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// console.log('seoTitle getMeta', contentWithoutScriptTags)\n\t\t\tthis.setState({ pageNameOverride: pageName });\n\t\t\tthis.setState({ seoTitleOverride: seoTitle });\n\t\t\tthis.setState({ seoDescriptionOverride: seoDescription });\n\t\t\tthis.setState({ seoImageOverride: seoImage });\n\t\t\tthis.setState({ rawScripts: contentWithoutScriptTags });\n\n\t\t} else {\n\t\t\tconsole.log(\"getMeta error\");\n\t\t}\n\n\t\t///if seo meta content is empty, show the one in page if got any seo meta\n\n\t\tif (seoManagementFlag == false) {\n\t\t\tif (this.props.appState.seoContent.pageName) {\n\t\t\t\t// console.log('seoTitle getMeta seoManagementFlag')\n\t\t\t\tthis.setState({ pageName: this.props.appState.seoContent.pageName });\n\t\t\t\tthis.setState({ seoTitle: this.props.appState.seoContent.seoTitle });\n\t\t\t\tthis.setState({ seoDescription: this.props.appState.seoContent.seoDescription });\n\t\t\t}\n\t\t}\n\t}\n\n\t// async getSkinSettings() {\n\t// \tif (window.location.pathname.match(/dashboard/)) {\n\t// \t\tvar responseJson = await ApiEngine.get(ApiUrl._API_GET_EXTRA_HTML_STYLE);\n\t// \t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t// \t\t\tthis.state.hasCustomSkin = true;\n\t// \t\t\tconst style = document.createElement(\"style\");\n\t// \t\t\tstyle.textContent = '\"' + responseJson[ApiKey._API_DATA_KEY] + '\"';\n\t// \t\t\tdocument.head.appendChild(style);\n\t// \t\t}\n\t// \t\tthis.state.hasGetSkinSettings = true;\n\t// \t} else {\n\t// \t\tthis.state.hasGetSkinSettings = false;\n\t// \t}\n\t// }\n\n\tasync getSetting(language) {\n\t\t// CHRIS 20250306 NOTE: This function updates redux - which causes a duplicate re-render of many components that listen to redux for changes\n\n\t\t// this.setState({ appLoad: true });\n\n\t\tvar responseJson = await ApiEngine.get(\n\t\t\t`${ApiUrl._API_GET_SETTING}?LanguageCode=` + language\n\t\t);\n\n\t\t// Check url params for 'm' (used on Mobile App to permanently hide APK Banner)\n\t\tvar urlParams = new URLSearchParams(window.location.search);\n\t\tif(urlParams.get('m') == true) {\n\t\t\tlocalStorage.setItem('isMobileApp', 1);\n\n\t\t\t// Expire after humanity goes extinct\n\t\t\tlocalStorage.setItem('hideApkBanner', JSON.stringify({ expiry: 99999999999999 }));\n\t\t}\n\n\t\tvar hideApkBanner = false;\n\t\tif(localStorage.getItem('hideApkBanner')) {\n\t\t\t// Parsed hideApkBanner\n\t\t\tvar parsedHideApkBanner = JSON.parse(localStorage.getItem('hideApkBanner'));\n\n\t\t\t// Check if expired\n\t\t\tconst expiry = parsedHideApkBanner.expiry;\n\t\t\tif(expiry && expiry > Date.now()) {\n\t\t\t\thideApkBanner = true;\n\t\t\t} else {\n\t\t\t\tlocalStorage.removeItem('hideApkBanner');\n\t\t\t}\n\t\t}\n\n\t\tif (responseJson[ApiKey._API_SUCCESS_KEY]) {\n\t\t\tvar presetAmtData = responseJson[ApiKey._API_DATA_KEY].presetAmt;\n\t\t\tvar chatsphereData = responseJson[ApiKey._API_DATA_KEY].chatsphere;\n\t\t\tvar brandNameData = responseJson[ApiKey._API_DATA_KEY].brandName;\n\t\t\tvar siteTitleData = responseJson[ApiKey._API_DATA_KEY].siteTitle;\n\t\t\tvar siteDescriptionData = responseJson[ApiKey._API_DATA_KEY].siteDescription;\n\t\t\tvar faviconData = responseJson[ApiKey._API_DATA_KEY].favicon;\n\t\t\tvar companyTimeZone = responseJson[ApiKey._API_DATA_KEY].timeZone;\n\t\t\tvar userFullNameData = responseJson[ApiKey._API_DATA_KEY].userFullName;\n\t\t\tvar userStatusData = responseJson[ApiKey._API_DATA_KEY].userStatus;\n\t\t\tvar userStatusInStringData = responseJson[ApiKey._API_DATA_KEY].userStatusInString;\n\t\t\tvar htmlStyleData = responseJson[ApiKey._API_DATA_KEY].htmlStyle;\n\t\t\tvar customScriptData = responseJson[ApiKey._API_DATA_KEY].customScript;\n\t\t\tvar customScriptFooterData = responseJson[ApiKey._API_DATA_KEY].customScriptFooter;\n\t\t\tvar currencyData = responseJson[ApiKey._API_DATA_KEY].currency;\n\t\t\tvar languagesData = responseJson[ApiKey._API_DATA_KEY].languages;\n\t\t\tvar membershipEnabled = responseJson[ApiKey._API_DATA_KEY].membershipEnabled;\n\t\t\tvar mediasData = responseJson[ApiKey._API_DATA_KEY].medias;\n\t\t\tvar channelsData = responseJson[ApiKey._API_DATA_KEY].channels;\n\t\t\tvar currencySymbol = responseJson[ApiKey._API_DATA_KEY].currencySymbol;\n\t\t\tvar dialingCodes = responseJson[ApiKey._API_DATA_KEY].dialingCodes;\n\t\t\tvar settingApiComplete = true;\n\t\t\tvar promotionLayout = responseJson[ApiKey._API_DATA_KEY].promotionLayout;\n\t\t\tvar promotionShowCategoryTitle = responseJson[ApiKey._API_DATA_KEY].promotionShowCategoryTitle;\n\t\t\tvar showPromoThumbnailClaimButton = responseJson[ApiKey._API_DATA_KEY].showPromoThumbnailClaimButton;\n\t\t\tvar isReferralBonusActive = responseJson[ApiKey._API_DATA_KEY].isReferralBonusActive;\n\t\t\tvar otpEnabled = responseJson[ApiKey._API_DATA_KEY].otpEnabled;\n\t\t\tvar eWalletOTPEnabled = responseJson[ApiKey._API_DATA_KEY].eWalletOTPEnabled;\n\t\t\tvar captchaEnabled = responseJson[ApiKey._API_DATA_KEY].captchaEnabled;\n\t\t\tvar priorityModalTypeId = responseJson[ApiKey._API_DATA_KEY].priorityModalTypeId;\n\t\t\tvar dashboardComponent = responseJson[ApiKey._API_DATA_KEY].dashboardComponent;\n\t\t\tvar isNormalDepositEnable = responseJson[ApiKey._API_DATA_KEY].isNormalDepositEnable;\n\t\t\tvar isNormalWithdrawalEnable = responseJson[ApiKey._API_DATA_KEY].isNormalWithdrawalEnable;\n\t\t\tvar musicPlayerEnabled = responseJson[ApiKey._API_DATA_KEY].musicPlayerEnabled;\n\t\t\tvar musicTrackList = responseJson[ApiKey._API_DATA_KEY].musicTrackList;\n\t\t\tvar isEWalletActive = responseJson[ApiKey._API_DATA_KEY].isEWalletActive;\n\t\t\tvar isBankTransferActive = responseJson[ApiKey._API_DATA_KEY].isBankTransferActive;\n\t\t\tvar isReferralCommissionManual = responseJson[ApiKey._API_DATA_KEY].isReferralCommissionManual;\n\t\t\tvar isRebateManual = responseJson[ApiKey._API_DATA_KEY].isRebateManual;\n\t\t\tvar availableProductCategories = responseJson[ApiKey._API_DATA_KEY].availableProductCategories;\n\t\t\tvar isGameLobbyRequired = responseJson[ApiKey._API_DATA_KEY].isGameLobbyRequired;\n\t\t\tvar bannerAPK = hideApkBanner ? \"\" : responseJson[ApiKey._API_DATA_KEY].bannerAPK;\n //var floatingChat= responseJson[ApiKey._API_DATA_KEY].floatingChat;\n\t\t\tvar isLoginAttemptBlockingEnabled = responseJson[ApiKey._API_DATA_KEY].isLoginAttemptBlockingEnabled;\n\t\t\tvar isHotGameEnabled = responseJson[ApiKey._API_DATA_KEY].isHotGameEnabled;\n\t\t\tvar affiliateLink = responseJson[ApiKey._API_DATA_KEY].affiliateLink;\n\t\t\tvar isCasinoLobbyEnabled = responseJson[ApiKey._API_DATA_KEY].isCasinoLobbyEnabled;\n\t\t\tvar isEZUsernameEnabled = responseJson[ApiKey._API_DATA_KEY].isEZUsernameEnabled;\n\n\t\t\tif (htmlStyleData && htmlStyleData != \"\") {\n\t\t\t\tconst existingStyle = document.getElementById(\"custom-style\");\n\t\t\t\tif (!existingStyle) {\n\t\t\t\t\tconst styleElement = document.createElement(\"style\");\n\t\t\t\t\tstyleElement.id = \"custom-style\";\n\t\t\t\t\tstyleElement.innerHTML = htmlStyleData;\n\t\t\t\t\tdocument.head.appendChild(styleElement);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (customScriptData && customScriptData !== \"\") {\n\t\t\t\tconst existingScript = document.getElementById(\"custom-script\");\n\t\t\t\tif (!existingScript) {\n\t\t\t\t\tconst scriptElement = document.createElement(\"script\");\n\t\t\t\t\tscriptElement.id = \"custom-script\";\n\t\t\t\t\t// Wrap customScriptData in try catch\n\t\t\t\t\tscriptElement.innerHTML = `\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t`+customScriptData+`\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\tconsole.error('Error in executing custom script:', e)\n\t\t\t\t\t\t}`;\n\n\t\t\t\t\tdocument.head.appendChild(scriptElement);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (customScriptFooterData && customScriptFooterData !== \"\") {\n\t\t\t\tconst existingScript = document.getElementById(\"custom-script-footer\");\n\t\t\t\tif (!existingScript) {\n\t\t\t\t\tconst scriptElement = document.createElement(\"script\");\n\t\t\t\t\tscriptElement.id = \"custom-script-footer\";\n\t\t\t\t\tscriptElement.innerHTML = customScriptFooterData;\n\t\t\t\t\tdocument.body.appendChild(scriptElement);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// this.setState({ appLoad: false });\n\n\t\t\tvar chatsphere = [];\n\t\t\tconst _APPEND_REGISTER_WHATSAPP_URL = \"?text=register%20\";\n\t\t\tconst _APPEND_REGISTER_TELEGRAM_URL = \"?start=\";\n\n\t\t\tchatsphereData.forEach((x) => {\n\t\t\t\tchatsphere.push({\n\t\t\t\t\tusage: x.usage,\n\t\t\t\t\turl:\n\t\t\t\t\t\tx.usage == \"Whatsapp\"\n\t\t\t\t\t\t\t? \"https://wa.me/\" + x.phoneNumber + _APPEND_REGISTER_WHATSAPP_URL\n\t\t\t\t\t\t\t: x.usage == \"Telegram\"\n\t\t\t\t\t\t\t\t? \"https://t.me/\" + x.phoneNumber + _APPEND_REGISTER_TELEGRAM_URL\n\t\t\t\t\t\t\t\t: \"\",\n\t\t\t\t\timage: x.image,\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tchatsphereData = chatsphere;\n\n\t\t\tconst { setAppSetting } = this.props;\n\t\t\tsetAppSetting(\n\t\t\t\tbrandNameData,\n\t\t\t\tpresetAmtData,\n\t\t\t\tcurrencyData,\n\t\t\t\tmediasData,\n\t\t\t\tchannelsData,\n\t\t\t\thtmlStyleData,\n\t\t\t\tchatsphereData,\n\t\t\t\tlanguagesData,\n\t\t\t\tmembershipEnabled,\n\t\t\t\tcurrencySymbol,\n\t\t\t\tdialingCodes,\n\t\t\t\tsettingApiComplete,\n\t\t\t\tpromotionLayout,\n\t\t\t\tpromotionShowCategoryTitle,\n\t\t\t\tshowPromoThumbnailClaimButton,\n\t\t\t\tisReferralBonusActive,\n\t\t\t\totpEnabled,\n\t\t\t\teWalletOTPEnabled,\n\t\t\t\tcaptchaEnabled,\n\t\t\t\tpriorityModalTypeId,\n\t\t\t\tdashboardComponent,\n\t\t\t\tisNormalDepositEnable,\n\t\t\t\tisNormalWithdrawalEnable,\n\t\t\t\tmusicPlayerEnabled,\n\t\t\t\tmusicTrackList,\n\t\t\t\tisEWalletActive,\n\t\t\t\tisBankTransferActive,\n\t\t\t\tisReferralCommissionManual,\n\t\t\t\tisRebateManual,\n\t\t\t\tavailableProductCategories,\n\t\t\t\tisGameLobbyRequired,\n\t\t\t\tcompanyTimeZone,\n\t\t\t\tbannerAPK,\n\t\t\t\t//floatingChat,\n\t\t\t\tisLoginAttemptBlockingEnabled,\n\t\t\t\tisHotGameEnabled,\n\t\t\t\taffiliateLink,\n\t\t\t\tisCasinoLobbyEnabled,\n\t\t\t\tisEZUsernameEnabled\n\t\t\t);\n\t\t\t//SEO\n\t\t\t//{\n\t\t\tvar data = [] // responseJson[ApiKey._API_DATA_KEY].seo;\n\n\t\t\tvar contentLength = data.length;\n\t\t\tvar list = [];\n\t\t\tvar newData = [];\n\t\t\tvar newList = [];\n\t\t\tfor (var x = 0; x < contentLength; x++) {\n\t\t\t\tvar content = JSON.parse(data[x][\"content\"]);\n\t\t\t\tvar contentLength1 = Object.keys(content).length;\n\t\t\t\tfor (var i = 0; i < contentLength1; i++) {\n\t\t\t\t\tvar jsonObj = JSON.parse(content[\"parameter_\" + (i + 1)]);\n\t\t\t\t\tnewData.push({\n\t\t\t\t\t\tname: \"PARAMETER \" + (i + 1),\n\t\t\t\t\t\tmetaType: jsonObj[\"metaType\"],\n\t\t\t\t\t\tcontent: jsonObj[\"content\"],\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tnewList = {\n\t\t\t\t\tmetaType: data[x][\"metaDataType\"],\n\t\t\t\t\tdata: newData,\n\t\t\t\t};\n\t\t\t\tnewData = [];\n\t\t\t\tlist.push(newList);\n\t\t\t}\n\t\t\tvar titleList = [];\n\t\t\tvar meta = [];\n\t\t\tvar link = [];\n\t\t\tvar script = [];\n\t\t\tvar noscript = [];\n\t\t\tvar base = [];\n\t\t\tvar title = \"\";\n\n\t\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\t\tif (list[i].metaType == \"Meta\") {\n\t\t\t\t\tfor (var x = 0; x < list[i].data.length; x++) {\n\t\t\t\t\t\tvar content = list[i].data[x].content;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tvar trimmedContent = content.trim();\n\t\t\t\t\t\t\tvar jsonObject = JSON.parse(trimmedContent);\n\n\t\t\t\t\t\t\tmeta.push({\n\t\t\t\t\t\t\t\tpage: list[i].data[x].metaType,\n\t\t\t\t\t\t\t\tcontent: jsonObject,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tconsole.error(\"Error parsing JSON:\", error);\n\t\t\t\t\t\t\tconsole.error(\"Invalid JSON content:\", content);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (list[i].metaType == \"Title\") {\n\t\t\t\t\tfor (var x = 0; x < list[i].data.length; x++) {\n\t\t\t\t\t\ttitleList.push({\n\t\t\t\t\t\t\tpage: list[i].data[x].metaType,\n\t\t\t\t\t\t\tcontent: list[i].data[x].content,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else if (list[i].metaType == \"Link\") {\n\t\t\t\t\tfor (var x = 0; x < list[i].data.length; x++) {\n\t\t\t\t\t\tvar content = list[i].data[x].content;\n\t\t\t\t\t\tvar jsonObject = JSON.parse(content);\n\t\t\t\t\t\tlink.push({\n\t\t\t\t\t\t\tpage: list[i].data[x].metaType,\n\t\t\t\t\t\t\tcontent: jsonObject,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else if (list[i].metaType == \"script\") {\n\t\t\t\t\tfor (var x = 0; x < list[i].data.length; x++) {\n\t\t\t\t\t\tvar page = list[i].data[x].metaType;\n\t\t\t\t\t\tvar content = list[i].data[x].content;\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tvar jsonObject = JSON.parse(content);\n\t\t\t\t\t\t\tvar code = jsonObject.code.replaceAll(\"'\", `\"`);\n\t\t\t\t\t\t\tjsonObject.code = code;\n\t\t\t\t\t\t\tscript.push({\n\t\t\t\t\t\t\t\tpage: page,\n\t\t\t\t\t\t\t\tcontent: jsonObject,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tconsole.error(`Error parsing JSON for page: ${page}`, e);\n\t\t\t\t\t\t\tconsole.log(\"Content received:\", content);\n\t\t\t\t\t\t\t// Handle the error appropriately, e.g., skip this item, use a default value, etc.\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (list[i].metaType == \"noscript\") {\n\t\t\t\t\tfor (var x = 0; x < list[i].data.length; x++) {\n\t\t\t\t\t\tvar page = list[i].data[x].metaType;\n\t\t\t\t\t\tvar content = list[i].data[x].content;\n\t\t\t\t\t\tvar jsonObject = JSON.parse(content);\n\t\t\t\t\t\tnoscript.push({\n\t\t\t\t\t\t\tpage: page,\n\t\t\t\t\t\t\tcontent: jsonObject,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else if (list[i].metaType == \"Base\") {\n\t\t\t\t\tfor (var x = 0; x < list[i].data.length; x++) {\n\t\t\t\t\t\tvar page = list[i].data[x].metaType;\n\t\t\t\t\t\tvar content = list[i].data[x].content;\n\t\t\t\t\t\tvar jsonObject = JSON.parse(content);\n\t\t\t\t\t\tbase.push({\n\t\t\t\t\t\t\tpage: page,\n\t\t\t\t\t\t\tcontent: jsonObject,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar scriptList = [];\n\t\t\tvar metaList = [];\n\t\t\tvar linkList = [];\n\t\t\tvar noscriptList = [];\n\t\t\tvar baseList = [];\n\n\t\t\tif (titleList.length > 0) {\n\t\t\t\ttitleList\n\t\t\t\t\t.filter((title) => title.page == window.location.pathname)\n\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\tif (!stringIsNullOrEmpty(content)) {\n\t\t\t\t\t\t\ttitle = content.content;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\tif (stringIsNullOrEmpty(title)) {\n\t\t\t\t\ttitleList\n\t\t\t\t\t\t.filter((title) => title.page == \"*\")\n\t\t\t\t\t\t.map((contentAll) => {\n\t\t\t\t\t\t\ttitle = contentAll.content;\n\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (script.length > 0) {\n\t\t\t\tscript\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(scrips) =>\n\t\t\t\t\t\t\tscrips.page == window.location.pathname || scrips.page == \"*\"\n\t\t\t\t\t)\n\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\tif (!stringIsNullOrEmpty(content)) {\n\t\t\t\t\t\t\tscriptList.push(content.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (meta.length > 0) {\n\t\t\t\tmeta\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(metas) =>\n\t\t\t\t\t\t\tmetas.page == \"*\" || metas.page == window.location.pathname\n\t\t\t\t\t)\n\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\tif (!stringIsNullOrEmpty(content)) {\n\t\t\t\t\t\t\tmetaList.push(content.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\tvar list = [];\n\t\t\t\tvar listPage = [];\n\t\t\t\tif (metaList.length > 0) {\n\t\t\t\t\tvar filterList = meta.filter(function (obj) {\n\t\t\t\t\t\tif (obj.content.name === \"description\") {\n\t\t\t\t\t\t\tlist.push(obj.content);\n\t\t\t\t\t\t\tlistPage.push(obj.page);\n\t\t\t\t\t\t\treturn obj.content;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tvar i = 0;\n\t\t\t\t\tvar x = 0;\n\t\t\t\t\twhile (i < metaList.length) {\n\t\t\t\t\t\tif (metaList[i] === list[x]) {\n\t\t\t\t\t\t\tmetaList.splice(i, 1);\n\t\t\t\t\t\t\tx++;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t++i;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlistPage.includes(window.location.pathname)\n\t\t\t\t\t? filterList\n\t\t\t\t\t\t.filter((a) => a.page == window.location.pathname)\n\t\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\t\tmetaList.push(content.content);\n\t\t\t\t\t\t})\n\t\t\t\t\t: filterList\n\t\t\t\t\t\t.filter((a) => a.page == \"*\")\n\t\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\t\tmetaList.push(content.content);\n\t\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (link.length > 0) {\n\t\t\t\tlink\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(links) =>\n\t\t\t\t\t\t\tlinks.page == window.location.pathname || links.page == \"*\"\n\t\t\t\t\t)\n\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\tif (!stringIsNullOrEmpty(content)) {\n\t\t\t\t\t\t\tlinkList.push(content.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (noscript.length > 0) {\n\t\t\t\tnoscript\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(noscripts) =>\n\t\t\t\t\t\t\tnoscripts.page == window.location.pathname ||\n\t\t\t\t\t\t\tnoscripts.page == \"*\"\n\t\t\t\t\t)\n\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\tif (!stringIsNullOrEmpty(content)) {\n\t\t\t\t\t\t\tnoscriptList.push(content.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (base.length > 0) {\n\t\t\t\tbase\n\t\t\t\t\t.filter(\n\t\t\t\t\t\t(bases) =>\n\t\t\t\t\t\t\tbases.page == window.location.pathname || bases.page == \"*\"\n\t\t\t\t\t)\n\t\t\t\t\t.map((content) => {\n\t\t\t\t\t\tif (!stringIsNullOrEmpty(content)) {\n\t\t\t\t\t\t\tbaseList.push(content.content);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.setState({ baseList: baseList });\n\t\t\tthis.setState({ brandName: brandNameData });\n\t\t\tthis.setState({ noscriptList: noscriptList });\n\t\t\tthis.setState({ scriptList: scriptList });\n\t\t\tthis.setState({ linkList: linkList });\n\t\t\tthis.setState({ title: siteTitleData });\n\t\t\tthis.setState({ description: siteDescriptionData });\n\t\t\tthis.setState({ metaList: metaList });\n\t\t\tthis.setState({ seo: list });\n\t\t\tthis.setState({ favicon: faviconData });\n\t\t\t//}\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tseo,\n\t\t\tmetaList,\n\t\t\tbrandName,\n\t\t\ttitle,\n\t\t\tdescription,\n\t\t\tfavicon,\n\t\t\tlinkList,\n\t\t\tscriptList,\n\t\t\tnoscriptList,\n\t\t\tlocation,\n\t\t\tlanguage,\n\t\t\tseoTitle,\n\t\t\tseoDescription,\n\t\t\tseoImage,\n\t\t\tseoTitleOverride,\n\t\t\tseoDescriptionOverride,\n\t\t\tseoImageOverride,\n\t\t\trawScripts,\n\t\t\tappLoad,\n\t\t} = this.state;\n\n\t\tif (this.state.errorInfo) {\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t

Something went wrong, please contact admin for help

\n\t\t\t\t\t
{window.navigator.userAgent}
\n\t\t\t\t
\n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{/* */}\n\n\t\t\t\t\t{/* Set default metas - START */}\n\t\t\t\t\t{/* Site name */}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t{/* URL */}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t{/* Titles */}\n\t\t\t\t\t\n\t\t\t\t\t\t{title}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\n\t\t\t\t\t{/* Descriptions */}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t{/* Icons */}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t{/* Others */}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{/* Set default metas - END */}\n\n\t\t\t\t\t{/* Set dynamic metas - START */}\n\t\t\t\t\t{/* seoTitle */}\n\t\t\t\t\t{\n\t\t\t\t\t\tseoTitleOverride && seoTitleOverride.length ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{seoTitleOverride}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tseoTitle && seoTitle.length && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{seoTitle}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\t\t\t\t\t{/* seoDescriptions */}\n\t\t\t\t\t{\n\t\t\t\t\t\tseoDescriptionOverride && seoDescriptionOverride.length ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tseoDescription && seoDescription.length && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\n\t\t\t\t\t{/* seoImages */}\n\t\t\t\t\t{\n\t\t\t\t\t\tseoImageOverride && seoImageOverride.length ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tseoImage && seoImage.length && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\t\t\t\t\t{/* Custom Scripts */}\n\t\t\t\t\t\n\t\t\t\t\t\t{rawScripts && rawScripts.length && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\n\n\t\t\t\t\t{scriptList &&\n\t\t\t\t\t\tscriptList.length > 0 &&\n\t\t\t\t\t\tscriptList.map(({ code, type, id, src }, index) => {\n\t\t\t\t\t\t\t// Create an object to hold the props\n\t\t\t\t\t\t\tconst props = {};\n\n\t\t\t\t\t\t\t// Conditionally add props to the object\n\t\t\t\t\t\t\tif (src !== undefined) {\n\t\t\t\t\t\t\t\tprops.src = src;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (id !== undefined) {\n\t\t\t\t\t\t\t\tprops.id = id;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (type !== undefined) {\n\t\t\t\t\t\t\t\tprops.type = type;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\n\t\t\t\t\t{noscriptList &&\n\t\t\t\t\t\tnoscriptList.length > 0 &&\n\t\t\t\t\t\tnoscriptList.map(({ code }, index) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\n\t\t\t\t\t{/* Set dynamic metas - END */}\n\n\t\t\t\t\t{(this.props.appState.isBusy || !this.props.authState.loginStateInitialized) &&\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\n\t\t\t\t\t ({\n\t\t\t\t\t\t\t\t...base,\n\t\t\t\t\t\t\t\tzIndex: \"10000\",\n\t\t\t\t\t\t\t\tposition: \"fixed\",\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={classNames(\"loading-overlay\")}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* \n\t\t\t\t\t\t*/}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{/*

{this.props.appState.message}

*/}\n\t\t\t\t\t\n\n\t\t\t\t\t{!isObjectEmpty(this.props.appState.alert) && (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{!stringIsNullOrEmpty(this.props.appState.alert.html) &&\n\t\t\t\t\t\t\t\t\tthis.props.appState.alert.html}\n\n\t\t\t\t\t\t\t\t{!stringIsNullOrEmpty(this.props.appState.alert.content) &&\n\t\t\t\t\t\t\t\t\t(this.props.appState.alert.html\n\t\t\t\t\t\t\t\t\t\t? this.props.appState.alert.content\n\t\t\t\t\t\t\t\t\t\t: this.props.appState.alert.content\n\t\t\t\t\t\t\t\t\t\t\t.split(\"\\n\")\n\t\t\t\t\t\t\t\t\t\t\t.map((item, key) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{item}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}))}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{this.props.authState.loginStateInitialized && !appLoad && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tif (this.state.pageSidebarToggled) {\n\t\t\t\t\t\t\t\t\t\t\tthis.toggleMobileSidebar();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{this.state.pageContent && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t}\n}\n\nconst mapStateToProps = (state) => ({\n\t...state,\n});\n\nexport default connect(mapStateToProps, {\n\tupdateLoginUser: updateLoginUser,\n\tresetLogin: resetLogin,\n\tperformLogout: performLogout,\n\theartBeat: heartBeat,\n\tsetAppSetting: setAppSetting,\n})(withTranslation()(App));\n","import \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\n\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport store from \"./ApplicationStore.js\";\nimport App from \"./app.jsx\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport { Provider } from \"react-redux\";\nimport \"./localization/i18n.js\";\n\n// css\nimport \"bootstrap/dist/css/bootstrap.css\";\nimport \"@fortawesome/fontawesome-free/css/all.min.css\";\nimport \"react-quill/dist/quill.snow.css\";\nimport \"codemirror/lib/codemirror.css\";\nimport \"codemirror/theme/material.css\";\nimport \"simple-line-icons/css/simple-line-icons.css\";\nimport \"flag-icon-css/css/flag-icon.min.css\";\nimport \"react-perfect-scrollbar/dist/css/styles.css\";\nimport \"./index.css\";\nimport \"./scss/react.scss\";\nimport \"bootstrap-social/bootstrap-social.css\";\nimport \"bootstrap-daterangepicker/daterangepicker.css\";\nimport \"react-datetime/css/react-datetime.css\";\nimport \"react-datepicker/dist/react-datepicker.css\";\n\n//js\nimport \"jquery/dist/jquery.min.js\";\nimport \"bootstrap/dist/js/bootstrap.min.js\";\n\n// ========================================\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n","import { templateSettings, template } from \"lodash\";\n///font variable structure:///\n// font size will start with -> themeFontSize\n// font family will start with -> themeFontFamily\n\n///colors (background, border, text color) variable structure:///\n// text color will start with -> themeColorText\n// background color will start with -> themeColorBg\n// border color will start with -> themeColorBorder\n\n///shadow variable structure:///\n// shadow will start with -> themeBoxShadow\n\nconst defaultTheme = {\n themeFontFamilyBbase: '\"Poppins\", sans-serif, Arial',\n themeFontSizeBase: '14px',\n themeImgBgBase: \"url(/static/media/bg.edd28cee.png)\",\n themeColorBgBase: \"#070A13\",\n themeImgBgAccountContainer: `null`,\n themeColorBgHomeBalanceTabContainer: \"rgba(27,40,75,0.5)\",\n themeColorBgHomeBalanceTabActiveContainer: \"rgb(27,40,75)\",\n themeColorBgHomeBalanceInputContainer: \"#05102F\",\n themeColorBgPrimary: \"#1B284B\",\n themeColorTextBase: \"#fff\",\n themeColorBgHomeVipContainer: \"linear-gradient(to bottom, #41A3EF, #E2F6FA)\",\n themeBoxShadowHomeBalanceHeader: \"inset 0 7px 10px -7px #1DA1F2\",\n themeBoxShadowHomeBalanceItem: \"inset 0 -7px 10px -7px #1DA1F2\",\n themeBoxShadowHomeBcItem: \"inset 0 2px 4px 0 rgba(29, 161, 242,0.8)\",\n themeColorTextHomeBcItem: \"#29D5D9\",\n themeColorBgPromoVipContainer:\n \"linear-gradient(180deg, rgba(17, 4, 42, 0) 0%, #11042A 58.33%, #11042A 100%)\",\n themeColorHomeGameLink: \"#131c34\",\n themeColorHomeGameActiveLink: \"#131C34\",\n themeColorIconHomeBalance: \"#29d5d9\",\n themeColorBgModal: '#10182d',\n themeColorTextPrimary: '#29d5d9',\n themeColorBgAllBoxWithIcon: '#1b284b',\n themeColorBgSearch: '#131c34',\n themeColorTextGray2: '#94a3b8',\n themeColorBgCustomFormInput: '#0d1426',\n themeColorBgMytabsActive: '#2c4077',\n themeColorIconDisabled: '#94a3b8',\n themeColorTextGray: '#64748b',\n themeColorBgDropDown: '#1B284B',\n themeColorBgTableHeader: '#10182d',\n themeColorBgDailyCheckinIconContainer: '#1F2E56',\n themeColorBgDailyCheckinDayContainer: '#FFFFFF',\n themeColorBgBottomMenu: 'rgb(15, 23, 42)',\n themeColorBgFooter: '#0f172a',\n themeColorTextBottomMenu: 'rgb(71, 85, 105)',\n themeColorTextBottomMenuActive: '#29D5D9',\n themeColorTextGray4: '#cbd5e1',\n themeColorBgCardHeader: '#002e6c',\n themeColorBorderWalletLine: '#343283',\n themeColorTextHomeCategory:' #94a3b8',\n themeBorderHomeBcItemWrapper: 'unset',\n themeColorTextGray5: '#cbd5e1',\n themeColorBgVipBottom: \"linear-gradient(to right, rgba(86, 0, 1, 0.1), rgb(86, 0, 1) 10%, rgb(86, 0, 1) 90%, rgba(86, 0, 1, 0.1))\",\n themeColorBgKeyboard: '#0b101e',\n themeColorBgKeyboardPad: '#131c34',\n themeColorBgShopItem: 'linear-gradient( 180deg, rgba(51, 105, 255, 0.24) -6.16%, rgba(27, 42, 84, 0.24) 110.96%)',\n themeColorBgPopUp: 'rgb(5, 16, 47)',\n themeColorBgReminderYellow: 'rgba(111, 203, 32, 0.12)',\n themeColorBgBody: '#070a13',\n themeMinWidthHtml: 'auto',\n themeColorTextTableThHeader: '#29d5d9',\n themeColorTextStyledSelect: '#29D5D9',\n};\n\nconst darkTheme = {\n themeFontFamilyBbase: '\"Poppins\", sans-serif, Arial',\n themeFontSizeBase: '14px',\n themeImgBgBase: \"unset\",\n themeColorBgBase: \"#0d101a\",\n themeImgBgAccountContainer: \"unset\",\n themeColorBgAccountContainer: \"#111526\",\n themeColorBgHomeBalanceTabContainer: \"rgba(27,40,75,0.5)\",\n themeColorBgHomeBalanceTabActiveContainer: \"#111526\",\n themeColorBgHomeBalanceInputContainer: \"#171c31\",\n themeColorBgPrimary: \"#171c31\",\n themeColorTextBase: \"#fff\",\n themeColorBgHomeVipContainer: \"linear-gradient(to bottom, #41A3EF, #E2F6FA)\",\n themeBoxShadowHomeBalanceHeader: \"inset 0 7px 10px -7px #da11cb\",\n themeBoxShadowHomeBalanceItem: \"inset 0 -7px 10px -7px #da11cb\",\n themeBoxShadowHomeBcItem: \"inset 0 2px 4px 0 rgba(218,17,203,0.8)\",\n themeColorTextHomeBcItem: \"#da11cb\",\n themeColorBgPromoVipContainer:\n \"linear-gradient(180deg, rgba(17, 4, 42, 0) 0%, #11042A 58.33%, #11042A 100%)\",\n themeColorHomeGameLink: \"#111526\",\n themeColorHomeGameActiveLink: \"#131C34\",\n themeColorIconHomeBalance: \"#da11cb\",\n themeColorBgModal: '#0d101a',\n themeColorTextPrimary: '#da11cb',\n themeColorBgAllBoxWithIcon: '#171c31',\n themeColorBgSearch: '#171c31',\n themeColorTextGray2: '#94a3b8',\n themeColorBgCustomFormInput: '#171c31',\n themeColorBgMytabsActive: '#293355',\n themeColorIconDisabled: '#94a3b8',\n themeColorTextGray: '#64748b',\n themeColorBgDropDown: '#293355',\n themeColorBgTableHeader: '#293355',\n themeColorBgDailyCheckinIconContainer: '#1F2E56',\n themeColorBgDailyCheckinDayContainer: '#FFFFFF',\n themeColorBgBottomMenu: '#171c31',\n themeColorBgFooter: '#0f172a',\n themeColorTextBottomMenu: 'rgb(71, 85, 105)',\n themeColorTextBottomMenuActive: '#da11cb',\n themeColorTextGray4: '#cbd5e1',\n themeColorBgCardHeader: '#002e6c',\n themeColorBorderWalletLine: '#343283',\n themeColorTextHomeCategory:' #94a3b8',\n themeBorderHomeBcItemWrapper: 'unset',\n themeColorTextGray5: '#cbd5e1',\n themeColorBgVipBottom: \"linear-gradient(to right, rgba(86, 0, 1, 0.1), rgb(86, 0, 1) 10%, rgb(86, 0, 1) 90%, rgba(86, 0, 1, 0.1))\",\n themeColorBgKeyboard: '#0d101a',\n themeColorBgKeyboardPad: '#171c31',\n themeColorBgShopItem: '#171c31',\n themeColorBgPopUp: '#171c31',\n themeColorBgReminderYellow: 'rgba(111, 203, 32, 0.12)',\n themeColorBgBody: '#000',\n themeMinWidthHtml: 'auto',\n themeColorTextTableThHeader: '#FFFFFF',\n themeColorTextStyledSelect: '#FFFFFF',\n};\n\nconst lightTheme = {\n themeFontFamilyBbase: '\"Poppins\", sans-serif, Arial',\n themeFontSizeBase: '14px',\n themeImgBgBase: \"unset\",\n themeColorBgBase: \"#e7e6e6\",\n themeImgBgAccountContainer: \"unset\",\n themeColorBgAccountContainer: \"rgb(244, 245, 246)\",\n themeColorBgHomeBalanceTabContainer: \"#f4f5f6\",\n themeColorBgHomeBalanceTabActiveContainer: \"#fff\",\n themeColorBgHomeBalanceInputContainer: \"#f4f5f6\",\n themeColorBgPrimary: \"#fff\",\n themeColorTextBase: \"#000\",\n themeColorBgHomeVipContainer: \"#29d5d9\",\n themeBoxShadowHomeBalanceHeader: \"inset 0 7px 10px -7px #5ae4e7\",\n themeBoxShadowHomeBalanceItem: \"unset\",\n themeBoxShadowHomeBcItem: \"unset\",\n themeColorTextHomeBcItem: \"#000\",\n themeColorBgPromoVipContainer:\n \"linear-gradient(180deg, rgba(17, 4, 42, 0) 0%, #8d849d 58.33%, #11042A 100%)\",\n themeColorHomeGameLink: \"rgb(244, 245, 246)\",\n themeColorHomeGameActiveLink: \"rgb(244, 245, 246)\",\n themeColorIconHomeBalance: \"#4b4a4a\",\n themeColorBgModal: '#fff',\n themeColorTextPrimary: '#000',\n themeColorBgAllBoxWithIcon: 'rgb(244, 245, 246)',\n themeColorBgSearch: 'rgb(244, 245, 246)',\n themeColorTextGray2: '#222427',\n themeColorBgCustomFormInput: 'rgb(244, 245, 246)',\n themeColorBgMytabsActive: '#fff',\n themeColorIconDisabled: '#353333',\n themeColorTextGray: '#373c45',\n themeColorBgDropDown: '#fff',\n themeColorBgTableHeader: 'rgb(255 255 255)',\n themeColorBgDailyCheckinIconContainer: '#fff',\n themeColorBgDailyCheckinDayContainer: 'rgb(244, 245, 246)',\n themeColorBgBottomMenu: 'rgb(244, 245, 246)',\n themeColorBgFooter: '#656363',\n themeColorTextBottomMenu: '#63717b',\n themeColorTextBottomMenuActive: '#29D5D9',\n themeColorTextGray4: '#444649',\n themeColorBgCardHeader: 'rgb(244, 245, 246)',\n themeColorBorderWalletLine: '#b9b9bd',\n themeColorTextHomeCategory:' #000',\n themeBorderHomeBcItemWrapper: '1px solid #29d5d9',\n themeColorTextGray5: '#000',\n themeColorBgVipBottom: \"linear-gradient(to right, rgba(86, 0, 1, 0.1), rgb(255, 255, 255) 10%, rgb(221, 221, 221) 90%, rgba(86, 0, 1, 0.1))\",\n themeColorBgKeyboard: '#d1d1d1',\n themeColorBgKeyboardPad: '#a7a7a7',\n themeColorBgShopItem: 'rgb(244, 245, 246)',\n themeColorBgPopUp: 'rgb(63 63 63)',\n themeColorBgReminderYellow: '#f4f5f6',\n themeColorBgBody: '#e7e6e6',\n themeMinWidthHtml: 'auto',\n themeColorTextTableThHeader: '#000',\n themeColorTextStyledSelect: '#000',\n};\n\nconst forestTheme = {\n themeFontFamilyBbase: '\"Poppins\", sans-serif, Arial',\n themeImgBgBase: \"unset\",\n themeColorBgBase: \"#194C38\",\n themeColorTextBase: \"#fff\",\n themeMinWidthHtml: '500px',\n}\n\nconst template1Theme = {\n themeFontFamilyBbase: '\"Poppins\", sans-serif, Arial',\n themeImgBgBase: \"unset\",\n themeColorBgBase: \"#222222\",\n themeColorBgPrimary: \"#2D3035\",\n themeColorBgSecondary: \"#323232\",\n themeColorBgSpecial: '#00000080',\n \n themeColorTextBase: \"#fff\",\n themeColorTextPrimary: '#000000',\n themeColorTextSecondary: '#45FF8B',\n themeColorTextPlaceholder: '#878787',\n themeColorTextSpecial:'#FCE977',\n themeColorTextTableHeader:'#00B052',\n\n\n themeColorBgSideMenuActive: '#003418',\n themeColorBgNav: '#0A0A0A',\n themeColorBgTableHeader: '#152F21',\n themeColorBgTableRow:'#004428',\n \n // themeColorBgBtnDefault: '#2E2F33',\n themeColorBgBtnPrimary: '#45FF8B',\n themeColorBgBtnSecondary: '#45FF8B',\n themeColorBgBtnSubmit: '#45FF8B',\n themeColorBgBtnSpecial: '#E6C252',\n themeColorBgBtnInfo: '#45FF8B',\n themeColorBgBtnLogin: 'linear-gradient(90deg, #FFD963 0%, #EBB614 100%)',\n // themeColorBgInputDefault: '#282828',\n\n themeColorBgInputPrimary: '#FFFFFF',\n themeColorBgInputSpecial: '#585858',\n\n themeMinWidthHtml: '500px',\n}\n\nconst themeGenerator = (activeTheme, replaceValue = {}) => {\n let selectedThemeString = JSON.stringify(template1Theme);\n\n // if (activeTheme === \"default\") {\n // selectedThemeString = JSON.stringify(defaultTheme);\n // } else if (activeTheme === \"dark\") {\n // selectedThemeString = JSON.stringify(darkTheme);\n // } else if (activeTheme === \"light\") {\n // selectedThemeString = JSON.stringify(lightTheme);\n // } else if (activeTheme === \"forest\") {\n // selectedThemeString = JSON.stringify(forestTheme);\n // } else if (activeTheme === \"template1\") {\n // selectedThemeString = JSON.stringify(template1Theme);\n // }\n\n templateSettings.interpolate = /{{([\\s\\S]+?)}}/g;\n const compiled = template(selectedThemeString);\n\n const result = compiled(replaceValue);\n\n return JSON.parse(result);\n};\n\nconst themeIcons = {\n ///general\n menu: \"menu\",\n menu3: \"menu3\",\n angleRight: \"chevron-right\",\n angleLeft: \"chevron-left\",\n angleDown: \"chevron-down\",\n angleUp: \"chevron-up\",\n search: \"search2\",\n wallet: \"okup_wallet\",\n moreVertical: \"more-vertical\",\n home: \"home\",\n activity: \"news-paper\",\n account: \"user-solid-circle\",\n downlines: \"icon-downline\",\n referral: \"icon-referral\",\n sales: \"chart1\",\n home1: \"home1\",\n star: \"star\",\n close: \"close\",\n qrcode: \"qrcode\",\n user: \"user\",\n delete: \"trash2\",\n upload: \"upload4\",\n card: \"credit-card\",\n refresh: \"spinner11\",\n claim: \"download5\",\n okup_withdraw: \"okup_withdraw\",\n eye: \"eye\",\n eyeblocked: \"eye-blocked\",\n eyeBlocked: \"eye-blocked\",\n image: \"image\",\n bank: \"bank\",\n info: \"info\",\n cog: \"cog\",\n alertCircle: \"alert-circle\",\n edit: \"edit-pencil\",\n statistic: \"stats-bars2\",\n copy: \"copy1\",\n checkmark: \"checkmark\",\n huione: \"huione\",\n usdt: \"usdt\",\n bubbles: \"bubbles\",\n profile: \"profile\",\n usercheck: \"user-check\",\n giftpace: \"giftpace\",\n huione: \"huione\",\n usdt: \"usdt\",\n topkash: \"topkash\",\n sliderArrowRight: \"slider-arrow-right\",\n sliderArrowLeft: \"slider-arrow-left\",\n wingWeiluy:\"wing-weiluy\",\n facebook2:\"facebook2\",\n telegram:\"telegram\",\n whatsapp:\"whatsapp\",\n instagram:\"instagram\",\n bubbles:\"bubbles\",\n exclamation_solid:\"exclamation-solid\",\n menu1: \"menu1\",\n livechat_mobile:\"livechat-mobile\",\n envelope4:\"envelope4\",\n calender4:\"calender4\",\n deposit: \"icon-deposit\",\n withdraw: \"icon-withdraw\",\n refresh: \"icon-refresh\",\n checkmarkOutline: \"checkmark-outline\",\n gameCount: \"icon-bullet\",\n starEmpty: \"star-empty\",\n starFull: \"star-full\",\n fullscreen: \"enlarge\",\n exitFullScreen: \"shrink\",\n iconReward:\"icon_reward\",\n dailyTick:\"daily-tick\",\n refreshTime:\"refresh-time\",\n dailySuccess:\"daily-success\",\n exclamation:\"exclamation\",\n unionIcon: \"union-icon\",\n download:\"download5\",\n mlmIcon:\"mlm-icon\",\n\n\n ///dashboard\n dashboardAnnouncement: \"bullhorn\",\n dashboardNotification: \"bell\",\n dashboardBalanceDeposit: \"plus\",\n dashboardBalanceWithdraw: \"okup_withdraw\",\n dashboardBalanceRestore: \"undo\",\n dashboardBalanceTransfer: \"okup_transfer\",\n dashboardBalanceWallet: \"okup_wallet\",\n dashboardCommission: \"currency-dollar\",\n dashboardCommissionClaim: \"arrow-down3\",\n dashboardCommissionDownlines: \"share-2\",\n dashboardCommissionReferral: \"users2\",\n dashboardCommissionSales: \"chart1\",\n dashboardPoints: \"star-full\",\n dashboardPointsCheckin: \"calendar1\",\n dashboardPointsShop: \"shopping-bag\",\n dashboardPointsHistory: \"history\",\n dashboardPointsRecord: \"gift\",\n lockClosed: \"lock-closed\",\n\n ///settings\n settingsLanguage: \"conversation\",\n settingsBank: \"library\",\n settingsPassword: \"icon-password\",\n settingsPin: \"calculator1\",\n settingsLivechat: \"help-circle\",\n settingsTerms: \"file-text2\",\n settingsLogout: \"log-out\",\n playButton: \"play3\",\n pauseButton: \"pause2\",\n loop: \"loop\",\n volumeHigh: \"volume-high\",\n volumeMute: \"volume-mute2\",\n previousBtn: \"previous2\",\n nextBtn: \"next2\",\n shuffleBtn: \"shuffle2\",\n musicNotes: \"music-notes\",\n musicPlaylist: \"music-playlist\",\n addFavourite: \"plus2\",\n addedMusic: \"check\",\n\n //profile\n profilePhone: 'phone',\n profileMail: 'mail1',\n\n \n};\n\nexport { defaultTheme, darkTheme, lightTheme, forestTheme, template1Theme, themeGenerator, themeIcons };\n","import { map } from \"lodash\";\nimport React, { useEffect } from \"react\";\nimport ContentLoader from \"react-content-loader\";\nimport LazyLoad from \"react-lazyload\";\nimport 'react-loading-skeleton/dist/skeleton.css'\nimport Skeleton from \"react-loading-skeleton\";\nimport PlaceholderLoading from \"react-placeholder-loading\";\n\nconst LoadingGames = (props) => {\n // Get values from props\n // const { rows, columns, coverHeight, coverWidth, padding, speed } = props;\n\n // Hardcoded values\n const rows = props.rows || 2;\n const columns = props.rows || 6;\n const coverHeight = 215;\n const coverWidth = 169;\n const padding = 10;\n const speed = 1;\n\n const coverHeightWithPadding = coverHeight + padding;\n const coverWidthWithPadding = coverWidth + padding;\n const initial = 35;\n const covers = Array(columns * rows).fill(1);\n\n useEffect(() => {}, []);\n\n return (\n <>\n \n {props.banner? : \"\"}\n {/* {props.banner ? (\n
\n \n
\n ) : (\n \"\"\n )} */}\n {props.title ? (\n
\n {/* */}\n {/* */}\n
\n ) : (\n \"\"\n )}\n \n
\n {map(covers, (item, index) => {\n return (\n \n // \n );\n })}\n \n
\n \n
\n \n\n\n );\n};\n\n\n\nexport default LoadingGames;\n","import React from 'react'\nimport { stringIsNullOrEmpty } from '../../util/Util';\n \n\nclass ProviderIconDisplay {\n constructor({imgClassName, imgSrc, imgAlt }) {\n this.imgClassName = imgClassName;\n this.imgSrc = imgSrc;\n this.imgAlt = imgAlt;\n }\n}\n\nconst ProviderIcon = React.forwardRef((props, ref) => {\n const {\n containerClassName,\n imgLightMode,\n imgDarkMode,\n imgAlt\n } = props\n\n return (\n
\n\t\t\t\t{imgLightMode && !stringIsNullOrEmpty(imgLightMode.imgSrc) && (\n \n )}\n \n {imgDarkMode && !stringIsNullOrEmpty(imgDarkMode.imgSrc) && (\n \n )}\n\t\t
\n )\n})\n\nexport default ProviderIcon\nexport { ProviderIconDisplay };\n","import {\n _IDLE,\n _BUSY,\n _ALERT_TYPES,\n _API_CALLED,\n _DOWNLINE_SEARCH,\n _DOWNLINE_QUERY,\n _REFERRAL_SEARCH,\n _REFERRAL_QUERY,\n _SET_Y,\n _SET_PAGESIZE,\n _SET_ACTIVE_TAB,\n _IS_KEEPED_LOGIN,\n _GAME_SEARCH,\n _GAME_QUERY,\n _SET_BOTTOM_TAB_INDEX,\n _BIND_SETTING,\n _BIND_MEMBER,\n _BIND_MEMBER_WALLET,\n _BIND_MEMBER_WALLET_BALANCE,\n _BIND_GAMES,\n _BIND_GAMES_RECOMMENDED,\n _BIND_GAMES_FEATURED,\n _SET_PAYMENT_LIST,\n _SET_WALLET_INFO,\n _SET_OPEN_MENU,\n _SET_REPORT_OVERVIEW,\n _SET_DOWNLINE,\n _SET_BANNERS,\n _SET_DEPOSIT_MODAL,\n _SET_DEPOSIT_TAB,\n _SET_LOGIN_MODAL,\n _SET_REGISTER_MODAL,\n _SET_PROVIDER,\n _SET_LATEST_BETS,\n _SET_GAME_LOBBY_MODAL,\n _SET_RESET_PASSWORD,\n _SET_DOWNLINE_MODAL,\n _SET_SHARE_REFERRAL_MODAL,\n _BUSY_LOADING,\n _SET_PROFILE_MODAL,\n _SET_SPIN_WHEEL_LIST_MODAL,\n _SET_SPIN_WHEEL_REPORT_MODAL,\n _SET_SEO_CONTENT,\n _SET_REPORT_OVERVIEW_MODAL,\n _SET_GAME_IFRAME_MODAL,\n _SET_COMPLETE_INFO_MODAL,\n _SET_DAILY_CHECKIN_MODAL,\n _SET_DAILY_CHECKIN_EXIST,\n _SET_REFERRAL_BONUS_MODAL,\n _SET_MUSIC_PLAYER_MODAL,\n _BIND_HOT_GAMES,\n} from \"./AppAction\";\nimport { stringIsNullOrEmpty } from \"../util/Util\";\nimport i18n from \"../localization/i18n\";\n\nconst _INITIAL_STATE = {\n brandName: \"\",\n isBusy: false,\n isBusyLoading: false,\n isKeepedLogin: false,\n message: i18n.t(\"LOADING\"),\n alert: {},\n iconEnabled: true,\n apiCalledResponse: {},\n savedText: \"\",\n savedReferralText: \"\",\n gameSavedText: \"\",\n savedQuery: \"\", // KT: DEFAULT REMOVED\n savedReferralQuery: \"\", // KT: DEFAULT REMOVED\n gameQuery: \"\", // KT: DEFAULT REMOVED\n y: 0,\n pageSize: 10,\n activeTab: 0,\n bottomTabIndex: 0,\n member: {},\n games: [],\n gamesRecommended:{\n slotGamesCount:0,\n slotGames:[],\n casinoGamesCount:0,\n\t\tcasinoGames:[]\n },\n gamesFeatured:{\n slotGamesCount:0,\n slotGames:[],\n },\n hotGames:[],\n payments: [],\n walletBalance: 0,\n walletInfo: [],\n reportOverview: {\n displayData: [],\n newDisplayData: [],\n totalTransferToWallet: 0,\n totalTransferToWalletLM: 0,\n totalTransferToMember: 0,\n totalTransferToMemberLM: 0,\n totalBetAmount: 0,\n totalBetAmountLM: 0,\n totalCommission: 0,\n totalCommissionLM: 0,\n totalVipCommission: 0,\n totalBonus: 0,\n },\n downline: {\n memberData: null,\n recentData: null,\n },\n banners: [],\n themeName: \"template1\",\n openMenu: true,\n depositModal:false,\n depositTab:1,\n loginModal:false,\n gameLobbyModal:false,\n registerModal:false,\n provider:[],\n channels:[],\n latestBets:[],\n walletsDetails:{\n currentWalletBalance : 0,\n bonusWalletBalance : 0,\n isPromoCleared :false,\n isBonusWalletRestored : false,\n isValidForPromotion : false,\n isActivedPromoExist: false,\n promoMaxWithdrawal: false,\n minCoinTarget: 0,\n },\n companyIcons:[],\n bannerAPK:{},\n //floatingChat:{},\n isResetPassword:false,\n downlineModal:false,\n reportOverviewModal:false,\n shareReferralModal:false,\n companyCurrency:\"$\",\n depositPresetAmt:\"30,50,100,200,500,1000\",\n htmlStyle: false,\n chatSphere: [],\n languages: [],\n profileModal: false,\n seoContent:{\n pageName:\"\",\n seoTitle:\"\",\n seoDescription:\"\"\n },\n companyCurrencySymbol: \"$\",\n gameIframeModal: false,\n dialingCodes: [],\n promotionLayout: \"1\",\n promotionShowCategoryTitle: true,\n completeInfoModal:false,\n showPromoThumbnailClaimButton: false,\n dailyCheckinModal:false,\n dailyCheckInExist:false,\n referralBonusModal: false,\n isReferralBonusActive: false,\n dashboardComponent: [],\n isNormalDepositEnable: false,\n isNormalWithdrawalEnable: false,\n musicPlayerModal: false,\n companyTimeZone:\"\"\n }\n\nvar _busyCount = 0;\n\nexport default (state = _INITIAL_STATE, action) => {\n switch (action.type) {\n case _BUSY:\n _busyCount++;\n return {\n ...state,\n isBusy: true,\n message: stringIsNullOrEmpty(action.message)\n ? i18n.t(\"LOADING\")\n : action.message,\n iconEnabled:\n action.iconEnabled == null\n ? _INITIAL_STATE.iconEnabled\n : action.iconEnabled,\n };\n break;\n case _IDLE:\n _busyCount = Math.max(--_busyCount, 0);\n return {\n ...state,\n isBusy: _busyCount != 0,\n };\n break;\n case _ALERT_TYPES.SET_ALERT:\n return {\n ...state,\n alert: Object.keys(state.alert) == 0 ? action.alert : state.alert,\n };\n break;\n case _ALERT_TYPES.NONE:\n return {\n ...state,\n alert: {},\n };\n break;\n case _API_CALLED:\n return {\n ...state,\n apiCalledResponse: action.data,\n };\n break;\n case _DOWNLINE_SEARCH:\n return {\n ...state,\n savedText: action.data,\n };\n break;\n case _DOWNLINE_QUERY:\n return {\n ...state,\n savedQuery: action.data,\n };\n break;\n case _REFERRAL_SEARCH:\n return {\n ...state,\n savedReferralText: action.data,\n };\n break;\n case _REFERRAL_QUERY:\n return {\n ...state,\n savedReferralQuery: action.data,\n };\n break;\n case _GAME_SEARCH:\n return {\n ...state,\n gameSavedText: action.data,\n };\n break;\n case _GAME_QUERY:\n return {\n ...state,\n gameQuery: action.data,\n };\n break;\n case _SET_Y:\n return {\n ...state,\n y: action.y,\n };\n case _SET_PAGESIZE:\n return {\n ...state,\n pageSize: action.data,\n };\n break;\n case _SET_ACTIVE_TAB:\n return {\n ...state,\n activeTab: action.data,\n };\n break;\n case _SET_BOTTOM_TAB_INDEX:\n return {\n ...state,\n bottomTabIndex: action.bottomTabIndex,\n };\n break;\n case _BIND_MEMBER:\n return {\n ...state,\n member: action.member,\n walletBalance: action.walletBalance,\n walletsDetails: action.walletsDetails,\n };\n break;\n case _BIND_MEMBER_WALLET_BALANCE:\n return {\n ...state,\n walletBalance: action.walletBalance,\n walletsDetails: action.walletsDetails,\n\n };\n break;\n case _BIND_MEMBER_WALLET:\n return {\n ...state,\n walletsDetails: action.walletsDetails,\n };\n case _BIND_GAMES:\n return {\n ...state,\n games: action.games,\n };\n break;\n case _BIND_GAMES_RECOMMENDED:\n return {\n ...state,\n gamesRecommended: {\n slotGamesCount: action.slotGamesCount,\n slotGames: action.slotGames,\n casinoGamesCount: action.casinoGamesCount,\n\t casinoGames: action.casinoGames\n }\n };\n break;\n case _BIND_GAMES_FEATURED:\n return {\n ...state,\n gamesFeatured: {\n slotGamesCount: action.slotGamesCount,\n slotGames: action.slotGames\n }\n };\n break;\n case _SET_PAYMENT_LIST:\n return {\n ...state,\n payments: action.payments,\n };\n break;\n case _SET_OPEN_MENU:\n return {\n ...state,\n openMenu: action.data,\n };\n break;\n case _SET_WALLET_INFO:\n return {\n ...state,\n walletInfo: action.data,\n };\n break;\n\n case _SET_REPORT_OVERVIEW:\n state.reportOverview.displayData = action.displayData;\n state.reportOverview.newDisplayData = action.newDisplayData;\n state.reportOverview.totalTransferToWallet = action.totalTransferToWallet;\n state.reportOverview.totalTransferToWalletLM = action.totalTransferToWalletLM;\n state.reportOverview.totalTransferToMember = action.totalTransferToMember;\n state.reportOverview.totalTransferToMemberLM = action.totalTransferToMemberLM;\n state.reportOverview.totalBetAmount = action.totalBetAmount;\n state.reportOverview.totalBetAmountLM = action.totalBetAmountLM;\n state.reportOverview.totalCommission = action.totalCommission;\n state.reportOverview.totalCommissionLM = action.totalCommissionLM;\n state.reportOverview.totalVipCommission = action.totalVipCommission;\n state.reportOverview.totalBonus = action.totalBonus;\n\n return {\n ...state,\n };\n break;\n case _SET_DOWNLINE:\n state.downline.memberData = action.memberData;\n state.downline.recentData = action.recentData;\n return {\n ...state,\n };\n break;\n case _SET_BANNERS:\n return {\n ...state,\n banners: action.banners,\n };\n break;\n case _SET_DEPOSIT_MODAL:\n return {\n ...state,\n depositModal: action.depositModal,\n depositTab: action.depositTab\n };\n break;\n case _SET_DOWNLINE_MODAL:\n return {\n ...state,\n downlineModal: action.downlineModal,\n };\n break;\n case _SET_SHARE_REFERRAL_MODAL:\n return {\n ...state,\n shareReferralModal: action.shareReferralModal,\n };\n break;\n case _SET_DEPOSIT_TAB:\n return {\n ...state,\n depositTab: action.depositTab\n };\n break;\n case _SET_LOGIN_MODAL:\n return {\n ...state,\n loginModal: action.loginModal\n };\n break;\n case _SET_GAME_LOBBY_MODAL:\n return {\n ...state,\n gameLobbyModal: action.gameLobbyModal\n };\n break;\n case _SET_REGISTER_MODAL:\n return {\n ...state,\n registerModal: action.registerModal\n };\n break;\n case _SET_PROVIDER:\n return {\n ...state,\n provider: action.provider\n };\n break;\n case _SET_LATEST_BETS:\n return {\n ...state,\n latestBets: action.latestBets\n };\n break;\n case _SET_RESET_PASSWORD:\n return {\n ...state,\n isResetPassword: action.isResetPassword\n };\n break;\n\n case _BUSY_LOADING:\n return {\n ...state,\n isBusyLoading: action.isBusyLoading,\n };\n break;\n case _SET_PROFILE_MODAL:\n return {\n ...state,\n profileModal: action.profileModal\n };\n break;\n case _SET_SPIN_WHEEL_LIST_MODAL:\n return{\n ...state,\n spinWheelListModal: action.spinWheelListModal\n };\n case _SET_SPIN_WHEEL_REPORT_MODAL:\n return{\n ...state,\n spinWheelReportModal: action.spinWheelReportModal\n };\n case _SET_GAME_IFRAME_MODAL:\n return {\n ...state,\n gameIframeModal: action.gameIframeModal,\n };\n break;\n case _SET_SEO_CONTENT:\n state.seoContent.pageName = action.pageName;\n state.seoContent.seoTitle = action.seoTitle;\n state.seoContent.seoDescription = action.seoDescription;\n\n return {\n ...state,\n };\n break;\n case _BIND_SETTING:\n return {\n ...state,\n depositPresetAmt: action.depositPresetAmt != null ? action.depositPresetAmt : \"30,50,100,200,500,1000\", // MULTITAB THINGY\n companyCurrency: action.companyCurrency, // Account/GetCompanyDetails\n companyIcons: action.companyIcons,\n channels: action.channels,\n htmlStyle: action.htmlStyle,\n chatSphere: action.chatSphere,\n languages: action.languages,\n brandName: action.brandName,\n membershipEnabled: action.membershipEnabled,\n currencySymbol: action.currencySymbol,\n dialingCodes : action.dialingCodes,\n settingApiComplete: action.settingApiComplete,\n promotionLayout: action.promotionLayout,\n promotionShowCategoryTitle: action.promotionShowCategoryTitle,\n showPromoThumbnailClaimButton: action.showPromoThumbnailClaimButton,\n isReferralBonusActive: action.isReferralBonusActive,\n otpEnabled: action.otpEnabled,\n eWalletOTPEnabled: action.eWalletOTPEnabled,\n captchaEnabled: action.captchaEnabled,\n priorityModalTypeId: action.priorityModalTypeId,\n dashboardComponent: action.dashboardComponent,\n isNormalDepositEnable: action.isNormalDepositEnable,\n isNormalWithdrawalEnable: action.isNormalWithdrawalEnable,\n musicPlayerEnabled: action.musicPlayerEnabled,\n musicTrackList: action.musicTrackList,\n isEWalletActive: action.isEWalletActive,\n isBankTransferActive: action.isBankTransferActive,\n isReferralCommissionManual: action.isReferralCommissionManual,\n isRebateManual: action.isRebateManual,\n availableProductCategories: action.availableProductCategories,\n isGameLobbyRequired: action.isGameLobbyRequired,\n companyTimeZone: action.companyTimeZone,\n bannerAPK:action.bannerAPK,\n //floatingChat:action.floatingChat,\n isLoginAttemptBlockingEnabled: action.isLoginAttemptBlockingEnabled,\n isHotGameEnabled: action.isHotGameEnabled,\n affiliateLink: action.affiliateLink,\n isCasinoLobbyEnabled: action.isCasinoLobbyEnabled,\n isEZUsernameEnabled: action.isEZUsernameEnabled\n };\n case _SET_REPORT_OVERVIEW_MODAL:\n return {\n ...state,\n reportOverviewModal: action.reportOverviewModal,\n };\n break;\n case _SET_COMPLETE_INFO_MODAL:\n return {\n ...state,\n completeInfoModal: action.completeInfoModal\n };\n break;\n case _SET_DAILY_CHECKIN_MODAL:\n return {\n ...state,\n dailyCheckinModal: action.dailyCheckinModal\n };\n break;\n case _SET_DAILY_CHECKIN_EXIST:\n return {\n ...state,\n dailyCheckInExist: action.dailyCheckInExist\n };\n break;\n case _SET_REFERRAL_BONUS_MODAL:\n return {\n ...state,\n referralBonusModal: action.referralBonusModal\n };\n break;\n case _SET_MUSIC_PLAYER_MODAL:\n return {\n ...state,\n musicPlayerModal: action.musicPlayerModal\n };\n break;\n case _IS_KEEPED_LOGIN:\n return {\n ...state,\n isKeepedLogin: action.data,\n };\n break;\n case _BIND_HOT_GAMES:\n return {\n ...state,\n hotGames: action.hotGames,\n };\n break;\n default:\n return state;\n break;\n }\n};\n","import {\n _LOGIN_SUCCESS,\n _LOGIN_FAILED,\n _LOGOUT,\n _GET_SHOP_CREDIT,\n _UPDATE_USER_DATA,\n _LOGIN_MODAL,\n} from \"./AuthAction\";\n\nconst _INITIAL_STATE = {\n userData: {},\n heartBeat: false,\n loginMessage: \"\",\n loginStateInitialized: false,\n creditLimit: 0,\n isToggleLoginModal: false,\n};\n\n/// \n/// Author :\n/// \nexport default (state = _INITIAL_STATE, action) => {\n switch (action.type) {\n case _LOGIN_SUCCESS:\n return {\n ...state,\n userData: action.userData,\n heartBeat: true,\n loginMessage: \"\",\n loginStateInitialized: true,\n isToggleLoginModal: false,\n };\n break;\n case _LOGIN_FAILED:\n return {\n loginMessage: action.message,\n heartBeat: false,\n userData: {},\n loginStateInitialized: true,\n isToggleLoginModal: false,\n };\n break;\n case _UPDATE_USER_DATA:\n return {\n ...state,\n userData: action.userData,\n };\n break;\n case _GET_SHOP_CREDIT:\n return {\n ...state,\n creditLimit: action.creditLimit,\n };\n break;\n case _LOGOUT:\n return {\n userData: {},\n heartBeat: false,\n loginMessage: \"\",\n loginStateInitialized: true,\n creditLimit: 0,\n isToggleLoginModal: state.isToggleLoginModal,\n };\n break;\n case _LOGIN_MODAL:\n return {\n ...state,\n isToggleLoginModal: action.isToggleLoginModal,\n };\n break;\n default:\n return state;\n break;\n }\n};\n","import { _SAVE_LANGUAGE_ID } from './LanguageAction';\n\nconst _INITIALSTATE = {\n languageId: \"\",\n retain: false\n};\n\n/// \n/// Author : -\n/// \nexport default (state = _INITIALSTATE, action) => {\n switch (action.type) {\n case _SAVE_LANGUAGE_ID:\n return {\n ...state,\n languageId: action.languageId,\n retain: action.retain\n }\n break;\n default:\n return state;\n break;\n }\n};","import { createStore, applyMiddleware, combineReducers } from \"redux\";\nimport appReducer from \"./redux/AppReducer\";\nimport authReducer from \"./redux/AuthReducer\";\nimport languageReducer from \"./redux/LanguageReducer\";\nimport thunk from \"redux-thunk\";\nimport { composeWithDevTools } from \"redux-devtools-extension\";\n/// \n/// Author :\n/// \nconst store = createStore(\n combineReducers({\n authState: authReducer,\n appState: appReducer,\n languageState: languageReducer,\n }),\n composeWithDevTools(applyMiddleware(thunk))\n);\n\nexport default store;\n"],"sourceRoot":""}