{"version":3,"sources":["constants/loggerConstants.js","utility/SRCWrapper.js","logger/loggerConstants.js","Controllers/DataParamsController.js","components/FooterNavBar.tsx","Controllers/IRAController.js","pages/independent_reference_app/IRA_ThankYou.js","utility/utility.js","redux/reducers/RootReducer.js","redux/reducers/Reducer.js","redux/store.js","pages/scenario_7/PaymentThankyou.Page.js","pages/scenario_4/ScenarioFourPaymentThankyou.js","pages/scenario_3/ST_Thankyou.js","pages/scenario_5/SF_Thankyou.js","utility/dataConstansts.js","redux/actions/Action.js","utility/EnvironWrapper.js","components/LogWindow.js","components/SidebarMenu.js","components/NavBar.js","Controllers/SignInController.js","pages/Scenarios/PaymentThankyou.Page.js","layouts/BasicLayout.js","components/DashboardNavBar.tsx","pages/dashboard/Dashboard.Page.tsx","components/PaymentNavBar.tsx","pages/payment-profile/PaymentProfile.Page.tsx","components/CheckoutNavBar.tsx","pages/payment-card-details/PaymentCardDetails.Page.tsx","pages/payment-otp/PaymentOTP.Page.tsx","pages/scenario_7/PaymentConfirmation.Page.js","utility/CardEncryption.js","pages/scenario_7/PaymentCard.Page.js","components/SearchNavBar.tsx","pages/scenario_7/Checkout.Page.js","pages/scenario_4/ConsumerIdentity.Page.js","pages/scenario_4/ScenarioFourCheckoutPage.js","pages/scenario_4/CompleteIdentity.Page.js","pages/scenario_4/ProfilePage.js","pages/scenario_3/ST_ProfilePage.js","pages/scenario_3/ST_CheckoutPage.js","components/ConfigureWindow.js","utility/SdkMethodWrapper.js","pages/independent_reference_app/IRA_Checkout.js","pages/independent_reference_app/IRA_PaymentCard.js","pages/independent_reference_app/IRA_CompleteIdentity.js","pages/independent_reference_app/IRA_Profile.js","components/LoginNavBar.tsx","pages/independent_reference_app/IRA_Login.js","pages/independent_reference_app/IRA_NewPassword.js","pages/independent_reference_app/IRA_AddCardPage.js","pages/independent_reference_app/IRA_ForgotPassword.js","pages/scenario_5/SF_PaymentCardPage.js","pages/scenario_5/SF_CheckoutPage.js","pages/scenario_5/SF_ProfilePage.js","pages/Scenarios/Checkout.Page.js","pages/Scenarios/ProfilePage.js","pages/Scenarios/PaymentCard.Page.js","Routes.js","pages/Scenarios/ConsumerIdentity.Page.js","pages/Scenarios/CompleteIdentity.Page.js","components/loading-spinner/Loader.js","App.js","index.js","components/ThankyouNavbar.tsx","Controllers/ServerToServerAPIController.js"],"names":["loggerHost","jwtDecode","require","uuidv1","SRCWrapper","setSRCiTransactionID","srcTransactionID","decodeJWTToken","jwtToken","type","decodedJWTToken","console","log","testtype","systemUnderTestURL","store","dispatch","clientID","srcClientID","dpaID","srcDpaID","storeCardEncryptedJWTToken","DataParamsController","getParamsForTheTestCase","testcase","loadDynamicSystemUnderTestURL","loadDefaultSDKURL","logTestcaseInfo","defaultSrcDpaId","envKeys","argusCertDpaID","defaultSrcClientId","argusCertSrcClientID","getState","reducer","a","IRAController","getAllEnvironment","environmentDetails","environments","environment","forEach","SRC_DPA_ID","trim","JWTToken","JWT_Token","this","loadSDKCounter","_srcTransactionID","uniqueId","_redirection","link","_testCaseInfo","testCase","defaultURL","document","getElementById","getAttribute","url","removeLoadedScript","script","createElement","src","id","head","appendChild","envName","existingSDKURL","removeChild","EnvironWrapper","addEnviron","transactionInformation","redirection","testCaseInfo","ts","Date","toISOString","replace","databody","value","SRCTransactionID","timestamp","$","ajax","crossDomain","data","JSON","stringify","contentType","success","error","sdkuri","apiuri","dcfuri","infouri","warnuri","erroruri","loguri","lithosuri","referenceAppuri","screenShotUploaduri","getParamsForTestCaseuri","dgnCardEncryptURI","getEnvironmentURI","fetchlogsURI","fetchOauthURI","DecryptPayloadURI","downloadSDK","fetchSDK","testCaseName","includes","dataParams","parse","getParamsForTheConfiguration","Configuration","getParamsForJsonEditConfig","JsonEditConfiguration","getParamsForTheAPICall","apiName","testDataParams","userDetails","jsonEdit","UIJsonEdit","sdkParams","developerMode","sdkParamValuesForUIJsonEdit","clientId","dpaId","getCookie","existingCookie","cookieIndex","findIndex","x","srcDpaId","srcInitiatorId","srciTransactionId","isEmptyObject","dataConstansts","params","length","configParams","attachOptionalAndMandatoryParams","reduce","result","item","SdkFunctionName","sdkParamName","GroupName","split","Fields","element","parameterNames","ParameterName","existingObj","counter","HelpData","Type","trimedString","tempArr","DefaultData","map","e","Boolean","push","dpaTransactionOptions","updateTestDataValueInStore","groupName","arrPosition","tempId","slice","createCookie","ServerToServerAPIController","transactionAmount","DataParams","APIName","Params","sdkMethodName","jsonEditConfig","funcParams","sdkParamIndex","parameters","tempParam","key","obj","updateJsonEditorConfigData","updatedJsonValue","indexCounter","_developerMode","isEnabled","user","dcfInvokeName","checkoutParams","sdkPram","windowRef","toLowerCase","field","FooterNavBarComponent","className","href","target","React","CryptoJS","Auth","currentAuthenticatedUser","username","CryptoConfiguration","scenraioBasedEmail","fetch","method","headers","body","response","text","fetchResponse","apiResponseDecryption","SUTs","loadConfigureDataForIndependentRefApp","IRAJson","FetchCustomAttributes","loadConfigureDataAsPerEnvironment","configurationData","envParameters","envId","Parameters","loadConfigureDataBasedOnJsonEditor","configData","assignedEnvironments","attributes","customeAttrEnv","configureSDKEnvironment","isEnvChanged","tempEnvArr","isEnvConfigured","ParticipantName","selectedEnvironments","some","env","sdkURL","SDKURL","loadMutlipleEnvScript","isURLLoaded","SRC_Client_ID","createConfigEnvCookies","srcClientId","cookieObj","tempCookieArr","checkExistingConfigEnvCookies","updateinBrowser","splice","cookieName","cookieValue","arrJsonStr","encryptCookie","cipherText","cookie","escape","deleteCookie","date","setTime","getTime","expires","toUTCString","envCookieName","configIdCookieName","Name","jsonParse","name","decodedCookie","decodeURIComponent","ca","i","c","charAt","substring","indexOf","encryptedCookie","decryptCookie","decryptedCookie","encryptedCipherText","AES","encrypt","cookiePassword","toString","encryptedText","decryptedText","bytes","decrypt","enc","Utf8","storeCurrentTransactionLogs","logRequest","logResponse","logType","request","time","transactionLog","api","storedLogs","CurrentTransactionLogs","logArray","LogWindow","fecthCurrentTransactionLogs","initializeTreeViewInLog","initializeTreeView","fetchLogs","searchString","page","sessionStartDate","sessionStorage","getItem","getCurrentUTCDateAndTime","startDate","endDate","transactionLogSearch","LogType","StartDateTime","EndDateTime","GroupBy","SearchString","Page","User_Email","today","month","String","getUTCMonth","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","getUTCFullYear","loadCheckoutPage","errorStatus","click","window","location","origin","getEnvironmentFromStore","iv","Hex","aesIvKey","pass","aesDecryptionPassword","salt","aesSaltKey","key128Bits1000Iterations","PBKDF2","keySize","iterations","cipherParams","lib","CipherParams","create","ciphertext","Base64","mode","CBC","padding","pad","Pkcs7","err","IRA_ThankYou","props","onClickConfigureButton","state","billingAddress","shippingAddress","isUserSignedIn","global","dataURL","then","setState","catch","cardDetail","cardList","line1","line2","city","countryCode","zip","to","fluid","md","width","Component","logImage","apiname","screencapture","message","APIID","ScreenShot","processData","responseData","textStatus","jqXHR","errorThrown","combineReducers","action","MERCHANT_NAME","merchantName","LOADER_STATE","loaderState","ID_TOKENS","idTokens","SRC_CORRELATION_ID","srcCorrelationId","CARD_LIST","DPA_ID","DATA_PARAMS","SRC_CLIENT_ID","ENVIRONMENT","JWT_TOKEN","IRA_LOGS","IRALogs","DCF_URL","DCFUrl","CURRENT_TRANSACTION_LOGS","SERVER_TO_SERVER_API","ServerToServerAPI","SELECTED_ENVIRONMENTS","USER_DETAILS","createStore","rootReducer","applyMiddleware","thunk","PaymentThankyouPage","closeWindow","sleep","opener","close","cardData","maskedBillingAddress","panDetails","digitalCardData","presentationName","panLastFour","html2canvas","querySelector","height","canvas","toDataURL","ms","d","d2","alt","onClick","ScenarioFourPaymentThankyou","parent","focus","ST_Thankyou","SF_Thankyou","initialization","cardEnrollment","encryptedCard","card","primaryAccountNumber","cardSecurityCode","panExpirationMonth","panExpirationYear","checkout","payloadTypeIndicatorPayload","identityLookup","consumerIdentity","identityProvider","identityType","identityValue","identityInitiate","completeIdentity","validationData","getSrcProfile","consumerEmailAddressRequested","consumerNameRequested","consumerPhoneNumberRequested","customInputData","additionalProp1","additionalProp2","additionalProp3","dpaAcceptedBillingCountries","dpaAcceptedShippingCountries","dpaBillingPreference","dpaShippingPreference","dpaLocale","merchantCategoryCode","merchantCountryCode","merchantOrderId","orderType","srcTokenRequestData","paymentOptions","dpaDynamicDataTtlMinutes","dynamicDataType","threeDsInputData","acquirerId","acquirerMid","requestorId","transactionCurrencyCode","threeDsPreference","transactionType","reviewAction","dpaTransactionOptions1","profiles","completeIdentityValidation","argusQADpaID","argusQASrcClientID","opusSandoxDpaID","opusSandoxSrcClientID","opusStagingDpaID","opusStagingSrcClientID","phStagingDpaID","phStagingSrcClientID","phSandboxDpaID","phSandboxSrcClientID","envURLs","argusQASdkUrl","argusCertSdkUrl","opusSandoxSdkUrl","opusStagingSdkUrl","argusCertJWTKey","testJWTKey","argusQAJWTKey","opusSandboxJWTKey","opusStagingJWTKey","tempKey","table","_selectedEnvs","envs","callback","selectedEnvs","async","onload","setSDKObject","DGNCheckout","isEnvironLoaded","index","pgNumber","transactionLogs","fn","extend","treed","o","openedClass","closedClass","tree","addClass","find","has","each","branch","prepend","on","children","toggleClass","toggle","closest","preventDefault","lithosTransactionTreed","event","show","getLogsBasedOnSelection","css","logs","logCount","pageRangeDisplay","val","forceUpdate","switchFieldChanges","setItem","handlePageChange","pageNumber","activePage","componentDidMount","addEventListener","handeleScroll","scrollY","scrollToTop","scrollTo","top","behavior","handleEnterKeyPressInSearch","handleKeyPressInSearch","searchLogs","search","filter","transactionOnChange","fetchedLogs","logPageDisplayCount","count","toFixed","lithosLogs","lithosLogCount","parseInt","sessionLogType","currentTransactionLog","entireLog","fromDate","toDate","intervalId","thePosition","bind","removeEventListener","CustomToastWithLink","position","autoClose","newestOnTop","closeOnClick","rtl","pauseOnFocusLoss","draggable","limit","toast","icon","faHeadset","xs","checked","onChange","htmlFor","placeholder","onKeyPress","hideDisabled","itemsCountPerPage","totalItemsCount","pageRangeDisplayed","style","display","data-toggle","data-placement","title","faAngleUp","SideBarComponent","disableAutoFocus","Row","Col","SignInController","signOut","faSignOutAlt","color","cursor","NavBarComponent","sidebarOpen","onSetSidebarOpen","open","Navbar","bg","Brand","Nav","signIn","password","cognitoUser","reload","forgotPassword","emailAddress","forgotPasswordPost","verificationCode","forgotPasswordSubmit","changePassword","newPassword","changedUser","completeNewPassword","Amplify","configure","identityPoolId","configureJson","region","userPoolId","userPoolWebClientId","_cognitoUser","BasicLayout","layoutContent","DashboardNavBarComponent","PaymentNavBarComponent","scenarioPath","pathname","cancelELement","cancelURL","PaymentProfilePage","Container","aria-describedby","defaultValue","FooterNavBar","CheckoutNavBarComponent","faTimes","PaymentCardDetailsPage","enrollCardClick","PaymentOTPPage","otpError","validateFunction","PaymentConfirmationPage","successMsg","faChevronRight","paymentConfirmation","JWTKey","kid","encrptCardDetails","StoredJWTToken","getEncryptionKeys","encryptCardUsingJWTKeys","jose","keystore","createKeyStore","asKeyStore","all","use","get","createEncrypt","format","update","final","encryptCardUsingAPI","headersParameters","Accept","Authorization","json","PaymentCardPage","cardNumber","cardExpTxt","splitedString","exMonth","exYear","cardCvvTxt","CardEncryption","enrollCard","maskedCard","description","errorMessage","selectDcfInvoke","dcfInvokeType","noWindowRef","blankWindowRef","contentWindow","dcfInvokeStatus","emptyWindowRef","directCheckout","enrollCardResponse","dcfActionCode","srcDigitalCardId","srciActionCode","dcfIframe","setAttribute","zIndex","margin","after","dcfWindow","frame","parentNode","errorResponse","transactionStatus","errorDescription","cardNumberInput","expiryMonth","expiryYear","cvvNo","validationErrorCardNo","validationErrorExpiryDate","validationErrorCvvNo","s4Redirection","dcfInvokeMsg","contenteditable","data-max-length","autoComplete","cardExpiryInput","cardSCodeInput","Label","class","textAlign","check","Input","marginLeft15px","onLoad","changeEmptyWindowRef","SearchNavBarComponent","ptagELement","faShoppingCart","urlDataParam","CheckoutPage","handleCheckoutClick","readyState","pageStatus","initializationParams","init","isRecognized","recognized","responseStatus","inputFocusout","inputValue","textContent","inputID","inputGroupName","closePopUpClick","handlePopUpClick","configuration","dataConfiguration","handleToggleClick","classList","content","nextElementSibling","maxHeight","scrollHeight","processQueryParams","responseMessage","urlparam","onreadystatechange","groupname","contentEditable","onBlur","ConsumerIdentity","connect","loader","getIdentityValue","emailInput","identityLookupParams","identityLookupResponse","consumerPresent","initiateIdentityValidation","reasonCode","completeValidation","validationMsg","validationMessage","ScenarioFourCheckoutPage","status","CompleteIdentity","alert","getValidationData","identityCompleteValidation","letterRendering","allowTaint","completeValidationConst","idToken","getProfiles","reason","details","ProfilePage","cardSelected","cardId","maskedCards","completeTransaction","addCard","switchConsumer","errorCode","checkoutResponse","srcProfiles","Fragment","artUri","ST_ProfilePage","invokeType","ST_CheckoutPage","initResponse","recongizeResponse","beautify","ConfigureComponent","onHandleChange","onEnvSelection","tempMobileEnv","Platform","not","prop","envArr","checkedEnvs","arrEnvironmnets","environmnets","arrIndex","concat","IRA_Checkout","updateEnvironmentNameInUI","onChangeEnvironment","RemoveUnselectedEnvFromConfig","fetchConfigurationParams","isUIJsonEdit","UIJsonEditConfig","UIJsonConfig","handleConfigureButtonClick","getElementsByClassName","Click","removeSDKobject","disableNonActiveEnv","isConfigured","isUrlProcessed","inActiveEnvs","disableCheckoutButton","ChangeSdkParamEditMode","GetAllEnvironments","fetchSDKAvalibity","configEnvs","selectEnvCookie","tempEnvs","setterDeveloperMode","uiJsonEditCookie","jsonTextareaEdit","jsonValue","envValue","removeClass","removeAttribute","arrCounter","handleDragEnd","results","draggableId","destination","tempEnv","source","selectedRow","downloadSDKs","temp","participateName","sdkType","fileName","options","blob","size","URL","createObjectURL","Blob","setTimeout","arr","isEditJson","email","tempList","List","android","EnvName","IOS","Android","onclick","remove","right","role","Accordion","Card","Toggle","as","Header","eventKey","Collapse","Body","onDragEnd","Table","striped","droppableId","provided","ref","innerRef","droppableProps","draggableProps","dragHandleProps","faCheck","faPlusCircle","envname","cols","rows","param","envParam","suppressContentEditableWarning","getSelectedEnvironments","getSDKFunctionParams","emailValidatedEnv","isRecognizedEnv","initErrorCounter","initCaughtError","getSDKObject","errorResponses","isRecognizedCaughtError","isPhoneNoAdded","srciError","lookupResponse","validationErrorResponse","isConsumerPresent","caughtError","identityValidation","idetityValidation","otp","completeIdentityExecution","getSrcProfiles","profileDetails","srcProfileParams","srcProfileSDKMethodExecution","tempProfile","unBindAppInstance","unbindAppInstance","_isRecognizedEnv","_emailValidatedEnv","envLength","envNames","checkIsSDKScriptsLoaded","loadedSdks","isScriptConfigured","errorMsg","SdkMethodWrapper","responseStatus3","responseStatus7","checkedEnv","envChanged","hideEnv","NavBar","stystylele","IRA_PaymentCard","onInputChange","test","Number","alphaLetters","tempEmailImput","match","errorRegisterStatus","errorRegisterMessage","chosenEnv","setDCFState","getWindowRefParams","overflowY","checkoutCaughtError","transactionCredentialsAPI","decodedPayload","completeResponse","queryString","homePageRedirection","minLength","maxLength","IRA_CompleteIdentity","IRA_Profile","cancelTransaction","k","LoginNavBarComponent","IRA_Login","emailIdentity","doSignIn","challengeName","authenticationSuccess","float","marginBottom","fontSize","IRA_NewPassword","confirmPassword","IRA_AddCardPage","scenarioRefURL","scenarioRoute","IRA_ForgotPassword","onChangeOTP","onChangePassword","onChangeConfirmPassword","handleEmailSubmit","emailBox","mailformat","isCodeSent","ErrorNotify","notify","clicked","info","CustomToast","handleChangePassword","RegExp","updatePassword","SuccessNotify","reloadSignInPage","ErrorMessageList","hide","place","effect","data-tip","data-for","faInfoCircle","marginRight","disabled","SF_PaymentCardPage","changeCard","SF_CheckoutPage","SF_ProfilePage","isS4Execution","ScenarioCheckoutPage","responseStatusS3","responseStatusS4","responseStatusS7","ScenarioProfilesPage","Routes","exact","path","render","Loader","Spinner","App","ThankyouNavBarComponent","srcClienId","executeApiCalls","methodType","ok","generateOauthToken","environmentName","apiHeaders","accessToken","checkoutRequest","serverToServerAPI","ServerToServerAPICredentials","x_api_key","XapiKey","queryParams","ApiHostURL","payloadResponse","payloadCipherText","confirmationAPI","confirmationStatus","confirmationReason","checkoutEventType","checkoutEventStatus","confirmationDataParam","getUTCEpochCurrentTime","confirmationAPIParams","_transactionAmount","amount","now","utcMilllisecondsSinceEpoch","getTimezoneOffset","Math","round"],"mappings":"+xBAGaA,EAQG,4D,8CCAZC,EAAYC,EAAQ,KAClBC,EAASD,EAAQ,KAEjBE,E,WAEL,aAAe,IAAD,gCA4BdC,qBAAuB,WACO,MAAzB,EAAKC,mBACR,EAAKA,iBAAmBH,MA9BZ,KAoCdI,eAAiB,SAACC,EAAUC,GAI3B,GAFA,EAAKJ,uBAEW,MAAZG,GAAgC,IAAZA,EAAgB,CACvC,IAAIE,EAAkB,KACtBA,EAAkBT,EAAUO,GAC5BG,QAAQC,IAAIF,GAEZA,EAAgBG,SAAWJ,EAE3B,IAAIK,EAAqBJ,EAAgBI,mBAEzCC,IAAMC,SAASC,YAASP,EAAgBQ,cACxCH,IAAMC,SAASG,YAAMT,EAAgBU,WAGrC,EAAKC,6BAELC,IAAqBC,wBAAwBb,EAAgBc,UAEnC,MAAtBV,GAAoD,IAAtBA,EACjC,EAAKW,8BAA8BX,GAEnC,EAAKY,oBAGN,EAAKC,gBAAgBjB,QAErB,EAAKgB,oBAIN,IAAIE,EAAkBC,UAAQC,eAC1BC,EAAqBF,UAAQG,qBAQjC,OALsC,MAAlCjB,IAAMkB,WAAWC,QAAQf,OAAsD,MAArCJ,IAAMkB,WAAWC,QAAQjB,WACtEF,IAAMC,SAASC,YAASc,IACxBhB,IAAMC,SAASG,YAAMS,MAGf,GA9EM,KA8HdP,2BA9Hc,sBA8He,gCAAAc,EAAA,sEACLC,IAAcC,oBADT,OAGV,MAHU,SAIvBC,EAAqB,GAEL,OADhBC,EAAexB,IAAMkB,WAAWC,QAAQM,eAE3CD,EAAaE,SAAQ,SAACD,GACjBzB,IAAMkB,WAAWC,QAAQf,OAASqB,EAAYE,WAAWC,SAC5DL,EAAqBE,MAInBI,EAA4C,MAAhCN,EAAmBO,UAAqBP,EAAmBO,UAAY,GACvF9B,IAAMC,SAASR,YAASoC,MAdE,2CA7H5BE,KAAKC,eAAiB,E,kDAMvB,WACC,OAAOD,KAAKE,mB,IAJb,SAAqBC,GACpBH,KAAKE,kBAAoBC,I,uBAU1B,WACC,OAAOH,KAAKI,c,IALb,SAAgBC,GACfL,KAAKI,aAAeC,I,wBAWrB,WACC,OAAOL,KAAKM,e,IALb,SAAiBC,GAChB,OAAOP,KAAKM,cAAgBC,I,+BA8D7B,WACC,IAAIC,EAAaC,SAASC,eAAe,kBAAkBC,aAAa,UACxEX,KAAKrB,8BAA8B6B,K,2CAIpC,SAA8BI,GAK7B,GAFAZ,KAAKa,mBAAmB,UAEb,MAAPD,GAAsB,IAAPA,EAAW,CAC7B,IAAIE,EAASL,SAASM,cAAc,UAMpC,OALAD,EAAOE,IAAMJ,EACbE,EAAOG,GAAK,SAGZR,SAASS,KAAKC,YAAYL,IACnB,K,gCAIT,SAAmBM,GAClB,IAAIC,EAAiBZ,SAASC,eAAeU,GAGvB,MAAlBC,GAAgE,IAAtCA,EAAeV,aAAa,QACzDF,SAASS,KAAKI,YAAYD,K,mCAK5B,SAAsBT,EAAKQ,GAAU,IAAD,OAGnC,GAFApB,KAAKa,mBAAmBO,GAEb,MAAPR,GAAsB,IAAPA,EAKlB,OAJAW,IAAeC,WAAWJ,EAASR,GAAK,WACvC,EAAKX,iBACLpC,QAAQC,IAAI,qBAAuBsD,EAAU,WAAa,EAAKnB,oBAEzD,I,6BA0BT,SAAgBwB,GACS,MAApBzB,KAAK0B,cACR1B,KAAK0B,aAAc,EAEnB1B,KAAK2B,aAAeF,EAAuB/C,UAG5C,IAAIkD,GAAK,IAAIC,MACXC,cACAC,QAAQ,IAAK,KACbA,QAAQ,OAAQ,IAEdC,EAAW,CAAEC,MAAOR,EAAwBS,iBAAkBlC,KAAKxC,iBAAkB2E,UAAWP,GACpG/D,QAAQC,IAAIkE,GAEZI,IAAEC,KAAK,CACN1E,KAAM,OACNiD,IAAK1D,EACLoF,aAAa,EACbC,KAAMC,KAAKC,UAAUT,GACrBU,YAAa,mBACbC,QAAS,SAAUJ,GAClB1E,QAAQC,IAAI,cAEb8E,MAAO,SAAUA,GAChB/E,QAAQC,IAAI8E,U,KAMD,QAAItF,G,gCCnMnB,kCAGO,IAAMJ,EAAa,CACzB2F,OAAQ,mDACRC,OAAQ,mDACRC,OAAQ,mDACRC,QAAS,oDACTC,QAAS,oDACTC,SAAU,qDACVC,OAAQ,mDACRC,UAAW,wDACXC,gBAAiB,IACjBC,oBAAqB,sDACrBC,wBAAyB,yDACzBC,kBAAmB,oHACnBC,kBAAmB,gEAEnBC,aAAc,uEACdC,cAAe,4DACfC,kBAAmB,wDACnBC,YAAa,0DACbC,SAAU,yD,iJCTLtF,E,4DAULC,wBAA0B,SAACsF,GAC1B,GAAIA,EAAc,CACjB,IAAIxB,EAAOC,KAAKC,UAAUsB,GAE1B3B,IAAEC,KAAK,CACN1E,KAAM,OACNiD,IAAK1D,IAAWqG,wBAChBjB,aAAa,EACbC,KAAMA,EACNG,YAAa,mBACbC,QAAS,SAAUJ,GAGE,IAAhBwB,GAAuBA,EAAaC,SAAS,SAChD/F,IAAMC,SAAS+F,YAAWzB,KAAK0B,MAAM3B,KAGjBtE,IAAMkB,WAAWC,QAAQ6E,YAE/CrB,MAAO,SAAUA,GAChB/E,QAAQC,IAAI8E,Q,KAOhBuB,6B,sBAA+B,4BAAA9E,EAAA,yDAGZ,OAFd4E,EAAahG,IAAMkB,WAAWC,QAAQ6E,aAEF,IAAdA,EAHI,yCAItBA,EAAWG,eAJW,gCAMvB,IANuB,2C,KAS/BC,2B,sBAA6B,4BAAAhF,EAAA,yDAGV,OAFd4E,EAAahG,IAAMkB,WAAWC,QAAQ6E,aAEF,IAAdA,EAHE,yCAIpBA,EAAWK,uBAJS,gCAMrB,IANqB,2C,KAmE7BC,uB,uCAAyB,WAAOC,GAAP,+CAAAnF,EAAA,yDAAgB+B,EAAhB,+BAA0B,GAC9CqD,EAAiBxG,IAAMkB,WAAWC,QAAQ6E,WAG1CS,EAAczG,IAAMkB,WAAWC,QAAQsF,YACvCC,KAAYD,IAAeA,EAAYE,aAAcF,EAAYE,WAEjEC,EAAY,IAGZF,IAAY,EAAKG,cAVG,wBAWvBjH,QAAQC,IAAI,8BAXW,SAYL,EAAKiH,4BAA4BP,EAASpD,GAZrC,OAYvByD,EAZuB,OAavBhH,QAAQC,IAAI+G,GAbW,WAgBW,MAA/BvH,IAAWE,kBACdF,IAAWC,uBAGRyH,EAAW,GAAIC,EAAQ,GAGZ,MAAX7D,GAA8B,IAAXA,EAvBC,kCAwBI9B,IAAc4F,UAAU,cAxB5B,QAwBnBC,EAxBmB,OAyBnBC,EAAcD,EAAeE,WAAU,SAAAC,GAAC,OAAIA,EAAElE,SAAWA,EAAQW,QAAQ,IAAK,QAC9ErC,EAAcyF,EAAeC,GACjCJ,EAAWtF,EAAYsF,SACvBC,EAAQvF,EAAYuF,MA5BG,QA+BpBN,GAAY,EAAKG,gBACpBG,EAASJ,EAAUU,SAAYV,EAAUU,SAAWN,EACpDD,EAAYH,EAAUW,eACrBX,EAAUW,eAAiBR,GAIb,IAAZA,GAA2B,IAATC,IACrBA,EAAQhH,IAAMkB,WAAWC,QAAQf,MACjC2G,EAAW/G,IAAMkB,WAAWC,QAAQjB,UAxCb,KA6ChBqG,EA7CgB,OA8ClB,SA9CkB,QAsDlB,eAtDkB,QA2DlB,mBA3DkB,QA+DlB,+BA/DkB,QAmElB,+BAnEkB,QAuElB,kBAvEkB,QA2ElB,aA3EkB,gCA+CtBK,EAAUY,kBAAoBnI,IAAWE,iBAIzCqH,EAAUU,SAAWN,EACrBJ,EAAUW,eAAiBR,EApDL,oCAwDtBH,EAAaa,wBAAcb,GACxBc,iBAA8BC,OADOf,EAxDlB,oCA4DtBA,EAAaa,wBAAcb,GACxBc,iBAA8BC,OADOf,EA5DlB,oCAgEtBA,EAAaa,wBAAcb,GACxBc,mBAAgCC,OADKf,EAhElB,oCAoEtBA,EAAaa,wBAAcb,GACxBc,mBAAgCC,OADKf,EApElB,oCAwEtBA,EAAaa,wBAAcb,GACxBc,gBAA6BC,OADQf,EAxElB,oCA4EtBA,EAAaa,wBAAcb,GACxBc,WAAwBC,OADaf,EA5ElB,6BAgFtBA,GAAY,EAhFU,WAoFnB,EAAKC,eAAmC,MAAlBL,KAA0BA,EAAeL,cAAcyB,OAAS,GApFnE,wBAsFnBC,EAAerB,EAAeL,cAtFX,UAwFL,EAAK2B,iCAAiClB,EAAWJ,EAAgBD,GAxF5D,QA2FN,OAHjBK,EAxFuB,SA6FtBiB,EAAaE,QAAO,SAACC,EAAQC,GAC5B,GAAIA,EAAKC,iBAAmB3B,EAAS,CAEpC,IAAI4B,GADJH,EAASC,GACiBG,UAAUC,MAAM,KAAK,GAwD/C,OArDc,MAAVL,GAAmC,MAAjBA,EAAOM,QAAkBN,EAAOM,OAAOV,OAAS,GACrEI,EAAOM,OAAO5G,SAAQ,SAAC6G,GACtB,IAAIC,EAAiBD,EAAQE,cAAcJ,MAAM,KAEjD,GAAIG,EAAeZ,OAAS,EAAG,CAC9B,IAAIc,EAAc,GAOlB,GALAF,EAAe9G,SAAQ,SAAUuG,EAAMU,GACtCD,EAA0B,GAAXC,EAAgBV,EAAOS,EAAc,IAAMT,KAI5B,MAA3BrB,EAAUuB,IAAiE,MAAxCvB,EAAUuB,GAAcO,IAA4C,uBAApBH,EAAQK,SAE9F,GAAoB,gBAAhBL,EAAQM,KAAwB,CACnC,IAAIC,EAAe,GACnB,IAECA,GADIC,EAAUR,EAAQS,YAAYlF,QAAQ,IAAK,IAAIlC,OAAOyG,MAAM,MACzCY,KAAI,SAAUC,GAAK,OAAOA,EAAEtH,UAClD,MAAOsH,GACRJ,EAAeP,EAAQS,YAAYlF,QAAQ,IAAK,IAAIlC,OAAOyG,MAAM,KAElEzB,EAAUuB,GAAcO,GAAuC,IAAvBH,EAAQS,YAAqBF,EAAe,QAC9E,GAAoB,UAAhBP,EAAQM,KAClBjC,EAAUuB,GAAcO,GAAeH,EAAQS,YAAYpH,YACrD,GAAoB,WAAhB2G,EAAQM,KAES,QAAvBN,EAAQS,aAAgD,SAAvBT,EAAQS,YAC5CpC,EAAUuB,GAAcO,GAAeS,QAAQZ,EAAQS,aAEvDpC,EAAUuB,GAAcO,GAAeH,EAAQS,YAAYpH,YAGxD,GAAoB,QAAhB2G,EAAQM,KAChBjC,EAAUuB,GAAcO,GAAuC,IAAvBH,EAAQS,YAC/CzE,KAAK0B,MAAMsC,EAAQS,aAAe,QAC7B,GAAoB,cAAhBT,EAAQM,KAAsB,CACxC,IAAIE,EAAU,GAEI,KADuB,IAAvBR,EAAQS,YAAqBzE,KAAK0B,MAAMsC,EAAQS,aAAe,KAEhFD,EAAQK,KAAK7E,KAAK0B,MAAMsC,EAAQS,cAEjCpC,EAAUuB,GAAcO,GAAeK,OAGvCnC,EAAUuB,GAAcO,GAAeH,EAAQS,YAAYpH,YAErC,MAAbgF,GAAqC,MAAhBuB,GAA+C,MAAvBI,EAAQS,aAA2C,uBAApBT,EAAQK,WAC9FhC,EAAUuB,GAAgBI,EAAQS,YAAYpH,YAK3CoG,KAEN,MA1JmB,cAiKR,QAAXzB,GAAgC,YAAXA,GAA6D,MAAnCK,EAAUyC,uBAA2D,MAA1BhK,IAAWoE,cACzGmD,EAAUyC,sBAAwB3B,wBAAqCC,QAlKhD,kBAqKjBf,GArKiB,4C,2DA0KzB0C,2B,uCAA6B,WAAOtG,EAAIgB,EAAOuF,EAAWC,GAA7B,iBAAApI,EAAA,6DACxB4E,EAAahG,IAAMkB,WAAWC,QAAQ6E,WADd,SAID3E,IAAc4F,UAAU,cAJvB,OAIxBC,EAJwB,OAOV,MAAdlB,GAAoC,IAAdA,GAAgD,MAA5BA,EAAWG,eAAkC,MAATnC,GAEpC,MAAzCgC,EAAWG,cAAcqD,IAAwBxD,EAAWG,cAAcqD,GAAapB,WAAamB,GAC/EvD,EAAWG,cAAcqD,GAG/BlB,OAAOP,OAAzB,uCAAgC,WAAOC,EAAQC,GAAf,eAAA7G,EAAA,yDAGV,uBAAjB6G,EAAKW,WACJa,EAASzG,EAEbA,EAAKA,EAAG+C,SAAS,kBAChB/C,EAAG0G,MAAM,EAAG,IAAM1G,EAAG0G,MAAM,EAAG,GAE/BD,EAASA,EAAO1D,SAAS,kBACxB0D,EAAOC,MAAM,IAAMD,EAAOC,MAAM,IAG9BzB,EAAKQ,gBAAkBzF,EAbI,oBAc9BgF,EAASC,EAIY,uBAAjBA,EAAKW,UAAqD,MAAhB5E,EAAMpC,QACnC,IAAhBoC,EAAMpC,OAnBuB,wBAqB7BsF,EAAe+B,KAAI,SAAU5B,GAC5B,GAAIA,EAAElE,SAAWsG,EAGhB,OAFAzG,EAAG+C,SAAS,kBAAoBsB,EAAEN,SAAW/C,EAAMpC,OAChDyF,EAAEL,MAAQhD,EAAMpC,OACZsF,KAzBoB,SA4BvB7F,IAAcsI,aAAa,aAAczC,GAAgB,GA5BlC,OA8B7Bc,EAAOgB,YAAchF,EAAMpC,OA9BE,wBA+BF,uBAAjBqG,EAAKW,WACfZ,EAAOgB,YAAchF,EAAMpC,QAhCE,cAmCJ,qBAAtBqG,EAAKQ,gBACRmB,IAA4BC,kBAAoBtF,KAAK0B,MAAMjC,IAE5DpE,QAAQC,IAAImI,GAtCkB,kBAuCvBA,GAvCuB,4CAAhC,wDAyCG,MAtDuB,2C,iEA4D7BF,iCAAmC,SAAClB,EAAWJ,EAAgBD,GAgB9D,OAfiC,MAA7BC,EAAesD,YAAsBtD,EAAesD,WAAWlC,OAAS,GAE3EpB,EAAesD,WAAW/B,QAAO,SAACC,EAAQC,GACrCA,EAAK8B,SAAWxD,GAEL,OADdyB,EAASC,IAC8B,MAAjBD,EAAOgC,QAAkBhC,EAAOgC,OAAOpC,OAAS,GACrEI,EAAOgC,OAAOtI,SAAQ,SAAC6G,GACS,MAA3Bb,EAAea,KAClB3B,EAAU2B,GAAWb,EAAea,GAASZ,aAK/C,MAEGf,G,KAIRE,4B,uCAA8B,WAAOmD,EAAe9G,GAAtB,uBAAA/B,EAAA,yDACzByG,EAAe7H,IAAMkB,WAAWC,QAAQ6E,WACxCkE,EAAiBrC,EAAaxB,sBAE9B8D,EAAa,GACK,MAAlBD,EALyB,qBAQN,IAFlBE,EAAgBF,EAAe9C,WAAW,SAAAC,GAAC,OAAIA,EAAEe,WAAa6B,IAAgB,IANtD,wBASvBI,EAAaH,EAAeE,GAAeC,WATpB,SAWrBA,EAAWpB,KAAI,SAAUqB,EAAWC,GACzC,IAAMC,EAAMjG,KAAK0B,MAAMqE,GAEnBE,EAAIrH,SAAWA,EAAQW,QAAQ,IAAK,OACvCqG,EAAaK,MAfY,OAoBvBL,EAAWhH,gBACNgH,EAAWhH,QArBO,iCAyBtBgH,GAzBsB,4C,6DA4B9BM,2B,uCAA6B,WAAOR,EAAeS,EAAkBC,GAAxC,mBAAAvJ,EAAA,6DACxByG,EAAe7H,IAAMkB,WAAWC,QAAQ6E,WAGtB,OAFlBkE,EAAiBrC,EAAaxB,yBAKX,IAFlB+D,EAAgBF,EAAe9C,WAAW,SAAAC,GAAC,OAAIA,EAAEe,WAAa6B,IAAgB,MAGjFC,EAAeE,GAAeC,WAAWM,GAAgBpG,KAAKC,UAAUkG,IAR9C,kBAWrBA,GAXqB,2C,yGAlY7B,WACC,OAAO3I,KAAK6I,gB,IALb,SAAkBC,GACjB9I,KAAK6I,eAAiBC,I,gCAqDvB,WAAkC,IAAf1H,EAAc,uDAAJ,GACxB2H,EAAO9K,IAAMkB,WAAWC,QAAQsF,YAChCT,EAAahG,IAAMkB,WAAWC,QAAQ6E,WAEtC+E,EAAgB,UAEpB,GAAID,GAAQA,EAAKnE,YACC,MAAdX,GACoC,MAApCA,EAAWK,uBACXL,EAAWK,sBAAsBuB,OAAS,GAAK7F,KAAK8E,cAAe,CACtE,IAAIqD,EAAiBlE,EAAWK,sBAC5B+D,EAAgBF,EAAe9C,WAAW,SAAAC,GAAC,MAAmB,YAAfA,EAAEe,YAA0B,GAE3E4C,EAAiB,GACrB,IAAsB,GAAlBZ,EAAqB,CACxB,IAAIC,EAAaH,EAAeE,GAAeC,WAE/CA,EAAWpB,KAAI,SAAUgC,EAASV,IACjCU,EAAU1G,KAAK0B,MAAMgF,IACT9H,SAAWA,EAAQW,QAAQ,IAAK,OAC3CkH,EAAiBC,MAapB,OANCF,EAD+B,IAA5BC,EAAeE,UACF,QAECF,EAAeE,UAAaF,EAAeE,UAAUtJ,OAAOuJ,cAC1E,gBAwBL,OAjBkB,MAAdnF,GAAoC,IAAdA,GAAgD,MAA5BA,EAAWG,eAAyBH,EAAWG,cAAcyB,OAAS,GACnH5B,EAAWG,cAAc4B,QAAO,SAACC,EAAQC,GACZ,YAAxBA,EAAKC,iBAEM,OADdF,EAASC,IAC8B,MAAjBD,EAAOM,QAAkBN,EAAOM,OAAOV,OAAS,GACrEI,EAAOM,OAAO5G,SAAQ,SAAC0J,GACK,aAAvBA,EAAM3C,eAEgB,MAArB2C,EAAMpC,aAA4C,IAArBoC,EAAMpC,cACtC+B,EAAgBK,EAAMpC,YAAYpH,OAAOuJ,qBAQzCJ,M,KAySM,QAAIxK,G,6GCjaN8K,EAAb,4JACE,WACE,OACE,uBAAKC,UAAU,UACb,uBAAKA,UAAU,kBACb,uBAAKA,UAAU,OACb,uBAAKA,UAAU,iDACf,qBAAGC,KAAK,iHAAiHC,OAAO,UAAhI,iCADA,IAEA,qBAAGD,KAAK,6DAA6DC,OAAO,UAA5E,kCAKJ,uBAAKF,UAAU,kDACb,4CAAmB,qBAAGC,KAAK,+CAA+CC,OAAO,UAA9D,qBAAnB,+BAdV,GAA2CC,c,8KCYvCC,EAAWvM,EAAQ,KAGjBkC,E,4DAELC,kB,sBAAoB,kCAAAF,EAAA,+EAGLuK,IAAKC,2BAHA,OAGlBd,EAHkB,uDAKlBA,EAAO,GACPlL,QAAQC,IAAI,eACZiL,EAAKe,SAAWC,EAAoBC,mBAPlB,yBAUIC,MAAM/M,IAAWuG,kBAAmB,CAC1DyG,OAAQ,OACRC,QAAS,CAAE,eAAgB,oBAC3BC,KAAM5H,KAAKC,UAAUsG,EAAKe,YAbR,eAUbO,EAVa,iBAgBSA,EAASC,OAhBlB,eAgBbC,EAhBa,OAiBfhI,EAAO,EAAKiI,sBAAsBD,GAEtChI,EAAOC,KAAK0B,MAAM3B,GAElBtE,IAAMC,SAASwG,YAAY,CAAE,WAAkC,SAAnBnC,EAAKqC,cArB9B,kBAwBZ3G,IAAMC,SAASwB,YAAY8C,KAAK0B,MAAM3B,EAAKkI,SAxB/B,yD,KA6BpBC,sC,sBAAwC,sBAAArL,EAAA,6DACvCpB,IAAMC,SAAS+F,YAAW0G,IADa,SAE1B,EAAKC,wBAFqB,mF,KAMxCC,kC,uCAAoC,WAAOC,GAAP,eAAAzL,EAAA,sEACR,EAAK6F,UAAU,cADP,cAC/BC,EAD+B,OAGV,MAArB2F,GACHA,EAAkB9E,QAAO,SAACwC,EAAKjG,GAC9B,GAAY,MAARA,EAAc,CACjB,IAAIwI,EAAgB,GACpBxI,EAAKgE,OAAOP,QAAO,SAACC,EAAQC,GAI3B,GAAqB,uBAAjBA,EAAKW,SAYR,OAXAZ,EAASC,EAETf,EAAe+B,KAAI,SAAU5B,GAC5B,IAAI0F,EAA+B,kBAAtB9E,EAAKQ,cACfpB,EAAEN,SAAWM,EAAEL,MAEdW,EAAS,CAAExE,QAASkE,EAAElE,QAAS4J,MAAOA,GAC1CD,EAAc1D,KAAKzB,MAGpBM,EAAK+E,WAAaF,EACX9E,IAGN,SAGF,MA7B+B,kBAiC5B6E,GAjC4B,2C,2DAqCpCI,mC,uCAAqC,WAAOC,GAAP,eAAA9L,EAAA,sEACT,EAAK6F,UAAU,cADN,cAChCC,EADgC,OAGpCgG,EAAWjE,KAAI,SAAC3E,EAAMiG,GACrB,IAAIF,EAAa,GACjBnD,EAAe+B,KAAI,SAAU5B,GAC5B,IAAIrB,EAAa1B,EAAK0F,OACtBhE,EAAazB,KAAK0B,MAAMD,GAEF,QAAlB1B,EAAK8D,YACRpC,EAAWuB,eAAiBF,EAAEN,SAC9Bf,EAAWsB,SAAWD,EAAEL,OAEzBhB,EAAW7C,QAAUkE,EAAElE,QACvBkH,EAAWjB,KAAK7E,KAAKC,UAAUwB,OAEhC1B,EAAK+F,WAAaA,KAhBiB,kBAkB7B6C,GAlB6B,2C,2DAsBrCP,sB,sBAAwB,gCAAAvL,EAAA,sEACNuK,IAAKC,2BADC,cACnBd,EADmB,OAEnBqC,EAAuB,GAEf,MAARrC,GAAmC,MAAnBA,EAAKsC,aACpBC,EAAiBvC,EAAKsC,WAAW,sBACrCD,EAA0C,MAAlBE,EAA0BA,EAAehF,MAAM,KAAO,IANxD,kBAQhB8E,GARgB,2C,KAYxBG,wB,uCAA0B,WAAOnK,GAAP,2CAAA/B,EAAA,yDAAgBmM,EAAhB,gCACrB/L,EAAexB,IAAMkB,WAAWC,QAAQM,YACxCF,EAAqB,GAErBiM,EAAa,GACbC,GAAkB,EAEF,MAAhBjM,GACHA,EAAaE,SAAQ,SAACD,GACrB,GAAI0B,EAAQvB,QAAUH,EAAYiM,gBAAgB9L,OAAQ,CAGzD,GAFAL,EAAqBE,EAEjBzB,IAAMkB,WAAWC,QAAQwM,uBAC5BH,EAAaxN,IAAMkB,WAAWC,QAAQwM,qBACtCF,EAAkBD,EAAWI,MAAK,SAAAC,GAAG,OAAIA,EAAIH,iBAAmBjM,EAAYiM,gBAAgB9L,WAI3F,YADA6L,GAAkB,GAKpBD,EAAWpE,KAAK3H,GAChBzB,IAAMC,SAAS0N,YAAqBH,QAKb,IAAtBjM,EA5BqB,0CA6BjB,GA7BiB,cAgCrBuM,EAAuC,MAA7BvM,EAAmBwM,OAAkBxM,EAAmBwM,OAAS,GAhCtD,UAiCD1O,IAAW2O,sBAAsBF,EAAQ3K,GAjCxC,WAiCrB8K,EAjCqB,QAoCrBV,GAAiBE,EApCI,wBAqCpB1G,EAA+C,MAApCxF,EAAmB2M,cAAwB3M,EAAmB2M,cAAgB,GACzFlH,EAAyC,MAAjCzF,EAAmBI,WAAqBJ,EAAmBI,WAAa,GAtC5D,UAwClB,EAAKwM,uBAAuBhL,EAAS4D,EAAUC,GAxC7B,mCAyChBiH,GAzCgB,kCA2ClB,GA3CkB,4C,2DAgD1BE,uB,uCAAyB,WAAOhL,EAASiL,EAAa9G,GAA7B,mBAAAlG,EAAA,6DACpBiN,EAAY,CACflL,QAASA,EAAQvB,OAAOkC,QAAQ,IAAK,KACrCiD,SAAUqH,EACVpH,MAAOM,GAGJgH,EAAgB,GAPI,SASG,EAAKC,8BAA8BpL,GAAS,GAT/C,aAWF,KAFlB+D,EAToB,UAYvBoH,EAAgBpH,GAEjBoH,EAAclF,KAAKiF,GAdK,SAiBlB,EAAK1E,aAAa,aAAc2E,GAAe,GAjB7B,2C,+DAoBzBC,8B,uCAAgC,WAAOpL,GAAP,6BAAA/B,EAAA,6DAAgBoN,IAAhB,0CACJ,EAAKvH,UAAU,cADX,UAGT,KAFlBC,EAD2B,4BAI9B/D,EAAUA,EAAQvB,OAAOkC,QAAQ,IAAK,MAGlCoD,EAAe0G,MAAK,SAAAC,GAAG,OAAIA,EAAI1K,SAAWA,KAPhB,oBAQ7B+D,EAAeuH,OAAOvH,EAAeE,WAAU,SAAAyG,GAAG,OAAIA,EAAI1K,SACtDA,KAAU,IAEVqL,EAXyB,kCAatB,EAAK7E,aAAa,aAAczC,GAAgB,GAb1B,iCAiBxBA,GAjBwB,4C,2DAuBhCyC,a,uCAAe,WAAO+E,EAAYC,GAAnB,6BAAAvN,EAAA,6DAAgCwN,EAAhC,gCACdF,EAA4B,IAAdA,EAAoB,sBAAwBA,EAE1DC,EAAeC,EAAcrK,KAAKC,UAAUmK,GAAeA,EAH7C,SAIS,EAAKE,cAAcF,GAJ5B,OAIVG,EAJU,OAMdtM,SAASuM,OAASL,EAAa,IAAMM,OAAOF,GAAc,IAN5C,2C,6DAWfG,a,sBAAe,8BAAA7N,EAAA,sDACM,sBACK,cAErB8N,EAAO,IAAItL,MACVuL,QAAQD,EAAKE,WACdC,EAAU,WAAaH,EAAKI,cAEhC9M,SAASuM,OAASQ,wBAA4BF,EAAU,IACxD7M,SAASuM,OAASS,eAAiCH,EAAU,IAT/C,2C,KAafpI,U,uCAAY,WAAOwI,GAAP,yCAAArO,EAAA,sDAAasO,IAAb,iCACPC,EAAOF,EAAO,IACdG,EAAgBC,mBAAmBrN,SAASuM,QAC5Ce,EAAKF,EAAcvH,MAAM,KACpB0H,EAAI,EAJF,YAIKA,EAAID,EAAGlI,QAJZ,iBAMV,IADIoI,EAAIF,EAAGC,GACW,KAAfC,EAAEC,OAAO,IACfD,EAAIA,EAAEE,UAAU,GAPP,GASa,GAAnBF,EAAEG,QAAQR,GATJ,oBAYc,OAFnBS,EAAkBJ,EAAEE,UAAUP,EAAK/H,OAAQoI,EAAEpI,SAVxC,kCAaoB,EAAKyI,cAAcD,GAbvC,WAee,OAFnBE,EAbI,SAe0C,IAAnBA,EAfvB,0CAgBCZ,EAAanL,KAAK0B,MAAMqK,GAAmBA,GAhB5C,QAIoBP,IAJpB,gDAqBJ,IArBI,4C,2DAwBZlB,c,uCAAgB,WAAOF,GAAP,eAAAvN,EAAA,6DACXmP,EAAsB7E,EAAS8E,IAAIC,QAAQ9B,EAAa7C,EAAoB4E,gBAAgBC,WADjF,kBAERJ,GAFQ,2C,2DAKhBF,c,uCAAgB,WAAOO,GAAP,iBAAAxP,EAAA,6DACXyP,EAAgB,GAEC,MAAjBD,IACCE,EAAQpF,EAAS8E,IAAIO,QAAQH,EAAe9E,EAAoB4E,gBACpEG,EAAgBC,EAAMH,SAASjF,EAASsF,IAAIC,OAL9B,kBAQRJ,GARQ,2C,2DAahBK,4B,uCAA8B,WAAOC,EAAYC,EAAa7K,GAAhC,yCAAAnF,EAAA,6DAAyCiQ,EAAzC,+BAAmD,cAAelO,EAAlE,+BAA4E,GACrGQ,GAAK,IAAIC,MACXC,cACAC,QAAQ,IAAK,KACbA,QAAQ,OAAQ,IAGdwN,EAAU,CAAEnF,KAAM5H,KAAKC,UAAU2M,GAAaI,KAAM5N,GACpDyI,EAAW,CAAED,KAAM5H,KAAKC,UAAU4M,GAAcG,KAAM5N,GAEtD6N,EAAiB,CACpBF,QAASA,EACTlF,SAAUA,EACViF,QAASA,EACTI,IAAKlL,EACLgL,KAAM5N,EACNX,GAAI3D,IAAWE,iBACfkC,YAAa0B,GAKI,OAFduO,EAAa1R,IAAMkB,WAAWC,QAAQwQ,yBAGzCD,EAAWtI,KAAKoI,GAChBxR,IAAMC,SAAS0R,YAAuBD,OAElCE,EAAW,IACNxI,KAAKoI,GACdxR,IAAMC,SAAS0R,YAAuBC,KA5BV,UA+BvBC,IAAUC,8BA/Ba,4C,+DAmC9BC,wB,sBAA0B,sBAAA3Q,EAAA,sDACzByQ,IAAUG,qBADe,2C,KAM1BC,U,uCAAY,WAAOC,EAAcC,GAArB,uBAAA/Q,EAAA,sEACMuK,IAAKC,2BADX,UAGU,OAFjBd,EADO,QAGFe,SAHE,yCAIH,MAJG,cAOS,MAAhBqG,GAAwC,IAAhBA,IAC3BA,EAA8C,oCAA9BA,EAAa/G,cAC1B,mCAAqC+G,EAAa/G,eAGlDiH,EAA2D,IAAvCC,eAAeC,QAAQ,aAC9CD,eAAeC,QAAQ,aAAe,EAAKC,2BAExCC,EAAYJ,EACZK,EAAU,EAAKF,2BAEfG,EACJ,CACCC,QAAS,MACTC,cAAeJ,EACfK,YAAaJ,EACbK,QAAS,mBACTC,aAAcb,EACdc,KAAMb,EAAKxB,WACXsC,WAAYnI,EAAKe,UA1BP,kBA8BJ1H,IAAEC,KAAK,CACb1E,KAAM,OACNiD,IAAK1D,IAAWwG,aAChBpB,aAAa,EACbC,KAAMC,KAAKC,UAAUkO,GACrBjO,YAAa,mBACbC,QAAS,SAAUJ,GAClB,OAAOC,KAAKC,UAAUF,IAEvBK,MAAO,SAAUA,GAEhB,OADA/E,QAAQC,IAAI8E,GACL,OAzCE,4C,6DA+CZ4N,yBAA2B,WAC1B,IAAIW,EAAQ,IAAItP,KACZuP,EAAQC,OAAOF,EAAMG,cAAgB,GAErB,GAAhBF,EAAMvL,SACTuL,EAAQ,IAAMA,GAGI,IADfjE,EAAOkE,OAAOF,EAAMI,eACf1L,SACRsH,EAAO,IAAMA,GAGd,IAAIqE,EAAQH,OAAOF,EAAMM,eACL,GAAhBD,EAAM3L,SACT2L,EAAQ,IAAMA,GAGf,IAAIE,EAAUL,OAAOF,EAAMQ,iBACL,GAAlBD,EAAQ7L,SACX6L,EAAU,IAAMA,GAGjB,IAIIvE,EAJAyE,EAAUP,OAAOF,EAAMU,iBAK3B,OAJsB,GAAlBD,EAAQ/L,SACX+L,EAAU,IAAMA,GAEbzE,EAAOgE,EAAMW,iBAAmB,IAAMV,EAAQ,IAAMjE,EAAO,IAAMqE,EAAQ,IAAME,EAAU,IAAME,G,KAKpGG,iBAAmB,SAACC,GAC6B,MAA5CvR,SAASC,eAAe,iBAC3BD,SAASC,eAAe,iBAAiBuR,QAEzCC,OAAOC,SAAS3I,KAAO0I,OAAOC,SAASC,OAAS,0B,KAIlDC,wB,uCAA0B,WAAOjR,GAAP,iBAAA/B,EAAA,6DAIG,OAHxBuM,EAAuB3N,IAAMkB,WAAWC,QAAQwM,uBAGL,MAAXxK,GACnCwK,EAAqB1E,KAAI,SAAUC,GAClC,GAAIA,EAAEwE,iBAAmBvK,EAAQvB,OAEhC,OADAH,EAAcyH,EACPA,KARe,kBAalBzH,GAbkB,2C,+GAkB1B,SAAsBqN,GACrB,IACC,IAAIuF,EAAK3I,EAASsF,IAAIsD,IAAIrO,MAAM6F,EAAoByI,UAChDC,EAAO9I,EAASsF,IAAIC,KAAKhL,MAAM6F,EAAoB2I,uBACnDC,EAAOhJ,EAASsF,IAAIC,KAAKhL,MAAM6F,EAAoB6I,YAEnDC,EAA2BlJ,EAASmJ,OAAOL,EAAK7D,SAASjF,EAASsF,IAAIC,MACzEyD,EAAM,CAAEI,QAAS,EAAGC,WAAY,MAE7BC,EAAetJ,EAASuJ,IAAIC,aAAaC,OAAO,CACnDC,WAAY1J,EAASsF,IAAIqE,OAAOpP,MAAM6I,KAOvC,OAHgBpD,EAAS8E,IAAIO,QAAQiE,EAAcJ,EAClD,CAAEU,KAAM5J,EAAS4J,KAAKC,IAAKlB,GAAIA,EAAImB,QAAS9J,EAAS+J,IAAIC,QAEzC/E,SAASjF,EAASsF,IAAIC,MAGxC,MAAO0E,GAEN,OADA/V,QAAQ+E,MAAMgR,GACP,Q,KAMK,QAAItU,G,qQCvbNuU,EAAb,kDACE,WAAYC,GAAQ,IAAD,8BACjB,cAAMA,IAURC,uBAXmB,sBAWM,sBAAA1U,EAAA,sDACvB+C,IAAE,wCAAwC6P,QADnB,2CATvB,EAAK+B,MAAQ,CACXhC,aAAa,EACbiC,eAAgB,GAChBC,gBAAiB,GACjBC,gBAAgB,GAElBC,EAAOC,QAAU,GARA,EADrB,qDAgBE,WAAqB,IAAD,OAClBzK,IAAKC,2BACFyK,MAAK,SAAAvL,GAAI,OAAI,EAAKwL,SAAS,CAAEJ,gBAAgB,OAC7CK,OAAM,SAAAZ,GAAG,OAAI,EAAKW,SAAS,CAAEJ,gBAAgB,OAEhD,IACE,IAAIM,EAAaxW,IAAMkB,WAAWC,QAAQsV,SACtCR,EAAkB,GAClBD,EAAiB,GAGH,MAAdQ,IAGgC,OADlCA,EAAajS,KAAK0B,MAAMuQ,IACTP,kBACbA,EAAkBO,EAAWP,gBAAgBtG,KAAM,IAChD6G,EAAWP,gBAAgBS,MAAQ,IAAMF,EAAWP,gBAAgBU,MAAQ,IAAMH,EAAWP,gBAAgBW,KAAO,IACrHJ,EAAWP,gBAAgBF,MAAQ,IACnCS,EAAWP,gBAAgBY,YAAa,IAAML,EAAWP,gBAAgBa,KAG5C,MAA7BN,EAAWR,iBACbpW,QAAQC,IAAI2W,EAAWR,gBAEvBA,EAAiBQ,EAAWR,eAAerG,KAAM,IAC/C6G,EAAWR,eAAeU,MAAQ,IAAMF,EAAWR,eAAeW,MAAQ,IAAMH,EAAWR,eAAeY,KAAO,IACjHJ,EAAWR,eAAeD,MAAQ,IAChCS,EAAWR,eAAea,YAAa,IAAML,EAAWR,eAAec,KAG7E/U,KAAKuU,SAAS,CACZN,eAAgBA,EAAelS,QAAQ,YAAc,IACrDmS,gBAAiBA,EAAgBnS,QAAQ,YAAc,OAI3D,MAAOa,OApDb,oBAwDE,WACE,OACE,yBAAK3B,GAAG,mBACN,kBAAC,IAAD,MACEjB,KAAKgU,MAAMG,eAA0D,KAAzC,kBAAC,IAAD,CAAUa,GAAG,yBAG3C,kBAAC,IAAD,CAAWC,OAAK,GACd,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAKC,GAAI,EAAG3L,UAAU,sBACpB,yBAAKA,UAAU,8DACb,kBAAC,IAAD,MACA,wBAAIA,UAAU,sDAAd,oBACA,wBAAIA,UAAU,+CAAd,4BACA,wBAAIA,UAAU,gBACd,yBAAKA,UAAU,YACb,yBAAKA,UAAU,oEACb,wBAAIA,UAAU,gCAAd,UACA,yBAAKA,UAAU,YACb,yBAAKA,UAAU,SACb,yBAAKvI,IAAK9D,IAAWmG,gBAAkB,gBAAiB8R,MAAM,MAAM5L,UAAU,6BAEhF,yBAAKA,UAAU,SACb,uBAAGA,UAAU,gCAAb,+BAEA,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,QADF,IAC8C,0BAAMA,UAAU,kBAAhB,MAC9C,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,YADF,IACkD,0BAAMA,UAAU,uBAKxE,yBAAKA,UAAU,yEACb,yBAAKA,UAAU,OACb,uBAAGA,UAAU,yDAAwD,6CACrE,yBAAKA,UAAU,yEAAyEvJ,KAAKgU,MAAME,mBAIvG,yBAAK3K,UAAU,yEACb,yBAAKA,UAAU,OACb,uBAAGA,UAAU,uDAAsD,iDACnE,yBAAKA,UAAU,yEACZvJ,KAAKgU,MAAMC,kBAKlB,yBAAK1K,UAAU,yEACb,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,sBAAf,YACA,yBAAKA,UAAU,aAAf,WAGF,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,qBAAf,wBAAwD,6BAAxD,YACA,yBAAKA,UAAU,aAAf,SAGF,yBAAKA,UAAU,qDACb,yBAAKA,UAAU,qBAAf,SACA,yBAAKA,UAAU,aAAf,aAKN,yBAAKA,UAAU,6CACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCACb,uBAAGC,KAAK,yBAAyBD,UAAU,WACzC,4BAAQ5L,KAAK,SAASsD,GAAG,aAAasI,UAAU,0CAAhD,WAOV,yBAAKA,UAAU,gCACb,kBAAC,IAAD,QASJ,kBAAC,IAAD,CAAK2L,GAAI,EAAG3L,UAAU,aACpB,kBAAC,IAAD,cAjJd,GAAkC6L,e,uICT3B,SAAeC,EAAtB,sC,4CAAO,WAAwBpU,EAAIqU,EAASC,GAArC,iBAAAlW,EAAA,sDACFkW,KACCC,EAAU,IACNxN,QAAUsN,EAClBE,EAAQC,MAAQxU,EAChBuU,EAAQE,WAAaH,EAEjBhT,EAAOC,KAAKC,UAAU+S,GAE1BpT,IAAEC,KAAK,CACN1E,KAAM,OACNiD,IAAK1D,IAAWoG,oBAChBhB,aAAa,EACbC,KAAMA,EACNG,YAAa,mBACbiT,aAAa,EACbhT,QAAS,SAAUiT,EAAcC,EAAYC,GAC5CjY,QAAQC,IAAI,mBAEb8E,MAAO,SAAUgT,EAAcC,EAAYE,GAC1ClY,QAAQC,IAAI,sBApBT,4C,oHCLQkY,cAAgB,CAC7B5W,QCgBa,WAAyB,IAAxB4U,EAAuB,uDAAf,GAAIiC,EAAW,uCACnC,OAAQA,EAAOtY,MACX,KAAKuY,IACD,OAAO,2BACAlC,GADP,IAEImC,aAAcF,EAAO1T,OAE7B,KAAK6T,IACD,OAAO,2BACApC,GADP,IAEIqC,YAAaJ,EAAO1T,OAG5B,KAAK+T,IACD,OAAO,2BACAtC,GADP,IAEIuC,SAAUN,EAAO1T,OAEzB,KAAKiU,IACD,OAAO,2BACAxC,GADP,IAEIyC,iBAAkBR,EAAO1T,OAEjC,KAAKmU,IACD,OAAO,2BACA1C,GADP,IAEIU,SAAUuB,EAAO1T,OAEzB,KAAKoU,IACD,OAAO,2BACA3C,GADP,IAEI3V,MAAO4X,EAAO1T,OAEtB,KAAKqU,IACD,OAAO,2BACA5C,GADP,IAEI/P,WAAYgS,EAAO1T,OAE3B,KAAKsU,IACD,OAAO,2BACA7C,GADP,IAEI7V,SAAU8X,EAAO1T,OAEzB,KAAKuU,IACD,OAAO,2BACA9C,GADP,IAEItU,YAAauW,EAAO1T,OAG5B,KAAKwU,IACD,OAAO,2BACA/C,GADP,IAEItW,SAAUuY,EAAO1T,OAGzB,KAAKyU,IACD,OAAO,2BACAhD,GADP,IAEIiD,QAAShB,EAAO1T,OAExB,KAAK2U,IACD,OAAO,2BACAlD,GADP,IAEImD,OAAQlB,EAAO1T,OAEvB,KAAK6U,IACD,OAAO,2BACApD,GADP,IAEIpE,uBAAwBqG,EAAO1T,OAEvC,KAAK8U,IACD,OAAO,2BACArD,GADP,IAEIsD,kBAAmBrB,EAAO1T,OAGlC,KAAKgV,IACD,OAAO,2BACAvD,GADP,IAEIpI,qBAAsBqK,EAAO1T,OAGrC,KAAKiV,IACD,OAAO,2BACAxD,GADP,IAEItP,YAAauR,EAAO1T,OAG5B,QACI,OAAOyR,M,SCxGN/V,EAAQwZ,YAAYC,EAAaC,YAAgBC,O,oOCMjDC,EAAb,kDACE,WAAY/D,GAAQ,IAAD,8BACjB,cAAMA,IAuDRgE,YAxDmB,sBAwDL,sBAAAzY,EAAA,yDACZgW,YAAS/X,IAAWE,iBAAkB,eAAgB4W,EAAOC,SAC7D,EAAK0D,MAAM,KAEmB,MAA1Bza,IAAWoE,aAAwC,MAAjBwQ,OAAO8F,OAJjC,uBAKV9F,OAAO8F,OAAO7F,SAAS3I,KAAOtM,IAAWkG,UACzC8O,OAAO+F,QANG,0BASV/F,OAAOC,SAAS3I,KAAO,uBATb,2CAtDZ,EAAKwK,MAAQ,CACXhC,aAAa,EACbkG,SAAU,GACVhE,gBAAiB,IAEnBE,EAAOC,QAAU,GAPA,EADrB,qDAWE,WACE,IACE,IAAII,EAAaxW,IAAMkB,WAAWC,QAAQsV,SACtCyD,EAAuB,GAE3B,GAAkB,MAAd1D,EAAoB,CACgB,MAAnCA,EAAW0D,uBACdA,EAAuB1D,EAAW0D,qBAAqBxD,MAAQ,IAC7DF,EAAW0D,qBAAqBvD,MAAQ,IAAMH,EAAW0D,qBAAqBtD,KAAO,IACrFJ,EAAW0D,qBAAqBnE,MAAQ,IAAMS,EAAW0D,qBAAqBrD,YAC9E,IAAML,EAAW0D,qBAAqBpD,KAIxC,IAAIqD,EAAa,GAEfA,EADiD,MAA/C3D,EAAW4D,gBAAgBC,kBAA2E,IAA/C7D,EAAW4D,gBAAgBC,iBACvE7D,EAAW8D,YAEX9D,EAAW4D,gBAAgBC,iBAG1CtY,KAAKuU,SAAS,CACZ2D,SAAUE,EACVlE,gBAAiBiE,IAKrBnY,KAAK+X,MAAM,KAGOS,IAAY/X,SAASgY,cAAc,oBAAqB,CACxEtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GACdvE,EAAOC,QAAUsE,EAAOC,YACxBxE,EAAOC,QAAUD,EAAOC,QAAQtS,QAAQ,2BAA4B,OAExE,MAAOa,OAlDb,mBAsEE,SAAMiW,GACJ,IAAIC,EAAI,IAAIjX,KACRkX,EAAK,KACT,GAAKA,EAAK,IAAIlX,WACPkX,EAAKD,EAAID,KA1EpB,oBA8EE,WACE,OACE,yBAAK5X,GAAG,mBACN,kBAAC,IAAD,CAAWgU,OAAO,EAAM1L,UAAU,2BAChC,kBAAC,IAAD,MACA,wBAAIA,UAAU,sDAAd,oBACA,wBAAIA,UAAU,+CAAd,4BACA,wBAAIA,UAAU,gBAEd,yBAAKA,UAAU,YACb,yBAAKA,UAAU,oEACb,wBAAIA,UAAU,gCAAd,UACA,yBAAKA,UAAU,YACb,yBAAKA,UAAU,SACb,yBAAKvI,IAAK9D,IAAWmG,gBAAkB,gBAAiB8R,MAAM,MAAM5L,UAAU,6BAEhF,yBAAKA,UAAU,SACb,uBAAGA,UAAU,gCAAb,+BAEA,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,QADF,IAC8C,0BAAMA,UAAU,kBAAhB,MAC9C,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,YADF,IACkD,0BAAMA,UAAU,uBAMxE,yBAAKA,UAAU,yEACb,yBAAKA,UAAU,OACb,uBAAGA,UAAU,yDAAb,iBAEA,yBAAKA,UAAU,mDAAmDvJ,KAAKgU,MAAME,mBAIjF,yBAAK3K,UAAU,yEACb,yBAAKA,UAAU,OACb,uBAAGA,UAAU,uDAAb,oBAEA,yBAAKA,UAAU,6BACb,yBAAKA,UAAU,yBAAyBvI,IAAK9D,IAAWmG,gBAAkB,wBAAyB8R,MAAM,KAAK6D,IAAI,sBAClH,yBAAKzP,UAAU,kCACb,yBAAKA,UAAU,iCACbvJ,KAAKgU,MAAMkE,cAMrB,yBAAK3O,UAAU,yEACb,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,sBAAf,YACA,yBAAKA,UAAU,aAAf,WAGF,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,qBAAf,wBAAwD,6BAAxD,YACA,yBAAKA,UAAU,aAAf,SAGF,yBAAKA,UAAU,qDACb,yBAAKA,UAAU,qBAAf,SACA,yBAAKA,UAAU,aAAf,aAKN,yBAAKA,UAAU,6CACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCACb,uBAAGtI,GAAG,SAASsI,UAAU,WACvB,4BAAQ5L,KAAK,SAASsD,GAAG,aAAagY,QAASjZ,KAAK8X,YAAavO,UAAU,0CAA3E,UAKR,kBAAC,IAAD,YA3JV,GAAyC6L,e,6PCG5B8D,EAAb,kDACE,WAAYpF,GAAQ,IAAD,8BACjB,cAAMA,IAiDRgE,YAlDmB,sBAkDL,sBAAAzY,EAAA,yDACZgW,YAAS/X,IAAWE,iBAAkB,eAAgB4W,EAAOC,SAC7D,EAAK0D,MAAM,KAEmB,MAA1Bza,IAAWoE,aAAwC,MAAjBwQ,OAAO8F,OAJjC,wBAMVna,QAAQC,IAAIoU,QAGZA,OAAO8F,OAAO7F,SAAS3I,KAAOtM,IAAWkG,UAEzC8O,OAAOiH,OAAOnB,OAAOoB,QAErBlH,OAAO+F,QAbG,2BAgBV/F,OAAOC,SAAS3I,KAAO,uBAhBb,4CAhDZ,EAAKwK,MAAQ,CACXhC,aAAa,EACbkG,SAAU,GACVhE,gBAAiB,IAEnBE,EAAOC,QAAU,GAPA,EADrB,qDAWE,WACE,IACE,IAAII,EAAaxW,IAAMkB,WAAWC,QAAQsV,SACtCyD,EAAuB,GAE3B,GAAkB,MAAd1D,GAAyD,MAAnCA,EAAW0D,qBAA8B,CACjEA,EAAuB1D,EAAW0D,qBAAqBxD,MAAQ,IAC7DF,EAAW0D,qBAAqBvD,MAAQ,IAAMH,EAAW0D,qBAAqBtD,KAAO,IACrFJ,EAAW0D,qBAAqBnE,MAAQ,IAAMS,EAAW0D,qBAAqBrD,YAC9E,IAAML,EAAW0D,qBAAqBpD,IAGxC,IAAIqD,EAAa,GAEfA,EADiD,MAA/C3D,EAAW4D,gBAAgBC,kBAA2E,IAA/C7D,EAAW4D,gBAAgBC,iBACvE7D,EAAW8D,YAEX9D,EAAW4D,gBAAgBC,iBAG1CtY,KAAKuU,SAAS,CACZ2D,SAAUE,EACVlE,gBAAiBiE,IAIrBnY,KAAK+X,MAAM,KAEXS,IAAY/X,SAASgY,cAAc,oBAAqB,CACtDtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GACdvE,EAAOC,QAAUsE,EAAOC,YACxBxE,EAAOC,QAAUD,EAAOC,QAAQtS,QAAQ,2BAA4B,OAGxE,MAAOa,OA/Cb,mBAuEE,SAAMiW,GACJ,IAAIC,EAAI,IAAIjX,KACRkX,EAAK,KACT,GAAKA,EAAK,IAAIlX,WACPkX,EAAKD,EAAID,KA3EpB,oBA8EE,WACE,OACE,yBAAK5X,GAAG,mBACN,kBAAC,IAAD,CAAWgU,OAAO,EAAM1L,UAAU,2BAChC,kBAAC,IAAD,MACA,wBAAIA,UAAU,sDAAd,oBACA,wBAAIA,UAAU,+CAAd,4BACA,wBAAIA,UAAU,gBAEd,yBAAKA,UAAU,YACb,yBAAKA,UAAU,oEACb,wBAAIA,UAAU,gCAAd,UACA,yBAAKA,UAAU,YACb,yBAAKA,UAAU,SACb,yBAAKvI,IAAK9D,IAAWmG,gBAAkB,gBAAiB8R,MAAM,MAAM5L,UAAU,6BAEhF,yBAAKA,UAAU,SACb,uBAAGA,UAAU,gCAAb,+BAEA,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,QADF,IAC8C,0BAAMA,UAAU,kBAAhB,MAC9C,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,YADF,IACkD,0BAAMA,UAAU,uBAMxE,yBAAKA,UAAU,yEACb,yBAAKA,UAAU,OACb,uBAAGA,UAAU,yDAAb,iBAEA,yBAAKA,UAAU,mDAAmDvJ,KAAKgU,MAAME,mBAIjF,yBAAK3K,UAAU,yEACb,yBAAKA,UAAU,OACb,uBAAGA,UAAU,uDAAb,oBAEA,yBAAKA,UAAU,6BACb,yBAAKA,UAAU,yBAAyBvI,IAAK9D,IAAWmG,gBAAkB,wBAAyB8R,MAAM,KAAK6D,IAAI,sBAClH,yBAAKzP,UAAU,kCACb,yBAAKA,UAAU,iCAAf,OACEvJ,KAAKgU,MAAMkE,cAQrB,yBAAK3O,UAAU,yEACb,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,sBAAf,YACA,yBAAKA,UAAU,aAAf,WAGF,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,qBAAf,wBAAwD,6BAAxD,YACA,yBAAKA,UAAU,aAAf,SAGF,yBAAKA,UAAU,qDACb,yBAAKA,UAAU,qBAAf,SACA,yBAAKA,UAAU,aAAf,aAMN,yBAAKA,UAAU,6CAEb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCAEb,uBAAGtI,GAAG,SAASsI,UAAU,WACvB,4BAAQ5L,KAAK,SAASsD,GAAG,aAAagY,QAASjZ,KAAK8X,YAAavO,UAAU,0CAA3E,UASR,kBAAC,IAAD,YApKV,GAAiD6L,e,6PCApCiE,EAAb,kDACE,WAAYvF,GAAQ,IAAD,8BACjB,cAAMA,IAmDRgE,YApDmB,sBAoDL,sBAAAzY,EAAA,yDACZgW,YAAS/X,IAAWE,iBAAkB,eAAgB4W,EAAOC,SAC7D,EAAK0D,MAAM,KAEmB,MAA1Bza,IAAWoE,aAAwC,MAAjBwQ,OAAO8F,OAJjC,uBAKV9F,OAAO8F,OAAO7F,SAAS3I,KAAOtM,IAAWkG,UACzC8O,OAAO+F,QANG,0BASV/F,OAAOC,SAAS3I,KAAO,uBATb,2CAlDZ,EAAKwK,MAAQ,CACXhC,aAAa,EACbkG,SAAU,GACVhE,gBAAiB,IAEnBE,EAAOC,QAAU,GAPA,EADrB,qDAWE,WACE,IACE,IAAII,EAAaxW,IAAMkB,WAAWC,QAAQsV,SACtCyD,EAAuB,GAI3B,GAFAta,QAAQC,IAAI2W,GAEM,MAAdA,GAAyD,MAAnCA,EAAW0D,qBAA8B,CACjEA,EAAuB1D,EAAW0D,qBAAqBxD,MAAQ,IAC7DF,EAAW0D,qBAAqBvD,MAAQ,IAAMH,EAAW0D,qBAAqBtD,KAAO,IACrFJ,EAAW0D,qBAAqBnE,MAAQ,IAAMS,EAAW0D,qBAAqBrD,YAC9E,IAAML,EAAW0D,qBAAqBpD,IAGxC,IAAIqD,EAAa,GAEfA,EADiD,MAA/C3D,EAAW4D,gBAAgBC,kBAA2E,IAA/C7D,EAAW4D,gBAAgBC,iBACvE7D,EAAW8D,YAEX9D,EAAW4D,gBAAgBC,iBAG1CtY,KAAKuU,SAAS,CACZ2D,SAAUE,EACVlE,gBAAiBiE,IAIrBnY,KAAK+X,MAAM,KACXS,IAAY/X,SAASgY,cAAc,oBAAqB,CACtDtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GACdvE,EAAOC,QAAUsE,EAAOC,YACxBxE,EAAOC,QAAUD,EAAOC,QAAQtS,QAAQ,2BAA4B,OAExE,MAAOa,GACP/E,QAAQC,IAAI,SAAW8E,MAhD7B,mBAkEE,SAAMiW,GACJ,IAAIC,EAAI,IAAIjX,KACRkX,EAAK,KACT,GAAKA,EAAK,IAAIlX,WACPkX,EAAKD,EAAID,KAtEpB,oBAyEE,WACE,OACE,yBAAK5X,GAAG,mBACN,kBAAC,IAAD,CAAWgU,OAAO,EAAM1L,UAAU,2BAChC,kBAAC,IAAD,MACA,wBAAIA,UAAU,sDAAd,oBACA,wBAAIA,UAAU,+CAAd,4BACA,wBAAIA,UAAU,gBAEd,yBAAKA,UAAU,YACb,yBAAKA,UAAU,oEACb,wBAAIA,UAAU,gCAAd,UACA,yBAAKA,UAAU,YACb,yBAAKA,UAAU,SACb,yBAAKvI,IAAK9D,IAAWmG,gBAAkB,gBAAiB8R,MAAM,MAAM5L,UAAU,6BAEhF,yBAAKA,UAAU,SACb,uBAAGA,UAAU,gCAAb,+BAEA,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,QADF,IAC8C,0BAAMA,UAAU,kBAAhB,MAC9C,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,YADF,IACkD,0BAAMA,UAAU,uBAMxE,yBAAKA,UAAU,yEACb,yBAAKA,UAAU,OACb,uBAAGA,UAAU,yDAAb,iBAEA,yBAAKA,UAAU,mDAAmDvJ,KAAKgU,MAAME,mBAIjF,yBAAK3K,UAAU,yEACb,yBAAKA,UAAU,OACb,uBAAGA,UAAU,uDAAb,oBAEA,yBAAKA,UAAU,6BACb,yBAAKA,UAAU,yBAAyBvI,IAAK9D,IAAWmG,gBAAkB,wBAAyB8R,MAAM,KAAK6D,IAAI,sBAClH,yBAAKzP,UAAU,kCACb,yBAAKA,UAAU,iCAAf,OACEvJ,KAAKgU,MAAMkE,cAQrB,yBAAK3O,UAAU,yEACb,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,sBAAf,YACA,yBAAKA,UAAU,aAAf,WAGF,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,qBAAf,wBAAwD,6BAAxD,YACA,yBAAKA,UAAU,aAAf,SAGF,yBAAKA,UAAU,qDACb,yBAAKA,UAAU,qBAAf,SACA,yBAAKA,UAAU,aAAf,aAMN,yBAAKA,UAAU,6CAEb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCAEb,uBAAGtI,GAAG,SAASsI,UAAU,WACvB,4BAAQ5L,KAAK,SAASsD,GAAG,aAAagY,QAASjZ,KAAK8X,YAAavO,UAAU,0CAA3E,UASR,kBAAC,IAAD,YA/JV,GAAiC6L,e,6PCApBkE,EAAb,kDACE,WAAYxF,GAAQ,IAAD,8BACjB,cAAMA,IAmDRgE,YApDmB,sBAoDL,sBAAAzY,EAAA,yDACZgW,YAAS/X,IAAWE,iBAAkB,eAAgB4W,EAAOC,SAC7D,EAAK0D,MAAM,KAEmB,MAA1Bza,IAAWoE,aAAwC,MAAjBwQ,OAAO8F,OAJjC,uBAKV9F,OAAO8F,OAAO7F,SAAS3I,KAAOtM,IAAWkG,UACzC8O,OAAO+F,QANG,0BASV/F,OAAOC,SAAS3I,KAAO,uBATb,2CAlDZ,EAAKwK,MAAQ,CACXhC,aAAa,EACbkG,SAAU,GACVhE,gBAAiB,IAEnBE,EAAOC,QAAU,GAPA,EADrB,qDAWE,WACE,IACE,IAAII,EAAaxW,IAAMkB,WAAWC,QAAQsV,SACtCyD,EAAuB,GAI3B,GAFAta,QAAQC,IAAI2W,GAEM,MAAdA,GAAyD,MAAnCA,EAAW0D,qBAA8B,CACjEA,EAAuB1D,EAAW0D,qBAAqBxD,MAAQ,IAC7DF,EAAW0D,qBAAqBvD,MAAQ,IAAMH,EAAW0D,qBAAqBtD,KAAO,IACrFJ,EAAW0D,qBAAqBnE,MAAQ,IAAMS,EAAW0D,qBAAqBrD,YAC9E,IAAML,EAAW0D,qBAAqBpD,IAGxC,IAAIqD,EAAa,GAEfA,EADiD,MAA/C3D,EAAW4D,gBAAgBC,kBAA2E,IAA/C7D,EAAW4D,gBAAgBC,iBACvE7D,EAAW8D,YAEX9D,EAAW4D,gBAAgBC,iBAG1CtY,KAAKuU,SAAS,CACZ2D,SAAUE,EACVlE,gBAAiBiE,IAIrBnY,KAAK+X,MAAM,KACXS,IAAY/X,SAASgY,cAAc,oBAAqB,CACtDtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GACdvE,EAAOC,QAAUsE,EAAOC,YACxBxE,EAAOC,QAAUD,EAAOC,QAAQtS,QAAQ,2BAA4B,OAExE,MAAOa,GACP/E,QAAQC,IAAI,SAAW8E,MAhD7B,mBAkEE,SAAMiW,GACJ,IAAIC,EAAI,IAAIjX,KACRkX,EAAK,KACT,GAAKA,EAAK,IAAIlX,WACPkX,EAAKD,EAAID,KAtEpB,oBAyEE,WACE,OACE,yBAAK5X,GAAG,mBACN,kBAAC,IAAD,CAAWgU,OAAO,EAAM1L,UAAU,2BAChC,kBAAC,IAAD,MACA,wBAAIA,UAAU,sDAAd,oBACA,wBAAIA,UAAU,+CAAd,4BACA,wBAAIA,UAAU,gBAEd,yBAAKA,UAAU,YACb,yBAAKA,UAAU,oEACb,wBAAIA,UAAU,gCAAd,UACA,yBAAKA,UAAU,YACb,yBAAKA,UAAU,SACb,yBAAKvI,IAAK9D,IAAWmG,gBAAkB,gBAAiB8R,MAAM,MAAM5L,UAAU,6BAEhF,yBAAKA,UAAU,SACb,uBAAGA,UAAU,gCAAb,+BAEA,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,QADF,IAC8C,0BAAMA,UAAU,kBAAhB,MAC9C,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,YADF,IACkD,0BAAMA,UAAU,uBAMxE,yBAAKA,UAAU,yEACb,yBAAKA,UAAU,OACb,uBAAGA,UAAU,yDAAb,iBAEA,yBAAKA,UAAU,mDAAmDvJ,KAAKgU,MAAME,mBAIjF,yBAAK3K,UAAU,yEACb,yBAAKA,UAAU,OACb,uBAAGA,UAAU,uDAAb,oBAEA,yBAAKA,UAAU,6BACb,yBAAKA,UAAU,yBAAyBvI,IAAK9D,IAAWmG,gBAAkB,wBAAyB8R,MAAM,KAAK6D,IAAI,sBAClH,yBAAKzP,UAAU,kCACb,yBAAKA,UAAU,iCAAf,OACEvJ,KAAKgU,MAAMkE,cAQrB,yBAAK3O,UAAU,yEACb,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,sBAAf,YACA,yBAAKA,UAAU,aAAf,WAGF,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,qBAAf,wBAAwD,6BAAxD,YACA,yBAAKA,UAAU,aAAf,SAGF,yBAAKA,UAAU,qDACb,yBAAKA,UAAU,qBAAf,SACA,yBAAKA,UAAU,aAAf,aAMN,yBAAKA,UAAU,6CAEb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCAEb,uBAAGtI,GAAG,SAASsI,UAAU,WACvB,4BAAQ5L,KAAK,SAASsD,GAAG,aAAagY,QAASjZ,KAAK8X,YAAavO,UAAU,0CAA3E,UASR,kBAAC,IAAD,YA/JV,GAAiC6L,e,8GCbjC,w6BAGO,IAAMmE,EAAiB,CAC1B3T,OAAQ,CACJH,kBAAmB,GACnBF,SAAU,GACVC,eAAgB,KAIXgU,EAAiB,CAC1B5T,OAAQ,CACJ6T,cAAe,CACXC,KAAM,CACFC,qBAAsB,GAAIC,iBAAkB,GAC5CC,mBAAoB,GAAIC,kBAAmB,KAGnDrU,kBAAmB,KAIdiU,EAAO,CAChB9T,OAAQ,CACJ+T,qBAAsB,GAAIC,iBAAkB,GAC5CC,mBAAoB,GAAIC,kBAAmB,KAKtCC,EAAW,CACpBnU,OAAQ,CACJH,kBAAmB,GACnBuU,4BAA6B,SAKxBC,EAAiB,CAC1BrU,OAAQ,CACJsU,iBAAkB,CACdC,iBAAkB,MAClBC,aAAc,gBACdC,cAAe,MAKdC,EAAmB,CAC5B1U,OAAQ,IAGC2U,EAAmB,CAC5B3U,OAAQ,CACJ4U,eAAgB,KAIXC,EAAgB,CACzB7U,OAAQ,CACJ2Q,SAAU,KAILjP,EAAwB,CACjC1B,OAAQ,CACJ8U,+BAA+B,EAC/BC,uBAAuB,EACvBC,8BAA8B,EAC9BC,gBAAiB,CACbC,gBAAiB,GACjBC,gBAAiB,GACjBC,gBAAiB,IAErBC,4BAA6B,CAAC,KAAM,KAAM,MAC1CC,6BAA8B,CAAC,KAAM,KAAM,MAC3CC,qBAAsB,OACtBC,sBAAuB,OACvBC,UAAW,QACXC,qBAAsB,OACtBC,oBAAqB,KACrBC,gBAAiB,uCACjBC,UAAW,UACXC,oBAAqB,CACjBZ,gBAAiB,SACjBC,gBAAiB,SACjBC,gBAAiB,UAErBW,eAAgB,CACZ,CACIC,yBAA0B,GAC1BC,gBAAiB,+BAGzBC,iBAAkB,CACdC,WAAY,OACZC,YAAa,OACbC,YAAa,QAEjBnU,kBACI,CAAEA,kBAAmB,MAAOoU,wBAAyB,OACzDC,kBAAmB,OACnBC,gBAAiB,WACjBC,aAAc,KAITC,EAAyB,CAClC5B,+BAA+B,EAC/BC,uBAAuB,EACvBC,8BAA8B,EAE9BC,gBAAiB,CACbC,gBAAiB,GACjBC,gBAAiB,GACjBC,gBAAiB,IAGrBC,4BAA6B,CAAC,KAAM,KAAM,MAC1CC,6BAA8B,CAAC,KAAM,KAAM,MAC3CC,qBAAsB,OACtBC,sBAAuB,OACvBC,UAAW,QAEXC,qBAAsB,KACtBC,oBAAqB,KAErBC,gBAAiB,uCACjBC,UAAW,UAEXC,oBAAqB,CACjBZ,gBAAiB,SACjBC,gBAAiB,SACjBC,gBAAiB,UAGrBW,eAAgB,CACZ,CACIC,yBAA0B,GAC1BC,gBAAiB,+BAIzBC,iBAAkB,CACdC,WAAY,OACZC,YAAa,OACbC,YAAa,QAGjBE,kBAAmB,OACnBC,gBAAiB,YAIRG,EAAW,CACpB3W,OAAQ,IAGC4W,EAA6B,CACtC5W,OAAQ,IAGC7G,EAAU,CACnB0d,aAAc,uCACdC,mBAAoB,gBAEpB1d,eAAgB,mCAChBE,qBAAsB,YAEtByd,gBAAiB,uCACjBC,sBAAuB,uCAEvBC,iBAAkB,uCAClBC,uBAAwB,uCAExBC,eAAgB,uCAChBC,qBAAsB,uCAEtBC,eAAgB,uCAChBC,qBAAsB,wCAGbC,EAAU,CACnBC,cAAe,+DACfC,gBAAiB,iEAEjBC,iBAAkB,oEAClBC,kBAAmB,iEAIVC,EAAkB,CAC3B,KAAQ,CACJ,CACI,IAAO,QACP,QAAW,CACP,UAEJ,IAAO,8CACP,IAAO,MACP,IAAO,MACP,IAAO,CACH,w3EAEJ,WAAY,8CACZ,EAAK,yVACL,EAAK,QAET,CACI,IAAO,QACP,QAAW,CACP,UAEJ,IAAO,8CACP,IAAO,MACP,IAAO,MACP,IAAO,CACH,o3EAEJ,WAAY,8CACZ,EAAK,yVACL,EAAK,QAET,CACI,IAAO,eACP,QAAW,CACP,WAEJ,IAAO,8CACP,IAAO,MACP,IAAO,MACP,IAAO,CACH,w3EAEJ,WAAY,8CACZ,EAAK,yVACL,EAAK,UAKJC,EAAa,CACtB,KAAQ,CACJ,CACI,IAAO,MACP,EAAK,yVACL,EAAK,OACL,QAAW,CACP,UAEJ,IAAO,0FACP,IAAO,MACP,IAAO,SAEX,CACI,IAAO,MACP,EAAK,yVACL,EAAK,OACL,QAAW,CACP,WAEJ,IAAO,0FACP,IAAO,MACP,IAAO,gBAEX,CACI,IAAO,MACP,EAAK,yVACL,EAAK,OACL,QAAW,CACP,UAEJ,IAAO,0FACP,IAAO,MACP,IAAO,WAONC,EAAgB,CACzB,KAAQ,CACJ,CACI,IAAO,QACP,QAAW,CACP,UAEJ,IAAO,8CACP,IAAO,MACP,IAAO,MACP,IAAO,CACH,orCAEJ,WAAY,8CACZ,EAAK,yVACL,EAAK,QAET,CACI,IAAO,eACP,QAAW,CACP,WAEJ,IAAO,8CACP,IAAO,MACP,IAAO,MACP,IAAO,CACH,orCAEJ,WAAY,8CACZ,EAAK,yVACL,EAAK,QAET,CACI,IAAO,QACP,QAAW,CACP,UAEJ,IAAO,8CACP,IAAO,MACP,IAAO,MACP,IAAO,CACH,o5BAEJ,WAAY,8CACZ,EAAK,yVACL,EAAK,UAOJC,EAAoB,CAC7B,KAAQ,CACJ,CACI,IAAO,MACP,EAAK,yVACL,EAAK,OACL,QAAW,CACP,UAEJ,IAAO,0FACP,IAAO,MACP,IAAO,SAEX,CACI,IAAO,MACP,EAAK,yVACL,EAAK,OACL,QAAW,CACP,WAEJ,IAAO,0FACP,IAAO,MACP,IAAO,gBAEX,CACI,IAAO,MACP,EAAK,yVACL,EAAK,OACL,QAAW,CACP,UAEJ,IAAO,0FACP,IAAO,MACP,IAAO,WAQNC,EAAoB,CAC7B,KAAQ,CACJ,CACI,IAAO,QACP,QAAW,CACP,UAEJ,IAAO,8CACP,IAAO,MACP,IAAO,MACP,IAAO,CACH,o2EAEJ,WAAY,8CACZ,EAAK,yVACL,EAAK,QAET,CACI,IAAO,QACP,QAAW,CACP,UAEJ,IAAO,8CACP,IAAO,MACP,IAAO,MACP,IAAO,CACH,41EAEJ,WAAY,8CACZ,EAAK,yVACL,EAAK,QAET,CACI,IAAO,eACP,QAAW,CACP,WAEJ,IAAO,0FACP,IAAO,MACP,IAAO,MACP,EAAK,yVACL,EAAK,UAKJC,EAAU,CACnB,IAAO,eACP,QAAW,CACP,WAEJ,IAAO,0FACP,IAAO,MACP,IAAO,MACP,EAAK,yVACL,EAAK,S,uEC9aT,w7BAAO,IAAM3H,EAAgB,gBAChBE,EAAe,eACfE,EAAY,YACZE,EAAqB,qBACrBE,EAAY,YACZC,EAAS,SACTC,EAAc,cACdC,EAAgB,gBAChBC,EAAc,cACdC,EAAY,YACZC,EAAW,WACXE,EAAU,UACVE,EAA2B,2BAC3BC,EAAuB,uBACvBE,EAAwB,wBACxBC,EAAe,eAQrB,SAASnB,EAAY9T,GACxB,MAAO,CACH5E,KAAMyY,EACN7T,QAID,SAASgU,EAAShU,GACrB,MAAO,CACH5E,KAAM2Y,EACN/T,QAID,SAASkU,EAAiBlU,GAC7B,MAAO,CACH5E,KAAM6Y,EACNjU,QAID,SAASmS,EAASnS,GACrB,MAAO,CACH5E,KAAM+Y,EACNnU,QAID,SAASlE,EAAMkE,GAClB,MAAO,CACH5E,KAAMgZ,EACNpU,QAID,SAAS0B,EAAW1B,GACvB,MAAO,CACH5E,KAAMiZ,EACNrU,QAID,SAASpE,EAASoE,GACrB,MAAO,CACH5E,KAAMkZ,EACNtU,QAID,SAAS7C,EAAY6C,GACxB,MAAO,CACH5E,KAAMmZ,EACNvU,QAID,SAAS7E,EAAS6E,GACrB,MAAO,CACH5E,KAAMoZ,EACNxU,QAkBD,SAASqN,EAAuBrN,GACnC,MAAO,CACH5E,KAAMyZ,EACN7U,QAWD,SAASqJ,EAAqBrJ,GACjC,MAAO,CACH5E,KAAM4Z,EACNhV,QAID,SAASmC,EAAYnC,GACxB,MAAO,CACH5E,KAAM6Z,EACNjV,U,4PC5HFhB,E,WAUF,aAAe,oBACXvB,KAAK8d,MAAQ,G,8CALjB,WACI,OAAO9d,KAAK+d,e,IALhB,SAAiBC,GACbhe,KAAK+d,cAAgBC,I,wBAWzB,SAAWpQ,EAAMhN,EAAKqd,GAAW,IAAD,OACxBD,EAAO,GAEc,MAArBhe,KAAKke,eACLF,EAAOhe,KAAKke,cAGXF,EAAKha,SAAS4J,KACfoQ,EAAK3W,KAAKuG,GACV5N,KAAKke,aAAeF,GAGxB,IAAMld,EAASL,SAASM,cAAc,UACtCD,EAAOE,IAAMJ,EACbE,EAAOG,GAAKL,EACZE,EAAOqd,OAAQ,EACf1d,SAAS2J,KAAKjJ,YAAYL,GAC1BA,EAAOsd,OAAS,WACZ,EAAKC,aAAazQ,EAAMsE,OAAOoM,aAC3BL,GACAA,O,6BAIZ,SAAgBrQ,GACZ,OAA2B,MAApB5N,KAAK8d,MAAMlQ,K,0BAGtB,SAAapF,EAAKvG,GACd,OAAW,MAAPuG,GAAwB,MAATvG,IACfjC,KAAK8d,MAAMtV,GAAOvG,EAClBpE,QAAQC,IAAI,iBACL,K,6BAKf,SAAgB8P,GACZ,GAAI5N,KAAKue,gBAAgB3Q,GAAO,CAG5B,UAFQ5N,KAAK8d,MAAMlQ,GAEM,MAArB5N,KAAKke,aAAsB,CAC3B,IAAIM,EAAQxe,KAAKke,aAAa9P,QAAQR,GAClC4Q,GAAS,GACTxe,KAAKke,aAAaxR,OAAO8R,EAAO,GAGxC3gB,QAAQC,IAAI,oB,0BAIpB,SAAa8P,GACT,OAAI5N,KAAKue,gBAAgB3Q,IACrB/P,QAAQC,IAAI,eACLkC,KAAK8d,MAAMlQ,KAGlB/P,QAAQC,IAAI,mBACL,U,KAMJ,QAAIyD,G,yTCxCfkd,G,OAAW,GACXC,EAAkB,GAEtBtc,IAAEuc,GAAGC,OAAO,CACVC,MAAO,SAAUC,GACf,IAAIC,EAAc,uBACdC,EAAc,sBAEF,oBAALF,IACmB,oBAAjBA,EAAEC,cACXA,EAAcD,EAAEC,aAEU,oBAAjBD,EAAEE,cACXA,EAAcF,EAAEE,cAKpB,IAAIC,EAAO7c,IAAEpC,MACbif,EAAKC,SAAS,WACdD,EACGE,KAAK,MACLC,IAAI,MACJC,MAAK,WACJ,IAAIC,EAASld,IAAEpC,MACfsf,EAAOC,QACL,iCAAmCP,EAAc,UAEnDM,EAAOJ,SAAS,UAChBI,EAAOE,GAAG,SAAS,SAAUrY,GACvBnH,MAAQmH,EAAEsC,SACDrH,IAAEpC,MAAMyf,SAAS,WACvBC,YAAYX,EAAc,IAAMC,GACrC5c,IAAEpC,MAAMyf,WAAWA,WAAWE,aAGlCL,EAAOG,WAAWA,WAAWE,YAGjCV,EAAKE,KAAK,sBAAsBE,MAAK,WACnCjd,IAAEpC,MAAMwf,GAAG,SAAS,WAClBpd,IAAEpC,MAAM4f,QAAQ,MAAM3N,cAI1BgN,EAAKE,KAAK,aAAaE,MAAK,WAC1Bjd,IAAEpC,MAAMwf,GAAG,SAAS,SAAUrY,GAC5B/E,IAAEpC,MAAM4f,QAAQ,MAAM3N,QACtB9K,EAAE0Y,0BAMVzd,IAAEuc,GAAGC,OAAO,CACVkB,uBAAwB,SAAUhB,GAChC,IAAIC,EAAc,uBACdC,EAAc,sBAEF,oBAALF,IACmB,oBAAjBA,EAAEC,cACXA,EAAcD,EAAEC,aAEU,oBAAjBD,EAAEE,cACXA,EAAcF,EAAEE,cAKpB,IAAIC,EAAO7c,IAAEpC,MACbif,EAAKC,SAAS,qBACdD,EACGE,KAAK,MACLC,IAAI,MACJC,MAAK,WACJ,IAAIC,EAASld,IAAEpC,MACfsf,EAAOC,QACL,mCAAqCP,EAAc,UAErDM,EAAOJ,SAAS,YAChBI,EAAOE,GAAG,SAAS,SAAUrY,GACvBnH,MAAQmH,EAAEsC,SACDrH,IAAEpC,MAAMyf,SAAS,WACvBC,YAAYX,EAAc,IAAMC,GACrC5c,IAAEpC,MAAMyf,WAAWA,WAAWE,aAGlCL,EAAOG,WAAWA,WAAWE,YAGjCV,EAAKE,KAAK,0BAA0BE,MAAK,WACvCjd,IAAEpC,MAAMwf,GAAG,SAAS,WAClBpd,IAAEpC,MAAM4f,QAAQ,MAAM3N,cAI1BgN,EAAKE,KAAK,eAAeE,MAAK,WAC5Bjd,IAAEpC,MAAMwf,GAAG,SAAS,SAAUrY,GAC5B/E,IAAEpC,MAAM4f,QAAQ,MAAM3N,QACtB9K,EAAE0Y,0BAMVzd,IAAE,YAAYyc,MAAM,CAClBE,YAAa,4BACbC,YAAa,6BAGf5c,IAAE,YACC+c,KAAK,cACLlN,OAAM,SAAU8N,GAIf,OAHI/f,MAAQ+f,EAAMtW,QAChBrH,IAAEpC,MAAMyf,SAAS,MAAME,OAAO,WAEzB,KAERT,SAAS,aACTO,SAAS,MACTO,OAEI,IAAMlQ,EAAb,kDACE,WAAYgE,GAAQ,IAAD,uBACjB,cAAMA,IAsBRmM,wBAvBmB,sBAuBO,sBAAA5gB,EAAA,yDACE,eAAtB,EAAK2U,MAAM1E,QADS,gCAET,EAAKS,8BAFI,+CAItB,EAAKG,YAJiB,2CAvBP,EA+BnBH,4BA/BmB,sBA+BW,4BAAA1Q,EAAA,6DAC5B+C,IAAE,iBAAiB8d,IAAI,UAAW,SAE9BvQ,EAAa1R,IAAMkB,WAAWC,QAAQwQ,uBACN,MAAdD,EAAqBA,EAAW9J,OAAS,EAJnC,SAMtB,EAAK0O,SACT,CAAE4L,KAAMzB,EAAiB0B,SAAU,GAAIC,iBAAkB,IACzD,WACExiB,QAAQC,IAAI,oCATY,cAa5BsE,IAAE,WAAWke,IAAI,IAEjB,EAAKC,cAEL7B,EAAkB/O,EAClBvN,IAAE,iBAAiB8d,IAAI,UAAW,QAlBN,mBAmBrB,GAnBqB,4CA/BX,EAqDnBM,mBArDmB,uCAqDE,WAAOxS,EAAG7G,GAAV,eAAA9H,EAAA,sDACnB,EAAKkV,SAAS,CAAEjF,QAAStB,IAEzB,EAAKuG,SAAS,CAAEjF,QAAStB,IAAK,WAC5BsC,eAAemQ,QAAQ,UAAWzS,GAClC,EAAKiS,6BAGH9P,EAAeG,eAAeC,QAAQ,gBAC1C1S,QAAQC,IAAIqS,GACQ,MAAhBA,GACF/N,IAAE,WAAWke,IAAInQ,GAGV,WAALnC,GACF5L,IAAE,sBAAsB0d,uBAAuB,CAC7Cf,YAAa,4BACbC,YAAa,6BAjBE,2CArDF,0DA2EnB0B,iBA3EmB,uCA2EA,WAAOC,GAAP,SAAAthB,EAAA,sDACjBof,EAAWkC,EAEX,EAAKpM,SAAS,CAAEqM,WAAYnC,IAAY,WACtC,EAAKvO,eAJU,2CA3EA,wDAmFnB2Q,kBAnFmB,sBAmFC,sBAAAxhB,EAAA,6DAClBpB,IAAMC,SAASmY,aAAY,IADT,SAEI,EAAK4J,0BAFT,cAIlB7d,IAAE,WAAWke,IAAI,IAE6B,MAA1ChQ,eAAeC,QAAQ,iBACzBD,eAAemQ,QAAQ,eAAgBre,IAAE,WAAWke,OAGtDpO,OAAO4O,iBAAiB,SAAU,EAAKC,eAVrB,2CAnFD,EAgGnBA,cAAgB,WACV7O,OAAO8O,QAAU,IACnB5e,IAAE,WAAW8d,IAAI,UAAW,SAE5B9d,IAAE,WAAW8d,IAAI,UAAW,SApGb,EA4GnBe,YAAc,WACZ/O,OAAOgP,SAAS,CACdC,IAAK,EACLC,SAAU,YA/GK,EA4HnBC,4BA5HmB,uCA4HW,WAAOtB,GAAP,SAAA1gB,EAAA,4DACV,UAAd0gB,EAAMvX,KACR,EAAK8Y,uBAAuBvB,GAFF,8DA5HX,wDAmInBuB,uBAnImB,uCAmIM,WAAOvB,GAAP,SAAA1gB,EAAA,sDACvBxB,QAAQC,IAAIiiB,EAAMtW,OAAOxH,OACzBqO,eAAemQ,QAAQ,eAAgBV,EAAMtW,OAAOxH,OAElC,UAAd8d,EAAMvX,KACR,EAAK+Y,aALgB,2CAnIN,wDA4InBA,WA5ImB,sBA4IN,8BAAAliB,EAAA,yDACPmiB,EAASpf,IAAE,WAAWke,MAC1BhQ,eAAemQ,QAAQ,eAAgBe,GAEb,eAAtB,EAAKxN,MAAM1E,QAJJ,oBAOI,KAFTrN,EAAQG,IAAE,WAAWke,MAAMlX,eALtB,gBAQPhH,IAAE,kBAAkBqf,QAAO,WACzBrf,IAAEpC,MAAM2f,OAAOvd,IAAEpC,MAAMsK,OAAOlB,cAAcgF,QAAQnM,IAAU,MATzD,wCAYD,EAAKge,0BAZJ,gCAeT,EAAK/P,YAfI,4CA5IM,EA+JnBwR,oBA/JmB,sBA+JG,sBAAAriB,EAAA,sDACM,eAAtB,EAAK2U,MAAM1E,SACblN,IAAE,YAAYyc,MAAM,CAClBE,YAAa,4BACbC,YAAa,6BAJG,2CA/JH,EAwKnB9O,UAxKmB,sBAwKP,gCAAA7Q,EAAA,6DACV+C,IAAE,iBAAiB8d,IAAI,UAAW,SAClC9d,IAAE,yBAAyB8d,IAAI,UAAW,QAEhB,eAAtB,EAAKlM,MAAM1E,SACb,EAAKiF,SAAS,CAAEjF,QAAS,YAAa,WACpCgB,eAAemQ,QAAQ,UAAW,cAIlCe,EAAS,GACiC,MAA1ClR,eAAeC,QAAQ,gBACzBiR,EAASlR,eAAeC,QAAQ,iBAEhCiR,EAASpf,IAAE,WAAWke,MACtBhQ,eAAemQ,QAAQ,eAAgBe,IAf/B,SAkBcliB,IAAc4Q,UAAUsR,EAAQ/C,GAlB9C,OAkBNkD,EAlBM,OAqBVvf,IAAE,sBAAsB0d,uBAAuB,CAC7Cf,YAAa,4BACbC,YAAa,6BAGI,MAAf2C,GAAsC,IAAfA,IACrBC,EAAsB,EAEtBD,EAAYE,MAAQ,IAEtBD,EACyB,IAFzBA,GAAuBD,EAAYE,MAAQ,KAAKC,WAG1CF,EACAA,EAAsB,GAG9B,EAAKrN,SAAS,CACZwN,WAAYJ,EAAYxB,KACxB6B,eAAgBL,EAAYE,MAC5BxB,iBAAkB4B,SAASL,MAK/Bxf,IAAE,sBAAsB0d,uBAAuB,CAC7Cf,YAAa,4BACbC,YAAa,6BAGf5c,IAAE,iBAAiB8d,IAAI,UAAW,QAClC9d,IAAE,yBAAyB8d,IAAI,UAAW,SAnDhC,4CAtKV,IAAIgC,EAAiB5R,eAAeC,QAAQ,WAF3B,OAGjB,EAAKyD,MAAQ,CACXmO,uBAAuB,EACvBC,WAAW,EACXjC,KAAM,GACN4B,WAAY,GACZ3B,SAAU,EACV4B,eAAgB,EAChB3B,iBAAkB,EAClBO,WAAY,EACZyB,SAAU,GACVC,OAAQ,GACRhT,QAA2B,IAAlB4S,EAAuBA,EAAiB,cACjDK,WAAY,EACZC,aAAa,GAEf,EAAKd,oBAAsB,EAAKA,oBAAoBe,KAAzB,gBAC3B,EAAKnB,uBAAyB,EAAKA,uBAAuBmB,KAA5B,gBAC9B,EAAKpB,4BAA8B,EAAKA,4BAA4BoB,KAAjC,gBApBlB,EADrB,wDAyGE,WACEvQ,OAAOwQ,oBAAoB,SAAU1iB,KAAK+gB,iBA1G9C,gCAoHE,WAC4B,eAAtB/gB,KAAKgU,MAAM1E,SACblN,IAAE,YAAYyc,MAAM,CAClBE,YAAa,4BACbC,YAAa,+BAxHrB,oBA+NE,WACE,IACM2D,EAAsB,kBAC1B,yBAAKpZ,UAAU,OAAf,8BAC6B,0DAG/B,OACE,yBAAKA,UAAU,iBACb,kBAAC,IAAD,CACEqZ,SAAS,YACTC,WAAW,EACXC,aAAa,EACbC,cAAc,EACdC,KAAK,EACLC,kBAAkB,EAClBC,WAAW,EACXC,MAAO,IAET,yBAAK5Z,UAAU,sBACb,yBAAKA,UAAU,OACb,yBAAKA,UAAU,aACb,wBAAIA,UAAU,0BAAd,wBAEF,yBAAKA,UAAU,YACb,kBAAC,IAAD,CAAQA,UAAU,SAAS0P,QAxBtB,kBAAMmK,IAAMzgB,QAAQggB,KAyBvB,kBAAC,IAAD,CACEU,KAAMC,IACN/Z,UAAU,yBAMlB,wBAAIA,UAAU,OACd,kBAAC,IAAD,CAAKA,UAAU,UACb,kBAAC,IAAD,CAAKga,GAAI,GAAIrO,GAAI,EAAG3L,UAAU,aAC5B,yBAAKA,UAAU,gBACb,2BACE5L,KAAK,QACLsD,GAAG,YACH2M,KAAK,aACL3L,MAAM,cACNuhB,QAA+B,eAAtBxjB,KAAKgU,MAAM1E,QACpBmU,SAAUzjB,KAAKwgB,mBAAmBiC,KAAKziB,KAAM,iBAE/C,2BAAO0jB,QAAQ,aAAf,uBAEA,2BACE/lB,KAAK,QACLsD,GAAG,YACH2M,KAAK,aACL3L,MAAM,UACNuhB,QAA+B,WAAtBxjB,KAAKgU,MAAM1E,QACpBmU,SAAUzjB,KAAKwgB,mBAAmBiC,KAAKziB,KAAM,aAE/C,2BAAO0jB,QAAQ,aAAf,uBAIJ,kBAAC,IAAD,CAAKH,GAAI,EAAGrO,GAAI,GACd,2BACEvX,KAAK,OACLgmB,YAAY,SACZC,WAAY5jB,KAAKqhB,4BACjBoC,SAAUzjB,KAAKshB,uBACfrgB,GAAG,SACHsI,UAAU,sBACVqE,KAAK,YAGT,kBAAC,IAAD,CAAK2V,GAAI,EAAGrO,GAAI,EAAG3L,UAAU,uBAC3B,4BACEtI,GAAG,gBACHtD,KAAK,SACLiQ,KAAK,SACLrE,UAAU,wBACV0P,QAASjZ,KAAKuhB,YALhB,QAYmB,eAAtBvhB,KAAKgU,MAAM1E,QACV,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAK/F,UAAU,cACb,kBAAC,IAAD,CACEsa,cAAY,EACZjD,WAAY5gB,KAAKgU,MAAM4M,WACvBkD,kBAAmB,IACnBC,gBAAiB/jB,KAAKgU,MAAMgO,eAC5BgC,mBAAoB,EACpBP,SAAUzjB,KAAK0gB,iBAAiB+B,KAAKziB,UAK3C,GAGF,kBAAC,IAAD,CAAKuJ,UAAU,cACb,yBACEA,UAAU,wBACVtI,GAAG,eACHgjB,MAAO,CAAEC,QAAS,SAElB,yBAAK3a,UAAU,UACb,yBAAKvI,IAAI,oCAKQ,eAAtBhB,KAAKgU,MAAM1E,QACV,kBAAC,IAAD,CAAKrO,GAAG,eACN,kBAAC,IAAD,CAAKA,GAAG,SAASwiB,SAAUzjB,KAAK0hB,qBAC9B,wBAAIzgB,GAAG,UAAUuH,IAAI,KACC,MAAnBxI,KAAKgU,MAAMmM,MAAgBngB,KAAKgU,MAAMmM,KAAKta,OAAS,EACnD7F,KAAKgU,MAAMmM,KAAKjZ,KAAI,SAACpJ,EAAK8I,GACxB,OACE,wBAAI2C,UAAU,UAAUtI,GAAG,OAAOuH,IAAK5B,GACrC,uBAAG3F,GAAI2F,GAAU9I,EAAI0R,KAArB,KAEA,uBAAGjG,UAA0B,eAAfzL,EAAIwR,QACd,MAAQ,qBACTxR,EAAIwR,SAEP,uBAAGrO,GAAG,YAAYsI,UAAU,0BACzBzL,EAAI4R,KAEP,uBACEzO,GAAG,YACHsI,UAAU,8BACV4a,cAAY,UACZC,iBAAe,MACfC,MAAM,qBAELvmB,EAAImD,IAEP,uBAAGA,GAAG,YAAYsI,UAAU,kBACzBzL,EAAI4B,aAGP,wBAAI6J,UAAU,cAAcf,IAAK5B,GAC/B,wBAAI2C,UAAU,gBACZ,2BAAI,MAEN,4BACE,wCACA,4BACE,wBAAIA,UAAU,aAAd,WACWzL,EAAIyR,QAAQnF,MAEvB,uCAAatM,EAAIyR,QAAQC,MACzB,kCAIJ,4BACE,yCACA,4BACE,wBAAIjG,UAAU,aACX,IADH,WAGwB,MAArBzL,EAAIuM,SAASD,KACVtM,EAAIuM,SAASD,KACb,GALN,KAQA,uCACW,IACa,MAArBtM,EAAIuM,SAASmF,KACV1R,EAAIuM,SAASmF,KACb,IAEN,kCAIJ,sCAMR,uBAAGjG,UAAU,mBAAb,qBAMR,GAGqB,WAAtBvJ,KAAKgU,MAAM1E,QACV,kBAAC,IAAD,CAAKrO,GAAG,wBACN,kBAAC,IAAD,CAAKA,GAAG,eAAewiB,SAAUzjB,KAAK0hB,qBACpC,wBAAIzgB,GAAG,oBAAoBuH,IAAI,KACH,MAAzBxI,KAAKgU,MAAM+N,YACV/hB,KAAKgU,MAAM+N,WAAWlc,OAAS,EAC/B7F,KAAKgU,MAAM+N,WAAW7a,KAAI,SAACpJ,EAAK8I,GAC9B,OACE,wBAAI2C,UAAU,UAAUtI,GAAG,OAAOuH,IAAK5B,GACrC,uBAAG3F,GAAI2F,GAAU9I,EAAI0R,KAArB,KACA,uBAAGjG,UAAU,OAAOzL,EAAIwR,SACxB,uBAAGrO,GAAG,YAAYsI,UAAU,0BACzBzL,EAAI4R,KAEP,uBACEzO,GAAG,YACHsI,UAAU,8BACV4a,cAAY,UACZC,iBAAe,MACfC,MAAM,qBAELvmB,EAAImD,IAEP,uBAAGA,GAAG,YAAYsI,UAAU,kBACzBzL,EAAIM,aAGP,wBAAImL,UAAU,cAAcf,IAAK5B,GAC/B,wBAAI2C,UAAU,sBACZ,2BAAI,MAEN,4BACE,wCACA,4BACE,wBAAIA,UAAU,aAAd,WACWzL,EAAIyR,QAAQnF,MAEvB,uCAAatM,EAAIyR,QAAQC,MACzB,kCAIJ,4BACE,yCACA,4BACE,wBAAIjG,UAAU,aACX,IADH,WAGwB,MAArBzL,EAAIuM,SAASD,KACVtM,EAAIuM,SAASD,KACb,GALN,KAQA,uCACW,IACa,MAArBtM,EAAIuM,SAASmF,KACV1R,EAAIuM,SAASmF,KACb,IAEN,kCAIJ,sCAMR,uBAAGjG,UAAU,mBAAb,qBAMR,IAIJ,uBAAGtI,GAAG,SAASgY,QAASjZ,KAAKihB,YAAagD,MAAO,CAAEC,QAAS,UAC1D,kBAAC,IAAD,CAAiBb,KAAMiB,YAjfjC,GAA+BlP,aAwfhB,QAAItF,G,wOChpBNyU,EAAb,4JACI,WACI,OACI,yBAAKhb,UAAU,eACX,kBAAC,QAAD,CAAMib,kBAAgB,EAACrP,MAAO,SAC1B,kBAACsP,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAKnb,UAAU,cAAc2L,GAAI,GAC7B,yBAAK3L,UAAU,SAASvI,IAAK9D,IAAWmG,gBAAkB,eAC1D,0BAAMkG,UAAU,YAAhB,OAOR,uBAAGA,UAAU,YAAY0P,QAAS0L,IAAiBC,SAC/C,kBAAC,IAAD,CAAiBvB,KAAMwB,IAAcC,MAAM,QAAQb,MAAO,CAAEc,OAAQ,sBAAwBxb,UAAU,aAD1G,oBAfpB,GAAsC6L,aCAzB4P,EAAb,kDACE,WAAYlR,GAAQ,IAAD,8BACjB,cAAMA,IACDE,MAAQ,CACXiR,aAAa,GAEf,EAAKC,iBAAmB,EAAKA,iBAAiBzC,KAAtB,gBALP,EADrB,oDASE,SAAiB0C,GACfnlB,KAAKuU,SAAS,CAAE0Q,YAAaE,MAVjC,oBAaE,WACE,OACE,kBAACC,EAAA,EAAD,CAAQC,GAAG,QAAQ9b,UAAU,iBAC3B,kBAAC6b,EAAA,EAAOE,MAAR,KACE,kBAAC,EAAD,MACA,wBAAI/b,UAAU,YAAd,4BAEF,kBAACgc,EAAA,EAAD,CAAKhc,UAAU,qBACb,yBACEA,UAAU,gBACVvI,IAAK9D,IAAWmG,gBAAkB,WAClC8R,MAAM,cAxBlB,GAAqCC,c,4GCD/BuP,E,WASL,WAAY7Q,GAAQ,IAAD,gCAcnB0R,OAdmB,uCAcV,WAAO1b,EAAU2b,GAAjB,eAAApmB,EAAA,6DACRxB,QAAQC,IAAI,sBADJ,kBAGDwB,IAAc4N,eAHb,uBAIYtD,IAAK4b,OAAO1b,EAAU2b,GAJlC,cAID1c,EAJC,OAKP,EAAK2c,YAAc3c,EALZ,kBAMAA,GANA,yCAQPlL,QAAQC,IAAI,mBAAZ,MARO,kFAdU,6DA2BnB8mB,QA3BmB,sBA2BT,sBAAAvlB,EAAA,+EAEFC,IAAc4N,eAFZ,uBAGFtD,IAAKgb,UAHH,OAIR1S,OAAOC,SAASwT,OAAO,wBAJf,gDAMR9nB,QAAQC,IAAI,sBAAZ,MANQ,yDA3BS,KAsCnB8nB,eAtCmB,uCAsCF,WAAOC,GAAP,SAAAxmB,EAAA,+EAETuK,IAAKgc,eAAeC,GAFX,iCAGR,GAHQ,uCAKfhoB,QAAQC,IAAI,qCAAZ,MALe,mBAMR,GANQ,yDAtCE,2DA0DnBgoB,mBA1DmB,uCA0DE,WAAOD,EAAcE,EAAkBN,GAAvC,SAAApmB,EAAA,+EAEbuK,IAAKoc,qBAAqBH,EAAcE,EAAkBN,GAF7C,iCAGZ,GAHY,uCAKnB5nB,QAAQC,IAAI,iCAAZ,MALmB,iFA1DF,+DAuEnBmoB,eAvEmB,uCAuEF,WAAOC,GAAP,iBAAA7mB,EAAA,6DACZ0J,EAAO,EAAK2c,YAEZS,EAAc,GAHF,SAKVvc,IAAKwc,oBACVrd,EACAmd,GACC5R,MAAK,SAAAvL,GACNlL,QAAQC,IAAI,cACZqoB,EAAcpd,KACZyL,OAAM,SAAArN,GACRtJ,QAAQC,IAAIqJ,MAZG,gCAeTgf,GAfS,2CAvEE,sDAClBE,UAAQC,UAAU,CACjB1c,KAAM,CACL2c,eAAgBC,EAAcD,eAC9BE,OAAQD,EAAcC,OACtBC,WAAYF,EAAcE,WAC1BC,oBAAqBH,EAAcG,uB,6CAVtC,WACC,OAAO3mB,KAAK4mB,c,IALb,SAAgB7d,GACf/I,KAAK4mB,aAAe7d,M,KAkGP,QAAI4b,G,kMCjG8BvP,c,2RCF5ByR,G,mKACpB,WACC,OACC,yBAAK5lB,GAAG,eACP,uBAAM6S,MAAMgT,cAAkB9mB,KAAK8T,Y,GAJEsB,c,SCA5B2R,EAAb,4JACI,WACI,OACI,uBAAKxd,UAAU,qFACX,uBAAKA,UAAU,WACX,sBAAIA,UAAU,sBACV,sBAAIA,UAAU,IACV,uBAAKvI,IAAI,kBAAkBmU,MAAM,WAK7C,uBAAK5L,UAAU,oBAIf,uBAAKA,UAAU,WACX,sBAAIA,UAAU,sBACV,sBAAIA,UAAU,YACV,qBAAGA,UAAU,mDAAmDC,KAAK,KACrE,uBAAKxI,IAAI,eAAemU,MAAM,KAAK5L,UAAU,oBAC7C,uBAAKA,UAAU,qBAAf,KACA,uBAAKvI,IAAI,oBAAoBuI,UAAU,kBAAkB4L,MAAM,iBAtB3F,GAA8CzL,a,iBCIXA,Y,uBCDtBsd,EAAb,4JACI,WACI,IAAIC,EAAe/U,OAAOC,SAASqP,OAAOzf,QAAQ,IAAK,IAMvD,GAJoB,IAAhBklB,IACAA,EAAe/U,OAAOC,SAAS+U,SAASnlB,QAAQ,IAAK,IAAIlC,OAAOyG,MAAM,KAAK,IAG3D,IAAhB2gB,GAAoD,gBAA9BA,EAAa7d,cAAiC,CACpE,IAAI+d,EAAiB1mB,SAASC,eAAe,aACxB,MAAjBymB,IACAA,EAAclD,MAAMC,QAAU,QAGtC,IAAMkD,EAAYlV,OAAOC,SAASC,OAAS,IAAM6U,EAAe,YAChE,OACI,uBAAK1d,UAAU,qFACX,uBAAKA,UAAU,gBACX,sBAAIA,UAAU,sBACV,uBAAKvI,IAAK9D,IAAWmG,gBAAkB,eAAgB8R,MAAM,KAAKuD,OAAO,KAAKnP,UAAU,4BACxF,uBAAKA,UAAU,OACf,uBAAKvI,IAAK9D,IAAWmG,gBAAkB,oBAAqBkG,UAAU,+BAA+BmP,OAAO,KAAKvD,MAAM,UAK/H,uBAAK5L,UAAU,gBACX,sBAAIA,UAAU,sBACV,sBAAIA,UAAU,YAEV,wBAAMtI,GAAG,YAAYsI,UAAU,cAC3B,qBAAGA,UAAU,gCAAgCtI,GAAG,gBAAgBuI,KAAM4d,GAAtE,UAEA,qBAAG7d,UAAU,WAAb,KACA,qBAAG0P,QAAS0L,IAAiBC,QAASrb,UAAU,+CAAhD,oBAlChC,GAA4CG,aCH/B2d,EAAb,uKAEE,WACEppB,IAAMC,SAASmY,aAAY,MAH/B,oBAME,WACI,OACE,gBAACiR,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,2BAClC,gBAAC,EAAD,MACA,uBAAKA,UAAU,QACf,qBAAGA,UAAU,sDAAb,mCAIA,wBAAMA,UAAU,YAGhB,uBAAKA,UAAU,8CACf,yBAAO5L,KAAK,OAAO4L,UAAU,oBAAoBtI,GAAG,qBAAqBsmB,mBAAiB,YAAY5D,YAAY,kBAClH,yBAAO1iB,GAAG,YAAYsI,UAAU,wBAAhC,qCAGF,uBAAKA,UAAU,YACb,uBAAKA,UAAU,yCAEf,0BAAQA,UAAU,eAAetI,GAAG,4BAA4B0iB,YAAY,SAC5E,0BAAQ1hB,MAAM,IAAIulB,aAAa,KAA/B,SACE,0BAAQvlB,MAAM,KAAd,QAMF,uBAAKsH,UAAU,0CACb,yBAAO5L,KAAK,OAAO4L,UAAU,oBAAoBtI,GAAG,gBAAgBsmB,mBAAiB,eAAe5D,YAAY,mBAElH,qBAAGpa,UAAU,iBAAb,kHAOE,uBAAKA,UAAU,6CAEf,uBAAKA,UAAU,yCACb,uBAAKA,UAAU,oCAEf,gBAAC,IAAD,CAAMyL,GAAG,oBAAoBzL,UAAU,WACvC,0BAAQ5L,KAAK,SAASsD,GAAG,oBAEzBsI,UAAU,0CAFV,gBASJ,gBAACke,EAAA,EAAD,WA3DR,GAAwC/d,a,uCCC3Bge,EAAb,4JACI,WACI,OACI,uBAAKne,UAAU,oFACX,uBAAKA,UAAU,WACX,sBAAIA,UAAU,sBACV,uBAAKvI,IAAO9D,IAAWmG,gBAAkB,eAAgB8R,MAAM,KAAKuD,OAAO,KAAKnP,UAAU,oBACtF,uBAAKA,UAAU,OACf,uBAAKvI,IAAI,oBAAoBuI,UAAU,kBAAkBmP,OAAO,KAAKvD,MAAM,UAIvF,uBAAK5L,UAAU,oBAIf,uBAAKA,UAAU,WACX,sBAAIA,UAAU,sBACV,sBAAIA,UAAU,YACV,qBAAGA,UAAU,gCAAgCC,KAAK,KAClD,gBAAC,IAAD,CAAiB6Z,KAAMsE,eApBnD,GAA6Cje,aCEhCke,EAAb,kDACE,WAAY9T,GAAY,IAAD,8BACrB,cAAMA,IAGR+T,gBAJuB,sBAIL,sBAAAxoB,EAAA,0FAJK,EADzB,0CAiBE,WACE,OACE,gBAACioB,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,+BAChC,gBAAC,EAAD,MAEA,uBAAKA,UAAU,cACb,qBAAGA,UAAU,qDAAb,YACA,qBAAGA,UAAU,iDAAb,UAAoE,wBAAMA,UAAU,4BAAhB,SAChE,sBAAIA,UAAU,2BAEpB,uBAAKA,UAAU,OACb,qBAAGA,UAAU,iDAAb,YAGA,uBAAKA,UAAU,mBACb,uBAAKA,UAAU,yBAAyBvI,IAAI,wBAAwBmU,MAAM,KAAK6D,IAAI,sBACnF,uBAAKzP,UAAU,kCACb,qBAAGA,UAAU,iCAAb,iBACA,qBAAGA,UAAU,yCAAb,eARN,YAaA,sBAAIA,UAAU,2BAEd,uBAAKA,UAAU,OACb,qBAAGA,UAAU,iDAAb,oBAEF,wBAAMA,UAAU,YACd,uBAAKA,UAAU,YACb,uBAAKA,UAAU,yCACb,yBAAO5L,KAAK,OAAO4L,UAAU,oBAAoBtI,GAAG,kBAAkBsmB,mBAAiB,gBAAgB5D,YAAY,gBAGrH,uBAAKpa,UAAU,0CACb,yBAAO5L,KAAK,OAAO4L,UAAU,oBAAoBtI,GAAG,gBAAgBsmB,mBAAiB,eAAe5D,YAAY,gBAKpH,uBAAKpa,UAAU,8CACb,0BAAQA,UAAU,eAAetI,GAAG,4BAA4B0iB,YAAY,WAC5E,0BAAQ6D,aAAa,KAArB,WACE,yCAKJ,uBAAKje,UAAU,8CACb,yBAAO5L,KAAK,OAAO4L,UAAU,oBAAoBtI,GAAG,qBAAqBsmB,mBAAiB,oBAAoB5D,YAAY,oBAG5H,uBAAKpa,UAAU,8CACb,yBAAO5L,KAAK,OAAO4L,UAAU,oBAAoBtI,GAAG,WAAWsmB,mBAAiB,oBAAoB5D,YAAY,0BAGlH,uBAAKpa,UAAU,8CACb,yBAAO5L,KAAK,OAAO4L,UAAU,oBAAoBtI,GAAG,WAAWsmB,mBAAiB,oBAAoB5D,YAAY,UAGlH,uBAAKpa,UAAU,YACb,uBAAKA,UAAU,yCACb,yBAAO5L,KAAK,OAAO4L,UAAU,oBAAoBtI,GAAG,kBAAkBsmB,mBAAiB,gBAAgB5D,YAAY,WAGrH,uBAAKpa,UAAU,0CACb,yBAAO5L,KAAK,OAAO4L,UAAU,oBAAoBtI,GAAG,gBAAgBsmB,mBAAiB,eAAe5D,YAAY,eAMpH,uBAAKpa,UAAU,YACb,uBAAKA,UAAU,wCACb,yBAAO5L,KAAK,WAAW4L,UAAU,wBAAwBtI,GAAG,kBAC5D,yBAAOsI,UAAU,mBAAmBma,QAAQ,iBAA5C,2BAUN,sBAAIna,UAAU,2BAEd,uBAAKA,UAAU,OACb,qBAAGA,UAAU,iDAAb,gCAGF,wBAAMA,UAAU,YAGd,uBAAKA,UAAU,8CACb,yBAAO5L,KAAK,OAAO4L,UAAU,oBAAoBtI,GAAG,qBAAqBsmB,mBAAiB,YAAY5D,YAAY,kBAClH,yBAAO1iB,GAAG,YAAYsI,UAAU,wBAAhC,qCAGF,uBAAKA,UAAU,YACb,uBAAKA,UAAU,yCAEf,0BAAQA,UAAU,eAAetI,GAAG,4BAA4B0iB,YAAY,SAC5E,0BAAQ6D,aAAa,KAArB,SACE,sCAMF,uBAAKje,UAAU,0CACb,yBAAO5L,KAAK,OAAO4L,UAAU,oBAAoBtI,GAAG,gBAAgBsmB,mBAAiB,eAAe5D,YAAY,mBAElH,qBAAGpa,UAAU,iBAAb,kHAMJ,sBAAIA,UAAU,2BAEd,wBAAMA,UAAU,YAId,uBAAKA,UAAU,YACb,uBAAKA,UAAU,wCACb,yBAAO5L,KAAK,WAAW4L,UAAU,wBAAwBtI,GAAG,kBAC5D,yBAAOsI,UAAU,mBAAmBma,QAAQ,iBAA5C,qEAON,qBAAGna,UAAU,iBAAb,4HAEA,uBAAKA,UAAU,6CAEb,uBAAKA,UAAU,yCACb,uBAAKA,UAAU,oCAEb,gBAAC,IAAD,CAAMyL,GAAG,wBAAwBzL,UAAU,WACzC,0BAAQ5L,KAAK,SAASsb,QAASjZ,KAAK6nB,gBAAiBte,UAAU,0CAA/D,gBASR,gBAACke,EAAA,EAAD,WAzKR,GAA4C/d,a,wBCJ/Boe,EAAb,kDACE,WAAYhU,GAAa,IAAD,8BACtB,cAAMA,IACDE,MAAQ,CACX+T,UAAU,EACV1d,UAAU,GAEZ,EAAK2d,iBAAmB,EAAKA,iBAAiBvF,KAAtB,gBANF,EAD1B,oDAUE,WAC8B,IAAxBrgB,IAAE,aAAake,MACjBtgB,KAAKuU,SAAS,CAAEwT,UAAU,IAE1B/nB,KAAKuU,SAAS,CAAElK,UAAU,MAdhC,oBAkBE,WACE,OACE,yBAAKpJ,GAAG,mBACLjB,KAAKgU,MAAM3J,SAAW,kBAAC,IAAD,CAAU2K,GAAG,sBAAyB,KAE7D,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,2BAChC,kBAAC,EAAD,MACA,yBAAKA,UAAU,QACb,uBAAGA,UAAU,sDAAb,0BAAyF,6BAAzF,sBAIF,0BAAMA,UAAU,WAAWtI,GAAG,eAC5B,yBAAKsI,UAAU,+CACb,2BAAO5L,KAAK,WAAW4L,UAAU,gCAC/BtI,GAAG,WAAW2M,KAAK,WAAW2Z,mBAAiB,oBAAoB5D,YAAY,YAEhF3jB,KAAKgU,MAAM+T,SACV,2BAAOxe,UAAU,kBAAjB,qBACE,OAKR,yBAAKA,UAAU,4BACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCAEb,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAKgoB,iBAAkB/mB,GAAG,gBACzDsI,UAAU,0CADV,eAON,kBAACke,EAAA,EAAD,YArDV,GAAoC/d,IAAM0L,W,mDCK7B6S,EAAb,kDACE,WAAYnU,GAAQ,IAAD,8BACjB,cAAMA,IACDE,MAAQ,CACXkU,YAAY,GAHG,EADrB,uDAQE,WAEE,IAAI7T,EAEJ,IACEmE,IAAY/X,SAASgY,cAAc,iBAAkB,CACnDtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GAEdtE,GADAA,EAAUsE,EAAOC,aACC7W,QAAQ,2BAA4B,OAE1DlE,QAAQC,IAAIR,IAAWE,kBACR6X,YAAS/X,IAAWE,iBAAkB,eAAgB6W,GACrE,MAAOzR,OAvBb,+BA2BE,WACE3E,IAAMC,SAASmY,aAAY,MA5B/B,oBA+BE,WACE,OACE,yBAAKpV,GAAG,gBACN,kBAACqmB,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,+BAChC,kBAAC,EAAD,MAEA,yBAAKA,UAAU,cACb,uBAAGA,UAAU,qDAAb,YACA,uBAAGA,UAAU,iDAAb,UAAoE,0BAAMA,UAAU,4BAAhB,SAChE,wBAAIA,UAAU,2BAEpB,yBAAKA,UAAU,OACb,uBAAGA,UAAU,mEAAb,YAEA,yBAAKA,UAAU,SACb,yBAAKA,UAAU,qBAEb,yBAAKA,UAAU,yBAAyBvI,IAAI,wBAAwBmU,MAAM,KAAK6D,IAAI,sBACnF,yBAAKzP,UAAU,oDACb,uBAAGA,UAAU,iCAAb,iBACA,uBAAGA,UAAU,yCAAb,aACA,uBAAGA,UAAU,kEACX,kBAAC,IAAD,CAAiB8Z,KAAM8E,WAQjC,wBAAI5e,UAAU,2BACd,yBAAKA,UAAU,OACb,uBAAGA,UAAU,mEAAb,WAEA,yBAAKA,UAAU,SACb,yBAAKA,UAAU,qBAEb,yBAAKA,UAAU,oDACb,uBAAGA,UAAU,iCAAb,WACA,uBAAGA,UAAU,yCAAb,+BACA,uBAAGA,UAAU,kEACX,kBAAC,IAAD,CAAiB8Z,KAAM8E,WAQjC,wBAAI5e,UAAU,2BAEd,0BAAMA,UAAU,aAGhB,yBAAKA,UAAU,6CAEb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCAEb,uBAAGC,KAAK,gCACN,4BAAQ7L,KAAK,SAASsb,QAASjZ,KAAKooB,oBAAqB7e,UAAU,0CAAnE,eAOR,kBAACke,EAAA,EAAD,YAlGV,GAA6CrS,a,oECHzCiT,EAAS,GACTC,EAAM,GAyGK,M,iDArGdC,kB,uCAAoB,WAAOrQ,GAAP,mCAAA7Y,EAAA,yDAAiB+B,EAAjB,+BAA2B,GAC1CqY,EAAgB,GAAIpb,EAAQ,GAAImqB,EAAiB,GAGtC,IAAXpnB,EAJe,iCAKM9B,IAAc+S,wBAAwBjR,GAL5C,OAKd1B,EALc,OAOlBrB,EAAkC,MAA1BqB,EAAYE,WAAqBF,EAAYE,WAAa,GAClE4oB,EAA0C,MAAzB9oB,EAAYK,UAAoBL,EAAYK,UAAY,GARvD,wBAYlB1B,EAAQJ,IAAMkB,WAAWC,QAAQf,MACjCmqB,EAAiBvqB,IAAMkB,WAAWC,QAAQ1B,SAbxB,WAgBG,IAAlB8qB,GAA0C,MAAlBA,EAhBT,iBAiBlBH,EAAS7lB,KAAK0B,MAAMskB,GAjBF,+BAmBlB3qB,QAAQC,IAAI,WAnBM,UAoBZ,EAAK2qB,kBAAkBpqB,GApBX,yBAsBG,EAAKqqB,wBAAwBxQ,GAtBhC,eAsBnBuB,EAtBmB,yBAuBZA,GAvBY,4C,2DA0BpBiP,wB,uCAA0B,WAAOxQ,GAAP,iBAAA7Y,EAAA,yDACrBoa,EAAgB,GAEJ,MAAZvB,EAHqB,uBAIxByQ,MAASC,SAAWD,MAASE,iBAJL,SAOlBF,MAASG,WAAWT,GACzB/T,MAAK,SAAUrO,GACd0iB,MAASC,SAAW3iB,KATE,aAcb,KAFPuC,EAAMmgB,MAASC,SAASG,IAAI,CAAEC,IAAK,UAEf,IAAPV,IAChB9f,EAAMmgB,MAASC,SAASK,IAAIX,IAfL,SAmBlBK,MAASO,cAAc,CAAEC,OAAQ,WAAa3gB,GACnD4gB,OAAO5mB,KAAKC,UAAUyV,IACtBmR,QACA/U,MAAK,SAAUrO,GACdwT,EAAgBxT,KAvBM,gCA0BlBwT,GA1BkB,4C,2DA6B1B6P,oB,uCAAsB,WAAOpR,GAAP,mBAAA7Y,EAAA,6DACfuB,EAAM1D,IAAWsG,kBACnB+lB,EAAoB,CACvB,eAAgB,iCAChB,gBAAiB,WACjBC,OAAQ,iCACRC,cAAe,mQACf,SAAU,WACV,aAAc,8bARM,SAWAxf,MAAMrJ,EAAK,CAC/BsJ,OAAQ,OACRC,QAASof,EACTnf,KAAM5H,KAAKC,UAAUyV,KAdD,cAWjB7N,EAXiB,gBAgBRA,EAASqf,OAhBD,mF,2DAqBtBjB,kB,uCAAoB,WAAOpqB,GAAP,SAAAgB,EAAA,2DACXhB,EADW,cAEbU,UAAQ0d,aAFK,SAOb1d,UAAQC,eAPK,SAYbD,UAAQke,eAZK,yBAGjBoL,EAAS3K,gBACT4K,EAAM,8CAJW,mCAQjBD,EAAS7K,kBACT8K,EAAM,8CATW,mCAajBD,EAAS1K,oBACT2K,EAAM,0FAdW,oCAkBjBD,EAASzK,oBACT0K,EAAM,0FAnBW,iE,uDCzEjBvkB,EAAe,GAEN4lB,EAAb,kDACE,WAAY7V,GAAQ,IAAD,8BACjB,cAAMA,IAyBR+T,gBA1BmB,sBA0BD,gDAAAxoB,EAAA,6DACZuqB,EAAaxnB,IAAE,oBAAoBkI,OACnCuf,EAAaznB,IAAE,oBAAoBkI,OACnCwf,EAAgBD,EAAWvjB,MAAM,KAEjCyjB,EAAUD,EAAc,GACxBE,EAASF,EAAc,GAGvBG,EAAa7nB,IAAE,mBAAmBkI,OATtB,SAWW9L,IAAqB+F,uBAAuB,cAXvD,QAWZiV,EAXY,QAYD/T,kBAAoBnI,IAAWE,iBAE9C,IAIEgb,IAAY/X,SAASgY,cAAc,oBAAqB,CACtDtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GAChB9a,QAAQC,IAAI6a,GAIZtE,GADAA,EAAUsE,EAAOC,aACC7W,QAAQ,2BAA4B,OAExD,MAAOa,IA7BO,OAiChB3E,IAAMC,SAASmY,aAAY,KAEvBqD,EAAO,IAENC,qBAAuBiQ,EAAW7nB,QAAQ,MAAO,IACtD2X,EAAKG,mBAAqBkQ,EAC1BrQ,EAAKI,kBAAoBkQ,EACzBtQ,EAAKE,iBAAmBqQ,EAxCR,UA0CUC,EAAe3B,kBAAkB7O,GA1C3C,eA4CK,OAFjBD,EA1CY,SA4C8B,IAAjBA,EAC3BD,EAAeC,cAAgBA,EAE/BD,EAAeE,KAAOA,EAExB7b,QAAQC,IAAI0b,GAjDI,UAoDd3b,QAAQC,IAAI,0BApDE,UAqDOoU,OAAOoM,YAAY6L,WAAW3Q,GArDrC,QAqDVnP,EArDU,OAsDdxM,QAAQC,IAAIuM,GAEZpM,IAAMC,SAASwW,YAASrK,EAAS+f,aAEjC/U,YAAS/X,IAAWE,iBAAkB,aAAc6W,GACpD,EAAK0F,SAAS1P,GA3DA,mDA8DdxM,QAAQC,IAAI,KAAMusB,aAClB,EAAK9V,SAAS,CACZvC,aAAa,EACbsY,aAAoC,MAArB,KAAMD,YAAuB,KAAMA,YAAc,iCAGlEpsB,IAAMC,SAASmY,aAAY,IApEb,2DA1BC,EAmGnBkU,gBAAkB,SAAAC,GAChB,IAAI7sB,EAAO6sB,EAAc/gB,OAAOxH,MAGhC,OAFApE,QAAQC,IAAIH,GAEJA,GACN,IAAK,cACH,EAAK4W,SAAS,CAAEkW,aAAa,EAAMC,gBAAgB,EAAOC,eAAe,EAAOC,iBAAiB,EAAOC,gBAAgB,IACxH,MAEF,IAAK,QACH,EAAKtW,SAAS,CAAEmW,gBAAgB,EAAMD,aAAa,EAAOE,eAAe,EAAOC,iBAAiB,EAAOC,gBAAgB,IACxH,MAEF,IAAK,gBACH,EAAKtW,SAAS,CAAEoW,eAAe,EAAMF,aAAa,EAAOC,gBAAgB,EAAOE,iBAAiB,EAAOC,gBAAgB,IACxH,MAEF,IAAK,iBACH,EAAKtW,SAAS,CAAEoW,eAAe,EAAOF,aAAa,EAAOC,gBAAgB,EAAOG,gBAAgB,EAAMD,iBAAiB,MArH3G,EA8HnBE,eA9HmB,sBA8HF,sBAAAzrB,EAAA,sDACfpB,IAAMC,SAASmY,aAAY,IAE3B,EAAK0D,SAAS,MAHC,2CA9HE,EAqInBA,SArImB,uCAqIR,WAAOgR,GAAP,2CAAA1rB,EAAA,sEACYb,IAAqB+F,uBAAuB,YADxD,UACLwV,EADK,OAETlc,QAAQC,IAAIic,GAFH,EAKP,EAAKjG,MAAM3B,UAAY,EAAK2B,MAAM3B,SAAS6B,OACzC,EAAKF,MAAM3B,SAAS6B,MAAM3J,SAC1B,EAAKyJ,MACL,CAAE3B,SAAU,CAAE6B,MAAO,CAAE3J,SAAU,CAAE2gB,cAAe,SAR7C,EAID7Y,SAAY6B,MAAS3J,SAAY2gB,cAQf,MAAtBD,EAZK,iBAaPhR,EAAStD,iBAAmBsU,EAAmBtU,iBAC/CsD,EAASkR,iBAAmBF,EAAmBX,WAAWa,iBAdnD,+BAiBHrB,EAAaxnB,IAAE,oBAAoBkI,OACnCuf,EAAaznB,IAAE,oBAAoBkI,OACnCwf,EAAgBD,EAAWvjB,MAAM,KACjCyjB,EAAUD,EAAc,GACxBE,EAASF,EAAc,GACvBG,EAAa7nB,IAAE,mBAAmBkI,QAElCoP,EAAO,IAENC,qBAAuBiQ,EAAW7nB,QAAQ,MAAO,IACtD2X,EAAKG,mBAAqBkQ,EAC1BrQ,EAAKI,kBAAoBkQ,EACzBtQ,EAAKE,iBAAmBqQ,EA7BjB,UA+BmBC,EAAe3B,kBAAkB7O,GA/BpD,QAiCc,OAFjBD,EA/BG,SAiCuC,IAAjBA,IAC3BM,EAASN,cAAgBA,GAG3B5b,QAAQC,IAAI,2BACZD,QAAQC,IAAIic,GAtCL,eAyCTA,EAASmR,eAAiB,WAC1BnR,EAAStU,kBAAoBnI,IAAWE,iBAEpCyE,EAAQ,IACqB,IAA7B,EAAK+R,MAAM2W,iBACTQ,EAAY1qB,SAASM,cAAc,WAC7BqqB,aAAa,KAAM,aAC7BD,EAAUC,aAAa,OAAQ,aAC/BD,EAAUC,aAAa,MAAO,IAC9BD,EAAUlH,MAAMoH,OAAS,IACzBF,EAAUlH,MAAMrB,SAAW,WAC3BuI,EAAUlH,MAAMC,QAAU,QAC1BiH,EAAUlH,MAAM9O,MAAQ,MACxBgW,EAAUlH,MAAMvL,OAAS,OACzByS,EAAUlH,MAAMqH,OAAS,SACzB7qB,SAAS2J,KAAKmhB,MAAMJ,EAAW1qB,SAAS2J,MACxC2P,EAAS5Q,UAAY1I,SAASC,eAAe,aAAaiqB,gBAG1B,IAA9B,EAAK3W,MAAM0W,iBACbc,EAAYtZ,OAAOiT,KAAK,eACxBpL,EAAS5Q,UAAYqiB,GAIvB3tB,QAAQC,IAAIic,GAlEH,oBAsEDzc,IAAWuB,gBAAgBoD,EAAO8X,EAAStD,iBAAkB,MAtE5D,yBAwEcvE,OAAOoM,YAAYvE,SAASA,GAxE1C,QAwEH1P,EAxEG,OAyEPxM,QAAQC,IAAIuM,GAER,EAAK2J,MAAM0W,gBACbc,EAAUvT,QAGR,EAAKjE,MAAM2W,eAEA,OADTc,EAAQhrB,SAASC,eAAe,eAElC+qB,EAAMC,WAAWpqB,YAAYmqB,GAI7BphB,EAAS2gB,eAA2C,YAA1B3gB,EAAS2gB,eACrC/sB,IAAMC,SAASmY,aAAY,IAE3B,EAAK9B,SAAS,CACZoX,eAAe,EACfC,mBAAmB,EACnBZ,cAAe3gB,EAAS2gB,kBAI1B/sB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CAAEoX,eAAe,EAAO3Z,aAAa,EAAMsY,aAAcjgB,EAASzH,MAAMipB,oBAjGjF,mDAuGP,EAAKtX,SAAS,CACZvC,aAAa,EACbsY,aAAc,KAAMD,cAGlB,EAAKrW,MAAM0W,gBACbc,EAAUvT,QAGR,EAAKjE,MAAM2W,gBACTc,EAAQhrB,SAASC,eAAe,cAC9BgrB,WAAWpqB,YAAYmqB,GAG/BxtB,IAAMC,SAASmY,aAAY,IArHpB,2DArIQ,sDAEjB,EAAKrC,MAAQ,CACX8X,gBAAiB,GACjBC,YAAa,GACbC,WAAY,GACZC,MAAO,GACPC,uBAAuB,EACvBC,2BAA2B,EAC3BC,sBAAsB,EACtBT,eAAe,EACfrB,aAAc,GACdvmB,aAAc,GACdX,UAAWlG,IAAWkG,UACtBipB,eAAe,EACf5B,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,iBAAiB,EACjBC,gBAAgB,EAChByB,aAAc,IApBC,EADrB,qDAgQE,WACEruB,IAAMC,SAASmY,aAAY,IAEP,KADpBtS,EAAezG,IAAWqE,eACgB,aAAhBoC,GAA+C,aAAhBA,IACvDlG,QAAQC,IAAI,SACZkC,KAAKuU,SAAS,CAAEoW,eAAe,EAAOF,aAAa,EAAOC,gBAAgB,EAAOE,iBAAiB,EAAOC,gBAAgB,OArQ/H,oBA4QE,WACE,OACE,yBAAK5pB,GAAG,mBAEJjB,KAAKgU,MAAM2X,cAAiB,kBAAC,IAAD,CAAU3W,GAAG,iCAAoC,KAE/E,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,2BAChC,kBAAC,EAAD,MAEA,wBAAIA,UAAU,2CAAd,6BAAkF,8BAClF,uBAAGA,UAAU,qDAAb,oBAEA,yBAAKA,UAAU,0CACb,uBAAGA,UAAU,sCAAb,YACA,uBAAGA,UAAU,6DAAb,mBAEF,yBAAKA,UAAU,gCACb,yBAAKA,UAAU,oBACb,yBAAKA,UAAU,UACb,uBAAGA,UAAU,qCAAb,6BAIJ,0BAAMA,UAAU,wBAAwBtI,GAAG,kBACzC,yBAAKsI,UAAU,2CAIb,yBAAKA,UAAU,yCAAyCgjB,gBAAgB,OAAOC,kBAAgB,KAC7F5e,KAAK,kBACL3M,GAAG,kBAAkBsmB,mBAAiB,iBAAiB5D,YAAY,cACnE8I,aAAa,MACbxqB,MAAOjC,KAAKgU,MAAM8X,kBAInB9rB,KAAKgU,MAAMkY,sBACV,2BAAO3iB,UAAU,kBAAjB,4BACE,MAGN,yBAAKA,UAAU,sBACb,yBAAKA,UAAU,uCAEb,yBAAKA,UAAU,yCAAyCgjB,gBAAgB,OAAOC,kBAAgB,KAC7FvqB,MAAOjC,KAAKgU,MAAM0Y,gBAClB9e,KAAK,kBAAkB3M,GAAG,kBAAkBsmB,mBAAiB,kBAC7D5D,YAAY,YAGb3jB,KAAKgU,MAAMmY,0BACV,2BAAO5iB,UAAU,kBAAjB,8CACE,MAGN,yBAAKA,UAAU,sCAGb,yBAAKA,UAAU,yCAAyCgjB,gBAAgB,OAAOC,kBAAgB,KAC7FvqB,MAAOjC,KAAKgU,MAAM2Y,eAClB/e,KAAK,wBAAwB3M,GAAG,iBAChCsmB,mBAAiB,gBAAgB5D,YAAY,kBAG9C3jB,KAAKgU,MAAMoY,qBACV,2BAAO7iB,UAAU,kBAAjB,2BACE,MAGLvJ,KAAKgU,MAAMhC,YACV,2BAAOzI,UAAU,kBAAkBvJ,KAAKgU,MAAMsW,cAC5C,OAKR,kBAACsC,EAAA,EAAD,CAAOrjB,UAAU,mDAAjB,kBAGA,kBAACmb,EAAA,EAAD,CAAKnB,GAAI,GAAIsJ,MAAM,iBAAiB5I,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IACtE,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACV,kBAACC,EAAA,EAAD,CACErvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,gBACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAsC,IAA7BxjB,KAAKgU,MAAM2W,gBACnB,IAPL,sBAYF,kBAACjG,EAAA,EAAD,CAAKnB,GAAI,GAAIsJ,MAAM,iBAAiB5I,MAAO,CAAE6I,UAAW,SAAUxB,OAAQ,IACxE,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACV,kBAACC,EAAA,EAAD,CACEzjB,UAAU,kBACV5L,KAAK,QACLiQ,KAAK,YACL3L,MAAM,cACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAoC,IAA3BxjB,KAAKgU,MAAMyW,cACnB,IARL,kBAaF,kBAAC/F,EAAA,EAAD,CAAKnB,GAAI,GAAI0J,gBAAc,EAAChJ,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IAC9D,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACV,kBAACC,EAAA,EAAD,CACErvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,QACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAuC,IAA9BxjB,KAAKgU,MAAM0W,iBACnB,IAPL,oBAYgB,aAAhB3mB,GAA+C,aAAhBA,EAC/B,kBAAC2gB,EAAA,EAAD,CAAKnB,GAAI,GAAI0J,gBAAc,EAAChJ,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IAC9D,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACV,kBAACC,EAAA,EAAD,CACErvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,iBACNwhB,SAAUzjB,KAAKuqB,gBACf2C,OAAQltB,KAAKmtB,qBACb3J,SAAuC,IAA9BxjB,KAAKgU,MAAM6W,iBACnB,IARL,sBAWO,KAGX,kBAACnG,EAAA,EAAD,CAAKnB,GAAI,GAAIU,MAAO,CAAE6I,UAAW,SAC9B9sB,KAAKgU,MAAM4W,gBACV,2BAAOrhB,UAAU,kBACdvJ,KAAKgU,MAAMsY,cAEZ,MAGN,yBAAK/iB,UAAU,6BACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,6CACb,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAK6nB,gBAAiB5mB,GAAG,iBACtDsI,UAAU,qDADZ,aAIF,yBAAKA,UAAU,+DACb,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAK8qB,eAAgB7pB,GAAG,oBACrDsI,UAAU,0CADZ,uBAQR,kBAACke,EAAA,EAAD,YA3aV,GAAqCrS,aCTxBgY,EAAb,uKAEE,WACE,IAAInG,EAAe/U,OAAOC,SAASqP,OAAOzf,QAAQ,IAAK,IAQvD,GANoB,IAAhBklB,IACFA,EAAe/U,OAAOC,SAAS+U,SAASnlB,QAAQ,IAAK,IAAIlC,OAAOyG,MAAM,KAAK,IAG7EzI,QAAQC,IAAImpB,GAEQ,IAAhBA,GAAoD,gBAA9BA,EAAa7d,cAAiC,CACtE,IAAI+d,EAAiB1mB,SAASC,eAAe,aACzC2sB,EAAe5sB,SAASC,eAAe,QAExB,MAAf2sB,IACFA,EAAYpJ,MAAMC,QAAU,QAET,MAAjBiD,IACFA,EAAclD,MAAMC,QAAU,WAnBtC,oBAwBE,WAEE,OACE,uBAAK3a,UAAU,iEACb,uBAAKA,UAAU,WACb,sBAAIA,UAAU,sBAEZ,0BACE,uBAAKA,UAAU,UAAUvI,IAAK9D,IAAWmG,gBAAkB,eAAgB8R,MAAM,UAKvF,uBAAK5L,UAAU,mBAEb,qBAAGA,UAAU,6CAA6CC,KAAK,KAA/D,aAGF,uBAAKD,UAAU,WACb,sBAAIA,UAAU,sBACZ,sBAAIA,UAAU,YAEZ,wBAAMA,UAAU,cACd,qBAAGA,UAAU,gDAAgDC,KAAK,KAChE,gBAAC,IAAD,CAAiB6Z,KAAMiK,MACvB,wBAAM/jB,UAAU,uBAxBZ,aAzBtB,GAA2CG,a,QCKvC6jB,IAAe,EAENC,GAAb,kDACE,WAAY1Z,GAAQ,IAAD,8BACjB,cAAMA,IAoCR2Z,oBArCmB,sBAqCG,8BAAApuB,EAAA,yDAEO,YAAvBoB,SAASitB,WAFO,uBAGlB,EAAKnZ,SAAS,CAAEoZ,YAAY,EAAMrD,aAAc,iCAChDzsB,QAAQC,IAAI,qBAJM,0BAOlB,EAAKyW,SAAS,CAAEoZ,YAAY,IAPV,OAWpB,IAEEnV,IAAY/X,SAASgY,cAAc,oBAAqB,CACtDtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GAEdtE,GADAA,EAAUsE,EAAOC,aACC7W,QAAQ,2BAA4B,OAE1D,MAAOa,GAEP/E,QAAQC,IAAI8E,GAvBM,iBA0BapE,IAAqB+F,uBAAuB,QA1BzD,eA0BhBqpB,EA1BgB,OA4BpB3vB,IAAMC,SAASmY,aAAY,IAE3BxY,QAAQC,IAAI8vB,GA9BQ,oBAiCZ1b,OAAOoM,YAAYuP,KACvBD,GAlCgB,yBAqCY1b,OAAOoM,YAAYwP,eArC/B,QAwCkB,GAxClB,OAwCIC,YAEpB9vB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,gDAIhBjV,YAAS/X,IAAWE,iBAAkB,OAAQ6W,GAC9C,EAAKE,SAAS,CAAEyZ,gBAAgB,IAChC/vB,IAAMC,SAASmY,aAAY,KAnDX,mDAsDlBpY,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,KAAMD,cAzDJ,2DArCH,EAmGnB4D,cAnGmB,uCAmGH,WAAOlO,GAAP,qBAAA1gB,EAAA,sDACV6uB,EAAanO,EAAMtW,OAAO0kB,YAC1BC,EAAUrO,EAAMtW,OAAOxI,GACvBotB,EAAiBtO,EAAMtW,OAAOmW,QAAQ,MAAMjf,aAAa,aACzDiG,EAAUmZ,EAAMtW,OAAOmW,QAAQ,MAAMjf,aAAa,WAEtDnC,IAAqB+I,2BAA2B6mB,EAASF,EAAYG,EAAgBznB,GANvE,2CAnGG,wDA6HnB0nB,gBA7HmB,uCA6HD,WAAOvO,GAAP,SAAA1gB,EAAA,sDAChBoB,SAASC,eAAe,WAAWujB,MAAMC,QAAU,OACnDzjB,SAASC,eAAe,gBAAgBujB,MAAMC,QAAU,OAFxC,2CA7HC,wDAkInBqK,iBAlImB,sBAkIA,4BAAAlvB,EAAA,sEACSb,IAAqB2F,+BAD9B,OACbqqB,EADa,OAGjB3wB,QAAQC,IAAI0wB,GAES,MAAjBA,GAAyBA,EAAc3oB,OAAS,GAClD,EAAK0O,SAAS,CAAEka,kBAAmBD,IACnC/tB,SAASC,eAAe,WAAWujB,MAAMC,QAAU,SAEnDzjB,SAASC,eAAe,gBAAgBujB,MAAMC,QAAU,QATzC,2CAlIA,EA+InBwK,kBA/ImB,uCA+IC,WAAO3O,GAAP,eAAA1gB,EAAA,sDAClB0gB,EAAMtW,OAAOklB,UAAUhP,OAAO,WAC1BiP,EAAU7O,EAAMtW,OAAOolB,oBAEf5K,MAAM6K,UAChBF,EAAQ3K,MAAM6K,UAAY,KAE1BF,EAAQ3K,MAAM6K,UAAYF,EAAQG,aAAe,KAPjC,2CA/ID,sDAEjBlxB,QAAQC,IAAI,aAEZ,EAAKkxB,qBAGL,EAAKhb,MAAQ,CACXga,gBAAgB,EAChBiB,gBAAiB,GACjBjd,aAAa,EACbsY,aAAc,GACdmE,kBAAmB,GACnBd,YAAY,GAbG,EADrB,sDAmBE,WAKE,IAJA,IAAI/sB,EAAMsR,OAAOC,SAAS3I,KAAK7B,MAAMuK,OAAOC,SAAS3I,KAAK4E,QAAQ,KAAO,GAAG9H,MAAM,KAC9E5I,EAAW,GACXC,EAAO,SAEFqQ,EAAI,EAAGA,EAAIpN,EAAIiF,OAAQmI,IAAK,CACnC,IAAIkhB,EAAWtuB,EAAIoN,GAAG1H,MAAM,KACT,QAAf4oB,EAAS,KACXxxB,EAAWwxB,EAAS,GACpB3B,IAAe,GAEE,QAAf2B,EAAS,KACXvxB,EAAOuxB,EAAS,IAIpB5xB,IAAWG,eAAeC,EAAUC,KAnCxC,+BA6GE,WACEM,IAAMC,SAASmY,aAAY,IAGzB5V,SAASC,eAAe,oBAAoBujB,MAAMC,QADhDqJ,GAC0D,QAEA,OAG9D9sB,SAAS0uB,mBAAqB,WACA,aAAxB1uB,SAASitB,aACX1tB,KAAKuU,SAAS,CAAEoZ,YAAY,IAC5B9vB,QAAQC,IAAI,0BAEd2kB,KAAKziB,QA3HX,oBA2JE,WAAU,IAAD,OACP,OACE,yBAAKiB,GAAG,mBAELjB,KAAKgU,MAAMga,eAAiB,kBAAC,IAAD,CAAUhZ,GAAG,6BAAgC,KAC1E,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,gDAChC,kBAAC,EAAD,MAEA,wBAAIA,UAAU,qEAAd,aAAgG,wBAAIA,UAAU,gBAC9G,yBAAKA,UAAU,YACb,yBAAKA,UAAU,oEACb,wBAAIA,UAAU,+CAAd,UACA,yBAAKA,UAAU,YACb,yBAAKA,UAAU,SACb,yBAAKvI,IAAK9D,IAAWmG,gBAAkB,gBAAiB8R,MAAM,MAAM5L,UAAU,6BAEhF,yBAAKA,UAAU,SACb,uBAAGA,UAAU,wDAAb,+BAEA,uBAAGA,UAAU,4DACX,0BAAMA,UAAU,iBAAhB,QADF,IAC8C,0BAAMA,UAAU,kBAAhB,MAC9C,uBAAGA,UAAU,4DACX,0BAAMA,UAAU,iBAAhB,YADF,IACkD,0BAAMA,UAAU,uBAMxE,yBAAKA,UAAU,8CACb,4BAAQ5L,KAAK,SAASsD,GAAG,mBAAmBsI,UAAU,mBACpD0P,QAASjZ,KAAKuuB,kBADhB,cAEA,wBAAIhlB,UAAU,wBACd,yBAAKA,UAAU,+EACb,yBAAKA,UAAU,sBAAf,YACA,yBAAKA,UAAU,aAAf,WAGF,yBAAKA,UAAU,+EACb,yBAAKA,UAAU,qBAAf,wBAAwD,6BAAxD,YACA,yBAAKA,UAAU,aAAf,SAGF,yBAAKA,UAAU,2FACb,yBAAKA,UAAU,qBAAf,SACA,yBAAKA,UAAU,aAAf,aAKN,wBAAIA,UAAU,gBACd,yBAAKA,UAAU,OACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCACb,4BAAQ5L,KAAK,SAASsD,GAAG,iBAAiBsI,UAAU,kCAClD0P,QAASjZ,KAAKytB,qBADhB,iBAGCztB,KAAKgU,MAAMhC,aAAehS,KAAKgU,MAAM2Z,WACpC,2BAAOpkB,UAAU,kBAAmBvJ,KAAKgU,MAAMsW,cAC7C,KAEJ,yBAAKtpB,IAAK9D,IAAWmG,gBAAkB,oBAAqBkG,UAAU,+BAA+B4L,MAAM,QAE3G,yBAAKlU,GAAG,gBACN,yBAAKA,GAAG,UAAUsI,UAAU,SAC1B,yBAAKA,UAAU,iBACb,0BAAMA,UAAU,QAAQ0P,QAASjZ,KAAKsuB,iBAAtC,QACA,uDAGEtuB,KAAKgU,MAAMya,kBAAkBvnB,KAAI,SAACV,EAASwH,GACzC,OACE,yBAAKxF,IAAKwF,GACR,4BAAQrQ,KAAK,SAASsb,QAAS,EAAKyV,kBAAmBnlB,UAAU,6BAA6B/C,EAAQH,WAEtG,yBAAKkD,UAAU,WACb,+BACE,+BACE,4BACE,0CACA,wBAAIA,UAAU,SAAd,mBAIF/C,EAAQD,OAAOW,KAAI,SAACmC,EAAOzC,GACzB,OACE,wBAAI4B,IAAK5B,GACP,4BAAKyC,EAAM3C,eACX,wBAAI6C,UAAU,QAAQ6lB,UAAW5oB,EAAQH,UAAWO,QAASoH,GAC3D,yBAAKzE,UAAU,kFAAkF8lB,gBAAgB,OAAO7C,kBAAgB,KACtI5e,KAAMvE,EAAM3C,cAAezF,GAAIoI,EAAM3C,cAAe6gB,mBAAiB,kBACrE+H,OAAQ,EAAKrB,eAFf,IAEkC5kB,EAAMpC,YAFxC,mBAwB5B,yBAAKhG,GAAG,gBACN,yBAAKA,GAAG,eAAesI,UAAU,SAC/B,yBAAKA,UAAU,iBACb,0BAAMA,UAAU,QAAQ0P,QAASjZ,KAAKsuB,iBAAtC,QACA,+EA/QtB,GAAkClZ,aCFrBma,IDqSEC,aANS,SAACxb,GACvB,MAAO,CACLyb,OAAQzb,EAAM5U,QAAQiX,eAIXmZ,CAAyBhC,ICrSxC,kDACE,WAAY1Z,GAAQ,IAAD,8BACjB,cAAMA,IAYR4b,iBAAmB,SAAAvoB,GACjB,EAAKoN,SAAS,CACZ8F,cAAelT,EAAEsC,OAAOxH,SAfT,EAmBnBgY,eAnBmB,sBAmBF,oCAAA5a,EAAA,yDAGfswB,GADIA,EAAavtB,IAAE,sBAAsBkI,QACjBzK,OAExB,EAAK0U,SAAS,CACZ8F,cAAesV,IAEjB9xB,QAAQC,IAAI,UAAY,EAAKkW,MAAMqG,eARpB,SAYb7B,IAAY/X,SAASgY,cAAc,2BAA4B,CAC7DtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GAEdtE,GADAA,EAAUsE,EAAOC,aACC7W,QAAQ,2BAA4B,OAIzB,OAA7B,EAAKiS,MAAMqG,cAtBF,iBAuBX,EAAK9F,SAAS,CACZvC,aAAa,EACbsY,aAAc,6BAzBL,yCA6BsB9rB,IAAqB+F,uBAAuB,kBA7BlE,eA6BPqrB,EA7BO,QA+BU1V,iBAAiBG,cAAgBsV,EACtD9xB,QAAQC,IAAI,kBAAoB8xB,EAAqB1V,iBAAiBG,eAEtEpc,IAAMC,SAASmY,aAAY,IAlChB,UAoCyBnE,OAAOoM,YAAYrE,eAAe2V,GApC3D,YAsCoC,KAF3CC,EApCO,QAsCgBC,gBAtChB,kCAuC0BtxB,IAAqB+F,uBAAuB,8BAvCtE,gCA0CY2N,OAAOoM,YAAYyR,6BA1C/B,QA0CL1lB,EA1CK,OA4CTgL,YAAS/X,IAAWE,iBAAkB,iBAAkB6W,GAEpDhK,EAASzH,OACX3E,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAcjgB,EAASzH,MAAM,GAAGotB,WAChCnE,iBAAkBxhB,EAASzH,MAAM,GAAGynB,gBAGtCxsB,QAAQC,IAAI,YAEZG,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZ0b,oBAAoB,EACpBC,cAAe7lB,EAAS8lB,qBA3DnB,wBA+DTtyB,QAAQC,IAAI+xB,GACZ5xB,IAAMC,SAASmY,aAAY,IAE3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,qCACduB,iBAAkB,uCAG+B,MAA/CgE,EAAuBjtB,MAAM,GAAGynB,aAClC,EAAK9V,SAAS,CACZvC,aAAa,EACbsY,aAAcuF,EAAuBjtB,MAAM,GAAGotB,WAC9CnE,iBAAkBgE,EAAuBjtB,MAAM,GAAGynB,cA5E7C,0DAmFbpsB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACb6Z,iBAAkB,KAAMxB,cAtFb,0DAjBf,EAAKrW,MAAQ,CACXqG,cAAe,qBACfrI,aAAa,EACbsY,aAAc,KACduB,iBAAkB,KAClBoE,oBAAoB,GAEtB,EAAKhW,eAAiB,EAAKA,eAAewI,KAApB,gBACtB,EAAKiN,iBAAmB,EAAKA,iBAAiBjN,KAAtB,gBAVP,EADrB,qDA+GE,WACExkB,IAAMC,SAASmY,aAAY,MAhH/B,oBAmHE,WACE,OACE,yBAAKpV,GAAG,0BACN,kBAACqmB,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,4BACG,IAAlCvJ,KAAKgU,MAAMic,mBACV,kBAAC,IAAD,CAAUjb,GAAG,iCAAoC,KAGnD,kBAAC,EAAD,MACA,yBAAKzL,UAAU,0CACb,uBAAGA,UAAU,6DAAb,YACA,uBAAGA,UAAU,uCAAb,mBAGF,yBAAKA,UAAU,QACb,uBAAGA,UAAU,sDAAb,2CAIF,0BAAMA,UAAU,YACd,yBAAKA,UAAU,8CAGb,yBAAKA,UAAU,oEACbgjB,gBAAgB,OAAOC,kBAAgB,KACvCvrB,GAAG,oBACHsmB,mBAAiB,YACjB5D,YAAY,kBAIZ3jB,KAAKgU,MAAMhC,YAAe,2BAAOzI,UAAU,kBAAjB,IACxBvJ,KAAKgU,MAAMsW,aADa,IAExB,6BAFwB,IAItBtqB,KAAKgU,MAAM6X,iBAJW,KAMtB,OAOV,yBAAKtiB,UAAU,6CAEb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCAEb,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAKia,eAAgBhZ,GAAG,sBACrDsI,UAAU,0CADZ,eAON,kBAACke,EAAA,EAAD,YA3KV,GAAsCrS,cCDlCmY,IAAe,EAEN6C,GAAb,kDACE,WAAYtc,GAAQ,IAAD,8BACjB,cAAMA,IA8BR2Z,oBA/BmB,sBA+BG,8BAAApuB,EAAA,sEAIlBmZ,IAAY/X,SAASgY,cAAc,oBAAqB,CACtDtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GAEdtE,GADAA,EAAUsE,EAAOC,aACC7W,QAAQ,2BAA4B,OAVxC,SAaevD,IAAqB+F,uBAAuB,QAb3D,cAadqpB,EAbc,OAelB3vB,IAAMC,SAASmY,aAAY,IAfT,SAiBOnE,OAAOoM,YAAYuP,KAC1CD,GAlBgB,OAqBS,OArBT,OAqBDyC,SACfhb,YAAS/X,IAAWE,iBAAkB,OAAQ6W,GAE9C,EAAKyZ,gBAxBW,kDA4BlBjwB,QAAQC,IAAR,MACA,EAAKyW,SAAS,CACZvC,aAAa,EACbsY,aAAc,KAAMD,cAEtBpsB,IAAMC,SAASmY,aAAY,IAjCT,0DA/BH,EAqEnByX,aArEmB,sBAqEJ,4BAAAzuB,EAAA,+EAEU6S,OAAOoM,YAAYwP,eAF7B,OAEPzjB,EAFO,OAGXxM,QAAQC,IAAIuM,IAEgB,IAAxBA,EAAS0jB,YACX9vB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CAAEyZ,gBAAgB,IAChC,EAAKzZ,SAAS,CACZvC,aAAa,EACbsY,aAAc,mBAEiB,IAAxBjgB,EAAS0jB,aAClB9vB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CAAEyZ,gBAAgB,KAdvB,gDAiBX,EAAKzZ,SAAS,CACZvC,aAAa,EACbsY,aAAc,KAAMD,cAEtBpsB,IAAMC,SAASmY,aAAY,IArBhB,yDArEI,EA8FnB4X,cA9FmB,uCA8FH,WAAOlO,GAAP,qBAAA1gB,EAAA,sDACV6uB,EAAanO,EAAMtW,OAAO0kB,YAC1BC,EAAUrO,EAAMtW,OAAOxI,GACvBotB,EAAiBtO,EAAMtW,OAAOmW,QAAQ,MAAMjf,aAAa,aACzDiG,EAAUmZ,EAAMtW,OAAOmW,QAAQ,MAAMjf,aAAa,WAEtD9C,QAAQC,IAAIowB,EAAa,IAAME,EAAU,IAAMC,EAAiB,IAAMznB,GAEtEpI,IAAqB+I,2BAA2B6mB,EAASF,EAAYG,EAAgBznB,GARvE,2CA9FG,wDAmHnB0nB,gBAnHmB,uCAmHD,WAAOvO,GAAP,SAAA1gB,EAAA,sDAChBoB,SAASC,eAAe,WAAWujB,MAAMC,QAAU,OACnDzjB,SAASC,eAAe,gBAAgBujB,MAAMC,QAAU,OAFxC,2CAnHC,wDAwHnBqK,iBAxHmB,sBAwHA,4BAAAlvB,EAAA,sEACSb,IAAqB2F,+BAD9B,OACbqqB,EADa,OAGjB3wB,QAAQC,IAAI0wB,GACS,MAAjBA,GAAyBA,EAAc3oB,OAAS,GAClD,EAAK0O,SAAS,CAAEka,kBAAmBD,IACnC/tB,SAASC,eAAe,WAAWujB,MAAMC,QAAU,SAEnDzjB,SAASC,eAAe,gBAAgBujB,MAAMC,QAAU,QARzC,2CAxHA,EAoInBwK,kBApImB,uCAoIC,WAAO3O,GAAP,eAAA1gB,EAAA,sDAClB0gB,EAAMtW,OAAOklB,UAAUhP,OAAO,WAC1BiP,EAAU7O,EAAMtW,OAAOolB,oBAEf5K,MAAM6K,UAChBF,EAAQ3K,MAAM6K,UAAY,KAE1BF,EAAQ3K,MAAM6K,UAAYF,EAAQG,aAAe,KAPjC,2CApID,sDAEjB,EAAKC,qBACL,EAAKhb,MAAQ,CACXga,gBAAgB,EAChBiB,gBAAiB,GACjBjd,aAAa,EACbyc,kBAAmB,IAPJ,EADrB,sDAaE,WAKE,IAJA,IAAI7tB,EAAMsR,OAAOC,SAAS3I,KAAK7B,MAAMuK,OAAOC,SAAS3I,KAAK4E,QAAQ,KAAO,GAAG9H,MAAM,KAC9E5I,EAAW,GACXC,EAAO,SAEFqQ,EAAI,EAAGA,EAAIpN,EAAIiF,OAAQmI,IAAK,CACnC,IAAIkhB,EAAWtuB,EAAIoN,GAAG1H,MAAM,KACT,QAAf4oB,EAAS,KACXxxB,EAAWwxB,EAAS,GACpB3B,IAAe,GAEE,QAAf2B,EAAS,KACXvxB,EAAOuxB,EAAS,IAIpB5xB,IAAWG,eAAeC,EAAUC,KA7BxC,+BA0GE,WACEM,IAAMC,SAASmY,aAAY,IAGzB5V,SAASC,eAAe,oBAAoBujB,MAAMC,QADhDqJ,GAC0D,QAEA,SAhHlE,oBAiJE,WAAU,IAAD,OACP,OACE,yBAAKtsB,GAAG,mBACLjB,KAAKgU,MAAMga,eAAiB,kBAAC,IAAD,CAAUhZ,GAAG,iCAAoC,KAC9E,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,gDAChC,kBAAC,EAAD,MAEA,wBAAIA,UAAU,iDAAd,aAA4E,wBAAIA,UAAU,gBAC1F,yBAAKA,UAAU,YACb,yBAAKA,UAAU,oEACb,wBAAIA,UAAU,gCAAd,UACA,yBAAKA,UAAU,YACb,yBAAKA,UAAU,SACb,yBAAKvI,IAAK9D,IAAWmG,gBAAkB,gBAAiB8R,MAAM,MAAM5L,UAAU,6BAEhF,yBAAKA,UAAU,SACb,uBAAGA,UAAU,gCAAb,+BAEA,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,QADF,IAC8C,0BAAMA,UAAU,kBAAhB,MAC9C,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,YADF,IACkD,0BAAMA,UAAU,uBAMxE,yBAAKA,UAAU,8CACf,4BAAQ5L,KAAK,SAASsD,GAAG,mBAAmBsI,UAAU,mBAChD0P,QAASjZ,KAAKuuB,kBADpB,aAIE,yBAAKhlB,UAAU,+CACb,yBAAKA,UAAU,sBAAf,YACA,yBAAKA,UAAU,aAAf,WAGF,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,qBAAf,wBAAwD,6BAAxD,YACA,yBAAKA,UAAU,aAAf,SAGF,yBAAKA,UAAU,qDACb,yBAAKA,UAAU,qBAAf,SACA,yBAAKA,UAAU,aAAf,aAMN,wBAAIA,UAAU,gBACd,yBAAKA,UAAU,OACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCACb,4BAAQ5L,KAAK,SAASsD,GAAG,iBAAiBsI,UAAU,yCAClD0P,QAASjZ,KAAKytB,qBADhB,iBAICztB,KAAKgU,MAAMhC,YACV,2BAAOzI,UAAU,kBAAmBvJ,KAAKgU,MAAMsW,cAC7C,KACJ,yBAAKtpB,IAAK9D,IAAWmG,gBAAkB,oBAAqBkG,UAAU,iCAMtE,yBAAKtI,GAAG,gBACN,yBAAKA,GAAG,UAAUsI,UAAU,SAC1B,yBAAKA,UAAU,iBACb,0BAAMA,UAAU,QAAQ0P,QAASjZ,KAAKsuB,iBAAtC,QACA,uDAGEtuB,KAAKgU,MAAMya,kBAAkBvnB,KAAI,SAACV,EAASwH,GACzC,OACE,yBAAKxF,IAAKwF,GACR,4BAAQrQ,KAAK,SAASsb,QAAS,EAAKyV,kBAAmBnlB,UAAU,6BAA6B/C,EAAQH,WAEtG,yBAAKkD,UAAU,WACb,+BACE,+BACE,4BACE,0CACA,wBAAIA,UAAU,SAAd,mBAIF/C,EAAQD,OAAOW,KAAI,SAACmC,EAAOzC,GACzB,OACE,wBAAI4B,IAAK5B,GACP,4BAAKyC,EAAM3C,eACX,wBAAI6C,UAAU,QAAQ6lB,UAAW5oB,EAAQH,UAAWO,QAASoH,GAC3D,yBAAKzE,UAAU,kFAAkF8lB,gBAAgB,OAAO7C,kBAAgB,KACtI5e,KAAMvE,EAAM3C,cAAezF,GAAIoI,EAAM3C,cAAe6gB,mBAAiB,kBACrE+H,OAAQ,EAAKrB,eAFf,IAEkC5kB,EAAMpC,YAFxC,mBAuB5B,yBAAKhG,GAAG,gBACN,yBAAKA,GAAG,eAAesI,UAAU,SAC/B,yBAAKA,UAAU,iBACb,0BAAMA,UAAU,QAAQ0P,QAASjZ,KAAKsuB,iBAAtC,QACA,+EAzQtB,GAA8ClZ,aCDjCkb,IDgSEd,aAPS,SAACxb,GAEvB,OADAuc,QACO,CACLd,OAAQzb,EAAM5U,QAAQiX,eAIXmZ,CAAyBY,IChSxC,kDACE,WAAYtc,GAAQ,IAAD,8BACjB,cAAMA,IAgBR0c,kBAAoB,SAAArpB,GAClB,EAAKoN,SAAS,CACZiG,eAAgBrT,EAAEsC,OAAOxH,SAnBV,EAsBnBwuB,2BAtBmB,sBAsBU,gCAAApxB,EAAA,6DACzB,EAAKkV,SAAS,CACZiG,eAAgBpY,IAAE,aAAakI,SAGjCrM,IAAMC,SAASmY,aAAY,IALF,SAUvBmC,IAAY/X,SAASgY,cAAc,oBAAqB,CACtDiY,gBAAiB,EAAGC,YAAY,EAChCxb,MAAO,IACPuD,OAAQ,MACPpE,MAAK,SAAUqE,GAEhBtE,GADAA,EAAUsE,EAAOC,aACC7W,QAAQ,2BAA4B,OAhBjC,SAmBavD,IAAqB+F,uBAAuB,8BAnBzD,cAmBnBqsB,EAnBmB,QAsBCpW,eAAiBpY,IAAE,aAAakI,OACxDzM,QAAQC,IAAI8yB,EAAwBpW,gBAvBb,UAwBFtI,OAAOoM,YAAY9B,2BACtCoU,GAzBqB,SAwBnBvmB,EAxBmB,QA4BVwmB,SACXxb,YAAS/X,IAAWE,iBAAkB,0BAA2B6W,GAEjEpW,IAAMC,SAASmY,aAAY,IAC3BpY,IAAMC,SAASqY,YAASlM,EAASwmB,UAEjC,EAAKtc,SAAS,CACZuc,aAAa,MAGf7yB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAcjgB,EAASzH,MAAMmuB,OAC7BlF,iBAAkBxhB,EAASzH,MAAMouB,QAAQ,GAAGxb,WA1CzB,kDA8CvBvX,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,KAAMyG,OACpBlF,iBAAkB,KAAMxB,cAlDH,0DApB3B,EAAKrW,MAAQ,CACXwG,eAAgB,GAChBxI,aAAa,EACbsY,aAAc,KACduB,iBAAkB,KAClBoE,oBAAoB,EACpBa,aAAa,EACb/I,UAAU,EACV1d,UAAU,GAEZ,EAAKomB,2BAA6B,EAAKA,2BAA2BhO,KAAhC,gBAGlC,EAAK+N,kBAAoB,EAAKA,kBAAkB/N,KAAvB,gBAfR,EADrB,oDA+EE,cA/EF,oBAmFE,WACE,OACE,yBAAKxhB,GAAG,mBACLjB,KAAKgU,MAAM8c,YAAc,kBAAC,IAAD,CAAU9b,GAAG,yBAA4B,KAGnE,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,2BAChC,kBAAC,EAAD,MACA,yBAAKA,UAAU,QACb,uBAAGA,UAAU,sDAAb,yCAIF,0BAAMA,UAAU,WAAWtI,GAAG,eAC5B,yBAAKsI,UAAU,+CAGb,yBAAKtI,GAAG,WAAWsI,UAAU,2EACzBgjB,gBAAgB,OAChBC,kBAAgB,KAChB7I,YAAY,cACZF,SACQzjB,KAAKwwB,oBAKhBxwB,KAAKgU,MAAMhC,YACV,2BAAOzI,UAAU,kBAAmBvJ,KAAKgU,MAAM6X,kBAC7C,KAEH7rB,KAAKgU,MAAM+T,SACV,2BAAOxe,UAAU,kBAAjB,qBACE,OAKR,yBAAKA,UAAU,4BACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCAEb,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAKywB,2BAA4BxvB,GAAG,sBACjEsI,UAAU,0CADZ,eAQN,kBAACke,EAAA,EAAD,YArIV,GAAsCrS,c,UCCzB6b,GAAb,kDACI,WAAYnd,GAAQ,IAAD,8BACf,cAAMA,IAkDVyW,gBAAkB,SAAAC,GAGd,OAFWA,EAAc/gB,OAAOxH,OAG5B,IAAK,cACD,EAAKsS,SAAS,CAAEkW,aAAa,EAAMC,gBAAgB,EAAOC,eAAe,EAAOC,iBAAiB,IACjG,MAEJ,IAAK,QACD,EAAKrW,SAAS,CAAEmW,gBAAgB,EAAMD,aAAa,EAAOE,eAAe,EAAOC,iBAAiB,IACjG,MAEJ,IAAK,gBACD,EAAKrW,SAAS,CAAEoW,eAAe,EAAMF,aAAa,EAAOC,gBAAgB,EAAOE,iBAAiB,MAhE1F,EAwEnBsG,aAxEmB,uCAwEJ,WAAMC,GAAN,+BAAA9xB,EAAA,sEAMY,OAFf+xB,EAAcnzB,IAAMkB,WAAWC,QAAQsV,WAEhB0c,EAAYvrB,OAAS,GAC5CurB,EAAYzxB,SAAQ,SAAUuG,EAAMsY,GACH,MAAzBtY,EAAK+kB,kBAA4B/kB,EAAK+kB,kBAAoBkG,GAC1DlzB,IAAMC,SAASwW,YAASxO,OAKpCjI,IAAMC,SAASmY,aAAY,IAdpB,SAgBc7X,IAAqB+F,uBAAuB,YAhB1D,cAgBHwV,EAhBG,SAmBH,EAAKjG,MAAM3B,UAAY,EAAK2B,MAAM3B,SAAS6B,OACvC,EAAKF,MAAM3B,SAAS6B,MAAM3J,SAC1B,EAAKyJ,MACL,CAAE3B,SAAU,CAAE6B,MAAO,CAAE3J,SAAU,CAAE2gB,cAAe,SAtBnD,EAkBC7Y,SAAY6B,MAAS3J,SAAY2gB,cAOzCntB,QAAQC,IAAI,EAAKgW,MAAM2C,kBAEvBsD,EAAStU,kBAAoBnI,IAAWE,iBACxCuc,EAAStD,iBAAmBxY,IAAMkB,WAAWC,QAAQqX,iBACrDsD,EAASkR,iBAAmBkG,EAExBlvB,EAAQ,IAEqB,IAA7B,EAAK+R,MAAM2W,iBACPQ,EAAY1qB,SAASM,cAAc,WAC7BqqB,aAAa,KAAM,aAC7BD,EAAUC,aAAa,OAAQ,aAC/BD,EAAUC,aAAa,MAAO,IAC9BD,EAAUlH,MAAMoH,OAAS,IACzBF,EAAUlH,MAAMrB,SAAW,WAC3BuI,EAAUlH,MAAMC,QAAU,QAC1BiH,EAAUlH,MAAM9O,MAAQ,MACxBgW,EAAUlH,MAAMvL,OAAS,OACzByS,EAAUlH,MAAMqH,OAAS,SACzB7qB,SAAS2J,KAAKmhB,MAAMJ,EAAW1qB,SAAS2J,MACxC2P,EAAS5Q,UAAY1I,SAASC,eAAe,aAAaiqB,gBAG5B,IAA9B,EAAK3W,MAAM0W,iBACXc,EAAYtZ,OAAOiT,KAAK,eACxBpL,EAAS5Q,UAAYqiB,GAGzB3tB,QAAQC,IAAIic,GArDL,UAuDkBzc,IAAWuB,gBAAgBoD,EAAOhE,IAAMkB,WAAWC,QAAQqX,iBAAkB,MAvD/F,eAuDH9U,EAvDG,OAyDP9D,QAAQC,IAAI6D,GAzDL,UA0DcuQ,OAAOoM,YAAYvE,SAASA,GA1D1C,QA0DH1P,EA1DG,OA2DPxM,QAAQC,IAAIuM,GAER,EAAK2J,MAAM0W,gBACXc,EAAUvT,QAGV,EAAKjE,MAAM2W,eAGE,OAFTc,EAAQhrB,SAASC,eAAe,eAGhC+qB,EAAMC,WAAWpqB,YAAYmqB,GArE9B,KAyECphB,EAAS2gB,cAzEV,OA0EE,aA1EF,QA8EE,aA9EF,QAkFE,oBAlFF,QAsFE,gBAtFF,gCA2EC,EAAKzW,SAAS,CAAE8c,qBAAqB,IA3EtC,oCA+EC,EAAK9c,SAAS,CAAE4V,YAAY,EAAMmH,SAAS,IA/E5C,oCAmFC,EAAK/c,SAAS,CAAEgd,gBAAgB,IAnFjC,8CAuFO,EAAK1Q,oBAvFZ,4CA2F+B,SAA1BxW,EAAS2gB,eACT,EAAKzW,SAAS,CACVvC,aAAa,EACbsY,aAAcjgB,EAASzH,MAAM4uB,UAC7B3F,iBAAkBxhB,EAASzH,MAAMipB,mBA/F1C,QAmGP5tB,IAAMC,SAASmY,aAAY,IAnGpB,kDAqGPxY,QAAQC,IAAR,MACI,EAAKkW,MAAM2W,gBACPc,EAAQhrB,SAASC,eAAe,aACpC7C,QAAQC,IAAI2tB,GACC,MAATA,GACAA,EAAMC,WAAWpqB,YAAYmqB,IAIjC,EAAKzX,MAAM0W,gBACXc,EAAUvT,QAGdha,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACVvC,aAAa,EACbsY,aAAc,KAAMyG,OACpBlF,iBAAkB,KAAMxB,cAtHrB,0DAxEI,wDAmMnBxC,gBAAkB,WACd,EAAKtT,SAAS,CAAE+c,SAAS,KAlMzB,EAAKtd,MAAQ,CACThC,aAAa,EACbsY,aAAc,GACduB,iBAAkB,GAClBnX,SAAU,KACV+c,iBAAkB,KAClBJ,qBAAqB,EACrB5G,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,iBAAiB,EACjB0B,aAAc,GACdgF,SAAS,GAEb,EAAKJ,aAAe,EAAKA,aAAazO,KAAlB,gBAhBL,EADvB,4FAmBI,8BAAApjB,EAAA,6DACIpB,IAAMC,SAASmY,aAAY,KAEvBqb,EAAc,IACNnb,SAAWtY,IAAMkB,WAAWC,QAAQmX,SAJpD,kBAO6BrE,OAAOoM,YAAY7D,cAAciX,GAP9D,QAOYrnB,EAPZ,QASqBoM,kBACTxY,IAAMC,SAASuY,YAAiBpM,EAASoM,mBACzCzW,KAAKuU,SAAS,CAAEG,SAAUrK,EAASkS,SAAS,GAAG6U,cAC/CnzB,IAAMC,SAASwW,YAASrK,EAASkS,SAAS,GAAG6U,gBAG7CnzB,IAAMC,SAASmY,aAAY,IAC3BrW,KAAKuU,SAAS,CACVvC,aAAa,EACbsY,aAAcjgB,EAASzH,MAAMmuB,OAC7BlF,iBAAkBxhB,EAASzH,MAAM4S,WAGzCvX,IAAMC,SAASmY,aAAY,IAtBnC,kDAwBQpY,IAAMC,SAASmY,aAAY,IAC3BrW,KAAKuU,SAAS,CACVvC,aAAa,EACbsY,aAAc,KAAMyG,OACpBlF,iBAAkB,KAAMxB,cA5BpC,0DAnBJ,0EAwMI,WAAU,IAAD,OACL,OACI,yBAAKppB,GAAG,gBAEmC,IAAnCjB,KAAKgU,MAAMqd,oBAAgC,kBACvC,IADuC,CAC9Brc,GAAG,0BAEZ,MAImB,IAAvBhV,KAAKgU,MAAMsd,QACP,kBAAC,IAAD,CAAUtc,GAAG,wBACb,KAGR,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,2BAC9B,kBAAC,EAAD,MAEA,yBAAKtI,GAAG,cACJsI,UAAU,eAGV,yBAAKA,UAAU,sBACX,uBAAGA,UAAU,cAAb,WACA,wBAAIA,UAAU,oBAGd,6BAG2B,MAAvBvJ,KAAKgU,MAAMU,SACP,kBAAC,IAAMid,SAAP,SACI3xB,KAAKgU,MAAMU,SAASxN,KAAI,SAACwS,EAAM1L,GAAP,OACpB,kBAACyW,GAAA,EAAD,CAAKlb,UAAU,oBAAoBf,IAC/BkR,EAAKuR,iBAELhS,QACI,kBACI,EAAKiY,aAAaxX,EAAKuR,oBAG/B,kBAACvG,EAAA,EAAD,CAAKnB,GACD,GAGA,yBAAKha,UAAU,WAAWvI,IACtB0Y,EAAKrB,gBAAgBuZ,OAErB5Y,IAAI,WACJiL,MACI,CACIc,OAAQ,cAlB5B,IAsBW,kBACHL,EAAA,EADG,CACCnB,GACA,EAEJU,MACI,CACI6I,UAAW,SAGnB,uBAAGvjB,UAAU,YAAYtI,GAAE,eAAU+M,EAAI,GACrCiW,MACI,CACIc,OAAQ,YAHpB,IAMQrL,EAAKrB,gBACAC,iBAET,6BACA,2BAAO/O,UAAU,cAAjB,wBAEQmQ,EAAKnB,YAFb,KAVJ,WAmBhB,kDAIR,4BAAQ5a,KAAK,SAASsb,QAASjZ,KAAK6nB,gBAAiB5mB,GAAG,iBACpDsI,UAAU,yDADd,YAIA,kBAACqjB,EAAA,EAAD,CAAOrjB,UAAU,mDAAjB,kBAGA,kBAACmb,EAAA,EAAD,CAAKnB,GAAI,GAAIsJ,MAAM,iBAAiB5I,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IACpE,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACR,kBAACC,EAAA,EAAD,CACIrvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,gBACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAsC,IAA7BxjB,KAAKgU,MAAM2W,gBACrB,IAPP,sBAYJ,kBAACjG,EAAA,EAAD,CAAKnB,GAAI,GAAIsJ,MAAM,iBAAiB5I,MAAO,CAAE6I,UAAW,SAAUxB,OAAQ,IACtE,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACR,kBAACC,EAAA,EAAD,CACIzjB,UAAU,kBACV5L,KAAK,QACLiQ,KAAK,YACL3L,MAAM,cACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAoC,IAA3BxjB,KAAKgU,MAAMyW,cACrB,IARP,kBAaJ,kBAAC/F,EAAA,EAAD,CAAKnB,GAAI,GAAI0J,gBAAc,EAAChJ,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IAC5D,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACR,kBAACC,EAAA,EAAD,CACIrvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,QACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAuC,IAA9BxjB,KAAKgU,MAAM0W,iBACrB,IAPP,oBAYJ,kBAAChG,EAAA,EAAD,CAAKnB,GAAI,GAAIU,MAAO,CAAE6I,UAAW,SAC5B9sB,KAAKgU,MAAM4W,gBACR,2BAAOrhB,UAAU,kBACZvJ,KAAKgU,MAAMsY,cAEhB,MAGJtsB,KAAKgU,MAAMhC,YAAe,2BAAOzI,UAAU,kBAAjB,IACtBvJ,KAAKgU,MAAMsW,aADW,IAExB,6BAFwB,IAGlBtqB,KAAKgU,MAAM6X,iBAHO,KAKtB,KA7HZ,MAgIJ,kBAACpE,EAAA,EAAD,YA/VpB,GAAiCrS,a,IA+WlBoa,aATS,SAAAxb,GACpB,MAAO,CACHyb,OAAQzb,EAAM5U,QAAQiX,YACtBE,SAAUvC,EAAM5U,QAAQmX,SACxBE,iBAAkBzC,EAAM5U,QAAQqX,iBAChChR,kBAAmBuO,EAAM5U,QAAQqG,qBAI1B+pB,CAAyByB,I,QClX3BY,GAAb,kDACI,WAAY/d,GAAQ,IAAD,8BACf,cAAMA,IAiDVyW,gBAAkB,SAAAC,GAGd,OAFWA,EAAc/gB,OAAOxH,OAG5B,IAAK,cACD,EAAKsS,SAAS,CAAEkW,aAAa,EAAMC,gBAAgB,EAAOC,eAAe,EAAOC,iBAAiB,IACjG,MAEJ,IAAK,QACD,EAAKrW,SAAS,CAAEmW,gBAAgB,EAAMD,aAAa,EAAOE,eAAe,EAAOC,iBAAiB,IACjG,MAEJ,IAAK,gBACD,EAAKrW,SAAS,CAAEoW,eAAe,EAAMF,aAAa,EAAOC,gBAAgB,EAAOE,iBAAiB,MA/D1F,EAuEnBsG,aAvEmB,uCAuEJ,WAAMC,GAAN,6BAAA9xB,EAAA,sEAMY,OAFf+xB,EAAcnzB,IAAMkB,WAAWC,QAAQsV,WAEhB0c,EAAYvrB,OAAS,GAC5CurB,EAAYzxB,SAAQ,SAAUuG,EAAMsY,GACH,MAAzBtY,EAAK+kB,kBAA4B/kB,EAAK+kB,kBAAoBkG,GAC1DlzB,IAAMC,SAASwW,YAASxO,OAKpCjI,IAAMC,SAASmY,aAAY,IAdpB,SAgBc7X,IAAqB+F,uBAAuB,YAhB1D,cAgBHwV,EAhBG,SAmBH,EAAKjG,MAAM3B,UAAY,EAAK2B,MAAM3B,SAAS6B,OACvC,EAAKF,MAAM3B,SAAS6B,MAAM3J,SAC1B,EAAKyJ,MACL,CAAE3B,SAAU,CAAE6B,MAAO,CAAE3J,SAAU,CAAE2gB,cAAe,SAtBnD,EAkBC7Y,SAAY6B,MAAS3J,SAAY2gB,cAQzCjR,EAAStU,kBAAoBnI,IAAWE,iBACxCuc,EAAStD,iBAAmBxY,IAAMkB,WAAWC,QAAQqX,iBACrDsD,EAASkR,iBAAmBkG,EAExBlvB,EAAQ,IAEqB,IAA7B,EAAK+R,MAAM2W,iBACPQ,EAAY1qB,SAASM,cAAc,WAC7BqqB,aAAa,KAAM,aAC7BD,EAAUC,aAAa,OAAQ,aAC/BD,EAAUC,aAAa,MAAO,IAC9BD,EAAUlH,MAAMoH,OAAS,IACzBF,EAAUlH,MAAMrB,SAAW,WAC3BuI,EAAUlH,MAAMC,QAAU,QAC1BiH,EAAUlH,MAAM9O,MAAQ,MACxBgW,EAAUlH,MAAMvL,OAAS,OACzByS,EAAUlH,MAAMqH,OAAS,SACzB7qB,SAAS2J,KAAKmhB,MAAMJ,EAAW1qB,SAAS2J,MACxC2P,EAAS5Q,UAAY1I,SAASC,eAAe,aAAaiqB,gBAG5B,IAA9B,EAAK3W,MAAM0W,iBACXc,EAAYtZ,OAAOiT,KAAK,eACxBpL,EAAS5Q,UAAYqiB,GAGzB3tB,QAAQC,IAAIic,GApDL,UAsDkBzc,IAAWuB,gBAAgBoD,EAAOhE,IAAMkB,WAAWC,QAAQqX,iBAAkB,MAtD/F,gCAwDcvE,OAAOoM,YAAYvE,SAASA,GAxD1C,QAwDH1P,EAxDG,OAyDPxM,QAAQC,IAAIuM,GAER,EAAK2J,MAAM2W,eAEE,OADTc,EAAQhrB,SAASC,eAAe,eAEhC+qB,EAAMC,WAAWpqB,YAAYmqB,GAIjC,EAAKzX,MAAM0W,gBACXc,EAAUvT,QAnEP,KAsEC5N,EAAS2gB,cAtEV,OAuEE,aAvEF,QA2EE,aA3EF,QA+EE,oBA/EF,QAmFE,gBAnFF,gCAwEC,EAAKzW,SAAS,CAAE8c,qBAAqB,IAxEtC,oCA4EC,EAAK9c,SAAS,CAAE4V,YAAY,EAAMmH,SAAS,IA5E5C,oCAgFC,EAAK/c,SAAS,CAAEgd,gBAAgB,IAhFjC,8CAoFO,EAAK1Q,oBApFZ,4CAwF+B,SAA1BxW,EAAS2gB,eACT,EAAKzW,SAAS,CACVvC,aAAa,EACbsY,aAAcjgB,EAASzH,MAAM4uB,UAC7B3F,iBAAkBxhB,EAASzH,MAAMipB,mBA5F1C,QAgGP5tB,IAAMC,SAASmY,aAAY,IAhGpB,kDAkGPxY,QAAQC,IAAR,MACI,EAAKkW,MAAM2W,gBACPc,EAAQhrB,SAASC,eAAe,aACpC7C,QAAQC,IAAI2tB,GACC,MAATA,GACAA,EAAMC,WAAWpqB,YAAYmqB,IAIjC,EAAKzX,MAAM0W,gBACXc,EAAUvT,QAGdha,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACVvC,aAAa,EACbsY,aAAc,KAAMyG,OACpBlF,iBAAkB,KAAMxB,cAnHrB,0DAvEI,wDA+LnBxC,gBAAkB,WACd,EAAKtT,SAAS,CAAE4V,YAAY,EAAMmH,SAAS,KA9L3C,EAAKtd,MAAQ,CACThC,aAAa,EACbsY,aAAc,GACduB,iBAAkB,GAClBnX,SAAU,KACV+c,iBAAkB,KAClBJ,qBAAqB,EACrB5G,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,iBAAiB,EACjB0B,aAAc,GACdwF,WAAY,GACZ3H,YAAY,GAEhB,EAAK+G,aAAe,EAAKA,aAAazO,KAAlB,gBAjBL,EADvB,4FAoBI,8BAAApjB,EAAA,6DACIpB,IAAMC,SAASmY,aAAY,KAEvBqb,EAAc,IACNnb,SAAWtY,IAAMkB,WAAWC,QAAQmX,SAJpD,kBAO6BrE,OAAOoM,YAAY7D,cAAciX,GAP9D,QAOYrnB,EAPZ,QAQqBoM,kBACTxY,IAAMC,SAASuY,YAAiBpM,EAASoM,mBAEzCzW,KAAKuU,SAAS,CAAEG,SAAUrK,EAASkS,SAAS,GAAG6U,cAC/CnzB,IAAMC,SAASwW,YAASrK,EAASkS,SAAS,GAAG6U,eAE7CpxB,KAAKuU,SAAS,CACVvC,aAAa,EACbsY,aAAcjgB,EAASzH,MAAMmuB,OAC7BlF,iBAAkBxhB,EAASzH,MAAM4S,UAGzCvX,IAAMC,SAASmY,aAAY,IApBnC,kDAsBQpY,IAAMC,SAASmY,aAAY,IAC3BrW,KAAKuU,SAAS,CACVvC,aAAa,EACbsY,aAAc,KAAMyG,OACpBlF,iBAAkB,KAAMxB,cA1BpC,0DApBJ,0EAoMI,WAAU,IAAD,OACL,OACI,yBAAKppB,GAAG,gBAGmC,IAAnCjB,KAAKgU,MAAMqd,sBACmB,IAA1BrxB,KAAKgU,MAAMmW,WAAwB,kBAC/B,IAD+B,CACtBnV,GAAG,0BAEhB,MAG+B,IAAnChV,KAAKgU,MAAMqd,sBACmB,IAA1BrxB,KAAKgU,MAAMmW,WAAuB,kBAC9B,IAD8B,CACrBnV,GAAG,0BAEhB,MAGsB,IAA1BhV,KAAKgU,MAAMmW,WACP,kBAAC,IAAD,CAAUnV,GAAG,wBACb,KAGR,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,2BAC9B,kBAAC,EAAD,MAEA,yBAAKtI,GAAG,cACJsI,UAAU,eAGV,yBAAKA,UAAU,6CACX,uBAAGA,UAAU,cAAb,WACA,wBAAIA,UAAU,oBAGd,6BAEA,yBAAKA,UAAU,qBAGgB,MAAvBvJ,KAAKgU,MAAMU,SACP,kBAAC,IAAMid,SAAP,SACI3xB,KAAKgU,MAAMU,SAASxN,KAAI,SAACwS,EAAM1L,GAAP,OACpB,kBAACyW,GAAA,EAAD,CAAKjc,IACDkR,EAAKuR,iBAELhS,QACI,kBACZ,EAAKiY,aAAaxX,EAAKuR,oBAGvB,kBAACvG,EAAA,EAAD,CAAKnB,GACD,GAGA,yBAAKha,UAAU,WAAWvI,IACtB0Y,EAAKrB,gBAAgBuZ,OAErB5Y,IAAI,WACJiL,MACI,CACIc,OAAQ,cAlBpB,IAsBG,kBACHL,EAAA,EADG,CACCnB,GACA,EAEJU,MACI,CACI6I,UAAW,SAGnB,uBAAGvjB,UAAU,YAAYtI,GAAE,eAAU+M,EAAI,GACrCiW,MACI,CACIc,OAAQ,YAHpB,IAMQrL,EAAKrB,gBACAC,iBAET,6BACA,2BAAO/O,UAAU,cAAjB,wBAEQmQ,EAAKnB,YAFb,KAVJ,WAmBR,mDAGR,4BAAQ5a,KAAK,SAASsb,QAASjZ,KAAK6nB,gBAAiB5mB,GAAG,iBACpDsI,UAAU,yDADd,aAKJ,kBAACqjB,EAAA,EAAD,CAAOrjB,UAAU,mDAAjB,kBAGA,kBAACmb,EAAA,EAAD,CAAKnB,GAAI,GAAIha,UAAU,iBAAiB0a,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IACxE,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACR,kBAACC,EAAA,EAAD,CACIrvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,gBACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAsC,IAA7BxjB,KAAKgU,MAAM2W,gBACrB,IAPP,sBAYR,kBAACjG,EAAA,EAAD,CAAKnB,GAAI,GAAIha,UAAU,iBAAiB0a,MAAO,CAAE6I,UAAW,SAAUxB,OAAQ,IAC1E,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACR,kBAACC,EAAA,EAAD,CACIzjB,UAAU,kBACV5L,KAAK,QACLiQ,KAAK,YACL3L,MAAM,cACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAoC,IAA3BxjB,KAAKgU,MAAMyW,cACrB,IARP,kBAaJ,kBAAC/F,EAAA,EAAD,CAAKnB,GAAI,GAAI0J,gBAAc,EAAChJ,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IAC5D,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACR,kBAACC,EAAA,EAAD,CACIrvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,QACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAuC,IAA9BxjB,KAAKgU,MAAM0W,iBACrB,IAPP,oBAYJ,kBAAChG,EAAA,EAAD,CAAKnB,GAAI,GAAIU,MAAO,CAAE6I,UAAW,SAC5B9sB,KAAKgU,MAAM4W,gBACR,2BAAOrhB,UAAU,kBACZvJ,KAAKgU,MAAMsY,cAEhB,MAGJtsB,KAAKgU,MAAMhC,YAAe,2BAAOzI,UAAU,kBAAjB,IACtBvJ,KAAKgU,MAAMsW,aADW,IAExB,6BAFwB,IAGlBtqB,KAAKgU,MAAM6X,iBAHO,KAKtB,KA/HR,MAkIR,kBAACpE,EAAA,EAAD,YArWhB,GAAoCrS,aCDhCmY,IDyXWiC,aATS,SAAAxb,GACpB,MAAO,CACHyb,OAAQzb,EAAM5U,QAAQiX,YACtBE,SAAUvC,EAAM5U,QAAQmX,SACxBE,iBAAkBzC,EAAM5U,QAAQqX,iBAChChR,kBAAmBuO,EAAM5U,QAAQqG,qBAI1B+pB,CAAyBqC,KCzXrB,GAENE,GAAb,kDACE,WAAYje,GAAQ,IAAD,8BACjB,cAAMA,IAkCR2Z,oBAnCmB,sBAmCG,kCAAApuB,EAAA,sDAGpB,IAEEmZ,IAAY/X,SAASgY,cAAc,oBAAqB,CACtDtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GAEdtE,GADAA,EAAUsE,EAAOC,aACC7W,QAAQ,2BAA4B,OAE1D,MAAOa,GACP/E,QAAQC,IAAI8E,GAdM,gBAiBapE,IAAqB+F,uBAAuB,QAjBzD,cAiBhBqpB,EAjBgB,QAmBCnoB,kBAAoBnI,IAAWE,iBACpDS,IAAMC,SAASmY,aAAY,IApBP,kBAwBOnE,OAAOoM,YAAYuP,KAAKD,GAxB/B,UA2BS,QAHvBoE,EAxBc,QA2BD3B,OA3BC,kCA4Bcne,OAAOoM,YAAYwP,eA5BjC,QA8BoB,IAFhCmE,EA5BY,QA8BMlE,YACpB1Y,YAAS/X,IAAWE,iBAAkB,OAAQ6W,GAC9CpW,IAAMC,SAASmY,aAAY,IAC3BpY,IAAMC,SAASqY,YAAS0b,EAAkB1b,WAC1C,EAAKhC,SAAS,CAAEyZ,gBAAgB,MAIhC,EAAKzZ,SAAS,CAAEyZ,gBAAgB,IAChC/vB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,oBA1CF,wBA8ChBrsB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc0H,EAAa3H,cAjDb,0DAsDlBpsB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,KAAMD,cAzDJ,0DAnCH,EAiGnB4D,cAjGmB,uCAiGH,WAAOlO,GAAP,qBAAA1gB,EAAA,sDACV6uB,EAAanO,EAAMtW,OAAO0kB,YAC1BC,EAAUrO,EAAMtW,OAAOxI,GACvBotB,EAAiBtO,EAAMtW,OAAOmW,QAAQ,MAAMjf,aAAa,aACzDiG,EAAUmZ,EAAMtW,OAAOmW,QAAQ,MAAMjf,aAAa,WAEtD9C,QAAQC,IAAIowB,EAAa,IAAME,EAAU,IAAMC,EAAiB,IAAMznB,GAEtEpI,IAAqB+I,2BAA2B6mB,EAASF,EAAYG,EAAgBznB,GARvE,2CAjGG,wDA4GnB0nB,gBA5GmB,uCA4GD,WAAOvO,GAAP,SAAA1gB,EAAA,sDAChBoB,SAASC,eAAe,WAAWujB,MAAMC,QAAU,OACnDzjB,SAASC,eAAe,gBAAgBujB,MAAMC,QAAU,OAFxC,2CA5GC,wDAiHnBqK,iBAjHmB,sBAiHA,4BAAAlvB,EAAA,sEACSb,IAAqB2F,+BAD9B,OACbqqB,EADa,OAGjB3wB,QAAQC,IAAI0wB,GACS,MAAjBA,GAAyBA,EAAc3oB,OAAS,GAClD,EAAK0O,SAAS,CAAEka,kBAAmBD,IACnC/tB,SAASC,eAAe,WAAWujB,MAAMC,QAAU,SAEnDzjB,SAASC,eAAe,gBAAgBujB,MAAMC,QAAU,QARzC,2CAjHA,EA6HnBwK,kBA7HmB,uCA6HC,WAAO3O,GAAP,eAAA1gB,EAAA,sDAClB0gB,EAAMtW,OAAOklB,UAAUhP,OAAO,WAC1BiP,EAAU7O,EAAMtW,OAAOolB,oBAEf5K,MAAM6K,UAChBF,EAAQ3K,MAAM6K,UAAY,KAE1BF,EAAQ3K,MAAM6K,UAAYF,EAAQG,aAAe,KAPjC,2CA7HD,sDAGjB,EAAKC,qBAEL,EAAKhb,MAAQ,CACXga,gBAAgB,EAChBiB,gBAAiB,GACjBjd,aAAa,EACbsY,aAAc,GACdmE,kBAAmB,IAVJ,EADrB,sDAiBE,WAKE,IAJA,IAAI7tB,EAAMsR,OAAOC,SAAS3I,KAAK7B,MAAMuK,OAAOC,SAAS3I,KAAK4E,QAAQ,KAAO,GAAG9H,MAAM,KAC9E5I,EAAW,GACXC,EAAO,SAEFqQ,EAAI,EAAGA,EAAIpN,EAAIiF,OAAQmI,IAAK,CACnC,IAAIkhB,EAAWtuB,EAAIoN,GAAG1H,MAAM,KACT,QAAf4oB,EAAS,KACXxxB,EAAWwxB,EAAS,GACpB3B,IAAe,GAEE,QAAf2B,EAAS,KACXvxB,EAAOuxB,EAAS,IAIpB5xB,IAAWG,eAAeC,EAAUC,KAjCxC,+BA0IE,WACEM,IAAMC,SAASmY,aAAY,IAGzB5V,SAASC,eAAe,oBAAoBujB,MAAMC,QADhDqJ,GAC0D,QAEA,SAhJlE,oBAoJE,WAAU,IAAD,OACP,OACE,yBAAKtsB,GAAG,mBACLjB,KAAKgU,MAAMga,eAAiB,kBAAC,IAAD,CAAUhZ,GAAG,yBAA4B,KACtE,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,gDAChC,kBAAC,EAAD,MAEA,wBAAIA,UAAU,iDAAd,aAA4E,wBAAIA,UAAU,gBAC1F,yBAAKA,UAAU,YACb,yBAAKA,UAAU,oEACb,wBAAIA,UAAU,gCAAd,UACA,yBAAKA,UAAU,YACb,yBAAKA,UAAU,SACb,yBAAKvI,IAAK9D,IAAWmG,gBAAkB,gBAAiB8R,MAAM,MAAM5L,UAAU,6BAEhF,yBAAKA,UAAU,SACb,uBAAGA,UAAU,gCAAb,+BAEA,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,QADF,IAC8C,0BAAMA,UAAU,kBAAhB,MAC9C,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,YADF,IACkD,0BAAMA,UAAU,uBAMxE,yBAAKA,UAAU,8CACb,4BAAQ5L,KAAK,SAASsD,GAAG,mBAAmBsI,UAAU,mBACpD0P,QAASjZ,KAAKuuB,kBADhB,aAIA,yBAAKhlB,UAAU,+CACb,yBAAKA,UAAU,sBAAf,YACA,yBAAKA,UAAU,aAAf,WAGF,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,qBAAf,wBAAwD,6BAAxD,YACA,yBAAKA,UAAU,aAAf,SAGF,yBAAKA,UAAU,qDACb,yBAAKA,UAAU,qBAAf,SACA,yBAAKA,UAAU,aAAf,aAMN,wBAAIA,UAAU,gBACd,yBAAKA,UAAU,OACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCACb,4BAAQ5L,KAAK,SAASsD,GAAG,iBAAiBsI,UAAU,yCAClD0P,QAASjZ,KAAKytB,qBADhB,iBAGCztB,KAAKgU,MAAMhC,YACV,2BAAOzI,UAAU,kBAAmBvJ,KAAKgU,MAAMsW,cAC7C,KAEJ,yBAAKtpB,IAAK9D,IAAWmG,gBAAkB,oBAAqBkG,UAAU,iCAEtE,yBAAKtI,GAAG,gBACN,yBAAKA,GAAG,UAAUsI,UAAU,SAC1B,yBAAKA,UAAU,iBACb,0BAAMA,UAAU,QAAQ0P,QAASjZ,KAAKsuB,iBAAtC,QACA,uDAGEtuB,KAAKgU,MAAMya,kBAAkBvnB,KAAI,SAACV,EAASwH,GACzC,OACE,yBAAKxF,IAAKwF,GACR,4BAAQrQ,KAAK,SAASsb,QAAS,EAAKyV,kBAAmBnlB,UAAU,6BAA6B/C,EAAQH,WAEtG,yBAAKkD,UAAU,WACb,+BACE,+BACE,4BACE,0CACA,wBAAIA,UAAU,SAAd,mBAIF/C,EAAQD,OAAOW,KAAI,SAACmC,EAAOzC,GACzB,OACE,wBAAI4B,IAAK5B,GACP,4BAAKyC,EAAM3C,eACX,wBAAI6C,UAAU,QAAQ6lB,UAAW5oB,EAAQH,UAAWO,QAASoH,GAC3D,yBAAKzE,UAAU,kFAAkF8lB,gBAAgB,OAAO7C,kBAAgB,KACtI5e,KAAMvE,EAAM3C,cAAezF,GAAIoI,EAAM3C,cAAe6gB,mBAAiB,kBACrE+H,OAAQ,EAAKrB,eAFf,IAEkC5kB,EAAMpC,YAFxC,mBAuB5B,yBAAKhG,GAAG,gBACN,yBAAKA,GAAG,eAAesI,UAAU,SAC/B,yBAAKA,UAAU,iBACb,0BAAMA,UAAU,QAAQ0P,QAASjZ,KAAKsuB,iBAAtC,QACA,+EAxQtB,GAAqClZ,a,+HCOjC8c,GAAW90B,EAAQ,KAGnBmwB,IAAe,EAGN4E,GAAb,kDACI,WAAYre,GAAQ,IAAD,8BACf,cAAMA,IAuBVse,eAxBmB,uCAwBF,WAAOrS,GAAP,SAAA1gB,EAAA,sDACb,EAAK4uB,cAAclO,GADN,2CAxBE,wDA4BnBsS,eA5BmB,uCA4BF,WAAOrkB,EAAG7G,GAAV,uBAAA9H,EAAA,2DAET+C,IAAE,oCAAoCqf,OAAO,YAAY5b,OAAS,GAFzD,oDAMTysB,EAAgB,GAII,UAApB3nB,GAAQ4nB,UACRnwB,IAAE,kBAAkBod,GAAG,UAAU,WAC7Bpd,IAAE,kBAAkBowB,IAAIxyB,MAAMyyB,KAAK,WAAW,MAIlDC,EAAS,EAAK1e,MAAM2e,YACpBvxB,EAAU+F,EAAEsC,OAAOxH,MAIC,UAApB0I,GAAQ4nB,UACRD,EAAgBI,EAAO,GACvBA,EAAO,GAAKtxB,GAEZ+F,EAAEsC,OAAO+Z,QAAUkP,EAAOrrB,KAAKjG,GACzBsxB,EAAOhmB,OAAOgmB,EAAOtkB,QAAQhN,GAAU,GAI7CwxB,EAAkB,EAAK5e,MAAM6e,aAE7B7rB,EAAU,GACd0rB,EAAOxrB,KAAI,SAAUC,GACjB,IAAI2rB,EAAWF,EAAgBxkB,QAAQjH,EAAEpF,QAAQ,IAAK,MAClD+wB,GAAY,IACZ9rB,EAAQK,KAAKurB,EAAgBE,IAC7BF,EAAgBlmB,OAAOomB,EAAU,OAIzC9rB,EAAUA,EAAQ+rB,OAAOH,GAEzB,EAAKre,SAAS,CAAEse,aAAc7rB,IAC9B,EAAKuN,SAAS,CAAEoe,YAAaD,IAE7BM,GAAaC,0BAA0B,EAAKjf,MAAM2e,cAE9CxrB,EAAEsC,OAAO+Z,QAhDA,kCAiDH,EAAK0P,oBAAoB9xB,GAjDtB,iDAoDH,EAAK+xB,8BAA8B/xB,GApDhC,WAwDW,UAApBuJ,GAAQ4nB,SAxDC,kCA0DH,EAAKY,8BAA8Bb,GA1DhC,yBA8DP,EAAKc,2BA9DE,4CA5BE,0DA+FnBA,yBA/FmB,sBA+FQ,8BAAA/zB,EAAA,0DACnB,EAAK2U,MAAMqf,aADQ,iCAIU70B,IAAqB6F,6BAJ/B,YAMK,OAFpBivB,EAJe,SAMaA,EAAiBztB,OAAS,GANvC,gCAOUvG,IAAc4L,mCAAmCooB,GAP3D,OAOfA,EAPe,OAQf,EAAK/e,SAAS,CAAEgf,aAAcD,IARf,iCAUZ,GAVY,yBAcG90B,IAAqB2F,+BAdxB,aAgBF,OAFjBqqB,EAdmB,SAgBMA,EAAc3oB,OAAS,GAhB7B,kCAiBGvG,IAAcuL,kCAAkC2jB,GAjBnD,QAiBnBA,EAjBmB,OAkBnB,EAAKja,SAAS,CAAEka,kBAAmBD,IAlBhB,kCAqBhB,GArBgB,4CA/FR,EAuHnBgF,2BAvHmB,sBAuHU,sBAAAn0B,EAAA,sDACkC,MAAvDoB,SAASgzB,uBAAuB,qBAChChzB,SAASgzB,uBAAuB,oBAAoBC,QAF/B,2CAvHV,EA6HnBP,8BA7HmB,uCA6Ha,WAAO/xB,GAAP,eAAA/B,EAAA,6DACxBoM,EAAaxN,IAAMkB,WAAWC,QAAQwM,sBAC/Bc,OAAOjB,EAAWpG,WAAU,SAAAyG,GAAG,OAAIA,EAAIH,iBAAmBvK,KAAU,GAC/EnD,IAAMC,SAAS0N,YAAqBH,IAHR,SAKtBnM,IAAckN,8BAA8BpL,GALtB,cAM5BG,KAAeoyB,gBAAgBvyB,GANH,SAQtB,EAAKwyB,qBAAoB,EAAMxyB,GART,2CA7Hb,wDAwInB8xB,oBAxImB,uCAwIG,WAAO9xB,GAAP,eAAA/B,EAAA,yDAClBpB,IAAMC,SAASmY,aAAY,IAEZ,IAAXjV,EAHc,gCAIW9B,IAAciM,wBAAwBnK,GAAS,GAJ1D,cAIVyyB,EAJU,gBAKR,EAAKD,oBAAoBC,EAAczyB,GAL/B,OAQlBnD,IAAMC,SAASmY,aAAY,IART,2CAxIH,wDAmJnB2Y,mBAnJmB,sBAmJE,sCAAA3vB,EAAA,sDAOjB,IANIuB,EAAMsR,OAAOC,SAAS3I,KAAK7B,MAAMuK,OAAOC,SAAS3I,KAAK4E,QAAQ,KAAO,GAAG9H,MAAM,KAC9E5I,EAAW,GACXC,EAAO,SAEPm2B,GAAiB,EAEZ9lB,EAAI,EAAGA,EAAIpN,EAAIiF,OAAQmI,IAET,SADfkhB,EAAWtuB,EAAIoN,GAAG1H,MAAM,MACf,KACT5I,EAAWwxB,EAAS,GACpB3B,IAAe,GAEA,QAAf2B,EAAS,KACTvxB,EAAOuxB,EAAS,IAdP,OAkBb3B,KACAjwB,IAAWG,eAAeC,EAAUC,GACpCm2B,GAAiB,GApBJ,kBAsBVA,GAtBU,2CAnJF,EA4KnBF,oBA5KmB,uCA4KG,WAAOC,GAAP,iCAAAx0B,EAAA,sDAAqB+B,EAArB,+BAA+B,GAC7C4Q,GAAc,EACdsY,EAAe,GAEfyJ,EAAe,GACnBA,EAAe,EAAK/f,MAAM+f,aAErBF,EAKGE,EAAa/vB,SAAS5C,IAAY2yB,EAAa3lB,QAAQhN,IAAY,IACnE2yB,EAAarnB,OAAOqnB,EAAa3lB,QAAQhN,GAAU,GACnD,EAAKmT,SAAS,CAAEwf,aAAcA,KAN7BA,EAAa/vB,SAAS5C,IACvB,EAAK4S,MAAM+f,aAAa1sB,KAAKjG,GASjC2yB,EAAaluB,OAAS,IACtBmM,GAAc,EACdsY,EAAe,kFAGnB0I,GAAagB,sBAAsBhiB,EAAasY,GAvB9B,2CA5KH,wDAsMnB2J,uBAtMmB,uCAsMM,WAAOlU,GAAP,eAAA1gB,EAAA,yDACjBuN,EAAc,OAEd,EAAKoH,MAAMqf,aAHM,gCAIX,EAAK9e,SACP,CAAE8e,cAAc,IAChB,WACIx1B,QAAQC,IAAI,yBAPH,OAUjB8O,EAAc,KACdpO,IAAqBsG,eAAgB,EAXpB,wCAaX,EAAKyP,SACP,CAAE8e,cAAc,IAChB,WACIx1B,QAAQC,IAAI,wBAhBH,QAoBjBU,IAAqBsG,eAAgB,EApBpB,yBAuBfxF,IAAcsI,aAAa,aAAcgF,GAAa,GAvBvC,yBAwBf,EAAKwmB,2BAxBU,4CAtMN,wDAkOnBc,mBAlOmB,sBAkOE,oDAAA70B,EAAA,6DACjBpB,IAAMC,SAASmY,aAAY,IADV,SAIU,EAAK2Y,qBAJf,kDASU1vB,IAAcC,oBATxB,UAUK,MAVL,yCAYOD,IAAcoL,wCAZrB,WAYLoB,EAZK,OAcL8mB,EAAkB,KAGX,MAAP9mB,GAAeA,EAAIjG,OAAS,GAjBvB,oBAkBLiG,EAAInM,SAAQ,SAACD,GACTkzB,EAAgBvrB,KAAK3H,MAGD,UAApBiL,GAAQ4nB,SAtBP,kCAwBK,EAAK4B,kBAAkBvB,GAxB5B,uCA2BL,EAAKre,SAAS,CAAEvC,aAAa,EAAMsY,aAAc,kDACjD0I,GAAagB,uBAAsB,EAAM,iDA5BpC,kCAgCLxoB,GAAe,EAGf4oB,EAAaxB,EAAgB/sB,OAAS,EAAI,CAAC,CAAEzE,QAASwxB,EAAgB,KAAQ,GAnCzE,UAsCmBtzB,IAAc4F,UAAU,cAtC3C,WAwCc,KAFnBmvB,EAtCK,SA0CL7oB,GAAe,EAEXxE,EAAU,IAHdotB,EAAaC,GAIFntB,KAAI,SAAUC,GACrB,IAAI2rB,EAAWF,EAAgBxkB,QAAQjH,EAAE/F,QAAQW,QAAQ,IAAK,MAC1D+wB,GAAY,IACZ9rB,EAAQK,KAAKurB,EAAgBE,IAC7BF,EAAgBlmB,OAAOomB,EAAU,OAIzC9rB,EAAUA,EAAQ+rB,OAAOH,GAEzB,EAAKre,SAAS,CAAEse,aAAc7rB,KAG9B,EAAKuN,SAAS,CAAEse,aAAcD,IAKhB,IAAdwB,EA/DK,iBAgEDE,EAAWF,EAAWltB,KAAI,SAAUC,GAAK,OAAOA,EAAE/F,QAAQvB,OAAOkC,QAAQ,IAAK,QAElF,EAAKwS,SAAS,CAAEoe,YAAa2B,IAC7BtB,GAAaC,0BAA0BmB,GAE9B5V,EAAQ,EArEZ,aAqEeA,EAAQ4V,EAAWvuB,QArElC,oBAsEgC,MAA7BuuB,EAAW5V,GAAOpd,QAtErB,kCAuE4B9B,IAAciM,wBAAwB6oB,EAAW5V,GAAOpd,QAAQW,QAAQ,IAAK,KAAMyJ,GAvE/G,eAuEOqoB,EAvEP,iBAwES,EAAKD,oBAAoBC,EAAcO,EAAW5V,IAxE3D,QAqE0CA,IArE1C,iEA8EPlf,IAAcoL,wCA9EP,WAiFb3B,EAAO9K,IAAMkB,WAAWC,QAAQsF,YAEhC6vB,GAAsB,GAEtBxrB,EAAKnE,WArFQ,kCAsFgBtF,IAAc4F,UAAU,cAAc,GAtFtD,WAsFTsvB,EAtFS,OAwFT1rB,GAAY,EACQ,IAApB0rB,IAEAD,EADAzrB,EAAgC,OAApB0rB,GAIQ,IAApBA,EA9FS,kCA+FHl1B,IAAcsI,aAAa,aAAc,OAAO,GA/F7C,QAkGb,EAAK2M,SAAS,CAAE8e,aAAcvqB,EAAWhE,eAAe,IAlG3C,wBAoGb,EAAKyP,SAAS,CAAE8e,cAAc,EAAOvuB,eAAe,IApGvC,eAuGjBtG,IAAqBsG,cAAgByvB,EAvGpB,UA4GX,EAAKnB,2BA5GM,QA8GjBn1B,IAAMC,SAASmY,aAAY,IA9GV,4CAlOF,EAmVnB4X,cAnVmB,uCAmVH,WAAOlO,GAAP,qBAAA1gB,EAAA,6DACR6uB,EAAoC,MAAtBnO,EAAMtW,OAAOxH,MAAiB8d,EAAMtW,OAAOxH,MAAQ8d,EAAMtW,OAAO0kB,YAC9EC,EAAUrO,EAAMtW,OAAOxI,GACvBotB,EAAiBtO,EAAMtW,OAAOmW,QAAQ,MAAMjf,aAAa,aACzDiG,EAAUmZ,EAAMtW,OAAOmW,QAAQ,MAAMjf,aAAa,WAJ1C,SAMNnC,IAAqB+I,2BAA2B6mB,EAASF,EAAYG,EAAgBznB,GAN/E,2CAnVG,wDA4VnB6tB,iBA5VmB,uCA4VA,WAAO1U,GAAP,qBAAA1gB,EAAA,sDACXq1B,EAAmC,MAAtB3U,EAAMtW,OAAOxH,MAAiB8d,EAAMtW,OAAOxH,MAAQ8d,EAAMtW,OAAO0kB,YAC7EE,EAAiBtO,EAAMtW,OAAO9I,aAAa,aAC3Cg0B,EAAW5U,EAAMtW,OAAO9I,aAAa,WAH1B,UAMX+zB,EAAYlyB,KAAK0B,MAAMwwB,IACbtzB,QAAUuzB,EAGpBvyB,IAAE,UAAUwyB,YAAY,QAEyB,MAA7Cn0B,SAASC,eAAe,mBACxBD,SAASC,eAAe,kBAAkBm0B,gBAAgB,YAbnD,yDAgBXh3B,QAAQC,IAAR,MAGAsE,IAAE,UAAU8c,SAAS,QAC4B,MAA7Cze,SAASC,eAAe,mBACxBD,SAASC,eAAe,kBAAkB0qB,aAAa,YAAY,GArB5D,kCAyBX0J,EAAa/U,EAAMtW,OAAO9I,aAAa,WAzB5B,UA0BTnC,IAAqBkK,2BAA2B2lB,EAAgBqG,EAAWI,GA1BlE,0DA5VA,wDA0XnBC,cA1XmB,uCA0XH,WAAOC,GAAP,yBAAA31B,EAAA,0DACAoB,SAASC,eAAes0B,EAAQC,YAAc,MAAMzR,UAGnDwR,EAAQE,YAJT,wBAKJC,EALI,aAKU,EAAKnhB,MAAM6e,cALrB,EAQYsC,EAAQzoB,OAAOsoB,EAAQI,OAAO5W,MAAO,GARjD,oBAQH6W,EARG,KASRF,EAAQzoB,OAAOsoB,EAAQE,YAAY1W,MAAO,EAAG6W,GAC7C,EAAK9gB,SAAS,CAAEse,aAAcsC,IAG9B,EAAKnhB,MAAM2e,YAAcwC,EAAQxtB,MAAM,EAAG,EAAKqM,MAAM2e,YAAY9sB,QACjEmtB,GAAaC,0BAA0B,EAAKjf,MAAM2e,aAG9CpmB,EAAgB,GAjBZ,UAkBoBjN,IAAc4F,UAAU,cAlB5C,WAkBJmvB,EAlBI,OAoBR,EAAKrgB,MAAM2e,YAAYzrB,KAAI,SAAUC,GACjCktB,EAAgBntB,KAAI,SAAU8F,GACtB7F,EAAEpF,QAAQ,IAAK,MAAQiL,EAAO5L,SAC9BmL,EAAclF,KAAK2F,WAM3BT,EAAc1G,OAAS,GA7BnB,kCA8BEvG,IAAcsI,aAAa,aAAc2E,GAAe,GA9B1D,QAkCRhL,KAAe2c,aAAe,EAAKlK,MAAM2e,YAEjB,UAApBhoB,GAAQ4nB,UAER,EAAK4B,kBAAkBgB,GAtCnB,4CA1XG,wDAsanBG,aAtamB,uCAsaJ,WAAOvV,GAAP,2BAAA1gB,EAAA,6DACX0gB,EAAMF,iBACF0V,EAAOxV,EAAMtW,OAAOxI,GAFb,EAGsBs0B,EAAKjvB,MAAM,KAHjC,oBAGNkvB,EAHM,KAGWC,EAHX,KAKPC,EAAsB,WAAXD,EAAuBD,EAAkB,OAASA,EAAkB,OAKnFv3B,IAAMC,SAASmY,aAAY,IACvBsf,EAAU,CACVzrB,OAAQ,OACRC,QAAS,CAAE,8BAA+B,IAAK,eAAgB,oBAC/DC,KAAM5H,KAAKC,UAAU,CAAE+yB,gBAAiBA,EAAiBC,QAASA,KAd3D,SAiBYxrB,MAAM/M,IAAW2G,YAAa8xB,GAChDrhB,MAAK,SAACjK,GAAD,OAAcA,EAASurB,UAC5BthB,MAAK,SAACshB,GAEH,GAAiB,GAAbA,EAAKC,KAAW,CAEhB,IAAMj1B,EAAMsR,OAAO4jB,IAAIC,gBAAgB,IAAIC,KAAK,CAACJ,KAC3Cv1B,EAAOI,SAASM,cAAc,KACpCV,EAAKmJ,KAAO5I,EACZP,EAAK+qB,aAAa,WAAYsK,GAE9Bj1B,SAAS2J,KAAKjJ,YAAYd,GAE1BA,EAAK4R,QAGLhU,IAAMC,SAASmY,aAAY,SAG3BpY,IAAMC,SAASmY,aAAY,IAC3BjU,IAAE,UAAU8c,SAAS,QACrB+W,YAAW,WACP7zB,IAAE,UAAUwyB,YAAY,UACzB,QAERpgB,OAAM,SAAC5R,GACN3E,IAAMC,SAASmY,aAAY,IAC3BjU,IAAE,UAAU8c,SAAS,QACrB+W,YAAW,WACP7zB,IAAE,UAAUwyB,YAAY,UACzB,QA/CA,yDAtaI,wDAydnBT,kBAzdmB,uCAydC,WAAOvB,GAAP,qBAAAvzB,EAAA,sEACCuK,KAAKC,2BADN,cACZd,EADY,OAEZmtB,EAAMtD,EAAgBhkB,WACtBunB,GAAa,EACbR,EAAU,CACVzrB,OAAQ,OACRC,QAAS,CAAE,8BAA+B,IAAK,eAAgB,oBAC/DC,KAAM5H,KAAKC,UAAU,CAAEmwB,gBAAiBsD,EAAKE,MAAOrtB,EAAKe,YAP7C,SAUOG,MAAM/M,IAAW4G,SAAU6xB,GAC7CrhB,MAAK,SAAAjK,GACSA,EAASqf,OACfpV,MAAK,SAAUrO,GAChB,IAAIowB,EAAW7zB,KAAK0B,MAAM+B,EAAO1D,MAEjC4zB,EAAa3zB,KAAK0B,MAAMmyB,EAAS,IAAIhD,aAErCrzB,KAAKuU,SAAS,CAAE8e,aAAc8C,IAE9BE,EAAS12B,SAAQ,SAAA6G,GACb,IAAI8vB,EAAO9zB,KAAK0B,MAAMsC,GAClB+vB,EAAUD,EAAKE,QAAU,WACzBC,EAAMH,EAAKE,QAAU,OACL,GAAhBF,EAAKI,UACLj2B,SAASC,eAAe61B,GAASI,QAAU,KAC3Cl2B,SAASC,eAAe61B,GAAS5H,UAAUiI,OAAO,eAGtC,GAAZN,EAAKG,MACLh2B,SAASC,eAAe+1B,GAAKE,QAAU,KACvCl2B,SAASC,eAAe+1B,GAAK9H,UAAUiI,OAAO,wBAI3DpiB,OAAM,SAAC5R,GACN/E,QAAQC,IAAI8E,MApCJ,yDAzdD,sDAEf,EAAKsxB,qBACL,EAAKlgB,MAAQ,CACThC,aAAa,EACbsY,aAAc,GACdmE,kBAAmB,GACnB8E,aAAc,GACdV,aAAc,GACdF,YAAa,GACboB,aAAc,GACdV,cAAc,EACdjpB,KAAM,GACNtF,eAAe,GAEnB,EAAKutB,eAAiB,EAAKA,eAAe5P,KAApB,gBACtB,EAAKsS,cAAgB,EAAKA,cAActS,KAAnB,gBACrB,EAAKwR,uBAAyB,EAAKA,uBAAuBxR,KAA5B,gBAC9B,EAAK2P,eAAiB,EAAKA,eAAe3P,KAApB,gBAlBP,EADvB,0CAkgBI,WAAU,IAAD,OACL,OACI,yBAAKlZ,UAAU,eAAetI,GAAG,kBAC7B,kBAAC,SAAD,CAAM41B,OAAK,EAACl5B,KAAM,SAAU4L,UAAW,mBAAoBib,kBAAgB,EAACrP,MAAO,SAC/E,yBAAKlU,GAAG,QAAQsI,UAAU,wDAAwDutB,KAAK,SAAvF,2BAMA,kBAACC,GAAA,EAAD,KACI,wBAAIxtB,UAAU,UAAd,sBACA,kBAACytB,GAAA,EAAD,KACI,kBAACD,GAAA,EAAUE,OAAX,CAAkBC,GAAIF,KAAKG,OAAQC,SAAS,KAA5C,eAGA,kBAACL,GAAA,EAAUM,SAAX,CAAoBD,SAAS,KACzB,kBAACJ,GAAA,EAAKM,KAAN,KACI,kBAAC,KAAD,CAAiBC,UAAW,SAACvC,GAAD,OAAa,EAAKD,cAAcC,KACxD,kBAACwC,GAAA,EAAD,CAAOC,SAAO,EAACx2B,GAAG,YACd,+BACI,4BACI,oCACA,wBAAIsI,UAAU,aAAd,qBACA,wBAAI4L,MAAM,OAAV,qBAKR,kBAAC,KAAD,CAAWuiB,YAAY,UAClB,SAACC,GAAD,OACG,yCAAOC,IAAKD,EAASE,UAAcF,EAASG,gBACvC,EAAK9jB,MAAM6e,aAAa3rB,KAAI,SAACV,EAASI,GACnC,OACI,kBAAC,KAAD,CAAWquB,YAAazuB,EAASgC,IAAKhC,EAASgY,MAAO5X,IACjD,SAAC+wB,GAAD,OACG,sCAAInvB,IAAK5B,EAASgxB,IAAKD,EAASE,UACxBF,EAASI,eAAoBJ,EAASK,iBAC1C,4BACI,uBAAGxvB,IAAK5B,EAAS3E,MAAOuE,GACnBA,IAGT,wBAAI+C,UAAU,kBAAkB3C,QAASA,GACrC,2BAAO2C,UAAU,kCACbka,SAAU,EAAK4O,eAAe5P,KAAK,EAAMjc,GACzCgd,UAAS,EAAKxP,MAAM2e,YAAY9mB,MAC5B,SAACC,GAAD,OAASA,GAAOtF,KACpBoH,KAAK,MAAMjQ,KAAK,WAAWsE,MAAOuE,EAASvF,GAAIuF,EAAU,QAEjE,4BAAKI,EAAU,UAgBlC+wB,EAAShU,qBAS1C,kBAACqT,GAAA,EAAD,KACI,kBAACD,GAAA,EAAUE,OAAX,CAAkBC,GAAIF,KAAKG,OAAQC,SAAS,KAA5C,gBAGA,kBAACL,GAAA,EAAUM,SAAX,CAAoBD,SAAS,KACzB,kBAACJ,GAAA,EAAKM,KAAN,KACI,kBAACE,GAAA,EAAD,CAAOC,SAAO,GACV,+BACI,4BACI,sCACA,wCAGR,+BACI,4BACI,mCACA,4BAAI,kBAAC,IAAD,CAAiBpU,KAAM4U,IAAS1uB,UAAU,aAAaub,MAAM,YAErE,4BACI,mCACA,4BAAI,kBAAC,IAAD,CAAiBzB,KAAM4U,IAAS1uB,UAAU,aAAaub,MAAM,YAErE,4BACI,mCACA,4BAAI,kBAAC,IAAD,CAAiBzB,KAAM4U,IAAS1uB,UAAU,aAAaub,MAAM,iBAOzF,kBAACkS,GAAA,EAAD,KACI,kBAACD,GAAA,EAAUE,OAAX,CAAkBC,GAAIF,KAAKG,OAAQC,SAAS,KAA5C,WAGA,kBAACL,GAAA,EAAUM,SAAX,CAAoBD,SAAS,KACzB,kBAACJ,GAAA,EAAKM,KAAN,KACI,kBAACE,GAAA,EAAD,CAAOC,SAAO,GACV,+BACI,4BACI,+CACA,4BAAI,kBAAC,IAAD,CAAiBpU,KAAM6U,IAAc3uB,UAAU,aAAaub,MAAM,iBAS9F,yBAAKvb,UAAU,OACX,2BAAOA,UAAU,0BAAjB,uBAECvJ,KAAKgU,MAAMlP,cACR,yBAAKyE,UAAU,YACX,0BAAMA,UAAU,iBAAhB,oBACA,2BAAOA,UAAU,UACb,2BAAO5L,KAAK,WAAWsD,GAAG,gBAAgB2M,KAAK,gBAC3C6V,SAAUzjB,KAAKi0B,uBAAuBxR,KAAKziB,MAC3CwjB,QAASxjB,KAAKgU,MAAMqf,eACxB,0BAAM9pB,UAAU,mBAEf,IAKbvJ,KAAKgU,MAAMqf,aAAerzB,KAAKgU,MAAMuf,aAAarsB,KAAI,SAACV,EAASwH,GAC5D,OACI,kBAACgpB,GAAA,EAAD,CAAMxuB,IAAKwF,GACP,kBAAC+oB,GAAA,EAAUE,OAAX,CAAkBC,GAAIF,KAAKG,OAAQC,SAAUppB,EAAI,GAC5CxH,EAAQH,WAEb,kBAAC0wB,GAAA,EAAUM,SAAX,CAAoBD,SAAUppB,EAAI,GAC9B,kBAACgpB,GAAA,EAAKM,KAAN,CAAW/tB,UAAU,cAChB/C,EAAQ8B,WAAWpB,KAAI,SAAC3E,EAAMqE,GAC3B,OACI,yBAAK4B,IAAK5B,EAAU,GAChB,uBAAG4B,IAAKwF,EAAIpH,EAAS2C,UAAU,gBAA/B,IAAgD,cAAgBhH,EAAOC,KAAK0B,MAAM3B,GAAMnB,QAAU,KAElG,8BAAUmB,KAAMA,EAAKsD,OAAQsyB,QAAS51B,EAAOC,KAAK0B,MAAM3B,GAAMnB,QAAU,GAAIguB,UAAW5oB,EAAQH,UAAW+xB,KAAM,GAAIxxB,QAASA,EAASjJ,KAAK,OAAO4L,UAAU,aAAa8uB,KAAM,GAAI5U,SAAU,EAAKgR,kBAC3LlyB,GAAQA,EAAKsD,OAAS,GAAoD,KAA/CtD,EAAK4L,UAAU,EAAG5L,EAAK6L,QAAQ,aACzD8jB,GAAS1vB,KAAK0B,MAAM3B,EAAK4L,UAAU,EAAG5L,EAAK6L,QAAQ,cAAgB,KAAM,KAAM,EAAG,IAAM,gBAU3HpO,KAAKgU,MAAMya,kBAAkBvnB,KAAI,SAACV,EAASwH,GAC5C,OACI,kBAACgpB,GAAA,EAAD,CAAMxuB,IAAKwF,GACP,kBAAC+oB,GAAA,EAAUE,OAAX,CAAkBC,GAAIF,KAAKG,OAAQC,SAAUppB,EAAI,GAC5CxH,EAAQH,WAEb,kBAAC0wB,GAAA,EAAUM,SAAX,CAAoBD,SAAUppB,EAAI,GAC9B,kBAACgpB,GAAA,EAAKM,KAAN,CAAW/tB,UAAU,cAEhB,kBAACiuB,GAAA,EAAD,CAAOC,SAAO,EAACluB,UAAU,iBACtB,+BACI,4BACI,0CACA,+CAGR,+BAEQ/C,EAAQD,OAAOW,KAAI,SAACmC,EAAOzC,GACvB,OACI,wBAAI4B,IAAK5B,GACL,wBAAI2C,UAAU,gBACU,uBAAlBF,EAAMxC,SACJwC,EAAM4B,WAAW/D,KAAI,SAACoxB,GAClB,OACI,yBAAK/uB,UAAU,aAAf,IAA6B+uB,EAAMl3B,QAAnC,QAEHiI,EAAM3C,eAInB,wBAAI0oB,UAAW5oB,EAAQH,UAAWO,QAASoH,GAGhB,uBAAlB3E,EAAMxC,SAECwC,EAAM4B,WAAW/D,KAAI,SAACqxB,GAClB,OACI,yBAAK56B,KAAK,OAAO66B,gCAAgC,EAAMnJ,iBAAe,EAAC9lB,UAAU,kHAC7EqE,KAAMvE,EAAM3C,cAAgB,IAAM6xB,EAASn3B,QAASH,GAAIoI,EAAM3C,cAAgB,IAAM6xB,EAASn3B,QAASa,MAAOoH,EAAMpC,YAAasgB,mBAAiB,kBACjJ+H,OAAQ,EAAKrB,eAFjB,KAEmCsK,EAASvtB,MAF5C,QAUK,QAAd3B,EAAMvC,MAAgC,cAAduC,EAAMvC,KAC5B,8BAAUnJ,KAAK,OAAO66B,gCAAgC,EAAMnJ,iBAAe,EAAC9lB,UAAU,gGACnFqE,KAAMvE,EAAM3C,cAAezF,GAAIoI,EAAM3C,cAAe6gB,mBAAiB,kBACrE9D,SAAU,EAAKwK,eAAkB5kB,EAAMpC,YAF1C,MAIc,OAAdoC,EAAMvC,KACH,+BACI,4BAAQ7F,GAAIoI,EAAM3C,cAAe6C,UAAU,aAAaka,SAAU,EAAK2O,gBAClE/oB,EAAMxC,SAASP,MAAM,KAAKY,KAAI,SAACjF,GAE5B,OADApE,QAAQC,IAAImE,GACJ,4BAAQhB,GAAIoI,EAAM3C,cAAezE,MAAOA,GAAQA,QAOhE,yBAAKtE,KAAK,OAAO66B,gCAAgC,EAAMnJ,iBAAe,EAAC9lB,UAAU,gGAC7EqE,KAAMvE,EAAM3C,cAAezF,GAAIoI,EAAM3C,cAAezE,MAAOoH,EAAMpC,YAAasgB,mBAAiB,kBAC/F+H,OAAQ,EAAKrB,eAFjB,IAEoC5kB,EAAMpC,YAF1C,yBA1uBhG,GAAwCmO,a,mBCodzB,O,WAjeX,aAAe,IAAD,gCAyBdqjB,wBAzBc,sBAyBY,sBAAAp5B,EAAA,6DACtBxB,QAAQC,IAAIyD,KAAe2c,cADL,kBAEf3c,KAAe2c,cAFA,2CAzBZ,KA8Bdwa,qBA9Bc,sBA8BS,sBAAAr5B,EAAA,0FA9BT,KAiCdwuB,KAjCc,sBAiCP,4CAAAxuB,EAAA,6DACH,EAAKs5B,kBAAoB,KACzB,EAAKC,gBAAkB,KAFpB,SAI8B,EAAKH,0BAJnC,OAIC7sB,EAJD,OAMCitB,EAAmB,EACnBlN,EAAgB,GAChB/lB,EAAS,GARV,eAWegG,GAXf,iEAWQE,EAXR,QAYKgtB,EAAkB,GAZvB,UAeKj7B,QAAQC,IAAIgO,GAfjB,UAgBoBtN,IAAqB+F,uBAAuB,OAAQuH,GAhBxE,eAgBKlG,EAhBL,OAiBK/H,QAAQC,IAAI8H,GAjBjB,UAmBWrE,KAAew3B,aAAajtB,GAAK+hB,KAAKjoB,GAnBjD,2DAsBKkzB,EAAe,KACfnN,EAActkB,KAAd,MACAxJ,QAAQC,IAAR,MACA+6B,IAzBL,yBA4BSxuB,EAAW,GACQ,IAAnByuB,IACAzuB,EAAWyuB,GAEfx5B,IAAc6P,4BAA4BvJ,EAAQyE,EAAU,OAAQ,EAAKiF,QAASxD,GAhCvF,oKAoCHjO,QAAQC,IAAI,oBAAsB+6B,GApC/B,kBAqCIjtB,EAAqB/F,QAAUgzB,GAA0BlN,EAAcA,EAAc9lB,OAAS,IArClG,8EAjCO,KA0EdioB,aA1Ec,sBA0EC,wCAAAzuB,EAAA,sEACsB,EAAKo5B,0BAD3B,OACP7sB,EADO,OAGPotB,EAAiB,GACjB/G,EAAoB,GAJb,eAMOrmB,GANP,gEAMAE,EANA,QAOHmtB,EAA0B,GAPvB,oBAUuB13B,KAAew3B,aAAajtB,GAAKgiB,eAVxD,QAUHmE,EAVG,0DAaHgH,EAAuB,KACvBD,EAAe3xB,KAAf,MACAxJ,QAAQC,IAAR,MAfG,qBAkB4B,IAA3Bm7B,IACAhH,EAAoBgH,GAGxB35B,IAAc6P,4BAA4B,GAAI8iB,EAAmB,eAAgB,EAAK3iB,QAASxD,GAE3D,GAAhCmmB,EAAkBlE,WAxBnB,wBAyBC9vB,IAAMC,SAASqY,YAAS0b,EAAkB1b,WAC1C,EAAKqiB,gBAAkB9sB,EA1BxB,mBA2BQ,GA3BR,kLAiCXjO,QAAQC,IAAI,6BAA+Bk7B,EAAenzB,QAjC/C,kBAkCJ+F,EAAqB/F,QAAUmzB,EAAenzB,QAAgBmzB,EAAeA,EAAenzB,OAAS,IAlCjG,8EA1ED,KAgHdoU,eAhHc,uCAgHG,WAAOmc,GAAP,iDAAA/2B,EAAA,6DAAc65B,EAAd,yCACoB,EAAKT,0BADzB,YAGe,OAFxB7sB,EADS,SAGuBA,EAAqB/F,QAAU,GAHtD,yCAIF,EAAKszB,WAJH,OAOTvzB,EAAS,GACTwzB,EAAiB,GACjBC,EAA0B,GAAI1N,EAAgB,GAC9C2N,GAAoB,EAVX,eAYK1tB,GAZL,kEAYFE,EAZE,QAaLytB,EAAc,GAbT,oBAgBU/6B,IAAqB+F,uBAAuB,iBAAkBuH,GAhBxE,eAgBLlG,EAhBK,QAiBEsU,iBAAiBG,cAA0D,IAAzCzU,EAAOsU,iBAAiBG,cAC7D+b,EAAQxwB,EAAOsU,iBAAiBG,cAGpCzU,EAAOsU,iBAAiBE,aAAgB8e,EACpC,sBAAwBtzB,EAAOsU,iBAAiBE,aAEpDvc,QAAQC,IAAI8H,GAxBP,UA0BkBrE,KAAew3B,aAAajtB,GAAKmO,eAAerU,GA1BlE,QA0BLwzB,EA1BK,0DA6BLG,EAAW,KACX5N,EAActkB,KAAd,MA9BK,qBAiCc,IAAfkyB,IACAH,EAAiBG,GAGrBj6B,IAAc6P,4BAA4BvJ,EAAQwzB,EAAgB,iBAAkB,EAAK9pB,QAASxD,GAE5D,MAAlCstB,EAAetJ,iBAA6D,GAAlCsJ,EAAetJ,gBAvCxD,kCAwC6B,EAAK0J,mBAAmB1tB,GAxCrD,WAwCG2tB,EAxCH,OAyCD57B,QAAQC,IAAI27B,GAEa,MAArBA,GAAoE,MAAvCA,EAAkBtJ,kBA3ClD,wBA4CG,EAAKwI,kBAAoB7sB,EA5C5B,mBA6CU,GA7CV,QA+CGutB,EAAwBhyB,KAAKoyB,GA/ChC,gCAkDDH,GAAoB,EAlDnB,gLAuDT1tB,EAAqB/F,QAAU8lB,EAAc9lB,QAAU+F,EAAqB/F,QAAUwzB,EAAwBxzB,OAvDrG,oBAwDThI,QAAQC,IAAIu7B,EAAwBA,EAAwBxzB,OAAS,IAErEhI,QAAQC,WAAYu7B,EAAwBA,EAAwBxzB,OAAS,IAGzE+F,EAAqB/F,QAAUwzB,EAAwBxzB,OA7DlD,0CA8DEwzB,EAAwBA,EAAwBxzB,OAAS,IA9D3D,eAiEThI,QAAQC,IAAI6tB,EAAcA,EAAc9lB,OAAS,IAEjDhI,QAAQC,WAAY6tB,EAAcA,EAAc9lB,OAAS,IAnEhD,kBAqEF8lB,EAAcA,EAAc9lB,OAAS,IArEnC,iCAwENyzB,GAxEM,+EAhHH,2DA4LdE,mBA5Lc,uCA4LO,WAAO1tB,GAAP,iBAAAzM,EAAA,6DACbgL,EAAW,GADE,SAGE7L,IAAqB+F,uBAAuB,6BAA8BuH,GAH5E,cAGblG,EAHa,OAKjB/H,QAAQC,IAAI8H,GALK,kBAOIrE,KAAew3B,aAAajtB,GAAKikB,2BAA2BnqB,GAPhE,OAObyE,EAPa,yDASbxM,QAAQC,IAAR,MACAuM,EAAQ,KAVK,mCAYP/K,IAAc6P,4BAA4BvJ,EAAQyE,EAAU,6BAA8B,EAAKiF,QAASxD,GAZjG,2CAejBjO,QAAQC,IAAIuM,GAfK,kBAiBVA,GAjBU,gEA5LP,2DAgNdmS,2BAhNc,uCAgNe,WAAOkd,GAAP,iBAAAr6B,EAAA,yDACrBgL,EAAW,GACfxM,QAAQC,IAAI,EAAK66B,mBAEa,MAA1B,EAAKA,kBAJgB,iCAKFn6B,IAAqB+F,uBAAuB,6BAA8B,EAAKo0B,mBAL7E,cAKjB/yB,EALiB,OAOrB/H,QAAQC,IAAI8H,GAEZA,EAAO4U,eAA2C,IAAzB5U,EAAO4U,eAAwBkf,EAAM9zB,EAAO4U,eAThD,UAYJ,EAAKmf,0BAA0B,EAAKhB,kBAAmB/yB,GAZnD,WAYrByE,EAZqB,OAarBxM,QAAQC,IAAIuM,GAEY,MAApBA,EAASwmB,QAfQ,wBAgBjB5yB,IAAMC,SAASqY,YAASlM,EAASwmB,UAhBhB,kBAiBVxmB,GAjBU,iCAoBVA,GApBU,yDAuBd,EAAK8uB,WAvBS,4CAhNf,2DA4OdQ,0BA5Oc,uCA4Oc,WAAO7tB,EAAKlG,GAAZ,iBAAAvG,EAAA,6DACpBk6B,EAAc,GADM,kBAGCh4B,KAAew3B,aAAajtB,GAAK0Q,2BAA2B5W,GAH7D,OAGhByE,EAHgB,uDAMpBkvB,EAAW,KANS,yBASD,IAAfA,IACAlvB,EAAWkvB,GAGfj6B,IAAc6P,4BAA4BvJ,EAAQyE,EAAU,6BAA8B,EAAKiF,QAASxD,GAbpF,8CAgBjBzB,GAhBiB,+DA5Od,6DAgQduvB,eAhQc,sBAgQG,8CAAAv6B,EAAA,6DAgBTgL,EAAW,GAhBF,SAmBoB,EAAKouB,0BAnBzB,YAqBe,OAFxB7sB,EAnBS,SAqBuBA,EAAqB/F,QAAU,GArBtD,yCAsBF,EAAKszB,WAtBH,OA0BT/H,EAAc,GAAIyI,EAAiB,GAAIb,EAAiB,GA1B/C,eA2BKptB,GA3BL,iEA2BFE,EA3BE,QA4BTjO,QAAQC,IAAIgO,GA5BH,UA8BoBtN,IAAqB+F,uBAAuB,gBAAiBuH,GA9BjF,eA8BLguB,EA9BK,OAgCTj8B,QAAQC,IAAIg8B,GACZj8B,QAAQC,IAAIG,IAAMkB,WAAWC,QAAQmX,UAEJ,IAA7BujB,EAAiBvjB,WACjBujB,EAAiBvjB,SAAWtY,IAAMkB,WAAWC,QAAQmX,UAGzD1Y,QAAQC,IAAIg8B,GAvCH,UAyCQ,EAAKC,6BAA6BjuB,EAAKguB,GAzC/C,QA2CwB,OAFjCzvB,EAzCS,QA2CIoM,kBAA4BpM,EAASkS,SAAS1W,OAAS,GAEtC,GAAtBurB,EAAYvrB,OACZurB,EAAc/mB,EAASkS,SAAS,GAAG6U,YAEnCA,EAAY/pB,KAAKgD,EAASkS,SAAS,GAAG6U,aAGtC4I,EAAc,CACdvjB,iBAAkBpM,EAASoM,iBAC3B2a,YAAa/mB,EAASkS,SAAS,GAAG6U,YAClCtlB,IAAKA,GAGT+tB,EAAexyB,KAAK2yB,IAEpBhB,EAAe3xB,KAAKgD,GA3Df,mJA8DbpM,IAAMC,SAASwW,YAAS0c,IACxBvzB,QAAQC,IAAI,kBAAoBk7B,EAAenzB,QAE3C+F,EAAqB/F,QAAUmzB,EAAenzB,OAjErC,0CAkEFmzB,EAAeA,EAAenzB,OAAS,IAlErC,iCAqENg0B,GArEM,gEAhQH,KAwUd9f,SAxUc,uCAwUH,WAAOjO,EAAKlG,GAAZ,mBAAAvG,EAAA,yDACHk6B,EAAc,GAAIlvB,EAAW,GAEtB,IAAPyB,EAHG,gCAI8B,EAAK2sB,0BAJnC,YAMyB,OAFxB7sB,EAJD,SAMiCA,EAAqB/F,QAAU,GANhE,yCAOQ,EAAKszB,WAPb,OAUHrtB,EAAMF,EAAqB,GAVxB,iCAccrK,KAAew3B,aAAajtB,GAAKiO,SAASnU,GAdxD,QAcHyE,EAdG,yDAiBHkvB,EAAW,KAjBR,yBAoBgB,IAAfA,IACAlvB,EAAWkvB,GAGfj6B,IAAc6P,4BAA4BvJ,EAAQyE,EAAU,WAAY,EAAKiF,QAASxD,GAxBnF,8CA2BAzB,GA3BA,gEAxUG,6DAuWd0vB,6BAvWc,uCAuWiB,WAAOjuB,EAAKlG,GAAZ,iBAAAvG,EAAA,6DACvBk6B,EAAc,GADS,SAGa,MAAhC3zB,EAAO0B,8BACC1B,EAAO0B,sBAJI,SAOF/F,KAAew3B,aAAajtB,GAAK2O,cAAc7U,GAP7C,OAOnByE,EAPmB,uDAUvBkvB,EAAW,KAVY,yBAaJ,IAAfA,IACAlvB,EAAWkvB,GAGfj6B,IAAc6P,4BAA4BvJ,EAAQyE,EAAU,gBAAiB,EAAKiF,QAASxD,GAjBpE,8CAoBpBzB,GApBoB,+DAvWjB,6DAgYd4vB,kBAhYc,uCAgYM,WAAOnuB,EAAK+kB,GAAZ,6BAAAxxB,EAAA,6DACZk6B,EAAc,GACd3zB,EAAS,CAAEirB,QAASA,GAFR,SAIiB,EAAK4H,0BAJtB,YAMY,OAFxB7sB,EAJY,SAMoBA,EAAqB/F,QAAU,GANnD,yCAOL,EAAKszB,WAPA,OAWZH,EAAiB,GAXL,eAYEptB,GAZF,iEAYLE,EAZK,4BAcavK,KAAew3B,aAAajtB,GAAKouB,kBAAkBt0B,GAdhE,QAcJyE,EAdI,0DAiBRkvB,EAAW,KACXP,EAAe3xB,KAAf,MAlBQ,yBAqBW,IAAfkyB,IACAlvB,EAAWkvB,GAGfj6B,IAAc6P,4BAA4BvJ,EAAQyE,EAAU,oBAAqB,EAAKiF,QAASxD,GAzBvF,oKA8BhBjO,QAAQC,IAAI,kCAAoCk7B,EAAenzB,QA9B/C,kBA+BT+F,EAAqB/F,QAAUmzB,EAAenzB,QAAgBmzB,EAAeA,EAAenzB,OAAS,IA/B5F,8EAhYN,6DAmadskB,WAnac,uCAmaD,WAAOzQ,EAAM5N,GAAb,uBAAAzM,EAAA,yDACE,IAAPyM,EADK,gCAE4B,EAAK2sB,0BAFjC,YAIuB,OAFxB7sB,EAFC,SAI+BA,EAAqB/F,QAAU,GAJ9D,yCAKM,EAAKszB,WALX,OAQLrtB,EAAMF,EAAqB,GARtB,uBAWkBpN,IAAqB+F,uBAAuB,aAAcuH,GAX5E,cAWL0N,EAXK,QAYM/T,kBAAoBnI,IAAWE,iBAK1CgB,IAAqBsG,gBACrB4U,EAAKC,qBAAiF,IAA1DH,EAAeC,cAAcC,KAAKC,qBAA6BH,EAAeC,cAAcC,KAAKC,qBACvHD,EAAKC,qBACXD,EAAKE,iBAAyE,IAAtDJ,EAAeC,cAAcC,KAAKE,iBAAyBJ,EAAeC,cAAcC,KAAKE,iBAC/GF,EAAKE,iBACXF,EAAKG,mBAA6E,IAAxDL,EAAeC,cAAcC,KAAKG,mBAA2BL,EAAeC,cAAcC,KAAKG,mBACnHH,EAAKG,mBACXH,EAAKI,kBAA2E,IAAvDN,EAAeC,cAAcC,KAAKI,kBAA0BN,EAAeC,cAAcC,KAAKI,kBACjHJ,EAAKI,mBAzBN,UA4BiBoQ,EAAe3B,kBAAkB7O,EAAM5N,GA5BxD,eA4BL2N,EA5BK,OA8BJjb,IAAqBsG,gBACtB2U,EAAgD,IAAhCD,EAAeC,cAC3BD,EAAeC,cAAgBA,GAGlB,MAAjBA,GAA0C,IAAjBA,EACzBD,EAAeC,cAAgBA,EAE/BD,EAAeE,KAAOA,EAItB6f,EAAc,GA1CT,oBA6CgBh4B,KAAew3B,aAAajtB,GAAKqe,WAAW3Q,GA7C5D,QA6CDnP,EA7CC,0DAgDLkvB,EAAW,KAhDN,yBAmDc,IAAfA,IACAlvB,EAAWkvB,GAGfj6B,IAAc6P,4BAA4BqK,EAAgBnP,EAAU,aAAc,EAAKiF,QAASxD,GAvD3F,8CA0DFzB,GA1DE,iEAnaC,wDACVrK,KAAKm5B,UAAY,CACbnJ,WAAY,aACZ3F,YAAa,+CAGjBrqB,KAAKsP,QAAU,c,iDAOnB,WACI,OAAOtP,KAAKm6B,kB,IALhB,SAAoBruB,GAChB9L,KAAKm6B,iBAAmBruB,I,6BAW5B,WACI,OAAO9L,KAAKo6B,oB,IALhB,SAAsBtuB,GAClB9L,KAAKo6B,mBAAqBtuB,M,MCT9BuuB,GAAY,EACHrH,GAAb,kDACE,WAAYlf,GAAQ,IAAD,EAGjB,GAHiB,qBACjB,cAAMA,IAuCRmf,0BAxCmB,uCAwCS,WAAOqH,GAAP,SAAAj7B,EAAA,sDACgB,MAAtCoB,SAASC,eAAe,YAA2C,iBAAb45B,GAC5C,MAAZA,IACAD,GAAYC,EAASz0B,OAErBy0B,EAAWA,EAASpzB,KAAI,SAAUC,GAChC,OAAiB,MAAbA,EAAE/F,QACG+F,EAAE/F,QAAQW,QAAQ,IAAK,KAEvBoF,EAAEpF,QAAQ,IAAK,QAI1BtB,SAASC,eAAe,WAAWytB,YAAc,iBAAmBmM,EAASpzB,KAAI,SAAA5B,GAAC,OAAIA,EAAI,QAG5FrH,IAAMC,SAASmY,aAAY,IAhBD,2CAxCT,wDA2DnBtC,uBA3DmB,sBA2DM,sBAAA1U,EAAA,sDACvB+C,IAAE,wCAAwC6P,QADnB,2CA3DN,EA+DnByc,kBA/DmB,uCA+DC,WAAO3O,GAAP,eAAA1gB,EAAA,sDAClB0gB,EAAMtW,OAAOklB,UAAUhP,OAAO,WAC1BiP,EAAU7O,EAAMtW,OAAOolB,oBAEf5K,MAAM6K,UAChBF,EAAQ3K,MAAM6K,UAAY,KAE1BF,EAAQ3K,MAAM6K,UAAYF,EAAQG,aAAe,KAPjC,2CA/DD,wDA0EnBwL,wBAA0B,SAACC,GAA6B,IAAjB5zB,EAAgB,uDAAN,EAC/C/I,QAAQC,IAAI08B,EAAa,OAAS5zB,GAClCA,IAEIyzB,IAAaG,GAAyB,IAAX5zB,EAC7B,EAAK2N,SAAS,CAAEoZ,YAAY,KAG9B,EAAKpZ,SAAS,CAAEoZ,YAAY,EAAMrD,aAAc,2CAEhD2L,YAAW,WAAQ,EAAKsE,wBAAwBj9B,IAAW2C,eAAgB2G,KAAY,OApFtE,EAwFnB6mB,oBAxFmB,sBAwFG,kCAAApuB,EAAA,yDAChBo7B,EAAqBJ,IAAa/8B,IAAW2C,eAEtB,YAAvBQ,SAASitB,YAA6B+M,EAHtB,uBAIlB58B,QAAQC,IAAI28B,GACRC,EAAWD,EAAqB,8BAAgC,yCACpE,EAAKlmB,SAAS,CAAEoZ,YAAY,EAAMrD,aAAcoQ,IAChD,EAAKH,wBAAwBj9B,IAAW2C,eAAgB,GAPtC,0BAUlB,EAAKsU,SAAS,CAAEoZ,YAAY,IAVV,eAYpB1vB,IAAMC,SAASmY,aAAY,IAZP,UAcCskB,GAAiB9M,OAdlB,WAgBO,OAFvBxjB,EAdgB,QAgBP2lB,YAA8C,MAAxB3lB,EAASggB,YAhBxB,wBAiBlB,EAAK9V,SAAS,CACZvC,aAAa,EACbsY,aAAuC,MAAxBjgB,EAASggB,YAAuBhgB,EAASggB,YAAc,KAExEpsB,IAAMC,SAASmY,aAAY,IArBT,4CAyBUskB,GAAiB7M,eAzB3B,WA2BgB,OAFhCmE,EAzBgB,QA2BEjC,YAAuD,MAAjCiC,EAAkB5H,YA3B1C,wBA4BlBpsB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc2H,EAAkB5H,cA/BhB,2BAoCsB,MAApCsQ,GAAiB/B,gBACnB,EAAKrkB,SAAS,CAAEqmB,iBAAiB,IAEjC,EAAKrmB,SAAS,CAAEsmB,iBAAiB,IAvCjB,4CAxFH,EAqInBnM,kBArImB,uCAqIC,WAAO3O,GAAP,eAAA1gB,EAAA,sDAClB0gB,EAAMtW,OAAOklB,UAAUhP,OAAO,WAC1BiP,EAAU7O,EAAMtW,OAAOolB,oBAEf5K,MAAM6K,UAChBF,EAAQ3K,MAAM6K,UAAY,KAE1BF,EAAQ3K,MAAM6K,UAAYF,EAAQG,aAAe,KAPjC,2CArID,wDAgJnBR,iBAhJmB,sBAgJA,4BAAAlvB,EAAA,sEACSb,IAAqB2F,+BAD9B,OAGI,OAFjBqqB,EADa,SAGYA,EAAc3oB,OAAS,GAClD,EAAK0O,SAAS,CAAEka,kBAAmBD,IACnC/tB,SAASC,eAAe,WAAWujB,MAAMC,QAAU,SAEnDzjB,SAASC,eAAe,gBAAgBujB,MAAMC,QAAU,QAPzC,2CA7I0B,IAAvC5T,eAAeC,QAAQ,cAA6D,MAAvCD,eAAeC,QAAQ,aAAsB,CAC5F,IAAIE,EAAYnR,IAAckR,2BAC9BF,eAAemQ,QAAQ,YAAahQ,GALrB,OAQjBH,eAAemQ,QAAQ,UAAW,IAElC,EAAKzM,MAAQ,CACXG,gBAAgB,EAChBymB,iBAAiB,EACjBC,iBAAiB,EACjB5L,gBAAiB,GACjBjd,aAAa,EACbsY,aAAc,GACdtK,MAAM,EACNyO,kBAAmB,GACnBoE,aAAc,GACdiI,WAAY,GACZC,YAAY,EACZpN,YAAY,EACZqN,SAAS,GAEX,EAAK/H,0BAA4B,EAAKA,0BAA0BxQ,KAA/B,gBAzBhB,EADrB,yDA6BE,SAAsBzQ,EAAasY,GAC7BtY,GAA4D,MAA7CvR,SAASC,eAAe,mBACzCD,SAASC,eAAe,kBAAkB0qB,aAAa,YAAY,GACnEhpB,IAAE,sBAAsB8d,IAAI,UAAW,SACvC9d,IAAE,sBAAsBkI,KAAKggB,IACyB,MAA7C7pB,SAASC,eAAe,oBACjCD,SAASC,eAAe,kBAAkBm0B,gBAAgB,YAAY,GACtEzyB,IAAE,sBAAsB8d,IAAI,UAAW,QACvC9d,IAAE,sBAAsBkI,KAAK,OArCnC,+BA6JE,SAAkBwJ,GAAQ,IAAD,OACvBxW,IAAW2C,eAAiB,EAE5BhC,IAAMC,SAASmY,aAAY,IAGM,MAA7BrW,KAAK8T,MAAM3B,SAAS6B,OAA+D,MAA9ChU,KAAK8T,MAAM3B,SAAS6B,MAAM6X,kBAChB,IAA9C7rB,KAAK8T,MAAM3B,SAAS6B,MAAM6X,kBAE7B7rB,KAAKuU,SAAS,CACZvC,aAAa,EACbsY,aAActqB,KAAK8T,MAAM3B,SAAS6B,MAAM6X,mBAI5CjiB,KAAKC,2BACFyK,MAAK,SAAAvL,GAAI,OAAI,EAAKwL,SAAS,CAAEJ,gBAAgB,OAC7CK,OAAM,SAAAZ,GAAG,OAAI,EAAKW,SAAS,CAAEJ,gBAAgB,OAGhD1T,SAAS0uB,mBAAqB,WACA,aAAxB1uB,SAASitB,YACX1tB,KAAKuU,SAAS,CAAEoZ,YAAY,KAE9BlL,KAAKziB,MAKLS,SAASC,eAAe,oBAAoBujB,MAAMC,QAAU,UA1LlE,oBA8LE,WACE,OACE,yBAAK3a,UAAU,eACb,kBAAC0xB,EAAA,EAAD,MACA,kBAAC3T,EAAA,EAAD,CAAWrS,OAAK,EAAChU,GAAG,mBAClB,kBAAC,KAAD,KACE,kBAAC,KAAD,CAAKiU,GAAI,EAAG3L,UAAU,sBAClBvJ,KAAKgU,MAAMG,eAA0D,KAAzC,kBAAC,IAAD,CAAUa,GAAG,yBAC1ChV,KAAKgU,MAAM6mB,gBAAkB,kBAAC,IAAD,CAAU7lB,GAAG,+BAAkC,KAC5EhV,KAAKgU,MAAM4mB,gBAAkB,kBAAC,IAAD,CAAU5lB,GAAG,0BAA6B,KAExE,yBAAKzL,UAAU,6DACb,kBAAC,EAAD,MACA,yBAAKA,UAAU,wBACb,wBAAIA,UAAU,6DAAd,aACA,wBAAIA,UAAU,sDAAsDtI,GAAG,WAAvE,gBAA+FjB,KAAKgU,MAAM8mB,YAE1G,yBAAKvxB,UAAU,YACb,yBAAKA,UAAU,oEACb,wBAAIA,UAAU,gCAAd,UACA,yBAAKA,UAAU,YACb,yBAAKA,UAAU,SACb,yBAAKvI,IAAK9D,IAAWmG,gBAAkB,gBAAiB8R,MAAM,MAAM5L,UAAU,6BAEhF,yBAAKA,UAAU,SACb,uBAAGA,UAAU,gCAAb,+BACA,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,QADF,IAC8C,0BAAMA,UAAU,kBAAhB,MAC9C,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,YADF,IACkD,0BAAMA,UAAU,uBAIxE,yBAAKA,UAAU,8CAEb,yBAAKA,UAAU,mBACb,kBAAC,GAAD,OAEF,4BAAQ5L,KAAK,SAASsD,GAAG,mBAAmBgY,QAASjZ,KAAK+T,uBAAwBxK,UAAU,oBAA5F,cAEA,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,sBAAf,YACA,yBAAKA,UAAU,aAAf,WAEF,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,qBAAf,wBAAwD,6BAAxD,YACA,yBAAKA,UAAU,aAAf,SAEF,yBAAKA,UAAU,qDACb,yBAAKA,UAAU,qBAAf,SACA,yBAAKA,UAAU,aAAf,aAIN,wBAAIA,UAAU,gBACd,yBAAKA,UAAU,OACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCACb,4BAAQ5L,KAAK,SAASsD,GAAG,iBAAiBsI,UAAU,kCAClD0P,QAASjZ,KAAKytB,qBADhB,iBAGCztB,KAAKgU,MAAMhC,aAAehS,KAAKgU,MAAM2Z,WACpC,2BAAOpkB,UAAU,kBAAmBvJ,KAAKgU,MAAMsW,cAC7C,KAEJ,2BAAOrpB,GAAG,oBAAoBi6B,WAAY,CAAEhX,QAAS,QAAU3a,UAAU,mBAEzE,yBAAKvI,IAAK9D,IAAWmG,gBAAkB,oBAAqBkG,UAAU,uCAOlF,kBAAC,KAAD,CAAK2L,GAAI,EAAG3L,UAAU,aACpB,kBAACuG,GAAA,EAAD,cAzQd,GAAkCsF,aAwRnB,OAAI4d,G,qCCtRNmI,GAAb,kDACE,WAAYrnB,GAAQ,IAAD,gCACjB,cAAMA,IAuCRsnB,cAAgB,SAAAj0B,IAGmB,KAA7BA,EAAEsC,OAAOqiB,iBAFC,aAE+BuP,KAAKl0B,EAAEsC,OAAOqiB,mBACzD,EAAKvX,SAAS,CAAEtS,MAAOkF,EAAEsC,OAAOxH,SA5CjB,EAgDnBmwB,eAAiB,SAAAjrB,GACf,IAAI2kB,EAAkB3kB,EAAEsC,OAAOxH,MAC1Bq5B,OAAOxP,IAGZ,EAAKvX,SAAL,gBACGpN,EAAEsC,OAAOmE,KAAOke,KAtDF,EA0DnB4D,iBAAmB,SAAAvoB,GACjB,EAAKoN,SAAS,CACZ8F,cAAelT,EAAEsC,OAAOxH,SA5DT,EAgEnBgY,eAhEmB,sBAgEF,oCAAA5a,EAAA,yDACfpB,IAAMC,SAASmY,aAAY,IAG3BsZ,GADIA,EAAavtB,IAAE,sBAAsBkI,QACjBzK,OAIpB07B,EAAe,cAGnBC,GALIA,EAAiB7L,GAKW5tB,QAAQ,aAAc,IACtDlE,QAAQC,IAAI09B,GAERtC,GAAiB,EAEjBsC,EAAeC,MAAMF,IACvBrC,GAAiB,EACjBr7B,QAAQC,IAAI,0BAEZD,QAAQC,IAAI,oBAGd,EAAKyW,SAAS,CAAE8F,cAAesV,IAEE,OAA7B,EAAK3b,MAAMqG,cAzBA,iBA0Bb,EAAK9F,SAAS,CACZmnB,qBAAqB,EACrBC,qBAAsB,6BA5BX,yCA+BQhB,GAAiB1gB,eAAe0V,EAAYuJ,GA/BpD,WAiCG,IAFZ7uB,EA/BS,SAiCmC,MAAvBA,EAAS2lB,YAA8C,MAAxB3lB,EAASggB,YAjCpD,wBAkCX,EAAK9V,SAAS,CACZmnB,qBAAqB,EACrBC,qBAA+C,MAAxBtxB,EAASggB,YAAuBhgB,EAASggB,YAC5D,gFAENpsB,IAAMC,SAASmY,aAAY,IAvChB,2BA0CX,EAAK9B,SAAS,CACZ0b,oBAAoB,IA3CX,4CAhEE,EAkHnBpI,gBAlHmB,sBAkHD,4CAAAxoB,EAAA,6DACZuqB,EAAaxnB,IAAE,oBAAoBkI,OACnCuf,EAAaznB,IAAE,oBAAoBkI,OACnCwf,EAAgBD,EAAWvjB,MAAM,KAEjCyjB,EAAUD,EAAc,GACxBE,EAASF,EAAc,GAGvBG,EAAa7nB,IAAE,mBAAmBkI,QAGlCoP,EAAO,IAENC,qBAAuBiQ,EAAW7nB,QAAQ,MAAO,IACtD2X,EAAKG,mBAAqBkQ,EAC1BrQ,EAAKI,kBAAoBkQ,EACzBtQ,EAAKE,iBAAmBqQ,EAExBhsB,IAAMC,SAASmY,aAAY,IAnBX,UAsBiBskB,GAAiBlC,0BAtBlC,aAwBY,OAFxB7sB,EAtBY,SAwBoBA,EAAqB/F,QAAU,GAxBnD,wBAyBd5H,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,8CA5BF,kCAiChB,EAAK/V,SAAS,CAAEqnB,UAAWhwB,EAAqB,KAE5CvB,EAAW,GAnCC,UAsCCswB,GAAiBxQ,WAAWzQ,EAAM,EAAK1F,MAAM4nB,WAtC9C,WAsChBvxB,EAtCgB,OAuChB,EAAKkK,SAAS,CAAEvC,aAAa,IAEF,MAAvB3H,EAAS+f,WAzCG,iBA0CdnsB,IAAMC,SAASwW,YAASrK,EAAS+f,aACjC,EAAKrQ,SAAS1P,GA3CA,+BA8CZ,EAAK2J,MAAMjQ,aAAezG,IAAWqE,aACrC1D,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAuC,MAAxBjgB,EAASggB,YAAuBhgB,EAASggB,YAAc,0CAlD5D,+DAlHC,EA4KnBE,gBAAkB,SAAAC,GAChB,IAAI7sB,EAAO6sB,EAAc/gB,OAAOxH,MAChC,EAAK45B,YAAYl+B,IA9KA,EAiLnBk+B,YAjLmB,uCAiLL,WAAOl+B,GAAP,SAAA0B,EAAA,2DACJ1B,EADI,OAEL,kBAFK,OAML,UANK,OAUL,YAVK,OAcL,YAdK,8BAGR,EAAK4W,SAAS,CAAEkW,aAAa,EAAMC,gBAAgB,EAAOC,eAAe,EAAOC,iBAAiB,EAAOC,gBAAgB,IAHhH,mCAOR,EAAKtW,SAAS,CAAEmW,gBAAgB,EAAMD,aAAa,EAAOE,eAAe,EAAOC,iBAAiB,EAAOC,gBAAgB,IAPhH,mCAWR,EAAKtW,SAAS,CAAEoW,eAAe,EAAMF,aAAa,EAAOC,gBAAgB,EAAOE,iBAAiB,EAAOC,gBAAgB,IAXhH,2CAmBR,EAAKtW,SAAS,CAAEoW,eAAe,EAAOF,aAAa,EAAOC,gBAAgB,EAAOG,gBAAgB,EAAMD,iBAAiB,IAnBhH,iEAjLK,wDAyMnBE,eAzMmB,sBAyMF,sBAAAzrB,EAAA,sDACfpB,IAAMC,SAASmY,aAAY,IAE3B,EAAK0D,SAAS,MAHC,2CAzME,EAgNnBwX,eAhNmB,sBAgNF,sBAAAlyB,EAAA,6DACf+C,IAAE,iBAAiB6P,QACnB7P,IAAE,uDAAuDkI,OACzDrM,IAAMC,SAASmY,aAAY,IAHZ,mBAIR,GAJQ,2CAhNE,EAuNnB0D,SAvNmB,uCAuNR,WAAOgR,GAAP,iDAAA1rB,EAAA,yDACTxB,QAAQC,IAAI,EAAKkW,MAAM4nB,WAEK,IAAxB,EAAK5nB,MAAM4nB,UAHN,iCAI0BjB,GAAiBlC,0BAJ3C,YAMqB,OAFxB7sB,EAJG,SAM6BA,EAAqB/F,QAAU,GAN5D,uBAOL5H,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,8CAVX,0BAcP,EAAK/V,SAAS,CAAEqnB,UAAWhwB,EAAqB,KAdzC,eAiBL4e,EAAgBhsB,IAAqBs9B,mBAAmB,EAAK9nB,MAAM4nB,WACvE/9B,QAAQC,IAAI0sB,GACZ,EAAKqR,YAAYrR,GAnBR,UAqBYhsB,IAAqB+F,uBAAuB,WAAY,EAAKyP,MAAM4nB,WArB/E,WAqBL7hB,EArBK,SAwBP,EAAKjG,MAAM3B,UAAY,EAAK2B,MAAM3B,SAAS6B,OACzC,EAAKF,MAAM3B,SAAS6B,MAAM3J,SAC1B,EAAKyJ,MACL,CAAE3B,SAAU,CAAE6B,MAAO,CAAE3J,SAAU,CAAE2gB,cAAe,SA3B7C,EAuBD7Y,SAAY6B,MAAS3J,SAAY2gB,cAQf,MAAtBD,EA/BK,iBAgCPhR,EAAStD,iBAAmBsU,EAAmBtU,iBAC/CsD,EAASkR,iBAAmBF,EAAmBX,WAAWa,iBAE1DhtB,IAAMC,SAASuY,YAAiBsD,EAAStD,mBAnClC,+BAqCHmT,EAAaxnB,IAAE,oBAAoBkI,OACnCuf,EAAaznB,IAAE,oBAAoBkI,OACnCwf,EAAgBD,EAAWvjB,MAAM,KACjCyjB,EAAUD,EAAc,GACxBE,EAASF,EAAc,GACvBG,EAAa7nB,IAAE,mBAAmBkI,QAElCoP,EAAO,IAENC,qBAAuBiQ,EAAW7nB,QAAQ,MAAO,IACtD2X,EAAKG,mBAAqBkQ,EAC1BrQ,EAAKI,kBAAoBkQ,EACzBtQ,EAAKE,iBAAmBqQ,EAjDjB,UAmDmBC,EAAe3B,kBAAkB7O,EAAM,EAAK1F,MAAM4nB,WAnDrE,QAqDc,OAFjBniB,EAnDG,SAqDuC,IAAjBA,IAC3BM,EAASN,cAAgBA,GAtDpB,eA2DTM,EAAStU,kBAAoBnI,IAAWE,iBACxCuc,EAASmR,eAAiB,YAEO,IAA7B,EAAKlX,MAAM2W,iBACTQ,EAAY1qB,SAASM,cAAc,WAC7BqqB,aAAa,KAAM,aAC7BD,EAAUC,aAAa,OAAQ,aAC/BD,EAAUC,aAAa,MAAO,IAC9BD,EAAUlH,MAAMoH,OAAS,IACzBF,EAAUlH,MAAMrB,SAAW,WAC3BuI,EAAUlH,MAAMC,QAAU,QAC1BiH,EAAUlH,MAAM9O,MAAQ,MACxBgW,EAAUlH,MAAMvL,OAAS,OACzByS,EAAUlH,MAAMqH,OAAS,SACzB7qB,SAAS2J,KAAKmhB,MAAMJ,EAAW1qB,SAAS2J,MACxC2P,EAAS5Q,UAAY1I,SAASC,eAAe,aAAaiqB,gBAG1B,IAA9B,EAAK3W,MAAM0W,iBACbc,EAAYtZ,OAAOiT,KAAK,eACxBpL,EAAS5Q,UAAYqiB,IAGQ,IAA3B,EAAKxX,MAAMyW,oBACL1Q,EAAS5Q,UAInB1I,SAAS2J,KAAK6Z,MAAM8X,UAAY,SAE5B1xB,EAAW,GACX2xB,EAAsB,GA1FjB,oBA6FUrB,GAAiB5gB,SAAS,EAAK/F,MAAM4nB,UAAW7hB,GA7F1D,WA6FP1P,EA7FO,OAgGH,EAAK2J,MAAM2W,eAEA,OADTc,EAAQhrB,SAASC,eAAe,eAElC+qB,EAAMC,WAAWpqB,YAAYmqB,GAI7B,EAAKzX,MAAM0W,gBACbc,EAAUvT,QAGgB,MAAxB5N,EAASggB,aAA0C,MAAnBhgB,EAAS0mB,OA3GtC,wBA4GL,EAAKxc,SAAS,CACZvC,aAAa,EACbsY,aAAcjgB,EAASggB,cAGzBpsB,IAAMC,SAASmY,aAAY,IAjHtB,8EAsHPxY,QAAQC,IAAI,oBAAZ,MAtHO,qBAyHuB,GAA1B,EAAKkW,MAAMhC,cACb3H,EAAW2xB,GAGW,MAApB3xB,EAASwmB,SAAiD,GAA9BxmB,EAAS6vB,kBA7HlC,kCA8HCS,GAAiBV,kBAAkB,EAAKjmB,MAAM4nB,UAAWvxB,EAASwmB,SA9HnE,WAkIPpwB,SAAS2J,KAAK6Z,MAAM8X,UAAY,OAEF,YAA1B1xB,EAAS2gB,eAAyD,SAA1B3gB,EAAS2gB,cApI9C,kCAsIsBnjB,KAA4Bo0B,0BAA0BliB,EAAU1P,EAAU,EAAK2J,MAAM4nB,WAtI3G,QAsIDM,EAtIC,OAuILj+B,IAAMC,SAASwW,YAASwnB,IAvInB,WA0IuB,GAA1B,EAAKloB,MAAMhC,YA1IR,sBA2IG3H,EAAS2gB,cA3IZ,OA4IE,aA5IF,QAoJE,aApJF,QAyJE,oBAzJF,QA8JE,gBA9JF,gCA6ID,EAAKzW,SAAS,CACZ4nB,kBAAkB,EAClBvQ,mBAAmB,EACnBZ,cAAe3gB,EAAS2gB,gBAhJzB,oCAqJD/sB,IAAMC,SAASqY,YAASlM,EAASwmB,UACjC,EAAKtc,SAAS,CAAE+c,SAAS,IAtJxB,oCA0JD,EAAK/c,SAAS,CAAEgd,gBAAgB,IAChC,EAAKA,iBA3JJ,oCA+JD,EAAKhd,SAAS,CAAE+c,SAAS,IA/JxB,6BAmKDrzB,IAAMC,SAASmY,aAAY,IAEG,SAA1BhM,EAAS2gB,eACX,EAAKzW,SAAS,CACZ4nB,kBAAkB,EAClBnqB,aAAa,EACbsY,aAAcjgB,EAASzH,MAAM4uB,UAC7B3F,iBAAkBxhB,EAASzH,MAAMipB,mBAIrCvsB,IAAcyS,iBAAiB,EAAKiC,MAAMhC,aAC1C/T,IAAMC,SAASmY,aAAY,IA/K1B,eAkLPpY,IAAMC,SAASmY,aAAY,IAlLpB,8EAvNQ,wDA6YnBtC,uBA7YmB,sBA6YM,sBAAA1U,EAAA,sDACvB+C,IAAE,wCAAwC6P,QADnB,2CA3YvB,EAAK+B,OAAL,GACE8X,gBAAiB,GACjBC,YAAa,GACbC,WAAY,GACZC,MAAO,GACPC,uBAAuB,EACvBC,2BAA2B,EAC3BC,sBAAsB,EACtB+P,kBAAkB,EAClB7R,aAAc,GACdvmB,aAAc,GACdX,UAAWlG,IAAWkG,UACtBipB,eAAe,EACfhS,cAAe,GACfrI,aAAa,GAdf,8BAegB,MAfhB,kCAgBoB,MAhBpB,qCAiBsB,GAjBtB,sCAkBwB,MAlBxB,sCAmBuB,GAnBvB,iCAoBkB,GApBlB,wBAqBU,cArBV,8BAsBe,GAtBf,iCAuBkB,GAvBlB,gCAwBiB,GAxBjB,kCAyBmB,GAzBnB,iCA0BkB,GA1BlB,8BA2BgB,IA3BhB,iCA4BkB,GA5BlB,oCA6BqB,GA7BrB,0BA8BW,GA9BX,sCA+BuB,GA/BvB,2BAgCa,IAhCb,GAkCA,EAAKiI,eAAiB,EAAKA,eAAewI,KAApB,gBACtB,EAAKiN,iBAAmB,EAAKA,iBAAiBjN,KAAtB,gBArCP,EADrB,4FAkZE,mCAAApjB,EAAA,yDACEuK,KAAKC,2BACFyK,MAAK,SAAAvL,GAAI,OAAI,EAAKwL,SAAS,CAAEJ,gBAAgB,OAC7CK,OAAM,SAAAZ,GAAG,OAAI,EAAKW,SAAS,CAAEJ,gBAAgB,OAO7B,OAFfioB,EAAclqB,OAAOC,SAASqP,OAAOzf,QAAQ,IAAK,MAEE,mBAA7Bq6B,EAAYhzB,cAVzC,uBAWIhH,IAAE,iBAAiB6P,QACnBjS,KAAKuU,SAAS,CAAEgd,gBAAgB,IAZpC,SAaUvxB,KAAKuxB,iBAbf,OAgBEtzB,IAAMC,SAASmY,aAAY,IAhB7B,gDAlZF,0EAqaE,WACE,OACE,yBAAKpV,GAAG,mBACN,kBAACg6B,EAAA,EAAD,MACEj7B,KAAKgU,MAAMG,eAA0D,KAAzC,kBAAC,IAAD,CAAUa,GAAG,0BAGlB,IAAvBhV,KAAKgU,MAAMsd,QACT,kBAAC,IAAD,CAAUtc,GAAG,gCACX,MAI+B,IAAnChV,KAAKgU,MAAMqoB,oBACT,kBAAC,IAAD,CACErnB,GAAI,CACFkS,SAAU,yBACVlT,MAAO,CAAE6X,iBAAkB7rB,KAAKgU,MAAM6X,qBAGxC,KAGN,kBAACvE,EAAA,EAAD,CAAWrS,OAAK,GACd,kBAAC,KAAD,KACE,kBAACyP,EAAA,EAAD,CAAKxP,GAAI,EAAG3L,UAAU,uBACpB,yBAAKA,UAAU,6EACb,kBAAC,EAAD,MACA,wBAAIA,UAAU,2CAAd,6BAAkF,8BAClF,uBAAGA,UAAU,qDAAb,oBACA,kBAAC,KAAD,KACE,kBAAC,KAAD,KACE,kBAAC,KAAD,iBACA,kBAAC,KAAD,wBAIF,kBAAC,KAAD,KACIvJ,KAAKgU,MAAMmoB,iBAAoB,kBAAC,IAAD,CAAUnnB,GAAG,4BAA+B,KAC7E,yBAAKzL,UAAU,+BAA+BtI,GAAG,cAC/C,yBAAKsI,UAAU,oBACb,yBAAKA,UAAU,UACb,uBAAGA,UAAU,qCAAb,6BAGJ,0BAAMA,UAAU,wBAAwBtI,GAAG,kBACzC,yBAAKsI,UAAU,2CACb,yBAAKA,UAAU,yCAAyC8lB,iBAAe,EACrEiN,UAAW,EACXC,UAAW,GACX3uB,KAAK,kBACL3M,GAAG,kBAAkBsmB,mBAAiB,iBAAiB5D,YAAY,cACnE8I,aAAa,MACbxqB,MAAOjC,KAAKgU,MAAM8X,gBAClBrI,SAAUzjB,KAAKo7B,gBAGhBp7B,KAAKgU,MAAMkY,sBACV,2BAAO3iB,UAAU,kBAAjB,4BACE,MAGN,yBAAKA,UAAU,qBAAqBivB,gCAA8B,GAChE,yBAAKjvB,UAAU,uCACb,yBAAKA,UAAU,iDAAiDivB,gCAA8B,EAACnJ,iBAAe,EAAC7C,kBAAgB,KAC7HvqB,MAAOjC,KAAKgU,MAAM0Y,gBAClB9e,KAAK,kBAAkB3M,GAAG,kBAAkBsmB,mBAAiB,kBAC7D5D,YAAY,YAGb3jB,KAAKgU,MAAMmY,0BACV,2BAAO5iB,UAAU,kBAAjB,8CACE,MAGN,yBAAKA,UAAU,sCACb,yBAAKA,UAAU,yCAAyC8lB,iBAAe,EAAC7C,kBAAgB,KACtFvqB,MAAOjC,KAAKgU,MAAM2Y,eAClB/e,KAAK,wBAAwB3M,GAAG,iBAChCsmB,mBAAiB,gBAAgB5D,YAAY,kBAG9C3jB,KAAKgU,MAAMoY,qBACV,2BAAO7iB,UAAU,kBAAjB,2BACE,MAGLvJ,KAAKgU,MAAMhC,YACV,2BAAOzI,UAAU,kBAAkBvJ,KAAKgU,MAAMsW,cAC5C,OAIR,yBAAK/gB,UAAU,6BAeb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,uDACb,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAK6nB,gBAAiB5mB,GAAG,iBACtDsI,UAAU,2CADZ,sBAGF,yBAAKA,UAAU,sDACb,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAK8qB,eAAgB7pB,GAAG,oBACrDsI,UAAU,0CADZ,wBASV,kBAAC,KAAD,MACqC,IAAlCvJ,KAAKgU,MAAMic,mBACV,kBAAC,IAAD,CAAUjb,GAAG,mCAAsC,KACrD,yBAAKzL,UAAU,+BAA+BtI,GAAG,oBAC/C,yBAAKsI,UAAU,oBACb,uBAAGA,UAAU,sDAAb,sDAEF,0BAAMA,UAAU,yBACd,yBAAKA,UAAU,8CAEb,yBAAKivB,gCAAgC,EAAMjvB,UAAU,sEACnD8lB,iBAAe,EAAC7C,kBAAgB,KAChCvrB,GAAG,oBACHsmB,mBAAiB,YACjB5D,YAAY,6BAGZ3jB,KAAKgU,MAAM0nB,oBAAuB,2BAAOnyB,UAAU,kBAAjB,IAChCvJ,KAAKgU,MAAM2nB,sBAGT,OAIV,yBAAKpyB,UAAU,+DACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCACb,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAKia,eAAgBhZ,GAAG,sBACrDsI,UAAU,0CADZ,mBASd,yBAAKA,UAAU,gCACb,kBAACke,EAAA,EAAD,QASJ,kBAAC/C,EAAA,EAAD,CAAKxP,GAAI,EAAG3L,UAAU,aACpB,kBAACuG,GAAA,EAAD,cAhlBd,GAAqCsF,aCRxBonB,GAAb,kDACE,WAAY1oB,GAAQ,IAAD,8BACjB,cAAMA,IAeR0c,kBAAoB,SAAArpB,GAClB,EAAKoN,SAAS,CACZiG,eAAgBrT,EAAEsC,OAAOxH,SAlBV,EAsBnB8R,uBAtBmB,sBAsBM,sBAAA1U,EAAA,sDACvB+C,IAAE,wCAAwC6P,QADnB,2CAtBN,EAmCnBwe,2BAnCmB,sBAmCU,8BAAApxB,EAAA,6DAC3BpB,IAAMC,SAASmY,aAAY,IAE3B,EAAK9B,SAAS,CACZiG,eAAgBpY,IAAE,aAAakI,OAC/B0H,aAAa,IAGT0nB,EAAMt3B,IAAE,aAAakI,OARA,SASNqwB,GAAiBne,2BAA2Bkd,GATtC,UAWF,OAFrBrvB,EATuB,QAWdkM,UAA6C,MAAxBlM,EAASggB,aAA8C,MAAvBhgB,EAAS2lB,WAXhD,wBAYzB,EAAKzb,SAAS,CACZvC,aAAa,EACbsY,aAAuC,MAAxBjgB,EAASggB,YAAuBhgB,EAASggB,YAAc,GACtEwB,iBAAkBxhB,EAASggB,cAE7BpsB,IAAMC,SAASmY,aAAY,IAjBF,2BAoBzB,EAAK9B,SAAS,CAAEuc,aAAa,IApBJ,4CAjC3B,EAAK9c,MAAQ,CACXwG,eAAgB,GAChBxI,aAAa,EACbsY,aAAc,KACduB,iBAAkB,KAClBoE,oBAAoB,EACpBa,aAAa,EACb/I,UAAU,EACV1d,UAAU,EACV8J,gBAAgB,GAElB,EAAKsc,2BAA6B,EAAKA,2BAA2BhO,KAAhC,gBAClC,EAAK+N,kBAAoB,EAAKA,kBAAkB/N,KAAvB,gBAdR,EADrB,qDA2BE,WAAqB,IAAD,OAClBxkB,IAAMC,SAASmY,aAAY,IAE3BzM,KAAKC,2BACFyK,MAAK,SAAAvL,GAAI,OAAI,EAAKwL,SAAS,CAAEJ,gBAAgB,OAC7CK,OAAM,SAAAZ,GAAG,OAAI,EAAKW,SAAS,CAAEJ,gBAAgB,SAhCpD,oBA4DE,WACE,OACE,yBAAKlT,GAAG,mBACN,kBAACg6B,EAAA,EAAD,MACEj7B,KAAKgU,MAAMG,eAA0D,KAAzC,kBAAC,IAAD,CAAUa,GAAG,yBAC1ChV,KAAKgU,MAAM8c,YAAc,kBAAC,IAAD,CAAU9b,GAAG,0BAA6B,KAGpE,kBAACsS,EAAA,EAAD,CAAWrS,OAAK,GACd,kBAAC,KAAD,KACE,kBAAC,KAAD,CAAKC,GAAI,EAAG3L,UAAU,sBACpB,yBAAKA,UAAU,8DACb,kBAAC,EAAD,MACA,yBAAKA,UAAU,QACb,uBAAGA,UAAU,sDAAb,yCAEF,0BAAMA,UAAU,WAAWtI,GAAG,eAC5B,yBAAKsI,UAAU,+CAEb,yBAAKivB,gCAAgC,EAAMv3B,GAAG,WAAWsI,UAAU,2EACjE8lB,iBAAe,EACf7C,kBAAgB,KAChB7I,YAAY,cACZ1hB,MAAOjC,KAAKgU,MAAMwc,oBAEnBxwB,KAAKgU,MAAMhC,YACV,2BAAOzI,UAAU,kBAAmBvJ,KAAKgU,MAAMsW,cAC7C,KAEHtqB,KAAKgU,MAAM+T,SACV,2BAAOxe,UAAU,kBAAjB,qBACE,OAKR,yBAAKA,UAAU,4BACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCACb,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAKywB,2BAA4BxvB,GAAG,sBACjEsI,UAAU,0CADZ,gBAMR,yBAAKA,UAAU,gCACb,kBAACke,EAAA,EAAD,QASJ,kBAAC,KAAD,CAAKvS,GAAI,EAAG3L,UAAU,aACpB,kBAACuG,GAAA,EAAD,cApHd,GAA0CsF,a,UCM7BqnB,GAAb,kDACI,WAAY3oB,GAAQ,IAAD,8BACf,cAAMA,IAuBVC,uBAxBmB,sBAwBM,sBAAA1U,EAAA,sDACrB+C,IAAE,wCAAwC6P,QADrB,2CAxBN,EAoDnBif,aApDmB,uCAoDJ,WAAOC,EAAQ1a,EAAkB3K,GAAjC,6BAAAzM,EAAA,6DACXxB,QAAQC,IAAI2Y,EAAkB3K,GAC9B7N,IAAMC,SAASmY,aAAY,IAETpY,IAAMkB,WAAWC,QAAQsV,SAEvC8V,EAAgBhsB,IAAqBs9B,mBAAmBhwB,GAC5D,EAAK+vB,YAAYrR,GAPN,SASgBhsB,IAAqB+F,uBAAuB,WAAYuH,GATxE,cASP7C,EATO,QAWIxD,kBAAoBnI,IAAWE,iBAC9CyL,EAAewN,iBAAmBA,EAClCxN,EAAegiB,iBAAmBkG,GAID,IAA7B,EAAKnd,MAAM2W,iBACPQ,EAAY1qB,SAASM,cAAc,WAC7BqqB,aAAa,KAAM,aAC7BD,EAAUC,aAAa,OAAQ,aAC/BD,EAAUC,aAAa,MAAO,IAC9BD,EAAUlH,MAAMoH,OAAS,IACzBF,EAAUlH,MAAMrB,SAAW,WAC3BuI,EAAUlH,MAAMC,QAAU,QAC1BiH,EAAUlH,MAAM9O,MAAQ,MACxBgW,EAAUlH,MAAMvL,OAAS,OACzByS,EAAUlH,MAAMqH,OAAS,SACzB7qB,SAAS2J,KAAKmhB,MAAMJ,EAAW1qB,SAAS2J,MACxCnB,EAAeE,UAAY1I,SAASC,eAAe,aAAaiqB,gBAIlC,IAA9B,EAAK3W,MAAM0W,iBACXc,EAAYtZ,OAAOiT,KAAK,eACxBlc,EAAeE,UAAYqiB,IAGA,IAA3B,EAAKxX,MAAMyW,cACX5sB,QAAQC,IAAI,sBACJmL,EAAeE,WAGU,MAAjCF,EAAeiiB,uBACPjiB,EAAeiiB,eAGvB7gB,EAAW,GACX2xB,EAAsB,GAG1Bv7B,SAAS2J,KAAK6Z,MAAM8X,UAAY,SAnDrB,oBAsDUpB,GAAiB5gB,SAASjO,EAAK7C,GAtDzC,WAsDPoB,EAtDO,OAwDH,EAAK2J,MAAM2W,eAEE,OADTc,EAAQhrB,SAASC,eAAe,eAEhC+qB,EAAMC,WAAWpqB,YAAYmqB,GAIjC,EAAKzX,MAAM0W,gBACXc,EAAUvT,QAGc,MAAxB5N,EAASggB,aAA0C,MAAnBhgB,EAAS0mB,OAnEtC,kCAoEG,EAAKlQ,oBApER,eAsEH,EAAKtM,SAAS,CACVvC,aAAa,EACbsY,aAAcjgB,EAAS0mB,OACvBlF,iBAAkBxhB,EAASggB,cAG/B2R,EAAsB3xB,EACtBpM,IAAMC,SAASmY,aAAY,IA7ExB,8EAkFPxY,QAAQC,IAAR,MAlFO,qBAqFuB,GAA1B,EAAKkW,MAAMhC,cACX3H,EAAW2xB,GAGS,MAApB3xB,EAASwmB,SAAiD,GAA9BxmB,EAAS6vB,kBAzFlC,kCA0FGS,GAAiBV,kBAAkBnuB,EAAKzB,EAASwmB,SA1FpD,WA8FPpwB,SAAS2J,KAAK6Z,MAAM8X,UAAY,OAEF,YAA1B1xB,EAAS2gB,eAAyD,SAA1B3gB,EAAS2gB,cAhG9C,kCAiGwBnjB,KAA4Bo0B,0BAA0BhzB,EAAgBoB,EAAUyB,GAjGxG,QAiGCowB,EAjGD,OAmGHr+B,QAAQC,IAAIo+B,GACZj+B,IAAMC,SAASwW,YAASwnB,IApGrB,WAuGuB,GAA1B,EAAKloB,MAAMhC,YAvGR,sBAwGK3H,EAAS2gB,cAxGd,OA0GM,aA1GN,QA8GM,aA9GN,QAkHM,oBAlHN,QAsHM,gBAtHN,gCA2GK,EAAKzW,SAAS,CAAE8c,qBAAqB,IA3G1C,oCA+GK,EAAK9c,SAAS,CAAE+c,SAAS,IA/G9B,oCAmHK,EAAK/c,SAAS,CAAEgd,gBAAgB,IAnHrC,8CAuHW,EAAK1Q,oBAvHhB,kDA4HmC,SAA1BxW,EAAS2gB,eACT,EAAKzW,SAAS,CACVvC,aAAa,EACbsY,aAAcjgB,EAASzH,MAAM4uB,UAC7B3F,iBAAkBxhB,EAASzH,MAAMipB,mBAGzCvsB,IAAcyS,iBAAiB,EAAKiC,MAAMhC,aAnI/C,oCAyIP/T,IAAMC,SAASmY,aAAY,IAzIpB,8EApDI,4DAkMnBwR,gBAAkB,WACd,EAAKtT,SAAS,CAAE+c,SAAS,KAnMV,EAsMnB/G,gBAAkB,SAAAC,GACd,IAAI7sB,EAAO6sB,EAAc/gB,OAAOxH,MAEhC,EAAK45B,YAAYl+B,IAzMF,EA4MnBk+B,YA5MmB,uCA4ML,WAAOl+B,GAAP,SAAA0B,EAAA,2DACF1B,EADE,OAED,kBAFC,OAMD,UANC,OAUD,YAVC,OAcD,YAdC,8BAGF,EAAK4W,SAAS,CAAEkW,aAAa,EAAMC,gBAAgB,EAAOC,eAAe,EAAOC,iBAAiB,EAAOC,gBAAgB,IAHtH,mCAOF,EAAKtW,SAAS,CAAEmW,gBAAgB,EAAMD,aAAa,EAAOE,eAAe,EAAOC,iBAAiB,EAAOC,gBAAgB,IAPtH,mCAWF,EAAKtW,SAAS,CAAEoW,eAAe,EAAMF,aAAa,EAAOC,gBAAgB,EAAOE,iBAAiB,EAAOC,gBAAgB,IAXtH,2CAmBF,EAAKtW,SAAS,CAAEoW,eAAe,EAAOF,aAAa,EAAOC,gBAAgB,EAAOG,gBAAgB,EAAMD,iBAAiB,IAnBtH,iEA5MK,sDAEf,EAAK5W,MAAQ,CACThC,aAAa,EACbsY,aAAc,GACduB,iBAAkB,GAClBnX,SAAU,KACV+c,iBAAkB,KAClBJ,qBAAqB,EACrBC,SAAS,EACTC,gBAAgB,EAChB9G,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,iBAAiB,EACjBC,gBAAgB,EAChByB,aAAc,GACdnY,gBAAgB,EAChBuoB,mBAAmB,EACnBL,qBAAqB,GAEzB,EAAKnL,aAAe,EAAKA,aAAazO,KAAlB,gBArBL,EADvB,4FA6BI,mCAAApjB,EAAA,6DACIpB,IAAMC,SAASmY,aAAY,IAE3BzM,KAAKC,2BACAyK,MAAK,SAAAvL,GAAI,OAAI,EAAKwL,SAAS,CAAEJ,gBAAgB,OAC7CK,OAAM,SAAAZ,GAAG,OAAI,EAAKW,SAAS,CAAEJ,gBAAgB,OAElDnU,KAAKuU,SAAS,CAAEvC,aAAa,IAPjC,SAQyB2oB,GAAiBf,iBAR1C,cAUgC,OAFxBvvB,EARR,QAUiBggB,aAA8C,MAAvBhgB,EAAS2lB,WACzChwB,KAAKuU,SAAS,CACVvC,aAAa,EACb6Z,iBAA2C,MAAxBxhB,EAASggB,YAAuBhgB,EAASggB,YAAc,KAI9ErqB,KAAKuU,SAAS,CAAEG,SAAUrK,IAE9BpM,IAAMC,SAASmY,aAAY,IAnB/B,mEA7BJ,0EAsOI,WAAU,IAAD,OACL,OAEI,yBAAKpV,GAAG,eACJ,kBAACg6B,EAAA,EAAD,MACEj7B,KAAKgU,MAAMG,eAA0D,KAAzC,kBAAC,IAAD,CAAUa,GAAG,0BAGJ,IAAnChV,KAAKgU,MAAMqd,oBAAgC,kBACvC,IADuC,CAC9Brc,GAAG,4BAEZ,MAImB,IAAvBhV,KAAKgU,MAAMsd,QACP,kBAAC,IAAD,CAAUtc,GAAG,gCACb,MAI0B,IAA9BhV,KAAKgU,MAAMud,eACP,kBAAC,IAAD,CAAUvc,GAAG,+CACb,MAI6B,IAAjChV,KAAKgU,MAAM0oB,kBACP,kBAAC,IAAD,CAAU1nB,GAAG,2BACb,MAI+B,IAAnChV,KAAKgU,MAAMqoB,oBACP,kBAAC,IAAD,CACIrnB,GAAI,CACAkS,SAAU,yBACVlT,MAAO,CAAE6X,iBAAkB7rB,KAAKgU,MAAM6X,qBAG9C,KAGR,kBAACvE,EAAA,EAAD,CAAWrS,OAAK,GACZ,kBAACwP,GAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAAKxP,GAAI,EAAG3L,UAAU,sBAClB,yBAAKA,UAAU,8DACX,kBAAC,EAAD,MACA,yBAAKtI,GAAG,cAAcsI,UAAU,eAC5B,yBAAKA,UAAU,qBACX,uBAAGA,UAAU,uDAAb,cACA,wBAAIA,UAAU,oBACd,6BAE2B,MAAvBvJ,KAAKgU,MAAMU,UAAoB1U,KAAKgU,MAAMU,SAAS7O,OAAS,EACxD,kBAAC,IAAM8rB,SAAP,KAEQ3xB,KAAKgU,MAAMU,SAASxN,KAAI,SAACqV,EAAUogB,GAE/B,OAA4B,MAAxBpgB,EAAS6U,YACF7U,EAAS6U,YAAYlqB,KAAI,SAACwS,EAAM1L,GAAP,OAC5B,kBAACyW,GAAA,EAAD,CAAKjc,IACDkR,EAAKuR,iBAELhS,QAAS,kBAAM,EAAKiY,aAAaxX,EAAKuR,iBAAkB1O,EAAS9F,iBAAkB8F,EAASzQ,OAI5F,kBAAC4Y,EAAA,EAAD,CAAKnB,GACD,GAGA,yBAAKha,UAAU,WAAWvI,IACtB0Y,EAAKrB,gBAAgBuZ,OAErB5Y,IAAI,WACJiL,MACI,CACIc,OAAQ,cAKxB,kBAACL,EAAA,EAAD,CAAKnB,GACD,EAEAU,MACI,CACI6I,UAAW,SAGnB,uBAAGvjB,UAAU,YAAYtI,GAAE,eAAU+M,EAAI,GACrCiW,MACI,CACIc,OAAQ,YAHpB,IAMQrL,EAAKrB,gBACAC,iBAET,6BACA,2BAAO/O,UAAU,cAAjB,wBAEQmQ,EAAKnB,YAFb,KAVJ,UAoBL,uBAAGhP,UAAU,eAAb,2BAMvB,uBAAGA,UAAU,eAAb,uBAIR,kBAACkb,GAAA,EAAD,KACI,yBAAKlb,UAAU,yCACX,yBAAKA,UAAU,eACX,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAK6nB,gBAAiB5mB,GAAG,iBACpDsI,UAAU,mEADd,YAGIvJ,KAAKgU,MAAMhC,YAAe,2BAAOzI,UAAU,kBAAjB,IACtBvJ,KAAKgU,MAAMsW,aADW,IAExB,6BAFwB,IAGlBtqB,KAAKgU,MAAM6X,iBAHO,KAKtB,WAShC,yBAAKtiB,UAAU,gCACX,kBAACke,EAAA,EAAD,QAGR,kBAAC/C,EAAA,EAAD,CAAKxP,GAAI,EAAG3L,UAAU,aAClB,kBAACuG,GAAA,EAAD,cAxX5B,GAAiCsF,aCrBpBwnB,IDgaEpN,aATS,SAAAxb,GACpB,MAAO,CACHyb,OAAQzb,EAAM5U,QAAQiX,YACtBE,SAAUvC,EAAM5U,QAAQmX,SACxBE,iBAAkBzC,EAAM5U,QAAQqX,iBAChChR,kBAAmBuO,EAAM5U,QAAQqG,qBAI1B+pB,CAAyBiN,IChaxC,4JACE,WACE,OACI,uBAAKlzB,UAAU,qFACf,uBAAKA,UAAU,WACX,sBAAIA,UAAU,sBACV,uBAAKvI,IAAK9D,IAAWmG,gBAAkB,eAAgB8R,MAAM,KAAKuD,OAAO,KAAKnP,UAAU,4BACxF,uBAAKA,UAAU,OACf,uBAAKvI,IAAK9D,IAAWmG,gBAAkB,oBAAqBkG,UAAU,+BAA+B4L,MAAM,MAAMuD,OAAO,SAGhI,uBAAKnP,UAAU,yBAXvB,GAA0CG,c,SCQ7BmzB,GAAb,kDACE,WAAY/oB,GAAQ,IAAD,8BACjB,cAAMA,IAeRgpB,cAAgB,SAAC31B,GACf,EAAKoN,SAAS,CACZ6hB,MAAOjvB,EAAEsC,OAAOxH,SAlBD,EAsBnBwjB,SAAW,SAACte,GACV,EAAKoN,SAAS,CACZkR,SAAUte,EAAEsC,OAAOxH,SAxBJ,EA4BnB86B,SA5BmB,uCA4BR,WAAOhd,GAAP,mBAAA1gB,EAAA,6DACT0gB,EAAMF,iBACN5hB,IAAMC,SAASmY,aAAY,IAEvBvM,EAAW,EAAKkK,MAAMoiB,MAAMv2B,OAC5B4lB,EAAW,EAAKzR,MAAMyR,SAAS5lB,OAL1B,SAOQ8kB,IAAiBa,OAAO1b,EAAU2b,GAP1C,OAUiB,0BAHtB1c,EAPK,QAUAi0B,eACP,EAAKzoB,SAAS,CAAE0R,gBAAgB,IAIT,MAArBI,WAAQzc,KAAKb,KACf,EAAKwL,SAAS,CAAE0oB,uBAAuB,IAEvC,EAAK1oB,SAAS,CACZvC,aAAa,EACbsY,aAAuB,MAARvhB,GAAgC,MAAhBA,EAAKyM,QAAmBzM,EAAKyM,QAAU,oCAI1EvX,IAAMC,SAASmY,aAAY,IAxBlB,4CA5BQ,sDAEjB,EAAKrC,MAAQ,CACXG,gBAAgB,EAChBnC,aAAa,EACbsY,aAAc,GACd2S,uBAAuB,EACvB7G,MAAO,GACP3Q,SAAU,GACVQ,gBAAgB,GAGlB,EAAK6W,cAAgB,EAAKA,cAAcra,KAAnB,gBACrB,EAAKgD,SAAW,EAAKA,SAAShD,KAAd,gBAbC,EADrB,qDAwDE,WAAqB,IAAD,OAClBxkB,IAAMC,SAASmY,aAAY,IAE3BzM,KAAKC,2BACFyK,MAAK,SAACvL,GAAD,OAAU,EAAKwL,SAAS,CAAEJ,gBAAgB,OAC/CK,OAAM,SAACZ,GAAD,OAAS,EAAKW,SAAS,CAAEJ,gBAAgB,SA7DtD,oBAgEE,WACE,OACE,yBAAKlT,GAAG,aACLjB,KAAKgU,MAAMiS,eACV,kBAAC,IAAD,CAAUjR,GAAG,+BACX,KAEHhV,KAAKgU,MAAMipB,uBAAyBj9B,KAAKgU,MAAMG,eAC9C,kBAAC,IAAD,CAAUa,GAAG,2BACX,KAEJ,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,2BAChC,kBAAC,GAAD,MACA,yBAAKA,UAAU,OACb,wBAAIA,UAAU,0CAAd,WACA,wBAAIA,UAAU,cAEd,0BAAMA,UAAU,wBACd,6BACE,2BACE5L,KAAK,QACLsD,GAAG,QACH0iB,YAAY,YACZ1hB,MAAOjC,KAAKgU,MAAMoiB,MAClB3S,SAAUzjB,KAAK88B,gBAGjB,2BACEn/B,KAAK,WACLsD,GAAG,WACH0iB,YAAY,WACZ1hB,MAAOjC,KAAKgU,MAAMyR,SAClBhC,SAAUzjB,KAAKylB,WAEjB,kBAAC,IAAD,CACEzQ,GAAG,gCACHiP,MAAO,CACLiZ,MAAO,QACPC,aAAc,OACdC,SAAU,SALd,qBAYDp9B,KAAKgU,MAAMhC,YACV,2BAAOzI,UAAU,kBACdvJ,KAAKgU,MAAMsW,cAEZ,KAEJ,4BACE3sB,KAAK,SACLsb,QAASjZ,KAAK+8B,SACdxzB,UAAU,4CAHZ,QASJ,kBAACke,EAAA,EAAD,YA7HV,GAA+BrS,aCDlBioB,GAAb,kDACI,WAAYvpB,GAAQ,IAAD,8BACf,cAAMA,IAeVoS,YAAc,SAAA/e,GACV,EAAKoN,SAAS,CACV2R,YAAa/e,EAAEsC,OAAOxH,SAlBX,EAsBnBq7B,gBAAkB,SAAAn2B,GACd,EAAKoN,SAAS,CACV+oB,gBAAiBn2B,EAAEsC,OAAOxH,SAxBf,EA4BnBgkB,eA5BmB,uCA4BF,WAAOlG,GAAP,iBAAA1gB,EAAA,yDACb0gB,EAAMF,iBACN5hB,IAAMC,SAASmY,aAAY,IAEvB6P,EAAc,EAAKlS,MAAMkS,YAAYrmB,OACrCy9B,EAAkB,EAAKtpB,MAAMspB,gBAAgBz9B,OAG7CqmB,GAAeoX,EARN,uBAST,EAAK/oB,SAAS,CAAEvC,aAAa,EAAMsY,aAAc,oDACjDrsB,IAAMC,SAASmY,aAAY,IAVlB,2CAcPsO,IAAiBsB,eAAeC,GAdzB,QAgBY,MAArBG,WAAQzc,KAAKb,KACb,EAAKwL,SAAS,CAAEJ,gBAAgB,IAEhC,EAAKI,SAAS,CAAEvC,aAAa,EAAMsY,aAAc,iDAGrDrsB,IAAMC,SAASmY,aAAY,IAtBd,4CA5BE,sDAEf,EAAKrC,MAAL,cACIG,gBAAgB,EAChBnC,aAAa,EACbsY,aAAc,GACd2S,uBAAuB,EACvB/W,YAAa,GACboX,gBAAiB,IANrB,kBAOoB,GAGpB,EAAKpX,YAAc,EAAKA,YAAYzD,KAAjB,gBACnB,EAAK6a,gBAAkB,EAAKA,gBAAgB7a,KAArB,gBAbR,EADvB,qDAsDI,WAAqB,IAAD,OAChB7Y,KAAKC,2BACAyK,MAAK,SAAAvL,GAAI,OAAI,EAAKwL,SAAS,CAAEJ,gBAAgB,OAC7CK,OAAM,SAAAZ,GAAG,OAAI,EAAKW,SAAS,CAAEJ,gBAAgB,SAzD1D,oBA6DI,WACI,OACI,yBAAKlT,GAAG,aAEHjB,KAAKgU,MAAMG,eAAiB,kBAAC,IAAD,CAAUa,GAAG,2BAA8B,KAExE,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,2BAC9B,kBAAC,GAAD,MACA,yBAAKA,UAAU,OACX,wBAAIA,UAAU,0CAAd,mBACA,wBAAIA,UAAU,cAEd,0BAAMA,UAAU,wBAEZ,6BACI,2BAAO5L,KAAK,WAAWsD,GAAG,WAAW2M,KAAK,WAAW+V,YAAY,eAC7D1hB,MAAOjC,KAAKgU,MAAMkS,YAClBzC,SAAUzjB,KAAKkmB,cAGnB,2BAAOvoB,KAAK,WAAWsD,GAAG,WAAW2M,KAAK,kBAAkB+V,YAAY,mBACpE1hB,MAAOjC,KAAKgU,MAAMspB,gBAClB7Z,SAAUzjB,KAAKs9B,kBAKnB,gDACA,wBAAIzQ,MAAM,kBACN,8DACA,2EAEA,yEACA,0EACA,2EAMJ7sB,KAAKgU,MAAMhC,YACP,2BAAOzI,UAAU,kBAAmBvJ,KAAKgU,MAAMsW,cAC/C,KAGR,4BAAQ3sB,KAAK,SAASsb,QAASjZ,KAAKimB,eAAgB1c,UAAU,4CAA9D,QAKR,kBAACke,EAAA,EAAD,YA/GpB,GAAqCrS,aCWxBmoB,GAAb,kDACE,WAAYzpB,GAAQ,IAAD,8BACjB,cAAMA,IA+BR+T,gBAhCmB,sBAgCD,4CAAAxoB,EAAA,6DACZuqB,EAAaxnB,IAAE,oBAAoBkI,OACnCuf,EAAaznB,IAAE,oBAAoBkI,OACnCwf,EAAgBD,EAAWvjB,MAAM,KAEjCyjB,EAAUD,EAAc,GACxBE,EAASF,EAAc,GAGvBG,EAAa7nB,IAAE,mBAAmBkI,OAEtCrM,IAAMC,SAASmY,aAAY,KAEvBqD,EAAO,IAENC,qBAAuBiQ,EAAW7nB,QAAQ,MAAO,IACtD2X,EAAKG,mBAAqBkQ,EAC1BrQ,EAAKI,kBAAoBkQ,EACzBtQ,EAAKE,iBAAmBqQ,EAlBR,UAoBiB0Q,GAAiBlC,0BApBlC,aAsBY,OAFxB7sB,EApBY,SAsBoBA,EAAqB/F,OAAS,GAtBlD,wBAuBd5H,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,6CA1BF,kCA+BhB,EAAK/V,SAAS,CAAEqnB,UAAWhwB,EAAqB,KAC5CvB,EAAW,GAGf,EAAKkK,SAAS,CAAEvC,aAAa,IAnCb,UAoCC2oB,GAAiBxQ,WAAWzQ,EAAM,EAAK1F,MAAM4nB,WApC9C,WAoChBvxB,EApCgB,OAqChB,EAAKkK,SAAS,CAAEvC,aAAa,IAEF,MAAvB3H,EAAS+f,WAvCG,iBAwCdnsB,IAAMC,SAASwW,YAASrK,EAAS+f,aACjC,EAAKrQ,SAAS1P,GAzCA,+BA4CZpM,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAuC,MAAxBjgB,EAASggB,YAAuBhgB,EAASggB,YAAc,0CA/C5D,+DAhCC,EAsFnBE,gBAAkB,SAAAC,GAChB,IAAI7sB,EAAO6sB,EAAc/gB,OAAOxH,MAChC,EAAK45B,YAAYl+B,IAxFA,EA4FnBk+B,YA5FmB,uCA4FL,WAAOl+B,GAAP,SAAA0B,EAAA,2DACJ1B,EADI,OAEL,kBAFK,OAML,UANK,OAUL,YAVK,OAcL,YAdK,8BAGR,EAAK4W,SAAS,CAAEkW,aAAa,EAAMC,gBAAgB,EAAOC,eAAe,EAAOC,iBAAiB,EAAOC,gBAAgB,IAHhH,mCAOR,EAAKtW,SAAS,CAAEmW,gBAAgB,EAAMD,aAAa,EAAOE,eAAe,EAAOC,iBAAiB,EAAOC,gBAAgB,IAPhH,mCAWR,EAAKtW,SAAS,CAAEoW,eAAe,EAAMF,aAAa,EAAOC,gBAAgB,EAAOE,iBAAiB,EAAOC,gBAAgB,IAXhH,2CAmBR,EAAKtW,SAAS,CAAEoW,eAAe,EAAOF,aAAa,EAAOC,gBAAgB,EAAOG,gBAAgB,EAAMD,iBAAiB,IAnBhH,iEA5FK,wDAqHnBE,eArHmB,sBAqHF,sBAAAzrB,EAAA,sDACf,EAAK0a,SAAS,MADC,2CArHE,EA0HnBA,SA1HmB,uCA0HR,WAAOgR,GAAP,iDAAA1rB,EAAA,yDACTxB,QAAQC,IAAI,EAAKkW,MAAM4nB,WAEK,IAAxB,EAAK5nB,MAAM4nB,UAHN,iCAI0BjB,GAAiBlC,0BAJ3C,YAMqB,OAFxB7sB,EAJG,SAM6BA,EAAqB/F,QAAU,GAN5D,uBAOL5H,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,8CAVX,0BAcP,EAAK/V,SAAS,CAAEqnB,UAAWhwB,EAAqB,KAdzC,eAiBL4e,EAAgBhsB,IAAqBs9B,mBAAmB,EAAK9nB,MAAM4nB,WACvE,EAAKC,YAAYrR,GAlBR,UAoBYhsB,IAAqB+F,uBAAuB,WAAY,EAAKyP,MAAM4nB,WApB/E,WAoBL7hB,EApBK,SAuBP,EAAKjG,MAAM3B,UAAY,EAAK2B,MAAM3B,SAAS6B,OACzC,EAAKF,MAAM3B,SAAS6B,MAAM3J,SAC1B,EAAKyJ,MACL,CAAE3B,SAAU,CAAE6B,MAAO,CAAE3J,SAAU,CAAE2gB,cAAe,SA1B7C,EAsBD7Y,SAAY6B,MAAS3J,SAAY2gB,cAOf,MAAtBD,EA7BK,iBA8BPhR,EAAStD,iBAAmBsU,EAAmBtU,iBAC/CsD,EAASkR,iBAAmBF,EAAmBX,WAAWa,iBAE1DhtB,IAAMC,SAASuY,YAAiBsD,EAAStD,mBAjClC,+BAmCHmT,EAAaxnB,IAAE,oBAAoBkI,OACnCuf,EAAaznB,IAAE,oBAAoBkI,OACnCwf,EAAgBD,EAAWvjB,MAAM,KACjCyjB,EAAUD,EAAc,GACxBE,EAASF,EAAc,GACvBG,EAAa7nB,IAAE,mBAAmBkI,QAElCoP,EAAO,IAENC,qBAAuBiQ,EAAW7nB,QAAQ,MAAO,IACtD2X,EAAKG,mBAAqBkQ,EAC1BrQ,EAAKI,kBAAoBkQ,EACzBtQ,EAAKE,iBAAmBqQ,EA/CjB,UAiDmBC,EAAe3B,kBAAkB7O,EAAM,EAAK1F,MAAM4nB,WAjDrE,QAmDc,OAFjBniB,EAjDG,SAmDuC,IAAjBA,EAC3BM,EAASN,cAAgBA,EAEzBM,EAASL,KAAOA,EAtDX,eA0DTK,EAAStU,kBAAoBnI,IAAWE,iBAE5B,IACqB,IAA7B,EAAKwW,MAAM2W,iBACTQ,EAAY1qB,SAASM,cAAc,WAC7BqqB,aAAa,KAAM,aAC7BD,EAAUC,aAAa,MAAO,IAC9BD,EAAUlH,MAAMoH,OAAS,IACzBF,EAAUlH,MAAMrB,SAAW,WAC3BuI,EAAUlH,MAAMC,QAAU,QAC1BiH,EAAUlH,MAAM9O,MAAQ,MACxBgW,EAAUlH,MAAMvL,OAAS,OACzByS,EAAUlH,MAAMqH,OAAS,SACzB7qB,SAAS2J,KAAKmhB,MAAMJ,EAAW1qB,SAAS2J,MACxC2P,EAAS5Q,UAAY1I,SAASC,eAAe,aAAaiqB,gBAG1B,IAA9B,EAAK3W,MAAM0W,iBACbc,EAAYtZ,OAAOiT,KAAK,eACxBpL,EAAS5Q,UAAYqiB,IAIQ,IAA3B,EAAKxX,MAAMyW,oBACL1Q,EAAS5Q,UAInB1I,SAAS2J,KAAK6Z,MAAM8X,UAAY,SAE5B1xB,EAAW,GACX2xB,EAAsB,GAzFjB,UA2FwB,MAA3BjiB,EAASmR,iBACXrtB,QAAQC,IAAI,sBACJic,EAASmR,gBAGnBrtB,QAAQC,IAAI,8DACZD,QAAQC,IAAIic,GAjGL,UAmGU4gB,GAAiB5gB,SAAS,EAAK/F,MAAM4nB,UAAW7hB,GAnG1D,WAmGP1P,EAnGO,OAqGH,EAAK2J,MAAM0W,gBACbc,EAAUvT,QAGR,EAAKjE,MAAM2W,gBACTc,EAAQhrB,SAASC,eAAe,cAC9BgrB,WAAWpqB,YAAYmqB,GAGH,MAAxBphB,EAASggB,aAA0C,MAAnBhgB,EAAS0mB,OA9GtC,wBA+GL,EAAKxc,SAAS,CACZvC,aAAa,EACbsY,aAAcjgB,EAASggB,cAGzBpsB,IAAMC,SAASmY,aAAY,IApHtB,8EA0HPxY,QAAQC,IAAI,oBAAZ,MACAG,IAAMC,SAASmY,aAAY,IA3HpB,qBA6HH,EAAKrC,MAAMhC,cACb3H,EAAW2xB,GAGW,MAApB3xB,EAASwmB,SAAiD,GAA9BxmB,EAAS6vB,kBAjIlC,kCAkICS,GAAiBV,kBAAkB,EAAKjmB,MAAM4nB,UAAWvxB,EAASwmB,SAlInE,WAsIPpwB,SAAS2J,KAAK6Z,MAAM8X,UAAY,OAEF,YAA1B1xB,EAAS2gB,eAAyD,SAA1B3gB,EAAS2gB,cAxI9C,kCAyIsBnjB,KAA4Bo0B,0BAA0BliB,EAAU1P,EAAU,EAAK2J,MAAM4nB,WAzI3G,QAyIDM,EAzIC,OA2ILj+B,IAAMC,SAASwW,YAASwnB,IA3InB,WA8IuB,GAA1B,EAAKloB,MAAMhC,YA9IR,sBA+IG3H,EAAS2gB,cA/IZ,OAgJE,aAhJF,QAoJE,aApJF,QA8JE,oBA9JF,QAkKE,gBAlKF,gCAiJD,EAAKzW,SAAS,CAAE8c,qBAAqB,IAjJpC,8CAqJK,EAAKxQ,oBArJV,eAsJD,EAAKtM,SAAS,CACZ+c,SAAS,EAAMxF,gBAAiB,GAChCC,YAAa,GACbC,WAAY,GACZC,MAAO,KA1JR,oCA+JD,EAAK1X,SAAS,CAAEgd,gBAAgB,IA/J/B,oCAmKD,EAAKhd,SAAS,CAAEuc,aAAa,IAnK5B,6BAwK6B,SAA1BzmB,EAAS2gB,eACX,EAAKzW,SAAS,CACZvC,aAAa,EACb2Z,eAAe,EACfrB,aAAcjgB,EAASzH,MAAM4uB,UAC7B3F,iBAAkBxhB,EAASzH,MAAMipB,mBAIrCvsB,IAAcyS,iBAAiB,EAAKiC,MAAMhC,aAjLzC,eAoLP/T,IAAMC,SAASmY,aAAY,IApLpB,8EA1HQ,wDAoTnBtC,uBApTmB,sBAoTM,sBAAA1U,EAAA,sDACvB+C,IAAE,wCAAwC6P,QADnB,2CAlTvB,EAAK+B,MAAQ,CACX8X,gBAAiB,GACjBC,YAAa,GACbC,WAAY,GACZC,MAAO,GACPC,uBAAuB,EACvBC,2BAA2B,EAC3BC,sBAAsB,EACtBR,mBAAmB,EACnBD,eAAe,EACfrB,aAAc,GACdlnB,UAAWlG,IAAWkG,UACtBipB,eAAe,EACf5B,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,iBAAiB,EACjBC,gBAAgB,EAChB2S,eAAgB,GAChBC,cAAe,GACfnR,aAAc,GACdnY,gBAAgB,EAChBod,gBAAgB,EAChBF,qBAAqB,EACrBP,aAAa,EACbuL,qBAAqB,EACrBT,UAAW,IA5BI,EADrB,4FAyTE,mCAAAv8B,EAAA,sDACExB,QAAQC,IAAI,uBACZ8L,KAAKC,2BACFyK,MAAK,SAAAvL,GAAI,OAAI,EAAKwL,SAAS,CAAEJ,gBAAgB,OAC7CK,OAAM,SAAAZ,GAAG,OAAI,EAAKW,SAAS,CAAEJ,gBAAgB,OAEhD/R,IAAE,uDAAuDkI,KAAK,IAE1DkgB,EAAgBhsB,IAAqBs9B,qBAEzC97B,KAAK67B,YAAYrR,GAEjBvsB,IAAMC,SAASmY,aAAY,IAZ7B,gDAzTF,0EAwUE,WACE,OACE,yBAAKpV,GAAG,kBAAkBsI,UAAU,cAClC,kBAAC0xB,EAAA,EAAD,MAECj7B,KAAKgU,MAAMqd,oBAAsB,kBAAC,IAAD,CAAUrc,GAAG,4BAA+B,MAG9C,IAA9BhV,KAAKgU,MAAMud,eACT,kBAAC,IAAD,CAAUvc,GAAG,+CACX,KAGLhV,KAAKgU,MAAM8c,YAAc,kBAAC,IAAD,CAAU9b,GAAG,0BAA6B,MAG/B,IAAnChV,KAAKgU,MAAMqoB,oBACT,kBAAC,IAAD,CACErnB,GAAI,CACFkS,SAAU,yBACVlT,MAAO,CAAE6X,iBAAkB7rB,KAAKgU,MAAM6X,qBAGxC,KAGN,kBAACvE,EAAA,EAAD,CAAWrS,OAAK,GACd,kBAACwP,GAAA,EAAD,KACE,kBAACC,EAAA,EAAD,CAAKxP,GAAI,EAAG3L,UAAU,sBACpB,yBAAKA,UAAU,6EACb,kBAAC,EAAD,MACA,wBAAIA,UAAU,2CAAd,6BAAkF,8BAClF,uBAAGA,UAAU,qDAAb,oBACA,yBAAKA,UAAU,2CAEf,yBAAKA,UAAU,gCACb,yBAAKA,UAAU,oBACb,yBAAKA,UAAU,UACb,uBAAGA,UAAU,qCAAb,6BAGJ,0BAAMA,UAAU,wBAAwBtI,GAAG,kBACzC,yBAAKsI,UAAU,2CAEb,yBAAKA,UAAU,yCAAyCgjB,gBAAgB,OAAOC,kBAAgB,KAC7F5e,KAAK,kBACL3M,GAAG,kBAAkBsmB,mBAAiB,iBAAiB5D,YAAY,cACnE8I,aAAa,MACbxqB,MAAOjC,KAAKgU,MAAM8X,kBAEnB9rB,KAAKgU,MAAMkY,sBACV,2BAAO3iB,UAAU,kBAAjB,4BACE,MAEN,yBAAKA,UAAU,sBACb,yBAAKA,UAAU,uCAEb,yBAAKA,UAAU,yCAAyCgjB,gBAAgB,OAAOC,kBAAgB,KAC7FvqB,MAAOjC,KAAKgU,MAAM0Y,gBAClB9e,KAAK,kBAAkB3M,GAAG,kBAAkBsmB,mBAAiB,kBAC7D5D,YAAY,YAGb3jB,KAAKgU,MAAMmY,0BACV,2BAAO5iB,UAAU,kBAAjB,8CACE,MAGN,yBAAKA,UAAU,sCAGb,yBAAKA,UAAU,yCAAyCgjB,gBAAgB,OAAOC,kBAAgB,KAC7FvqB,MAAOjC,KAAKgU,MAAM2Y,eAClB/e,KAAK,wBAAwB3M,GAAG,iBAChCsmB,mBAAiB,gBAAgB5D,YAAY,kBAG9C3jB,KAAKgU,MAAMoY,qBACV,2BAAO7iB,UAAU,kBAAjB,2BACE,MAGLvJ,KAAKgU,MAAMhC,YACV,2BAAOzI,UAAU,kBAAkBvJ,KAAKgU,MAAMsW,cAC5C,OAIR,yBAAK/gB,UAAU,6BACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,uDACb,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAK6nB,gBAAiB5mB,GAAG,iBACtDsI,UAAU,2CADZ,sBAGF,yBAAKA,UAAU,sDACb,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAK8qB,eAAgB7pB,GAAG,oBACrDsI,UAAU,0CADZ,wBAOV,yBAAKA,UAAU,gCACb,kBAACke,EAAA,EAAD,QAIJ,kBAAC/C,EAAA,EAAD,CAAKxP,GAAI,EAAG3L,UAAU,aACpB,kBAACuG,GAAA,EAAD,cApbd,GAAqCsF,a,qCCJxBsoB,GAAb,kDACE,WAAY5pB,GAAQ,IAAD,8BACjB,cAAMA,IAiBRgpB,cAAgB,SAAC31B,GACf,EAAKoN,SAAS,CACZ6hB,MAAOjvB,EAAEsC,OAAOxH,SApBD,EAwBnB07B,YAAc,SAACx2B,GACb,EAAKoN,SAAS,CACZmlB,IAAKvyB,EAAEsC,OAAOxH,SA1BC,EA8BnB27B,iBAAmB,SAACz2B,GAClB,EAAKoN,SAAS,CACZkR,SAAUte,EAAEsC,OAAOxH,SAhCJ,EAoCnB47B,wBAA0B,SAAC12B,GACzB,EAAKoN,SAAS,CACZ+oB,gBAAiBn2B,EAAEsC,OAAOxH,SAtCX,EA0CnB67B,kBA1CmB,uCA0CC,WAAO32B,GAAP,uBAAA9H,EAAA,yDACd0+B,EAAWt9B,SAASC,eAAe,SACvCyG,EAAE0Y,iBACoB,MAAlBke,EAAS97B,OAAmC,IAAlB87B,EAAS97B,MAHrB,oBAIZ+7B,EAAa,wEACbD,EAAS97B,MAAMw5B,MAAMuC,GALT,wBAMVl0B,EAAW,EAAKkK,MAAMoiB,MAAMv2B,OANlB,SAOS8kB,IAAiBiB,eAAe9b,GAPzC,UAOVm0B,EAPU,OAQdpgC,QAAQC,IAAImgC,GAEPA,EAVS,wBAWRr7B,EAAQ,2BACZ,EAAKs7B,YAAYt7B,GAZL,2BAgBd,EAAKu7B,SACL/7B,IAAE,gBAAgB4d,OAClB5d,IAAE,qBAAqB4d,OACvB5d,IAAE,4BAA4B4d,OAC9B+d,EAAS3S,aAAa,WAAY,YAClC,EAAK7W,SAAS,CAAE6pB,SAAS,IArBX,wBAuBdvgC,QAAQC,IAAI,qBACR8E,EAAQ,2BACZ,EAAKs7B,YAAYt7B,GAzBH,gCA4BZA,EAAQ,qBACZ,EAAKs7B,YAAYt7B,GA7BD,4CA1CD,wDA2EnBu7B,OAAS,kBAAM/a,KAAMib,KAAK,EAAKC,cA3EZ,EA4EnBA,YAAc,kBACZ,yBAAK/0B,UAAU,OAAf,2DA7EiB,EAkFnBg1B,qBAlFmB,uCAkFI,WAAOp3B,GAAP,2BAAA9H,EAAA,yDACrB8H,EAAE0Y,iBACEuW,EAAQ,EAAKpiB,MAAMoiB,MAAMv2B,OACzBqmB,EAAc,EAAKlS,MAAMyR,SAAS5lB,OAClCy9B,EAAkB,EAAKtpB,MAAMspB,gBAAgBz9B,OAC7C65B,EAAM,EAAK1lB,MAAM0lB,IAAI75B,OACF,IAAI2+B,OAAO,oBAE9BC,EAAiB,GACjB/D,EAAW,GACXxU,GAAeoX,EAVE,kCAWI3Y,IAAiBmB,mBACtCsQ,EACAsD,EACA4D,GAdiB,QAWnBmB,EAXmB,eAkBC,GAAlBA,GACFh+B,SACGC,eAAe,qBACf0qB,aAAa,WAAY,YAE5B3qB,SAASC,eAAe,SAASuB,MAAQ,GACzCxB,SAASC,eAAe,OAAOuB,MAAQ,GACvCxB,SAASC,eAAe,YAAYuB,MAAQ,GAC5CxB,SAASC,eAAe,mBAAmBuB,MAAQ,GAGjD,qFACF,EAAKy8B,cADH,sFAGEC,EAAmBzsB,OAAOC,SAASC,OAAS,uBAChDF,OAAO+jB,YAAW,WAChB/jB,OAAOC,SAASpQ,QAAQ48B,KACvB,MAEMzY,GAAeoX,GACxBz/B,QAAQC,IAAI,kBACZ,EAAKyW,SAAS,CACZvC,aAAa,EACbsY,aAAc,qDAGhBoQ,EAAW+D,EAAejpB,QAC1B,EAAKjB,SAAS,CACZvC,aAAa,EACbsY,aAAcoQ,KA/CG,4CAlFJ,wDA0InBgE,cAAgB,SAAC/7B,GAAD,OAAaygB,KAAMzgB,QAAQA,IA1IxB,EA4InBu7B,YAAc,SAACt7B,GACbwgB,KAAMxgB,MAAMA,IA3IZ,EAAKoR,MAAQ,CACXoiB,MAAO,GACPsD,IAAK,GACLjU,SAAU,GACV6X,gBAAiB,GACjBc,SAAS,EACTQ,iBAAkB,GAClB5sB,aAAa,EACbsY,aAAc,IAGhB,EAAKwS,cAAgB,EAAKA,cAAcra,KAAnB,gBACrB,EAAKkb,YAAc,EAAKA,YAAYlb,KAAjB,gBACnB,EAAKmb,iBAAmB,EAAKA,iBAAiBnb,KAAtB,gBACxB,EAAKob,wBAA0B,EAAKA,wBAAwBpb,KAA7B,gBAhBd,EADrB,qDAiJE,WACErgB,IAAE,gBAAgBy8B,OAClBz8B,IAAE,qBAAqBy8B,OACvBz8B,IAAE,4BAA4By8B,SApJlC,oBAsJE,WACE,IAAM/1B,EACJ9I,KAAKgU,MAAMyR,SAAS5f,OAAS,GAC7B7F,KAAKgU,MAAMspB,gBAAgBz3B,OAAS,GACpC7F,KAAKgU,MAAM0lB,IAAI7zB,OAAS,EAC1B,OACE,yBAAK0D,UAAU,kBACb,kBAAC,KAAD,CACEqZ,SAAS,YACTC,UAAW,IACXC,aAAa,EACbC,cAAc,EACdC,KAAK,EACLC,kBAAkB,EAClBC,WAAW,EACXC,MAAO,IAGT,kBAACmE,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,2BAChC,kBAAC,KAAD,CAActI,GAAG,cAAc69B,MAAM,MAAMC,OAAO,SAChD,wBAAIx1B,UAAU,wBACZ,8DACA,2EACA,yEACA,0EACA,2EAIJ,kBAAC,GAAD,MACA,yBAAKA,UAAU,OACb,wBAAIA,UAAU,0CAAd,mBAGA,wBAAIA,UAAU,cAEd,0BACEW,OAAO,OACP0D,KAAK,qBACLrE,UAAU,wBAEV,6BACE,2BACE5L,KAAK,QACLiQ,KAAK,QACL3L,MAAOjC,KAAKgU,MAAMoiB,MAClBn1B,GAAG,QACH0iB,YAAY,YACZF,SAAUzjB,KAAK88B,gBAEjB,yBAAK77B,GAAG,eACN,2BACEtD,KAAK,OACLsE,MAAOjC,KAAKgU,MAAM0lB,IAClB9rB,KAAK,MACL3M,GAAG,MACH0iB,YAAY,MACZF,SAAUzjB,KAAK29B,eAGnB,yBAAK18B,GAAG,oBACN,2BACEtD,KAAK,WACLsD,GAAG,WACH2M,KAAK,WACL+V,YAAY,WACZ1hB,MAAOjC,KAAKgU,MAAMyR,SAClBhC,SAAUzjB,KAAK49B,mBAEjB,uBAAGr0B,UAAU,OAAOy1B,YAAA,EAASC,WAAS,eACpC,kBAAC,IAAD,CAAiB5b,KAAM6b,QAG3B,yBAAKj+B,GAAG,2BACN,2BACEtD,KAAK,WACLsD,GAAG,kBACH2M,KAAK,kBACL+V,YAAY,mBACZ1hB,MAAOjC,KAAKgU,MAAMspB,gBAClB7Z,SAAUzjB,KAAK69B,0BAEjB,uBAAGt0B,UAAU,OAAOy1B,YAAA,EAASC,WAAS,eACpC,kBAAC,IAAD,CAAiB5b,KAAM6b,QAI3B,kBAAC,IAAD,CACElqB,GAAG,uBACHiP,MAAO,CACLiZ,MAAO,QACPC,aAAc,OACdC,SAAU,OACV+B,YAAa,QANjB,YAYDn/B,KAAKgU,MAAMhC,YACV,2BAAOzI,UAAU,kBACdvJ,KAAKgU,MAAMsW,cAEZ,KAEmB,GAAtBtqB,KAAKgU,MAAMoqB,QACV,4BACEzgC,KAAK,SACLsD,GAAG,YACHgY,QAASjZ,KAAK89B,kBACdv0B,UAAU,4CAJZ,MASA,4BACE61B,UAAWt2B,EACXnL,KAAK,SACLsD,GAAG,oBACHgY,QAASjZ,KAAKu+B,qBACdh1B,UAAU,4CALZ,YAYN,kBAACke,EAAA,EAAD,YArRV,GAAwCrS,aCApCrR,GAAe,GAENs7B,GAAb,kDACE,WAAYvrB,GAAQ,IAAD,8BACjB,cAAMA,IA4BR+T,gBA7BmB,sBA6BD,gDAAAxoB,EAAA,6DACZuqB,EAAaxnB,IAAE,oBAAoBkI,OACnCuf,EAAaznB,IAAE,oBAAoBkI,OACnCwf,EAAgBD,EAAWvjB,MAAM,KAEjCyjB,EAAUD,EAAc,GACxBE,EAASF,EAAc,GAGvBG,EAAa7nB,IAAE,mBAAmBkI,OATtB,SAWW9L,IAAqB+F,uBAAuB,cAXvD,QAWZiV,EAXY,QAYD/T,kBAAoBnI,IAAWE,iBAI9C,IAIEgb,IAAY/X,SAASgY,cAAc,oBAAqB,CACtDtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GAChB9a,QAAQC,IAAI6a,GAIZtE,GADAA,EAAUsE,EAAOC,aACC7W,QAAQ,2BAA4B,OAExD,MAAOa,IA/BO,OAmChB3E,IAAMC,SAASmY,aAAY,KAEvBqD,EAAO,IAENC,qBAAuBiQ,EAAW7nB,QAAQ,MAAO,IACtD2X,EAAKG,mBAAqBkQ,EAC1BrQ,EAAKI,kBAAoBkQ,EACzBtQ,EAAKE,iBAAmBqQ,EA1CR,UA4CUC,EAAe3B,kBAAkB7O,GA5C3C,eA8CK,OAFjBD,EA5CY,SA8C8B,IAAjBA,EAC3BD,EAAeC,cAAgBA,EAE/BD,EAAeE,KAAOA,EAGxB7b,QAAQC,IAAI0b,GApDI,UAuDd3b,QAAQC,IAAI,0BAvDE,UAwDOoU,OAAOoM,YAAY6L,WAAW3Q,GAxDrC,QAwDVnP,EAxDU,OAyDdxM,QAAQC,IAAIuM,GAEZpM,IAAMC,SAASwW,YAASrK,EAAS+f,aAEjC/U,YAAS/X,IAAWE,iBAAkB,aAAc6W,GACpD,EAAK0F,SAAS1P,GA9DA,mDAiEdxM,QAAQC,IAAI,KAAMusB,aAClB,EAAK9V,SAAS,CACZvC,aAAa,EACbsY,aAAoC,MAArB,KAAMD,YAAuB,KAAMA,YAAc,iCAGlEpsB,IAAMC,SAASmY,aAAY,IAvEb,2DA7BC,EAyGnBkU,gBAAkB,SAAAC,GAChB,IAAI7sB,EAAO6sB,EAAc/gB,OAAOxH,MAGhC,OAFApE,QAAQC,IAAIH,GAEJA,GACN,IAAK,cACH,EAAK4W,SAAS,CAAEkW,aAAa,EAAMC,gBAAgB,EAAOC,eAAe,EAAOC,iBAAiB,EAAOC,gBAAgB,IACxH,MAEF,IAAK,QACH,EAAKtW,SAAS,CAAEmW,gBAAgB,EAAMD,aAAa,EAAOE,eAAe,EAAOC,iBAAiB,EAAOC,gBAAgB,IACxH,MAEF,IAAK,gBACH,EAAKtW,SAAS,CAAEoW,eAAe,EAAMF,aAAa,EAAOC,gBAAgB,EAAOE,iBAAiB,EAAOC,gBAAgB,IACxH,MAEF,IAAK,iBACH,EAAKtW,SAAS,CAAEoW,eAAe,EAAOF,aAAa,EAAOC,gBAAgB,EAAOG,gBAAgB,EAAMD,iBAAiB,MA3H3G,EAoInBE,eApImB,sBAoIF,sBAAAzrB,EAAA,sDACf,EAAK0a,SAAS,MADC,2CApIE,EAyInBA,SAzImB,uCAyIR,WAAOgR,GAAP,yCAAA1rB,EAAA,sEACYb,IAAqB+F,uBAAuB,YADxD,cACLwV,EADK,OAETlc,QAAQC,IAAIic,GAFH,EAKP,EAAKjG,MAAM3B,UAAY,EAAK2B,MAAM3B,SAAS6B,OACzC,EAAKF,MAAM3B,SAAS6B,MAAM3J,SAC1B,EAAKyJ,MACL,CAAE3B,SAAU,CAAE6B,MAAO,CAAE3J,SAAU,CAAE2gB,cAAe,SAR7C,EAID7Y,SAAY6B,MAAS3J,SAAY2gB,cAOf,MAAtBD,GACFhR,EAAStD,iBAAmBsU,EAAmBtU,iBAC/CsD,EAASkR,iBAAmBF,EAAmBX,WAAWa,mBAEtDrB,EAAaxnB,IAAE,oBAAoBkI,OACnCuf,EAAaznB,IAAE,oBAAoBkI,OACnCwf,EAAgBD,EAAWvjB,MAAM,KACjCyjB,EAAUD,EAAc,GACxBE,EAASF,EAAc,GACvBG,EAAa7nB,IAAE,mBAAmBkI,QAElCoP,EAAO,IAENC,qBAAuBiQ,EAAW7nB,QAAQ,MAAO,IACtD2X,EAAKG,mBAAqBkQ,EAC1BrQ,EAAKI,kBAAoBkQ,EACzBtQ,EAAKE,iBAAmBqQ,EAExBlQ,EAASN,cAAgBC,GAG3BK,EAAStU,kBAAoBnI,IAAWE,iBAExCK,QAAQC,IAAIitB,GAlCH,UAqCevsB,IAAqB+F,uBAAuB,iBArC3D,sBAsCGgS,SAAWtY,IAAMkB,WAAWC,QAAQmX,SAI5CtU,EAAQ,IACqB,IAA7B,EAAK+R,MAAM2W,iBACTQ,EAAY1qB,SAASM,cAAc,WAC7BqqB,aAAa,KAAM,aAC7BD,EAAUC,aAAa,MAAO,IAC9BD,EAAUlH,MAAMoH,OAAS,IACzBF,EAAUlH,MAAMrB,SAAW,WAC3BuI,EAAUlH,MAAMC,QAAU,QAC1BiH,EAAUlH,MAAM9O,MAAQ,MACxBgW,EAAUlH,MAAMvL,OAAS,OACzByS,EAAUlH,MAAMqH,OAAS,SACzB7qB,SAAS2J,KAAKmhB,MAAMJ,EAAW1qB,SAAS2J,MACxC2P,EAAS5Q,UAAY1I,SAASC,eAAe,aAAaiqB,gBAG1B,IAA9B,EAAK3W,MAAM0W,iBACbc,EAAYtZ,OAAOiT,KAAK,eACxBpL,EAAS5Q,UAAYqiB,IAGQ,IAA3B,EAAKxX,MAAMyW,oBACL1Q,EAAS5Q,UAInBtL,QAAQC,IAAIic,GAnEH,oBAuEDzc,IAAWuB,gBAAgBoD,EAAO8X,EAAStD,iBAAkB,MAvE5D,eAwEP5Y,QAAQC,IAAIic,GAxEL,UA0Ec7H,OAAOoM,YAAYvE,SAASA,GA1E1C,QA0EH1P,EA1EG,OA2EPxM,QAAQC,IAAIuM,GAGR,EAAK2J,MAAM0W,gBACbc,EAAUvT,QAGR,EAAKjE,MAAM2W,gBACTc,EAAQhrB,SAASC,eAAe,cAC9BgrB,WAAWpqB,YAAYmqB,GApFxB,KAuFCphB,EAAS2gB,cAvFV,OAwFA,aAxFA,QA0GA,aA1GA,QA6GA,oBA7GA,QAiHA,gBAjHA,gCA0FH,EAAKzW,SAAS,CAAE8c,qBAAqB,IAEJ,IAA7B,EAAKrd,MAAMwpB,eACb,EAAKjpB,SAAS,CACZkpB,cAAe,EAAKzpB,MAAMwpB,eAC1BxS,cAAe3gB,EAAS2gB,gBAG1B,EAAKzW,SAAS,CACZoX,eAAe,EACfC,mBAAmB,EACnBZ,cAAe3gB,EAAS2gB,gBArGzB,wEA8GH,EAAKzW,SAAS,CAAEgd,gBAAgB,IA9G7B,oCAkHH,EAAKhd,SAAS,CAAE+qB,YAAY,IAlHzB,6BAsH2B,SAA1Bj1B,EAAS2gB,eACX,EAAKzW,SAAS,CACZvC,aAAa,EACbsY,aAAcjgB,EAASzH,MAAM4uB,UAC7B3F,iBAAkBxhB,EAASzH,MAAMipB,iBACjCF,eAAe,IA3HhB,QA+HP1tB,IAAMC,SAASmY,aAAY,IA/HpB,mDAkIP,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,KAAMD,cAGlB,EAAKrW,MAAM0W,gBACbc,EAAUvT,QAGR,EAAKjE,MAAM2W,eAEA,OADTc,EAAQhrB,SAASC,eAAe,eAElC+qB,EAAMC,WAAWpqB,YAAYmqB,GAIjCxtB,IAAMC,SAASmY,aAAY,IAlJpB,2DAzIQ,sDAEjB,EAAKrC,MAAQ,CACX8X,gBAAiB,GACjBC,YAAa,GACbC,WAAY,GACZC,MAAO,GACPC,uBAAuB,EACvBC,2BAA2B,EAC3BC,sBAAsB,EACtBR,mBAAmB,EACnBD,eAAe,EACfrB,aAAc,GACdvmB,aAAc,GACdX,UAAWlG,IAAWkG,UACtBipB,eAAe,EACf5B,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,iBAAiB,EACjBC,gBAAgB,EAChB2S,eAAgB,GAChBC,cAAe,GACfnR,aAAc,GACdiF,gBAAgB,EAChB+N,YAAY,GAzBG,EADrB,qDAiSE,WACErhC,IAAMC,SAASmY,aAAY,IAEP,cADpBtS,GAAezG,IAAWqE,eACyB,aAAhBoC,KACjClG,QAAQC,IAAI,SACZkC,KAAKuU,SAAS,CAAEoW,eAAe,EAAOF,aAAa,EAAOC,gBAAgB,EAAOE,iBAAiB,EAAOC,gBAAgB,KAG3H,IAAIjqB,EAAMsR,OAAOC,SAAS3I,KAAK7B,MAAMuK,OAAOC,SAAS3I,KAAK4E,QAAQ,KAAO,GAE9D,MAAPxN,GAAsB,IAAPA,GAAaA,EAAIoD,SAAS,cAC3ChE,KAAKuU,SAAS,CAAEipB,eAAgB,KAChB,MAAP58B,GAAsB,IAAPA,GAAaA,EAAIoD,SAAS,cAClDnG,QAAQC,IAAI,WACZkC,KAAKuU,SAAS,CAAEipB,eAAgB,IAAM58B,EAAM,kBA/SlD,oBAmTE,WACE,OACE,yBAAKK,GAAG,mBAEuB,IAA5BjB,KAAKgU,MAAMypB,cAAsB,kBAAC,IAAD,CAAUzoB,GAAIhV,KAAKgU,MAAMypB,gBAAoB,KAC9Ez9B,KAAKgU,MAAM4X,kBAAoB,kBAAC,IAAD,CAAU5W,GAAG,0BAA6B,KACzEhV,KAAKgU,MAAMsrB,WAAa,kBAAC,IAAD,CAAUtqB,GAAG,yBAA4B,KACjEhV,KAAKgU,MAAMud,eAAiB,kBAAC,IAAD,CAAUvc,GAAG,yBAA4B,KAEtE,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,2BAChC,kBAAC,EAAD,MAEA,wBAAIA,UAAU,2CAAd,6BAAkF,8BAClF,uBAAGA,UAAU,qDAAb,oBAEA,yBAAKA,UAAU,2CAEf,yBAAKA,UAAU,gCACb,yBAAKA,UAAU,oBACb,yBAAKA,UAAU,UACb,uBAAGA,UAAU,qCAAb,6BAIJ,0BAAMA,UAAU,wBAAwBtI,GAAG,kBACzC,yBAAKsI,UAAU,2CAIb,yBAAKA,UAAU,yCAAyCgjB,gBAAgB,OAAOC,kBAAgB,KAC7F5e,KAAK,kBACL3M,GAAG,kBAAkBsmB,mBAAiB,iBAAiB5D,YAAY,cACnE8I,aAAa,MACbxqB,MAAOjC,KAAKgU,MAAM8X,kBAInB9rB,KAAKgU,MAAMkY,sBACV,2BAAO3iB,UAAU,kBAAjB,4BACE,MAGN,yBAAKA,UAAU,sBACb,yBAAKA,UAAU,uCAEb,yBAAKA,UAAU,yCAAyCgjB,gBAAgB,OAAOC,kBAAgB,KAC7FvqB,MAAOjC,KAAKgU,MAAM0Y,gBAClB9e,KAAK,kBAAkB3M,GAAG,kBAAkBsmB,mBAAiB,kBAC7D5D,YAAY,YAGb3jB,KAAKgU,MAAMmY,0BACV,2BAAO5iB,UAAU,kBAAjB,8CACE,MAGN,yBAAKA,UAAU,sCAGb,yBAAKA,UAAU,yCAAyCgjB,gBAAgB,OAAOC,kBAAgB,KAC7FvqB,MAAOjC,KAAKgU,MAAM2Y,eAClB/e,KAAK,wBAAwB3M,GAAG,iBAChCsmB,mBAAiB,gBAAgB5D,YAAY,kBAG9C3jB,KAAKgU,MAAMoY,qBACV,2BAAO7iB,UAAU,kBAAjB,2BACE,MAGLvJ,KAAKgU,MAAMhC,YACV,2BAAOzI,UAAU,kBAAkBvJ,KAAKgU,MAAMsW,cAC5C,OAKR,kBAACsC,EAAA,EAAD,CAAOrjB,UAAU,mDAAjB,kBAGA,kBAACmb,EAAA,EAAD,CAAKnB,GAAI,GAAIsJ,MAAM,iBAAiB5I,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IACtE,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACV,kBAACC,EAAA,EAAD,CACErvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,gBACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAsC,IAA7BxjB,KAAKgU,MAAM2W,gBACnB,IAPL,sBAYF,kBAACjG,EAAA,EAAD,CAAKnB,GAAI,GAAIsJ,MAAM,iBAAiB5I,MAAO,CAAE6I,UAAW,SAAUxB,OAAQ,IACxE,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACV,kBAACC,EAAA,EAAD,CACEzjB,UAAU,kBACV5L,KAAK,QACLiQ,KAAK,YACL3L,MAAM,cACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAoC,IAA3BxjB,KAAKgU,MAAMyW,cACnB,IARL,kBAaF,kBAAC/F,EAAA,EAAD,CAAKnB,GAAI,GAAI0J,gBAAc,EAAChJ,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IAC9D,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACV,kBAACC,EAAA,EAAD,CACErvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,QACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAuC,IAA9BxjB,KAAKgU,MAAM0W,iBACnB,IAPL,oBAYgB,aAAhB3mB,IAA+C,aAAhBA,GAC/B,kBAAC2gB,EAAA,EAAD,CAAKnB,GAAI,GAAI0J,gBAAc,EAAChJ,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IAC9D,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACV,kBAACC,EAAA,EAAD,CACErvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,iBACNwhB,SAAUzjB,KAAKuqB,gBACf2C,OAAQltB,KAAKmtB,qBACb3J,SAAuC,IAA9BxjB,KAAKgU,MAAM6W,iBACnB,IARL,sBAWO,KAGX,kBAACnG,EAAA,EAAD,CAAKnB,GAAI,GAAIU,MAAO,CAAE6I,UAAW,SAC9B9sB,KAAKgU,MAAM4W,gBACV,2BAAOrhB,UAAU,kBACdvJ,KAAKgU,MAAMsY,cAEZ,MAGN,yBAAK/iB,UAAU,6BACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCACb,4BAAQ5L,KAAK,SAASsb,QAASjZ,KAAK6nB,gBAAiB5mB,GAAG,iBACtDsI,UAAU,0CADZ,gBAOR,kBAACke,EAAA,EAAD,YA7cV,GAAwCrS,aCPpCmY,IAAe,EAENgS,GAAb,kDACE,WAAYzrB,GAAQ,IAAD,8BACjB,cAAMA,IAkCR2Z,oBAnCmB,sBAmCG,kCAAApuB,EAAA,sDAGpB,IAEEmZ,IAAY/X,SAASgY,cAAc,oBAAqB,CACtDtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GAEdtE,GADAA,EAAUsE,EAAOC,aACC7W,QAAQ,2BAA4B,OAE1D,MAAOa,GACP/E,QAAQC,IAAI8E,GAdM,gBAiBapE,IAAqB+F,uBAAuB,QAjBzD,cAiBhBqpB,EAjBgB,QAmBCnoB,kBAAoBnI,IAAWE,iBACpDS,IAAMC,SAASmY,aAAY,IApBP,kBAwBOnE,OAAOoM,YAAYuP,KAC1CD,GAzBgB,UA6BS,QALvBoE,EAxBc,QA6BD3B,OA7BC,kCA8Bcne,OAAOoM,YAAYwP,eA9BjC,QAgCoB,IAFhCmE,EA9BY,QAgCMlE,YACpB1Y,YAAS/X,IAAWE,iBAAkB,OAAQ6W,GAC9CpW,IAAMC,SAASmY,aAAY,IAC3BpY,IAAMC,SAASqY,YAAS0b,EAAkB1b,WAC1C,EAAKhC,SAAS,CAAEyZ,gBAAgB,MAIhC,EAAKzZ,SAAS,CAAEyZ,gBAAgB,IAChC/vB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,oBA5CF,wBAgDhBrsB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc0H,EAAa3H,cAnDb,0DAwDlBpsB,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,KAAMD,cA3DJ,0DAnCH,EAmGnB4D,cAnGmB,uCAmGH,WAAOlO,GAAP,qBAAA1gB,EAAA,sDACV6uB,EAAanO,EAAMtW,OAAO0kB,YAC1BC,EAAUrO,EAAMtW,OAAOxI,GACvBotB,EAAiBtO,EAAMtW,OAAOmW,QAAQ,MAAMjf,aAAa,aACzDiG,EAAUmZ,EAAMtW,OAAOmW,QAAQ,MAAMjf,aAAa,WAEtD9C,QAAQC,IAAIowB,EAAa,IAAME,EAAU,IAAMC,EAAiB,IAAMznB,GAEtEpI,IAAqB+I,2BAA2B6mB,EAASF,EAAYG,EAAgBznB,GARvE,2CAnGG,wDA8GnB0nB,gBA9GmB,uCA8GD,WAAOvO,GAAP,SAAA1gB,EAAA,sDAChBoB,SAASC,eAAe,WAAWujB,MAAMC,QAAU,OACnDzjB,SAASC,eAAe,gBAAgBujB,MAAMC,QAAU,OAFxC,2CA9GC,wDAmHnBqK,iBAnHmB,sBAmHA,4BAAAlvB,EAAA,sEACSb,IAAqB2F,+BAD9B,OACbqqB,EADa,OAGjB3wB,QAAQC,IAAI0wB,GACS,MAAjBA,GAAyBA,EAAc3oB,OAAS,GAClD,EAAK0O,SAAS,CAAEka,kBAAmBD,IACnC/tB,SAASC,eAAe,WAAWujB,MAAMC,QAAU,SAEnDzjB,SAASC,eAAe,gBAAgBujB,MAAMC,QAAU,QARzC,2CAnHA,EA+HnBwK,kBA/HmB,uCA+HC,WAAO3O,GAAP,eAAA1gB,EAAA,sDAClB0gB,EAAMtW,OAAOklB,UAAUhP,OAAO,WAC1BiP,EAAU7O,EAAMtW,OAAOolB,oBAEf5K,MAAM6K,UAChBF,EAAQ3K,MAAM6K,UAAY,KAE1BF,EAAQ3K,MAAM6K,UAAYF,EAAQG,aAAe,KAPjC,2CA/HD,sDAGjB,EAAKC,qBAEL,EAAKhb,MAAQ,CACXga,gBAAgB,EAChBiB,gBAAiB,GACjBjd,aAAa,EACbsY,aAAc,GACdmE,kBAAmB,IAVJ,EADrB,sDAiBE,WAKE,IAJA,IAAI7tB,EAAMsR,OAAOC,SAAS3I,KAAK7B,MAAMuK,OAAOC,SAAS3I,KAAK4E,QAAQ,KAAO,GAAG9H,MAAM,KAC9E5I,EAAW,GACXC,EAAO,SAEFqQ,EAAI,EAAGA,EAAIpN,EAAIiF,OAAQmI,IAAK,CACnC,IAAIkhB,EAAWtuB,EAAIoN,GAAG1H,MAAM,KACT,QAAf4oB,EAAS,KACXxxB,EAAWwxB,EAAS,GACpB3B,IAAe,GAEE,QAAf2B,EAAS,KACXvxB,EAAOuxB,EAAS,IAIpB5xB,IAAWG,eAAeC,EAAUC,KAjCxC,+BA4IE,WACEM,IAAMC,SAASmY,aAAY,IAGzB5V,SAASC,eAAe,oBAAoBujB,MAAMC,QADhDqJ,GAC0D,QAEA,SAlJlE,oBAsJE,WAAU,IAAD,OACP,OACE,yBAAKtsB,GAAG,mBACLjB,KAAKgU,MAAMga,eAAiB,kBAAC,IAAD,CAAUhZ,GAAG,yBAA4B,KACtE,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,gDAChC,kBAAC,EAAD,MAEA,wBAAIA,UAAU,iDAAd,aAA4E,wBAAIA,UAAU,gBAC1F,yBAAKA,UAAU,YACb,yBAAKA,UAAU,oEACb,wBAAIA,UAAU,gCAAd,UACA,yBAAKA,UAAU,YACb,yBAAKA,UAAU,SACb,yBAAKvI,IAAK9D,IAAWmG,gBAAkB,gBAAiB8R,MAAM,MAAM5L,UAAU,6BAEhF,yBAAKA,UAAU,SACb,uBAAGA,UAAU,gCAAb,+BAEA,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,QADF,IAC8C,0BAAMA,UAAU,kBAAhB,MAC9C,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,YADF,IACkD,0BAAMA,UAAU,uBAMxE,yBAAKA,UAAU,8CACb,4BAAQ5L,KAAK,SAASsD,GAAG,mBAAmBsI,UAAU,mBACpD0P,QAASjZ,KAAKuuB,kBADhB,aAIA,yBAAKhlB,UAAU,+CACb,yBAAKA,UAAU,sBAAf,YACA,yBAAKA,UAAU,aAAf,WAGF,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,qBAAf,wBAAwD,6BAAxD,YACA,yBAAKA,UAAU,aAAf,SAGF,yBAAKA,UAAU,qDACb,yBAAKA,UAAU,qBAAf,SACA,yBAAKA,UAAU,aAAf,aAMN,wBAAIA,UAAU,gBACd,yBAAKA,UAAU,OACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCACb,4BAAQ5L,KAAK,SAASsD,GAAG,iBAAiBsI,UAAU,yCAClD0P,QAASjZ,KAAKytB,qBADhB,iBAGCztB,KAAKgU,MAAMhC,YACV,2BAAOzI,UAAU,kBAAmBvJ,KAAKgU,MAAMsW,cAC7C,KAEJ,yBAAKtpB,IAAK9D,IAAWmG,gBAAkB,oBAAqBkG,UAAU,iCAEtE,yBAAKtI,GAAG,gBACN,yBAAKA,GAAG,UAAUsI,UAAU,SAC1B,yBAAKA,UAAU,iBACb,0BAAMA,UAAU,QAAQ0P,QAASjZ,KAAKsuB,iBAAtC,QACA,uDAGEtuB,KAAKgU,MAAMya,kBAAkBvnB,KAAI,SAACV,EAASwH,GACzC,OACE,yBAAKxF,IAAKwF,GACR,4BAAQrQ,KAAK,SAASsb,QAAS,EAAKyV,kBAAmBnlB,UAAU,6BAA6B/C,EAAQH,WAEtG,yBAAKkD,UAAU,WACb,+BACE,+BACE,4BACE,0CACA,wBAAIA,UAAU,SAAd,mBAIF/C,EAAQD,OAAOW,KAAI,SAACmC,EAAOzC,GACzB,OACE,wBAAI4B,IAAK5B,GACP,4BAAKyC,EAAM3C,eACX,wBAAI6C,UAAU,QAAQ6lB,UAAW5oB,EAAQH,UAAWO,QAASoH,GAC3D,yBAAKzE,UAAU,kFAAkF8lB,gBAAgB,OAAO7C,kBAAgB,KACtI5e,KAAMvE,EAAM3C,cAAezF,GAAIoI,EAAM3C,cAAe6gB,mBAAiB,kBACrE+H,OAAQ,EAAKrB,eAFf,IAEkC5kB,EAAMpC,YAFxC,mBAuB5B,yBAAKhG,GAAG,gBACN,yBAAKA,GAAG,eAAesI,UAAU,SAC/B,yBAAKA,UAAU,iBACb,0BAAMA,UAAU,QAAQ0P,QAASjZ,KAAKsuB,iBAAtC,QACA,+EA1QtB,GAAqClZ,aCDxBoqB,GAAb,kDACI,WAAY1rB,GAAQ,IAAD,8BACf,cAAMA,IA4DVyW,gBAAkB,SAAAC,GAGd,OAFWA,EAAc/gB,OAAOxH,OAG5B,IAAK,cACD,EAAKsS,SAAS,CAAEkW,aAAa,EAAMC,gBAAgB,EAAOC,eAAe,EAAOC,iBAAiB,IACjG,MAEJ,IAAK,QACD,EAAKrW,SAAS,CAAEmW,gBAAgB,EAAMD,aAAa,EAAOE,eAAe,EAAOC,iBAAiB,IACjG,MAEJ,IAAK,gBACD,EAAKrW,SAAS,CAAEoW,eAAe,EAAMF,aAAa,EAAOC,gBAAgB,EAAOE,iBAAiB,MA1E1F,EAkFnBsG,aAlFmB,uCAkFJ,WAAMC,GAAN,6BAAA9xB,EAAA,sEAMY,OAFf+xB,EAAcnzB,IAAMkB,WAAWC,QAAQsV,WAEhB0c,EAAYvrB,OAAS,GAC5CurB,EAAYzxB,SAAQ,SAAUuG,EAAMsY,GACH,MAAzBtY,EAAK+kB,kBAA4B/kB,EAAK+kB,kBAAoBkG,GAC1DlzB,IAAMC,SAASwW,YAASxO,OAKpCjI,IAAMC,SAASmY,aAAY,IAdpB,SAgBc7X,IAAqB+F,uBAAuB,YAhB1D,cAgBHwV,EAhBG,SAmBH,EAAKjG,MAAM3B,UAAY,EAAK2B,MAAM3B,SAAS6B,OACvC,EAAKF,MAAM3B,SAAS6B,MAAM3J,SAC1B,EAAKyJ,MACL,CAAE3B,SAAU,CAAE6B,MAAO,CAAE3J,SAAU,CAAE2gB,cAAe,SAtBnD,EAkBC7Y,SAAY6B,MAAS3J,SAAY2gB,cAQzCjR,EAAStU,kBAAoBnI,IAAWE,iBACxCuc,EAAStD,iBAAmBxY,IAAMkB,WAAWC,QAAQqX,iBACrDsD,EAASkR,iBAAmBkG,EAExBlvB,EAAQ,IAEqB,IAA7B,EAAK+R,MAAM2W,iBACPQ,EAAY1qB,SAASM,cAAc,WAC7BqqB,aAAa,KAAM,aAC7BD,EAAUC,aAAa,OAAQ,aAC/BD,EAAUC,aAAa,MAAO,IAC9BD,EAAUlH,MAAMoH,OAAS,IACzBF,EAAUlH,MAAMrB,SAAW,WAC3BuI,EAAUlH,MAAMC,QAAU,QAC1BiH,EAAUlH,MAAM9O,MAAQ,MACxBgW,EAAUlH,MAAMvL,OAAS,OACzByS,EAAUlH,MAAMqH,OAAS,SACzB7qB,SAAS2J,KAAKmhB,MAAMJ,EAAW1qB,SAAS2J,MACxC2P,EAAS5Q,UAAY1I,SAASC,eAAe,aAAaiqB,gBAG5B,IAA9B,EAAK3W,MAAM0W,iBACXc,EAAYtZ,OAAOiT,KAAK,eACxBpL,EAAS5Q,UAAYqiB,GAGzB3tB,QAAQC,IAAIic,GApDL,UAsDkBzc,IAAWuB,gBAAgBoD,EAAOhE,IAAMkB,WAAWC,QAAQqX,iBAAkB,MAtD/F,gCAwDcvE,OAAOoM,YAAYvE,SAASA,GAxD1C,QAwDH1P,EAxDG,OAyDPxM,QAAQC,IAAIuM,GAER,EAAK2J,MAAM0W,gBACXc,EAAUvT,QAGV,EAAKjE,MAAM2W,eAGE,OAFTc,EAAQhrB,SAASC,eAAe,eAGhC+qB,EAAMC,WAAWpqB,YAAYmqB,GAnE9B,KAuECphB,EAAS2gB,cAvEV,OAwEE,aAxEF,QA4EE,aA5EF,QAgFE,oBAhFF,QAoFE,gBApFF,gCAyEC,EAAKzW,SAAS,CAAE8c,qBAAqB,IAzEtC,oCA6EC,EAAK9c,SAAS,CAAE4V,YAAY,EAAMmH,SAAS,IA7E5C,oCAiFC,EAAK/c,SAAS,CAAEgd,gBAAgB,IAjFjC,8CAqFO,EAAK1Q,oBArFZ,4CAyF+B,SAA1BxW,EAAS2gB,eACT,EAAKzW,SAAS,CACVvC,aAAa,EACbsY,aAAcjgB,EAASzH,MAAM4uB,UAC7B3F,iBAAkBxhB,EAASzH,MAAMipB,mBA7F1C,QAiGP5tB,IAAMC,SAASmY,aAAY,IAjGpB,kDAmGPxY,QAAQC,IAAR,MACI,EAAKkW,MAAM2W,gBACPc,EAAQhrB,SAASC,eAAe,aACpC7C,QAAQC,IAAI2tB,GACC,MAATA,GACAA,EAAMC,WAAWpqB,YAAYmqB,IAIjC,EAAKzX,MAAM0W,gBACXc,EAAUvT,QAGdha,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACVvC,aAAa,EACbsY,aAAc,KAAMyG,OACpBlF,iBAAkB,KAAMxB,cApHrB,0DAlFI,sDAEf,EAAKrW,MAAQ,CACThC,aAAa,EACbsY,aAAc,GACduB,iBAAkB,GAClBnX,SAAU,KACV+c,iBAAkB,KAClBJ,qBAAqB,EACrB5G,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,iBAAiB,EACjB0B,aAAc,GACdwF,WAAY,GACZ3H,YAAY,GAEhB,EAAK+G,aAAe,EAAKA,aAAazO,KAAlB,gBAjBL,EADvB,4FAoBI,8BAAApjB,EAAA,6DACIpB,IAAMC,SAASmY,aAAY,KAEvBqb,EAAc,IACNnb,SAAWtY,IAAMkB,WAAWC,QAAQmX,SAEhD1Y,QAAQC,IAAI4zB,GANhB,kBAS6Bxf,OAAOoM,YAAY7D,cAAciX,GAT9D,OASYrnB,EATZ,OAUQxM,QAAQC,IAAIuM,GAERA,EAASoM,kBACTxY,IAAMC,SAASuY,YAAiBpM,EAASoM,mBAEzCzW,KAAKuU,SAAS,CACVG,SAAUrK,EAASkS,SAAS,GAAG6U,cAGnCvzB,QAAQC,IAAIkC,KAAKgU,MAAMU,UAEvBzW,IAAMC,SAASwW,YAASrK,EAASkS,SAAS,GAAG6U,eAG7CpxB,KAAKuU,SAAS,CACVvC,aAAa,EACbsY,aAAcjgB,EAASzH,MAAMmuB,OAC7BlF,iBAAkBxhB,EAASzH,MAAM4S,UA3BjD,kDAgCQvX,IAAMC,SAASmY,aAAY,IAC3BrW,KAAKuU,SAAS,CACVvC,aAAa,EACbsY,aAAc,KAAMyG,OACpBlF,iBAAkB,KAAMxB,cApCpC,QAuCIpsB,IAAMC,SAASmY,aAAY,IAvC/B,0DApBJ,0EA4MI,WAAU,IAAD,OACL,OACI,yBAAKpV,GAAG,gBAGmC,IAAnCjB,KAAKgU,MAAMqd,oBAAgC,kBACvC,IADuC,CAC9Brc,GAAG,0BAEZ,MAGsB,IAA1BhV,KAAKgU,MAAMmW,WACP,kBAAC,IAAD,CAAUnV,GAAG,6BACb,KAGR,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,2BAC9B,kBAAC,EAAD,MAEA,yBAAKtI,GAAG,cACJsI,UAAU,eAGV,yBAAKA,UAAU,6CACX,uBAAGA,UAAU,cAAb,WACA,wBAAIA,UAAU,oBAGd,6BAEA,yBAAKA,UAAU,qBAGgB,MAAvBvJ,KAAKgU,MAAMU,SACP,kBAAC,IAAMid,SAAP,SACI3xB,KAAKgU,MAAMU,SAASxN,KAAI,SAACwS,EAAM1L,GAAP,OACpB,kBAACyW,GAAA,EAAD,CAAKjc,IACDkR,EAAKuR,iBAELhS,QACI,kBACI,EAAKiY,aAAaxX,EAAKuR,oBAG/B,kBAACvG,EAAA,EAAD,CAAKnB,GACD,GAGA,yBAAKha,UAAU,WAAWvI,IACtB0Y,EAAKrB,gBAAgBuZ,OAErB5Y,IAAI,WACJiL,MACI,CACIc,OAAQ,cAlB5B,IAsBW,kBACHL,EAAA,EADG,CACCnB,GACA,EAEJU,MACI,CACI6I,UAAW,SAGnB,uBAAGvjB,UAAU,YAAYtI,GAAE,eAAU+M,EAAI,GACrCiW,MACI,CACIc,OAAQ,YAHpB,IAMQrL,EAAKrB,gBACAC,iBAET,6BACA,2BAAO/O,UAAU,cAAjB,wBAEQmQ,EAAKnB,YAFb,KAVJ,WAmBhB,mDAIZ,kBAACqU,EAAA,EAAD,CAAOrjB,UAAU,mDAAjB,kBAGA,kBAACmb,EAAA,EAAD,CAAKnB,GAAI,GAAIsJ,MAAM,iBAAiB5I,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IACpE,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACR,kBAACC,EAAA,EAAD,CACIrvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,gBACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAsC,IAA7BxjB,KAAKgU,MAAM2W,gBACrB,IAPP,sBAYJ,kBAACjG,EAAA,EAAD,CAAKnB,GAAI,GAAIsJ,MAAM,iBAAiB5I,MAAO,CAAE6I,UAAW,SAAUxB,OAAQ,IACtE,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACR,kBAACC,EAAA,EAAD,CACIzjB,UAAU,kBACV5L,KAAK,QACLiQ,KAAK,YACL3L,MAAM,cACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAoC,IAA3BxjB,KAAKgU,MAAMyW,cACrB,IARP,kBAaJ,kBAAC/F,EAAA,EAAD,CAAKnB,GAAI,GAAI0J,gBAAc,EAAChJ,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IAC5D,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACR,kBAACC,EAAA,EAAD,CACIrvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,QACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAuC,IAA9BxjB,KAAKgU,MAAM0W,iBACrB,IAPP,oBAYJ,kBAAChG,EAAA,EAAD,CAAKnB,GAAI,GAAIU,MAAO,CAAE6I,UAAW,SAC5B9sB,KAAKgU,MAAM4W,gBACR,2BAAOrhB,UAAU,kBACZvJ,KAAKgU,MAAMsY,cAEhB,MAGJtsB,KAAKgU,MAAMhC,YAAe,2BAAOzI,UAAU,kBAAjB,IACtBvJ,KAAKgU,MAAMsW,aADW,IAExB,6BAFwB,IAGlBtqB,KAAKgU,MAAM6X,iBAHO,KAKtB,KA3HZ,MA8HJ,kBAACpE,EAAA,EAAD,YAjWpB,GAAoCrS,a,IAoXrBoa,aATS,SAAAxb,GACpB,MAAO,CACHyb,OAAQzb,EAAM5U,QAAQiX,YACtBE,SAAUvC,EAAM5U,QAAQmX,SACxBE,iBAAkBzC,EAAM5U,QAAQqX,iBAChChR,kBAAmBuO,EAAM5U,QAAQqG,qBAI1B+pB,CAAyBgQ,I,QCnXpCjS,IAAe,EACfkS,IAAgB,EAEPC,GAAb,kDACE,WAAY5rB,GAAQ,IAAD,8BACjB,cAAMA,IA8CR2Z,oBA/CmB,sBA+CG,gCAAApuB,EAAA,yDACO,YAAvBoB,SAASitB,WADO,uBAElB,EAAKnZ,SAAS,CAAEoZ,YAAY,EAAMrD,aAAc,iCAF9B,0BAKlB,EAAK/V,SAAS,CAAEoZ,YAAY,IALV,OASpB,IAEEnV,IAAY/X,SAASgY,cAAc,oBAAqB,CACtDtD,MAAO,IACPuD,OAAQ,MAEPpE,MAAK,SAAUqE,GAEdtE,GADAA,EAAUsE,EAAOC,aACC7W,QAAQ,2BAA4B,OAE1D,MAAOa,GACP/E,QAAQC,IAAI8E,GApBM,gBAuBapE,IAAqB+F,uBAAuB,QAvBzD,cAuBhBqpB,EAvBgB,OAwBpB3vB,IAAMC,SAASmY,aAAY,IAC3BxY,QAAQC,IAAI8vB,GAzBQ,oBA6BZ1b,OAAOoM,YAAYuP,KAAKD,GA7BZ,yBA8BY1b,OAAOoM,YAAYwP,eA9B/B,QA8BdmE,EA9Bc,OAgClBp0B,QAAQC,IAAIm0B,GAEwB,GAAhCA,EAAkBlE,YACpB9vB,IAAMC,SAASqY,YAAS0b,EAAkB1b,WAC1C,EAAKhC,SAAS,CAAEorB,kBAAkB,IAElC9hC,QAAQC,IAAI,EAAKkW,MAAM2rB,mBAEdF,IAAiD,GAAhCxN,EAAkBlE,YAC5C,EAAKxZ,SAAS,CAAEqrB,kBAAkB,IAClC/hC,QAAQC,IAAI,QAGZ,EAAKyW,SAAS,CAAEsrB,kBAAkB,IAClChiC,QAAQC,IAAI,EAAKkW,MAAM6rB,mBAGzBhiC,QAAQC,IAAI2hC,IACZpqB,YAAS/X,IAAWE,iBAAkB,OAAQ6W,GAC9CpW,IAAMC,SAASmY,aAAY,IAnDT,mDAsDlBpY,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACZvC,aAAa,EACbsY,aAAc,KAAMD,cAzDJ,2DA/CH,EA6GnB4D,cA7GmB,uCA6GH,WAAOlO,GAAP,qBAAA1gB,EAAA,sDACV6uB,EAAanO,EAAMtW,OAAO0kB,YAC1BC,EAAUrO,EAAMtW,OAAOxI,GACvBotB,EAAiBtO,EAAMtW,OAAOmW,QAAQ,MAAMjf,aAAa,aACzDiG,EAAUmZ,EAAMtW,OAAOmW,QAAQ,MAAMjf,aAAa,WAEtDnC,IAAqB+I,2BAA2B6mB,EAASF,EAAYG,EAAgBznB,GANvE,2CA7GG,wDAuInB0nB,gBAvImB,uCAuID,WAAOvO,GAAP,SAAA1gB,EAAA,sDAChBoB,SAASC,eAAe,WAAWujB,MAAMC,QAAU,OACnDzjB,SAASC,eAAe,gBAAgBujB,MAAMC,QAAU,OAFxC,2CAvIC,wDA4InBqK,iBA5ImB,sBA4IA,4BAAAlvB,EAAA,sEACSb,IAAqB2F,+BAD9B,OACbqqB,EADa,OAGjB3wB,QAAQC,IAAI0wB,GAES,MAAjBA,GAAyBA,EAAc3oB,OAAS,GAClD,EAAK0O,SAAS,CAAEka,kBAAmBD,IACnC/tB,SAASC,eAAe,WAAWujB,MAAMC,QAAU,SAEnDzjB,SAASC,eAAe,gBAAgBujB,MAAMC,QAAU,QATzC,2CA5IA,EAyJnBwK,kBAzJmB,uCAyJC,WAAO3O,GAAP,eAAA1gB,EAAA,sDAClB0gB,EAAMtW,OAAOklB,UAAUhP,OAAO,WAC1BiP,EAAU7O,EAAMtW,OAAOolB,oBAEf5K,MAAM6K,UAChBF,EAAQ3K,MAAM6K,UAAY,KAE1BF,EAAQ3K,MAAM6K,UAAYF,EAAQG,aAAe,KAPjC,2CAzJD,sDAGjB,EAAKC,qBAEL,EAAKhb,MAAQ,CACX2rB,kBAAkB,EAClBE,kBAAkB,EAClBD,kBAAkB,EAClB3Q,gBAAiB,GACjBjd,aAAa,EACbsY,aAAc,GACdmE,kBAAmB,GACnBd,YAAY,GAbG,EADrB,sDAmBE,WACE,IAAI/sB,EAAMsR,OAAOC,SAAS3I,KAAK7B,MAAMuK,OAAOC,SAAS3I,KAAK4E,QAAQ,KAAO,GAAG9H,MAAM,KAIlFzI,QAAQC,IAAI8C,GACZ,IAAK,IAAIoN,EAAI,EAAGA,EAAIpN,EAAIiF,OAAQmI,IAAK,CACnCnQ,QAAQC,IAAI8C,EAAIoN,IAChB,IAAIkhB,EAAWtuB,EAAIoN,GAAG1H,MAAM,KAE5BzI,QAAQC,IAAIoxB,GAEO,QAAfA,EAAS,KACAA,EAAS,GACpB3B,IAAe,GAEE,QAAf2B,EAAS,IACJA,EAAS,GAIpBrxB,QAAQC,IAAI8C,EAAI,IACZA,EAAIiF,QAAU,GAAe,aAAVjF,EAAI,KACzB/C,QAAQC,IAAI,UACZ2hC,IAAgB,KA3CtB,+BAuHE,WACExhC,IAAMC,SAASmY,aAAY,IAGzB5V,SAASC,eAAe,oBAAoBujB,MAAMC,QADhDqJ,GAC0D,QAEA,OAG9D9sB,SAAS0uB,mBAAqB,WACA,aAAxB1uB,SAASitB,aACX1tB,KAAKuU,SAAS,CAAEoZ,YAAY,IAC5B9vB,QAAQC,IAAI,0BAEd2kB,KAAKziB,QArIX,oBAqKE,WAAU,IAAD,OACP,OACE,yBAAKiB,GAAG,mBACLjB,KAAKgU,MAAM6rB,iBAAmB,kBAAC,IAAD,CAAU7qB,GAAG,kBAAqB,KAChEhV,KAAKgU,MAAM2rB,iBAAmB,kBAAC,IAAD,CAAU3qB,GAAG,cAAiB,KAC5DhV,KAAKgU,MAAM4rB,iBAAmB,kBAAC,IAAD,CAAU5qB,GAAG,uBAA0B,KAEtE,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,gDAChC,kBAAC,EAAD,MAEA,wBAAIA,UAAU,iDAAd,aAA4E,wBAAIA,UAAU,gBAC1F,yBAAKA,UAAU,YACb,yBAAKA,UAAU,oEACb,wBAAIA,UAAU,gCAAd,UACA,yBAAKA,UAAU,YACb,yBAAKA,UAAU,SACb,yBAAKvI,IAAK9D,IAAWmG,gBAAkB,gBAAiB8R,MAAM,MAAM5L,UAAU,6BAEhF,yBAAKA,UAAU,SACb,uBAAGA,UAAU,gCAAb,+BAEA,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,QADF,IAC8C,0BAAMA,UAAU,kBAAhB,MAC9C,uBAAGA,UAAU,kCACX,0BAAMA,UAAU,iBAAhB,YADF,IACkD,0BAAMA,UAAU,uBAMxE,yBAAKA,UAAU,8CACb,4BAAQ5L,KAAK,SAASsD,GAAG,mBAAmBsI,UAAU,mBACpD0P,QAASjZ,KAAKuuB,kBADhB,cAGA,yBAAKhlB,UAAU,+CACb,yBAAKA,UAAU,sBAAf,YACA,yBAAKA,UAAU,aAAf,WAGF,yBAAKA,UAAU,+CACb,yBAAKA,UAAU,qBAAf,wBAAwD,6BAAxD,YACA,yBAAKA,UAAU,aAAf,SAGF,yBAAKA,UAAU,qDACb,yBAAKA,UAAU,qBAAf,SACA,yBAAKA,UAAU,aAAf,aAKN,wBAAIA,UAAU,gBACd,yBAAKA,UAAU,OACb,yBAAKA,UAAU,yCACb,yBAAKA,UAAU,oCACb,4BAAQ5L,KAAK,SAASsD,GAAG,iBAAiBsI,UAAU,yCAClD0P,QAASjZ,KAAKytB,qBADhB,iBAGCztB,KAAKgU,MAAMhC,aAAehS,KAAKgU,MAAM2Z,WACpC,2BAAOpkB,UAAU,kBAAmBvJ,KAAKgU,MAAMsW,cAC7C,KAEJ,yBAAKtpB,IAAK9D,IAAWmG,gBAAkB,oBAAqBkG,UAAU,iCAEtE,yBAAKtI,GAAG,gBACN,yBAAKA,GAAG,UAAUsI,UAAU,SAC1B,yBAAKA,UAAU,iBACb,0BAAMA,UAAU,QAAQ0P,QAASjZ,KAAKsuB,iBAAtC,QACA,uDAGEtuB,KAAKgU,MAAMya,kBAAkBvnB,KAAI,SAACV,EAASwH,GACzC,OACE,yBAAKxF,IAAKwF,GACR,4BAAQrQ,KAAK,SAASsb,QAAS,EAAKyV,kBAAmBnlB,UAAU,6BAA6B/C,EAAQH,WAEtG,yBAAKkD,UAAU,WACb,+BACE,+BACE,4BACE,0CACA,wBAAIA,UAAU,SAAd,mBAIF/C,EAAQD,OAAOW,KAAI,SAACmC,EAAOzC,GACzB,OACE,wBAAI4B,IAAK5B,GACP,4BAAKyC,EAAM3C,eACX,wBAAI6C,UAAU,QAAQ6lB,UAAW5oB,EAAQH,UAAWO,QAASoH,GAC3D,yBAAKzE,UAAU,kFAAkF8lB,gBAAgB,OAAO7C,kBAAgB,KACtI5e,KAAMvE,EAAM3C,cAAezF,GAAIoI,EAAM3C,cAAe6gB,mBAAiB,kBACrE+H,OAAQ,EAAKrB,eAFf,IAEkC5kB,EAAMpC,YAFxC,mBAwB5B,yBAAKhG,GAAG,gBACN,yBAAKA,GAAG,eAAesI,UAAU,SAC/B,yBAAKA,UAAU,iBACb,0BAAMA,UAAU,QAAQ0P,QAASjZ,KAAKsuB,iBAAtC,QACA,+EA3RtB,GAA0ClZ,aCD7B0qB,ID+SEtQ,aANS,SAACxb,GACvB,MAAO,CACLyb,OAAQzb,EAAM5U,QAAQiX,eAIXmZ,CAAyBkQ,IC/SxC,kDACI,WAAY5rB,GAAQ,IAAD,8BACf,cAAMA,IAkDVyW,gBAAkB,SAAAC,GAGd,OAFWA,EAAc/gB,OAAOxH,OAG5B,IAAK,cACD,EAAKsS,SAAS,CAAEkW,aAAa,EAAMC,gBAAgB,EAAOC,eAAe,EAAOC,iBAAiB,IACjG,MAEJ,IAAK,QACD,EAAKrW,SAAS,CAAEmW,gBAAgB,EAAMD,aAAa,EAAOE,eAAe,EAAOC,iBAAiB,IACjG,MAEJ,IAAK,gBACD,EAAKrW,SAAS,CAAEoW,eAAe,EAAMF,aAAa,EAAOC,gBAAgB,EAAOE,iBAAiB,MAhE1F,EAwEnBsG,aAxEmB,uCAwEJ,WAAMC,GAAN,+BAAA9xB,EAAA,sEAMY,OAFf+xB,EAAcnzB,IAAMkB,WAAWC,QAAQsV,WAEhB0c,EAAYvrB,OAAS,GAC5CurB,EAAYzxB,SAAQ,SAAUuG,EAAMsY,GACH,MAAzBtY,EAAK+kB,kBAA4B/kB,EAAK+kB,kBAAoBkG,GAC1DlzB,IAAMC,SAASwW,YAASxO,OAKpCjI,IAAMC,SAASmY,aAAY,IAdpB,SAgBc7X,IAAqB+F,uBAAuB,YAhB1D,cAgBHwV,EAhBG,SAmBH,EAAKjG,MAAM3B,UAAY,EAAK2B,MAAM3B,SAAS6B,OACvC,EAAKF,MAAM3B,SAAS6B,MAAM3J,SAC1B,EAAKyJ,MACL,CAAE3B,SAAU,CAAE6B,MAAO,CAAE3J,SAAU,CAAE2gB,cAAe,SAtBnD,EAkBC7Y,SAAY6B,MAAS3J,SAAY2gB,cAOzCntB,QAAQC,IAAI,EAAKgW,MAAM2C,kBAEvBsD,EAAStU,kBAAoBnI,IAAWE,iBACxCuc,EAAStD,iBAAmBxY,IAAMkB,WAAWC,QAAQqX,iBACrDsD,EAASkR,iBAAmBkG,EAExBlvB,EAAQ,IAEqB,IAA7B,EAAK+R,MAAM2W,iBACPQ,EAAY1qB,SAASM,cAAc,WAC7BqqB,aAAa,KAAM,aAC7BD,EAAUC,aAAa,OAAQ,aAC/BD,EAAUC,aAAa,MAAO,IAC9BD,EAAUlH,MAAMoH,OAAS,IACzBF,EAAUlH,MAAMrB,SAAW,WAC3BuI,EAAUlH,MAAMC,QAAU,QAC1BiH,EAAUlH,MAAM9O,MAAQ,MACxBgW,EAAUlH,MAAMvL,OAAS,OACzByS,EAAUlH,MAAMqH,OAAS,SACzB7qB,SAAS2J,KAAKmhB,MAAMJ,EAAW1qB,SAAS2J,MACxC2P,EAAS5Q,UAAY1I,SAASC,eAAe,aAAaiqB,gBAG5B,IAA9B,EAAK3W,MAAM0W,iBACXc,EAAYtZ,OAAOiT,KAAK,eACxBpL,EAAS5Q,UAAYqiB,GAGzB3tB,QAAQC,IAAIic,GArDL,UAuDkBzc,IAAWuB,gBAAgBoD,EAAOhE,IAAMkB,WAAWC,QAAQqX,iBAAkB,MAvD/F,eAuDH9U,EAvDG,OAyDP9D,QAAQC,IAAI6D,GAzDL,UA0DcuQ,OAAOoM,YAAYvE,SAASA,GA1D1C,QA0DH1P,EA1DG,OA2DPxM,QAAQC,IAAIuM,GAER,EAAK2J,MAAM0W,gBACXc,EAAUvT,QAGV,EAAKjE,MAAM2W,eAGE,OAFTc,EAAQhrB,SAASC,eAAe,eAGhC+qB,EAAMC,WAAWpqB,YAAYmqB,GArE9B,KAyECphB,EAAS2gB,cAzEV,OA0EE,aA1EF,QA8EE,aA9EF,QAkFE,oBAlFF,QAsFE,gBAtFF,gCA2EC,EAAKzW,SAAS,CAAE8c,qBAAqB,IA3EtC,oCA+EC,EAAK9c,SAAS,CAAE4V,YAAY,EAAMmH,SAAS,IA/E5C,oCAmFC,EAAK/c,SAAS,CAAEgd,gBAAgB,IAnFjC,8CAuFO,EAAK1Q,oBAvFZ,4CA2F+B,SAA1BxW,EAAS2gB,eACT,EAAKzW,SAAS,CACVvC,aAAa,EACbsY,aAAcjgB,EAASzH,MAAM4uB,UAC7B3F,iBAAkBxhB,EAASzH,MAAMipB,mBA/F1C,QAmGP5tB,IAAMC,SAASmY,aAAY,IAnGpB,kDAqGPxY,QAAQC,IAAR,MACI,EAAKkW,MAAM2W,gBACPc,EAAQhrB,SAASC,eAAe,aACpC7C,QAAQC,IAAI2tB,GACC,MAATA,GACAA,EAAMC,WAAWpqB,YAAYmqB,IAIjC,EAAKzX,MAAM0W,gBACXc,EAAUvT,QAGdha,IAAMC,SAASmY,aAAY,IAC3B,EAAK9B,SAAS,CACVvC,aAAa,EACbsY,aAAc,KAAMyG,OACpBlF,iBAAkB,KAAMxB,cAtHrB,0DAxEI,wDAmMnBxC,gBAAkB,WACd,EAAKtT,SAAS,CAAE+c,SAAS,KAlMzB,EAAKtd,MAAQ,CACThC,aAAa,EACbsY,aAAc,GACduB,iBAAkB,GAClBnX,SAAU,KACV+c,iBAAkB,KAClBJ,qBAAqB,EACrB5G,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,iBAAiB,EACjB0B,aAAc,GACdgF,SAAS,GAEb,EAAKJ,aAAe,EAAKA,aAAazO,KAAlB,gBAhBL,EADvB,4FAmBI,8BAAApjB,EAAA,6DACIpB,IAAMC,SAASmY,aAAY,IAD/B,SAG4B7X,IAAqB+F,uBAAuB,iBAHxE,cAGQmtB,EAHR,QAIgBnb,SAAWtY,IAAMkB,WAAWC,QAAQmX,SAJpD,kBAO6BrE,OAAOoM,YAAY7D,cAAciX,GAP9D,QAOYrnB,EAPZ,QASqBoM,kBACTxY,IAAMC,SAASuY,YAAiBpM,EAASoM,mBACzCzW,KAAKuU,SAAS,CAAEG,SAAUrK,EAASkS,SAAS,GAAG6U,cAC/CnzB,IAAMC,SAASwW,YAASrK,EAASkS,SAAS,GAAG6U,gBAG7CnzB,IAAMC,SAASmY,aAAY,IAC3BrW,KAAKuU,SAAS,CACVvC,aAAa,EACbsY,aAAcjgB,EAASzH,MAAMmuB,OAC7BlF,iBAAkBxhB,EAASzH,MAAM4S,WAGzCvX,IAAMC,SAASmY,aAAY,IAtBnC,kDAwBQpY,IAAMC,SAASmY,aAAY,IAC3BrW,KAAKuU,SAAS,CACVvC,aAAa,EACbsY,aAAc,KAAMyG,OACpBlF,iBAAkB,KAAMxB,cA5BpC,0DAnBJ,0EAwMI,WAAU,IAAD,OACL,OACI,yBAAKppB,GAAG,gBAEmC,IAAnCjB,KAAKgU,MAAMqd,oBAAgC,kBACvC,IADuC,CAC9Brc,GAAG,eAEZ,MAImB,IAAvBhV,KAAKgU,MAAMsd,QACP,kBAAC,IAAD,CAAUtc,GAAG,wBACb,KAGR,kBAACsS,EAAA,EAAD,CAAWrS,OAAO,EAAM1L,UAAU,2BAC9B,kBAAC,EAAD,MAEA,yBAAKtI,GAAG,cACJsI,UAAU,eAGV,yBAAKA,UAAU,sBACX,uBAAGA,UAAU,cAAb,WACA,wBAAIA,UAAU,oBAGd,6BAG2B,MAAvBvJ,KAAKgU,MAAMU,SACP,kBAAC,IAAMid,SAAP,SACI3xB,KAAKgU,MAAMU,SAASxN,KAAI,SAACwS,EAAM1L,GAAP,OACpB,kBAACyW,GAAA,EAAD,CAAKlb,UAAU,oBAAoBf,IAC/BkR,EAAKuR,iBAELhS,QACI,kBACI,EAAKiY,aAAaxX,EAAKuR,oBAG/B,kBAACvG,EAAA,EAAD,CAAKnB,GACD,GAGA,yBAAKha,UAAU,WAAWvI,IACtB0Y,EAAKrB,gBAAgBuZ,OAErB5Y,IAAI,WACJiL,MACI,CACIc,OAAQ,cAlB5B,IAsBW,kBACHL,EAAA,EADG,CACCnB,GACA,EAEJU,MACI,CACI6I,UAAW,SAGnB,uBAAGvjB,UAAU,YAAYtI,GAAE,eAAU+M,EAAI,GACrCiW,MACI,CACIc,OAAQ,YAHpB,IAMQrL,EAAKrB,gBACAC,iBAET,6BACA,2BAAO/O,UAAU,cAAjB,wBAEQmQ,EAAKnB,YAFb,KAVJ,WAmBhB,kDAIR,4BAAQ5a,KAAK,SAASsb,QAASjZ,KAAK6nB,gBAAiB5mB,GAAG,iBACpDsI,UAAU,yDADd,YAIA,kBAACqjB,EAAA,EAAD,CAAOrjB,UAAU,mDAAjB,kBAGA,kBAACmb,EAAA,EAAD,CAAKnB,GAAI,GAAIsJ,MAAM,iBAAiB5I,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IACpE,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACR,kBAACC,EAAA,EAAD,CACIrvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,gBACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAsC,IAA7BxjB,KAAKgU,MAAM2W,gBACrB,IAPP,sBAYJ,kBAACjG,EAAA,EAAD,CAAKnB,GAAI,GAAIsJ,MAAM,iBAAiB5I,MAAO,CAAE6I,UAAW,SAAUxB,OAAQ,IACtE,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACR,kBAACC,EAAA,EAAD,CACIzjB,UAAU,kBACV5L,KAAK,QACLiQ,KAAK,YACL3L,MAAM,cACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAoC,IAA3BxjB,KAAKgU,MAAMyW,cACrB,IARP,kBAaJ,kBAAC/F,EAAA,EAAD,CAAKnB,GAAI,GAAI0J,gBAAc,EAAChJ,MAAO,CAAE6I,UAAW,OAAQxB,OAAQ,IAC5D,kBAACsB,EAAA,EAAD,CAAOG,OAAK,GACR,kBAACC,EAAA,EAAD,CACIrvB,KAAK,QACLiQ,KAAK,YACL3L,MAAM,QACNwhB,SAAUzjB,KAAKuqB,gBACf/G,SAAuC,IAA9BxjB,KAAKgU,MAAM0W,iBACrB,IAPP,oBAYJ,kBAAChG,EAAA,EAAD,CAAKnB,GAAI,GAAIU,MAAO,CAAE6I,UAAW,SAC5B9sB,KAAKgU,MAAM4W,gBACR,2BAAOrhB,UAAU,kBACZvJ,KAAKgU,MAAMsY,cAEhB,MAGJtsB,KAAKgU,MAAMhC,YAAe,2BAAOzI,UAAU,kBAAjB,IACtBvJ,KAAKgU,MAAMsW,aADW,IAExB,6BAFwB,IAGlBtqB,KAAKgU,MAAM6X,iBAHO,KAKtB,KA7HZ,MAgIJ,kBAACpE,EAAA,EAAD,YA/VpB,GAA0CrS,cCCtCrR,ID8WWyrB,aATS,SAAAxb,GACpB,MAAO,CACHyb,OAAQzb,EAAM5U,QAAQiX,YACtBE,SAAUvC,EAAM5U,QAAQmX,SACxBE,iBAAkBzC,EAAM5U,QAAQqX,iBAChChR,kBAAmBuO,EAAM5U,QAAQqG,qBAI1B+pB,CAAyBsQ,IC9WrB,ICmCEC,IDjCwB3qB,Y,OEJCA,YCAAA,Y,4JFsC5C,WACE,OACE,kBAAC,IAAD,KACE,kBAAC,IAAD,CACE4qB,OAAK,EACLC,KAAK,IACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAe+V,QAEjD,kBAAC,IAAD,CACEmD,OAAK,EACLC,KAAK,gBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAe+V,QATnD,0EAYE,kBAAC,IAAD,CACEmD,OAAK,EACLC,KAAK,uBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAe0G,QAEjD,kBAAC,IAAD,CACEwS,OAAK,EACLC,KAAK,2BACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAe6C,OAEjD,kBAAC,IAAD,CACEqW,OAAK,EACLC,KAAK,mCACLC,OAAQ,SAACpsB,GAAD,OACN,kBAAC,EAAD,CAAagT,cAAec,OAGhC,kBAAC,IAAD,CACEoY,OAAK,EACLC,KAAK,mCACLC,OAAQ,SAACpsB,GAAD,OACN,kBAAC,EAAD,CAAagT,cAAemB,OAGhC,kBAAC,IAAD,CACE+X,OAAK,EACLC,KAAK,8BACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAeO,OAEjD,kBAAC,IAAD,CACE2Y,OAAK,EACLC,KAAK,0BACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAegB,OAEjD,kBAAC,IAAD,CACEkY,OAAK,EACLC,KAAK,+BACLC,OAAQ,SAACpsB,GAAD,OACN,kBAAC,EAAD,CAAagT,cAAejP,SAlDlC,0EAsDE,kBAAC,IAAD,CACEmoB,OAAK,EACLC,KAAK,uBACLC,OAAQ,SAACpsB,GAAD,OACN,kBAAC,EAAD,CAAagT,cAAesJ,QAGhC,kBAAC,IAAD,CACE4P,OAAK,EACLC,KAAK,+BACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAeyI,QAEjD,kBAAC,IAAD,CACEyQ,OAAK,EACLC,KAAK,+BACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAewJ,QAEjD,kBAAC,IAAD,CACE0P,OAAK,EACLC,KAAK,uBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAemK,QAEjD,kBAAC,IAAD,CACE+O,OAAK,EACLC,KAAK,wBACLC,OAAQ,SAACpsB,GAAD,OACN,kBAAC,EAAD,CAAagT,cAAe5N,UAhFlC,0EAoFE,kBAAC,IAAD,CACE8mB,OAAK,EACLC,KAAK,uBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAeiL,QAEjD,kBAAC,IAAD,CACEiO,OAAK,EACLC,KAAK,wBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAezN,UAEjD,kBAAC,IAAD,CACE2mB,OAAK,EACLC,KAAK,uBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAe+K,QAEjD,kBAAC,IAAD,CACEmO,OAAK,EACLC,KAAK,WACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAeuY,QAtGnD,0EAyGE,kBAAC,IAAD,CACEW,OAAK,EACLC,KAAK,2BACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAeuY,QAEjD,kBAAC,IAAD,CACEW,OAAK,EACLC,KAAK,uBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAe0Y,QAEjD,kBAAC,IAAD,CACEQ,OAAK,EACLC,KAAK,uBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAeyY,QAEjD,kBAAC,IAAD,CACES,OAAK,EACLC,KAAK,wBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAexN,UA3HnD,6EA+HE,kBAAC,IAAD,CACE0mB,OAAK,EACLC,KAAK,0BACLC,OAAQ,SAACpsB,GAAD,OACN,kBAAC,EAAD,eAAagT,cAAekM,IAAkBlf,OAGlD,kBAAC,IAAD,CACEksB,OAAK,EACLC,KAAK,wBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAe+V,QAEjD,kBAAC,IAAD,CACEmD,OAAK,EACLC,KAAK,8BACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAeyW,QAEjD,kBAAC,IAAD,CACEyC,OAAK,EACLC,KAAK,6BACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAeuW,QAEjD,kBAAC,IAAD,CACE2C,OAAK,EACLC,KAAK,2BACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAejT,UAEjD,kBAAC,IAAD,CACEmsB,OAAK,EACLC,KAAK,kCACLC,OAAQ,SAACpsB,GAAD,OACN,kBAAC,EAAD,CAAagT,cAAe0V,QAGhC,kBAAC,IAAD,CACEwD,OAAK,EACLC,KAAK,6BACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAeqU,QAEjD,kBAAC,IAAD,CACE6E,OAAK,EACLC,KAAK,wBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAe2V,QAEjD,kBAAC,IAAD,CACEuD,OAAK,EACLC,KAAK,iCACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAe4W,QAEjD,kBAAC,IAAD,CACEsC,OAAK,EACLC,KAAK,YACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAekM,QAEjD,kBAAC,IAAD,CACEgN,OAAK,EACLC,KAAK,YACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAe2V,QAEjD,kBAAC,IAAD,CACEuD,OAAK,EACLC,KAAK,gBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAeqU,QAEjD,kBAAC,IAAD,CACE6E,OAAK,EACLC,KAAK,aACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAejT,UAEjD,kBAAC,IAAD,CACEmsB,OAAK,EACLC,KAAK,qBACLC,OAAQ,SAACpsB,GAAD,OAAW,kBAAC,EAAD,CAAagT,cAAeqU,QAEjD,kBAAC,IAAD,CACE6E,OAAK,EACLC,KAAK,qBACLC,OAAQ,SAACpsB,GAAD,OACN,kBAAC,EAAD,CAAagT,cAAe0V,a,GAhNJpnB,c,mBG/BrB+qB,I,mKAbd,WACC,OACC,yBAAKl/B,GAAG,cACP,yBAAKA,GAAG,UACP,kBAACm/B,GAAA,EAAD,CAAStb,MAAM,UACf,6BACA,2BAAO7jB,GAAG,eAAV,oB,GAPgBmU,cCAfirB,G,4JACL,WACC,OACC,yBAAKp/B,GAAG,YACNjB,KAAK8T,MAAM2b,OAAS,kBAAC,GAAD,MAAa,KAClC,kBAAC,IAAD,KACC,kBAAC,GAAD,Y,GANara,aAkBHoa,gBANS,SAAAxb,GACvB,MAAO,CACNyb,OAAQzb,EAAM5U,QAAQiX,eAITmZ,CAAyB6Q,I,4BCdxCH,iBACE,kBAAC,IAAD,CAAUjiC,MAAOA,KACf,kBAAC,GAAD,OAEFwC,SAASC,eAAe,U,qICLb4/B,EAAb,uKAEE,WACE,IAAIrZ,EAAe/U,OAAOC,SAASqP,OAAOzf,QAAQ,IAAK,IAMvD,GAJoB,IAAhBklB,IACFA,EAAe/U,OAAOC,SAAS+U,SAASnlB,QAAQ,IAAK,IAAIlC,OAAOyG,MAAM,KAAK,IAGzD,IAAhB2gB,GAAoD,gBAA9BA,EAAa7d,cAAiC,CACtE,IAAI+d,EAAiB1mB,SAASC,eAAe,aAExB,MAAjBymB,IACFA,EAAclD,MAAMC,QAAU,WAbtC,oBAkBE,WACE,OACE,uBAAK3a,UAAU,iEAEb,uBAAKA,UAAU,4BACb,qBAAGA,UAAU,6CAA6CC,KAAK,KAA/D,aAGF,uBAAKD,UAAU,WACb,sBAAIA,UAAU,sBACZ,sBAAIA,UAAU,YAEZ,wBAAMA,UAAU,cACd,qBAAGA,UAAU,gDAAgDC,KAAK,KAChE,gBAAC,IAAD,CAAiB6Z,KAAMiK,OAGzB,qBAAG/jB,UAAU,WAAb,KAEA,qBAAGtI,GAAG,YAAYgY,QAAS0L,IAAiBC,QAASrb,UAAU,+CAA/D,oBArChB,GAA6CG,c,gHCJzCnE,EAAW,GAAIg7B,EAAa,GAAI9pB,EAAmB,GAEjD5O,E,4DAUF24B,gB,uCAAkB,WAAOv8B,EAAYrD,EAAKuJ,EAASs2B,GAAjC,eAAAphC,EAAA,6DACVs2B,EAAU,CACVzrB,OAAQu2B,EACRt2B,QAASA,GAGK,QAAds2B,IACA9K,EAAQvrB,KAAOnG,GAPL,kBAUPgG,MAAMrJ,EAAK+0B,GAASrhB,MAAK,SAAAjK,GAC5B,OAAIA,EAASq2B,GACiB,OAAnBr2B,EAASgmB,OAAkBhmB,EAASqf,OAAS,GACjC,MAAZrf,GAAgC,IAAZA,EACpBA,EAASqf,OAET,MAEZlV,OAAM,SAAA5R,GAEL,OADA/E,QAAQC,IAAI8E,GACL,OApBG,2C,iEAwBlB+9B,mB,uCAAqB,WAAOC,GAAP,iBAAAvhC,EAAA,6DACbwhC,EAAa,CAAE,eAAgB,oBADlB,SAGO,EAAKL,gBAAgBh+B,KAAKC,UAAUm+B,EAAgB7+B,QAAQ,IAAK,MACrF7E,IAAWyG,cAAek9B,EAAY,QAJzB,cAGbC,EAHa,yBAMVA,GANU,2C,2DASrB7E,0B,uCAA4B,WAAO8E,EAAiBtP,EAAkB3lB,GAA1C,yCAAAzM,EAAA,sEACA,EAAKshC,mBAAmB70B,GADxB,cACpBg1B,EADoB,gBAEAxhC,IAAc+S,wBAAwBvG,GAFtC,cAEpBpM,EAFoB,OAIpBshC,EAAgE,MAA5CthC,EAAYuhC,6BAChCvhC,EAAYuhC,6BAA+B,KAE3C/E,EAAiB,GAPG,UAUG58B,IAAc4F,UAAU,cAV3B,WAYF,KAFlBC,EAVoB,UAahB/D,EAAU0K,EAAI/J,QAAQ,IAAK,MAIX,IAHhBqD,EAAcD,EAAeE,WAAU,SAAAC,GAAC,OAAIA,EAAElE,SAAWA,OAGpC+D,EAAeU,QAAUT,IAC9CG,EAAgD,MAArCJ,EAAeC,GAAaH,MAAgBE,EAAeC,GAAaH,MAAQ,GAC3Fs7B,EAAqD,MAAxCp7B,EAAeC,GAAaJ,SAAmBG,EAAeC,GAAaJ,SAAW,KAIxF,IAAf87B,GAA0C,MAArBE,GAAyC,IAAZz7B,GAAgC,IAAdg7B,EAvBhD,wBAwBhBW,EAAYF,EAAkBG,QAE9BN,EAAa,CACb,gBAAiB,WAAY,OAAU,mBACvC,YAAaK,EAAW,cAAiB,UAAYJ,GAIzDrqB,EAAmBsqB,EAAgBtqB,iBAC/BhR,EAAoBs7B,EAAgBt7B,kBACb,OAEvB27B,EAAc,eACZb,EADY,uCAEZh7B,EAAW,qBAAuBkR,EAAmB,sBACrDhR,EAEF7E,EAAMogC,EAAkBK,WAAa,4BAA8BD,EAzCnD,UA4CH,EAAKZ,gBAAgBY,EAAaxgC,EAAKigC,EAAY,OA5ChD,eA4ChBt+B,EA5CgB,iBA8CdjD,IAAc6P,4BAA4BiyB,EAAa7+B,EACzD,2BAA4B,wBA/CZ,WAkDR,MAARA,GAAwB,IAARA,GAAsC,MAAxBA,EAAK++B,gBAlDnB,kCAmDc,EAAKd,gBAAgBh+B,KAAKC,UAAUF,EAAK++B,iBACnEpkC,IAAW0G,kBAAmB,CAAE,eAAgB,oBAAsB,QApD1D,QAmDZ29B,EAnDY,OAsDhBrF,EAAiB58B,IAAckL,sBAAsB+2B,GAErD1jC,QAAQC,IAAIyjC,GAxDI,cA2DE,IAAlBrF,GACAA,EAAen6B,QAAQ,IAAM,KA5Db,UA+DdzC,IAAc6P,4BAA4B5M,EAAM25B,EAClD,kBAAmB,QAhEH,yBAmEd,EAAKsF,gBAAgBV,EAAarP,EAAkBuP,GAnEtC,iCAsEjB9E,GAtEiB,4C,+DAyE5BsF,gB,uCAAkB,WAAOV,EAAarP,EAAkBuP,GAAtC,mCAAA3hC,EAAA,6DACV6hC,EAAYF,EAAkBG,QAC9BN,EAAa,CACb,gBAAiB,WACjB,OAAU,mBACV,YAAaK,EAAW,cAAiB,UAAYJ,EACrD,eAAgB,oBAGhBW,EAAqB,KACrBC,EAAqB,eACrBC,EAAoB,KACpBC,EAAsB,KAEF,MAApBnQ,GAA8D,MAAlCA,EAAiBzG,gBACP,YAAlCyG,EAAiBzG,eACjByW,EAAqB,KACrBC,EAAqB,kBACrBC,EAAoB,KACpBC,EAAsB,MACmB,SAAlCnQ,EAAiBzG,gBACxByW,EAAqB,KACrBC,EAAqB,sBACrBC,EAAoB,KACpBC,EAAsB,OAI1B95B,EAA+C,MAA1B,EAAKA,kBAA6B,EAAKA,kBAC5D,CAAE,kBAAqB,MAAO,wBAA2B,OAEzD+5B,EAAwB,CACxB,kBAAqBF,EACrB,oBAAuBC,EACvB,mBAAsBH,EACtB,mBAAsBC,EACtB,sBAAyB,EAAKI,yBAC9B,kBAAqBh6B,GAGrBi6B,EAAwB,CACxB,YAAexB,EACf,SAAYh7B,EACZ,iBAAoBkR,EACpB,iBAAoBorB,GAGpBjhC,EAAMogC,EAAkBK,WAAa,iBA/C3B,UAgDO,EAAKb,gBAAgBh+B,KAAKC,UAAUs/B,GAAwBnhC,EAAKigC,EAAY,QAhDpF,eAgDVx2B,EAhDU,iBAkDR/K,IAAc6P,4BAA4B4yB,EAAuB13B,EACnE,iBAAkB,wBAnDR,iCAqDPA,GArDO,4C,6GA/GlB,WACI,OAAOrK,KAAKgiC,oB,IALhB,SAAsBC,GAClBjiC,KAAKgiC,mBAAqBC,I,oCA0K9B,WACI,IAAMC,EAAM,IAAIrgC,KACVsgC,EAA6BD,EAAI70B,UAAuC,IAA1B60B,EAAIE,oBAGxD,OAF6BC,KAAKC,MAAMH,EAA6B,KAEzCvzB,e,KAIrB,QAAI/G,G","file":"static/js/main.8adf8a97.chunk.js","sourcesContent":["// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nexport const loggerHost = {\r\n\tsdkuri: \"https://discover-src.com/loggerAPI/srclogger/sdk\",\r\n\tapiuri: \"https://discover-src.com/loggerAPI/srclogger/api\",\r\n\tdcfuri: \"https://discover-src.com/loggerAPI/srclogger/dcf\",\r\n\tinfouri: \"https://discover-src.com/loggerAPI/srclogger/info\",\r\n\twarnuri: \"https://discover-src.com/loggerAPI/srclogger/warn\",\r\n\terroruri: \"https://discover-src.com/loggerAPI/srclogger/error\",\r\n\tloguri: \"https://discover-src.com/loggerAPI/srclogger/log\",\r\n\ttestCaseInfo : \"https://discover-src.com/loggerAPI/srclogger/testcaseinfo\",\r\n\targusCardEncryptURI : \"https://strategypartnerships.cf-bdc-z2-dev.discovercard.com/strategypartnerships/cryptoutil/enrolmentdata/encrypt\"\r\n};\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport $ from \"jquery\";\r\nimport { loggerHost } from \"../constants/loggerConstants\";\r\nimport { store } from \"../redux/store\";\r\nimport DataParamsController from \"../Controllers/DataParamsController\";\r\nimport { envKeys, envURLs } from \"./dataConstansts\";\r\nimport { dpaID, clientID, jwtToken, DCFUrl, CurrentTransactionLogs } from \"../redux/actions/Action\";\r\nimport IRAController from \"../Controllers/IRAController\";\r\nimport EnvironWrapper from \"./EnvironWrapper\";\r\nvar jwtDecode = require('jwt-decode');\r\nconst uuidv1 = require('uuid/v1');\r\n\r\nclass SRCWrapper {\r\n\r\n\tconstructor() {\r\n\t\tthis.loadSDKCounter = 0;\r\n\t}\r\n\r\n\tset srcTransactionID(uniqueId) {\r\n\t\tthis._srcTransactionID = uniqueId;\r\n\t};\r\n\tget srcTransactionID() {\r\n\t\treturn this._srcTransactionID;\r\n\t};\r\n\r\n\tset redirection(link) {\r\n\t\tthis._redirection = link;\r\n\t}\r\n\r\n\tget redirection() {\r\n\t\treturn this._redirection;\r\n\t}\r\n\r\n\tset testCaseInfo(testCase) {\r\n\t\treturn this._testCaseInfo = testCase;\r\n\t}\r\n\r\n\tget testCaseInfo() {\r\n\t\treturn this._testCaseInfo;\r\n\t}\r\n\r\n\r\n\tsetSRCiTransactionID = () => {\r\n\t\tif (this.srcTransactionID == null) {\r\n\t\t\tthis.srcTransactionID = uuidv1(); // Should be unique for every transaction\r\n\t\t}\r\n\t}\r\n\r\n\t// Decoding the JWT token from the URL, getting testcase, SDK URL \r\n\t// informations passing it to lithos tool for log attachment purpose \r\n\tdecodeJWTToken = (jwtToken, type) => {\r\n\t\t// Reseting logs & transaction id for the fresh transaction \r\n\t\tthis.setSRCiTransactionID();\r\n\r\n\t\tif (jwtToken != null && jwtToken != \"\") {\r\n\t\t\tvar decodedJWTToken = null;\r\n\t\t\tdecodedJWTToken = jwtDecode(jwtToken);\r\n\t\t\tconsole.log(decodedJWTToken);\r\n\t\t\t\r\n\t\t\tdecodedJWTToken.testtype = type;\r\n\r\n\t\t\tvar systemUnderTestURL = decodedJWTToken.systemUnderTestURL;\r\n\r\n\t\t\tstore.dispatch(clientID(decodedJWTToken.srcClientID));\r\n\t\t\tstore.dispatch(dpaID(decodedJWTToken.srcDpaID));\r\n\r\n\t\t\t// Getting JWT token and storing it in redux\r\n\t\t\tthis.storeCardEncryptedJWTToken();\r\n\r\n\t\t\tDataParamsController.getParamsForTheTestCase(decodedJWTToken.testcase);\r\n\r\n\t\t\tif (systemUnderTestURL != null && systemUnderTestURL != \"\") {\r\n\t\t\t\tthis.loadDynamicSystemUnderTestURL(systemUnderTestURL)\r\n\t\t\t} else {\r\n\t\t\t\tthis.loadDefaultSDKURL();\r\n\t\t\t}\r\n\r\n\t\t\tthis.logTestcaseInfo(decodedJWTToken);\r\n\t\t} else {\r\n\t\t\tthis.loadDefaultSDKURL();\r\n\t\t}\r\n\r\n\t\t// Loading default Ids\r\n\t\tvar defaultSrcDpaId = envKeys.argusCertDpaID;\r\n\t\tvar defaultSrcClientId = envKeys.argusCertSrcClientID;\r\n\r\n\t\t// Storing SrcClientId & SrcDpaId in redux-store\r\n\t\tif (store.getState().reducer.dpaID == null && store.getState().reducer.clientID == null) {\r\n\t\t\tstore.dispatch(clientID(defaultSrcClientId));\r\n\t\t\tstore.dispatch(dpaID(defaultSrcDpaId));\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\t// Setting default SDK URL\r\n\tloadDefaultSDKURL() {\r\n\t\tvar defaultURL = document.getElementById(\"defaultLoadURL\").getAttribute(\"SDKURL\");\r\n\t\tthis.loadDynamicSystemUnderTestURL(defaultURL);\r\n\t}\r\n\r\n\t// Setting System under test SDK URL \r\n\tloadDynamicSystemUnderTestURL(url) {\r\n\r\n\t\t// Remove script if already loaded for the particular env name \r\n\t\tthis.removeLoadedScript(\"sdkURL\");\r\n\r\n\t\tif (url != null && url != \"\") {\r\n\t\t\tvar script = document.createElement('script');\r\n\t\t\tscript.src = url;\r\n\t\t\tscript.id = \"sdkURL\";\r\n\t\t\t//\tscript.async = true;\r\n\r\n\t\t\tdocument.head.appendChild(script);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tremoveLoadedScript(envName) {\r\n\t\tvar existingSDKURL = document.getElementById(envName);\r\n\r\n\t\t// Removing script tag if already presents\r\n\t\tif (existingSDKURL != null && existingSDKURL.getAttribute(\"src\") != \"\") {\r\n\t\t\tdocument.head.removeChild(existingSDKURL);\r\n\t\t}\r\n\t}\r\n\r\n\t// This is to test if mutliple environments are configured\r\n\tloadMutlipleEnvScript(url, envName) {\r\n\t\tthis.removeLoadedScript(envName);\r\n\r\n\t\tif (url != null && url != \"\") {\r\n\t\t\tEnvironWrapper.addEnviron(envName, url, () => {\r\n\t\t\t\tthis.loadSDKCounter++;\r\n\t\t\t\tconsole.log(\"added Environment \" + envName + \" Loaded \" + this.loadSDKCounter);\r\n\t\t\t});\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tstoreCardEncryptedJWTToken = async () => {\r\n\t\tvar envFetched = await IRAController.getAllEnvironment();\r\n\r\n\t\tif (envFetched != null) {\r\n\t\t\tvar environmentDetails = \"\";\r\n\t\t\tvar environments = store.getState().reducer.environment;\r\n\t\t\tif (environments != null) {\r\n\t\t\t\tenvironments.forEach((environment) => {\r\n\t\t\t\t\tif (store.getState().reducer.dpaID == environment.SRC_DPA_ID.trim()) {\r\n\t\t\t\t\t\tenvironmentDetails = environment;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tlet JWTToken = (environmentDetails.JWT_Token != null) ? environmentDetails.JWT_Token : \"\";\r\n\t\t\t\tstore.dispatch(jwtToken(JWTToken));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t// Sending the transaction information like transaction id,\r\n\t// TC name for the purpose of log-attachment and validation \r\n\tlogTestcaseInfo(transactionInformation) {\r\n\t\tif (this.redirection == null) {\r\n\t\t\tthis.redirection = true;\r\n\r\n\t\t\tthis.testCaseInfo = transactionInformation.testcase;\r\n\t\t}\r\n\r\n\t\tlet ts = new Date()\r\n\t\t\t.toISOString()\r\n\t\t\t.replace(/T/, \" \")\r\n\t\t\t.replace(/\\..+/, \"\");\r\n\r\n\t\tlet databody = { value: transactionInformation, SRCTransactionID: this.srcTransactionID, timestamp: ts };\r\n\t\tconsole.log(databody);\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: 'POST',\r\n\t\t\turl: loggerHost.testCaseInfo,\r\n\t\t\tcrossDomain: true,\r\n\t\t\tdata: JSON.stringify(databody),\r\n\t\t\tcontentType: \"application/json\",\r\n\t\t\tsuccess: function (data) {\r\n\t\t\t\tconsole.log(\" Success \");\r\n\t\t\t},\r\n\t\t\terror: function (error) {\r\n\t\t\t\tconsole.log(error);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n}\r\n\r\nexport default new SRCWrapper();\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nexport const loggerHost = {\r\n\tsdkuri: \"https://discover-src.com/loggerAPI/srclogger/sdk\",\r\n\tapiuri: \"https://discover-src.com/loggerAPI/srclogger/api\",\r\n\tdcfuri: \"https://discover-src.com/loggerAPI/srclogger/dcf\",\r\n\tinfouri: \"https://discover-src.com/loggerAPI/srclogger/info\",\r\n\twarnuri: \"https://discover-src.com/loggerAPI/srclogger/warn\",\r\n\terroruri: \"https://discover-src.com/loggerAPI/srclogger/error\",\r\n\tloguri: \"https://discover-src.com/loggerAPI/srclogger/log\",\r\n\tlithosuri: \"https://discover-src.com/LithosApp/TestCase/TestCases\",\r\n\treferenceAppuri: \"/\",\r\n\tscreenShotUploaduri: \"https://discover-src.com/loggerAPI/screenshotupload\",\r\n\tgetParamsForTestCaseuri: \"https://discover-src.com/loggerAPI/api/get-data-params\",\r\n\tdgnCardEncryptURI: \"https://strategypartnerships.cf-bdc-z2-dev.discovercard.com/strategypartnerships/cryptoutil/enrolmentdata/encrypt\",\r\n\tgetEnvironmentURI: \"https://discover-src.com/lithosApi/api/get-active-environment\",\r\n\t//getEnvironmentURI:\"http://localhost:5075/api/get-active-environment\",\r\n\tfetchlogsURI: \"https://discover-src.com/lithosApi/api/Transactions/GetSRCSystemLogs\",\r\n\tfetchOauthURI: \"https://discover-src.com/lithosApi/api/GenerateOauthToken\",\r\n\tDecryptPayloadURI: \"https://discover-src.com/lithosApi/api/DecryptPayload\",\t\r\n\tdownloadSDK: \"https://payhuddle-lithos.com/LithosAPI/api/download-sdk\",\r\n\tfetchSDK: \"https://payhuddle-lithos.com/LithosAPI/api/fetch-sdk\"\r\n};\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport $, { isEmptyObject } from \"jquery\";\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\nimport { store } from \"../redux/store\";\r\nimport { dataParams } from \"../redux/actions/Action\";\r\nimport SRCWrapper from \"../utility/SRCWrapper\";\r\nimport * as dataConstansts from \"../utility/dataConstansts\";\r\nimport IRAController from \"./IRAController\";\r\nimport ServerToServerAPIController from \"./ServerToServerAPIController\";\r\n\r\n\r\nclass DataParamsController {\r\n\tset developerMode(isEnabled) {\r\n\t\tthis._developerMode = isEnabled;\r\n\t}\r\n\r\n\tget developerMode() {\r\n\t\treturn this._developerMode;\r\n\t}\r\n\r\n\t// It gets the test-data configuration params for the particular test case\r\n\tgetParamsForTheTestCase = (testCaseName) => {\r\n\t\tif (testCaseName) {\r\n\t\t\tvar data = JSON.stringify(testCaseName);\r\n\r\n\t\t\t$.ajax({\r\n\t\t\t\ttype: 'POST',\r\n\t\t\t\turl: loggerHost.getParamsForTestCaseuri,\r\n\t\t\t\tcrossDomain: true,\r\n\t\t\t\tdata: data,\r\n\t\t\t\tcontentType: \"application/json\",\r\n\t\t\t\tsuccess: function (data) {\r\n\t\t\t\t\t// Storing values in redux-store to fetch in subsequent api calls or sdk func call\r\n\r\n\t\t\t\t\tif (testCaseName != \"\" && !testCaseName.includes(\"iSRC\")) {\r\n\t\t\t\t\t\tstore.dispatch(dataParams(JSON.parse(data)));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar testDataParams = store.getState().reducer.dataParams;\r\n\t\t\t\t},\r\n\t\t\t\terror: function (error) {\r\n\t\t\t\t\tconsole.log(error);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\r\n\tgetParamsForTheConfiguration = async () => {\r\n\t\tvar dataParams = store.getState().reducer.dataParams;\r\n\r\n\t\tif (dataParams != null && dataParams != \"\") {\r\n\t\t\treturn dataParams.Configuration;\r\n\t\t}\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tgetParamsForJsonEditConfig = async () => {\r\n\t\tvar dataParams = store.getState().reducer.dataParams;\r\n\r\n\t\tif (dataParams != null && dataParams != \"\") {\r\n\t\t\treturn dataParams.JsonEditConfiguration;\r\n\t\t}\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\tgetWindowRefParams(envName = \"\") {\r\n\t\tvar user = store.getState().reducer.userDetails;\r\n\t\tvar dataParams = store.getState().reducer.dataParams;\r\n\r\n\t\tvar dcfInvokeName = \"content\";\r\n\r\n\t\tif (user && user.UIJsonEdit\r\n\t\t\t&& dataParams != null\r\n\t\t\t&& dataParams.JsonEditConfiguration != null\r\n\t\t\t&& dataParams.JsonEditConfiguration.length > 0 && this.developerMode) {\r\n\t\t\tvar jsonEditConfig = dataParams.JsonEditConfiguration;\r\n\t\t\tvar sdkParamIndex = jsonEditConfig.findIndex((x => x.GroupName == \"checkout\"), 1);\r\n\r\n\t\t\tvar checkoutParams = {};\r\n\t\t\tif (sdkParamIndex != -1) {\r\n\t\t\t\tvar parameters = jsonEditConfig[sdkParamIndex].parameters;\r\n\r\n\t\t\t\tparameters.map(function (sdkPram, key) {\r\n\t\t\t\t\tsdkPram = JSON.parse(sdkPram);\r\n\t\t\t\t\tif (sdkPram.envName == envName.replace(\" \", \"-\")) {\r\n\t\t\t\t\t\tcheckoutParams = sdkPram\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (checkoutParams.windowRef == \"\") {\r\n\t\t\t\tdcfInvokeName = \"blank\";\r\n\t\t\t} else {\r\n\t\t\t\tdcfInvokeName = (checkoutParams.windowRef) ? checkoutParams.windowRef.trim().toLowerCase()\r\n\t\t\t\t\t: \"windowrefless\";\r\n\t\t\t}\r\n\r\n\t\t\treturn dcfInvokeName;\r\n\t\t}\r\n\r\n\r\n\t\tif (dataParams != null && dataParams != \"\" && dataParams.Configuration != null && dataParams.Configuration.length > 0) {\r\n\t\t\tdataParams.Configuration.reduce((result, item) => {\r\n\t\t\t\tif (item.SdkFunctionName == \"checkout\") {\r\n\t\t\t\t\tresult = item;\r\n\t\t\t\t\tif (result != null && result.Fields != null && result.Fields.length > 0) {\r\n\t\t\t\t\t\tresult.Fields.forEach((field) => {\r\n\t\t\t\t\t\t\tif (field.ParameterName == \"windowRef\") {\r\n\r\n\t\t\t\t\t\t\t\tif (field.DefaultData != null && field.DefaultData != \"\") {\r\n\t\t\t\t\t\t\t\t\tdcfInvokeName = field.DefaultData.trim().toLowerCase();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn dcfInvokeName;\r\n\t}\r\n\r\n\t// For particular SDK function call(init, isRecongized, etc) We need params so we are getting it.\r\n\tgetParamsForTheAPICall = async (apiName, envName = \"\") => {\r\n\t\tvar testDataParams = store.getState().reducer.dataParams;\r\n\r\n\t\t// In the config window, user needs json editor to edit the sdk params\r\n\t\tvar userDetails = store.getState().reducer.userDetails;\r\n\t\tvar jsonEdit = (userDetails && userDetails.UIJsonEdit) ? userDetails.UIJsonEdit : false;\r\n\r\n\t\tlet sdkParams = {};\r\n\r\n\r\n\t\tif (jsonEdit && this.developerMode) {\r\n\t\t\tconsole.log(\"i am inside developer mode\");\r\n\t\t\tsdkParams = await this.sdkParamValuesForUIJsonEdit(apiName, envName);\r\n\t\t\tconsole.log(sdkParams);\r\n\t\t}\r\n\r\n\t\tif (SRCWrapper.srcTransactionID == null) {\r\n\t\t\tSRCWrapper.setSRCiTransactionID() // Should be unique for every transaction\r\n\t\t}\r\n\r\n\t\tvar clientId = \"\", dpaId = \"\";\r\n\r\n\t\t// This is used for IRA\r\n\t\tif (envName != null && envName != \"\") {\r\n\t\t\tvar existingCookie = await IRAController.getCookie(\"configEnvs\");\r\n\t\t\tvar cookieIndex = existingCookie.findIndex(x => x.envName == envName.replace(\" \", \"-\"));\r\n\t\t\tvar environment = existingCookie[cookieIndex];\r\n\t\t\tclientId = environment.clientId;\r\n\t\t\tdpaId = environment.dpaId;\r\n\t\t}\r\n\r\n\t\tif (jsonEdit && this.developerMode) {\r\n\t\t\tdpaId = (sdkParams.srcDpaId) ? sdkParams.srcDpaId : dpaId;\r\n\t\t\tclientId = (sdkParams.srcInitiatorId) ?\r\n\t\t\t\tsdkParams.srcInitiatorId : clientId;\r\n\t\t}\r\n\r\n\t\t// This will be executed, If one environment has been configured and a particular scenario execution \r\n\t\tif (clientId == \"\" && dpaId == \"\") {\r\n\t\t\tdpaId = store.getState().reducer.dpaID;\r\n\t\t\tclientId = store.getState().reducer.clientID;\r\n\t\t}\r\n\r\n\r\n\t\t// TODO: Need to change this switch case\r\n\t\tswitch (apiName) {\r\n\t\t\tcase 'init': //Setting transaction id, For every transaction unique transaction id is needed\r\n\t\t\t\tsdkParams.srciTransactionId = SRCWrapper.srcTransactionID;\r\n\r\n\t\t\t\t// Getting SrcDpaId & SrcClientId from cookies. \r\n\t\t\t\t// These details have been stored during decoding JWT token process or while loading envs\r\n\t\t\t\tsdkParams.srcDpaId = dpaId;\r\n\t\t\t\tsdkParams.srcInitiatorId = clientId;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'enrollCard':\r\n\r\n\t\t\t\tsdkParams = !isEmptyObject(sdkParams) ? sdkParams\r\n\t\t\t\t\t: dataConstansts.cardEnrollment.params;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'identityLookup':\r\n\t\t\t\tsdkParams = !isEmptyObject(sdkParams) ? sdkParams\r\n\t\t\t\t\t: dataConstansts.identityLookup.params;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'initiateIdentityValidation':\r\n\t\t\t\tsdkParams = !isEmptyObject(sdkParams) ? sdkParams\r\n\t\t\t\t\t: dataConstansts.identityInitiate.params;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'completeIdentityValidation':\r\n\t\t\t\tsdkParams = !isEmptyObject(sdkParams) ? sdkParams\r\n\t\t\t\t\t: dataConstansts.completeIdentity.params;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'getSrcProfile':\r\n\t\t\t\tsdkParams = !isEmptyObject(sdkParams) ? sdkParams\r\n\t\t\t\t\t: dataConstansts.getSrcProfile.params;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'checkout':\r\n\t\t\t\tsdkParams = !isEmptyObject(sdkParams) ? sdkParams\r\n\t\t\t\t\t: dataConstansts.checkout.params;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tsdkParams = false;\r\n\t\t}\r\n\t\t// Changing the sdk params using the configuration params\r\n\t\t// This is only for input text box in the configuration screen\r\n\t\tif (!this.developerMode && testDataParams != null && testDataParams.Configuration.length > 0) {\r\n\r\n\t\t\tvar configParams = testDataParams.Configuration;\r\n\r\n\t\t\tsdkParams = await this.attachOptionalAndMandatoryParams(sdkParams, testDataParams, apiName);\r\n\r\n\r\n\t\t\tif (sdkParams != null) {\r\n\t\t\t\t//ES6 syntax \"Map & reduce\"\r\n\t\t\t\tconfigParams.reduce((result, item) => {\r\n\t\t\t\t\tif (item.SdkFunctionName == apiName) {\r\n\t\t\t\t\t\tresult = item;\r\n\t\t\t\t\t\tvar sdkParamName = result.GroupName.split(\".\")[1];\r\n\r\n\t\t\t\t\t\t// Setting the test-data params inside SDK params (based on pure-logic)\r\n\t\t\t\t\t\tif (result != null && result.Fields != null && result.Fields.length > 0) {\r\n\t\t\t\t\t\t\tresult.Fields.forEach((element) => {\r\n\t\t\t\t\t\t\t\tvar parameterNames = element.ParameterName.split(\".\");\r\n\t\t\t\t\t\t\t\t// Getting the json key ex: {\"a.b.c.d: 234\", \"s\" :\"ss\"}\r\n\t\t\t\t\t\t\t\tif (parameterNames.length > 0) {\r\n\t\t\t\t\t\t\t\t\tvar existingObj = \"\";\r\n\r\n\t\t\t\t\t\t\t\t\tparameterNames.forEach(function (item, counter) {\r\n\t\t\t\t\t\t\t\t\t\texistingObj = (counter == 0) ? item : existingObj + \".\" + item;\r\n\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t// Based on the data type, setting the values\r\n\t\t\t\t\t\t\t\t\tif (sdkParams[sdkParamName] != null && sdkParams[sdkParamName][existingObj] != null && element.HelpData != \"CHANGE_BASED_ON_ENV\") {\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (element.Type == \"List\") {\r\n\t\t\t\t\t\t\t\t\t\t\tvar trimedString = \"\";\r\n\t\t\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar tempArr = element.DefaultData.replace(\" \", \"\").trim().split(\",\");\r\n\t\t\t\t\t\t\t\t\t\t\t\ttrimedString = tempArr.map(function (e) { return e.trim(); });\r\n\t\t\t\t\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\t\t\t\t\ttrimedString = element.DefaultData.replace(\" \", \"\").trim().split(\",\")\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tsdkParams[sdkParamName][existingObj] = (element.DefaultData != \"\") ? trimedString : [];\r\n\t\t\t\t\t\t\t\t\t\t} else if (element.Type == \"String\") {\r\n\t\t\t\t\t\t\t\t\t\t\tsdkParams[sdkParamName][existingObj] = element.DefaultData.trim();\r\n\t\t\t\t\t\t\t\t\t\t} else if (element.Type == \"Boolean\") {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif (element.DefaultData == \"True\" || element.DefaultData == \"False\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\tsdkParams[sdkParamName][existingObj] = Boolean(element.DefaultData);\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tsdkParams[sdkParamName][existingObj] = element.DefaultData.trim();\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse if (element.Type == \"JSON\") {\r\n\t\t\t\t\t\t\t\t\t\t\tsdkParams[sdkParamName][existingObj] = (element.DefaultData != \"\") ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tJSON.parse(element.DefaultData) : \"\";\r\n\t\t\t\t\t\t\t\t\t\t} else if (element.Type == \"List\") {\r\n\t\t\t\t\t\t\t\t\t\t\tvar tempArr = [];\r\n\t\t\t\t\t\t\t\t\t\t\tvar parsedJson = (element.DefaultData != \"\") ? JSON.parse(element.DefaultData) : \"\";\r\n\t\t\t\t\t\t\t\t\t\t\tif (parsedJson != \"\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\ttempArr.push(JSON.parse(element.DefaultData));\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tsdkParams[sdkParamName][existingObj] = tempArr;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\tsdkParams[sdkParamName][existingObj] = element.DefaultData.trim();\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else if (sdkParams != null && sdkParamName != null && element.DefaultData != null && element.HelpData != \"CHANGE_BASED_ON_ENV\") {\r\n\t\t\t\t\t\t\t\t\t\tsdkParams[sdkParamName] = element.DefaultData.trim();\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t}\r\n\t\t\t\t}, null);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\t// If the app is not invoked from our tool, the conditional param \"dpaTransactionOptions\" \r\n\t\t//is required to complete the transaction.\r\n\t\tif ((apiName == \"init\" || apiName == \"checkout\") && sdkParams.dpaTransactionOptions == null && SRCWrapper.redirection == null) {\r\n\t\t\tsdkParams.dpaTransactionOptions = dataConstansts.dpaTransactionOptions.params;\r\n\t\t}\r\n\r\n\t\treturn sdkParams;\r\n\t};\r\n\r\n\t// In the UI, User can change the test-data configuration params, so storing updated value \r\n\t// in the redux-store\r\n\tupdateTestDataValueInStore = async (id, value, groupName, arrPosition) => {\r\n\t\tvar dataParams = store.getState().reducer.dataParams;\r\n\r\n\r\n\t\tvar existingCookie = await IRAController.getCookie(\"configEnvs\");\r\n\r\n\r\n\t\tif (dataParams != null && dataParams != \"\" && dataParams.Configuration != null && value != null) {\r\n\r\n\t\t\tif (dataParams.Configuration[arrPosition] != null && dataParams.Configuration[arrPosition].GroupName == groupName) {\r\n\t\t\t\tvar configurationData = dataParams.Configuration[arrPosition];\r\n\r\n\t\t\t\t//ES6 syntax \"Map & reduce\"\r\n\t\t\t\tconfigurationData.Fields.reduce(async (result, item) => {\r\n\r\n\t\t\t\t\t// Based on environment id's shall change\r\n\t\t\t\t\tif (item.HelpData == \"CHANGE_BASED_ON_ENV\") {\r\n\t\t\t\t\t\tvar tempId = id;\r\n\r\n\t\t\t\t\t\tid = id.includes(\"srcInitiatorId\") ?\r\n\t\t\t\t\t\t\tid.slice(0, 14) : id.slice(0, 8);\r\n\r\n\t\t\t\t\t\ttempId = tempId.includes(\"srcInitiatorId\") ?\r\n\t\t\t\t\t\t\ttempId.slice(15) : tempId.slice(9);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (item.ParameterName === id) {\r\n\t\t\t\t\t\tresult = item\r\n\r\n\t\t\t\t\t\t// CHANGE_BASED_ON_ENV - If it presents, Based on the environment selection \r\n\t\t\t\t\t\t// Ids will be changed\r\n\t\t\t\t\t\tif (item.HelpData == \"CHANGE_BASED_ON_ENV\" && value.trim() != null &&\r\n\t\t\t\t\t\t\tvalue.trim() != \"\") {\r\n\r\n\t\t\t\t\t\t\texistingCookie.map(function (x) {\r\n\t\t\t\t\t\t\t\tif (x.envName == tempId) {\r\n\t\t\t\t\t\t\t\t\tid.includes(\"srcInitiatorId\") ? x.clientId = value.trim()\r\n\t\t\t\t\t\t\t\t\t\t: x.dpaId = value.trim();\r\n\t\t\t\t\t\t\t\t\treturn existingCookie;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tawait IRAController.createCookie(\"configEnvs\", existingCookie, true);\r\n\r\n\t\t\t\t\t\t\tresult.DefaultData = value.trim(); // not allowing to add empty values \r\n\t\t\t\t\t\t} else if (item.HelpData != \"CHANGE_BASED_ON_ENV\") {\r\n\t\t\t\t\t\t\tresult.DefaultData = value.trim();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (item.ParameterName == \"transactionAmount\") {\r\n\t\t\t\t\t\t\tServerToServerAPIController.transactionAmount = JSON.parse(value);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tconsole.log(result);\r\n\t\t\t\t\t\treturn result\r\n\t\t\t\t\t}\r\n\t\t\t\t}, null);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Attaching the optional and mandatory params to the SDK params if required\r\n\tattachOptionalAndMandatoryParams = (sdkParams, testDataParams, apiName) => {\r\n\t\tif (testDataParams.DataParams != null && testDataParams.DataParams.length > 0) {\r\n\r\n\t\t\ttestDataParams.DataParams.reduce((result, item) => {\r\n\t\t\t\tif (item.APIName == apiName) {\r\n\t\t\t\t\tresult = item;\r\n\t\t\t\t\tif (result != null && result.Params != null && result.Params.length > 0) {\r\n\t\t\t\t\t\tresult.Params.forEach((element) => {\r\n\t\t\t\t\t\t\tif (dataConstansts[element] != null) { // Reflection mechanism\r\n\t\t\t\t\t\t\t\tsdkParams[element] = dataConstansts[element].params;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, null);\r\n\t\t}\r\n\t\treturn sdkParams;\r\n\t};\r\n\r\n\r\n\tsdkParamValuesForUIJsonEdit = async (sdkMethodName, envName) => {\r\n\t\tvar configParams = store.getState().reducer.dataParams;\r\n\t\tvar jsonEditConfig = configParams.JsonEditConfiguration;\r\n\r\n\t\tlet funcParams = {};\r\n\t\tif (jsonEditConfig != null) {\r\n\t\t\tvar sdkParamIndex = jsonEditConfig.findIndex((x => x.GroupName == sdkMethodName), 1);\r\n\r\n\t\t\tif (sdkParamIndex != -1) {\r\n\t\t\t\tvar parameters = jsonEditConfig[sdkParamIndex].parameters;\r\n\r\n\t\t\t\tawait parameters.map(function (tempParam, key) {\r\n\t\t\t\t\tconst obj = JSON.parse(tempParam);\r\n\r\n\t\t\t\t\tif (obj.envName == envName.replace(\" \", \"-\")) {\r\n\t\t\t\t\t\tfuncParams = obj;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (funcParams.envName) {\r\n\t\t\t\t\tdelete (funcParams.envName);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn funcParams;\r\n\t};\r\n\r\n\tupdateJsonEditorConfigData = async (sdkMethodName, updatedJsonValue, indexCounter) => {\r\n\t\tvar configParams = store.getState().reducer.dataParams;\r\n\t\tvar jsonEditConfig = configParams.JsonEditConfiguration;\r\n\r\n\t\tif (jsonEditConfig != null) {\r\n\t\t\tvar sdkParamIndex = jsonEditConfig.findIndex((x => x.GroupName == sdkMethodName), 1);\r\n\r\n\t\t\tif (sdkParamIndex != -1) {\r\n\t\t\t\tjsonEditConfig[sdkParamIndex].parameters[indexCounter] = JSON.stringify(updatedJsonValue);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn updatedJsonValue;\r\n\t};\r\n}\r\n\r\nexport default new DataParamsController();\r\n","import * as React from 'react';\r\n\r\nexport class FooterNavBarComponent extends React.Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n

Copyright @2020 Discover    All Rights Reserved.

\r\n
\r\n\r\n {/*
\r\n

Powered by Payhuddle   

\r\n
*/}\r\n
);\r\n }\r\n}\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport $ from \"jquery\";\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\nimport { store } from \"../redux/store\";\r\nimport { environment, dataParams, CurrentTransactionLogs, selectedEnvironments, userDetails } from \"../redux/actions/Action\";\r\nimport IRAJson from \"../IRAConfiguration.json\";\r\nimport SRCWrapper from \"../utility/SRCWrapper\";\r\nimport { dpaID, clientID, jwtToken, ServerToServerAPI } from \"../redux/actions/Action\";\r\nimport { Auth } from 'aws-amplify';\r\nimport LogWindow from \"../components/LogWindow\";\r\nimport CryptoConfiguration from \"../CryptoConfiguration.json\";\r\n\r\nvar CryptoJS = require(\"crypto-js\");\r\n\r\n\r\nclass IRAController {\r\n\t// Get all the active environments from the Lithos tool\r\n\tgetAllEnvironment = async () => {\r\n\t\tvar user;\r\n\t\ttry {\r\n\t\t\tuser = await Auth.currentAuthenticatedUser();\r\n\t\t} catch (error) {\r\n\t\t\tuser = {};\r\n\t\t\tconsole.log(\"error \" + error);\r\n\t\t\tuser.username = CryptoConfiguration.scenraioBasedEmail;\r\n\t\t}\r\n\r\n\t\tconst response = await fetch(loggerHost.getEnvironmentURI, {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: { 'Content-Type': 'application/json' },\r\n\t\t\tbody: JSON.stringify(user.username)\r\n\t\t});\r\n\r\n\t\tconst fetchResponse = await response.text();\r\n\t\tvar data = this.apiResponseDecryption(fetchResponse);\r\n\r\n\t\tdata = JSON.parse(data);\r\n\r\n\t\tstore.dispatch(userDetails({ \"UIJsonEdit\": (data.UIJsonEdit == \"False\") ? false : true }));\r\n\r\n\t\t// Storing values in redux-store to fetch in subsequent api calls or sdk func call\r\n\t\treturn store.dispatch(environment(JSON.parse(data.SUTs)));\r\n\t};\r\n\r\n\r\n\t// loading configure data params for independent ref app\r\n\tloadConfigureDataForIndependentRefApp = async () => {\r\n\t\tstore.dispatch(dataParams(IRAJson));\r\n\t\treturn await this.FetchCustomAttributes();\r\n\t}\r\n\r\n\t// When the user changes the env, the configuration data has to be changed\r\n\tloadConfigureDataAsPerEnvironment = async (configurationData) => {\r\n\t\tvar existingCookie = await this.getCookie(\"configEnvs\");\r\n\r\n\t\tif (configurationData != null) {\r\n\t\t\tconfigurationData.reduce((key, data) => {\r\n\t\t\t\tif (data != null) {\r\n\t\t\t\t\tvar envParameters = [];\r\n\t\t\t\t\tdata.Fields.reduce((result, item) => {\r\n\r\n\t\t\t\t\t\t// For every environments client id and dpa id differs so based on \r\n\t\t\t\t\t\t// the selection srcClient and SrcDpa id shall be changed\r\n\t\t\t\t\t\tif (item.HelpData == \"CHANGE_BASED_ON_ENV\") {\r\n\t\t\t\t\t\t\tresult = item\r\n\r\n\t\t\t\t\t\t\texistingCookie.map(function (x) {\r\n\t\t\t\t\t\t\t\tvar envId = (item.ParameterName == \"srcInitiatorId\")\r\n\t\t\t\t\t\t\t\t\t? x.clientId : x.dpaId;\r\n\r\n\t\t\t\t\t\t\t\tvar params = { envName: x.envName, envId: envId }\r\n\t\t\t\t\t\t\t\tenvParameters.push(params);\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\titem.Parameters = envParameters;\r\n\t\t\t\t\t\t\treturn result;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}, null);\r\n\r\n\t\t\t\t}\r\n\t\t\t}, null);\r\n\r\n\t\t}\r\n\r\n\t\treturn configurationData;\r\n\t};\r\n\r\n\r\n\tloadConfigureDataBasedOnJsonEditor = async (configData) => {\r\n\t\tvar existingCookie = await this.getCookie(\"configEnvs\");\r\n\r\n\t\tconfigData.map((data, key) => {\r\n\t\t\tvar parameters = [];\r\n\t\t\texistingCookie.map(function (x) {\r\n\t\t\t\tvar dataParams = data.Params;\r\n\t\t\t\tdataParams = JSON.parse(dataParams);\r\n\r\n\t\t\t\tif (data.GroupName == \"init\") {\r\n\t\t\t\t\tdataParams.srcInitiatorId = x.clientId;\r\n\t\t\t\t\tdataParams.srcDpaId = x.dpaId;\r\n\t\t\t\t}\r\n\t\t\t\tdataParams.envName = x.envName\r\n\t\t\t\tparameters.push(JSON.stringify(dataParams));\r\n\t\t\t});\r\n\t\t\tdata.parameters = parameters;\r\n\t\t});\r\n\t\treturn configData;\r\n\t};\r\n\r\n\t// getting custom atrribues in cognito\r\n\tFetchCustomAttributes = async () => {\r\n\t\tvar user = await Auth.currentAuthenticatedUser();\r\n\t\tvar assignedEnvironments = [];\r\n\r\n\t\tif (user != null && user.attributes != null) {\r\n\t\t\tlet customeAttrEnv = user.attributes[\"custom:environment\"];\r\n\t\t\tassignedEnvironments = (customeAttrEnv != null) ? customeAttrEnv.split(\"|\") : [];\r\n\t\t}\r\n\t\treturn assignedEnvironments;\r\n\t};\r\n\r\n\t// Configuring environment details\r\n\tconfigureSDKEnvironment = async (envName, isEnvChanged = false) => {\r\n\t\tvar environments = store.getState().reducer.environment;\r\n\t\tvar environmentDetails = \"\";\r\n\r\n\t\tvar tempEnvArr = [];\r\n\t\tvar isEnvConfigured = false;\r\n\r\n\t\tif (environments != null) {\r\n\t\t\tenvironments.forEach((environment) => {\r\n\t\t\t\tif (envName.trim() == environment.ParticipantName.trim()) {\r\n\t\t\t\t\tenvironmentDetails = environment;\r\n\r\n\t\t\t\t\tif (store.getState().reducer.selectedEnvironments) {\r\n\t\t\t\t\t\ttempEnvArr = store.getState().reducer.selectedEnvironments;\r\n\t\t\t\t\t\tisEnvConfigured = tempEnvArr.some(env => env.ParticipantName == environment.ParticipantName.trim());\r\n\r\n\t\t\t\t\t\tif (isEnvConfigured) {\r\n\t\t\t\t\t\t\tisEnvConfigured = true;\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttempEnvArr.push(environment);\r\n\t\t\t\t\tstore.dispatch(selectedEnvironments(tempEnvArr));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (environmentDetails == \"\") {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tlet sdkURL = (environmentDetails.SDKURL != null) ? environmentDetails.SDKURL : \"\";\r\n\t\tvar isURLLoaded = await SRCWrapper.loadMutlipleEnvScript(sdkURL, envName);\r\n\r\n\r\n\t\tif (isEnvChanged && !isEnvConfigured) {\r\n\t\t\tlet clientId = environmentDetails.SRC_Client_ID != null ? environmentDetails.SRC_Client_ID : \"\";\r\n\t\t\tlet dpaId = environmentDetails.SRC_DPA_ID != null ? environmentDetails.SRC_DPA_ID : \"\";\r\n\r\n\t\t\tawait this.createConfigEnvCookies(envName, clientId, dpaId);\r\n\t\t\treturn (isURLLoaded) ? true : false;\r\n\t\t}\r\n\t\treturn true;\r\n\r\n\t};\r\n\r\n\r\n\tcreateConfigEnvCookies = async (envName, srcClientId, srcDpaId) => {\r\n\t\tvar cookieObj = {\r\n\t\t\tenvName: envName.trim().replace(\" \", \"-\"), // In js, space creates problem while retriving\r\n\t\t\tclientId: srcClientId,\r\n\t\t\tdpaId: srcDpaId\r\n\t\t}\r\n\r\n\t\tvar tempCookieArr = [];\r\n\r\n\t\tvar existingCookie = await this.checkExistingConfigEnvCookies(envName, false);\r\n\r\n\t\tif (existingCookie != \"\") {\r\n\t\t\ttempCookieArr = existingCookie;\r\n\t\t}\r\n\t\ttempCookieArr.push(cookieObj);\r\n\r\n\t\t//@params- cookie name, cookie value\r\n\t\tawait this.createCookie(\"configEnvs\", tempCookieArr, true);\r\n\t}\r\n\r\n\tcheckExistingConfigEnvCookies = async (envName, updateinBrowser = true) => {\r\n\t\tvar existingCookie = await this.getCookie(\"configEnvs\");\r\n\r\n\t\tif (existingCookie != \"\") {\r\n\t\t\tenvName = envName.trim().replace(\" \", \"-\");\r\n\r\n\t\t\t// Remove if cookie present for the particular env\r\n\t\t\tif (existingCookie.some(env => env.envName == envName)) {\r\n\t\t\t\texistingCookie.splice(existingCookie.findIndex(env => env.envName\r\n\t\t\t\t\t== envName), 1);\r\n\r\n\t\t\t\tif (updateinBrowser) {\r\n\t\t\t\t\t//@params- cookie name, cookie value\r\n\t\t\t\t\tawait this.createCookie(\"configEnvs\", existingCookie, true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn existingCookie;\r\n\t}\r\n\r\n\r\n\r\n\t// Creating cookie\r\n\tcreateCookie = async (cookieName, cookieValue, arrJsonStr = false) => {\r\n\t\tcookieName = (cookieName == \"\") ? \"SelectedEnvironment\" : cookieName;\r\n\r\n\t\tcookieValue = (arrJsonStr) ? JSON.stringify(cookieValue) : cookieValue;\r\n\t\tvar cipherText = await this.encryptCookie(cookieValue); // cookie value encryption\r\n\r\n\t\tdocument.cookie = cookieName + \"=\" + escape(cipherText) + \";\";\r\n\t};\r\n\r\n\r\n\t//deleting all the cookie\r\n\tdeleteCookie = async () => {\r\n\t\tvar envCookieName = \"SelectedEnvironment\";// The cookie name.\r\n\t\tvar configIdCookieName = \"configEnvs\";\r\n\r\n\t\tvar date = new Date();\r\n\t\tdate.setTime(date.getTime());\r\n\t\tvar expires = \"expires=\" + date.toUTCString();\r\n\r\n\t\tdocument.cookie = envCookieName + \"=\" + \";\" + expires + \";\";\r\n\t\tdocument.cookie = configIdCookieName + \"=\" + \";\" + expires + \";\";\r\n\t};\r\n\r\n\t//getting the cookie\r\n\tgetCookie = async (Name, jsonParse = true) => {\r\n\t\tvar name = Name + \"=\";\r\n\t\tvar decodedCookie = decodeURIComponent(document.cookie);\r\n\t\tvar ca = decodedCookie.split(';');\r\n\t\tfor (var i = 0; i < ca.length; i++) {\r\n\t\t\tvar c = ca[i];\r\n\t\t\twhile (c.charAt(0) == ' ') {\r\n\t\t\t\tc = c.substring(1);\r\n\t\t\t}\r\n\t\t\tif (c.indexOf(name) == 0) {\r\n\t\t\t\tvar encryptedCookie = c.substring(name.length, c.length);\r\n\r\n\t\t\t\tif (encryptedCookie != null) {\r\n\t\t\t\t\tvar decryptedCookie = await this.decryptCookie(encryptedCookie);\r\n\r\n\t\t\t\t\tif (decryptedCookie != null && decryptedCookie != \"\") {\r\n\t\t\t\t\t\treturn (jsonParse) ? JSON.parse(decryptedCookie) : decryptedCookie;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn \"\";\r\n\t};\r\n\r\n\tencryptCookie = async (cookieValue) => {\r\n\t\tvar encryptedCipherText = CryptoJS.AES.encrypt(cookieValue, CryptoConfiguration.cookiePassword).toString();\r\n\t\treturn encryptedCipherText;\r\n\t};\r\n\r\n\tdecryptCookie = async (encryptedText) => {\r\n\t\tvar decryptedText = \"\";\r\n\r\n\t\tif (encryptedText != null) {\r\n\t\t\tvar bytes = CryptoJS.AES.decrypt(encryptedText, CryptoConfiguration.cookiePassword);\r\n\t\t\tdecryptedText = bytes.toString(CryptoJS.enc.Utf8);\r\n\t\t}\r\n\r\n\t\treturn decryptedText;\r\n\t};\r\n\r\n\r\n\t// stores all the logs that happens between srci to sdk\r\n\tstoreCurrentTransactionLogs = async (logRequest, logResponse, apiName, logType = \"SRCI to SDK\", envName = \"\") => {\r\n\t\tlet ts = new Date()\r\n\t\t\t.toISOString()\r\n\t\t\t.replace(/T/, \" \")\r\n\t\t\t.replace(/\\..+/, \"\");\r\n\t\t// let ts = new Date();\r\n\r\n\t\tlet request = { body: JSON.stringify(logRequest), time: ts };\r\n\t\tlet response = { body: JSON.stringify(logResponse), time: ts };\r\n\r\n\t\tlet transactionLog = {\r\n\t\t\trequest: request,\r\n\t\t\tresponse: response,\r\n\t\t\tlogType: logType,\r\n\t\t\tapi: apiName,\r\n\t\t\ttime: ts,\r\n\t\t\tid: SRCWrapper.srcTransactionID,\r\n\t\t\tenvironment: envName\r\n\t\t};\r\n\r\n\t\tvar storedLogs = store.getState().reducer.CurrentTransactionLogs;\r\n\r\n\t\tif (storedLogs != null) {\r\n\t\t\tstoredLogs.push(transactionLog);\r\n\t\t\tstore.dispatch(CurrentTransactionLogs(storedLogs));\r\n\t\t} else {\r\n\t\t\tvar logArray = [];\r\n\t\t\tlogArray.push(transactionLog);\r\n\t\t\tstore.dispatch(CurrentTransactionLogs(logArray));\r\n\t\t}\r\n\r\n\t\tawait LogWindow.fecthCurrentTransactionLogs();\r\n\r\n\t};\r\n\r\n\tinitializeTreeViewInLog = async () => {\r\n\t\tLogWindow.initializeTreeView();\r\n\t}\r\n\r\n\r\n\t// Get all the active environments from the Lithos tool\r\n\tfetchLogs = async (searchString, page) => {\r\n\t\tvar user = await Auth.currentAuthenticatedUser();\r\n\r\n\t\tif (user.username == null) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (searchString != null && searchString != \"\") {\r\n\t\t\tsearchString = (searchString.toLowerCase() == \"zeus-test-dpa-000000000000000001\")\r\n\t\t\t\t? \"Zeus-Test-Dpa-000000000000000001\" : searchString.toLowerCase();\r\n\t\t}\r\n\r\n\t\tvar sessionStartDate = (sessionStorage.getItem(\"startDate\") != \"\") ?\r\n\t\t\tsessionStorage.getItem(\"startDate\") : this.getCurrentUTCDateAndTime();\r\n\r\n\t\tvar startDate = sessionStartDate;\r\n\t\tvar endDate = this.getCurrentUTCDateAndTime();\r\n\r\n\t\tvar transactionLogSearch =\r\n\t\t{\r\n\t\t\tLogType: \"all\",\r\n\t\t\tStartDateTime: startDate,\r\n\t\t\tEndDateTime: endDate,\r\n\t\t\tGroupBy: \"srcTransactionID\",\r\n\t\t\tSearchString: searchString,\r\n\t\t\tPage: page.toString(),\r\n\t\t\tUser_Email: user.username\r\n\t\t};\r\n\r\n\r\n\t\treturn $.ajax({\r\n\t\t\ttype: 'POST',\r\n\t\t\turl: loggerHost.fetchlogsURI,\r\n\t\t\tcrossDomain: true,\r\n\t\t\tdata: JSON.stringify(transactionLogSearch),\r\n\t\t\tcontentType: \"application/json\",\r\n\t\t\tsuccess: function (data) {\r\n\t\t\t\treturn JSON.stringify(data);\r\n\t\t\t},\r\n\t\t\terror: function (error) {\r\n\t\t\t\tconsole.log(error);\r\n\t\t\t\treturn \"\";\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn \"\";\r\n\t};\r\n\r\n\tgetCurrentUTCDateAndTime = () => {\r\n\t\tvar today = new Date();\r\n\t\tvar month = String(today.getUTCMonth() + 1);\r\n\r\n\t\tif (month.length == 1) {\r\n\t\t\tmonth = \"0\" + month;\r\n\t\t}\r\n\t\tvar date = String(today.getUTCDate());\r\n\t\tif (date.length == 1) {\r\n\t\t\tdate = \"0\" + date;\r\n\t\t}\r\n\r\n\t\tvar hours = String(today.getUTCHours());\r\n\t\tif (hours.length == 1) {\r\n\t\t\thours = \"0\" + hours;\r\n\t\t}\r\n\r\n\t\tvar minutes = String(today.getUTCMinutes());\r\n\t\tif (minutes.length == 1) {\r\n\t\t\tminutes = \"0\" + minutes;\r\n\t\t}\r\n\r\n\t\tvar seconds = String(today.getUTCSeconds());\r\n\t\tif (seconds.length == 1) {\r\n\t\t\tseconds = \"0\" + seconds;\r\n\t\t}\r\n\t\tvar date = today.getUTCFullYear() + '-' + month + '-' + date + \" \" + hours + \":\" + minutes + \":\" + seconds;\r\n\t\treturn date;\r\n\t}\r\n\r\n\t// Work around for cookies issue fix\r\n\tloadCheckoutPage = (errorStatus) => {\r\n\t\tif (document.getElementById(\"cancelHrefTag\") != null) {\r\n\t\t\tdocument.getElementById(\"cancelHrefTag\").click();\r\n\t\t} else {\r\n\t\t\twindow.location.href = window.location.origin + \"/referenceapp/checkout\"\r\n\t\t}\r\n\t}\r\n\r\n\tgetEnvironmentFromStore = async (envName) => {\r\n\t\tvar selectedEnvironments = store.getState().reducer.selectedEnvironments;\r\n\r\n\t\tvar environment;\r\n\t\tif (selectedEnvironments != null && envName != null) {\r\n\t\t\tselectedEnvironments.map(function (e) {\r\n\t\t\t\tif (e.ParticipantName == envName.trim()) {\r\n\t\t\t\t\tenvironment = e;\r\n\t\t\t\t\treturn e;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn environment;\r\n\t}\r\n\r\n\r\n\t// This function decrypts the data sent over api\r\n\tapiResponseDecryption(cipherText) {\r\n\t\ttry {\r\n\t\t\tvar iv = CryptoJS.enc.Hex.parse(CryptoConfiguration.aesIvKey);\r\n\t\t\tvar pass = CryptoJS.enc.Utf8.parse(CryptoConfiguration.aesDecryptionPassword);\r\n\t\t\tvar salt = CryptoJS.enc.Utf8.parse(CryptoConfiguration.aesSaltKey);\r\n\r\n\t\t\tvar key128Bits1000Iterations = CryptoJS.PBKDF2(pass.toString(CryptoJS.enc.Utf8),\r\n\t\t\t\tsalt, { keySize: 4, iterations: 1000 });\r\n\r\n\t\t\tvar cipherParams = CryptoJS.lib.CipherParams.create({\r\n\t\t\t\tciphertext: CryptoJS.enc.Base64.parse(cipherText)\r\n\t\t\t});\r\n\r\n\t\t\t//Decrypting the string contained in cipherParams using the PBKDF2 key\r\n\t\t\tvar decrypted = CryptoJS.AES.decrypt(cipherParams, key128Bits1000Iterations,\r\n\t\t\t\t{ mode: CryptoJS.mode.CBC, iv: iv, padding: CryptoJS.pad.Pkcs7 });\r\n\r\n\t\t\treturn decrypted.toString(CryptoJS.enc.Utf8);\r\n\t\t}\r\n\t\t//Malformed UTF Data due to incorrect password\r\n\t\tcatch (err) {\r\n\t\t\tconsole.error(err);\r\n\t\t\treturn \"\";\r\n\t\t}\r\n\r\n\t}\r\n}\r\n\r\nexport default new IRAController();\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport React, { Component } from \"react\";\r\nimport { Container, Col, Row } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { ThankyouNavBarComponent } from '../../components/ThankyouNavbar';\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport { store } from \"../../redux/store\";\r\nimport { Auth } from 'aws-amplify';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { LogWindow } from '../../components/LogWindow';\r\nimport { NavBarComponent } from '../../components/NavBar';\r\nimport $ from \"jquery\";\r\n\r\n\r\nexport class IRA_ThankYou extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorStatus: false,\r\n billingAddress: \"\",\r\n shippingAddress: \"\",\r\n isUserSignedIn: true\r\n };\r\n global.dataURL = \"\";\r\n }\r\n\r\n onClickConfigureButton = async () => {\r\n $(\".configWindow #react-burger-menu-btn\").click();\r\n };\r\n\r\n componentDidMount() {\r\n Auth.currentAuthenticatedUser()\r\n .then(user => this.setState({ isUserSignedIn: true }))\r\n .catch(err => this.setState({ isUserSignedIn: false }));\r\n\r\n try {\r\n var cardDetail = store.getState().reducer.cardList;\r\n var shippingAddress = \"\";\r\n var billingAddress = \"\";\r\n\r\n\r\n if (cardDetail != null) {\r\n\r\n cardDetail = JSON.parse(cardDetail);\r\n if (cardDetail.shippingAddress != null) {\r\n shippingAddress = cardDetail.shippingAddress.name +\",\"\r\n + cardDetail.shippingAddress.line1 + \",\" + cardDetail.shippingAddress.line2 + \",\" + cardDetail.shippingAddress.city + \",\" +\r\n cardDetail.shippingAddress.state + \",\" + \r\n cardDetail.shippingAddress.countryCode +\"-\" + cardDetail.shippingAddress.zip;\r\n }\r\n\r\n if (cardDetail.billingAddress != null) {\r\n console.log(cardDetail.billingAddress);\r\n\r\n billingAddress = cardDetail.billingAddress.name +\",\" \r\n + cardDetail.billingAddress.line1 + \",\" + cardDetail.billingAddress.line2 + \",\" + cardDetail.billingAddress.city + \",\" +\r\n cardDetail.billingAddress.state + \",\" \r\n + cardDetail.billingAddress.countryCode +\"-\" + cardDetail.billingAddress.zip;\r\n }\r\n\r\n this.setState({\r\n billingAddress: billingAddress.replace(\"undefined\" , \"\"),\r\n shippingAddress: shippingAddress.replace(\"undefined\" , \"\"),\r\n });\r\n\r\n }\r\n } catch (error) { }\r\n\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {!this.state.isUserSignedIn ? : null}\r\n\r\n\r\n \r\n \r\n \r\n
\r\n \r\n

Order Confirmed!

\r\n

Thank you for the order.

\r\n
\r\n
\r\n
\r\n

ITEMS:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The Godfather by Mario Puzo

\r\n\r\n

\r\n Qty: 1

\r\n

\r\n In Stock

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Shipping To :

\r\n
{this.state.shippingAddress}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Billing Address :

\r\n
\r\n {this.state.billingAddress}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
SUBTOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
ESTIMATED SHIPPING &
HANDLING
\r\n
FREE
\r\n
\r\n\r\n
\r\n
TOTAL
\r\n
$10.00
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n {/*
\r\n \r\n
\r\n */}\r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
);\r\n }\r\n}","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport $ from \"jquery\";\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\n\r\n// Sending taken screenshots to lithos tool\r\nexport async function logImage(id, apiname, screencapture) {\r\n\tif (screencapture) {\r\n\t\tvar message = {};\r\n\t\tmessage.APIName = apiname;\r\n\t\tmessage.APIID = id;\r\n\t\tmessage.ScreenShot = screencapture;\r\n\r\n\t\tvar data = JSON.stringify(message);\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: 'POST',\r\n\t\t\turl: loggerHost.screenShotUploaduri,\r\n\t\t\tcrossDomain: true,\r\n\t\t\tdata: data,\r\n\t\t\tcontentType: \"application/json\",\r\n\t\t\tprocessData: false,\r\n\t\t\tsuccess: function (responseData, textStatus, jqXHR) {\r\n\t\t\t\tconsole.log(\"img up success\");\r\n\t\t\t},\r\n\t\t\terror: function (responseData, textStatus, errorThrown) {\r\n\t\t\t\tconsole.log(\"img up failure\");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport async function sleep(ms) {\r\n\tvar d = new Date();\r\n\tvar d2 = null;\r\n\tdo { d2 = new Date(); }\r\n\twhile (d2 - d < ms);\r\n}\r\n","import { combineReducers } from \"redux\";\r\nimport reducer from \"./Reducer\";\r\nexport default combineReducers({\r\n reducer\r\n});\r\n","import {\r\n LOADER_STATE,\r\n MERCHANT_NAME,\r\n ID_TOKENS,\r\n SRC_CORRELATION_ID,\r\n CARD_LIST,\r\n DPA_ID,\r\n DATA_PARAMS,\r\n SRC_CLIENT_ID,\r\n ENVIRONMENT,\r\n JWT_TOKEN,\r\n IRA_LOGS,\r\n DCF_URL,\r\n CURRENT_TRANSACTION_LOGS,\r\n SERVER_TO_SERVER_API,\r\n SELECTED_ENVIRONMENTS,\r\n USER_DETAILS\r\n} from \"../actions/Action\";\r\n\r\nexport default (state = {}, action) => {\r\n switch (action.type) {\r\n case MERCHANT_NAME:\r\n return {\r\n ...state,\r\n merchantName: action.data\r\n };\r\n case LOADER_STATE:\r\n return {\r\n ...state,\r\n loaderState: action.data\r\n };\r\n\r\n case ID_TOKENS:\r\n return {\r\n ...state,\r\n idTokens: action.data\r\n };\r\n case SRC_CORRELATION_ID:\r\n return {\r\n ...state,\r\n srcCorrelationId: action.data\r\n };\r\n case CARD_LIST:\r\n return {\r\n ...state,\r\n cardList: action.data\r\n };\r\n case DPA_ID:\r\n return {\r\n ...state,\r\n dpaID: action.data\r\n };\r\n case DATA_PARAMS:\r\n return {\r\n ...state,\r\n dataParams: action.data\r\n };\r\n case SRC_CLIENT_ID:\r\n return {\r\n ...state,\r\n clientID: action.data\r\n };\r\n case ENVIRONMENT:\r\n return {\r\n ...state,\r\n environment: action.data\r\n };\r\n\r\n case JWT_TOKEN:\r\n return {\r\n ...state,\r\n jwtToken: action.data\r\n };\r\n\r\n case IRA_LOGS:\r\n return {\r\n ...state,\r\n IRALogs: action.data\r\n };\r\n case DCF_URL:\r\n return {\r\n ...state,\r\n DCFUrl: action.data\r\n };\r\n case CURRENT_TRANSACTION_LOGS:\r\n return {\r\n ...state,\r\n CurrentTransactionLogs: action.data\r\n };\r\n case SERVER_TO_SERVER_API:\r\n return {\r\n ...state,\r\n ServerToServerAPI: action.data\r\n };\r\n\r\n case SELECTED_ENVIRONMENTS:\r\n return {\r\n ...state,\r\n selectedEnvironments: action.data\r\n };\r\n\r\n case USER_DETAILS:\r\n return {\r\n ...state,\r\n userDetails: action.data\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n};","import { createStore, applyMiddleware } from \"redux\";\r\nimport rootReducer from \"./reducers/RootReducer\";\r\nimport thunk from \"redux-thunk\";\r\n\r\nexport const store = createStore(rootReducer, applyMiddleware(thunk));\r\n\r\n\r\n","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { ThankyouNavBarComponent } from '../../components/ThankyouNavbar';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport { store } from \"../../redux/store\";\r\n\r\nexport class PaymentThankyouPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorStatus: false,\r\n cardData: \"\",\r\n shippingAddress: \"\"\r\n };\r\n global.dataURL = \"\";\r\n }\r\n\r\n componentDidMount() {\r\n try {\r\n var cardDetail = store.getState().reducer.cardList;\r\n var maskedBillingAddress = \"\";\r\n\r\n if (cardDetail != null) {\r\n if(cardDetail.maskedBillingAddress != null){\r\n maskedBillingAddress = cardDetail.maskedBillingAddress.line1 + \" \" +\r\n cardDetail.maskedBillingAddress.line2 + \" \" + cardDetail.maskedBillingAddress.city + \" \" +\r\n cardDetail.maskedBillingAddress.state + \" \" + cardDetail.maskedBillingAddress.countryCode +\r\n \" \" + cardDetail.maskedBillingAddress.zip;\r\n }\r\n \r\n\r\n var panDetails = \"\";\r\n if (cardDetail.digitalCardData.presentationName == null || cardDetail.digitalCardData.presentationName == \"\") {\r\n panDetails = cardDetail.panLastFour;\r\n } else {\r\n panDetails = cardDetail.digitalCardData.presentationName;\r\n }\r\n\r\n this.setState({\r\n cardData: panDetails,\r\n shippingAddress: maskedBillingAddress\r\n });\r\n \r\n }\r\n\r\n this.sleep(1000);\r\n\r\n // Taking screen-shot\r\n var htmlCancvas = html2canvas(document.querySelector(\"#paymentThankyou\"), {\r\n width: 1000,\r\n height: 600\r\n })\r\n .then(function (canvas) {\r\n global.dataURL = canvas.toDataURL();\r\n global.dataURL = global.dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n } catch (error) {\r\n\r\n\r\n }\r\n\r\n };\r\n\r\n closeWindow = async () => {\r\n logImage(SRCWrapper.srcTransactionID, \"confirmation\", global.dataURL);\r\n this.sleep(2000);\r\n\r\n if (SRCWrapper.redirection != null && window.opener != null) {\r\n window.opener.location.href = loggerHost.lithosuri;\r\n window.close();\r\n return;\r\n } else {\r\n window.location.href = \"/scenario_7/checkout\";\r\n }\r\n }\r\n\r\n sleep(ms) {\r\n var d = new Date();\r\n var d2 = null;\r\n do { d2 = new Date(); }\r\n while (d2 - d < ms);\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n

Order Confirmed!

\r\n

Thank you for the order.

\r\n
\r\n\r\n
\r\n
\r\n

ITEMS:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The Godfather by Mario Puzo

\r\n\r\n

\r\n Qty: 1

\r\n

\r\n In Stock

\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

SHIPPING TO :

\r\n\r\n
{this.state.shippingAddress}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

PAYMENT METHOD :

\r\n\r\n
\r\n \"discover\r\n
\r\n
{\r\n this.state.cardData}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
SUBTOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
ESTIMATED SHIPPING &
HANDLING
\r\n
FREE
\r\n
\r\n\r\n
\r\n
TOTAL
\r\n
$10.00
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
);\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { ThankyouNavBarComponent } from '../../components/ThankyouNavbar';\r\nimport $ from 'jquery';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport { store } from \"../../redux/store\";\r\n\r\n\r\n\r\nexport class ScenarioFourPaymentThankyou extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorStatus: false,\r\n cardData: \"\",\r\n shippingAddress: \"\"\r\n };\r\n global.dataURL = \"\";\r\n }\r\n\r\n componentDidMount() {\r\n try {\r\n var cardDetail = store.getState().reducer.cardList;\r\n var maskedBillingAddress = \"\";\r\n\r\n if (cardDetail != null && cardDetail.maskedBillingAddress != null) {\r\n maskedBillingAddress = cardDetail.maskedBillingAddress.line1 + \" \" +\r\n cardDetail.maskedBillingAddress.line2 + \" \" + cardDetail.maskedBillingAddress.city + \" \" +\r\n cardDetail.maskedBillingAddress.state + \" \" + cardDetail.maskedBillingAddress.countryCode +\r\n \" \" + cardDetail.maskedBillingAddress.zip;\r\n\r\n\r\n var panDetails = \"\";\r\n if (cardDetail.digitalCardData.presentationName == null || cardDetail.digitalCardData.presentationName == \"\") {\r\n panDetails = cardDetail.panLastFour;\r\n } else {\r\n panDetails = cardDetail.digitalCardData.presentationName;\r\n }\r\n\r\n this.setState({\r\n cardData: panDetails,\r\n shippingAddress: maskedBillingAddress\r\n });\r\n }\r\n\r\n this.sleep(2000);\r\n\r\n html2canvas(document.querySelector('#paymentThankyou'), {\r\n width: 1000,\r\n height: 800\r\n })\r\n .then(function (canvas) {\r\n global.dataURL = canvas.toDataURL();\r\n global.dataURL = global.dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n\r\n } catch (error) {\r\n }\r\n }\r\n\r\n closeWindow = async () => {\r\n logImage(SRCWrapper.srcTransactionID, \"confirmation\", global.dataURL);\r\n this.sleep(2000);\r\n\r\n if (SRCWrapper.redirection != null && window.opener != null) {\r\n\r\n console.log(window);\r\n\r\n \r\n window.opener.location.href = loggerHost.lithosuri;\r\n \r\n window.parent.opener.focus();\r\n\r\n window.close();\r\n return;\r\n } else {\r\n window.location.href = \"/scenario_4/checkout\";\r\n }\r\n }\r\n\r\n sleep(ms) {\r\n var d = new Date();\r\n var d2 = null;\r\n do { d2 = new Date(); }\r\n while (d2 - d < ms);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n

Order Confirmed!

\r\n

Thank you for the order.

\r\n
\r\n\r\n
\r\n
\r\n

ITEMS:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The Godfather by Mario Puzo

\r\n\r\n

\r\n Qty: 1

\r\n

\r\n In Stock

\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

SHIPPING TO :

\r\n\r\n
{this.state.shippingAddress}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

PAYMENT METHOD :

\r\n\r\n
\r\n \"discover\r\n
\r\n
 {\r\n this.state.cardData}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
SUBTOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
ESTIMATED SHIPPING &
HANDLING
\r\n
FREE
\r\n
\r\n\r\n
\r\n
TOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { ThankyouNavBarComponent } from '../../components/ThankyouNavbar';\r\nimport $ from 'jquery';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport { store } from \"../../redux/store\";\r\n\r\n\r\n\r\nexport class ST_Thankyou extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorStatus: false,\r\n cardData: \"\",\r\n shippingAddress: \"\"\r\n };\r\n global.dataURL = \"\";\r\n }\r\n\r\n componentDidMount() {\r\n try {\r\n var cardDetail = store.getState().reducer.cardList;\r\n var maskedBillingAddress = \"\";\r\n\r\n console.log(cardDetail);\r\n\r\n if (cardDetail != null && cardDetail.maskedBillingAddress != null) {\r\n maskedBillingAddress = cardDetail.maskedBillingAddress.line1 + \" \" +\r\n cardDetail.maskedBillingAddress.line2 + \" \" + cardDetail.maskedBillingAddress.city + \" \" +\r\n cardDetail.maskedBillingAddress.state + \" \" + cardDetail.maskedBillingAddress.countryCode +\r\n \" \" + cardDetail.maskedBillingAddress.zip;\r\n\r\n\r\n var panDetails = \"\";\r\n if (cardDetail.digitalCardData.presentationName == null || cardDetail.digitalCardData.presentationName == \"\") {\r\n panDetails = cardDetail.panLastFour;\r\n } else {\r\n panDetails = cardDetail.digitalCardData.presentationName;\r\n }\r\n\r\n this.setState({\r\n cardData: panDetails,\r\n shippingAddress: maskedBillingAddress\r\n });\r\n }\r\n\r\n this.sleep(1000);\r\n html2canvas(document.querySelector('#paymentThankyou'), {\r\n width: 1000,\r\n height: 700\r\n })\r\n .then(function (canvas) {\r\n global.dataURL = canvas.toDataURL();\r\n global.dataURL = global.dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n } catch (error) {\r\n console.log(\"error \" + error);\r\n\r\n }\r\n }\r\n\r\n closeWindow = async () => {\r\n logImage(SRCWrapper.srcTransactionID, \"confirmation\", global.dataURL);\r\n this.sleep(2000);\r\n\r\n if (SRCWrapper.redirection != null && window.opener != null) {\r\n window.opener.location.href = loggerHost.lithosuri;\r\n window.close();\r\n return;\r\n } else {\r\n window.location.href = \"/scenario_3/checkout\"\r\n }\r\n }\r\n\r\n sleep(ms) {\r\n var d = new Date();\r\n var d2 = null;\r\n do { d2 = new Date(); }\r\n while (d2 - d < ms);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n

Order Confirmed!

\r\n

Thank you for the order.

\r\n
\r\n\r\n
\r\n
\r\n

ITEMS:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The Godfather by Mario Puzo

\r\n\r\n

\r\n Qty: 1

\r\n

\r\n In Stock

\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

SHIPPING TO :

\r\n\r\n
{this.state.shippingAddress}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

PAYMENT METHOD :

\r\n\r\n
\r\n \"discover\r\n
\r\n
 {\r\n this.state.cardData}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
SUBTOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
ESTIMATED SHIPPING &
HANDLING
\r\n
FREE
\r\n
\r\n\r\n
\r\n
TOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { ThankyouNavBarComponent } from '../../components/ThankyouNavbar';\r\nimport $ from 'jquery';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport { store } from \"../../redux/store\";\r\n\r\n\r\n\r\nexport class SF_Thankyou extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorStatus: false,\r\n cardData: \"\",\r\n shippingAddress: \"\"\r\n };\r\n global.dataURL = \"\";\r\n }\r\n\r\n componentDidMount() {\r\n try {\r\n var cardDetail = store.getState().reducer.cardList;\r\n var maskedBillingAddress = \"\";\r\n\r\n console.log(cardDetail);\r\n\r\n if (cardDetail != null && cardDetail.maskedBillingAddress != null) {\r\n maskedBillingAddress = cardDetail.maskedBillingAddress.line1 + \" \" +\r\n cardDetail.maskedBillingAddress.line2 + \" \" + cardDetail.maskedBillingAddress.city + \" \" +\r\n cardDetail.maskedBillingAddress.state + \" \" + cardDetail.maskedBillingAddress.countryCode +\r\n \" \" + cardDetail.maskedBillingAddress.zip;\r\n\r\n\r\n var panDetails = \"\";\r\n if (cardDetail.digitalCardData.presentationName == null || cardDetail.digitalCardData.presentationName == \"\") {\r\n panDetails = cardDetail.panLastFour;\r\n } else {\r\n panDetails = cardDetail.digitalCardData.presentationName;\r\n }\r\n\r\n this.setState({\r\n cardData: panDetails,\r\n shippingAddress: maskedBillingAddress\r\n });\r\n }\r\n\r\n this.sleep(1000);\r\n html2canvas(document.querySelector('#paymentThankyou'), {\r\n width: 1000,\r\n height: 700\r\n })\r\n .then(function (canvas) {\r\n global.dataURL = canvas.toDataURL();\r\n global.dataURL = global.dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n } catch (error) {\r\n console.log(\"error \" + error);\r\n\r\n }\r\n }\r\n\r\n closeWindow = async () => {\r\n logImage(SRCWrapper.srcTransactionID, \"confirmation\", global.dataURL);\r\n this.sleep(2000);\r\n\r\n if (SRCWrapper.redirection != null && window.opener != null) {\r\n window.opener.location.href = loggerHost.lithosuri;\r\n window.close();\r\n return;\r\n } else {\r\n window.location.href = \"/scenario_5/checkout\"\r\n }\r\n }\r\n\r\n sleep(ms) {\r\n var d = new Date();\r\n var d2 = null;\r\n do { d2 = new Date(); }\r\n while (d2 - d < ms);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n

Order Confirmed!

\r\n

Thank you for the order.

\r\n
\r\n\r\n
\r\n
\r\n

ITEMS:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The Godfather by Mario Puzo

\r\n\r\n

\r\n Qty: 1

\r\n

\r\n In Stock

\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

SHIPPING TO :

\r\n\r\n
{this.state.shippingAddress}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

PAYMENT METHOD :

\r\n\r\n
\r\n \"discover\r\n
\r\n
 {\r\n this.state.cardData}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
SUBTOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
ESTIMATED SHIPPING &
HANDLING
\r\n
FREE
\r\n
\r\n\r\n
\r\n
TOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nexport const initialization = {\r\n params: {\r\n srciTransactionId: \"\",\r\n srcDpaId: \"\",\r\n srcInitiatorId: \"\"\r\n }\r\n};\r\n\r\nexport const cardEnrollment = {\r\n params: {\r\n encryptedCard: {\r\n card: {\r\n primaryAccountNumber: \"\", cardSecurityCode: \"\",\r\n panExpirationMonth: \"\", panExpirationYear: \"\"\r\n }\r\n },\r\n srciTransactionId: \"\"\r\n }\r\n};\r\n\r\nexport const card = {\r\n params: {\r\n primaryAccountNumber: \"\", cardSecurityCode: \"\",\r\n panExpirationMonth: \"\", panExpirationYear: \"\"\r\n }\r\n}\r\n\r\n\r\nexport const checkout = {\r\n params: {\r\n srciTransactionId: \"\",\r\n payloadTypeIndicatorPayload: \"FULL\"\r\n\r\n }\r\n};\r\n\r\nexport const identityLookup = {\r\n params: {\r\n consumerIdentity: {\r\n identityProvider: \"SRC\",\r\n identityType: \"EMAIL_ADDRESS\",\r\n identityValue: \"\"\r\n }\r\n }\r\n};\r\n\r\nexport const identityInitiate = {\r\n params: {}\r\n};\r\n\r\nexport const completeIdentity = {\r\n params: {\r\n validationData: \"\"\r\n }\r\n}\r\n\r\nexport const getSrcProfile = {\r\n params: {\r\n idTokens: \"\"\r\n }\r\n}\r\n\r\nexport const dpaTransactionOptions = {\r\n params: {\r\n consumerEmailAddressRequested: true,\r\n consumerNameRequested: true,\r\n consumerPhoneNumberRequested: true,\r\n customInputData: {\r\n additionalProp1: \"\",\r\n additionalProp2: \"\",\r\n additionalProp3: \"\"\r\n },\r\n dpaAcceptedBillingCountries: [\"US\", \"CA\", \"AU\"],\r\n dpaAcceptedShippingCountries: [\"US\", \"CA\", \"AU\"],\r\n dpaBillingPreference: \"FULL\",\r\n dpaShippingPreference: \"FULL\",\r\n dpaLocale: \"en_US\",\r\n merchantCategoryCode: \"1234\",\r\n merchantCountryCode: \"US\",\r\n merchantOrderId: \"1771b35f-1305-457c-8c07-4031f8c7a1b4\",\r\n orderType: \"Digital\",\r\n srcTokenRequestData: {\r\n additionalProp1: \"string\",\r\n additionalProp2: \"string\",\r\n additionalProp3: \"string\"\r\n },\r\n paymentOptions: [\r\n {\r\n dpaDynamicDataTtlMinutes: 30,\r\n dynamicDataType: \"DYNAMIC_CARD_SECURITY_CODE\"\r\n }\r\n ],\r\n threeDsInputData: {\r\n acquirerId: 456789,\r\n acquirerMid: 894561,\r\n requestorId: 123456\r\n },\r\n transactionAmount:\r\n { transactionAmount: 35.25, transactionCurrencyCode: \"840\" },\r\n threeDsPreference: \"NONE\",\r\n transactionType: \"PURCHASE\",\r\n reviewAction: \"\"\r\n }\r\n}\r\n\r\nexport const dpaTransactionOptions1 = {\r\n consumerEmailAddressRequested: true,\r\n consumerNameRequested: true,\r\n consumerPhoneNumberRequested: true,\r\n\r\n customInputData: {\r\n additionalProp1: \"\",\r\n additionalProp2: \"\",\r\n additionalProp3: \"\"\r\n },\r\n\r\n dpaAcceptedBillingCountries: [\"US\", \"CA\", \"AU\"],\r\n dpaAcceptedShippingCountries: [\"US\", \"CA\", \"AU\"],\r\n dpaBillingPreference: \"FULL\",\r\n dpaShippingPreference: \"FULL\",\r\n dpaLocale: \"en_US\",\r\n\r\n merchantCategoryCode: 1234,\r\n merchantCountryCode: \"US\",\r\n\r\n merchantOrderId: \"1771b35f-1305-457c-8c07-4031f8c7a1b4\",\r\n orderType: \"Digital\",\r\n\r\n srcTokenRequestData: {\r\n additionalProp1: \"string\",\r\n additionalProp2: \"string\",\r\n additionalProp3: \"string\"\r\n },\r\n\r\n paymentOptions: [\r\n {\r\n dpaDynamicDataTtlMinutes: 30,\r\n dynamicDataType: \"DYNAMIC_CARD_SECURITY_CODE\"\r\n }\r\n ],\r\n\r\n threeDsInputData: {\r\n acquirerId: 456789,\r\n acquirerMid: 894561,\r\n requestorId: 123456\r\n },\r\n\r\n threeDsPreference: \"NONE\",\r\n transactionType: \"PURCHASE\"\r\n}\r\n\r\n\r\nexport const profiles = {\r\n params: {}\r\n}\r\n\r\nexport const completeIdentityValidation = {\r\n params: {}\r\n}\r\n\r\nexport const envKeys = {\r\n argusQADpaID: \"e8420d30-bb1d-11ea-82e1-63fc90b5b2a5\",\r\n argusQASrcClientID: \"zeusInitiator\",\r\n\r\n argusCertDpaID: \"Zeus-Test-Dpa-000000000000000001\",\r\n argusCertSrcClientID: \"SRCI10001\",\r\n\r\n opusSandoxDpaID: \"07e490fc-b710-42e6-bbc1-7bcc32e3cd60\",\r\n opusSandoxSrcClientID: \"aa0fa5f4-75b2-45d7-81d9-b3f79255d42e\",\r\n\r\n opusStagingDpaID: \"1771b35f-1305-457c-8c07-4031f8c7a1b3\",\r\n opusStagingSrcClientID: \"aa0fa5f4-75b2-45d7-81d9-b3f79255d42e\",\r\n\r\n phStagingDpaID: \"243b3c74-334f-49d1-895a-9dd6cd27ef06\",\r\n phStagingSrcClientID: \"4f1d9c82-1a15-4984-859e-b3847e55ce3c\",\r\n\r\n phSandboxDpaID: \"a3933034-4062-44ef-a598-21707e70f5f4\",\r\n phSandboxSrcClientID: \"a3fc585a-9356-4ce1-9937-6fb1accd87a4\",\r\n}\r\n\r\nexport const envURLs = {\r\n argusQASdkUrl: \"https://webapp.qa.src.discover.com/websdk/dgnSS-SDK-0.0.1.js\",\r\n argusCertSdkUrl: \"https://webapp.cert.src.discover.com/websdk/dgnSS-SDK-0.0.1.js\",\r\n\r\n opusSandoxSdkUrl: \"https://webapp.sandbox.src.discover.com/websdk/dgnSS-SDK-0.0.1.js\",\r\n opusStagingSdkUrl: \"https://staging.src.zeussandbox.com/websdk/dgnSS-SDK-0.0.1.js\"\r\n}\r\n\r\n\r\nexport const argusCertJWTKey = {\r\n \"keys\": [\r\n {\r\n \"alg\": \"RS256\",\r\n \"key_ops\": [\r\n \"verify\"\r\n ],\r\n \"kid\": \"l0FLVrGqR7QEDPMv4jqITP8WLYShrppGpY-1s5aFVq4\",\r\n \"kty\": \"RSA\",\r\n \"use\": \"sig\",\r\n \"x5c\": [\r\n \"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\"\r\n ],\r\n \"x5t#S256\": \"wxNB27sq3j2LLajheESdGTclmO7YQ1cQsKPTuqApSPQ\",\r\n \"n\": \"224KH9PnElDfKvamLyi-53kTM_Dlh4-WlxMu6JTJt-0HUvCFu_ek6kWVQ5W-fa26jslges7EjJbgrZZPqykOgzYf2vwsBIKhGkjdjqbyK3a8LX2hAWuFwoCLz6F2aFzlEsalAzpZEiMZkuPpFwVdozfRddy7Mt-G3NKWJBapMwSqwGCgNTLlgOghUR9MQdIbCWuMArtUN0ursX1-6xKnffUXh3bH9YHeMOWS1fIaZZ14kcRA6JszQYQb8cxEFeqQMMN7TeJeSxcrC_4__Q2udbdNl8IynQV7qvfH02iptOEtmf9b8NpmG0k6hGGoZWcKgfWJy28HChKz2ltDxAbAkQ\",\r\n \"e\": \"AQAB\"\r\n },\r\n {\r\n \"alg\": \"RS256\",\r\n \"key_ops\": [\r\n \"verify\"\r\n ],\r\n \"kid\": \"IVHFrb-B8IHRdkQBM4RhN6Kh7qUP4w32r0Xj7cOmw2o\",\r\n \"kty\": \"RSA\",\r\n \"use\": \"sig\",\r\n \"x5c\": [\r\n \"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\"\r\n ],\r\n \"x5t#S256\": \"Yfi5bKeIaIPHIzhIT5TRK9IesS1jMfKunZsWqIbUraw\",\r\n \"n\": \"vJxllYOal8M2Rt0IWOei2FwzJthCWNjXXPUWU17Yy1_0cUfnYNACHmF7ebavCnxvFPcYGMrk0w9fqrtt0STLxNZI7kfIMCFtCXtoEaaAorH0Hqb42GeuU2-9ziFCxhNVgBZGbP2LFKBsdQ7lY5OHdD7tMS1N9jyALWkuUi50DXIDNz5rO2dPoCepuV1zW1bpUl2l8bR4EGWG_WBbkVpfaw1Bv8cou8_0-QdxwcSGRterQVwPoLePrh2YsSL9BqeoAvpX2pHnR7huyq72r52YDJ_0yMUkY4nVW4VuND16tVYh8Bpe_RFwHwRMhwa6LbkjxzgIxEyunlesQ29bZtEc9Q\",\r\n \"e\": \"AQAB\"\r\n },\r\n {\r\n \"alg\": \"RSA-OAEP-256\",\r\n \"key_ops\": [\r\n \"encrypt\"\r\n ],\r\n \"kid\": \"bg3jIBm-E6NuOJL4XYKCNHoPQNwDS9DLa3CssRrLBcA\",\r\n \"kty\": \"RSA\",\r\n \"use\": \"enc\",\r\n \"x5c\": [\r\n \"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\"\r\n ],\r\n \"x5t#S256\": \"GTnZWt_33qywExdTp36NoTQepjNXxV7UluwcDg1-XZA\",\r\n \"n\": \"z7VXyHyDOJzPjUmsBa0Fwry4HeJs5AkMwXaI5XRdnA2Uj-Pm1WaLb5BFxfmoSaXi7MSnnUZqd2o_PUYq43CmopVcNj-HoWWDsA1STQ3eCz35SK0WR09UZee2j5tkhnQPYcJ-oymTDJdYwXh_5UY5BoXHhqmDsipahplzBlbr4uGS52VQogwjKUP9K1jOhahKKCev7-gtCwXJIevIPxc8LKhhRzkZ1NoQTkwvVWZwabQfprOtvYFnFHpKXNgG7h1b8HQ4jDEnBMH7auAFbfP50mrJSlrzxaLutwVM7fQ-ldHh4QcmQIfWwdcTkMhL8ZqLUO9g7tI3K0euwfiE32dElQ\",\r\n \"e\": \"AQAB\"\r\n }\r\n ]\r\n}\r\n\r\nexport const testJWTKey = {\r\n \"keys\": [\r\n {\r\n \"kty\": \"RSA\",\r\n \"n\": \"rT6BVRlKUm3-hHvVVlyxi8h4GcDi47dvM4syk3653d6_-giIuEL8svLFlXnKk1nR6BPrYngeS4C9pov56L3xWTEVtyOIG4nMQlR8TpYTSMq8eBUDbRZSobsFU-EK7eU0ueHZTJg6WI1lbShVZjjhPFvEqu3ws4WShKm_15XHItTRJt9OPJlbbP3NXq01kSz9V3ZomY4UwDeBLWniliIn6zZDA3GYnsEKD_PefOxo33yXlTorJTUd259qAyvSr-6PX7fmUiSZS-d7NvxoJ72d0bPkTLyi9EDLUGtBvVdgIIZXwNIbpkqc4Z3CHad_T2GVvDSJXZgu8iFXaLnGxmboKw\",\r\n \"e\": \"AQAB\",\r\n \"key_ops\": [\r\n \"verify\"\r\n ],\r\n \"kid\": \"NGU1YWNiNzYwMTc5ZTc0ZWI3ODkzOWI2NzljODQyZjZiMzJiZWY1ODIyZmM0YzJjMmY5Y2NkMTgzYTg3NGU3YQo\",\r\n \"use\": \"sig\",\r\n \"alg\": \"RS256\"\r\n },\r\n {\r\n \"kty\": \"RSA\",\r\n \"n\": \"m1LUz6J0v8byWKoLnFk5iN0CPNAjXzIajDuvL57RrWMK0Xzd_KVpSoZsqTXi1TVAGm0S2F7ypwbxgxQTuGfVEgLit8Dhg8n9ctkjCCJnFfzkzFkNUaoIIVM3mZ1tE4ozimaHgrfFcVx9UUuODQo1n9HydkHwH5IFPGhaoChSZvNP4g1Yk0W5aIRxuGeEkknm7UnUTpsAS7h38GDnypxzhXkM876dR2WK1nUVwRqxwAO80tNlMupGlzofZ0Y205V788XaAlrZqtcEAx2r6EMFAs-6GjX58RVZbGCqqYACZRgBLlySgaKyQ2I4Jbdy0I9N9F75Fu1bfXSDdfoewyj1BQ\",\r\n \"e\": \"AQAB\",\r\n \"key_ops\": [\r\n \"encrypt\"\r\n ],\r\n \"kid\": \"NTdkMDA1YTVjM2UyOTkzMmFiZDdmMWE0Y2IyZGE4NTMyNmNjNTVmZDM1ZGRkMDE0NmFjN2FiYzgyYjc4OWQ1Nao\",\r\n \"use\": \"enc\",\r\n \"alg\": \"RSA-OAEP-256\"\r\n },\r\n {\r\n \"kty\": \"RSA\",\r\n \"n\": \"rvckCkFt0M6WOiudMos-QEFHvNgPd8_89BARyXVdi4R44Sog797CPNVdfl5hAld9k-6Tohkf3q2c-pD4_VxWoMWKj0N_nxrCzco1cPj3TdB-Sga1OWj1T5toue1tMM0PeVsI9_xuARGXBcGEa7ZwoIF1ALqVzp_f5VUsb1-7-A5xD8-Hqvy2yJDEfPwV19I9Xz-AYdrb91yIeMXdm8VgFULuJyfIQ-4GcjW1rwOCb4MSW7_GO9rt_xfGuZpyilamC_bLVJ1GH7pXqTDkJFw4fyOmGyan14xDJaXvDuiIJx0N6lvUwH778k4fF5kE9eLpCMF23uLpMRE7s9whl8HLKw\",\r\n \"e\": \"AQAB\",\r\n \"key_ops\": [\r\n \"verify\"\r\n ],\r\n \"kid\": \"NTAwZDU5MzFkMjMwMDdmODJiNjdkMzgwMGE4ZmU0ZDg4OTYxNWZlZjc0YTdhOGMyMzgzOGYzNDE1MDUxZWVmYgo\",\r\n \"use\": \"sig\",\r\n \"alg\": \"RS256\"\r\n }\r\n ]\r\n\r\n}\r\n\r\n\r\nexport const argusQAJWTKey = {\r\n \"keys\": [\r\n {\r\n \"alg\": \"RS256\",\r\n \"key_ops\": [\r\n \"verify\"\r\n ],\r\n \"kid\": \"pal3u4mscpnFjqZIPgStdTvS_ArqUXfom5qLCkn1QvY\",\r\n \"kty\": \"RSA\",\r\n \"use\": \"sig\",\r\n \"x5c\": [\r\n \"MIIDfjCCAmagAwIBAgIDAQD/MA0GCSqGSIb3DQEBCwUAMG0xCzAJBgNVBAYTAlVTMR4wHAYDVQQKDBVPYmVydGh1ciBUZWNobm9sb2dpZXMxHzAdBgNVBAsMFk9iZXJ0aHVyIFRydXN0IE5ldHdvcmsxHTAbBgNVBAMMFEludGVybmFsIFNTTCBST09UIENBMB4XDTE5MDYxOTIwMDIxNloXDTI0MDYxNzIwMDIxNlowKDEmMCQGA1UEAwwdSURFTUlBIERGUyBTUkMgUUEgLSBTaWduYXR1cmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDL0FoZeM2RpqnTEoaM+bURUuYbs14VfAwUTJLOc3SaLpHF2Wfpj3gqPmcBnrjgMkH+cAOn80PCvW6oQBYyF/tcUXLGicwaohwYZTtMoBNyhFKOeIeE+A+1zTAuLa3nJ5/fb9EDZEKQ7ak4Y/kP9b4CEh/Hq0XXcHf8mQOVxVBQpGj9YJzO6IiPfB5kPijkkRmx0PeN9gWzPSvgJ4hWk7SDhdIzf1v4bbcTPSss2Vz6/gcJOqniW19G31WNKchYz1a1fTi+p6OcFKJyhUF5pYT9zkWX1eSdivC1U7vYOluYYdXZd1FCQdxgw7V2JdjuU50awNdj+gYqMqdtrlPvj9LtAgMBAAGjbDBqMAkGA1UdEwQCMAAwHQYDVR0OBBYEFBTuj/E+9KROi8eGkaRNiH4+hIyrMB8GA1UdIwQYMBaAFAVOjC1qT+r9Tujqiu5yH9c4as3lMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAL9gQCj1itdgHaY696Em6k3WjJN/K5gBMVJYP9u5q6b7ANvHLoN5bttTPKrBnLRHinpIrSgTBZEEYnJ9xW7+gIl5v1xBTfSdhefakwQE5D1TT/73Zex+MCkM9ll1kn+0bIkjIt0aWQXw1gUvSRS4/E0+9QohY1pLTm++IfwmRykOnD5mFlYgRzF8JiXHjODZwfh/JzvxMx19CxCMM3xNDTwev132BynXJsB3b5xVTk1Voypqib7zLVntwF2Y8VEA85uDYyKi8uQqwUL4vBuRW/edbefLp3BEoX+gxH0WbhcELR7LqX1Jsb6fHYrM/Kc9WZuS8EMrj1Whf1VYcv+KlgA==\"\r\n ],\r\n \"x5t#S256\": \"oXsdGr8fEntDN7zHcRTPlszOtqdcDB_9Sn85_allIoU\",\r\n \"n\": \"y9BaGXjNkaap0xKGjPm1EVLmG7NeFXwMFEySznN0mi6Rxdln6Y94Kj5nAZ644DJB_nADp_NDwr1uqEAWMhf7XFFyxonMGqIcGGU7TKATcoRSjniHhPgPtc0wLi2t5yef32_RA2RCkO2pOGP5D_W-AhIfx6tF13B3_JkDlcVQUKRo_WCczuiIj3weZD4o5JEZsdD3jfYFsz0r4CeIVpO0g4XSM39b-G23Ez0rLNlc-v4HCTqp4ltfRt9VjSnIWM9WtX04vqejnBSicoVBeaWE_c5Fl9XknYrwtVO72DpbmGHV2XdRQkHcYMO1diXY7lOdGsDXY_oGKjKnba5T74_S7Q\",\r\n \"e\": \"AQAB\"\r\n },\r\n {\r\n \"alg\": \"RSA-OAEP-256\",\r\n \"key_ops\": [\r\n \"encrypt\"\r\n ],\r\n \"kid\": \"kHxSRwIpBYdhz-LL9ziT4pTw3T4PqEQG7_cEffANc_Q\",\r\n \"kty\": \"RSA\",\r\n \"use\": \"enc\",\r\n \"x5c\": [\r\n \"MIIDfzCCAmegAwIBAgIDAQD+MA0GCSqGSIb3DQEBCwUAMG0xCzAJBgNVBAYTAlVTMR4wHAYDVQQKDBVPYmVydGh1ciBUZWNobm9sb2dpZXMxHzAdBgNVBAsMFk9iZXJ0aHVyIFRydXN0IE5ldHdvcmsxHTAbBgNVBAMMFEludGVybmFsIFNTTCBST09UIENBMB4XDTE5MDYxOTIwMDIwOVoXDTI0MDYxNzIwMDIwOVowKTEnMCUGA1UEAwweSURFTUlBIERGUyBTUkMgUUEgLSBFbmNyeXB0aW9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuSfUJN212ixFqi/h/NiH/nUIzb07FqNg5AnaCfFQ3NMM0s1x6K5DG3bdvcNp2x+0QZO+hsuKfFJro2ThtXWKKlrHBAN/uhhMCKkXVe6sHC8TCD12tkWE+tgQ1ygr4p2K2tNGhmxB8yxT4R0BvQPNc23xqQAPzRDPg7WBnYTdDl1zWB9Ml/hL1lkN7y9e/4JikBTFClm3cSWRwzi0VZD2zPzqchQhIq7v0vhoTUFzQe3nPpc4ieFkZ6IVDBleZl3Yc4g1SooyIwsP4pdPfKZGcaeCJ/r8A5Lchr5Qu2n4CGiO87R6ZgveTEY5JWUDzG4+YuXOxr7dzCKqRJXn54bYgQIDAQABo2wwajAJBgNVHRMEAjAAMB0GA1UdDgQWBBQ4bagjTSYO0h/X3TUWBAaJP9UIAjAfBgNVHSMEGDAWgBQFTowtak/q/U7o6oruch/XOGrN5TAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAETC93cT2Q18u89ayKrJGDr3xALBXlnqMwPFKuutVla5VLfjAmvAaRscvlEVW8sIna259FYr0xIjGjvhzDTxxkt5BCGif2zp0Nc1YmJA+I4/VTRYN0xp3xRHmpP26ScAagt+ixCmPPxPIUD0YNp9am5jwi1qHLVLbqoBs8uWA3vGOy9j/zieiBD+7DPhQS8QoxaXR7mfFk94L+kReHMfjzNsQEmigSJ+7yUJPzTVj31V2LB8WxKnpZHjrXdEG+3olXf/gUQw+NEPjZDOsT6jvgcwQqrSmzjxBPAa1W6+w1vYSKETvh9bf8uKwZL05BQacHXvQ4d3vG8znBjoOt6WqWo=\"\r\n ],\r\n \"x5t#S256\": \"12yEgPGnbDE4BqKkgYSNEjb8oDH0MiR3g9uTGWDCxEs\",\r\n \"n\": \"uSfUJN212ixFqi_h_NiH_nUIzb07FqNg5AnaCfFQ3NMM0s1x6K5DG3bdvcNp2x-0QZO-hsuKfFJro2ThtXWKKlrHBAN_uhhMCKkXVe6sHC8TCD12tkWE-tgQ1ygr4p2K2tNGhmxB8yxT4R0BvQPNc23xqQAPzRDPg7WBnYTdDl1zWB9Ml_hL1lkN7y9e_4JikBTFClm3cSWRwzi0VZD2zPzqchQhIq7v0vhoTUFzQe3nPpc4ieFkZ6IVDBleZl3Yc4g1SooyIwsP4pdPfKZGcaeCJ_r8A5Lchr5Qu2n4CGiO87R6ZgveTEY5JWUDzG4-YuXOxr7dzCKqRJXn54bYgQ\",\r\n \"e\": \"AQAB\"\r\n },\r\n {\r\n \"alg\": \"RS256\",\r\n \"key_ops\": [\r\n \"verify\"\r\n ],\r\n \"kid\": \"bpMaP-YsCOvcNuKA3REOxEAZ-jm3gV8Twtxe3f5b1cs\",\r\n \"kty\": \"RSA\",\r\n \"use\": \"sig\",\r\n \"x5c\": [\r\n \"MIICpjCCAY6gAwIBAgIEXp7gdzANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDDApyc2EgcHVibGljMB4XDTIwMDQyMTEyMDA1NVoXDTIxMDQyMTEyMDA1NVowFTETMBEGA1UEAwwKcnNhIHB1YmxpYzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMMqNZuH1bohQKJtWOC2J5diFPjmjA6fLmE+Ao7oX8O7irKaDIo16Roswstd9HExAiiadx0eceTCXSAWIzDTUphPye6Jqm5H7a5v34SJMmUtQ6j10Xxfy/mY1NYFkBIYbtcshS9lJ556M2rNVOS+Wvy+hUFw4XyPA1DTpUtve3g7TKceb0S61y5MeGPJKrKhrLPkKjU5GHxgEx1mfyNaXppSD8Lqj/HRw8e7tv/RrKVkD3K/L7TULOFrQ3RwedHavYBN21y5CYA2jQLenL3D1PZxnJLxTLJLNEyaWh/soJ2wGEG9ixdfLg6dDA12bVJVbEKJOP6gYmkzWewrxN3numcCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAi2TRzDhaZdBZi6TNkFXji0fEYdEbRQQeSlVDKT7gVsuwSMajJd19Ze1Ziw27twOQ6zr4zNfL5LbFykMuze/PtnrMNmzeKtEpntGwMbVdl6d6COyI86WFdnJVdieV4a3N2cIAeZrWIgB7mwJcVRtsTuLY64XpU0BkZdo+is+W7fxk4EVamsAOjFTig5aE1bam6uAAd74RjyXuoE01CZHMOuBCFjBldTbmsopnrXpsOiUDxnbA5URsBXVF0bRCNweRHfnU3ns97lyKCKeE0+mP+FPfiSAqe6MX9RoqAEB3ZyRvkuWegBPVg1E80osXfmWfVBm72pEGS4DauV3AxcTxLA==\"\r\n ],\r\n \"x5t#S256\": \"APq4wqx1l-0908P51bl8mmzGNen8u5xYyZ4QOybmk38\",\r\n \"n\": \"wyo1m4fVuiFAom1Y4LYnl2IU-OaMDp8uYT4Cjuhfw7uKspoMijXpGizCy130cTECKJp3HR5x5MJdIBYjMNNSmE_J7omqbkftrm_fhIkyZS1DqPXRfF_L-ZjU1gWQEhhu1yyFL2Unnnozas1U5L5a_L6FQXDhfI8DUNOlS297eDtMpx5vRLrXLkx4Y8kqsqGss-QqNTkYfGATHWZ_I1pemlIPwuqP8dHDx7u2_9GspWQPcr8vtNQs4WtDdHB50dq9gE3bXLkJgDaNAt6cvcPU9nGckvFMsks0TJpaH-ygnbAYQb2LF18uDp0MDXZtUlVsQok4_qBiaTNZ7CvE3ee6Zw\",\r\n \"e\": \"AQAB\"\r\n }\r\n ]\r\n}\r\n\r\n\r\n\r\nexport const opusSandboxJWTKey = {\r\n \"keys\": [\r\n {\r\n \"kty\": \"RSA\",\r\n \"n\": \"rT6BVRlKUm3-hHvVVlyxi8h4GcDi47dvM4syk3653d6_-giIuEL8svLFlXnKk1nR6BPrYngeS4C9pov56L3xWTEVtyOIG4nMQlR8TpYTSMq8eBUDbRZSobsFU-EK7eU0ueHZTJg6WI1lbShVZjjhPFvEqu3ws4WShKm_15XHItTRJt9OPJlbbP3NXq01kSz9V3ZomY4UwDeBLWniliIn6zZDA3GYnsEKD_PefOxo33yXlTorJTUd259qAyvSr-6PX7fmUiSZS-d7NvxoJ72d0bPkTLyi9EDLUGtBvVdgIIZXwNIbpkqc4Z3CHad_T2GVvDSJXZgu8iFXaLnGxmboKw\",\r\n \"e\": \"AQAB\",\r\n \"key_ops\": [\r\n \"verify\"\r\n ],\r\n \"kid\": \"NGU1YWNiNzYwMTc5ZTc0ZWI3ODkzOWI2NzljODQyZjZiMzJiZWY1ODIyZmM0YzJjMmY5Y2NkMTgzYTg3NGU3YQo\",\r\n \"use\": \"sig\",\r\n \"alg\": \"RS256\"\r\n },\r\n {\r\n \"kty\": \"RSA\",\r\n \"n\": \"m1LUz6J0v8byWKoLnFk5iN0CPNAjXzIajDuvL57RrWMK0Xzd_KVpSoZsqTXi1TVAGm0S2F7ypwbxgxQTuGfVEgLit8Dhg8n9ctkjCCJnFfzkzFkNUaoIIVM3mZ1tE4ozimaHgrfFcVx9UUuODQo1n9HydkHwH5IFPGhaoChSZvNP4g1Yk0W5aIRxuGeEkknm7UnUTpsAS7h38GDnypxzhXkM876dR2WK1nUVwRqxwAO80tNlMupGlzofZ0Y205V788XaAlrZqtcEAx2r6EMFAs-6GjX58RVZbGCqqYACZRgBLlySgaKyQ2I4Jbdy0I9N9F75Fu1bfXSDdfoewyj1BQ\",\r\n \"e\": \"AQAB\",\r\n \"key_ops\": [\r\n \"encrypt\"\r\n ],\r\n \"kid\": \"NTdkMDA1YTVjM2UyOTkzMmFiZDdmMWE0Y2IyZGE4NTMyNmNjNTVmZDM1ZGRkMDE0NmFjN2FiYzgyYjc4OWQ1Nao\",\r\n \"use\": \"enc\",\r\n \"alg\": \"RSA-OAEP-256\"\r\n },\r\n {\r\n \"kty\": \"RSA\",\r\n \"n\": \"rvckCkFt0M6WOiudMos-QEFHvNgPd8_89BARyXVdi4R44Sog797CPNVdfl5hAld9k-6Tohkf3q2c-pD4_VxWoMWKj0N_nxrCzco1cPj3TdB-Sga1OWj1T5toue1tMM0PeVsI9_xuARGXBcGEa7ZwoIF1ALqVzp_f5VUsb1-7-A5xD8-Hqvy2yJDEfPwV19I9Xz-AYdrb91yIeMXdm8VgFULuJyfIQ-4GcjW1rwOCb4MSW7_GO9rt_xfGuZpyilamC_bLVJ1GH7pXqTDkJFw4fyOmGyan14xDJaXvDuiIJx0N6lvUwH778k4fF5kE9eLpCMF23uLpMRE7s9whl8HLKw\",\r\n \"e\": \"AQAB\",\r\n \"key_ops\": [\r\n \"verify\"\r\n ],\r\n \"kid\": \"NTAwZDU5MzFkMjMwMDdmODJiNjdkMzgwMGE4ZmU0ZDg4OTYxNWZlZjc0YTdhOGMyMzgzOGYzNDE1MDUxZWVmYgo\",\r\n \"use\": \"sig\",\r\n \"alg\": \"RS256\"\r\n }\r\n ]\r\n\r\n}\r\n\r\n\r\n\r\nexport const opusStagingJWTKey = {\r\n \"keys\": [\r\n {\r\n \"alg\": \"RS256\",\r\n \"key_ops\": [\r\n \"verify\"\r\n ],\r\n \"kid\": \"EzE702zppywWjNkl6pDQ3Pec49O4ScE339BwcA32pGE\",\r\n \"kty\": \"RSA\",\r\n \"use\": \"sig\",\r\n \"x5c\": [\r\n \"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\"\r\n ],\r\n \"x5t#S256\": \"UIuCTwMfzt9qT9eYcMrHny5S3-ZtE8NWD5XGGwb7OOI\",\r\n \"n\": \"ouHQNInnfdl7lTdEQluNg-AEbJLIguZmMDuHAVzh0OGZlc0F7WzXmR1QNyHVOmjE0cMPqvMkh9_RqPWiDcp6Px0qyJ_B2Vtywx-JE4YinFg1b_Ecep_uIRIFshJuJpOYV4pjDfwwOpKm3sDbjvhvoi1jqpCY-qH05mzhn9oK57xrkB95VP-98mn7FV5jUaI1CmZM5JkdvFmd4mcBAQN-Y4tytbvK7ZA2G5Kne4BOsPGTtJyyaYp-o6ZpcsLlDnW2NT-o9kOI4iuSm_M4ea4Yli4fSBl25rCfhh9oiX97cUoHGnWFPm66wD3FCF9hLoCWyRzOPW0Ngdeu6IgwCTdH-Q\",\r\n \"e\": \"AQAB\"\r\n },\r\n {\r\n \"alg\": \"RS256\",\r\n \"key_ops\": [\r\n \"verify\"\r\n ],\r\n \"kid\": \"38r9i0xf7lJokZv5miN_ivQkNZ8x4-SwyKLr7hFTE1Q\",\r\n \"kty\": \"RSA\",\r\n \"use\": \"sig\",\r\n \"x5c\": [\r\n \"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\"\r\n ],\r\n \"x5t#S256\": \"SDGzwylYy70gLHdLTm5QyA2x-EwhOt9ZVJDbX2lTfz4\",\r\n \"n\": \"zijxB1pcg4EoXng45Xtu-CSX7HzrlJovHofNic-1l-S6V9yyfuq5upamLmfXW1gH4QLlxHQjGyXfUHNxWR8hrs_3h2d2_HAFdADTrPLBMR9_hzQDXhb75ZJJls7fMm0UiqL1ROBOkN9LtklKWzDgEVw7KHEHaiLGazwv6Wkz9YcjD9FBSpzPHZ1KdsMoTEQ0xowGwyaG6syyrEdluCjoQqpN0ka5UQVQrasOOm2GSLGFECUZ0M2XwCCY9QqJ1mg1lPCqIQUOmxedwyvhMe_CTlqRQbFNaHxZfL1Rlb7bECE7YmmqXcsMkN-i0qVt4wl0cNujBtvrv-dAKad2wmbqcQ\",\r\n \"e\": \"AQAB\"\r\n },\r\n {\r\n \"alg\": \"RSA-OAEP-256\",\r\n \"key_ops\": [\r\n \"encrypt\"\r\n ],\r\n \"kid\": \"MWYwY2NmMjM1YzJlYzcwZDQ4YzkzMzE3Njg3YzU3MjBjYjUyZTAxMGNjYmE5MGUzODFmNWE5YzEyNmUxOTA0Ywo\",\r\n \"kty\": \"RSA\",\r\n \"use\": \"enc\",\r\n \"n\": \"tYAInLOG1Wqb6D54_ebzmZlGU4NYEvpME4iVWDYCBZBEm2zwS_57b5pViN329s3OrrwQpbk2Xo4g7fmC8KurkaoEmz_RyJTHZ1kAbR_0x_VwEs8LnCThOU3I4TbgZ0On5ctONaXvrQ9JAanKdeZ35j3w4UFb8hOxzHh_Tu2GYsDnlmzmaH_vrarTElXfyaQjAqP5vU_fJuGC_OnJkbgVsVOAng4IJq_mihB2rY-RdUiscCksNLsI_hjKoPNK3vZxgkpNXMyd_n04suLq288jJDGJJcSPYHZ081j1Tvbw2EqU5lerPrejeGEjXXJ-ud5WmPKelAstxTwPfaasn1C2XQ\",\r\n \"e\": \"AQAB\"\r\n }\r\n ]\r\n}\r\n\r\nexport const tempKey = {\r\n \"alg\": \"RSA-OAEP-256\",\r\n \"key_ops\": [\r\n \"encrypt\"\r\n ],\r\n \"kid\": \"MWYwY2NmMjM1YzJlYzcwZDQ4YzkzMzE3Njg3YzU3MjBjYjUyZTAxMGNjYmE5MGUzODFmNWE5YzEyNmUxOTA0Ywo\",\r\n \"kty\": \"RSA\",\r\n \"use\": \"enc\",\r\n \"n\": \"tYAInLOG1Wqb6D54_ebzmZlGU4NYEvpME4iVWDYCBZBEm2zwS_57b5pViN329s3OrrwQpbk2Xo4g7fmC8KurkaoEmz_RyJTHZ1kAbR_0x_VwEs8LnCThOU3I4TbgZ0On5ctONaXvrQ9JAanKdeZ35j3w4UFb8hOxzHh_Tu2GYsDnlmzmaH_vrarTElXfyaQjAqP5vU_fJuGC_OnJkbgVsVOAng4IJq_mihB2rY-RdUiscCksNLsI_hjKoPNK3vZxgkpNXMyd_n04suLq288jJDGJJcSPYHZ081j1Tvbw2EqU5lerPrejeGEjXXJ-ud5WmPKelAstxTwPfaasn1C2XQ\",\r\n \"e\": \"AQAB\"\r\n};\r\n","export const MERCHANT_NAME = \"MERCHANT_NAME\";\r\nexport const LOADER_STATE = \"LOADER_STATE\";\r\nexport const ID_TOKENS = \"ID_TOKENS\";\r\nexport const SRC_CORRELATION_ID = \"SRC_CORRELATION_ID\";\r\nexport const CARD_LIST = \"CARD_LIST\";\r\nexport const DPA_ID = \"DPA_ID\";\r\nexport const DATA_PARAMS = \"DATA_PARAMS\";\r\nexport const SRC_CLIENT_ID = \"SRC_CLIENT_ID\";\r\nexport const ENVIRONMENT = \"ENVIRONMENT\";\r\nexport const JWT_TOKEN = \"JWT_TOKEN\";\r\nexport const IRA_LOGS = \"IRA_LOGS\";\r\nexport const DCF_URL = \"DCF_URL\";\r\nexport const CURRENT_TRANSACTION_LOGS = \"CURRENT_TRANSACTION_LOGS\";\r\nexport const SERVER_TO_SERVER_API = \"SERVER_TO_SERVER_API\";\r\nexport const SELECTED_ENVIRONMENTS = \"SELECTED_ENVIRONMENTS\"; \r\nexport const USER_DETAILS = \"USER_DETAILS\"; \r\n\r\nexport function merchantName(data) {\r\n return {\r\n type: MERCHANT_NAME,\r\n data\r\n };\r\n}\r\nexport function loaderState(data) {\r\n return {\r\n type: LOADER_STATE,\r\n data\r\n };\r\n}\r\n\r\nexport function idTokens(data) {\r\n return {\r\n type: ID_TOKENS,\r\n data\r\n };\r\n}\r\n\r\nexport function srcCorrelationId(data) {\r\n return {\r\n type: SRC_CORRELATION_ID,\r\n data\r\n };\r\n}\r\n\r\nexport function cardList(data) {\r\n return {\r\n type: CARD_LIST,\r\n data\r\n };\r\n}\r\n\r\nexport function dpaID(data) {\r\n return {\r\n type: DPA_ID,\r\n data\r\n };\r\n}\r\n\r\nexport function dataParams(data) {\r\n return {\r\n type: DATA_PARAMS,\r\n data\r\n };\r\n}\r\n\r\nexport function clientID(data) {\r\n return {\r\n type: SRC_CLIENT_ID,\r\n data\r\n };\r\n}\r\n\r\nexport function environment(data) {\r\n return {\r\n type: ENVIRONMENT,\r\n data\r\n };\r\n}\r\n\r\nexport function jwtToken(data) {\r\n return {\r\n type: JWT_TOKEN,\r\n data\r\n };\r\n}\r\n\r\nexport function IRALogs(data) {\r\n return {\r\n type: IRA_LOGS,\r\n data\r\n };\r\n}\r\n\r\nexport function DCFUrl(data) {\r\n return {\r\n type: DCF_URL,\r\n data\r\n };\r\n}\r\n\r\nexport function CurrentTransactionLogs(data) {\r\n return {\r\n type: CURRENT_TRANSACTION_LOGS,\r\n data\r\n };\r\n}\r\n\r\nexport function ServerToServerAPI(data) {\r\n return {\r\n type: SERVER_TO_SERVER_API,\r\n data\r\n };\r\n}\r\n\r\nexport function selectedEnvironments(data) {\r\n return {\r\n type: SELECTED_ENVIRONMENTS,\r\n data\r\n };\r\n}\r\n\r\nexport function userDetails(data) {\r\n return {\r\n type: USER_DETAILS,\r\n data\r\n };\r\n}","class EnvironWrapper {\r\n\r\n set selectedEnvs(envs) {\r\n this._selectedEnvs = envs;\r\n };\r\n\r\n get selectedEnvs() {\r\n return this._selectedEnvs;\r\n };\r\n\r\n constructor() {\r\n this.table = {};\r\n }\r\n\r\n addEnviron(name, url, callback) {\r\n var envs = [];\r\n\r\n if (this.selectedEnvs != null) {\r\n envs = this.selectedEnvs;\r\n }\r\n\r\n if (!envs.includes(name)) {\r\n envs.push(name);\r\n this.selectedEnvs = envs;\r\n }\r\n\r\n const script = document.createElement(\"script\");\r\n script.src = url;\r\n script.id = url;\r\n script.async = true;\r\n document.body.appendChild(script);\r\n script.onload = () => {\r\n this.setSDKObject(name, window.DGNCheckout)\r\n if (callback)\r\n callback();\r\n };\r\n }\r\n\r\n isEnvironLoaded(name) {\r\n return this.table[name] != null;\r\n }\r\n\r\n setSDKObject(key, value) {\r\n if (key != null && value != null) {\r\n this.table[key] = value;\r\n console.log(\"value is set\");\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n removeSDKobject(name) {\r\n if (this.isEnvironLoaded(name)) {\r\n delete (this.table[name]);\r\n\r\n if (this.selectedEnvs != null) {\r\n var index = this.selectedEnvs.indexOf(name);\r\n if (index > -1) {\r\n this.selectedEnvs.splice(index, 1)\r\n }\r\n }\r\n console.log(\"value removed\");\r\n }\r\n }\r\n\r\n getSDKObject(name) {\r\n if (this.isEnvironLoaded(name)) {\r\n console.log(\"value found\");\r\n return this.table[name];\r\n }\r\n else {\r\n console.log(\"value not found\");\r\n return null;\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default new EnvironWrapper();\r\n\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport React, { Component, useState } from \"react\";\r\nimport Pagination from \"react-js-pagination\";\r\nimport {\r\n Container,\r\n Row,\r\n Col,\r\n Form,\r\n FormControl,\r\n Grid,\r\n Button,\r\n} from \"react-bootstrap\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faArrowDown,\r\n faCaretRight,\r\n faCaretDown,\r\n faAngleUp,\r\n faAngleDoubleRight,\r\n faQuestionCircle,\r\n faHeadset,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\nimport $ from \"jquery\";\r\nimport toggle from \"jquery\";\r\nimport IRAController from \"../Controllers/IRAController\";\r\nimport { store } from \"../redux/store\";\r\nimport {\r\n loaderState,\r\n idTokens,\r\n CurrentTransactionLogs,\r\n} from \"../redux/actions/Action\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport { ToastContainer, toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\nvar pgNumber = 1;\r\nvar transactionLogs = [];\r\n\r\n$.fn.extend({\r\n treed: function (o) {\r\n var openedClass = \"glyphicon-minus-sign\";\r\n var closedClass = \"glyphicon-plus-sign\";\r\n\r\n if (typeof o != \"undefined\") {\r\n if (typeof o.openedClass != \"undefined\") {\r\n openedClass = o.openedClass;\r\n }\r\n if (typeof o.closedClass != \"undefined\") {\r\n closedClass = o.closedClass;\r\n }\r\n }\r\n\r\n //initialize each of the top levels\r\n var tree = $(this);\r\n tree.addClass(\"LogTree\");\r\n tree\r\n .find(\"li\")\r\n .has(\"ul\")\r\n .each(function () {\r\n var branch = $(this); //li with children ul\r\n branch.prepend(\r\n \"\"\r\n );\r\n branch.addClass(\"branch\");\r\n branch.on(\"click\", function (e) {\r\n if (this == e.target) {\r\n var icon = $(this).children(\"i:first\");\r\n icon.toggleClass(openedClass + \" \" + closedClass);\r\n $(this).children().children().toggle();\r\n }\r\n });\r\n branch.children().children().toggle();\r\n });\r\n //fire event from the dynamically added icon\r\n tree.find(\".branch .indicator\").each(function () {\r\n $(this).on(\"click\", function () {\r\n $(this).closest(\"li\").click();\r\n });\r\n });\r\n //fire event to open branch if the li contains an anchor instead of text\r\n tree.find(\".branch>a\").each(function () {\r\n $(this).on(\"click\", function (e) {\r\n $(this).closest(\"li\").click();\r\n e.preventDefault();\r\n });\r\n });\r\n },\r\n});\r\n\r\n$.fn.extend({\r\n lithosTransactionTreed: function (o) {\r\n var openedClass = \"glyphicon-minus-sign\";\r\n var closedClass = \"glyphicon-plus-sign\";\r\n\r\n if (typeof o != \"undefined\") {\r\n if (typeof o.openedClass != \"undefined\") {\r\n openedClass = o.openedClass;\r\n }\r\n if (typeof o.closedClass != \"undefined\") {\r\n closedClass = o.closedClass;\r\n }\r\n }\r\n\r\n //initialize each of the top levels\r\n var tree = $(this);\r\n tree.addClass(\"lithosTransaction\");\r\n tree\r\n .find(\"li\")\r\n .has(\"ul\")\r\n .each(function () {\r\n var branch = $(this); //li with children ul\r\n branch.prepend(\r\n \"\"\r\n );\r\n branch.addClass(\"ltBranch\");\r\n branch.on(\"click\", function (e) {\r\n if (this == e.target) {\r\n var icon = $(this).children(\"i:first\");\r\n icon.toggleClass(openedClass + \" \" + closedClass);\r\n $(this).children().children().toggle();\r\n }\r\n });\r\n branch.children().children().toggle();\r\n });\r\n //fire event from the dynamically added icon\r\n tree.find(\".ltBranch .LTindicator\").each(function () {\r\n $(this).on(\"click\", function () {\r\n $(this).closest(\"li\").click();\r\n });\r\n });\r\n //fire event to open branch if the li contains an anchor instead of text\r\n tree.find(\".ltBranch>a\").each(function () {\r\n $(this).on(\"click\", function (e) {\r\n $(this).closest(\"li\").click();\r\n e.preventDefault();\r\n });\r\n });\r\n },\r\n});\r\n\r\n$(\"#LogTree\").treed({\r\n openedClass: \"glyphicon-triangle-bottom\",\r\n closedClass: \"glyphicon-triangle-right\",\r\n});\r\n\r\n$(\"#LogTree\")\r\n .find(\"ul:has(li)\")\r\n .click(function (event) {\r\n if (this == event.target) {\r\n $(this).children(\"li\").toggle(\"medium\");\r\n }\r\n return false;\r\n })\r\n .addClass(\"collapsed\")\r\n .children(\"li\")\r\n .show();\r\n\r\nexport class LogWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n var sessionLogType = sessionStorage.getItem(\"logType\");\r\n this.state = {\r\n currentTransactionLog: true,\r\n entireLog: false,\r\n logs: [],\r\n lithosLogs: [],\r\n logCount: 0,\r\n lithosLogCount: 0,\r\n pageRangeDisplay: 0,\r\n activePage: 1,\r\n fromDate: \"\",\r\n toDate: \"\",\r\n logType: sessionLogType != \"\" ? sessionLogType : \"currentLogs\",\r\n intervalId: 0,\r\n thePosition: false,\r\n };\r\n this.transactionOnChange = this.transactionOnChange.bind(this);\r\n this.handleKeyPressInSearch = this.handleKeyPressInSearch.bind(this);\r\n this.handleEnterKeyPressInSearch = this.handleEnterKeyPressInSearch.bind(this);\r\n }\r\n\r\n getLogsBasedOnSelection = async () => {\r\n if (this.state.logType == \"currentLogs\") {\r\n return await this.fecthCurrentTransactionLogs();\r\n } else {\r\n this.fetchLogs();\r\n }\r\n };\r\n\r\n fecthCurrentTransactionLogs = async () => {\r\n $(\"#spinnerModal\").css(\"display\", \"block\");\r\n\r\n var storedLogs = store.getState().reducer.CurrentTransactionLogs;\r\n var storedLogsCount = storedLogs != null ? storedLogs.length : 0;\r\n\r\n await this.setState(\r\n { logs: transactionLogs, logCount: 50, pageRangeDisplay: 1 },\r\n () => {\r\n console.log(\"current transaction call back\");\r\n }\r\n );\r\n\r\n $(\"#search\").val(\"\");\r\n\r\n this.forceUpdate();\r\n\r\n transactionLogs = storedLogs;\r\n $(\"#spinnerModal\").css(\"display\", \"none\");\r\n return true;\r\n };\r\n\r\n switchFieldChanges = async (i, e) => {\r\n this.setState({ logType: i });\r\n\r\n this.setState({ logType: i }, () => {\r\n sessionStorage.setItem(\"logType\", i);\r\n this.getLogsBasedOnSelection();\r\n });\r\n\r\n let searchString = sessionStorage.getItem(\"searchString\");\r\n console.log(searchString);\r\n if (searchString != null) {\r\n $(\"#search\").val(searchString);\r\n }\r\n\r\n if (i == \"allLogs\") {\r\n $(\"#lithosTransaction\").lithosTransactionTreed({\r\n openedClass: \"glyphicon-triangle-bottom\",\r\n closedClass: \"glyphicon-triangle-right\",\r\n });\r\n }\r\n };\r\n\r\n handlePageChange = async (pageNumber) => {\r\n pgNumber = pageNumber;\r\n\r\n this.setState({ activePage: pgNumber }, () => {\r\n this.fetchLogs();\r\n });\r\n };\r\n\r\n componentDidMount = async () => {\r\n store.dispatch(loaderState(false));\r\n var isfetched = await this.getLogsBasedOnSelection();\r\n\r\n $(\"#search\").val(\"\");\r\n\r\n if (sessionStorage.getItem(\"searchString\") != null) {\r\n sessionStorage.setItem(\"searchString\", $(\"#search\").val());\r\n }\r\n\r\n window.addEventListener(\"scroll\", this.handeleScroll); // remove brackets ()\r\n };\r\n\r\n handeleScroll = () => {\r\n if (window.scrollY > 170) {\r\n $(\"#topBtn\").css(\"display\", \"block\");\r\n } else {\r\n $(\"#topBtn\").css(\"display\", \"none\");\r\n }\r\n };\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"scroll\", this.handeleScroll);\r\n }\r\n\r\n scrollToTop = () => {\r\n window.scrollTo({\r\n top: 0,\r\n behavior: \"smooth\",\r\n });\r\n };\r\n\r\n componentDidUpdate() {\r\n if (this.state.logType == \"currentLogs\") {\r\n $(\"#LogTree\").treed({\r\n openedClass: \"glyphicon-triangle-bottom\",\r\n closedClass: \"glyphicon-triangle-right\",\r\n });\r\n }\r\n }\r\n\r\n handleEnterKeyPressInSearch = async (event) => {\r\n if (event.key === \"Enter\") {\r\n this.handleKeyPressInSearch(event);\r\n }\r\n return;\r\n }\r\n\r\n handleKeyPressInSearch = async (event) => {\r\n console.log(event.target.value);\r\n sessionStorage.setItem(\"searchString\", event.target.value);\r\n\r\n if (event.key === \"Enter\") {\r\n this.searchLogs();\r\n }\r\n };\r\n\r\n searchLogs = async () => {\r\n var search = $(\"#search\").val();\r\n sessionStorage.setItem(\"searchString\", search);\r\n\r\n if (this.state.logType == \"currentLogs\") {\r\n var value = $(\"#search\").val().toLowerCase();\r\n\r\n if (value != \"\") {\r\n $(\"#LogTree #show\").filter(function () {\r\n $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1);\r\n });\r\n } else {\r\n await this.getLogsBasedOnSelection();\r\n }\r\n } else {\r\n this.fetchLogs();\r\n }\r\n };\r\n\r\n transactionOnChange = async () => {\r\n if (this.state.logType == \"currentLogs\") {\r\n $(\"#LogTree\").treed({\r\n openedClass: \"glyphicon-triangle-bottom\",\r\n closedClass: \"glyphicon-triangle-right\",\r\n });\r\n }\r\n };\r\n\r\n fetchLogs = async () => {\r\n $(\"#spinnerModal\").css(\"display\", \"block\");\r\n $(\"#lithosTransactionRow\").css(\"display\", \"none\");\r\n\r\n if (this.state.logType == \"currentLogs\") {\r\n this.setState({ logType: \"allLogs\" }, () => {\r\n sessionStorage.setItem(\"logType\", \"allLogs\");\r\n });\r\n }\r\n\r\n var search = \"\";\r\n if (sessionStorage.getItem(\"searchString\") != null) {\r\n search = sessionStorage.getItem(\"searchString\");\r\n } else {\r\n search = $(\"#search\").val();\r\n sessionStorage.setItem(\"searchString\", search);\r\n }\r\n\r\n var fetchedLogs = await IRAController.fetchLogs(search, pgNumber);\r\n\r\n //Initialization of treeviews\r\n $(\"#lithosTransaction\").lithosTransactionTreed({\r\n openedClass: \"glyphicon-triangle-bottom\",\r\n closedClass: \"glyphicon-triangle-right\",\r\n });\r\n\r\n if (fetchedLogs != null && fetchedLogs != \"\") {\r\n var logPageDisplayCount = 0;\r\n\r\n if (fetchedLogs.count > 0) {\r\n logPageDisplayCount = (fetchedLogs.count / 100).toFixed();\r\n logPageDisplayCount =\r\n logPageDisplayCount == 0\r\n ? logPageDisplayCount\r\n : logPageDisplayCount + 1;\r\n }\r\n\r\n this.setState({\r\n lithosLogs: fetchedLogs.logs,\r\n lithosLogCount: fetchedLogs.count,\r\n pageRangeDisplay: parseInt(logPageDisplayCount),\r\n });\r\n }\r\n\r\n //Initialization of treeviews\r\n $(\"#lithosTransaction\").lithosTransactionTreed({\r\n openedClass: \"glyphicon-triangle-bottom\",\r\n closedClass: \"glyphicon-triangle-right\",\r\n });\r\n\r\n $(\"#spinnerModal\").css(\"display\", \"none\");\r\n $(\"#lithosTransactionRow\").css(\"display\", \"block\");\r\n };\r\n\r\n render() {\r\n const notify = () => toast.success(CustomToastWithLink);\r\n const CustomToastWithLink = () => (\r\n
\r\n Please email your query to src.support@payhuddle.com\r\n
\r\n );\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n

SRCI API Collection

\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n Go\r\n \r\n \r\n
\r\n\r\n {this.state.logType != \"currentLogs\" ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \"\"\r\n )}\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n {this.state.logType == \"currentLogs\" ? (\r\n \r\n \r\n
    \r\n {this.state.logs != null && this.state.logs.length > 0 ? (\r\n this.state.logs.map((log, counter) => {\r\n return (\r\n
  • \r\n {log.time} \r\n\r\n \r\n {log.logType}\r\n \r\n \r\n {log.api}\r\n \r\n \r\n {log.id}\r\n \r\n \r\n {log.environment}\r\n \r\n\r\n
      \r\n
    • \r\n

      {\"{\"}

      \r\n
    • \r\n
    • \r\n Request {\r\n
        \r\n
      • \r\n \"Body :\"{log.request.body}\r\n
      • \r\n
      • \"Time :\"{log.request.time}
      • \r\n }\r\n
      \r\n
    • \r\n\r\n
    • \r\n Response {\r\n
        \r\n
      • \r\n {\" \"}\r\n \"Body :\"\r\n {log.response.body != null\r\n ? log.response.body\r\n : \"\"}\r\n ,\r\n
      • \r\n
      • \r\n \"Time: \"{\" \"}\r\n {log.response.time != null\r\n ? log.response.time\r\n : \"\"}\r\n
      • \r\n }\r\n
      \r\n
    • \r\n\r\n
    • }
    • \r\n
    \r\n
  • \r\n );\r\n })\r\n ) : (\r\n

    No Logs found

    \r\n )}\r\n
\r\n \r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n\r\n {this.state.logType == \"allLogs\" ? (\r\n \r\n \r\n
    \r\n {this.state.lithosLogs != null &&\r\n this.state.lithosLogs.length > 0 ? (\r\n this.state.lithosLogs.map((log, counter) => {\r\n return (\r\n
  • \r\n {log.time} \r\n {log.logType}\r\n \r\n {log.api}\r\n \r\n \r\n {log.id}\r\n \r\n \r\n {log.srcClientID}\r\n \r\n\r\n
      \r\n
    • \r\n

      {\"{\"}

      \r\n
    • \r\n
    • \r\n Request {\r\n
        \r\n
      • \r\n \"Body :\"{log.request.body}\r\n
      • \r\n
      • \"Time :\"{log.request.time}
      • \r\n }\r\n
      \r\n
    • \r\n\r\n
    • \r\n Response {\r\n
        \r\n
      • \r\n {\" \"}\r\n \"Body :\"\r\n {log.response.body != null\r\n ? log.response.body\r\n : \"\"}\r\n ,\r\n
      • \r\n
      • \r\n \"Time: \"{\" \"}\r\n {log.response.time != null\r\n ? log.response.time\r\n : \"\"}\r\n
      • \r\n }\r\n
      \r\n
    • \r\n\r\n
    • }
    • \r\n
    \r\n
  • \r\n );\r\n })\r\n ) : (\r\n

    No Logs found

    \r\n )}\r\n
\r\n \r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default new LogWindow();\r\n","import React, { Component } from 'react';\r\nimport { slide as Menu } from \"react-burger-menu\";\r\nimport { Container, Row, Col, InputGroup } from 'react-bootstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faUser, faSignOutAlt, faBars } from '@fortawesome/free-solid-svg-icons';\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\nimport SignInController from \"../Controllers/SignInController\";\r\n\r\nexport class SideBarComponent extends Component {\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* \r\n My Account */}\r\n\r\n \r\n Sign Out \r\n \r\n
\r\n )\r\n };\r\n}","import React, { Component } from \"react\";\r\nimport Sidebar from \"react-sidebar\";\r\nimport { Navbar, Nav, Form, FormControl, Button } from \"react-bootstrap\";\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faBars } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { SideBarComponent } from \"./SidebarMenu\";\r\n\r\nexport class NavBarComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n sidebarOpen: false,\r\n };\r\n this.onSetSidebarOpen = this.onSetSidebarOpen.bind(this);\r\n }\r\n\r\n onSetSidebarOpen(open) {\r\n this.setState({ sidebarOpen: open });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n
Reference Application
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport Amplify, { Auth } from 'aws-amplify';\r\nimport configureJson from \"../awsConfigure.json\";\r\nimport IRAController from './IRAController';\r\n\r\nclass SignInController {\r\n\tset cognitoUser(user) {\r\n\t\tthis._cognitoUser = user;\r\n\t}\r\n\r\n\tget cognitoUser() {\r\n\t\treturn this._cognitoUser;\r\n\t}\r\n\r\n\tconstructor(props) {\r\n\t\tAmplify.configure({\r\n\t\t\tAuth: {\r\n\t\t\t\tidentityPoolId: configureJson.identityPoolId,\r\n\t\t\t\tregion: configureJson.region,\r\n\t\t\t\tuserPoolId: configureJson.userPoolId,\r\n\t\t\t\tuserPoolWebClientId: configureJson.userPoolWebClientId,\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t//Amplify.Logger.LOG_LEVEL = 'DEBUG';\r\n\t\t//Amplify.Logger.LOG_LEVEL = process.env.name;\r\n\t}\r\n\r\n\tsignIn = async (username, password) => {\r\n\t\tconsole.log(\"sign in processing\");\r\n\t\ttry {\r\n\t\t\tawait IRAController.deleteCookie();\r\n\t\t\tconst user = await Auth.signIn(username, password);\r\n\t\t\tthis.cognitoUser = user; // Setting cognito user for subsequent actions\r\n\t\t\treturn user;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log('error signing in', error);\r\n\t\t\treturn error;\r\n\t\t}\r\n\t}\r\n\r\n\tsignOut = async () => {\r\n\t\ttry {\r\n\t\t\tawait IRAController.deleteCookie();\r\n\t\t\tawait Auth.signOut();\r\n\t\t\twindow.location.reload(\"/referenceapp/signin\");\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log('error signing out: ', error);\r\n\t\t}\r\n\t}\r\n\r\n\t// This is to get the verification code\r\n\tforgotPassword = async (emailAddress) => {\r\n\t\ttry {\r\n\t\t\tawait Auth.forgotPassword(emailAddress);\r\n\t\t\treturn true;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log('error in generating reset password', error);\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// await Auth.forgotPassword(emailAddress).then(user => {\r\n\t\t// \tconsole.log(user);\r\n\t\t// \treturn true;\r\n\t\t// }).catch(error => {\r\n\t\t// \tconsole.log(\"error in generating reset password \" + error);\r\n\t\t// \treturn false;\r\n\t\t// });\r\n\t};\r\n\r\n\r\n\t// Reset password using received verfication code\r\n\tforgotPasswordPost = async (emailAddress, verificationCode, password) => {\r\n\t\ttry {\r\n\t\t\tawait Auth.forgotPasswordSubmit(emailAddress, verificationCode, password);\r\n\t\t\treturn true;\r\n\t\t} catch (error) {\r\n\t\t\tconsole.log('error in forgot password reset', error);\r\n\t\t\treturn error;\r\n\t\t}\r\n\r\n\t}\r\n\r\n\r\n\t// Asking user to change the password after first login attempt\r\n\tchangePassword = async (newPassword) => {\r\n\t\tvar user = this.cognitoUser;\r\n\r\n\t\tvar changedUser = \"\";\r\n\r\n\t\tawait Auth.completeNewPassword(\r\n\t\t\tuser, // the Cognito User Object\r\n\t\t\tnewPassword, // the new password\r\n\t\t).then(user => {\r\n\t\t\tconsole.log(\"----------\");\r\n\t\t\tchangedUser = user;\r\n\t\t}).catch(e => {\r\n\t\t\tconsole.log(e);\r\n\t\t});\r\n\r\n\t\treturn changedUser;\r\n\r\n\t}\r\n}\r\n\r\nexport default new SignInController();\r\n","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { ThankyouNavBarComponent } from '../../components/ThankyouNavbar';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport { store } from \"../../redux/store\";\r\n\r\nexport class ScenarioPaymentThankyouPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorStatus: false,\r\n cardData: \"\",\r\n shippingAddress: \"\"\r\n };\r\n global.dataURL = \"\";\r\n }\r\n\r\n componentDidMount() {\r\n try {\r\n var cardDetail = store.getState().reducer.cardList;\r\n var maskedBillingAddress = \"\";\r\n\r\n if (cardDetail != null) {\r\n if(cardDetail.maskedBillingAddress != null){\r\n maskedBillingAddress = cardDetail.maskedBillingAddress.line1 + \" \" +\r\n cardDetail.maskedBillingAddress.line2 + \" \" + cardDetail.maskedBillingAddress.city + \" \" +\r\n cardDetail.maskedBillingAddress.state + \" \" + cardDetail.maskedBillingAddress.countryCode +\r\n \" \" + cardDetail.maskedBillingAddress.zip;\r\n }\r\n \r\n\r\n var panDetails = \"\";\r\n if (cardDetail.digitalCardData.presentationName == null || cardDetail.digitalCardData.presentationName == \"\") {\r\n panDetails = cardDetail.panLastFour;\r\n } else {\r\n panDetails = cardDetail.digitalCardData.presentationName;\r\n }\r\n\r\n this.setState({\r\n cardData: panDetails,\r\n shippingAddress: maskedBillingAddress\r\n });\r\n \r\n }\r\n\r\n this.sleep(1000);\r\n\r\n // Taking screen-shot\r\n var htmlCancvas = html2canvas(document.querySelector(\"#paymentThankyou\"), {\r\n width: 1000,\r\n height: 600\r\n })\r\n .then(function (canvas) {\r\n global.dataURL = canvas.toDataURL();\r\n global.dataURL = global.dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n } catch (error) {\r\n\r\n\r\n }\r\n\r\n };\r\n\r\n closeWindow = async () => {\r\n logImage(SRCWrapper.srcTransactionID, \"confirmation\", global.dataURL);\r\n this.sleep(2000);\r\n\r\n if (SRCWrapper.redirection != null && window.opener != null) {\r\n window.opener.location.href = loggerHost.lithosuri;\r\n window.close();\r\n return;\r\n } else {\r\n window.location.href = \"/checkout\";\r\n }\r\n }\r\n\r\n sleep(ms) {\r\n var d = new Date();\r\n var d2 = null;\r\n do { d2 = new Date(); }\r\n while (d2 - d < ms);\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n

Order Confirmed!

\r\n

Thank you for the order.

\r\n
\r\n\r\n
\r\n
\r\n

ITEMS:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The Godfather by Mario Puzo

\r\n\r\n

\r\n Qty: 1

\r\n

\r\n In Stock

\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

SHIPPING TO :

\r\n\r\n
{this.state.shippingAddress}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

PAYMENT METHOD :

\r\n\r\n
\r\n \"discover\r\n
\r\n
{\r\n this.state.cardData}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
SUBTOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
ESTIMATED SHIPPING &
HANDLING
\r\n
FREE
\r\n
\r\n\r\n
\r\n
TOTAL
\r\n
$10.00
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
);\r\n }\r\n}","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport React, { Component } from \"react\";\r\n\r\nimport \"./BasicLayout.css\";\r\n//import \"../styles.css\";\r\n\r\nexport default class BasicLayout extends Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport * as React from 'react';\r\nimport { Navbar } from 'react-bootstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faSearch, faShoppingCart } from '@fortawesome/free-solid-svg-icons'\r\n\r\nexport class DashboardNavBarComponent extends React.Component {\r\n render() {\r\n return (\r\n );\r\n }\r\n}\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport * as React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { DashboardNavBarComponent } from '../../components/DashboardNavBar';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, dpaID } from \"../../redux/actions/Action\";\r\n\r\n\r\nexport class DashboardPage extends React.Component {\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n }\r\n \r\n render() {\r\n return (\r\n \r\n \r\n

SRCI Testing

\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n {/*\r\n
\r\n \r\n
*/}\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n powered by
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
);\r\n }\r\n}\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport * as React from 'react';\r\nimport { Navbar } from 'react-bootstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faSearch, faShoppingCart } from '@fortawesome/free-solid-svg-icons';\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\nimport { url } from 'inspector';\r\nimport SignInController from \"../Controllers/SignInController\";\r\n\r\nexport class PaymentNavBarComponent extends React.Component {\r\n render() {\r\n var scenarioPath = window.location.search.replace('?', '');\r\n\r\n if (scenarioPath == \"\") {\r\n scenarioPath = window.location.pathname.replace(\" \", \"\").trim().split(\"/\")[1];\r\n }\r\n\r\n if (scenarioPath != \"\" && scenarioPath.toLowerCase() != \"referenceapp\") {\r\n var cancelELement = (document.getElementById('cancelURL') as HTMLFormElement);\r\n if (cancelELement != null) {\r\n cancelELement.style.display = \"none\";\r\n }\r\n }\r\n const cancelURL = window.location.origin + \"/\" + scenarioPath + \"/checkout\";\r\n return (\r\n );\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState } from \"../../redux/actions/Action\";\r\n\r\nexport class PaymentProfilePage extends React.Component {\r\n \r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n }\r\n \r\n render() {\r\n return (\r\n \r\n \r\n
\r\n

Enter the email and mobile no.

\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n Your email will be your user ID.\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n

We will send SMS Code(s) to the number you provide to verify your profile. Message and data rates may apply.

\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
);\r\n }\r\n }\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport * as React from 'react';\r\nimport { Navbar } from 'react-bootstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faSearch, faShoppingCart, faWindowClose, faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\n\r\nexport class CheckoutNavBarComponent extends React.Component {\r\n render() {\r\n return (\r\n );\r\n }\r\n}\r\n","import * as React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { CheckoutNavBarComponent } from '../../components/CheckoutNavBar';\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport $ from \"jquery\";\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport SRCLogger from \"../../logger/SRCLogger\";\r\ndeclare var DGNCheckout: any;\r\n\r\n\r\nexport class PaymentCardDetailsPage extends React.Component {\r\n constructor(props:any) {\r\n super(props);\r\n }\r\n \r\n enrollCardClick = async () => {\r\n // enrollCard.params.srciTransactionId = SRCWrapper.srcTransactionID;\r\n\r\n // console.log(enrollCard.params);\r\n // // enroll card\r\n // let enrollCardResponse = await DGNCheckout.enrollCard(\r\n // enrollCard.params\r\n // );\r\n\r\n // console.log(enrollCardResponse);\r\n\r\n };\r\n render() {\r\n return (\r\n \r\n \r\n\r\n
\r\n

Merchant

\r\n

$10.00 USD

\r\n

\r\n\r\n
\r\n

Pay with

\r\n\r\n\r\n
\r\n \"discover\r\n
\r\n

Discover Card

\r\n

**** 0945

\r\n
\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n

Billing address

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n

Create your payment profile

\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n \r\n Your email will be your user ID.\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n

We will send SMS Code(s) to the number you provide to verify your profile. Message and data rates may apply.

\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n

By clicking Continue, you agree to our Terms and understand your data will be processed according to the Privacy Notice.

\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n \r\n
);\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport $ from 'jquery';\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nexport class PaymentOTPPage extends React.Component {\r\n constructor(props :any) {\r\n super(props);\r\n this.state = {\r\n otpError: false,\r\n response: false\r\n };\r\n this.validateFunction = this.validateFunction.bind(this);\r\n }\r\n\r\n validateFunction() {\r\n if ($(\"#otpInput\").val() == \"\") {\r\n this.setState({ otpError: true });\r\n }else{\r\n this.setState({ response: true });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {this.state.response ? : null}\r\n\r\n \r\n \r\n
\r\n

Enter the code sent to
a*****n@gmail.com

\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n {this.state.otpError ? (\r\n Enter OTP number.\r\n ) : null}\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { CheckoutNavBarComponent } from '../../components/CheckoutNavBar';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faChevronRight } from '@fortawesome/free-solid-svg-icons';\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState } from \"../../redux/actions/Action\";\r\n\r\nexport class PaymentConfirmationPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n successMsg: false\r\n };\r\n }\r\n\r\n paymentConfirmation() {\r\n // Taking screen-shot\r\n var dataURL;\r\n\r\n try {\r\n html2canvas(document.querySelector('#confirmation'), {\r\n width: 1000,\r\n height: 600\r\n })\r\n .then(function (canvas) {\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n console.log(SRCWrapper.srcTransactionID);\r\n let response = logImage(SRCWrapper.srcTransactionID, \"confirmation\", dataURL);\r\n } catch (error) {\r\n\r\n }\r\n }\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n\r\n
\r\n

Merchant

\r\n

$10.00 USD

\r\n

\r\n\r\n
\r\n

Pay with

\r\n\r\n
\r\n
\r\n\r\n \"discover\r\n
\r\n

Discover Card

\r\n

**** 0945

\r\n

\r\n

\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n

Ship To

\r\n\r\n
\r\n
\r\n\r\n
\r\n

Natasha

\r\n

2500 Lake Cook Rd, IL 60015

\r\n

\r\n

\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\nimport { envKeys, opusStagingJWTKey, opusSandboxJWTKey, argusCertJWTKey, argusQAJWTKey } from \"./dataConstansts\";\r\nimport * as jose from \"node-jose\";\r\nimport { store } from \"../redux/store\";\r\nimport IRAController from \"../Controllers/IRAController\";\r\n\r\nvar JWTKey = \"\";\r\nvar kid = \"\";\r\n\r\nclass CardEncryption {\r\n\r\n\tencrptCardDetails = async (cardData, envName = \"\") => {\r\n\t\tvar encryptedCard = \"\", dpaID = \"\", StoredJWTToken = \"\";\r\n\r\n\t\t// This is used for IRA\r\n\t\tif (envName != \"\") {\r\n\t\t\tvar environment = await IRAController.getEnvironmentFromStore(envName);\r\n\r\n\t\t\tdpaID = environment.SRC_DPA_ID != null ? environment.SRC_DPA_ID : \"\";\r\n\t\t\tStoredJWTToken = environment.JWT_Token != null ? environment.JWT_Token : \"\";\r\n\t\t}\r\n\t\t// This will be executed, If one environment has been configured and a particular scenario execution \r\n\t\telse {\r\n\t\t\tdpaID = store.getState().reducer.dpaID;\r\n\t\t\tStoredJWTToken = store.getState().reducer.jwtToken;\r\n\t\t}\r\n\r\n\t\tif (StoredJWTToken != \"\" && StoredJWTToken != null) {\r\n\t\t\tJWTKey = JSON.parse(StoredJWTToken);\r\n\t\t} else {\r\n\t\t\tconsole.log(\"enc-api\");\r\n\t\t\tawait this.getEncryptionKeys(dpaID);\r\n\t\t}\r\n\t\tencryptedCard = await this.encryptCardUsingJWTKeys(cardData);\r\n\t\treturn encryptedCard;\r\n\t};\r\n\r\n\tencryptCardUsingJWTKeys = async (cardData) => {\r\n\t\tlet encryptedCard = \"\";\r\n\r\n\t\tif (cardData != null) {\r\n\t\t\tjose.JWK.keystore = jose.JWK.createKeyStore(); // Creating key store\r\n\r\n\t\t\t// Storing keys\r\n\t\t\tawait jose.JWK.asKeyStore(JWTKey).\r\n\t\t\t\tthen(function (result) {\r\n\t\t\t\t\tjose.JWK.keystore = result;\r\n\t\t\t\t});\r\n\r\n\t\t\tlet key = jose.JWK.keystore.all({ use: 'enc' }); // Get the particular enc key\r\n\r\n\t\t\tif (key == \"\" && kid != \"\") {\r\n\t\t\t\tkey = jose.JWK.keystore.get(kid);\r\n\t\t\t}\r\n\r\n\t\t\t// Actual encryption\r\n\t\t\tawait jose.JWE.createEncrypt({ format: 'compact' }, key).\r\n\t\t\t\tupdate(JSON.stringify(cardData)).\r\n\t\t\t\tfinal().\r\n\t\t\t\tthen(function (result) {\r\n\t\t\t\t\tencryptedCard = result;\r\n\t\t\t\t});\r\n\t\t}\r\n\t\treturn encryptedCard;\r\n\t};\r\n\r\n\tencryptCardUsingAPI = async (cardData) => {\r\n\t\tconst url = loggerHost.dgnCardEncryptURI;\r\n\t\tlet headersParameters = {\r\n\t\t\t'Content-Type': 'application/json;charset=UTF-8',\r\n\t\t\t'Cache-Control': 'no-store',\r\n\t\t\tAccept: \"application/json;charset=UTF-8\",\r\n\t\t\tAuthorization: \"Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI5NzU5MzEwMDdlODM0MGU5YjhkMmI2YWY0NGYwZDQyNyIsImlhdCI6MTU3NDc5NjMzMywic3ViIjoiREdOIFNSQyBDcnlwdG8gVXRpbCIsImlzcyI6IlN0YXJ0ZWd5IFBhcnRuZXJzaGlwcyBPcmciLCJleHAiOjE1NzUxMTE2OTN9.x_qJHNRuCfSRu5hWF5r8N6_4W8AixKoGd6Pet7sUiNQ\",\r\n\t\t\t'Key-Id': 'some-kid',\r\n\t\t\t'Public-Key': '-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz7VXyHyDOJzPjUmsBa0Fwry4HeJs5AkMwXaI5XRdnA2Uj+Pm1WaLb5BFxfmoSaXi7MSnnUZqd2o/PUYq43CmopVcNj+HoWWDsA1STQ3eCz35SK0WR09UZee2j5tkhnQPYcJ+oymTDJdYwXh/5UY5BoXHhqmDsipahplzBlbr4uGS52VQogwjKUP9K1jOhahKKCev7+gtCwXJIevIPxc8LKhhRzkZ1NoQTkwvVWZwabQfprOtvYFnFHpKXNgG7h1b8HQ4jDEnBMH7auAFbfP50mrJSlrzxaLutwVM7fQ+ldHh4QcmQIfWwdcTkMhL8ZqLUO9g7tI3K0euwfiE32dElQIDAQAB-----END PUBLIC KEY-----'\r\n\t\t};\r\n\r\n\t\tlet response = await fetch(url, {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: headersParameters,\r\n\t\t\tbody: JSON.stringify(cardData)\r\n\t\t});\r\n\t\treturn await response.json();\r\n\t};\r\n\r\n\r\n\t// Getting JWT keys based on the environment\r\n\tgetEncryptionKeys = async (dpaID) => {\r\n\t\tswitch (dpaID) {\r\n\t\t\tcase envKeys.argusQADpaID:\r\n\t\t\t\tJWTKey = argusQAJWTKey;\r\n\t\t\t\tkid = \"kHxSRwIpBYdhz-LL9ziT4pTw3T4PqEQG7_cEffANc_Q\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase envKeys.argusCertDpaID:\r\n\t\t\t\tJWTKey = argusCertJWTKey;\r\n\t\t\t\tkid = \"bg3jIBm-E6NuOJL4XYKCNHoPQNwDS9DLa3CssRrLBcA\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase envKeys.phSandboxDpaID:\r\n\t\t\t\tJWTKey = opusSandboxJWTKey;\r\n\t\t\t\tkid = \"NTdkMDA1YTVjM2UyOTkzMmFiZDdmMWE0Y2IyZGE4NTMyNmNjNTVmZDM1ZGRkMDE0NmFjN2FiYzgyYjc4OWQ1Nao\";\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tJWTKey = opusStagingJWTKey;\r\n\t\t\t\tkid = \"MWYwY2NmMjM1YzJlYzcwZDQ4YzkzMzE3Njg3YzU3MjBjYjUyZTAxMGNjYmE5MGUzODFmNWE5YzEyNmUxOTA0Ywo\";\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t};\r\n}\r\nexport default new CardEncryption();\r\n","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport $ from 'jquery';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, cardList } from \"../../redux/actions/Action\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport \"../../scss/_inputBox.css\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\nimport { Input, Col, Label } from \"reactstrap\";\r\nimport CardEncryption from \"../../utility/CardEncryption\";\r\n\r\nvar testCaseName = \"\";\r\n\r\nexport class PaymentCardPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cardNumberInput: \"\",\r\n expiryMonth: \"\",\r\n expiryYear: \"\",\r\n cvvNo: \"\",\r\n validationErrorCardNo: false,\r\n validationErrorExpiryDate: false,\r\n validationErrorCvvNo: false,\r\n errorResponse: false,\r\n errorMessage: \"\",\r\n testCaseName: \"\",\r\n lithosuri: loggerHost.lithosuri,\r\n s4Redirection: false,\r\n noWindowRef: false,\r\n blankWindowRef: false,\r\n contentWindow: true,\r\n dcfInvokeStatus: false,\r\n emptyWindowRef: false,\r\n dcfInvokeMsg: \"\"\r\n };\r\n }\r\n\r\n\r\n\r\n enrollCardClick = async () => {\r\n var cardNumber = $(\"#cardNumberInput\").text();\r\n var cardExpTxt = $(\"#cardExpiryInput\").text();\r\n var splitedString = cardExpTxt.split(\"/\");\r\n\r\n var exMonth = splitedString[0];\r\n var exYear = splitedString[1];\r\n\r\n // Card CVV\r\n var cardCvvTxt = $(\"#cardSCodeInput\").text();\r\n\r\n var cardEnrollment = await DataParamsController.getParamsForTheAPICall(\"enrollCard\");\r\n cardEnrollment.srciTransactionId = SRCWrapper.srcTransactionID;\r\n\r\n try {\r\n // Taking screen-shot\r\n var dataURL;\r\n //var element = document.querySelector('#paymentCardPage') as HTMLDivElement;\r\n html2canvas(document.querySelector('#paymentCardPage'), {\r\n width: 1000,\r\n height: 600,\r\n\r\n }).then(function (canvas) {\r\n console.log(canvas);\r\n //canvas.innerText();\r\n\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n } catch (error) {\r\n // Error implementation\r\n }\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n var card = {};\r\n\r\n card.primaryAccountNumber = cardNumber.replace(/\\s/g, '');\r\n card.panExpirationMonth = exMonth;\r\n card.panExpirationYear = exYear;\r\n card.cardSecurityCode = cardCvvTxt;\r\n\r\n let encryptedCard = await CardEncryption.encrptCardDetails(card);\r\n\r\n if (encryptedCard != null && encryptedCard != \"\") {\r\n cardEnrollment.encryptedCard = encryptedCard;\r\n } else {\r\n cardEnrollment.card = card;\r\n }\r\n console.log(cardEnrollment);\r\n try {\r\n // Card Enrollment\r\n console.log(\"----------------------\");\r\n let response = await window.DGNCheckout.enrollCard(cardEnrollment);\r\n console.log(response);\r\n\r\n store.dispatch(cardList(response.maskedCard));\r\n\r\n logImage(SRCWrapper.srcTransactionID, \"enrollCard\", dataURL); // Sending screen shot image \r\n this.checkout(response);\r\n\r\n } catch (error) {\r\n console.log(error.description);\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: (error.description != null) ? error.description : \"Please enter correct details\"\r\n });\r\n\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n };\r\n\r\n selectDcfInvoke = dcfInvokeType => {\r\n let type = dcfInvokeType.target.value;\r\n console.log(type);\r\n\r\n switch (type) {\r\n case \"noWindowRef\":\r\n this.setState({ noWindowRef: true, blankWindowRef: false, contentWindow: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"blank\":\r\n this.setState({ blankWindowRef: true, noWindowRef: false, contentWindow: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"contentWindow\":\r\n this.setState({ contentWindow: true, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"emptyWindowRef\":\r\n this.setState({ contentWindow: false, noWindowRef: false, blankWindowRef: false, emptyWindowRef: true, dcfInvokeStatus: false });\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n\r\n directCheckout = async () => {\r\n store.dispatch(loaderState(true));\r\n\r\n this.checkout(null);\r\n };\r\n\r\n\r\n checkout = async (enrollCardResponse) => {\r\n var checkout = await DataParamsController.getParamsForTheAPICall(\"checkout\");\r\n console.log(checkout);\r\n\r\n const { location: { state: { response: { dcfActionCode } } } } =\r\n this.props.location && this.props.location.state &&\r\n this.props.location.state.response ?\r\n this.props :\r\n { location: { state: { response: { dcfActionCode: null } } } };\r\n\r\n let dcfWindow;\r\n\r\n if (enrollCardResponse != null) {\r\n checkout.srcCorrelationId = enrollCardResponse.srcCorrelationId;\r\n checkout.srcDigitalCardId = enrollCardResponse.maskedCard.srcDigitalCardId;\r\n\r\n } else { // Direct checkout\r\n var cardNumber = $(\"#cardNumberInput\").text();\r\n var cardExpTxt = $(\"#cardExpiryInput\").text();\r\n var splitedString = cardExpTxt.split(\"/\");\r\n var exMonth = splitedString[0];\r\n var exYear = splitedString[1];\r\n var cardCvvTxt = $(\"#cardSCodeInput\").text();\r\n\r\n var card = {};\r\n\r\n card.primaryAccountNumber = cardNumber.replace(/\\s/g, '');\r\n card.panExpirationMonth = exMonth;\r\n card.panExpirationYear = exYear;\r\n card.cardSecurityCode = cardCvvTxt;\r\n\r\n let encryptedCard = await CardEncryption.encrptCardDetails(card);\r\n\r\n if (encryptedCard != null && encryptedCard != \"\") {\r\n checkout.encryptedCard = encryptedCard;\r\n }\r\n\r\n console.log(\"direct checkout params \")\r\n console.log(checkout);\r\n }\r\n\r\n checkout.srciActionCode = \"NEW_USER\";\r\n checkout.srciTransactionId = SRCWrapper.srcTransactionID;\r\n\r\n let value = {};\r\n if (this.state.contentWindow === true) {\r\n let dcfIframe = document.createElement('iframe');\r\n dcfIframe.setAttribute('id', 'dcfIframe');\r\n dcfIframe.setAttribute('name', 'DCFIframe');\r\n dcfIframe.setAttribute('src', '');\r\n dcfIframe.style.zIndex = '2';\r\n dcfIframe.style.position = \"absolute\";\r\n dcfIframe.style.display = 'block';\r\n dcfIframe.style.width = '30%';\r\n dcfIframe.style.height = '92vh';\r\n dcfIframe.style.margin = '2% 35%';\r\n document.body.after(dcfIframe, document.body);\r\n checkout.windowRef = document.getElementById('dcfIframe').contentWindow;\r\n }\r\n\r\n if (this.state.blankWindowRef === true) {\r\n dcfWindow = window.open('about:blank');\r\n checkout.windowRef = dcfWindow;\r\n }\r\n\r\n\r\n console.log(checkout);\r\n\r\n try {\r\n // loging test case info\r\n await SRCWrapper.logTestcaseInfo(value, checkout.srcCorrelationId, null);\r\n\r\n let response = await window.DGNCheckout.checkout(checkout);\r\n console.log(response);\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n if (response.dcfActionCode && response.dcfActionCode == \"COMPLETE\") {\r\n store.dispatch(loaderState(false));\r\n\r\n this.setState({\r\n errorResponse: true,\r\n transactionStatus: true,\r\n dcfActionCode: response.dcfActionCode\r\n });\r\n\r\n } else {\r\n store.dispatch(loaderState(false));\r\n this.setState({ errorResponse: false, errorStatus: true, errorMessage: response.error.errorDescription });\r\n }\r\n\r\n\r\n\r\n } catch (error) {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.description\r\n });\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n frame.parentNode.removeChild(frame);\r\n }\r\n\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n };\r\n\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n testCaseName = SRCWrapper.testCaseInfo;\r\n if (testCaseName == \"\" || testCaseName == \"SRC_07_27\" || testCaseName == \"SRC_07_30\") {\r\n console.log(\"-----\");\r\n this.setState({ contentWindow: false, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false, emptyWindowRef: true });\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n {(this.state.errorResponse) ? : null}\r\n\r\n \r\n \r\n\r\n

We secure your information

\r\n

Together We Work

\r\n\r\n
\r\n

New User

\r\n

Returning User

\r\n
\r\n
\r\n
\r\n
\r\n

Enter your card details

\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n\r\n {this.state.validationErrorCardNo ? (\r\n Enter valid card number.\r\n ) : null}\r\n
\r\n\r\n
\r\n
\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n\r\n {this.state.validationErrorExpiryDate ? (\r\n Enter valid expiry month and year(MM/YYYY)\r\n ) : null}\r\n
\r\n\r\n
\r\n\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n {this.state.validationErrorCvvNo ? (\r\n Enter valid security no\r\n ) : null}\r\n\r\n
\r\n {this.state.errorStatus ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {(testCaseName == \"SRC_07_27\" || testCaseName == \"SRC_07_30\") ?\r\n \r\n \r\n : null\r\n }\r\n\r\n \r\n {this.state.dcfInvokeStatus ? (\r\n \r\n {this.state.dcfInvokeMsg}\r\n \r\n ) : null}\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n );\r\n }\r\n}","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport * as React from 'react';\r\nimport { Navbar } from 'react-bootstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faSearch, faShoppingCart } from '@fortawesome/free-solid-svg-icons';\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\nimport SignInController from \"../Controllers/SignInController\";\r\n\r\nexport class SearchNavBarComponent extends React.Component {\r\n\r\n componentDidMount() {\r\n var scenarioPath = window.location.search.replace('?', '');\r\n\r\n if (scenarioPath == \"\") {\r\n scenarioPath = window.location.pathname.replace(\" \", \"\").trim().split(\"/\")[1];\r\n }\r\n\r\n console.log(scenarioPath);\r\n\r\n if (scenarioPath != \"\" && scenarioPath.toLowerCase() != \"referenceapp\") {\r\n var cancelELement = (document.getElementById('cancelURL') as HTMLFormElement);\r\n var ptagELement = (document.getElementById('ptag') as HTMLFormElement);\r\n\r\n if (ptagELement != null) {\r\n ptagELement.style.display = \"none\";\r\n }\r\n if (cancelELement != null) {\r\n cancelELement.style.display = \"none\";\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n const cartCount = 1;\r\n return (\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Container, Row, Col, InputGroup } from 'react-bootstrap';\r\nimport { SearchNavBarComponent } from '../../components/SearchNavBar';\r\nimport { NavBarComponent } from '../../components/NavBar';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, dpaID } from \"../../redux/actions/Action\";\r\nimport { connect } from \"react-redux\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport $ from \"jquery\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\n\r\nvar urlDataParam = false;\r\n\r\nexport class CheckoutPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n console.log(\"---before\");\r\n\r\n this.processQueryParams();\r\n\r\n\r\n this.state = {\r\n responseStatus: false,\r\n responseMessage: \"\",\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n dataConfiguration: [],\r\n pageStatus: false\r\n };\r\n }\r\n\r\n // Getting query params from URL\r\n processQueryParams() {\r\n var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');\r\n let jwtToken = \"\";\r\n let type = \"manual\";\r\n\r\n for (var i = 0; i < url.length; i++) {\r\n var urlparam = url[i].split('=');\r\n if (urlparam[0] == \"data\") {\r\n jwtToken = urlparam[1];\r\n urlDataParam = true;\r\n }\r\n if (urlparam[0] == \"type\") {\r\n type = urlparam[1];\r\n }\r\n }\r\n\r\n SRCWrapper.decodeJWTToken(jwtToken, type);\r\n }\r\n\r\n handleCheckoutClick = async () => {\r\n\r\n if (document.readyState != 'complete') {\r\n this.setState({ pageStatus: true, errorMessage: \"Page loading. please wait...\" });\r\n console.log(\" --- page loading\");\r\n return;\r\n } else {\r\n this.setState({ pageStatus: false });\r\n }\r\n\r\n // Taking screen-shot\r\n try {\r\n var dataURL;\r\n html2canvas(document.querySelector('#checkoutTrigger'), {\r\n width: 1000,\r\n height: 700\r\n })\r\n .then(function (canvas) {\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n } catch (error) {\r\n\r\n console.log(error);\r\n }\r\n\r\n var initializationParams = await DataParamsController.getParamsForTheAPICall(\"init\");\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n console.log(initializationParams);\r\n try {\r\n // init call\r\n await window.DGNCheckout.init(\r\n initializationParams\r\n );\r\n\r\n let recongizeResponse = await window.DGNCheckout.isRecognized();\r\n\r\n // For sceanrio Isrecongized should be false\r\n if (recongizeResponse.recognized == true) {\r\n\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"User registered already from this device.\",\r\n });\r\n\r\n } else {\r\n logImage(SRCWrapper.srcTransactionID, \"init\", dataURL); // loging screenshot\r\n this.setState({ responseStatus: true });\r\n store.dispatch(loaderState(false));\r\n }\r\n } catch (error) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.description,\r\n });\r\n }\r\n };\r\n\r\n inputFocusout = async (event) => {\r\n var inputValue = event.target.textContent;\r\n var inputID = event.target.id;\r\n var inputGroupName = event.target.closest(\"td\").getAttribute('groupname');\r\n var counter = event.target.closest(\"td\").getAttribute('counter');\r\n\r\n DataParamsController.updateTestDataValueInStore(inputID, inputValue, inputGroupName, counter);\r\n };\r\n\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n\r\n if (urlDataParam) {\r\n document.getElementById(\"btnConfiguration\").style.display = \"block\";\r\n } else {\r\n document.getElementById(\"btnConfiguration\").style.display = \"none\";\r\n }\r\n\r\n document.onreadystatechange = function () {\r\n if (document.readyState === 'complete') {\r\n this.setState({ pageStatus: false });\r\n console.log(\"--------------------\");\r\n }\r\n }.bind(this);\r\n };\r\n\r\n closePopUpClick = async (event) => {\r\n document.getElementById(\"myModal\").style.display = \"none\";\r\n document.getElementById(\"myCloseModal\").style.display = \"none\";\r\n };\r\n\r\n handlePopUpClick = async () => {\r\n var configuration = await DataParamsController.getParamsForTheConfiguration();\r\n\r\n console.log(configuration);\r\n\r\n if (configuration != null && configuration.length > 0) {\r\n this.setState({ dataConfiguration: configuration });\r\n document.getElementById(\"myModal\").style.display = \"block\";\r\n } else {\r\n document.getElementById(\"myCloseModal\").style.display = \"block\";\r\n }\r\n };\r\n\r\n handleToggleClick = async (event) => {\r\n event.target.classList.toggle(\"active\");\r\n var content = event.target.nextElementSibling;\r\n\r\n if (content.style.maxHeight) {\r\n content.style.maxHeight = null;\r\n } else {\r\n content.style.maxHeight = content.scrollHeight + \"px\";\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n {this.state.responseStatus ? : null}\r\n \r\n \r\n\r\n

YOUR CART


\r\n
\r\n
\r\n

ITEMS:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The Godfather by Mario Puzo

\r\n\r\n

\r\n Qty: 1

\r\n

\r\n In Stock

\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
SUBTOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
ESTIMATED SHIPPING &
HANDLING
\r\n
FREE
\r\n
\r\n\r\n
\r\n
TOTAL
\r\n
$10.00
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n {this.state.errorStatus || this.state.pageStatus ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n ×\r\n

Test Data Configuration

\r\n\r\n {\r\n this.state.dataConfiguration.map((element, i) => {\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n element.Fields.map((field, counter) => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n )\r\n })\r\n }\r\n\r\n
Param NameDefault Value
{field.ParameterName}\r\n
{field.DefaultData}
\r\n\r\n {/* */}\r\n
\r\n
\r\n\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n ×\r\n

No data available for configuration

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n loader: state.reducer.loaderState\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(CheckoutPage);","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState } from \"../../redux/actions/Action\";\r\nimport { identityLookup, identityInitiate } from \"../../utility/dataConstansts\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport $ from 'jquery';\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport \"../../scss/_inputBox.css\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\n\r\nexport class ConsumerIdentity extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n identityValue: \"testfeb8@gmail.com\",\r\n errorStatus: false,\r\n errorMessage: null,\r\n errorDescription: null,\r\n completeValidation: false\r\n };\r\n this.identityLookup = this.identityLookup.bind(this);\r\n this.getIdentityValue = this.getIdentityValue.bind(this);\r\n }\r\n\r\n getIdentityValue = e => {\r\n this.setState({\r\n identityValue: e.target.value\r\n });\r\n };\r\n\r\n identityLookup = async () => {\r\n\r\n var emailInput = $(\"#emailAddressInput\").text();\r\n emailInput = emailInput.trim();\r\n\r\n this.setState({\r\n identityValue: emailInput\r\n });\r\n console.log(\" state \" + this.state.identityValue);\r\n\r\n try {\r\n var dataURL;\r\n html2canvas(document.querySelector('#initiateIdentityLookup'), {\r\n width: 1000,\r\n height: 600\r\n })\r\n .then(function (canvas) {\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n\r\n\r\n if (this.state.identityValue === null) {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"Please enter valid value\"\r\n });\r\n } else {\r\n\r\n var identityLookupParams = await DataParamsController.getParamsForTheAPICall(\"identityLookup\");\r\n\r\n identityLookupParams.consumerIdentity.identityValue = emailInput;\r\n console.log(\"identity value \" + identityLookupParams.consumerIdentity.identityValue);\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n let identityLookupResponse = await window.DGNCheckout.identityLookup(identityLookupParams);\r\n\r\n if (identityLookupResponse.consumerPresent === true) {\r\n var identityInitiateParams = await DataParamsController.getParamsForTheAPICall(\"initiateIdentityValidation\");\r\n\r\n\r\n let response = await window.DGNCheckout.initiateIdentityValidation();\r\n\r\n logImage(SRCWrapper.srcTransactionID, \"identityLookup\", dataURL);\r\n\r\n if (response.error) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error[0].reasonCode,\r\n errorDescription: response.error[0].description\r\n });\r\n } else {\r\n console.log(\"successs\");\r\n\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n completeValidation: true,\r\n validationMsg: response.validationMessage\r\n });\r\n }\r\n } else {\r\n console.log(identityLookupResponse);\r\n store.dispatch(loaderState(false));\r\n\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"Your ID is not registered with us.\",\r\n errorDescription: \"Your ID is not registered with us.\"\r\n });\r\n\r\n if (identityLookupResponse.error[0].description != null) {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: identityLookupResponse.error[0].reasonCode,\r\n errorDescription: identityLookupResponse.error[0].description\r\n });\r\n\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorDescription: error.description\r\n });\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {this.state.completeValidation === true ?\r\n : null}\r\n\r\n\r\n \r\n
\r\n

New User

\r\n

Returning User

\r\n
\r\n\r\n
\r\n

Enter the email for consumer identity.

\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n \r\n {\r\n this.state.errorStatus ? ( {\r\n this.state.errorMessage\r\n } <\r\n br /> {\r\n this.state.errorDescription\r\n } \r\n ) : null\r\n }\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ConsumerIdentity;","import React, { Component, Reducer } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Container } from 'react-bootstrap';\r\nimport { SearchNavBarComponent } from '../../components/SearchNavBar';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { initialization } from \"../../utility/dataConstansts\";\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, dpaID } from \"../../redux/actions/Action\";\r\nimport { connect } from \"react-redux\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\n\r\nvar urlDataParam = false;\r\n\r\nexport class ScenarioFourCheckoutPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.processQueryParams();\r\n this.state = {\r\n responseStatus: false,\r\n responseMessage: \"\",\r\n errorStatus: false,\r\n dataConfiguration: []\r\n };\r\n }\r\n\r\n // Getting query params from URL\r\n processQueryParams() {\r\n var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');\r\n let jwtToken = \"\";\r\n let type = \"manual\";\r\n\r\n for (var i = 0; i < url.length; i++) {\r\n var urlparam = url[i].split('=');\r\n if (urlparam[0] == \"data\") {\r\n jwtToken = urlparam[1];\r\n urlDataParam = true;\r\n }\r\n if (urlparam[0] == \"type\") {\r\n type = urlparam[1];\r\n }\r\n }\r\n\r\n SRCWrapper.decodeJWTToken(jwtToken, type);\r\n };\r\n\r\n handleCheckoutClick = async () => {\r\n // Taking screen-shot\r\n var dataURL;\r\n try {\r\n html2canvas(document.querySelector('#checkoutTrigger'), {\r\n width: 1000,\r\n height: 600\r\n })\r\n .then(function (canvas) {\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n\r\n var initializationParams = await DataParamsController.getParamsForTheAPICall(\"init\");\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n let initResponse = await window.DGNCheckout.init(\r\n initializationParams\r\n );\r\n\r\n if (initResponse.status == \"200\") {\r\n logImage(SRCWrapper.srcTransactionID, \"init\", dataURL);\r\n\r\n this.isRecognized();\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.description\r\n });\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n };\r\n\r\n isRecognized = async () => {\r\n try {\r\n let response = await window.DGNCheckout.isRecognized();\r\n console.log(response);\r\n\r\n if (response.recognized === true) {\r\n store.dispatch(loaderState(false));\r\n this.setState({ responseStatus: false });\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"Known device\",\r\n });\r\n } else if (response.recognized === false) {\r\n store.dispatch(loaderState(false));\r\n this.setState({ responseStatus: true });\r\n }\r\n } catch (error) {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.description\r\n });\r\n store.dispatch(loaderState(false));\r\n }\r\n }\r\n\r\n inputFocusout = async (event) => {\r\n var inputValue = event.target.textContent;\r\n var inputID = event.target.id;\r\n var inputGroupName = event.target.closest(\"td\").getAttribute('groupname');\r\n var counter = event.target.closest(\"td\").getAttribute('counter');\r\n\r\n console.log(inputValue + \" \" + inputID + \" \" + inputGroupName + \" \" + counter);\r\n\r\n DataParamsController.updateTestDataValueInStore(inputID, inputValue, inputGroupName, counter);\r\n };\r\n\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n\r\n if (urlDataParam) {\r\n document.getElementById(\"btnConfiguration\").style.display = \"block\";\r\n } else {\r\n document.getElementById(\"btnConfiguration\").style.display = \"none\";\r\n }\r\n }\r\n\r\n closePopUpClick = async (event) => {\r\n document.getElementById(\"myModal\").style.display = \"none\";\r\n document.getElementById(\"myCloseModal\").style.display = \"none\";\r\n };\r\n\r\n handlePopUpClick = async () => {\r\n var configuration = await DataParamsController.getParamsForTheConfiguration();\r\n\r\n console.log(configuration);\r\n if (configuration != null && configuration.length > 0) {\r\n this.setState({ dataConfiguration: configuration });\r\n document.getElementById(\"myModal\").style.display = \"block\";\r\n } else {\r\n document.getElementById(\"myCloseModal\").style.display = \"block\";\r\n }\r\n };\r\n\r\n handleToggleClick = async (event) => {\r\n event.target.classList.toggle(\"active\");\r\n var content = event.target.nextElementSibling;\r\n\r\n if (content.style.maxHeight) {\r\n content.style.maxHeight = null;\r\n } else {\r\n content.style.maxHeight = content.scrollHeight + \"px\";\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n {this.state.responseStatus ? : null}\r\n \r\n \r\n\r\n

YOUR CART


\r\n
\r\n
\r\n

ITEMS:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The Godfather by Mario Puzo

\r\n\r\n

\r\n Qty: 1

\r\n

\r\n In Stock

\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n\r\n
\r\n
SUBTOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
ESTIMATED SHIPPING &
HANDLING
\r\n
FREE
\r\n
\r\n\r\n
\r\n
TOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n {this.state.errorStatus ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n \r\n\r\n {/* */}\r\n\r\n\r\n
\r\n
\r\n
\r\n ×\r\n

Test Data Configuration

\r\n\r\n {\r\n this.state.dataConfiguration.map((element, i) => {\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n element.Fields.map((field, counter) => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n )\r\n })\r\n }\r\n\r\n
Param NameDefault Value
{field.ParameterName}\r\n
{field.DefaultData}
\r\n\r\n {/* */}\r\n
\r\n
\r\n\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n ×\r\n

No data available for configuration

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n alert();\r\n return {\r\n loader: state.reducer.loaderState\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(ScenarioFourCheckoutPage);","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport $ from 'jquery';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, idTokens } from \"../../redux/actions/Action\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport \"../../scss/_inputBox.css\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\n\r\n\r\nexport class CompleteIdentity extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n validationData: \"\",\r\n errorStatus: false,\r\n errorMessage: null,\r\n errorDescription: null,\r\n completeValidation: false,\r\n getProfiles: false,\r\n otpError: false,\r\n response: true\r\n };\r\n this.identityCompleteValidation = this.identityCompleteValidation.bind(\r\n this\r\n );\r\n this.getValidationData = this.getValidationData.bind(this);\r\n }\r\n getValidationData = e => {\r\n this.setState({\r\n validationData: e.target.value\r\n });\r\n };\r\n identityCompleteValidation = async () => {\r\n this.setState({\r\n validationData: $(\"#otpInput\").text()\r\n });\r\n \r\n store.dispatch(loaderState(true));\r\n\r\n try {\r\n var dataURL;\r\n\r\n html2canvas(document.querySelector('#otpConfirmation'), {\r\n letterRendering: 1, allowTaint: true,\r\n width: 1000,\r\n height: 600\r\n }).then(function (canvas) {\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n \r\n var completeValidationConst = await DataParamsController.getParamsForTheAPICall(\"completeIdentityValidation\");\r\n\r\n\r\n completeValidationConst.validationData = $(\"#otpInput\").text();\r\n console.log(completeValidationConst.validationData);\r\n let response = await window.DGNCheckout.completeIdentityValidation(\r\n completeValidationConst\r\n );\r\n\r\n if (response.idToken) {\r\n logImage(SRCWrapper.srcTransactionID, \"identityLookupCompleted\", dataURL);\r\n\r\n store.dispatch(loaderState(false));\r\n store.dispatch(idTokens(response.idToken));\r\n\r\n this.setState({\r\n getProfiles: true\r\n });\r\n } else {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error.reason,\r\n errorDescription: response.error.details[0].message\r\n });\r\n }\r\n } catch (error) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.reason,\r\n errorDescription: error.description\r\n });\r\n\r\n }\r\n \r\n };\r\n validateFunction() {\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {this.state.getProfiles ? : null}\r\n\r\n\r\n \r\n \r\n
\r\n

Enter the code sent to selected mode

\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n\r\n {this.state.errorStatus ? (\r\n {this.state.errorDescription}\r\n ) : null}\r\n\r\n {this.state.otpError ? (\r\n Enter OTP number.\r\n ) : null}\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default CompleteIdentity;","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport { store } from \"../../redux/store\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Col, Row } from \"reactstrap\";\r\nimport { loaderState, srcCorrelationId, cardList, idTokens } from \"../../redux/actions/Action\";\r\nimport { connect } from \"react-redux\";\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\nimport { Input, Label } from \"reactstrap\";\r\n\r\n\r\nexport class ProfilePage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n errorDescription: \"\",\r\n cardList: null,\r\n checkoutResponse: null,\r\n completeTransaction: false,\r\n noWindowRef: false,\r\n blankWindowRef: false,\r\n contentWindow: true,\r\n dcfInvokeStatus: false,\r\n dcfInvokeMsg: \"\",\r\n addCard: false\r\n };\r\n this.cardSelected = this.cardSelected.bind(this);\r\n }\r\n async componentDidMount() {\r\n store.dispatch(loaderState(true));\r\n\r\n var srcProfiles = {};\r\n srcProfiles.idTokens = store.getState().reducer.idTokens;\r\n\r\n try {\r\n let response = await window.DGNCheckout.getSrcProfile(srcProfiles);\r\n\r\n if (response.srcCorrelationId) {\r\n store.dispatch(srcCorrelationId(response.srcCorrelationId));\r\n this.setState({ cardList: response.profiles[0].maskedCards });\r\n store.dispatch(cardList(response.profiles[0].maskedCards));\r\n\r\n } else {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error.reason,\r\n errorDescription: response.error.message\r\n });\r\n }\r\n store.dispatch(loaderState(false));\r\n } catch (error) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.reason,\r\n errorDescription: error.description\r\n });\r\n }\r\n }\r\n\r\n selectDcfInvoke = dcfInvokeType => {\r\n let type = dcfInvokeType.target.value\r\n\r\n switch (type) {\r\n case \"noWindowRef\":\r\n this.setState({ noWindowRef: true, blankWindowRef: false, contentWindow: false, dcfInvokeStatus: false });\r\n break\r\n\r\n case \"blank\":\r\n this.setState({ blankWindowRef: true, noWindowRef: false, contentWindow: false, dcfInvokeStatus: false });\r\n break\r\n\r\n case \"contentWindow\":\r\n this.setState({ contentWindow: true, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false });\r\n break\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n cardSelected = async cardId => {\r\n let dcfWindow;\r\n\r\n try {\r\n var maskedCards = store.getState().reducer.cardList;\r\n\r\n if (maskedCards != null && maskedCards.length > 0) {\r\n maskedCards.forEach(function (item, index) {\r\n if (item.srcDigitalCardId != null && item.srcDigitalCardId == cardId) {\r\n store.dispatch(cardList(item));\r\n }\r\n });\r\n }\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n var checkout = await DataParamsController.getParamsForTheAPICall(\"checkout\");\r\n\r\n const { location: { state: { response: { dcfActionCode } } } } =\r\n this.props.location && this.props.location.state &&\r\n this.props.location.state.response ?\r\n this.props :\r\n { location: { state: { response: { dcfActionCode: null } } } };\r\n\r\n\r\n console.log(this.props.srcCorrelationId);\r\n\r\n checkout.srciTransactionId = SRCWrapper.srcTransactionID;\r\n checkout.srcCorrelationId = store.getState().reducer.srcCorrelationId;\r\n checkout.srcDigitalCardId = cardId;\r\n\r\n let value = {};\r\n\r\n if (this.state.contentWindow === true) {\r\n let dcfIframe = document.createElement('iframe');\r\n dcfIframe.setAttribute('id', 'dcfIframe');\r\n dcfIframe.setAttribute('name', 'DCFIframe');\r\n dcfIframe.setAttribute('src', '');\r\n dcfIframe.style.zIndex = '2';\r\n dcfIframe.style.position = \"absolute\";\r\n dcfIframe.style.display = 'block';\r\n dcfIframe.style.width = '30%';\r\n dcfIframe.style.height = '92vh';\r\n dcfIframe.style.margin = '2% 35%';\r\n document.body.after(dcfIframe, document.body);\r\n checkout.windowRef = document.getElementById('dcfIframe').contentWindow;\r\n }\r\n\r\n if (this.state.blankWindowRef === true) {\r\n dcfWindow = window.open('about:blank');\r\n checkout.windowRef = dcfWindow;\r\n }\r\n\r\n console.log(checkout);\r\n\r\n let testCaseInfo = await SRCWrapper.logTestcaseInfo(value, store.getState().reducer.srcCorrelationId, null);\r\n\r\n console.log(testCaseInfo);\r\n let response = await window.DGNCheckout.checkout(checkout);\r\n console.log(response);\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n switch (response.dcfActionCode) {\r\n case \"COMPLETE\":\r\n this.setState({ completeTransaction: true });\r\n break;\r\n\r\n case \"ADD_CARD\":\r\n this.setState({ enrollCard: true, addCard: true });\r\n break;\r\n\r\n case \"SWITCH_CONSUMER\":\r\n this.setState({ switchConsumer: true });\r\n break;\r\n\r\n case \"CHANGE_CARD\":\r\n await this.componentDidMount();\r\n break;\r\n\r\n default: // CANCEL || ERROR\r\n if (response.dcfActionCode == \"ERROR\") {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error.errorCode,\r\n errorDescription: response.error.errorDescription\r\n });\r\n }\r\n }\r\n store.dispatch(loaderState(false));\r\n } catch (error) {\r\n console.log(error);\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n console.log(frame);\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.reason,\r\n errorDescription: error.description\r\n });\r\n }\r\n };\r\n\r\n enrollCardClick = () => {\r\n this.setState({ addCard: true });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n {\r\n this.state.completeTransaction === true ? (<\r\n Redirect to=\"/scenario_4/thank-you\"\r\n />\r\n ) : null\r\n }\r\n\r\n {\r\n this.state.addCard === true ? (\r\n \r\n ) : null\r\n }\r\n\r\n \r\n \r\n\r\n
\r\n\r\n\r\n
\r\n

CARDS

\r\n
\r\n\r\n\r\n
\r\n\r\n {\r\n this.state.cardList != null ? (\r\n {\r\n this.state.cardList.map((card, i) => (\r\n \r\n this.cardSelected(card.srcDigitalCardId)\r\n }\r\n >\r\n \r\n Card Art\r\n <\r\n Col xs={\r\n 8\r\n }\r\n style={\r\n {\r\n textAlign: \"left\"\r\n }\r\n } >\r\n

{\r\n card.digitalCardData\r\n .presentationName\r\n }\r\n
\r\n \r\n XXXX - XXXX - XXXX - {\r\n card.panLastFour\r\n }

\r\n \r\n
\r\n ))\r\n }\r\n
\r\n ) :

No cards available.

\r\n }\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {this.state.dcfInvokeStatus ? (\r\n \r\n {this.state.dcfInvokeMsg}\r\n \r\n ) : null}\r\n \r\n {\r\n this.state.errorStatus ? ( {\r\n this.state.errorMessage\r\n }
{\r\n this.state.errorDescription\r\n }
\r\n ) : null\r\n }
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n loader: state.reducer.loaderState,\r\n idTokens: state.reducer.idTokens,\r\n srcCorrelationId: state.reducer.srcCorrelationId,\r\n srciTransactionId: state.reducer.srciTransactionId\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(ProfilePage);","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport { store } from \"../../redux/store\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Col, Row } from \"reactstrap\";\r\nimport { loaderState, srcCorrelationId, cardList, idTokens } from \"../../redux/actions/Action\";\r\nimport { connect } from \"react-redux\";\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\nimport { Input, Label } from \"reactstrap\";\r\n\r\nexport class ST_ProfilePage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n errorDescription: \"\",\r\n cardList: null,\r\n checkoutResponse: null,\r\n completeTransaction: false,\r\n noWindowRef: false,\r\n blankWindowRef: false,\r\n contentWindow: true,\r\n dcfInvokeStatus: false,\r\n dcfInvokeMsg: \"\",\r\n invokeType: \"\",\r\n enrollCard: false\r\n };\r\n this.cardSelected = this.cardSelected.bind(this);\r\n }\r\n async componentDidMount() {\r\n store.dispatch(loaderState(true));\r\n\r\n var srcProfiles = {};\r\n srcProfiles.idTokens = store.getState().reducer.idTokens;\r\n\r\n try {\r\n let response = await window.DGNCheckout.getSrcProfile(srcProfiles);\r\n if (response.srcCorrelationId) {\r\n store.dispatch(srcCorrelationId(response.srcCorrelationId));\r\n\r\n this.setState({ cardList: response.profiles[0].maskedCards });\r\n store.dispatch(cardList(response.profiles[0].maskedCards));\r\n } else {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error.reason,\r\n errorDescription: response.error.message\r\n });\r\n }\r\n store.dispatch(loaderState(false));\r\n } catch (error) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.reason,\r\n errorDescription: error.description\r\n });\r\n }\r\n }\r\n\r\n selectDcfInvoke = dcfInvokeType => {\r\n let type = dcfInvokeType.target.value\r\n\r\n switch (type) {\r\n case \"noWindowRef\":\r\n this.setState({ noWindowRef: true, blankWindowRef: false, contentWindow: false, dcfInvokeStatus: false });\r\n break\r\n\r\n case \"blank\":\r\n this.setState({ blankWindowRef: true, noWindowRef: false, contentWindow: false, dcfInvokeStatus: false });\r\n break\r\n\r\n case \"contentWindow\":\r\n this.setState({ contentWindow: true, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false });\r\n break\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n cardSelected = async cardId => {\r\n let dcfWindow;\r\n\r\n try {\r\n var maskedCards = store.getState().reducer.cardList;\r\n\r\n if (maskedCards != null && maskedCards.length > 0) {\r\n maskedCards.forEach(function (item, index) {\r\n if (item.srcDigitalCardId != null && item.srcDigitalCardId == cardId) {\r\n store.dispatch(cardList(item));\r\n }\r\n });\r\n }\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n var checkout = await DataParamsController.getParamsForTheAPICall(\"checkout\");\r\n\r\n const { location: { state: { response: { dcfActionCode } } } } =\r\n this.props.location && this.props.location.state &&\r\n this.props.location.state.response ?\r\n this.props :\r\n { location: { state: { response: { dcfActionCode: null } } } };\r\n\r\n\r\n\r\n checkout.srciTransactionId = SRCWrapper.srcTransactionID;\r\n checkout.srcCorrelationId = store.getState().reducer.srcCorrelationId;\r\n checkout.srcDigitalCardId = cardId;\r\n\r\n let value = {};\r\n\r\n if (this.state.contentWindow === true) {\r\n let dcfIframe = document.createElement('iframe');\r\n dcfIframe.setAttribute('id', 'dcfIframe');\r\n dcfIframe.setAttribute('name', 'DCFIframe');\r\n dcfIframe.setAttribute('src', '');\r\n dcfIframe.style.zIndex = '2';\r\n dcfIframe.style.position = \"absolute\";\r\n dcfIframe.style.display = 'block';\r\n dcfIframe.style.width = '30%';\r\n dcfIframe.style.height = '92vh';\r\n dcfIframe.style.margin = '2% 35%';\r\n document.body.after(dcfIframe, document.body);\r\n checkout.windowRef = document.getElementById('dcfIframe').contentWindow;\r\n }\r\n\r\n if (this.state.blankWindowRef === true) {\r\n dcfWindow = window.open('about:blank');\r\n checkout.windowRef = dcfWindow;\r\n }\r\n\r\n console.log(checkout);\r\n\r\n let testCaseInfo = await SRCWrapper.logTestcaseInfo(value, store.getState().reducer.srcCorrelationId, null);\r\n\r\n let response = await window.DGNCheckout.checkout(checkout);\r\n console.log(response);\r\n\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n switch (response.dcfActionCode) {\r\n case \"COMPLETE\":\r\n this.setState({ completeTransaction: true });\r\n break;\r\n\r\n case \"ADD_CARD\":\r\n this.setState({ enrollCard: true, addCard: true });\r\n break;\r\n\r\n case \"SWITCH_CONSUMER\":\r\n this.setState({ switchConsumer: true });\r\n break;\r\n\r\n case \"CHANGE_CARD\":\r\n await this.componentDidMount();\r\n break;\r\n\r\n default: // CANCEL || ERROR\r\n if (response.dcfActionCode == \"ERROR\") {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error.errorCode,\r\n errorDescription: response.error.errorDescription\r\n });\r\n }\r\n }\r\n store.dispatch(loaderState(false));\r\n } catch (error) {\r\n console.log(error);\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n console.log(frame);\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.reason,\r\n errorDescription: error.description\r\n });\r\n }\r\n };\r\n\r\n enrollCardClick = () => {\r\n this.setState({ enrollCard: true, addCard: true });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n {\r\n this.state.completeTransaction === true &&\r\n this.state.enrollCard === false ? (<\r\n Redirect to=\"/scenario_3/thank-you\"\r\n />\r\n ) : null}\r\n\r\n {\r\n this.state.completeTransaction === true &&\r\n this.state.enrollCard === true ? (<\r\n Redirect to=\"/scenario_5/thank-you\"\r\n />\r\n ) : null}\r\n\r\n {\r\n this.state.enrollCard === true ? (\r\n \r\n ) : null}\r\n\r\n\r\n \r\n \r\n\r\n
\r\n\r\n\r\n
\r\n

CARDS

\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n {\r\n this.state.cardList != null ? (\r\n {\r\n this.state.cardList.map((card, i) => (\r\n \r\n this.cardSelected(card.srcDigitalCardId)\r\n }\r\n >\r\n \r\n Card Art\r\n <\r\n Col xs={\r\n 8\r\n }\r\n style={\r\n {\r\n textAlign: \"left\"\r\n }\r\n } >\r\n

{\r\n card.digitalCardData\r\n .presentationName\r\n }\r\n
\r\n \r\n XXXX - XXXX - XXXX - {\r\n card.panLastFour\r\n }

\r\n \r\n
\r\n ))\r\n }\r\n
\r\n ) :

No Cards Available.

\r\n }\r\n\r\n \r\n\r\n
\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {this.state.dcfInvokeStatus ? (\r\n \r\n {this.state.dcfInvokeMsg}\r\n \r\n ) : null}\r\n \r\n {\r\n this.state.errorStatus ? ( {\r\n this.state.errorMessage\r\n }
{\r\n this.state.errorDescription\r\n }
\r\n ) : null\r\n }
\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n\r\n }\r\n\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n loader: state.reducer.loaderState,\r\n idTokens: state.reducer.idTokens,\r\n srcCorrelationId: state.reducer.srcCorrelationId,\r\n srciTransactionId: state.reducer.srciTransactionId\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(ST_ProfilePage);","import React, { Component } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Container } from 'react-bootstrap';\r\nimport { SearchNavBarComponent } from '../../components/SearchNavBar';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, idTokens, dpaID } from \"../../redux/actions/Action\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\n\r\nvar urlDataParam = false;\r\n\r\nexport class ST_CheckoutPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.processQueryParams();\r\n\r\n this.state = {\r\n responseStatus: false,\r\n responseMessage: \"\",\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n dataConfiguration: []\r\n\r\n };\r\n }\r\n\r\n // Getting query params from URL\r\n processQueryParams() {\r\n var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');\r\n let jwtToken = \"\";\r\n let type = \"manual\";\r\n\r\n for (var i = 0; i < url.length; i++) {\r\n var urlparam = url[i].split('=');\r\n if (urlparam[0] == \"data\") {\r\n jwtToken = urlparam[1];\r\n urlDataParam = true;\r\n }\r\n if (urlparam[0] == \"type\") {\r\n type = urlparam[1];\r\n }\r\n }\r\n\r\n SRCWrapper.decodeJWTToken(jwtToken, type);\r\n };\r\n\r\n handleCheckoutClick = async () => {\r\n // Taking screen-shot\r\n\r\n try {\r\n var dataURL;\r\n html2canvas(document.querySelector('#checkoutTrigger'), {\r\n width: 1000,\r\n height: 700\r\n })\r\n .then(function (canvas) {\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n var initializationParams = await DataParamsController.getParamsForTheAPICall(\"init\");\r\n\r\n initializationParams.srciTransactionId = SRCWrapper.srcTransactionID;\r\n store.dispatch(loaderState(true));\r\n\r\n try {\r\n // init call\r\n let initResponse = await window.DGNCheckout.init(initializationParams);\r\n\r\n\r\n if (initResponse.status == \"200\") {\r\n let recongizeResponse = await window.DGNCheckout.isRecognized();\r\n\r\n if (recongizeResponse.recognized == true) {\r\n logImage(SRCWrapper.srcTransactionID, \"init\", dataURL);\r\n store.dispatch(loaderState(false));\r\n store.dispatch(idTokens(recongizeResponse.idTokens));\r\n this.setState({ responseStatus: true });\r\n\r\n // Need to implement if recongized is true.\r\n } else {\r\n this.setState({ responseStatus: false });\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"UnKnown device\",\r\n });\r\n }\r\n } else {\r\n store.dispatch(loaderState(true));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: initResponse.description,\r\n });\r\n }\r\n\r\n } catch (error) {\r\n store.dispatch(loaderState(true));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.description,\r\n });\r\n }\r\n };\r\n\r\n inputFocusout = async (event) => {\r\n var inputValue = event.target.textContent;\r\n var inputID = event.target.id;\r\n var inputGroupName = event.target.closest(\"td\").getAttribute('groupname');\r\n var counter = event.target.closest(\"td\").getAttribute('counter');\r\n\r\n console.log(inputValue + \" \" + inputID + \" \" + inputGroupName + \" \" + counter);\r\n\r\n DataParamsController.updateTestDataValueInStore(inputID, inputValue, inputGroupName, counter);\r\n };\r\n\r\n closePopUpClick = async (event) => {\r\n document.getElementById(\"myModal\").style.display = \"none\";\r\n document.getElementById(\"myCloseModal\").style.display = \"none\";\r\n };\r\n\r\n handlePopUpClick = async () => {\r\n var configuration = await DataParamsController.getParamsForTheConfiguration();\r\n\r\n console.log(configuration);\r\n if (configuration != null && configuration.length > 0) {\r\n this.setState({ dataConfiguration: configuration });\r\n document.getElementById(\"myModal\").style.display = \"block\";\r\n } else {\r\n document.getElementById(\"myCloseModal\").style.display = \"block\";\r\n }\r\n };\r\n\r\n handleToggleClick = async (event) => {\r\n event.target.classList.toggle(\"active\");\r\n var content = event.target.nextElementSibling;\r\n\r\n if (content.style.maxHeight) {\r\n content.style.maxHeight = null;\r\n } else {\r\n content.style.maxHeight = content.scrollHeight + \"px\";\r\n }\r\n }\r\n\r\n\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n\r\n if (urlDataParam) {\r\n document.getElementById(\"btnConfiguration\").style.display = \"block\";\r\n } else {\r\n document.getElementById(\"btnConfiguration\").style.display = \"none\";\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {this.state.responseStatus ? : null}\r\n \r\n \r\n\r\n

YOUR CART


\r\n
\r\n
\r\n

ITEMS:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The Godfather by Mario Puzo

\r\n\r\n

\r\n Qty: 1

\r\n

\r\n In Stock

\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n\r\n
\r\n
SUBTOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
ESTIMATED SHIPPING &
HANDLING
\r\n
FREE
\r\n
\r\n\r\n
\r\n
TOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n {this.state.errorStatus ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n ×\r\n

Test Data Configuration

\r\n\r\n {\r\n this.state.dataConfiguration.map((element, i) => {\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n element.Fields.map((field, counter) => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n )\r\n })\r\n }\r\n\r\n
Param NameDefault Value
{field.ParameterName}\r\n
{field.DefaultData}
\r\n\r\n {/* */}\r\n
\r\n
\r\n\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n ×\r\n

No data available for configuration

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n alert();\r\n return {\r\n loader: state.reducer.loaderState\r\n };\r\n};\r\n\r\n//export default connect(mapStateToProps)(CheckoutPage);","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Abhishek\r\n\r\nimport React, { Component } from 'react';\r\nimport { slide as Menu } from \"react-burger-menu\";\r\nimport { Accordion, Card, Table, Dropdown } from 'react-bootstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faPlusCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport { store } from \"../redux/store\";\r\nimport { loaderState } from \"../redux/actions/Action\";\r\nimport IRAController from \"../Controllers/IRAController\";\r\nimport SRCWrapper from \"../utility/SRCWrapper\";\r\nimport IRA_Checkout from \"../pages/independent_reference_app/IRA_Checkout\";\r\nimport DataParamsController from \"../Controllers/DataParamsController\";\r\nimport { selectedEnvironments } from \"../redux/actions/Action\";\r\nimport EnvironWrapper from \"../utility/EnvironWrapper\";\r\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\r\nimport $ from \"jquery\";\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\nimport IRAJson from \"../IRAConfiguration.json\";\r\nimport { Auth } from 'aws-amplify';\r\nvar beautify = require(\"json-beautify\");\r\n\r\n\r\nvar urlDataParam = false;\r\nvar ParameterName = null;\r\nvar DefaultData = null;\r\nexport class ConfigureComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.GetAllEnvironments();\r\n this.state = {\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n dataConfiguration: [],\r\n UIJsonConfig: [],\r\n environmnets: [],\r\n checkedEnvs: [],\r\n inActiveEnvs: [],\r\n isUIJsonEdit: false,\r\n body: \"\",\r\n developerMode: false\r\n };\r\n this.onEnvSelection = this.onEnvSelection.bind(this);\r\n this.handleDragEnd = this.handleDragEnd.bind(this);\r\n this.ChangeSdkParamEditMode = this.ChangeSdkParamEditMode.bind(this);\r\n this.onHandleChange = this.onHandleChange.bind(this);\r\n //this.downloadSDKs = this.downloadSDKs.bind(this);\r\n //this.fetchSDKAvalibity = this.fetchSDKAvalibity.bind(this); \r\n\r\n }\r\n\r\n onHandleChange = async (event) => {\r\n this.inputFocusout(event);\r\n };\r\n\r\n onEnvSelection = async (i, e) => {\r\n // alteast one env should be selected\r\n if ($('input.checboxVisibility:checkbox').filter(':checked').length < 1) {\r\n return;\r\n }\r\n\r\n var tempMobileEnv = \"\";\r\n\r\n //For Mobile platform\r\n //For Mobile use = IRAJson.Platform == \"MOBILE\" in below if statement\r\n if (IRAJson.Platform == \"MOBILE\") {\r\n $('input:checkbox').on('change', function () {\r\n $('input:checkbox').not(this).prop('checked', false);\r\n });\r\n }\r\n\r\n var envArr = this.state.checkedEnvs;\r\n var envName = e.target.value;\r\n\r\n // Based on the environment selection in the UI, Updating the env Arr values.\r\n //For Mobile use = IRAJson.Platform == \"MOBILE\" in below if statement\r\n if (IRAJson.Platform == \"MOBILE\") { // For mobile\r\n tempMobileEnv = envArr[0];\r\n envArr[0] = envName;\r\n } else {\r\n e.target.checked ? envArr.push(envName)\r\n : envArr.splice(envArr.indexOf(envName), 1);\r\n }\r\n\r\n // envArr.length;\r\n var arrEnvironmnets = this.state.environmnets;\r\n\r\n var tempArr = [];\r\n envArr.map(function (e) {\r\n var arrIndex = arrEnvironmnets.indexOf(e.replace(\"-\", \" \"));\r\n if (arrIndex > -1) {\r\n tempArr.push(arrEnvironmnets[arrIndex]);\r\n arrEnvironmnets.splice(arrIndex, 1);\r\n }\r\n });\r\n\r\n tempArr = tempArr.concat(arrEnvironmnets);\r\n\r\n this.setState({ environmnets: tempArr });\r\n this.setState({ checkedEnvs: envArr });\r\n\r\n IRA_Checkout.updateEnvironmentNameInUI(this.state.checkedEnvs);\r\n\r\n if (e.target.checked) {\r\n await this.onChangeEnvironment(envName);\r\n } else {\r\n // If env unchecked removing env from redux and cookies\r\n await this.RemoveUnselectedEnvFromConfig(envName);\r\n }\r\n\r\n //For Mobile use = IRAJson.Platform == \"MOBILE\" in below if statement\r\n if (IRAJson.Platform == \"MOBILE\") {\r\n // If env unchecked removing env from redux and cookies\r\n await this.RemoveUnselectedEnvFromConfig(tempMobileEnv);\r\n }\r\n\r\n // getting params for the config editor\r\n await this.fetchConfigurationParams();\r\n\r\n }\r\n\r\n\r\n fetchConfigurationParams = async () => {\r\n if (this.state.isUIJsonEdit) {\r\n\r\n // This is to edit the sdk params in the Json text area (For tech pepole)\r\n var UIJsonEditConfig = await DataParamsController.getParamsForJsonEditConfig();\r\n\r\n if (UIJsonEditConfig != null && UIJsonEditConfig.length > 0) {\r\n UIJsonEditConfig = await IRAController.loadConfigureDataBasedOnJsonEditor(UIJsonEditConfig);\r\n this.setState({ UIJsonConfig: UIJsonEditConfig });\r\n }\r\n return true;\r\n }\r\n\r\n // This is to edit the sdk params in the text field (For business pepole)\r\n var configuration = await DataParamsController.getParamsForTheConfiguration();\r\n\r\n if (configuration != null && configuration.length > 0) {\r\n configuration = await IRAController.loadConfigureDataAsPerEnvironment(configuration);\r\n this.setState({ dataConfiguration: configuration });\r\n }\r\n\r\n return true;\r\n }\r\n\r\n handleConfigureButtonClick = async () => {\r\n if (document.getElementsByClassName(\"bm-burger-button\") != null) {\r\n document.getElementsByClassName(\"bm-burger-button\").Click();\r\n }\r\n }\r\n\r\n RemoveUnselectedEnvFromConfig = async (envName) => {\r\n var tempEnvArr = store.getState().reducer.selectedEnvironments;\r\n tempEnvArr.splice(tempEnvArr.findIndex(env => env.ParticipantName == envName), 1);\r\n store.dispatch(selectedEnvironments(tempEnvArr));\r\n\r\n await IRAController.checkExistingConfigEnvCookies(envName);\r\n EnvironWrapper.removeSDKobject(envName);\r\n\r\n await this.disableNonActiveEnv(true, envName);\r\n }\r\n\r\n onChangeEnvironment = async (envName) => {\r\n store.dispatch(loaderState(true));\r\n\r\n if (envName != \"\") {\r\n var isConfigured = await IRAController.configureSDKEnvironment(envName, true);\r\n await this.disableNonActiveEnv(isConfigured, envName);\r\n }\r\n\r\n store.dispatch(loaderState(false));\r\n };\r\n\r\n processQueryParams = async () => {\r\n var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');\r\n let jwtToken = \"\";\r\n let type = \"manual\";\r\n\r\n var isUrlProcessed = false;\r\n\r\n for (var i = 0; i < url.length; i++) {\r\n var urlparam = url[i].split('=');\r\n if (urlparam[0] == \"data\") {\r\n jwtToken = urlparam[1];\r\n urlDataParam = true;\r\n }\r\n if (urlparam[0] == \"type\") {\r\n type = urlparam[1];\r\n }\r\n }\r\n\r\n if (urlDataParam) {\r\n SRCWrapper.decodeJWTToken(jwtToken, type);\r\n isUrlProcessed = true;\r\n }\r\n return isUrlProcessed;\r\n };\r\n\r\n disableNonActiveEnv = async (isConfigured, envName = \"\") => {\r\n var errorStatus = false;\r\n var errorMessage = \"\";\r\n\r\n var inActiveEnvs = [];\r\n inActiveEnvs = this.state.inActiveEnvs;\r\n\r\n if (!isConfigured) {\r\n if (!inActiveEnvs.includes(envName)) {\r\n this.state.inActiveEnvs.push(envName);\r\n }\r\n } else {\r\n if (inActiveEnvs.includes(envName) && inActiveEnvs.indexOf(envName) > -1) {\r\n inActiveEnvs.splice(inActiveEnvs.indexOf(envName), 1);\r\n this.setState({ inActiveEnvs: inActiveEnvs });\r\n }\r\n }\r\n\r\n if (inActiveEnvs.length > 0) {\r\n errorStatus = true;\r\n errorMessage = \"The selected environment is not active. Please select another or contact admin\";\r\n }\r\n\r\n IRA_Checkout.disableCheckoutButton(errorStatus, errorMessage);\r\n }\r\n\r\n ChangeSdkParamEditMode = async (event) => {\r\n var cookieValue = \"YES\";\r\n\r\n if (this.state.isUIJsonEdit) {\r\n await this.setState(\r\n { isUIJsonEdit: false },\r\n () => {\r\n console.log(\"ui json edit false\");\r\n }\r\n );\r\n cookieValue = \"NO\";\r\n DataParamsController.developerMode = false;\r\n } else {\r\n await this.setState(\r\n { isUIJsonEdit: true },\r\n () => {\r\n console.log(\"ui json edit true\");\r\n }\r\n );\r\n\r\n DataParamsController.developerMode = true;\r\n }\r\n\r\n await IRAController.createCookie(\"uiJSONEdit\", cookieValue, false);\r\n await this.fetchConfigurationParams();\r\n }\r\n\r\n // Getting query params from URL\r\n GetAllEnvironments = async () => {\r\n store.dispatch(loaderState(true));\r\n\r\n // If the app is invoked from lithos tool\r\n var isURLProcessed = await this.processQueryParams();\r\n\r\n // This is only for IRA\r\n if (!isURLProcessed) {\r\n\r\n var envFetched = await IRAController.getAllEnvironment();\r\n if (envFetched != null) {\r\n // Loding configure option params\r\n var env = await IRAController.loadConfigureDataForIndependentRefApp();\r\n\r\n var arrEnvironmnets = [];\r\n\r\n // Get the assgined environment for the logged in user\r\n if (env != null && env.length > 0) {\r\n env.forEach((environment) => {\r\n arrEnvironmnets.push(environment);\r\n });\r\n //For Mobile use = IRAJson.Platform == \"MOBILE\" in below if statement\r\n if (IRAJson.Platform == \"MOBILE\") {\r\n // If env unchecked removing env from redux and cookies\r\n await this.fetchSDKAvalibity(arrEnvironmnets);\r\n }\r\n } else {\r\n this.setState({ errorStatus: true, errorMessage: \"No environment assigned. Please contact admin\" });\r\n IRA_Checkout.disableCheckoutButton(true, \"No environment assigned. Please contact admin\");\r\n return;\r\n }\r\n\r\n var isEnvChanged = true;\r\n\r\n // Setting first env as default\r\n var configEnvs = arrEnvironmnets.length > 0 ? [{ envName: arrEnvironmnets[0] }] : \"\";\r\n\r\n // Checking whether the cookie presents or not\r\n var selectEnvCookie = await IRAController.getCookie(\"configEnvs\");\r\n\r\n if (selectEnvCookie != \"\") {\r\n configEnvs = selectEnvCookie;\r\n isEnvChanged = false;\r\n\r\n var tempArr = [];\r\n configEnvs.map(function (e) {\r\n var arrIndex = arrEnvironmnets.indexOf(e.envName.replace(\"-\", \" \"));\r\n if (arrIndex > -1) {\r\n tempArr.push(arrEnvironmnets[arrIndex]);\r\n arrEnvironmnets.splice(arrIndex, 1);\r\n }\r\n });\r\n\r\n tempArr = tempArr.concat(arrEnvironmnets);\r\n\r\n this.setState({ environmnets: tempArr });\r\n } else {\r\n // Loding select box\r\n this.setState({ environmnets: arrEnvironmnets });\r\n }\r\n\r\n // Setting a env as default in intial load \r\n // or setting it from cookie or If user wish to change they can change.\r\n if (configEnvs != \"\") {\r\n let tempEnvs = configEnvs.map(function (e) { return e.envName.trim().replace(\"-\", \" \") });\r\n\r\n this.setState({ checkedEnvs: tempEnvs });\r\n IRA_Checkout.updateEnvironmentNameInUI(configEnvs);\r\n\r\n for (var index = 0; index < configEnvs.length; index++) {\r\n if (configEnvs[index].envName != null) {\r\n var isConfigured = await IRAController.configureSDKEnvironment(configEnvs[index].envName.replace(\"-\", \" \"), isEnvChanged);\r\n await this.disableNonActiveEnv(isConfigured, configEnvs[index]);\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n await IRAController.loadConfigureDataForIndependentRefApp();\r\n }\r\n\r\n var user = store.getState().reducer.userDetails;\r\n\r\n let setterDeveloperMode = false;\r\n\r\n if (user.UIJsonEdit) {\r\n var uiJsonEditCookie = await IRAController.getCookie(\"uiJSONEdit\", false);\r\n\r\n var isEnabled = true;\r\n if (uiJsonEditCookie != \"\") {\r\n isEnabled = uiJsonEditCookie == \"YES\" ? true : false;\r\n setterDeveloperMode = isEnabled;\r\n }\r\n\r\n if (uiJsonEditCookie == \"\") {\r\n await IRAController.createCookie(\"uiJSONEdit\", \"YES\", false);\r\n }\r\n\r\n this.setState({ isUIJsonEdit: isEnabled, developerMode: true });\r\n } else {\r\n this.setState({ isUIJsonEdit: false, developerMode: false });\r\n }\r\n\r\n DataParamsController.developerMode = setterDeveloperMode;\r\n\r\n // this.setState({ isUIJsonEdit: user.UIJsonEdit });\r\n\r\n // getting params for the config edit\r\n await this.fetchConfigurationParams();\r\n\r\n store.dispatch(loaderState(false));\r\n };\r\n\r\n inputFocusout = async (event) => {\r\n var inputValue = (event.target.value != null) ? event.target.value : event.target.textContent;\r\n var inputID = event.target.id;\r\n var inputGroupName = event.target.closest(\"td\").getAttribute('groupname');\r\n var counter = event.target.closest(\"td\").getAttribute('counter');\r\n\r\n await DataParamsController.updateTestDataValueInStore(inputID, inputValue, inputGroupName, counter);\r\n };\r\n\r\n jsonTextareaEdit = async (event) => {\r\n var jsonValue = (event.target.value != null) ? event.target.value : event.target.textContent;\r\n var inputGroupName = event.target.getAttribute('groupname');\r\n var envValue = event.target.getAttribute(\"envname\");\r\n\r\n try {\r\n jsonValue = JSON.parse(jsonValue); // Json check \r\n jsonValue.envName = envValue;\r\n\r\n // Hiding error message\r\n $('#alert').removeClass(\"show\");\r\n\r\n if (document.getElementById(\"btnSRCCheckout\") != null) {\r\n document.getElementById(\"btnSRCCheckout\").removeAttribute(\"disabled\");\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n\r\n // Showing error message\r\n $('#alert').addClass(\"show\");\r\n if (document.getElementById(\"btnSRCCheckout\") != null) {\r\n document.getElementById(\"btnSRCCheckout\").setAttribute(\"disabled\", true);\r\n }\r\n return;\r\n }\r\n var arrCounter = event.target.getAttribute('counter');\r\n await DataParamsController.updateJsonEditorConfigData(inputGroupName, jsonValue, arrCounter);\r\n };\r\n\r\n //Function for Enviroment DragDroping \r\n handleDragEnd = async (results) => {\r\n let envId = document.getElementById(results.draggableId + \"ID\").checked;\r\n\r\n // Only allow to do drag & drop if env is selected\r\n if (envId && results.destination) {\r\n let tempEnv = [...this.state.environmnets];\r\n\r\n // Re-arranging envs based on the drag & dop in the UI \r\n let [selectedRow] = tempEnv.splice(results.source.index, 1);\r\n tempEnv.splice(results.destination.index, 0, selectedRow);\r\n this.setState({ environmnets: tempEnv });\r\n\r\n // Changing the env list display in the UI\r\n this.state.checkedEnvs = tempEnv.slice(0, this.state.checkedEnvs.length);\r\n IRA_Checkout.updateEnvironmentNameInUI(this.state.checkedEnvs);\r\n\r\n // Re-arranging the cookies order based on drag and drop\r\n var tempCookieArr = [];\r\n var selectEnvCookie = await IRAController.getCookie(\"configEnvs\");\r\n\r\n this.state.checkedEnvs.map(function (e) {\r\n selectEnvCookie.map(function (cookie) {\r\n if (e.replace(\" \", \"-\") == cookie.envName) {\r\n tempCookieArr.push(cookie);\r\n return;\r\n }\r\n });\r\n });\r\n\r\n if (tempCookieArr.length > 0) {\r\n await IRAController.createCookie(\"configEnvs\", tempCookieArr, true);\r\n }\r\n\r\n // re-ordering for execution\r\n EnvironWrapper.selectedEnvs = this.state.checkedEnvs;\r\n //For Mobile use = IRAJson.Platform == \"MOBILE\" in below if statement\r\n if (IRAJson.Platform == \"MOBILE\") {\r\n // If env unchecked removing env from redux and cookies\r\n this.fetchSDKAvalibity(tempEnv);\r\n }\r\n }\r\n };\r\n\r\n // Downoloading mobile SRCIs from the config window\r\n downloadSDKs = async (event) => {\r\n event.preventDefault();\r\n var temp = event.target.id;\r\n var [participateName, sdkType] = temp.split('-')\r\n\r\n var fileName = sdkType == \"android\" ? participateName + \".apk\" : participateName + \".ipa\";\r\n // var dataParams = {\r\n // participateName: participateName,\r\n // sdkType: sdkType\r\n // }\r\n store.dispatch(loaderState(true));\r\n let options = {\r\n method: \"POST\",\r\n headers: { 'Access-Control-Allow-Origin': '*', \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({ participateName: participateName, sdkType: sdkType })\r\n };\r\n\r\n const response = await fetch(loggerHost.downloadSDK, options)\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n // 2. Create blob link to download\r\n if (blob.size != 0) {\r\n // 2. Create blob link to download\r\n const url = window.URL.createObjectURL(new Blob([blob]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', fileName);\r\n // 3. Append to html page\r\n document.body.appendChild(link);\r\n // 4. Force download\r\n link.click();\r\n // 5. Clean up and remove the link\r\n //link.parentNode.removeChild(link);\r\n store.dispatch(loaderState(false));\r\n }\r\n else {\r\n store.dispatch(loaderState(false));\r\n $('#alert').addClass(\"show\");\r\n setTimeout(function () {\r\n $('#alert').removeClass(\"show\");\r\n }, 5000);\r\n }\r\n }).catch((error) => {\r\n store.dispatch(loaderState(false));\r\n $('#alert').addClass(\"show\");\r\n setTimeout(function () {\r\n $('#alert').removeClass(\"show\");\r\n }, 5000);\r\n });\r\n };\r\n\r\n fetchSDKAvalibity = async (arrEnvironmnets) => {\r\n var user = await Auth.currentAuthenticatedUser();\r\n var arr = arrEnvironmnets.toString();\r\n var isEditJson = false\r\n let options = {\r\n method: \"POST\",\r\n headers: { 'Access-Control-Allow-Origin': '*', \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({ arrEnvironmnets: arr, email: user.username })\r\n };\r\n\r\n const response = await fetch(loggerHost.fetchSDK, options)\r\n .then(response => {\r\n let json = response.json();\r\n json.then(function (result) {\r\n var tempList = JSON.parse(result.data);\r\n\r\n isEditJson = JSON.parse(tempList[0]).isUIJsonEdit;\r\n\r\n this.setState({ isUIJsonEdit: isEditJson })\r\n\r\n tempList.forEach(element => {\r\n var List = JSON.parse(element);\r\n var android = List.EnvName + \"-android\";\r\n var IOS = List.EnvName + \"-IOS\";\r\n if (List.Android == true) {\r\n document.getElementById(android).onclick = null;\r\n document.getElementById(android).classList.remove(\"disableSDK\");\r\n }\r\n\r\n if (List.IOS == true) {\r\n document.getElementById(IOS).onclick = null;\r\n document.getElementById(IOS).classList.remove(\"disableSDK\");\r\n }\r\n });\r\n });\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n Please add a valid JSON\r\n {/* */}\r\n
\r\n \r\n
SRCI Configuration
\r\n \r\n \r\n Environment\r\n \r\n \r\n \r\n this.handleDragEnd(results)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* ADD \"hideDownloadSrci\" in className in next line for Mobile App*/}\r\n {/* */}\r\n \r\n \r\n \r\n {(provided) => (\r\n \r\n {this.state.environmnets.map((element, counter) => {\r\n return (\r\n \r\n {(provided) => (\r\n \r\n \r\n \r\n \r\n {/* ADD \"hideDownloadSrci\" in className in next line for Mobile App*/}\r\n {/* */}\r\n \r\n )}\r\n \r\n );\r\n })}\r\n {provided.placeholder}\r\n \r\n )}\r\n \r\n
NameSelect to executeExecution OrderDownload SRCI
\r\n

\r\n {element}\r\n

\r\n
\r\n env == element) ? true : false}\r\n name=\"env\" type=\"checkbox\" value={element} id={element + \"ID\"} />\r\n {counter + 1}\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Health Check\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ModuleStatus
SDK
DCF
SRC
\r\n
\r\n
\r\n
\r\n \r\n \r\n Add SRC\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n
Master Card SRC
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n {this.state.developerMode ?\r\n
\r\n Developer Mode \r\n \r\n
: \"\"\r\n }\r\n
\r\n\r\n {\r\n this.state.isUIJsonEdit ? this.state.UIJsonConfig.map((element, i) => {\r\n return (\r\n \r\n \r\n {element.GroupName}\r\n \r\n \r\n \r\n {element.parameters.map((data, counter) => {\r\n return (\r\n
\r\n

{\"Env Name: \" + (data ? JSON.parse(data).envName : \"\")}

\r\n\r\n \r\n
\r\n )\r\n })}\r\n\r\n
\r\n
\r\n
\r\n );\r\n }) : this.state.dataConfiguration.map((element, i) => {\r\n return (\r\n \r\n \r\n {element.GroupName}\r\n \r\n \r\n \r\n\r\n {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n element.Fields.map((field, counter) => {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
Param NameDefault Value
\r\n {(field.HelpData == \"CHANGE_BASED_ON_ENV\") ?\r\n field.Parameters.map((param) => {\r\n return (\r\n
{param.envName}
\r\n )\r\n }) : field.ParameterName\r\n }\r\n
\r\n\r\n {\r\n (field.HelpData == \"CHANGE_BASED_ON_ENV\") ?\r\n (\r\n field.Parameters.map((envParam) => {\r\n return (\r\n
{envParam.envId}
\r\n\r\n\r\n )\r\n\r\n })\r\n\r\n )\r\n : (field.Type == \"JSON\" || field.Type == \"List\") ?\r\n () :\r\n\r\n (field.Type == \"DDL\") ? (\r\n \r\n ) :\r\n (\r\n
{field.DefaultData}
)\r\n }\r\n\r\n
}\r\n
\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n
\r\n )\r\n };\r\n}\r\n","import EnvironWrapper from \"./EnvironWrapper\";\r\nimport IRAController from \"../Controllers/IRAController\";\r\nimport DataParamsController from \"../Controllers/DataParamsController\";\r\nimport { store } from \"../redux/store\";\r\nimport { idTokens, cardList } from \"../redux/actions/Action\";\r\nimport CardEncryption from \"./CardEncryption\";\r\nimport SRCWrapper from \"./SRCWrapper\";\r\n\r\nclass SdkMethodWrapper {\r\n // TODO : Abstract Factory\r\n // web ---> sdkMethodW\r\n // andriod---> \r\n\r\n // ios -- > ios plugin\r\n constructor() {\r\n this.srciError = {\r\n reasonCode: \"SRCI Error\",\r\n description: \"Error in network, Please try after sometime\"\r\n }\r\n\r\n this.logType = \"SRCI to SDK\";\r\n }\r\n\r\n set isRecognizedEnv(env) {\r\n this._isRecognizedEnv = env;\r\n }\r\n\r\n get isRecognizedEnv() {\r\n return this._isRecognizedEnv;\r\n }\r\n\r\n set emailValidatedEnv(env) {\r\n this._emailValidatedEnv = env;\r\n }\r\n\r\n get emailValidatedEnv() {\r\n return this._emailValidatedEnv;\r\n }\r\n\r\n getSelectedEnvironments = async () => {\r\n console.log(EnvironWrapper.selectedEnvs);\r\n return EnvironWrapper.selectedEnvs;\r\n }\r\n\r\n getSDKFunctionParams = async () => { }\r\n\r\n\r\n init = async () => {\r\n this.emailValidatedEnv = null;\r\n this.isRecognizedEnv = null;\r\n\r\n let selectedEnvironments = await this.getSelectedEnvironments();\r\n\r\n let initErrorCounter = 0;\r\n var errorResponse = [];\r\n let params = {};\r\n\r\n\r\n for (const env of selectedEnvironments) {\r\n var initCaughtError = \"\";\r\n\r\n try {\r\n console.log(env);\r\n params = await DataParamsController.getParamsForTheAPICall(\"init\", env);\r\n console.log(params);\r\n\r\n await EnvironWrapper.getSDKObject(env).init(params);\r\n }\r\n catch (error) {\r\n initCaughtError = error;\r\n errorResponse.push(error);\r\n console.log(error);\r\n initErrorCounter++;\r\n }\r\n finally {\r\n var response = \"\";\r\n if (initCaughtError != \"\") {\r\n response = initCaughtError;\r\n }\r\n IRAController.storeCurrentTransactionLogs(params, response, \"init\", this.logType, env);\r\n }\r\n }\r\n\r\n console.log(\"init Error count \" + initErrorCounter);\r\n return selectedEnvironments.length != initErrorCounter ? true : errorResponse[errorResponse.length - 1];\r\n }\r\n\r\n\r\n isRecognized = async () => {\r\n let selectedEnvironments = await this.getSelectedEnvironments();\r\n\r\n var errorResponses = [];\r\n var recongizeResponse = \"\";\r\n\r\n for (const env of selectedEnvironments) {\r\n var isRecognizedCaughtError = \"\";\r\n\r\n try {\r\n recongizeResponse = await EnvironWrapper.getSDKObject(env).isRecognized();\r\n }\r\n catch (error) {\r\n isRecognizedCaughtError = error;\r\n errorResponses.push(error);\r\n console.log(error);\r\n }\r\n finally {\r\n if (isRecognizedCaughtError != \"\") {\r\n recongizeResponse = isRecognizedCaughtError;\r\n }\r\n\r\n IRAController.storeCurrentTransactionLogs({}, recongizeResponse, \"isRecognized\", this.logType, env);\r\n\r\n if (recongizeResponse.recognized == true) {\r\n store.dispatch(idTokens(recongizeResponse.idTokens));\r\n this.isRecognizedEnv = env;\r\n return true;\r\n }\r\n\r\n }\r\n }\r\n\r\n console.log(\"is recognized Error count \" + errorResponses.length);\r\n return selectedEnvironments.length != errorResponses.length ? true : errorResponses[errorResponses.length - 1];\r\n }\r\n\r\n\r\n identityLookup = async (email, isPhoneNoAdded = false) => {\r\n let selectedEnvironments = await this.getSelectedEnvironments();\r\n\r\n if (selectedEnvironments == null || selectedEnvironments.length <= 0) {\r\n return this.srciError;\r\n }\r\n\r\n let params = {};\r\n var lookupResponse = \"\";\r\n var validationErrorResponse = [], errorResponse = [];\r\n var isConsumerPresent = true;\r\n\r\n for (const env of selectedEnvironments) {\r\n var caughtError = \"\";\r\n\r\n try {\r\n params = await DataParamsController.getParamsForTheAPICall(\"identityLookup\", env);\r\n params.consumerIdentity.identityValue = (params.consumerIdentity.identityValue == \"\") ?\r\n email : params.consumerIdentity.identityValue;\r\n\r\n // TODO: Take this from constants\r\n params.consumerIdentity.identityType = (isPhoneNoAdded) ?\r\n \"MOBILE_PHONE_NUMBER\" : params.consumerIdentity.identityType;\r\n\r\n console.log(params);\r\n\r\n lookupResponse = await EnvironWrapper.getSDKObject(env).identityLookup(params);\r\n }\r\n catch (error) {\r\n caughtError = error;\r\n errorResponse.push(error);\r\n }\r\n finally {\r\n if (caughtError != \"\") {\r\n lookupResponse = caughtError;\r\n }\r\n\r\n IRAController.storeCurrentTransactionLogs(params, lookupResponse, \"identityLookup\", this.logType, env);\r\n\r\n if (lookupResponse.consumerPresent != null && lookupResponse.consumerPresent == true) {\r\n var idetityValidation = await this.identityValidation(env);\r\n console.log(idetityValidation);\r\n\r\n if (idetityValidation != null && idetityValidation.validationMessage != null) {\r\n this.emailValidatedEnv = env;\r\n return true;\r\n } else {\r\n validationErrorResponse.push(idetityValidation);\r\n }\r\n } else {\r\n isConsumerPresent = false;\r\n }\r\n }\r\n }\r\n\r\n if (selectedEnvironments.length == errorResponse.length || selectedEnvironments.length == validationErrorResponse.length) {\r\n console.log(validationErrorResponse[validationErrorResponse.length - 1]);\r\n\r\n console.log(typeof (validationErrorResponse[validationErrorResponse.length - 1]));\r\n\r\n\r\n if (selectedEnvironments.length == validationErrorResponse.length) {\r\n return validationErrorResponse[validationErrorResponse.length - 1];\r\n }\r\n\r\n console.log(errorResponse[errorResponse.length - 1]);\r\n\r\n console.log(typeof (errorResponse[errorResponse.length - 1]));\r\n\r\n return errorResponse[errorResponse.length - 1];\r\n }\r\n\r\n return isConsumerPresent;\r\n }\r\n\r\n\r\n identityValidation = async (env) => {\r\n var response = \"\";\r\n\r\n var params = await DataParamsController.getParamsForTheAPICall(\"initiateIdentityValidation\", env);\r\n\r\n console.log(params);\r\n try {\r\n response = await EnvironWrapper.getSDKObject(env).initiateIdentityValidation(params);\r\n } catch (error) {\r\n console.log(error);\r\n response = error;\r\n } finally {\r\n await IRAController.storeCurrentTransactionLogs(params, response, \"initiateIdentityValidation\", this.logType, env);\r\n }\r\n\r\n console.log(response);\r\n\r\n return response;\r\n }\r\n\r\n completeIdentityValidation = async (otp) => {\r\n var response = \"\";\r\n console.log(this.emailValidatedEnv);\r\n\r\n if (this.emailValidatedEnv != null) {\r\n let params = await DataParamsController.getParamsForTheAPICall(\"completeIdentityValidation\", this.emailValidatedEnv);\r\n\r\n console.log(params);\r\n\r\n params.validationData = (params.validationData == \"\") ? otp : params.validationData;\r\n\r\n\r\n response = await this.completeIdentityExecution(this.emailValidatedEnv, params);\r\n console.log(response);\r\n\r\n if (response.idToken != null) {\r\n store.dispatch(idTokens(response.idToken));\r\n return response;\r\n }\r\n else {\r\n return response;\r\n }\r\n } else {\r\n return this.srciError;\r\n }\r\n }\r\n\r\n\r\n completeIdentityExecution = async (env, params) => {\r\n var caughtError = \"\";\r\n try {\r\n var response = await EnvironWrapper.getSDKObject(env).completeIdentityValidation(params);\r\n }\r\n catch (error) {\r\n caughtError = error;\r\n }\r\n finally {\r\n if (caughtError != \"\") {\r\n response = caughtError;\r\n }\r\n\r\n IRAController.storeCurrentTransactionLogs(params, response, \"completeIdentityValidation\", this.logType, env);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n\r\n getSrcProfiles = async () => {\r\n // var profileParams = {};\r\n // console.log(store.getState().reducer.idTokens);\r\n\r\n // if (profileParams.idTokens == null || profileParams.idTokens == \"\") {\r\n // profileParams.idTokens = store.getState().reducer.idTokens;\r\n // }\r\n\r\n // // If store doesn't have idtokens\r\n // if (profileParams.idTokens == null || profileParams.idTokens == \"\") {\r\n // this.srciError.reasonCode = \"idtokens missing\";\r\n // this.srciError.description = \"idtokens missing\";\r\n\r\n // return this.srciError;\r\n // }\r\n\r\n var response = \"\";\r\n\r\n\r\n let selectedEnvironments = await this.getSelectedEnvironments();\r\n\r\n if (selectedEnvironments == null || selectedEnvironments.length <= 0) {\r\n return this.srciError;\r\n }\r\n\r\n\r\n var maskedCards = [], profileDetails = [], errorResponses = [];\r\n for (const env of selectedEnvironments) {\r\n console.log(env);\r\n\r\n let srcProfileParams = await DataParamsController.getParamsForTheAPICall(\"getSrcProfile\", env);\r\n\r\n console.log(srcProfileParams);\r\n console.log(store.getState().reducer.idTokens);\r\n\r\n if (srcProfileParams.idTokens == \"\") {\r\n srcProfileParams.idTokens = store.getState().reducer.idTokens;\r\n }\r\n\r\n console.log(srcProfileParams);\r\n\r\n response = await this.srcProfileSDKMethodExecution(env, srcProfileParams);\r\n\r\n if (response.srcCorrelationId != null && response.profiles.length > 0) {\r\n\r\n if (maskedCards.length != 0) {\r\n maskedCards = response.profiles[0].maskedCards;\r\n } else {\r\n maskedCards.push(response.profiles[0].maskedCards)\r\n }\r\n\r\n var tempProfile = {\r\n srcCorrelationId: response.srcCorrelationId,\r\n maskedCards: response.profiles[0].maskedCards,\r\n env: env\r\n };\r\n\r\n profileDetails.push(tempProfile);\r\n } else {\r\n errorResponses.push(response);\r\n }\r\n }\r\n store.dispatch(cardList(maskedCards));\r\n console.log(\"cp error count \" + errorResponses.length);\r\n\r\n if (selectedEnvironments.length == errorResponses.length) {\r\n return errorResponses[errorResponses.length - 1];\r\n }\r\n\r\n return profileDetails;\r\n }\r\n\r\n checkout = async (env, params) => {\r\n var caughtError = \"\", response = \"\";\r\n\r\n if (env == \"\") {\r\n let selectedEnvironments = await this.getSelectedEnvironments();\r\n\r\n if (selectedEnvironments == null || selectedEnvironments.length <= 0) {\r\n return this.srciError;\r\n }\r\n\r\n env = selectedEnvironments[0];\r\n }\r\n\r\n try {\r\n response = await EnvironWrapper.getSDKObject(env).checkout(params);\r\n }\r\n catch (error) {\r\n caughtError = error;\r\n }\r\n finally {\r\n if (caughtError != \"\") {\r\n response = caughtError;\r\n }\r\n\r\n IRAController.storeCurrentTransactionLogs(params, response, \"checkout\", this.logType, env);\r\n }\r\n\r\n return response;\r\n }\r\n\r\n\r\n srcProfileSDKMethodExecution = async (env, params) => {\r\n var caughtError = \"\";\r\n try {\r\n if (params.dpaTransactionOptions != null) {\r\n delete (params.dpaTransactionOptions);\r\n }\r\n\r\n var response = await EnvironWrapper.getSDKObject(env).getSrcProfile(params);\r\n }\r\n catch (error) {\r\n caughtError = error;\r\n }\r\n finally {\r\n if (caughtError != \"\") {\r\n response = caughtError;\r\n }\r\n\r\n IRAController.storeCurrentTransactionLogs(params, response, \"getSrcProfile\", this.logType, env);\r\n }\r\n\r\n return response;\r\n\r\n }\r\n\r\n // Federated logout\r\n unBindAppInstance = async (env, idToken) => {\r\n var caughtError = \"\";\r\n var params = { idToken: idToken };\r\n\r\n let selectedEnvironments = await this.getSelectedEnvironments();\r\n\r\n if (selectedEnvironments == null || selectedEnvironments.length <= 0) {\r\n return this.srciError;\r\n }\r\n\r\n\r\n var errorResponses = [];\r\n for (const env of selectedEnvironments) {\r\n try {\r\n var response = await EnvironWrapper.getSDKObject(env).unbindAppInstance(params);\r\n }\r\n catch (error) {\r\n caughtError = error;\r\n errorResponses.push(error);\r\n }\r\n finally {\r\n if (caughtError != \"\") {\r\n response = caughtError;\r\n }\r\n\r\n IRAController.storeCurrentTransactionLogs(params, response, \"unbindAppInstance\", this.logType, env);\r\n }\r\n\r\n }\r\n\r\n console.log(\"unbindApp instance Error count \" + errorResponses.length);\r\n return selectedEnvironments.length != errorResponses.length ? true : errorResponses[errorResponses.length - 1];\r\n\r\n }\r\n\r\n enrollCard = async (card, env) => {\r\n if (env == \"\") {\r\n let selectedEnvironments = await this.getSelectedEnvironments();\r\n\r\n if (selectedEnvironments == null || selectedEnvironments.length <= 0) {\r\n return this.srciError;\r\n }\r\n\r\n env = selectedEnvironments[0];\r\n }\r\n\r\n var cardEnrollment = await DataParamsController.getParamsForTheAPICall(\"enrollCard\", env);\r\n cardEnrollment.srciTransactionId = SRCWrapper.srcTransactionID;\r\n\r\n\r\n // Taking the json editor value if the value exist \r\n // or taking the value entered in the UI execution \r\n if (DataParamsController.developerMode) {\r\n card.primaryAccountNumber = cardEnrollment.encryptedCard.card.primaryAccountNumber != \"\" ? cardEnrollment.encryptedCard.card.primaryAccountNumber\r\n : card.primaryAccountNumber;\r\n card.cardSecurityCode = cardEnrollment.encryptedCard.card.cardSecurityCode != \"\" ? cardEnrollment.encryptedCard.card.cardSecurityCode\r\n : card.cardSecurityCode;\r\n card.panExpirationMonth = cardEnrollment.encryptedCard.card.panExpirationMonth != \"\" ? cardEnrollment.encryptedCard.card.panExpirationMonth\r\n : card.panExpirationMonth;\r\n card.panExpirationYear = cardEnrollment.encryptedCard.card.panExpirationYear != \"\" ? cardEnrollment.encryptedCard.card.panExpirationYear\r\n : card.panExpirationYear;\r\n }\r\n\r\n let encryptedCard = await CardEncryption.encrptCardDetails(card, env);\r\n\r\n if (!DataParamsController.developerMode) {\r\n encryptedCard = cardEnrollment.encryptedCard != \"\" ?\r\n cardEnrollment.encryptedCard : encryptedCard\r\n }\r\n\r\n if (encryptedCard != null && encryptedCard != \"\") {\r\n cardEnrollment.encryptedCard = encryptedCard;\r\n } else {\r\n cardEnrollment.card = card;\r\n }\r\n\r\n // For card enrollment, select the first environment beacuse BIN Ranges are same for all environments\r\n var caughtError = \"\";\r\n\r\n try {\r\n var response = await EnvironWrapper.getSDKObject(env).enrollCard(cardEnrollment);\r\n }\r\n catch (error) {\r\n caughtError = error;\r\n }\r\n finally {\r\n if (caughtError != \"\") {\r\n response = caughtError;\r\n }\r\n\r\n IRAController.storeCurrentTransactionLogs(cardEnrollment, response, \"enrollCard\", this.logType, env);\r\n }\r\n\r\n return response;\r\n }\r\n}\r\n\r\nexport default new SdkMethodWrapper();","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport React, { Component } from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Container, Row, Col } from 'react-bootstrap';\r\nimport { SearchNavBarComponent } from \"../../components/SearchNavBar\";\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState } from \"../../redux/actions/Action\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\nimport { Auth } from 'aws-amplify';\r\nimport $ from \"jquery\";\r\nimport { ConfigureComponent } from '../../components/ConfigureWindow';\r\nimport { LogWindow } from '../../components/LogWindow';\r\nimport { NavBarComponent } from '../../components/NavBar';\r\nimport IRAController from \"../../Controllers/IRAController\";\r\nimport SdkMethodWrapper from \"../../utility/SdkMethodWrapper\";\r\nimport EnvironWrapper from \"../../utility/EnvironWrapper\";\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\n\r\n\r\nvar urlDataParam = false;\r\nvar envLength = 0;\r\nexport class IRA_Checkout extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n if (sessionStorage.getItem(\"startDate\") == \"\" || sessionStorage.getItem(\"startDate\") == null) {\r\n var startDate = IRAController.getCurrentUTCDateAndTime();\r\n sessionStorage.setItem(\"startDate\", startDate);\r\n }\r\n\r\n sessionStorage.setItem(\"logType\", \"\");\r\n\r\n this.state = {\r\n isUserSignedIn: true,\r\n responseStatus3: false,\r\n responseStatus7: false,\r\n responseMessage: \"\",\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n show: false,\r\n dataConfiguration: [],\r\n environmnets: [],\r\n checkedEnv: \"\",\r\n envChanged: false,\r\n pageStatus: false,\r\n hideEnv: false\r\n };\r\n this.updateEnvironmentNameInUI = this.updateEnvironmentNameInUI.bind(this);\r\n }\r\n\r\n disableCheckoutButton(errorStatus, errorMessage) {\r\n if (errorStatus && document.getElementById(\"btnSRCCheckout\") != null) {\r\n document.getElementById(\"btnSRCCheckout\").setAttribute(\"disabled\", true);\r\n $(\"#validationMessage\").css('display', 'block');\r\n $(\"#validationMessage\").text(errorMessage);\r\n } else if (document.getElementById(\"btnSRCCheckout\") != null) {\r\n document.getElementById(\"btnSRCCheckout\").removeAttribute(\"disabled\", true);\r\n $(\"#validationMessage\").css('display', 'none');\r\n $(\"#validationMessage\").text(\"\");\r\n }\r\n }\r\n\r\n updateEnvironmentNameInUI = async (envNames) => {\r\n if (document.getElementById(\"envName\") != null && typeof (envNames) != \"string\" &&\r\n envNames != null) {\r\n envLength = envNames.length;\r\n\r\n envNames = envNames.map(function (e) {\r\n if (e.envName != null) {\r\n return e.envName.replace(\"-\", \" \");\r\n } else {\r\n return e.replace(\"-\", \" \");\r\n }\r\n });\r\n\r\n document.getElementById(\"envName\").textContent = \"Environments: \" + envNames.map(x => x + \" \");\r\n }\r\n\r\n store.dispatch(loaderState(false));\r\n };\r\n\r\n onClickConfigureButton = async () => {\r\n $(\".configWindow #react-burger-menu-btn\").click();\r\n };\r\n\r\n handleToggleClick = async (event) => {\r\n event.target.classList.toggle(\"active\");\r\n var content = event.target.nextElementSibling;\r\n\r\n if (content.style.maxHeight) {\r\n content.style.maxHeight = null;\r\n } else {\r\n content.style.maxHeight = content.scrollHeight + \"px\";\r\n }\r\n };\r\n\r\n checkIsSDKScriptsLoaded = (loadedSdks, counter = 0) => {\r\n console.log(loadedSdks + \" -- \" + counter);\r\n counter++;\r\n\r\n if (envLength <= loadedSdks || counter == 25) {\r\n this.setState({ pageStatus: false });\r\n return;\r\n }\r\n this.setState({ pageStatus: true, errorMessage: \"Configuring environment Please wait...\" });\r\n // Recurrsion\r\n setTimeout(() => { this.checkIsSDKScriptsLoaded(SRCWrapper.loadSDKCounter, counter) }, 3000);\r\n return;\r\n }\r\n\r\n handleCheckoutClick = async () => {\r\n var isScriptConfigured = envLength <= SRCWrapper.loadSDKCounter ? true : false;\r\n\r\n if (document.readyState != 'complete' || !isScriptConfigured) {\r\n console.log(isScriptConfigured);\r\n var errorMsg = isScriptConfigured ? \"Page loading please wait...\" : \"Configuring environment Please wait...\";\r\n this.setState({ pageStatus: true, errorMessage: errorMsg });\r\n this.checkIsSDKScriptsLoaded(SRCWrapper.loadSDKCounter, 0);\r\n return;\r\n } else {\r\n this.setState({ pageStatus: false });\r\n }\r\n store.dispatch(loaderState(true));\r\n\r\n var response = await SdkMethodWrapper.init();\r\n\r\n if (response.reasonCode != null || response.description != null) {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: (response.description != null) ? response.description : \"\"\r\n });\r\n store.dispatch(loaderState(false));\r\n return;\r\n }\r\n\r\n var recongizeResponse = await SdkMethodWrapper.isRecognized();\r\n\r\n if (recongizeResponse.reasonCode != null || recongizeResponse.description != null) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: recongizeResponse.description,\r\n });\r\n return;\r\n } else {\r\n // Checking which scenario to redirect\r\n if (SdkMethodWrapper.isRecognizedEnv != null) {\r\n this.setState({ responseStatus3: true });\r\n } else {\r\n this.setState({ responseStatus7: true });\r\n }\r\n\r\n }\r\n };\r\n\r\n handleToggleClick = async (event) => {\r\n event.target.classList.toggle(\"active\");\r\n var content = event.target.nextElementSibling;\r\n\r\n if (content.style.maxHeight) {\r\n content.style.maxHeight = null;\r\n } else {\r\n content.style.maxHeight = content.scrollHeight + \"px\";\r\n }\r\n }\r\n\r\n handlePopUpClick = async () => {\r\n var configuration = await DataParamsController.getParamsForTheConfiguration();\r\n\r\n if (configuration != null && configuration.length > 0) {\r\n this.setState({ dataConfiguration: configuration });\r\n document.getElementById(\"myModal\").style.display = \"block\";\r\n } else {\r\n document.getElementById(\"myCloseModal\").style.display = \"block\";\r\n }\r\n };\r\n\r\n\r\n componentDidMount(props) {\r\n SRCWrapper.loadSDKCounter = 0;\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n // Props from different page to display error messages\r\n if (this.props.location.state != null && this.props.location.state.errorDescription != null\r\n && this.props.location.state.errorDescription != \"\") {\r\n\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: this.props.location.state.errorDescription,\r\n });\r\n }\r\n\r\n Auth.currentAuthenticatedUser()\r\n .then(user => this.setState({ isUserSignedIn: true }))\r\n .catch(err => this.setState({ isUserSignedIn: false }));\r\n\r\n // Checking the documnet load\r\n document.onreadystatechange = function () {\r\n if (document.readyState === 'complete') {\r\n this.setState({ pageStatus: false });\r\n }\r\n }.bind(this);\r\n\r\n if (urlDataParam) {\r\n document.getElementById(\"btnConfiguration\").style.display = \"none\";\r\n } else {\r\n document.getElementById(\"btnConfiguration\").style.display = \"block\";\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {!this.state.isUserSignedIn ? : null}\r\n {this.state.responseStatus7 ? : null}\r\n {this.state.responseStatus3 ? : null}\r\n\r\n
\r\n \r\n
\r\n

YOUR CART

\r\n
Environment: {this.state.checkedEnv}
\r\n\r\n
\r\n
\r\n

ITEMS:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The Godfather by Mario Puzo

\r\n

\r\n Qty: 1

\r\n

\r\n In Stock

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
SUBTOTAL
\r\n
$10.00
\r\n
\r\n
\r\n
ESTIMATED SHIPPING &
HANDLING
\r\n
FREE
\r\n
\r\n
\r\n
TOTAL
\r\n
$10.00
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n {this.state.errorStatus || this.state.pageStatus ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n loader: state.reducer.loaderState\r\n };\r\n};\r\n\r\nexport default new IRA_Checkout;","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport React, { Component } from \"react\";\r\nimport { Container, Row } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport $ from 'jquery';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, cardList, idTokens, srcCorrelationId } from \"../../redux/actions/Action\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport \"../../scss/_inputBox.css\";\r\nimport { Tab, Tabs, TabList, TabPanel } from 'react-tabs';\r\nimport 'react-tabs/style/react-tabs.css';\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\nimport CardEncryption from \"../../utility/CardEncryption\";\r\nimport { Input, Col, Label } from \"reactstrap\";\r\nimport Amplify, { Auth } from 'aws-amplify';\r\nimport { LogWindow } from '../../components/LogWindow';\r\nimport { NavBarComponent } from '../../components/NavBar';\r\nimport IRAController from \"../../Controllers/IRAController\";\r\nimport ServerToServerAPIController from \"../../Controllers/ServerToServerAPIController\";\r\nimport SdkMethodWrapper from \"../../utility/SdkMethodWrapper\";\r\n\r\nexport class IRA_PaymentCard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cardNumberInput: '',\r\n expiryMonth: \"\",\r\n expiryYear: \"\",\r\n cvvNo: \"\",\r\n validationErrorCardNo: false,\r\n validationErrorExpiryDate: false,\r\n validationErrorCvvNo: false,\r\n completeResponse: false,\r\n errorMessage: \"\",\r\n testCaseName: \"\",\r\n lithosuri: loggerHost.lithosuri,\r\n s4Redirection: false,\r\n identityValue: \"\",\r\n errorStatus: false,\r\n errorMessage: null,\r\n errorDescription: null,\r\n completeValidation: false,\r\n errorRegisterMessage: null,\r\n errorRegisterStatus: false,\r\n switchConsumer: false,\r\n regexp: /^[0-9\\b]+$/,\r\n noWindowRef: false,\r\n blankWindowRef: false,\r\n contentWindow: true,\r\n dcfInvokeStatus: false,\r\n emptyWindowRef: false,\r\n dcfInvokeMsg: \"\",\r\n isUserSignedIn: true,\r\n cancelTransaction: false,\r\n addCard: false,\r\n homePageRedirection: false,\r\n chosenEnv: \"\"\r\n };\r\n this.identityLookup = this.identityLookup.bind(this);\r\n this.getIdentityValue = this.getIdentityValue.bind(this);\r\n }\r\n\r\n onInputChange = e => {\r\n const regex = /^[0-9\\b]+$/; // To test card number\r\n\r\n if (e.target.cardNumberInput === '' || regex.test(e.target.cardNumberInput)) {\r\n this.setState({ value: e.target.value });\r\n }\r\n };\r\n\r\n onHandleChange = e => {\r\n let cardNumberInput = e.target.value;\r\n if (!Number(cardNumberInput)) {\r\n return;\r\n }\r\n this.setState({\r\n [e.target.name]: cardNumberInput\r\n });\r\n };\r\n\r\n getIdentityValue = e => {\r\n this.setState({\r\n identityValue: e.target.value\r\n });\r\n };\r\n\r\n identityLookup = async () => {\r\n store.dispatch(loaderState(true));\r\n\r\n var emailInput = $(\"#emailAddressInput\").text();\r\n emailInput = emailInput.trim();\r\n\r\n var tempEmailImput = emailInput;\r\n\r\n var alphaLetters = /^[A-Za-z]+$/; // only alphates\r\n\r\n // removing the special character and no's and then checking whether the string has any character.\r\n tempEmailImput = tempEmailImput.replace(/[^a-zA-Z]/g, ''); // replacing special cha\r\n console.log(tempEmailImput);\r\n\r\n let isPhoneNoAdded = true;\r\n\r\n if (tempEmailImput.match(alphaLetters)) {\r\n isPhoneNoAdded = false;\r\n console.log(\"---- true alpha ---- \")\r\n } else {\r\n console.log(\"--- numeric --- \");\r\n }\r\n\r\n this.setState({ identityValue: emailInput });\r\n\r\n if (this.state.identityValue === null) {\r\n this.setState({\r\n errorRegisterStatus: true,\r\n errorRegisterMessage: \"Please enter valid value\"\r\n });\r\n } else {\r\n var response = await SdkMethodWrapper.identityLookup(emailInput, isPhoneNoAdded);\r\n\r\n if (response == false || response.reasonCode != null || response.description != null) {\r\n this.setState({\r\n errorRegisterStatus: true,\r\n errorRegisterMessage: (response.description != null) ? response.description\r\n : \"The email address / phone no that you've entered doesn't match any account.\"\r\n });\r\n store.dispatch(loaderState(false));\r\n return;\r\n } else {\r\n this.setState({\r\n completeValidation: true\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n enrollCardClick = async () => {\r\n var cardNumber = $(\"#cardNumberInput\").text();\r\n var cardExpTxt = $(\"#cardExpiryInput\").text();\r\n var splitedString = cardExpTxt.split(\"/\");\r\n\r\n var exMonth = splitedString[0];\r\n var exYear = splitedString[1];\r\n\r\n // Card CVV\r\n var cardCvvTxt = $(\"#cardSCodeInput\").text();\r\n\r\n\r\n var card = {};\r\n\r\n card.primaryAccountNumber = cardNumber.replace(/\\s/g, '');\r\n card.panExpirationMonth = exMonth;\r\n card.panExpirationYear = exYear;\r\n card.cardSecurityCode = cardCvvTxt;\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n\r\n let selectedEnvironments = await SdkMethodWrapper.getSelectedEnvironments();\r\n\r\n if (selectedEnvironments == null || selectedEnvironments.length <= 0) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"Network error. Please try after sometime.\"\r\n });\r\n return;\r\n }\r\n\r\n this.setState({ chosenEnv: selectedEnvironments[0] });\r\n\r\n let response = \"\";\r\n\r\n // Card Enrollment\r\n response = await SdkMethodWrapper.enrollCard(card, this.state.chosenEnv);\r\n this.setState({ errorStatus: false });\r\n\r\n if (response.maskedCard != null) {\r\n store.dispatch(cardList(response.maskedCard));\r\n this.checkout(response);\r\n } else {\r\n {\r\n this.state.testCaseName = SRCWrapper.testCaseInfo;\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: (response.description != null) ? response.description : \"Please enter correct card information\"\r\n });\r\n return;\r\n }\r\n }\r\n\r\n };\r\n\r\n selectDcfInvoke = dcfInvokeType => {\r\n let type = dcfInvokeType.target.value;\r\n this.setDCFState(type);\r\n };\r\n\r\n setDCFState = async (type) => {\r\n switch (type) {\r\n case \"windowrefless\":\r\n this.setState({ noWindowRef: true, blankWindowRef: false, contentWindow: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"blank\":\r\n this.setState({ blankWindowRef: true, noWindowRef: false, contentWindow: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"content\":\r\n this.setState({ contentWindow: true, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"invalid\":\r\n this.setState({ contentWindow: false, noWindowRef: false, blankWindowRef: false, emptyWindowRef: true, dcfInvokeStatus: false });\r\n break;\r\n\r\n default:\r\n this.setState({ contentWindow: false, noWindowRef: false, blankWindowRef: false, emptyWindowRef: true, dcfInvokeStatus: false });\r\n break;\r\n }\r\n }\r\n\r\n directCheckout = async () => {\r\n store.dispatch(loaderState(true));\r\n\r\n this.checkout(null);\r\n };\r\n\r\n\r\n switchConsumer = async () => {\r\n $(\"#react-tabs-2\").click();\r\n $(\"#cardNumberInput, #cardExpiryInput, #cardSCodeInput\").text();\r\n store.dispatch(loaderState(false));\r\n return true;\r\n };\r\n\r\n checkout = async (enrollCardResponse) => {\r\n console.log(this.state.chosenEnv);\r\n\r\n if (this.state.chosenEnv == \"\") {\r\n let selectedEnvironments = await SdkMethodWrapper.getSelectedEnvironments();\r\n\r\n if (selectedEnvironments == null || selectedEnvironments.length <= 0) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"Network error. Please try after sometime.\"\r\n });\r\n return;\r\n }\r\n this.setState({ chosenEnv: selectedEnvironments[0] });\r\n }\r\n\r\n var dcfInvokeType = DataParamsController.getWindowRefParams(this.state.chosenEnv);\r\n console.log(dcfInvokeType);\r\n this.setDCFState(dcfInvokeType);\r\n\r\n var checkout = await DataParamsController.getParamsForTheAPICall(\"checkout\", this.state.chosenEnv);\r\n\r\n const { location: { state: { response: { dcfActionCode } } } } =\r\n this.props.location && this.props.location.state &&\r\n this.props.location.state.response ?\r\n this.props :\r\n { location: { state: { response: { dcfActionCode: null } } } };\r\n\r\n let dcfWindow;\r\n\r\n if (enrollCardResponse != null) {\r\n checkout.srcCorrelationId = enrollCardResponse.srcCorrelationId;\r\n checkout.srcDigitalCardId = enrollCardResponse.maskedCard.srcDigitalCardId;\r\n\r\n store.dispatch(srcCorrelationId(checkout.srcCorrelationId));\r\n } else { // Direct checkout\r\n var cardNumber = $(\"#cardNumberInput\").text();\r\n var cardExpTxt = $(\"#cardExpiryInput\").text();\r\n var splitedString = cardExpTxt.split(\"/\");\r\n var exMonth = splitedString[0];\r\n var exYear = splitedString[1];\r\n var cardCvvTxt = $(\"#cardSCodeInput\").text();\r\n\r\n var card = {};\r\n\r\n card.primaryAccountNumber = cardNumber.replace(/\\s/g, '');\r\n card.panExpirationMonth = exMonth;\r\n card.panExpirationYear = exYear;\r\n card.cardSecurityCode = cardCvvTxt;\r\n\r\n let encryptedCard = await CardEncryption.encrptCardDetails(card, this.state.chosenEnv);\r\n\r\n if (encryptedCard != null && encryptedCard != \"\") {\r\n checkout.encryptedCard = encryptedCard;\r\n }\r\n\r\n }\r\n\r\n checkout.srciTransactionId = SRCWrapper.srcTransactionID;\r\n checkout.srciActionCode = \"NEW_USER\";\r\n\r\n if (this.state.contentWindow === true) {\r\n let dcfIframe = document.createElement('iframe');\r\n dcfIframe.setAttribute('id', 'dcfIframe');\r\n dcfIframe.setAttribute('name', 'DCFIframe');\r\n dcfIframe.setAttribute('src', '');\r\n dcfIframe.style.zIndex = '2';\r\n dcfIframe.style.position = \"absolute\";\r\n dcfIframe.style.display = 'block';\r\n dcfIframe.style.width = '30%';\r\n dcfIframe.style.height = '92vh';\r\n dcfIframe.style.margin = '2% 35%';\r\n document.body.after(dcfIframe, document.body);\r\n checkout.windowRef = document.getElementById('dcfIframe').contentWindow;\r\n }\r\n\r\n if (this.state.blankWindowRef === true) {\r\n dcfWindow = window.open('about:blank');\r\n checkout.windowRef = dcfWindow;\r\n }\r\n\r\n if (this.state.noWindowRef === true) {\r\n delete (checkout.windowRef);\r\n }\r\n\r\n // Work around fix for UI responsiveness\r\n document.body.style.overflowY = \"hidden\";\r\n\r\n let response = \"\";\r\n var checkoutCaughtError = \"\";\r\n\r\n try {\r\n response = await SdkMethodWrapper.checkout(this.state.chosenEnv, checkout);\r\n\r\n // Closing DCF\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n if (response.description != null || response.reason != null) {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.description\r\n });\r\n\r\n store.dispatch(loaderState(false));\r\n return;\r\n }\r\n\r\n } catch (error) {\r\n console.log(\"SDK catch error: \", error);\r\n }\r\n finally {\r\n if (this.state.errorStatus == true) {\r\n response = checkoutCaughtError;\r\n }\r\n\r\n if (response.idToken != null && response.unbindAppInstance == true) {\r\n await SdkMethodWrapper.unBindAppInstance(this.state.chosenEnv, response.idToken)\r\n }\r\n\r\n // Work around fix for UI responsiveness\r\n document.body.style.overflowY = \"auto\";\r\n\r\n if (response.dcfActionCode == \"COMPLETE\" || response.dcfActionCode == \"ERROR\") {\r\n\r\n var decodedPayload = await ServerToServerAPIController.transactionCredentialsAPI(checkout, response, this.state.chosenEnv);\r\n store.dispatch(cardList(decodedPayload));\r\n }\r\n\r\n if (this.state.errorStatus == false) {\r\n switch (response.dcfActionCode) {\r\n case \"COMPLETE\":\r\n this.setState({\r\n completeResponse: true,\r\n transactionStatus: true,\r\n dcfActionCode: response.dcfActionCode\r\n });\r\n break;\r\n\r\n case \"ADD_CARD\":\r\n store.dispatch(idTokens(response.idToken));\r\n this.setState({ addCard: true });\r\n break;\r\n\r\n case \"SWITCH_CONSUMER\":\r\n this.setState({ switchConsumer: true });\r\n this.switchConsumer();\r\n break;\r\n\r\n case \"CHANGE_CARD\": // need to enhance later\r\n this.setState({ addCard: true });\r\n break;\r\n\r\n default: // CANCEL || ERROR\r\n store.dispatch(loaderState(true));\r\n\r\n if (response.dcfActionCode == \"ERROR\") {\r\n this.setState({\r\n completeResponse: false,\r\n errorStatus: true,\r\n errorMessage: response.error.errorCode,\r\n errorDescription: response.error.errorDescription\r\n });\r\n }\r\n\r\n IRAController.loadCheckoutPage(this.state.errorStatus);\r\n store.dispatch(loaderState(false));\r\n }\r\n }\r\n store.dispatch(loaderState(false));\r\n }\r\n };\r\n\r\n onClickConfigureButton = async () => {\r\n $(\".configWindow #react-burger-menu-btn\").click();\r\n };\r\n\r\n async componentDidMount() {\r\n Auth.currentAuthenticatedUser()\r\n .then(user => this.setState({ isUserSignedIn: true }))\r\n .catch(err => this.setState({ isUserSignedIn: false }));\r\n\r\n //var dcfInvokeType = DataParamsController.getWindowRefParams();\r\n //this.setDCFState(dcfInvokeType);\r\n\r\n var queryString = window.location.search.replace('?', '');\r\n\r\n if (queryString != null && queryString.toLowerCase() == \"switch_consumer\") {\r\n $(\"#react-tabs-2\").click();\r\n this.setState({ switchConsumer: true });\r\n await this.switchConsumer();\r\n }\r\n\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {!this.state.isUserSignedIn ? : null}\r\n\r\n {\r\n this.state.addCard === true ? (\r\n \r\n ) : null\r\n }\r\n\r\n {\r\n this.state.homePageRedirection === true ? (\r\n \r\n ) : null\r\n }\r\n\r\n \r\n \r\n \r\n
\r\n \r\n

We secure your information

\r\n

Together We Work

\r\n \r\n \r\n New User\r\n Returning User\r\n \r\n\r\n {/* New User Panel */}\r\n \r\n {(this.state.completeResponse) ? : null}\r\n
\r\n
\r\n
\r\n

Enter your card details

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {this.state.validationErrorCardNo ? (\r\n Enter valid card number.\r\n ) : null}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n {this.state.validationErrorExpiryDate ? (\r\n Enter valid expiry month and year(MM/YYYY)\r\n ) : null}\r\n
\r\n\r\n
\r\n
\r\n
\r\n {this.state.validationErrorCvvNo ? (\r\n Enter valid security no\r\n ) : null}\r\n\r\n
\r\n {this.state.errorStatus ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n {/* \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
*/}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* Registered User Panel */}\r\n \r\n {this.state.completeValidation === true ?\r\n : null}\r\n
\r\n
\r\n

Enter the email / phone no for consumer identity.

\r\n
\r\n
\r\n
\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n {\r\n this.state.errorRegisterStatus ? ( {\r\n this.state.errorRegisterMessage\r\n }\r\n \r\n ) : null\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n {/*
\r\n \r\n
\r\n */}\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\nexport default IRA_PaymentCard;\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport React, { Component } from \"react\";\r\nimport { Container, Row, Col } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport $ from 'jquery';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, idTokens } from \"../../redux/actions/Action\";\r\nimport { Link, Redirect } from 'react-router-dom';\r\nimport \"../../scss/_inputBox.css\";\r\nimport Amplify, { Auth } from 'aws-amplify';\r\nimport { LogWindow } from '../../components/LogWindow';\r\nimport { NavBarComponent } from '../../components/NavBar';\r\nimport IRAController from \"../../Controllers/IRAController\";\r\nimport SdkMethodWrapper from \"../../utility/SdkMethodWrapper\";\r\n\r\nexport class IRA_CompleteIdentity extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n validationData: \"\",\r\n errorStatus: false,\r\n errorMessage: null,\r\n errorDescription: null,\r\n completeValidation: false,\r\n getProfiles: false,\r\n otpError: false,\r\n response: true,\r\n isUserSignedIn: true,\r\n };\r\n this.identityCompleteValidation = this.identityCompleteValidation.bind(this);\r\n this.getValidationData = this.getValidationData.bind(this);\r\n }\r\n getValidationData = e => {\r\n this.setState({\r\n validationData: e.target.value\r\n });\r\n };\r\n\r\n onClickConfigureButton = async () => {\r\n $(\".configWindow #react-burger-menu-btn\").click();\r\n };\r\n\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n\r\n Auth.currentAuthenticatedUser()\r\n .then(user => this.setState({ isUserSignedIn: true }))\r\n .catch(err => this.setState({ isUserSignedIn: false }));\r\n\r\n }\r\n\r\n identityCompleteValidation = async () => {\r\n store.dispatch(loaderState(true));\r\n\r\n this.setState({\r\n validationData: $(\"#otpInput\").text(),\r\n errorStatus: false\r\n });\r\n\r\n const otp = $(\"#otpInput\").text();\r\n let response = await SdkMethodWrapper.completeIdentityValidation(otp);\r\n\r\n if (response.idTokens == null && (response.description != null || response.reasonCode != null)) {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: (response.description != null) ? response.description : \"\",\r\n errorDescription: response.description\r\n });\r\n store.dispatch(loaderState(false));\r\n return;\r\n } else {\r\n this.setState({ getProfiles: true });\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {!this.state.isUserSignedIn ? : null}\r\n {this.state.getProfiles ? : null}\r\n\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n

Enter the code sent to selected mode

\r\n
\r\n
\r\n
\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n {this.state.errorStatus ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n\r\n {this.state.otpError ? (\r\n Enter OTP number.\r\n ) : null}\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n {/*
\r\n \r\n
\r\n */}\r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n//export default IRA_CompleteIdentity;","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport { store } from \"../../redux/store\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Input, Label, Col, Row } from \"reactstrap\";\r\nimport { loaderState, srcCorrelationId, cardList, idTokens } from \"../../redux/actions/Action\";\r\nimport { connect } from \"react-redux\";\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\nimport Amplify, { Auth } from 'aws-amplify';\r\nimport { ConfigureComponent } from '../../components/ConfigureWindow';\r\nimport { LogWindow } from '../../components/LogWindow';\r\nimport { NavBarComponent } from '../../components/NavBar';\r\nimport IRAController from \"../../Controllers/IRAController\";\r\nimport $ from \"jquery\";\r\nimport ServerToServerAPIController from \"../../Controllers/ServerToServerAPIController\";\r\nimport SdkMethodWrapper from \"../../utility/SdkMethodWrapper\";\r\n\r\n\r\nexport class IRA_Profile extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n errorDescription: \"\",\r\n cardList: null,\r\n checkoutResponse: null,\r\n completeTransaction: false,\r\n addCard: false,\r\n switchConsumer: false,\r\n noWindowRef: false,\r\n blankWindowRef: false,\r\n contentWindow: true,\r\n dcfInvokeStatus: false,\r\n emptyWindowRef: false,\r\n dcfInvokeMsg: \"\",\r\n isUserSignedIn: true,\r\n cancelTransaction: false,\r\n homePageRedirection: false\r\n };\r\n this.cardSelected = this.cardSelected.bind(this);\r\n }\r\n\r\n onClickConfigureButton = async () => {\r\n $(\".configWindow #react-burger-menu-btn\").click();\r\n };\r\n\r\n async componentDidMount() {\r\n store.dispatch(loaderState(true));\r\n\r\n Auth.currentAuthenticatedUser()\r\n .then(user => this.setState({ isUserSignedIn: true }))\r\n .catch(err => this.setState({ isUserSignedIn: false }));\r\n\r\n this.setState({ errorStatus: false });\r\n let response = await SdkMethodWrapper.getSrcProfiles();\r\n\r\n if (response.description != null || response.reasonCode != null) {\r\n this.setState({\r\n errorStatus: true,\r\n errorDescription: (response.description != null) ? response.description : \"\"\r\n });\r\n\r\n } else {\r\n this.setState({ cardList: response });\r\n }\r\n store.dispatch(loaderState(false));\r\n return;\r\n }\r\n\r\n\r\n cardSelected = async (cardId, srcCorrelationId, env) => {\r\n console.log(srcCorrelationId, env);\r\n store.dispatch(loaderState(true));\r\n\r\n var maskedCards = store.getState().reducer.cardList;\r\n\r\n var dcfInvokeType = DataParamsController.getWindowRefParams(env);\r\n this.setDCFState(dcfInvokeType);\r\n\r\n var checkoutParams = await DataParamsController.getParamsForTheAPICall(\"checkout\", env);\r\n\r\n checkoutParams.srciTransactionId = SRCWrapper.srcTransactionID;;\r\n checkoutParams.srcCorrelationId = srcCorrelationId;\r\n checkoutParams.srcDigitalCardId = cardId;\r\n\r\n let dcfWindow;\r\n\r\n if (this.state.contentWindow === true) {\r\n let dcfIframe = document.createElement('iframe');\r\n dcfIframe.setAttribute('id', 'dcfIframe');\r\n dcfIframe.setAttribute('name', 'DCFIframe');\r\n dcfIframe.setAttribute('src', '');\r\n dcfIframe.style.zIndex = '2';\r\n dcfIframe.style.position = \"absolute\";\r\n dcfIframe.style.display = 'block';\r\n dcfIframe.style.width = '30%';\r\n dcfIframe.style.height = '92vh';\r\n dcfIframe.style.margin = '2% 35%';\r\n document.body.after(dcfIframe, document.body);\r\n checkoutParams.windowRef = document.getElementById('dcfIframe').contentWindow;\r\n\r\n }\r\n\r\n if (this.state.blankWindowRef === true) {\r\n dcfWindow = window.open('about:blank');\r\n checkoutParams.windowRef = dcfWindow;\r\n }\r\n\r\n if (this.state.noWindowRef === true) {\r\n console.log(\"-- delete--\");\r\n delete (checkoutParams.windowRef);\r\n }\r\n\r\n if (checkoutParams.srciActionCode != null) {\r\n delete (checkoutParams.srciActionCode);\r\n }\r\n\r\n let response = \"\";\r\n var checkoutCaughtError = \"\";\r\n\r\n // Work around fix for UI responsiveness\r\n document.body.style.overflowY = \"hidden\";\r\n\r\n try {\r\n response = await SdkMethodWrapper.checkout(env, checkoutParams);\r\n\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n if (response.description != null || response.reason != null) {\r\n await this.componentDidMount();\r\n\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.reason,\r\n errorDescription: response.description\r\n });\r\n\r\n checkoutCaughtError = response;\r\n store.dispatch(loaderState(false));\r\n return;\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n finally {\r\n if (this.state.errorStatus == true) {\r\n response = checkoutCaughtError;\r\n }\r\n\r\n if (response.idToken != null && response.unbindAppInstance == true) {\r\n await SdkMethodWrapper.unBindAppInstance(env, response.idToken)\r\n }\r\n\r\n // Work around fix for UI responsiveness\r\n document.body.style.overflowY = \"auto\";\r\n\r\n if (response.dcfActionCode == \"COMPLETE\" || response.dcfActionCode == \"ERROR\") {\r\n var decodedPayload = await ServerToServerAPIController.transactionCredentialsAPI(checkoutParams, response, env);\r\n\r\n console.log(decodedPayload);\r\n store.dispatch(cardList(decodedPayload));\r\n }\r\n\r\n if (this.state.errorStatus == false) {\r\n switch (response.dcfActionCode) {\r\n\r\n case \"COMPLETE\":\r\n this.setState({ completeTransaction: true });\r\n break;\r\n\r\n case \"ADD_CARD\":\r\n this.setState({ addCard: true });\r\n break;\r\n\r\n case \"SWITCH_CONSUMER\":\r\n this.setState({ switchConsumer: true });\r\n break;\r\n\r\n case \"CHANGE_CARD\": // need to change/enhance later\r\n await this.componentDidMount();\r\n break;\r\n\r\n default:\r\n // await this.componentDidMount();\r\n if (response.dcfActionCode == \"ERROR\") {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error.errorCode,\r\n errorDescription: response.error.errorDescription\r\n });\r\n }\r\n IRAController.loadCheckoutPage(this.state.errorStatus);\r\n\r\n //this.setState({ homePageRedirection: true });\r\n break;\r\n }\r\n }\r\n store.dispatch(loaderState(false));\r\n }\r\n };\r\n\r\n // Scenario-5 route\r\n enrollCardClick = () => {\r\n this.setState({ addCard: true });\r\n };\r\n\r\n selectDcfInvoke = dcfInvokeType => {\r\n let type = dcfInvokeType.target.value;\r\n\r\n this.setDCFState(type);\r\n };\r\n\r\n setDCFState = async (type) => {\r\n switch (type) {\r\n case \"windowrefless\":\r\n this.setState({ noWindowRef: true, blankWindowRef: false, contentWindow: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"blank\":\r\n this.setState({ blankWindowRef: true, noWindowRef: false, contentWindow: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"content\":\r\n this.setState({ contentWindow: true, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"invalid\":\r\n this.setState({ contentWindow: false, noWindowRef: false, blankWindowRef: false, emptyWindowRef: true, dcfInvokeStatus: false });\r\n break;\r\n\r\n default:\r\n this.setState({ contentWindow: false, noWindowRef: false, blankWindowRef: false, emptyWindowRef: true, dcfInvokeStatus: false });\r\n break;\r\n }\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n\r\n
\r\n \r\n {!this.state.isUserSignedIn ? : null}\r\n\r\n {\r\n this.state.completeTransaction === true ? (<\r\n Redirect to=\"/referenceApp/thank-you\"\r\n />\r\n ) : null\r\n }\r\n\r\n {\r\n this.state.addCard === true ? (\r\n \r\n ) : null\r\n }\r\n\r\n {\r\n this.state.switchConsumer === true ? (\r\n \r\n ) : null\r\n }\r\n\r\n {\r\n this.state.cancelTransaction === true ? (\r\n \r\n ) : null\r\n }\r\n\r\n {\r\n this.state.homePageRedirection === true ? (\r\n \r\n ) : null\r\n }\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n

Profiles

\r\n
\r\n
\r\n {\r\n this.state.cardList != null && this.state.cardList.length > 0 ? (\r\n \r\n {\r\n this.state.cardList.map((profiles, k) => {\r\n\r\n if (profiles.maskedCards != null) {\r\n return profiles.maskedCards.map((card, i) =>\r\n this.cardSelected(card.srcDigitalCardId, profiles.srcCorrelationId, profiles.env)\r\n }\r\n >\r\n\r\n \r\n Card Art\r\n \r\n \r\n

{\r\n card.digitalCardData\r\n .presentationName\r\n }\r\n
\r\n \r\n XXXX - XXXX - XXXX - {\r\n card.panLastFour\r\n }

\r\n \r\n
\r\n\r\n\r\n )\r\n } else {\r\n return

No cards available

\r\n }\r\n\r\n })\r\n }\r\n
\r\n ) :

No cards available

\r\n }\r\n\r\n\r\n \r\n
\r\n
\r\n \r\n {\r\n this.state.errorStatus ? ( {\r\n this.state.errorMessage\r\n }
{\r\n this.state.errorDescription\r\n }
\r\n ) : null\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/* */}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n loader: state.reducer.loaderState,\r\n idTokens: state.reducer.idTokens,\r\n srcCorrelationId: state.reducer.srcCorrelationId,\r\n srciTransactionId: state.reducer.srciTransactionId\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(IRA_Profile);","import * as React from 'react';\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\n\r\nexport class LoginNavBarComponent extends React.Component {\r\n render() {\r\n return (\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Container } from \"react-bootstrap\";\r\nimport { FooterNavBarComponent } from \"../../components/FooterNavBar\";\r\nimport { LoginNavBarComponent } from \"../../components/LoginNavBar\";\r\nimport SignInController from \"../../Controllers/SignInController\";\r\nimport Amplify, { Auth } from \"aws-amplify\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState } from \"../../redux/actions/Action\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport class IRA_Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isUserSignedIn: false,\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n authenticationSuccess: false,\r\n email: \"\",\r\n password: \"\",\r\n changePassword: false,\r\n };\r\n\r\n this.emailIdentity = this.emailIdentity.bind(this);\r\n this.password = this.password.bind(this);\r\n }\r\n\r\n emailIdentity = (e) => {\r\n this.setState({\r\n email: e.target.value,\r\n });\r\n };\r\n\r\n password = (e) => {\r\n this.setState({\r\n password: e.target.value,\r\n });\r\n };\r\n\r\n doSignIn = async (event) => {\r\n event.preventDefault();\r\n store.dispatch(loaderState(true));\r\n\r\n var username = this.state.email.trim();\r\n var password = this.state.password.trim();\r\n\r\n var user = await SignInController.signIn(username, password);\r\n\r\n // Asking user to change the password after their first login \r\n if (user.challengeName == \"NEW_PASSWORD_REQUIRED\") {\r\n this.setState({ changePassword: true });\r\n }\r\n\r\n // Validating sign in process\r\n if (Amplify.Auth.user != null) {\r\n this.setState({ authenticationSuccess: true });\r\n } else {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: (user != null && user.message != null) ? user.message : \"Incorrect username or password.\",\r\n });\r\n }\r\n\r\n store.dispatch(loaderState(false));\r\n };\r\n\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n\r\n Auth.currentAuthenticatedUser()\r\n .then((user) => this.setState({ isUserSignedIn: true }))\r\n .catch((err) => this.setState({ isUserSignedIn: false }));\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {this.state.changePassword ? (\r\n \r\n ) : null}\r\n\r\n {this.state.authenticationSuccess || this.state.isUserSignedIn ? (\r\n \r\n ) : null}\r\n\r\n \r\n \r\n
\r\n

Sign In

\r\n
\r\n\r\n
\r\n
\r\n \r\n {/* */}\r\n \r\n \r\n Forgot Password?\r\n \r\n
\r\n\r\n {this.state.errorStatus ? (\r\n \r\n {this.state.errorMessage}\r\n \r\n ) : null}\r\n\r\n \r\n Go\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { LoginNavBarComponent } from '../../components/LoginNavBar';\r\nimport SignInController from \"../../Controllers/SignInController\";\r\nimport Amplify, { Auth } from 'aws-amplify';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState } from \"../../redux/actions/Action\";\r\n\r\nexport class IRA_NewPassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isUserSignedIn: false,\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n authenticationSuccess: false,\r\n newPassword: \"\",\r\n confirmPassword: \"\",\r\n isUserSignedIn: false\r\n };\r\n\r\n this.newPassword = this.newPassword.bind(this);\r\n this.confirmPassword = this.confirmPassword.bind(this);\r\n }\r\n\r\n newPassword = e => {\r\n this.setState({\r\n newPassword: e.target.value\r\n });\r\n };\r\n\r\n confirmPassword = e => {\r\n this.setState({\r\n confirmPassword: e.target.value\r\n });\r\n };\r\n\r\n changePassword = async (event) => {\r\n event.preventDefault();\r\n store.dispatch(loaderState(true));\r\n\r\n var newPassword = this.state.newPassword.trim();\r\n var confirmPassword = this.state.confirmPassword.trim();\r\n\r\n\r\n if (newPassword != confirmPassword) {\r\n this.setState({ errorStatus: true, errorMessage: \"New password and confirm password should match.\" });\r\n store.dispatch(loaderState(false));\r\n return;\r\n }\r\n\r\n await SignInController.changePassword(newPassword);\r\n\r\n if (Amplify.Auth.user != null) {\r\n this.setState({ isUserSignedIn: true });\r\n } else {\r\n this.setState({ errorStatus: true, errorMessage: \"Check your password and network connectivity\" });\r\n }\r\n\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n componentDidMount() {\r\n Auth.currentAuthenticatedUser()\r\n .then(user => this.setState({ isUserSignedIn: true }))\r\n .catch(err => this.setState({ isUserSignedIn: false }));\r\n\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n {this.state.isUserSignedIn ? : null}\r\n\r\n \r\n \r\n
\r\n

Change password

\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n {/* */}\r\n \r\n\r\n \r\n\r\n\r\n

Password Policies

\r\n
    \r\n
  • Password must contain a number
  • \r\n
  • Password must contain at least 8 characters
  • \r\n\r\n
  • Password must contain a lower case letter
  • \r\n
  • Password must contain an upper case letter
  • \r\n
  • Password must contain a special character
  • \r\n
\r\n\r\n
\r\n\r\n {\r\n this.state.errorStatus ? (\r\n {this.state.errorMessage}\r\n ) : null\r\n }\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
);\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport $ from 'jquery';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, cardList, srcCorrelationId } from \"../../redux/actions/Action\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport \"../../scss/_inputBox.css\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\nimport { Col, Row } from \"reactstrap\";\r\nimport CardEncryption from \"../../utility/CardEncryption\";\r\nimport { Auth } from 'aws-amplify';\r\nimport { LogWindow } from '../../components/LogWindow';\r\nimport { NavBarComponent } from '../../components/NavBar';\r\nimport IRAController from \"../../Controllers/IRAController\";\r\nimport ServerToServerAPIController from \"../../Controllers/ServerToServerAPIController\";\r\nimport SdkMethodWrapper from \"../../utility/SdkMethodWrapper\";\r\n\r\nexport class IRA_AddCardPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cardNumberInput: \"\",\r\n expiryMonth: \"\",\r\n expiryYear: \"\",\r\n cvvNo: \"\",\r\n validationErrorCardNo: false,\r\n validationErrorExpiryDate: false,\r\n validationErrorCvvNo: false,\r\n transactionStatus: false,\r\n errorResponse: false,\r\n errorMessage: \"\",\r\n lithosuri: loggerHost.lithosuri,\r\n s4Redirection: false,\r\n noWindowRef: false,\r\n blankWindowRef: false,\r\n contentWindow: true,\r\n dcfInvokeStatus: false,\r\n emptyWindowRef: false,\r\n scenarioRefURL: \"\",\r\n scenarioRoute: \"\",\r\n dcfInvokeMsg: \"\",\r\n isUserSignedIn: true,\r\n switchConsumer: false,\r\n completeTransaction: false,\r\n getProfiles: false,\r\n homePageRedirection: false,\r\n chosenEnv: \"\"\r\n };\r\n }\r\n\r\n enrollCardClick = async () => {\r\n var cardNumber = $(\"#cardNumberInput\").text();\r\n var cardExpTxt = $(\"#cardExpiryInput\").text();\r\n var splitedString = cardExpTxt.split(\"/\");\r\n\r\n var exMonth = splitedString[0];\r\n var exYear = splitedString[1];\r\n\r\n // Card CVV\r\n var cardCvvTxt = $(\"#cardSCodeInput\").text();\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n var card = {};\r\n\r\n card.primaryAccountNumber = cardNumber.replace(/\\s/g, '');\r\n card.panExpirationMonth = exMonth;\r\n card.panExpirationYear = exYear;\r\n card.cardSecurityCode = cardCvvTxt;\r\n\r\n let selectedEnvironments = await SdkMethodWrapper.getSelectedEnvironments();\r\n\r\n if (selectedEnvironments == null || selectedEnvironments.length < 0) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"Network error. Please try after sometime\"\r\n });\r\n return;\r\n }\r\n\r\n this.setState({ chosenEnv: selectedEnvironments[0] });\r\n let response = \"\";\r\n\r\n // Card Enrollment\r\n this.setState({ errorStatus: false });\r\n response = await SdkMethodWrapper.enrollCard(card, this.state.chosenEnv);\r\n this.setState({ errorStatus: false });\r\n\r\n if (response.maskedCard != null) {\r\n store.dispatch(cardList(response.maskedCard));\r\n this.checkout(response);\r\n } else {\r\n {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: (response.description != null) ? response.description : \"Please enter correct card information\"\r\n });\r\n return;\r\n }\r\n }\r\n };\r\n\r\n selectDcfInvoke = dcfInvokeType => {\r\n let type = dcfInvokeType.target.value;\r\n this.setDCFState(type);\r\n\r\n };\r\n\r\n setDCFState = async (type) => {\r\n switch (type) {\r\n case \"windowrefless\":\r\n this.setState({ noWindowRef: true, blankWindowRef: false, contentWindow: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"blank\":\r\n this.setState({ blankWindowRef: true, noWindowRef: false, contentWindow: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"content\":\r\n this.setState({ contentWindow: true, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"invalid\":\r\n this.setState({ contentWindow: false, noWindowRef: false, blankWindowRef: false, emptyWindowRef: true, dcfInvokeStatus: false });\r\n break;\r\n\r\n default:\r\n this.setState({ contentWindow: false, noWindowRef: false, blankWindowRef: false, emptyWindowRef: true, dcfInvokeStatus: false });\r\n break;\r\n }\r\n }\r\n\r\n\r\n directCheckout = async () => {\r\n this.checkout(null);\r\n };\r\n\r\n\r\n checkout = async (enrollCardResponse) => {\r\n console.log(this.state.chosenEnv);\r\n\r\n if (this.state.chosenEnv == \"\") {\r\n let selectedEnvironments = await SdkMethodWrapper.getSelectedEnvironments();\r\n\r\n if (selectedEnvironments == null || selectedEnvironments.length <= 0) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"Network error. Please try after sometime.\"\r\n });\r\n return;\r\n }\r\n this.setState({ chosenEnv: selectedEnvironments[0] });\r\n }\r\n\r\n var dcfInvokeType = DataParamsController.getWindowRefParams(this.state.chosenEnv);\r\n this.setDCFState(dcfInvokeType);\r\n\r\n var checkout = await DataParamsController.getParamsForTheAPICall(\"checkout\", this.state.chosenEnv);\r\n\r\n const { location: { state: { response: { dcfActionCode } } } } =\r\n this.props.location && this.props.location.state &&\r\n this.props.location.state.response ?\r\n this.props :\r\n { location: { state: { response: { dcfActionCode: null } } } };\r\n let dcfWindow;\r\n\r\n if (enrollCardResponse != null) {\r\n checkout.srcCorrelationId = enrollCardResponse.srcCorrelationId;\r\n checkout.srcDigitalCardId = enrollCardResponse.maskedCard.srcDigitalCardId;\r\n\r\n store.dispatch(srcCorrelationId(checkout.srcCorrelationId));\r\n } else { // Direct checkout\r\n var cardNumber = $(\"#cardNumberInput\").text();\r\n var cardExpTxt = $(\"#cardExpiryInput\").text();\r\n var splitedString = cardExpTxt.split(\"/\");\r\n var exMonth = splitedString[0];\r\n var exYear = splitedString[1];\r\n var cardCvvTxt = $(\"#cardSCodeInput\").text();\r\n\r\n var card = {};\r\n\r\n card.primaryAccountNumber = cardNumber.replace(/\\s/g, '');\r\n card.panExpirationMonth = exMonth;\r\n card.panExpirationYear = exYear;\r\n card.cardSecurityCode = cardCvvTxt;\r\n\r\n let encryptedCard = await CardEncryption.encrptCardDetails(card, this.state.chosenEnv);\r\n\r\n if (encryptedCard != null && encryptedCard != \"\") {\r\n checkout.encryptedCard = encryptedCard;\r\n } else {\r\n checkout.card = card;\r\n }\r\n }\r\n\r\n checkout.srciTransactionId = SRCWrapper.srcTransactionID;\r\n\r\n let value = {};\r\n if (this.state.contentWindow === true) {\r\n let dcfIframe = document.createElement('iframe');\r\n dcfIframe.setAttribute('id', 'dcfIframe');\r\n dcfIframe.setAttribute('src', '');\r\n dcfIframe.style.zIndex = '2';\r\n dcfIframe.style.position = \"absolute\";\r\n dcfIframe.style.display = 'block';\r\n dcfIframe.style.width = '30%';\r\n dcfIframe.style.height = '92vh';\r\n dcfIframe.style.margin = '2% 35%';\r\n document.body.after(dcfIframe, document.body);\r\n checkout.windowRef = document.getElementById('dcfIframe').contentWindow;\r\n }\r\n\r\n if (this.state.blankWindowRef === true) {\r\n dcfWindow = window.open('about:blank');\r\n checkout.windowRef = dcfWindow;\r\n }\r\n\r\n\r\n if (this.state.noWindowRef === true) {\r\n delete (checkout.windowRef);\r\n }\r\n\r\n // Work around fix for UI responsiveness\r\n document.body.style.overflowY = \"hidden\";\r\n\r\n let response = \"\";\r\n var checkoutCaughtError = \"\";\r\n try {\r\n if (checkout.srciActionCode != null) {\r\n console.log(\"-- delete--\");\r\n delete (checkout.srciActionCode);\r\n }\r\n\r\n console.log(\"SDK Checkout params for returning user -add card from SRCI\")\r\n console.log(checkout);\r\n\r\n response = await SdkMethodWrapper.checkout(this.state.chosenEnv, checkout);\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n frame.parentNode.removeChild(frame);\r\n }\r\n\r\n if (response.description != null || response.reason != null) {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.description\r\n });\r\n\r\n store.dispatch(loaderState(false));\r\n return;\r\n }\r\n\r\n\r\n } catch (error) {\r\n console.log(\"SDK catch error: \", error);\r\n store.dispatch(loaderState(false));\r\n } finally {\r\n if (this.state.errorStatus) {\r\n response = checkoutCaughtError;\r\n }\r\n\r\n if (response.idToken != null && response.unbindAppInstance == true) {\r\n await SdkMethodWrapper.unBindAppInstance(this.state.chosenEnv, response.idToken)\r\n }\r\n\r\n // Work around fix for UI responsiveness\r\n document.body.style.overflowY = \"auto\";\r\n\r\n if (response.dcfActionCode == \"COMPLETE\" || response.dcfActionCode == \"ERROR\") {\r\n var decodedPayload = await ServerToServerAPIController.transactionCredentialsAPI(checkout, response, this.state.chosenEnv);\r\n\r\n store.dispatch(cardList(decodedPayload));\r\n }\r\n\r\n if (this.state.errorStatus == false) {\r\n switch (response.dcfActionCode) {\r\n case \"COMPLETE\":\r\n this.setState({ completeTransaction: true });\r\n break;\r\n\r\n case \"ADD_CARD\":\r\n await this.componentDidMount();\r\n this.setState({\r\n addCard: true, cardNumberInput: \"\",\r\n expiryMonth: \"\",\r\n expiryYear: \"\",\r\n cvvNo: \"\",\r\n });\r\n break;\r\n\r\n case \"SWITCH_CONSUMER\":\r\n this.setState({ switchConsumer: true });\r\n break;\r\n\r\n case \"CHANGE_CARD\":\r\n this.setState({ getProfiles: true });\r\n break;\r\n\r\n default: // CANCEL || ERROR\r\n\r\n if (response.dcfActionCode == \"ERROR\") {\r\n this.setState({\r\n errorStatus: true,\r\n errorResponse: false,\r\n errorMessage: response.error.errorCode,\r\n errorDescription: response.error.errorDescription\r\n });\r\n }\r\n\r\n IRAController.loadCheckoutPage(this.state.errorStatus);\r\n }\r\n }\r\n store.dispatch(loaderState(false));\r\n }\r\n };\r\n\r\n\r\n\r\n onClickConfigureButton = async () => {\r\n $(\".configWindow #react-burger-menu-btn\").click();\r\n };\r\n\r\n async componentDidMount() {\r\n console.log(\"Component did mount\");\r\n Auth.currentAuthenticatedUser()\r\n .then(user => this.setState({ isUserSignedIn: true }))\r\n .catch(err => this.setState({ isUserSignedIn: false }));\r\n\r\n $(\"#cardNumberInput, #cardExpiryInput, #cardSCodeInput\").text(\"\");\r\n\r\n var dcfInvokeType = DataParamsController.getWindowRefParams();\r\n\r\n this.setDCFState(dcfInvokeType);\r\n\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n\r\n {this.state.completeTransaction ? : null}\r\n\r\n {\r\n this.state.switchConsumer === true ? (\r\n \r\n ) : null\r\n }\r\n\r\n {this.state.getProfiles ? : null}\r\n\r\n {\r\n this.state.homePageRedirection === true ? (\r\n \r\n ) : null\r\n }\r\n\r\n \r\n \r\n \r\n
\r\n \r\n

We secure your information

\r\n

Together We Work

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Enter your card details

\r\n
\r\n
\r\n
\r\n
\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n {this.state.validationErrorCardNo ? (\r\n Enter valid card number.\r\n ) : null}\r\n
\r\n
\r\n
\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n\r\n {this.state.validationErrorExpiryDate ? (\r\n Enter valid expiry month and year(MM/YYYY)\r\n ) : null}\r\n
\r\n\r\n
\r\n\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n {this.state.validationErrorCvvNo ? (\r\n Enter valid security no\r\n ) : null}\r\n\r\n
\r\n {this.state.errorStatus ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n );\r\n }\r\n}","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Abhishek K\r\n\r\nimport React, { Component } from \"react\";\r\nimport { Container, Alert, Modal } from \"react-bootstrap\";\r\nimport { FooterNavBarComponent } from \"../../components/FooterNavBar\";\r\nimport { LoginNavBarComponent } from \"../../components/LoginNavBar\";\r\nimport $ from \"jquery\";\r\nimport SignInController from \"../../Controllers/SignInController\";\r\nimport { async } from \"validate.js\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { ToastContainer, toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faInfo, faInfoCircle } from \"@fortawesome/free-solid-svg-icons\";\r\nimport ReactTooltip from \"react-tooltip\";\r\n\r\nexport class IRA_ForgotPassword extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n email: \"\",\r\n otp: \"\",\r\n password: \"\",\r\n confirmPassword: \"\",\r\n clicked: false,\r\n ErrorMessageList: [],\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n };\r\n\r\n this.emailIdentity = this.emailIdentity.bind(this);\r\n this.onChangeOTP = this.onChangeOTP.bind(this);\r\n this.onChangePassword = this.onChangePassword.bind(this);\r\n this.onChangeConfirmPassword = this.onChangeConfirmPassword.bind(this);\r\n }\r\n emailIdentity = (e) => {\r\n this.setState({\r\n email: e.target.value,\r\n });\r\n };\r\n\r\n onChangeOTP = (e) => {\r\n this.setState({\r\n otp: e.target.value,\r\n });\r\n };\r\n\r\n onChangePassword = (e) => {\r\n this.setState({\r\n password: e.target.value,\r\n });\r\n };\r\n\r\n onChangeConfirmPassword = (e) => {\r\n this.setState({\r\n confirmPassword: e.target.value,\r\n });\r\n };\r\n\r\n handleEmailSubmit = async (e) => {\r\n var emailBox = document.getElementById(\"email\");\r\n e.preventDefault();\r\n if (emailBox.value != null && emailBox.value != \"\") {\r\n var mailformat = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/;\r\n if (emailBox.value.match(mailformat)) {\r\n var username = this.state.email.trim();\r\n var isCodeSent = await SignInController.forgotPassword(username);\r\n console.log(isCodeSent);\r\n\r\n if (!isCodeSent) {\r\n var error = \"Please Enter Valid Email\";\r\n this.ErrorNotify(error);\r\n return;\r\n }\r\n\r\n this.notify();\r\n $(\"#otpInputBox\").show();\r\n $(\"#passwordInputBox\").show();\r\n $(\"#confirmPasswordInputBox\").show();\r\n emailBox.setAttribute(\"disabled\", \"disabled\");\r\n this.setState({ clicked: true });\r\n } else {\r\n console.log(\"email not matched\");\r\n var error = \"Please Enter Valid Email\";\r\n this.ErrorNotify(error);\r\n }\r\n } else {\r\n var error = \"Please Enter Email\";\r\n this.ErrorNotify(error);\r\n }\r\n };\r\n\r\n notify = () => toast.info(this.CustomToast);\r\n CustomToast = () => (\r\n
\r\n You will receive a mail if you are registered with us.\r\n
\r\n );\r\n\r\n handleChangePassword = async (e) => {\r\n e.preventDefault();\r\n var email = this.state.email.trim();\r\n var newPassword = this.state.password.trim();\r\n var confirmPassword = this.state.confirmPassword.trim();\r\n var otp = this.state.otp.trim();\r\n var SpecialCharacter = new RegExp(\"(?=.*[!@#$%^&*])\");\r\n \r\n var updatePassword = \"\";\r\n var errorMsg = \"\";\r\n if (newPassword == confirmPassword) {\r\n updatePassword = await SignInController.forgotPasswordPost(\r\n email,\r\n otp,\r\n confirmPassword\r\n );\r\n }\r\n\r\n if (updatePassword == true) {\r\n document\r\n .getElementById(\"btnPasswordSubmit\")\r\n .setAttribute(\"disabled\", \"disabled\");\r\n\r\n document.getElementById(\"email\").value = \"\";\r\n document.getElementById(\"otp\").value = \"\";\r\n document.getElementById(\"password\").value = \"\";\r\n document.getElementById(\"confirmPassword\").value = \"\";\r\n\r\n var passwordReset =\r\n \"Your Password has been reset successfully, You will be redirected to Sign In Page.\";\r\n this.SuccessNotify(passwordReset);\r\n\r\n var reloadSignInPage = window.location.origin + \"/referenceApp/signin\";\r\n window.setTimeout(function () {\r\n window.location.replace(reloadSignInPage);\r\n }, 5000);\r\n // SignInController.passwordResetMsg();\r\n } else if (newPassword != confirmPassword) {\r\n console.log(\"password error\");\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"New Password and Confirm Password Should Match\",\r\n });\r\n } else {\r\n errorMsg = updatePassword.message;\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: errorMsg,\r\n });\r\n }\r\n\r\n // this.state.ErrorMessage.push(updatePassword.message);\r\n\r\n // console.log(this.state.ErrorMessage);\r\n // this.ErrorNotify(ErrorMessage);\r\n };\r\n SuccessNotify = (success) => toast.success(success);\r\n\r\n ErrorNotify = (error) => {\r\n toast.error(error);\r\n };\r\n\r\n componentDidMount() {\r\n $(\"#otpInputBox\").hide();\r\n $(\"#passwordInputBox\").hide();\r\n $(\"#confirmPasswordInputBox\").hide();\r\n }\r\n render() {\r\n const isEnabled =\r\n this.state.password.length > 0 &&\r\n this.state.confirmPassword.length > 0 &&\r\n this.state.otp.length > 0;\r\n return (\r\n
\r\n \r\n\r\n \r\n \r\n
    \r\n
  • Password must contain a number
  • \r\n
  • Password must contain at least 8 characters
  • \r\n
  • Password must contain a lower case letter
  • \r\n
  • Password must contain an upper case letter
  • \r\n
  • Password must contain a special character
  • \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n Forgot Password\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n Sign In\r\n \r\n
\r\n {this.state.errorStatus ? (\r\n \r\n {this.state.errorMessage}\r\n \r\n ) : null}\r\n\r\n {this.state.clicked == false ? (\r\n \r\n Go\r\n \r\n ) : (\r\n \r\n Submit\r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport $ from 'jquery';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, cardList, srcCorrelationId } from \"../../redux/actions/Action\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport \"../../scss/_inputBox.css\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\nimport { Input, Col, Label } from \"reactstrap\";\r\nimport CardEncryption from \"../../utility/CardEncryption\";\r\n\r\nvar testCaseName = \"\";\r\n\r\nexport class SF_PaymentCardPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cardNumberInput: \"\",\r\n expiryMonth: \"\",\r\n expiryYear: \"\",\r\n cvvNo: \"\",\r\n validationErrorCardNo: false,\r\n validationErrorExpiryDate: false,\r\n validationErrorCvvNo: false,\r\n transactionStatus: false,\r\n errorResponse: false,\r\n errorMessage: \"\",\r\n testCaseName: \"\",\r\n lithosuri: loggerHost.lithosuri,\r\n s4Redirection: false,\r\n noWindowRef: false,\r\n blankWindowRef: false,\r\n contentWindow: true,\r\n dcfInvokeStatus: false,\r\n emptyWindowRef: false,\r\n scenarioRefURL: \"\",\r\n scenarioRoute: \"\",\r\n dcfInvokeMsg: \"\",\r\n switchConsumer: false,\r\n changeCard: false\r\n };\r\n }\r\n\r\n enrollCardClick = async () => {\r\n var cardNumber = $(\"#cardNumberInput\").text();\r\n var cardExpTxt = $(\"#cardExpiryInput\").text();\r\n var splitedString = cardExpTxt.split(\"/\");\r\n\r\n var exMonth = splitedString[0];\r\n var exYear = splitedString[1];\r\n\r\n // Card CVV\r\n var cardCvvTxt = $(\"#cardSCodeInput\").text();\r\n\r\n var cardEnrollment = await DataParamsController.getParamsForTheAPICall(\"enrollCard\");\r\n cardEnrollment.srciTransactionId = SRCWrapper.srcTransactionID;\r\n\r\n\r\n\r\n try {\r\n // Taking screen-shot\r\n var dataURL;\r\n //var element = document.querySelector('#paymentCardPage') as HTMLDivElement;\r\n html2canvas(document.querySelector('#paymentCardPage'), {\r\n width: 1000,\r\n height: 600,\r\n\r\n }).then(function (canvas) {\r\n console.log(canvas);\r\n //canvas.innerText();\r\n\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n } catch (error) {\r\n // Error implementation\r\n }\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n var card = {};\r\n\r\n card.primaryAccountNumber = cardNumber.replace(/\\s/g, '');\r\n card.panExpirationMonth = exMonth;\r\n card.panExpirationYear = exYear;\r\n card.cardSecurityCode = cardCvvTxt;\r\n\r\n let encryptedCard = await CardEncryption.encrptCardDetails(card);\r\n\r\n if (encryptedCard != null && encryptedCard != \"\") {\r\n cardEnrollment.encryptedCard = encryptedCard;\r\n } else {\r\n cardEnrollment.card = card;\r\n }\r\n\r\n console.log(cardEnrollment);\r\n try {\r\n // Card Enrollment\r\n console.log(\"----------------------\");\r\n let response = await window.DGNCheckout.enrollCard(cardEnrollment);\r\n console.log(response);\r\n\r\n store.dispatch(cardList(response.maskedCard));\r\n\r\n logImage(SRCWrapper.srcTransactionID, \"enrollCard\", dataURL); // Sending screen shot image \r\n this.checkout(response);\r\n\r\n } catch (error) {\r\n console.log(error.description);\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: (error.description != null) ? error.description : \"Please enter correct details\"\r\n });\r\n\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n };\r\n\r\n selectDcfInvoke = dcfInvokeType => {\r\n let type = dcfInvokeType.target.value;\r\n console.log(type);\r\n\r\n switch (type) {\r\n case \"noWindowRef\":\r\n this.setState({ noWindowRef: true, blankWindowRef: false, contentWindow: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"blank\":\r\n this.setState({ blankWindowRef: true, noWindowRef: false, contentWindow: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"contentWindow\":\r\n this.setState({ contentWindow: true, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"emptyWindowRef\":\r\n this.setState({ contentWindow: false, noWindowRef: false, blankWindowRef: false, emptyWindowRef: true, dcfInvokeStatus: false });\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n\r\n directCheckout = async () => {\r\n this.checkout(null);\r\n };\r\n\r\n\r\n checkout = async (enrollCardResponse) => {\r\n var checkout = await DataParamsController.getParamsForTheAPICall(\"checkout\");\r\n console.log(checkout);\r\n\r\n const { location: { state: { response: { dcfActionCode } } } } =\r\n this.props.location && this.props.location.state &&\r\n this.props.location.state.response ?\r\n this.props :\r\n { location: { state: { response: { dcfActionCode: null } } } };\r\n let dcfWindow;\r\n\r\n if (enrollCardResponse != null) {\r\n checkout.srcCorrelationId = enrollCardResponse.srcCorrelationId;\r\n checkout.srcDigitalCardId = enrollCardResponse.maskedCard.srcDigitalCardId;\r\n } else { // Direct checkout\r\n var cardNumber = $(\"#cardNumberInput\").text();\r\n var cardExpTxt = $(\"#cardExpiryInput\").text();\r\n var splitedString = cardExpTxt.split(\"/\");\r\n var exMonth = splitedString[0];\r\n var exYear = splitedString[1];\r\n var cardCvvTxt = $(\"#cardSCodeInput\").text();\r\n\r\n var card = {};\r\n\r\n card.primaryAccountNumber = cardNumber.replace(/\\s/g, '');\r\n card.panExpirationMonth = exMonth;\r\n card.panExpirationYear = exYear;\r\n card.cardSecurityCode = cardCvvTxt;\r\n\r\n checkout.encryptedCard = card;\r\n }\r\n\r\n checkout.srciTransactionId = SRCWrapper.srcTransactionID;\r\n\r\n console.log(enrollCardResponse)\r\n\r\n\r\n var srcProfiles = await DataParamsController.getParamsForTheAPICall(\"getSrcProfile\");\r\n srcProfiles.idTokens = store.getState().reducer.idTokens;\r\n\r\n\r\n\r\n let value = {};\r\n if (this.state.contentWindow === true) {\r\n let dcfIframe = document.createElement('iframe');\r\n dcfIframe.setAttribute('id', 'dcfIframe');\r\n dcfIframe.setAttribute('src', '');\r\n dcfIframe.style.zIndex = '2';\r\n dcfIframe.style.position = \"absolute\";\r\n dcfIframe.style.display = 'block';\r\n dcfIframe.style.width = '30%';\r\n dcfIframe.style.height = '92vh';\r\n dcfIframe.style.margin = '2% 35%';\r\n document.body.after(dcfIframe, document.body);\r\n checkout.windowRef = document.getElementById('dcfIframe').contentWindow;\r\n }\r\n\r\n if (this.state.blankWindowRef === true) {\r\n dcfWindow = window.open('about:blank');\r\n checkout.windowRef = dcfWindow;\r\n }\r\n\r\n if (this.state.noWindowRef === true) {\r\n delete (checkout.windowRef);\r\n }\r\n\r\n\r\n console.log(checkout);\r\n\r\n try {\r\n // loging test case info\r\n await SRCWrapper.logTestcaseInfo(value, checkout.srcCorrelationId, null);\r\n console.log(checkout);\r\n\r\n let response = await window.DGNCheckout.checkout(checkout);\r\n console.log(response);\r\n\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n frame.parentNode.removeChild(frame);\r\n }\r\n\r\n switch (response.dcfActionCode) {\r\n case \"COMPLETE\":\r\n \r\n this.setState({ completeTransaction: true });\r\n\r\n if (this.state.scenarioRefURL != \"\") {\r\n this.setState({\r\n scenarioRoute: this.state.scenarioRefURL,\r\n dcfActionCode: response.dcfActionCode\r\n });\r\n } else {\r\n this.setState({\r\n errorResponse: true,\r\n transactionStatus: true,\r\n dcfActionCode: response.dcfActionCode\r\n });\r\n }\r\n break;\r\n\r\n case \"ADD_CARD\":\r\n break;\r\n\r\n case \"SWITCH_CONSUMER\":\r\n this.setState({ switchConsumer: true });\r\n break;\r\n\r\n case \"CHANGE_CARD\":\r\n this.setState({ changeCard: true });\r\n break;\r\n\r\n default: // CANCEL || ERROR\r\n if (response.dcfActionCode == \"ERROR\") {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error.errorCode,\r\n errorDescription: response.error.errorDescription,\r\n errorResponse: false\r\n });\r\n }\r\n }\r\n store.dispatch(loaderState(false));\r\n\r\n } catch (error) {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.description\r\n });\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n };\r\n\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n testCaseName = SRCWrapper.testCaseInfo;\r\n if (testCaseName == \"SRC_07_13\" || testCaseName == \"SRC_07_32\") {\r\n console.log(\"-----\");\r\n this.setState({ contentWindow: false, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false, emptyWindowRef: true });\r\n }\r\n\r\n var url = window.location.href.slice(window.location.href.indexOf('?') + 1);\r\n\r\n if (url != null && url != \"\" && url.includes(\"scenario_5\")) {\r\n this.setState({ scenarioRefURL: \"\" });\r\n } else if (url != null && url != \"\" && url.includes(\"scenario\")) {\r\n console.log(\"---++--\");\r\n this.setState({ scenarioRefURL: \"/\" + url + \"/thank-you\" });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n {this.state.scenarioRoute != \"\" ? : null}\r\n {this.state.transactionStatus ? : null}\r\n {this.state.changeCard ? : null}\r\n {this.state.switchConsumer ? : null}\r\n\r\n \r\n \r\n\r\n

We secure your information

\r\n

Together We Work

\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Enter your card details

\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n\r\n {this.state.validationErrorCardNo ? (\r\n Enter valid card number.\r\n ) : null}\r\n
\r\n\r\n
\r\n
\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n\r\n {this.state.validationErrorExpiryDate ? (\r\n Enter valid expiry month and year(MM/YYYY)\r\n ) : null}\r\n
\r\n\r\n
\r\n\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n {this.state.validationErrorCvvNo ? (\r\n Enter valid security no\r\n ) : null}\r\n\r\n
\r\n {this.state.errorStatus ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {(testCaseName == \"SRC_07_13\" || testCaseName == \"SRC_07_32\") ?\r\n \r\n \r\n : null\r\n }\r\n\r\n \r\n {this.state.dcfInvokeStatus ? (\r\n \r\n {this.state.dcfInvokeMsg}\r\n \r\n ) : null}\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Container } from 'react-bootstrap';\r\nimport { SearchNavBarComponent } from '../../components/SearchNavBar';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, idTokens, dpaID } from \"../../redux/actions/Action\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\n\r\nvar urlDataParam = false;\r\n\r\nexport class SF_CheckoutPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.processQueryParams();\r\n\r\n this.state = {\r\n responseStatus: false,\r\n responseMessage: \"\",\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n dataConfiguration: []\r\n\r\n };\r\n }\r\n\r\n // Getting query params from URL\r\n processQueryParams() {\r\n var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');\r\n let jwtToken = \"\";\r\n let type = \"manual\";\r\n\r\n for (var i = 0; i < url.length; i++) {\r\n var urlparam = url[i].split('=');\r\n if (urlparam[0] == \"data\") {\r\n jwtToken = urlparam[1];\r\n urlDataParam = true;\r\n }\r\n if (urlparam[0] == \"type\") {\r\n type = urlparam[1];\r\n }\r\n }\r\n\r\n SRCWrapper.decodeJWTToken(jwtToken, type);\r\n };\r\n\r\n handleCheckoutClick = async () => {\r\n // Taking screen-shot\r\n\r\n try {\r\n var dataURL;\r\n html2canvas(document.querySelector('#checkoutTrigger'), {\r\n width: 1000,\r\n height: 700\r\n })\r\n .then(function (canvas) {\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n var initializationParams = await DataParamsController.getParamsForTheAPICall(\"init\");\r\n\r\n initializationParams.srciTransactionId = SRCWrapper.srcTransactionID;\r\n store.dispatch(loaderState(true));\r\n\r\n try {\r\n // init call\r\n let initResponse = await window.DGNCheckout.init(\r\n initializationParams\r\n );\r\n\r\n\r\n if (initResponse.status == \"200\") {\r\n let recongizeResponse = await window.DGNCheckout.isRecognized();\r\n\r\n if (recongizeResponse.recognized == true) {\r\n logImage(SRCWrapper.srcTransactionID, \"init\", dataURL);\r\n store.dispatch(loaderState(false));\r\n store.dispatch(idTokens(recongizeResponse.idTokens));\r\n this.setState({ responseStatus: true });\r\n\r\n // Need to implement if recongized is true.\r\n } else {\r\n this.setState({ responseStatus: false });\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"UnKnown device\",\r\n });\r\n }\r\n } else {\r\n store.dispatch(loaderState(true));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: initResponse.description,\r\n });\r\n }\r\n\r\n } catch (error) {\r\n store.dispatch(loaderState(true));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.description,\r\n });\r\n }\r\n };\r\n\r\n inputFocusout = async (event) => {\r\n var inputValue = event.target.textContent;\r\n var inputID = event.target.id;\r\n var inputGroupName = event.target.closest(\"td\").getAttribute('groupname');\r\n var counter = event.target.closest(\"td\").getAttribute('counter');\r\n\r\n console.log(inputValue + \" \" + inputID + \" \" + inputGroupName + \" \" + counter);\r\n\r\n DataParamsController.updateTestDataValueInStore(inputID, inputValue, inputGroupName, counter);\r\n };\r\n\r\n closePopUpClick = async (event) => {\r\n document.getElementById(\"myModal\").style.display = \"none\";\r\n document.getElementById(\"myCloseModal\").style.display = \"none\";\r\n };\r\n\r\n handlePopUpClick = async () => {\r\n var configuration = await DataParamsController.getParamsForTheConfiguration();\r\n\r\n console.log(configuration);\r\n if (configuration != null && configuration.length > 0) {\r\n this.setState({ dataConfiguration: configuration });\r\n document.getElementById(\"myModal\").style.display = \"block\";\r\n } else {\r\n document.getElementById(\"myCloseModal\").style.display = \"block\";\r\n }\r\n };\r\n\r\n handleToggleClick = async (event) => {\r\n event.target.classList.toggle(\"active\");\r\n var content = event.target.nextElementSibling;\r\n\r\n if (content.style.maxHeight) {\r\n content.style.maxHeight = null;\r\n } else {\r\n content.style.maxHeight = content.scrollHeight + \"px\";\r\n }\r\n }\r\n\r\n\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n\r\n if (urlDataParam) {\r\n document.getElementById(\"btnConfiguration\").style.display = \"block\";\r\n } else {\r\n document.getElementById(\"btnConfiguration\").style.display = \"none\";\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {this.state.responseStatus ? : null}\r\n \r\n \r\n\r\n

YOUR CART


\r\n
\r\n
\r\n

ITEMS:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The Godfather by Mario Puzo

\r\n\r\n

\r\n Qty: 1

\r\n

\r\n In Stock

\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n\r\n
\r\n
SUBTOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
ESTIMATED SHIPPING &
HANDLING
\r\n
FREE
\r\n
\r\n\r\n
\r\n
TOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n {this.state.errorStatus ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n ×\r\n

Test Data Configuration

\r\n\r\n {\r\n this.state.dataConfiguration.map((element, i) => {\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n element.Fields.map((field, counter) => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n )\r\n })\r\n }\r\n\r\n
Param NameDefault Value
{field.ParameterName}\r\n
{field.DefaultData}
\r\n\r\n {/* */}\r\n
\r\n
\r\n\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n ×\r\n

No data available for configuration

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n alert();\r\n return {\r\n loader: state.reducer.loaderState\r\n };\r\n};\r\n\r\n//export default connect(mapStateToProps)(CheckoutPage);","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport { store } from \"../../redux/store\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Col, Row } from \"reactstrap\";\r\nimport { loaderState, srcCorrelationId, cardList, idTokens } from \"../../redux/actions/Action\";\r\nimport { connect } from \"react-redux\";\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\nimport { Input, Label } from \"reactstrap\";\r\n\r\nexport class SF_ProfilePage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n errorDescription: \"\",\r\n cardList: null,\r\n checkoutResponse: null,\r\n completeTransaction: false,\r\n noWindowRef: false,\r\n blankWindowRef: false,\r\n contentWindow: true,\r\n dcfInvokeStatus: false,\r\n dcfInvokeMsg: \"\",\r\n invokeType: \"\",\r\n enrollCard: false\r\n };\r\n this.cardSelected = this.cardSelected.bind(this);\r\n }\r\n async componentDidMount() {\r\n store.dispatch(loaderState(true));\r\n\r\n var srcProfiles = {};\r\n srcProfiles.idTokens = store.getState().reducer.idTokens;\r\n\r\n console.log(srcProfiles);\r\n\r\n try {\r\n let response = await window.DGNCheckout.getSrcProfile(srcProfiles);\r\n console.log(response);\r\n\r\n if (response.srcCorrelationId) {\r\n store.dispatch(srcCorrelationId(response.srcCorrelationId));\r\n\r\n this.setState({\r\n cardList: response.profiles[0].maskedCards\r\n });\r\n\r\n console.log(this.state.cardList);\r\n \r\n store.dispatch(cardList(response.profiles[0].maskedCards));\r\n\r\n } else {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error.reason,\r\n errorDescription: response.error.message\r\n });\r\n }\r\n\r\n } catch (error) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.reason,\r\n errorDescription: error.description\r\n });\r\n }\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n selectDcfInvoke = dcfInvokeType => {\r\n let type = dcfInvokeType.target.value\r\n\r\n switch (type) {\r\n case \"noWindowRef\":\r\n this.setState({ noWindowRef: true, blankWindowRef: false, contentWindow: false, dcfInvokeStatus: false });\r\n break\r\n\r\n case \"blank\":\r\n this.setState({ blankWindowRef: true, noWindowRef: false, contentWindow: false, dcfInvokeStatus: false });\r\n break\r\n\r\n case \"contentWindow\":\r\n this.setState({ contentWindow: true, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false });\r\n break\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n cardSelected = async cardId => {\r\n let dcfWindow;\r\n\r\n try {\r\n var maskedCards = store.getState().reducer.cardList;\r\n\r\n if (maskedCards != null && maskedCards.length > 0) {\r\n maskedCards.forEach(function (item, index) {\r\n if (item.srcDigitalCardId != null && item.srcDigitalCardId == cardId) {\r\n store.dispatch(cardList(item));\r\n }\r\n });\r\n }\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n var checkout = await DataParamsController.getParamsForTheAPICall(\"checkout\");\r\n\r\n const { location: { state: { response: { dcfActionCode } } } } =\r\n this.props.location && this.props.location.state &&\r\n this.props.location.state.response ?\r\n this.props :\r\n { location: { state: { response: { dcfActionCode: null } } } };\r\n\r\n\r\n\r\n checkout.srciTransactionId = SRCWrapper.srcTransactionID;\r\n checkout.srcCorrelationId = store.getState().reducer.srcCorrelationId;\r\n checkout.srcDigitalCardId = cardId;\r\n\r\n let value = {};\r\n\r\n if (this.state.contentWindow === true) {\r\n let dcfIframe = document.createElement('iframe');\r\n dcfIframe.setAttribute('id', 'dcfIframe');\r\n dcfIframe.setAttribute('name', 'DCFIframe');\r\n dcfIframe.setAttribute('src', '');\r\n dcfIframe.style.zIndex = '2';\r\n dcfIframe.style.position = \"absolute\";\r\n dcfIframe.style.display = 'block';\r\n dcfIframe.style.width = '30%';\r\n dcfIframe.style.height = '92vh';\r\n dcfIframe.style.margin = '2% 35%';\r\n document.body.after(dcfIframe, document.body);\r\n checkout.windowRef = document.getElementById('dcfIframe').contentWindow;\r\n }\r\n\r\n if (this.state.blankWindowRef === true) {\r\n dcfWindow = window.open('about:blank');\r\n checkout.windowRef = dcfWindow;\r\n }\r\n\r\n console.log(checkout);\r\n\r\n let testCaseInfo = await SRCWrapper.logTestcaseInfo(value, store.getState().reducer.srcCorrelationId, null);\r\n\r\n let response = await window.DGNCheckout.checkout(checkout);\r\n console.log(response);\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n switch (response.dcfActionCode) {\r\n case \"COMPLETE\":\r\n this.setState({ completeTransaction: true });\r\n break;\r\n\r\n case \"ADD_CARD\":\r\n this.setState({ enrollCard: true, addCard: true });\r\n break;\r\n\r\n case \"SWITCH_CONSUMER\":\r\n this.setState({ switchConsumer: true });\r\n break;\r\n\r\n case \"CHANGE_CARD\":\r\n await this.componentDidMount();\r\n break;\r\n\r\n default: // CANCEL || ERROR\r\n if (response.dcfActionCode == \"ERROR\") {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error.errorCode,\r\n errorDescription: response.error.errorDescription\r\n });\r\n }\r\n }\r\n store.dispatch(loaderState(false));\r\n } catch (error) {\r\n console.log(error);\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n console.log(frame);\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.reason,\r\n errorDescription: error.description\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n {\r\n this.state.completeTransaction === true ? (<\r\n Redirect to=\"/scenario_5/thank-you\"\r\n />\r\n ) : null}\r\n\r\n {\r\n this.state.enrollCard === true ? (\r\n \r\n ) : null}\r\n\r\n\r\n \r\n \r\n\r\n
\r\n\r\n\r\n
\r\n

CARDS

\r\n
\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n {\r\n this.state.cardList != null ? (\r\n {\r\n this.state.cardList.map((card, i) => (\r\n \r\n this.cardSelected(card.srcDigitalCardId)\r\n }\r\n >\r\n \r\n Card Art\r\n <\r\n Col xs={\r\n 8\r\n }\r\n style={\r\n {\r\n textAlign: \"left\"\r\n }\r\n } >\r\n

{\r\n card.digitalCardData\r\n .presentationName\r\n }\r\n
\r\n \r\n XXXX - XXXX - XXXX - {\r\n card.panLastFour\r\n }

\r\n \r\n
\r\n ))\r\n }\r\n
\r\n ) :

No cards available

\r\n }\r\n
\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {this.state.dcfInvokeStatus ? (\r\n \r\n {this.state.dcfInvokeMsg}\r\n \r\n ) : null}\r\n \r\n {\r\n this.state.errorStatus ? ( {\r\n this.state.errorMessage\r\n }
{\r\n this.state.errorDescription\r\n }
\r\n ) : null\r\n }
\r\n
\r\n \r\n
\r\n
\r\n );\r\n\r\n\r\n }\r\n\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n loader: state.reducer.loaderState,\r\n idTokens: state.reducer.idTokens,\r\n srcCorrelationId: state.reducer.srcCorrelationId,\r\n srciTransactionId: state.reducer.srciTransactionId\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(SF_ProfilePage);","import React, { Component } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Container, InputGroup } from 'react-bootstrap';\r\nimport { SearchNavBarComponent } from '../../components/SearchNavBar';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, idTokens, dpaID } from \"../../redux/actions/Action\";\r\nimport { connect } from \"react-redux\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport $ from \"jquery\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\n\r\nvar urlDataParam = false;\r\nvar isS4Execution = false;\r\n\r\nexport class ScenarioCheckoutPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.processQueryParams();\r\n\r\n this.state = {\r\n responseStatusS3: false,\r\n responseStatusS7: false,\r\n responseStatusS4: false,\r\n responseMessage: \"\",\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n dataConfiguration: [],\r\n pageStatus: false\r\n };\r\n }\r\n\r\n // Getting query params from URL\r\n processQueryParams() {\r\n var url = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');\r\n let jwtToken = \"\";\r\n let type = \"manual\";\r\n\r\n console.log(url);\r\n for (var i = 0; i < url.length; i++) {\r\n console.log(url[i]);\r\n var urlparam = url[i].split('=');\r\n\r\n console.log(urlparam);\r\n\r\n if (urlparam[0] == \"data\") {\r\n jwtToken = urlparam[1];\r\n urlDataParam = true;\r\n }\r\n if (urlparam[0] == \"type\") {\r\n type = urlparam[1];\r\n }\r\n }\r\n\r\n console.log(url[1]);\r\n if (url.length >= 1 && url[1] == \"scenario4\") {\r\n console.log(\" --- 4\");\r\n isS4Execution = true;\r\n }\r\n // SRCWrapper.decodeJWTToken(jwtToken, type);\r\n }\r\n\r\n handleCheckoutClick = async () => {\r\n if (document.readyState != 'complete') {\r\n this.setState({ pageStatus: true, errorMessage: \"Page loading. please wait...\" });\r\n return;\r\n } else {\r\n this.setState({ pageStatus: false });\r\n }\r\n\r\n // Taking screen-shot\r\n try {\r\n var dataURL;\r\n html2canvas(document.querySelector('#checkoutTrigger'), {\r\n width: 1000,\r\n height: 700\r\n })\r\n .then(function (canvas) {\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n var initializationParams = await DataParamsController.getParamsForTheAPICall(\"init\");\r\n store.dispatch(loaderState(true));\r\n console.log(initializationParams);\r\n\r\n try {\r\n // init call\r\n await window.DGNCheckout.init(initializationParams);\r\n let recongizeResponse = await window.DGNCheckout.isRecognized();\r\n\r\n console.log(recongizeResponse);\r\n\r\n if (recongizeResponse.recognized == true) {\r\n store.dispatch(idTokens(recongizeResponse.idTokens));\r\n this.setState({ responseStatusS3: true });\r\n\r\n console.log(this.state.responseStatusS3);\r\n\r\n } else if (isS4Execution && recongizeResponse.recognized == false) {\r\n this.setState({ responseStatusS4: true });\r\n console.log(\"s4\");\r\n }\r\n else {\r\n this.setState({ responseStatusS7: false });\r\n console.log(this.state.responseStatusS7);\r\n }\r\n\r\n console.log(isS4Execution)\r\n logImage(SRCWrapper.srcTransactionID, \"init\", dataURL);\r\n store.dispatch(loaderState(false));\r\n\r\n } catch (error) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.description,\r\n });\r\n }\r\n };\r\n\r\n inputFocusout = async (event) => {\r\n var inputValue = event.target.textContent;\r\n var inputID = event.target.id;\r\n var inputGroupName = event.target.closest(\"td\").getAttribute('groupname');\r\n var counter = event.target.closest(\"td\").getAttribute('counter');\r\n\r\n DataParamsController.updateTestDataValueInStore(inputID, inputValue, inputGroupName, counter);\r\n };\r\n\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n\r\n if (urlDataParam) {\r\n document.getElementById(\"btnConfiguration\").style.display = \"block\";\r\n } else {\r\n document.getElementById(\"btnConfiguration\").style.display = \"none\";\r\n }\r\n\r\n document.onreadystatechange = function () {\r\n if (document.readyState === 'complete') {\r\n this.setState({ pageStatus: false });\r\n console.log(\"--------------------\");\r\n }\r\n }.bind(this);\r\n };\r\n\r\n closePopUpClick = async (event) => {\r\n document.getElementById(\"myModal\").style.display = \"none\";\r\n document.getElementById(\"myCloseModal\").style.display = \"none\";\r\n };\r\n\r\n handlePopUpClick = async () => {\r\n var configuration = await DataParamsController.getParamsForTheConfiguration();\r\n\r\n console.log(configuration);\r\n\r\n if (configuration != null && configuration.length > 0) {\r\n this.setState({ dataConfiguration: configuration });\r\n document.getElementById(\"myModal\").style.display = \"block\";\r\n } else {\r\n document.getElementById(\"myCloseModal\").style.display = \"block\";\r\n }\r\n };\r\n\r\n handleToggleClick = async (event) => {\r\n event.target.classList.toggle(\"active\");\r\n var content = event.target.nextElementSibling;\r\n\r\n if (content.style.maxHeight) {\r\n content.style.maxHeight = null;\r\n } else {\r\n content.style.maxHeight = content.scrollHeight + \"px\";\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {this.state.responseStatusS7 ? : null}\r\n {this.state.responseStatusS3 ? : null}\r\n {this.state.responseStatusS4 ? : null}\r\n\r\n \r\n \r\n\r\n

YOUR CART


\r\n
\r\n
\r\n

ITEMS:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

The Godfather by Mario Puzo

\r\n\r\n

\r\n Qty: 1

\r\n

\r\n In Stock

\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
SUBTOTAL
\r\n
$10.00
\r\n
\r\n\r\n
\r\n
ESTIMATED SHIPPING &
HANDLING
\r\n
FREE
\r\n
\r\n\r\n
\r\n
TOTAL
\r\n
$10.00
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n {this.state.errorStatus || this.state.pageStatus ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n ×\r\n

Test Data Configuration

\r\n\r\n {\r\n this.state.dataConfiguration.map((element, i) => {\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n element.Fields.map((field, counter) => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n )\r\n })\r\n }\r\n\r\n
Param NameDefault Value
{field.ParameterName}\r\n
{field.DefaultData}
\r\n\r\n {/* */}\r\n
\r\n
\r\n\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n ×\r\n

No data available for configuration

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n loader: state.reducer.loaderState\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(ScenarioCheckoutPage);","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport { store } from \"../../redux/store\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Col, Row } from \"reactstrap\";\r\nimport { loaderState, srcCorrelationId, cardList, idTokens } from \"../../redux/actions/Action\";\r\nimport { connect } from \"react-redux\";\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\nimport { Input, Label } from \"reactstrap\";\r\n\r\n\r\nexport class ScenarioProfilesPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n errorStatus: false,\r\n errorMessage: \"\",\r\n errorDescription: \"\",\r\n cardList: null,\r\n checkoutResponse: null,\r\n completeTransaction: false,\r\n noWindowRef: false,\r\n blankWindowRef: false,\r\n contentWindow: true,\r\n dcfInvokeStatus: false,\r\n dcfInvokeMsg: \"\",\r\n addCard: false\r\n };\r\n this.cardSelected = this.cardSelected.bind(this);\r\n }\r\n async componentDidMount() {\r\n store.dispatch(loaderState(true));\r\n\r\n var srcProfiles = await DataParamsController.getParamsForTheAPICall(\"getSrcProfile\");\r\n srcProfiles.idTokens = store.getState().reducer.idTokens;\r\n\r\n try {\r\n let response = await window.DGNCheckout.getSrcProfile(srcProfiles);\r\n\r\n if (response.srcCorrelationId) {\r\n store.dispatch(srcCorrelationId(response.srcCorrelationId));\r\n this.setState({ cardList: response.profiles[0].maskedCards });\r\n store.dispatch(cardList(response.profiles[0].maskedCards));\r\n\r\n } else {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error.reason,\r\n errorDescription: response.error.message\r\n });\r\n }\r\n store.dispatch(loaderState(false));\r\n } catch (error) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.reason,\r\n errorDescription: error.description\r\n });\r\n }\r\n }\r\n\r\n selectDcfInvoke = dcfInvokeType => {\r\n let type = dcfInvokeType.target.value\r\n\r\n switch (type) {\r\n case \"noWindowRef\":\r\n this.setState({ noWindowRef: true, blankWindowRef: false, contentWindow: false, dcfInvokeStatus: false });\r\n break\r\n\r\n case \"blank\":\r\n this.setState({ blankWindowRef: true, noWindowRef: false, contentWindow: false, dcfInvokeStatus: false });\r\n break\r\n\r\n case \"contentWindow\":\r\n this.setState({ contentWindow: true, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false });\r\n break\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n cardSelected = async cardId => {\r\n let dcfWindow;\r\n\r\n try {\r\n var maskedCards = store.getState().reducer.cardList;\r\n\r\n if (maskedCards != null && maskedCards.length > 0) {\r\n maskedCards.forEach(function (item, index) {\r\n if (item.srcDigitalCardId != null && item.srcDigitalCardId == cardId) {\r\n store.dispatch(cardList(item));\r\n }\r\n });\r\n }\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n var checkout = await DataParamsController.getParamsForTheAPICall(\"checkout\");\r\n\r\n const { location: { state: { response: { dcfActionCode } } } } =\r\n this.props.location && this.props.location.state &&\r\n this.props.location.state.response ?\r\n this.props :\r\n { location: { state: { response: { dcfActionCode: null } } } };\r\n\r\n\r\n console.log(this.props.srcCorrelationId);\r\n\r\n checkout.srciTransactionId = SRCWrapper.srcTransactionID;\r\n checkout.srcCorrelationId = store.getState().reducer.srcCorrelationId;\r\n checkout.srcDigitalCardId = cardId;\r\n\r\n let value = {};\r\n\r\n if (this.state.contentWindow === true) {\r\n let dcfIframe = document.createElement('iframe');\r\n dcfIframe.setAttribute('id', 'dcfIframe');\r\n dcfIframe.setAttribute('name', 'DCFIframe');\r\n dcfIframe.setAttribute('src', '');\r\n dcfIframe.style.zIndex = '2';\r\n dcfIframe.style.position = \"absolute\";\r\n dcfIframe.style.display = 'block';\r\n dcfIframe.style.width = '30%';\r\n dcfIframe.style.height = '92vh';\r\n dcfIframe.style.margin = '2% 35%';\r\n document.body.after(dcfIframe, document.body);\r\n checkout.windowRef = document.getElementById('dcfIframe').contentWindow;\r\n }\r\n\r\n if (this.state.blankWindowRef === true) {\r\n dcfWindow = window.open('about:blank');\r\n checkout.windowRef = dcfWindow;\r\n }\r\n\r\n console.log(checkout);\r\n\r\n let testCaseInfo = await SRCWrapper.logTestcaseInfo(value, store.getState().reducer.srcCorrelationId, null);\r\n\r\n console.log(testCaseInfo);\r\n let response = await window.DGNCheckout.checkout(checkout);\r\n console.log(response);\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n switch (response.dcfActionCode) {\r\n case \"COMPLETE\":\r\n this.setState({ completeTransaction: true });\r\n break;\r\n\r\n case \"ADD_CARD\":\r\n this.setState({ enrollCard: true, addCard: true });\r\n break;\r\n\r\n case \"SWITCH_CONSUMER\":\r\n this.setState({ switchConsumer: true });\r\n break;\r\n\r\n case \"CHANGE_CARD\":\r\n await this.componentDidMount();\r\n break;\r\n\r\n default: // CANCEL || ERROR\r\n if (response.dcfActionCode == \"ERROR\") {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error.errorCode,\r\n errorDescription: response.error.errorDescription\r\n });\r\n }\r\n }\r\n store.dispatch(loaderState(false));\r\n } catch (error) {\r\n console.log(error);\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n console.log(frame);\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.reason,\r\n errorDescription: error.description\r\n });\r\n }\r\n };\r\n\r\n enrollCardClick = () => {\r\n this.setState({ addCard: true });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n {\r\n this.state.completeTransaction === true ? (<\r\n Redirect to=\"/thank-you\"\r\n />\r\n ) : null\r\n }\r\n\r\n {\r\n this.state.addCard === true ? (\r\n \r\n ) : null\r\n }\r\n\r\n \r\n \r\n\r\n
\r\n\r\n\r\n
\r\n

CARDS

\r\n
\r\n\r\n\r\n
\r\n\r\n {\r\n this.state.cardList != null ? (\r\n {\r\n this.state.cardList.map((card, i) => (\r\n \r\n this.cardSelected(card.srcDigitalCardId)\r\n }\r\n >\r\n \r\n Card Art\r\n <\r\n Col xs={\r\n 8\r\n }\r\n style={\r\n {\r\n textAlign: \"left\"\r\n }\r\n } >\r\n

{\r\n card.digitalCardData\r\n .presentationName\r\n }\r\n
\r\n \r\n XXXX - XXXX - XXXX - {\r\n card.panLastFour\r\n }

\r\n \r\n
\r\n ))\r\n }\r\n
\r\n ) :

No cards available.

\r\n }\r\n\r\n\r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {this.state.dcfInvokeStatus ? (\r\n \r\n {this.state.dcfInvokeMsg}\r\n \r\n ) : null}\r\n \r\n {\r\n this.state.errorStatus ? ( {\r\n this.state.errorMessage\r\n }
{\r\n this.state.errorDescription\r\n }
\r\n ) : null\r\n }
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n loader: state.reducer.loaderState,\r\n idTokens: state.reducer.idTokens,\r\n srcCorrelationId: state.reducer.srcCorrelationId,\r\n srciTransactionId: state.reducer.srciTransactionId\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(ScenarioProfilesPage);","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport $ from 'jquery';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, cardList } from \"../../redux/actions/Action\";\r\nimport { loggerHost } from \"../../logger/loggerConstants\";\r\nimport \"../../scss/_inputBox.css\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\nimport { Input, Col, Label } from \"reactstrap\";\r\nimport CardEncryption from \"../../utility/CardEncryption\";\r\n\r\nvar testCaseName = \"\";\r\n\r\nexport class ScenarioPaymentCardPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n cardNumberInput: \"\",\r\n expiryMonth: \"\",\r\n expiryYear: \"\",\r\n cvvNo: \"\",\r\n validationErrorCardNo: false,\r\n validationErrorExpiryDate: false,\r\n validationErrorCvvNo: false,\r\n errorResponse: false,\r\n errorMessage: \"\",\r\n testCaseName: \"\",\r\n lithosuri: loggerHost.lithosuri,\r\n s4Redirection: false,\r\n noWindowRef: false,\r\n blankWindowRef: false,\r\n contentWindow: true,\r\n dcfInvokeStatus: false,\r\n emptyWindowRef: false,\r\n dcfInvokeMsg: \"\"\r\n };\r\n }\r\n\r\n\r\n\r\n enrollCardClick = async () => {\r\n var cardNumber = $(\"#cardNumberInput\").text();\r\n var cardExpTxt = $(\"#cardExpiryInput\").text();\r\n var splitedString = cardExpTxt.split(\"/\");\r\n\r\n var exMonth = splitedString[0];\r\n var exYear = splitedString[1];\r\n\r\n // Card CVV\r\n var cardCvvTxt = $(\"#cardSCodeInput\").text();\r\n\r\n var cardEnrollment = await DataParamsController.getParamsForTheAPICall(\"enrollCard\");\r\n cardEnrollment.srciTransactionId = SRCWrapper.srcTransactionID;\r\n\r\n try {\r\n // Taking screen-shot\r\n var dataURL;\r\n //var element = document.querySelector('#paymentCardPage') as HTMLDivElement;\r\n html2canvas(document.querySelector('#paymentCardPage'), {\r\n width: 1000,\r\n height: 600,\r\n\r\n }).then(function (canvas) {\r\n console.log(canvas);\r\n //canvas.innerText();\r\n\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n } catch (error) {\r\n // Error implementation\r\n }\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n var card = {};\r\n\r\n card.primaryAccountNumber = cardNumber.replace(/\\s/g, '');\r\n card.panExpirationMonth = exMonth;\r\n card.panExpirationYear = exYear;\r\n card.cardSecurityCode = cardCvvTxt;\r\n\r\n let encryptedCard = await CardEncryption.encrptCardDetails(card);\r\n\r\n if (encryptedCard != null && encryptedCard != \"\") {\r\n cardEnrollment.encryptedCard = encryptedCard;\r\n } else {\r\n cardEnrollment.card = card;\r\n }\r\n console.log(cardEnrollment);\r\n try {\r\n // Card Enrollment\r\n console.log(\"----------------------\");\r\n let response = await window.DGNCheckout.enrollCard(cardEnrollment);\r\n console.log(response);\r\n\r\n store.dispatch(cardList(response.maskedCard));\r\n\r\n logImage(SRCWrapper.srcTransactionID, \"enrollCard\", dataURL); // Sending screen shot image \r\n this.checkout(response);\r\n\r\n } catch (error) {\r\n console.log(error.description);\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: (error.description != null) ? error.description : \"Please enter correct details\"\r\n });\r\n\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n };\r\n\r\n selectDcfInvoke = dcfInvokeType => {\r\n let type = dcfInvokeType.target.value;\r\n console.log(type);\r\n\r\n switch (type) {\r\n case \"noWindowRef\":\r\n this.setState({ noWindowRef: true, blankWindowRef: false, contentWindow: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"blank\":\r\n this.setState({ blankWindowRef: true, noWindowRef: false, contentWindow: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"contentWindow\":\r\n this.setState({ contentWindow: true, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false, emptyWindowRef: false });\r\n break;\r\n\r\n case \"emptyWindowRef\":\r\n this.setState({ contentWindow: false, noWindowRef: false, blankWindowRef: false, emptyWindowRef: true, dcfInvokeStatus: false });\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n\r\n directCheckout = async () => {\r\n store.dispatch(loaderState(true));\r\n\r\n this.checkout(null);\r\n };\r\n\r\n\r\n checkout = async (enrollCardResponse) => {\r\n var checkout = await DataParamsController.getParamsForTheAPICall(\"checkout\");\r\n console.log(checkout);\r\n\r\n const { location: { state: { response: { dcfActionCode } } } } =\r\n this.props.location && this.props.location.state &&\r\n this.props.location.state.response ?\r\n this.props :\r\n { location: { state: { response: { dcfActionCode: null } } } };\r\n\r\n let dcfWindow;\r\n\r\n if (enrollCardResponse != null) {\r\n checkout.srcCorrelationId = enrollCardResponse.srcCorrelationId;\r\n checkout.srcDigitalCardId = enrollCardResponse.maskedCard.srcDigitalCardId;\r\n\r\n } else { // Direct checkout\r\n var cardNumber = $(\"#cardNumberInput\").text();\r\n var cardExpTxt = $(\"#cardExpiryInput\").text();\r\n var splitedString = cardExpTxt.split(\"/\");\r\n var exMonth = splitedString[0];\r\n var exYear = splitedString[1];\r\n var cardCvvTxt = $(\"#cardSCodeInput\").text();\r\n\r\n var card = {};\r\n\r\n card.primaryAccountNumber = cardNumber.replace(/\\s/g, '');\r\n card.panExpirationMonth = exMonth;\r\n card.panExpirationYear = exYear;\r\n card.cardSecurityCode = cardCvvTxt;\r\n\r\n let encryptedCard = await CardEncryption.encrptCardDetails(card);\r\n\r\n if (encryptedCard != null && encryptedCard != \"\") {\r\n checkout.encryptedCard = encryptedCard;\r\n }\r\n\r\n console.log(\"direct checkout params \")\r\n console.log(checkout);\r\n }\r\n\r\n checkout.srciActionCode = \"NEW_USER\";\r\n checkout.srciTransactionId = SRCWrapper.srcTransactionID;\r\n\r\n let value = {};\r\n if (this.state.contentWindow === true) {\r\n let dcfIframe = document.createElement('iframe');\r\n dcfIframe.setAttribute('id', 'dcfIframe');\r\n dcfIframe.setAttribute('name', 'DCFIframe');\r\n dcfIframe.setAttribute('src', '');\r\n dcfIframe.style.zIndex = '2';\r\n dcfIframe.style.position = \"absolute\";\r\n dcfIframe.style.display = 'block';\r\n dcfIframe.style.width = '30%';\r\n dcfIframe.style.height = '92vh';\r\n dcfIframe.style.margin = '2% 35%';\r\n document.body.after(dcfIframe, document.body);\r\n checkout.windowRef = document.getElementById('dcfIframe').contentWindow;\r\n }\r\n\r\n if (this.state.blankWindowRef === true) {\r\n dcfWindow = window.open('about:blank');\r\n checkout.windowRef = dcfWindow;\r\n }\r\n\r\n\r\n console.log(checkout);\r\n\r\n try {\r\n // loging test case info\r\n await SRCWrapper.logTestcaseInfo(value, checkout.srcCorrelationId, null);\r\n\r\n let response = await window.DGNCheckout.checkout(checkout);\r\n console.log(response);\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n if (frame != null) {\r\n frame.parentNode.removeChild(frame);\r\n }\r\n }\r\n\r\n if (response.dcfActionCode && response.dcfActionCode == \"COMPLETE\") {\r\n store.dispatch(loaderState(false));\r\n\r\n this.setState({\r\n errorResponse: true,\r\n transactionStatus: true,\r\n dcfActionCode: response.dcfActionCode\r\n });\r\n\r\n } else {\r\n store.dispatch(loaderState(false));\r\n this.setState({ errorResponse: false, errorStatus: true, errorMessage: response.error.errorDescription });\r\n }\r\n\r\n\r\n\r\n } catch (error) {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.description\r\n });\r\n\r\n if (this.state.blankWindowRef) {\r\n dcfWindow.close();\r\n }\r\n\r\n if (this.state.contentWindow) {\r\n var frame = document.getElementById(\"dcfIframe\");\r\n frame.parentNode.removeChild(frame);\r\n }\r\n\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n };\r\n\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n testCaseName = SRCWrapper.testCaseInfo;\r\n if (testCaseName == \"\" || testCaseName == \"SRC_07_31\") {\r\n console.log(\"-----\");\r\n this.setState({ contentWindow: false, noWindowRef: false, blankWindowRef: false, dcfInvokeStatus: false, emptyWindowRef: true });\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n {(this.state.errorResponse) ? : null}\r\n\r\n \r\n \r\n\r\n

We secure your information

\r\n

Together We Work

\r\n\r\n
\r\n

New User

\r\n

Returning User

\r\n
\r\n
\r\n
\r\n
\r\n

Enter your card details

\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n\r\n {this.state.validationErrorCardNo ? (\r\n Enter valid card number.\r\n ) : null}\r\n
\r\n\r\n
\r\n
\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n\r\n {this.state.validationErrorExpiryDate ? (\r\n Enter valid expiry month and year(MM/YYYY)\r\n ) : null}\r\n
\r\n\r\n
\r\n\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n {this.state.validationErrorCvvNo ? (\r\n Enter valid security no\r\n ) : null}\r\n\r\n
\r\n {this.state.errorStatus ? (\r\n {this.state.errorMessage}\r\n ) : null}\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {(testCaseName == \"SRC_07_28\" || testCaseName == \"SRC_07_31\") ?\r\n \r\n \r\n : null\r\n }\r\n\r\n \r\n {this.state.dcfInvokeStatus ? (\r\n \r\n {this.state.dcfInvokeMsg}\r\n \r\n ) : null}\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n\r\n );\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport { Route, Switch } from \"react-router-dom\";\r\nimport BasicLayout from \"./layouts/BasicLayout\";\r\nimport { DashboardPage } from \"./pages/dashboard/Dashboard.Page\";\r\nimport { PaymentProfilePage } from \"./pages/payment-profile/PaymentProfile.Page\";\r\nimport { PaymentCardDetailsPage } from \"./pages/payment-card-details/PaymentCardDetails.Page\";\r\nimport { PaymentOTPPage } from \"./pages/payment-otp/PaymentOTP.Page\";\r\nimport { GuardProvider, GuardedRoute } from \"react-router-guards\";\r\n\r\n/*---------------------------------- SCENARIO-7 ---------------------*/\r\nimport { PaymentThankyouPage } from \"./pages/scenario_7/PaymentThankyou.Page\";\r\nimport { PaymentConfirmationPage } from \"./pages/scenario_7/PaymentConfirmation.Page\";\r\nimport { PaymentCardPage } from \"./pages/scenario_7/PaymentCard.Page\";\r\nimport { CheckoutPage } from \"./pages/scenario_7/Checkout.Page\";\r\n\r\n/*---------------------------------- SCENARIO-4 ---------------------*/\r\nimport { ConsumerIdentity } from \"./pages/scenario_4/ConsumerIdentity.Page\";\r\nimport { ScenarioFourCheckoutPage } from \"./pages/scenario_4/ScenarioFourCheckoutPage\";\r\nimport { CompleteIdentity } from \"./pages/scenario_4/CompleteIdentity.Page\";\r\nimport { ProfilePage } from \"./pages/scenario_4/ProfilePage\";\r\nimport { ScenarioFourPaymentThankyou } from \"./pages/scenario_4/ScenarioFourPaymentThankyou\";\r\n\r\n/*---------------------------------- SCENARIO-3 ---------------------*/\r\nimport { ST_ProfilePage } from \"./pages/scenario_3/ST_ProfilePage\";\r\nimport { ST_CheckoutPage } from \"./pages/scenario_3/ST_CheckoutPage\";\r\nimport { ST_Thankyou } from \"./pages/scenario_3/ST_Thankyou\";\r\n\r\n/* --------------------- Independent Reference App ---------------------*/\r\nimport { IRA_Checkout } from \"./pages/independent_reference_app/IRA_Checkout\";\r\nimport { IRA_PaymentCard } from \"./pages/independent_reference_app/IRA_PaymentCard\";\r\nimport { IRA_CompleteIdentity } from \"./pages/independent_reference_app/IRA_CompleteIdentity\";\r\nimport { IRA_ThankYou } from \"./pages/independent_reference_app/IRA_ThankYou\";\r\nimport { IRA_Profile } from \"./pages/independent_reference_app/IRA_Profile\";\r\nimport { IRA_Login } from \"./pages/independent_reference_app/IRA_Login\";\r\nimport { IRA_NewPassword } from \"./pages/independent_reference_app/IRA_NewPassword\";\r\nimport { IRA_AddCardPage } from \"./pages/independent_reference_app/IRA_AddCardPage\";\r\nimport { IRA_ForgotPassword } from \"./pages/independent_reference_app/IRA_ForgotPassword\";\r\n\r\n/*---------------------------------- SCENARIO-5 ---------------------*/\r\nimport { SF_PaymentCardPage } from \"./pages/scenario_5/SF_PaymentCardPage\";\r\nimport { SF_CheckoutPage } from \"./pages/scenario_5/SF_CheckoutPage\";\r\nimport { SF_ProfilePage } from \"./pages/scenario_5/SF_ProfilePage\";\r\nimport { SF_Thankyou } from \"./pages/scenario_5/SF_Thankyou\";\r\nimport { checkout } from \"./utility/dataConstansts\";\r\n\r\nimport { ScenarioCheckoutPage } from \"./pages/Scenarios/Checkout.Page\";\r\nimport { ScenarioProfilesPage } from \"./pages/Scenarios/ProfilePage\";\r\nimport { ScenarioPaymentCardPage } from \"./pages/Scenarios/PaymentCard.Page\";\r\nimport { ScenarioPaymentThankyouPage } from \"./pages/Scenarios/PaymentThankyou.Page\";\r\nimport { ScenarioInitiateIdentity } from \"./pages/Scenarios/ConsumerIdentity.Page\";\r\nimport { SecnarioCompleteIdentity } from \"./pages/Scenarios/CompleteIdentity.Page\";\r\n\r\nexport default class Routes extends Component {\r\n render() {\r\n return (\r\n \r\n }\r\n />\r\n }\r\n />\r\n /*---------------------------------- SCENARIO-7 ---------------------*/\r\n }\r\n />\r\n }\r\n />\r\n (\r\n \r\n )}\r\n />\r\n (\r\n \r\n )}\r\n />\r\n }\r\n />\r\n }\r\n />\r\n (\r\n \r\n )}\r\n />\r\n /*---------------------------------- SCENARIO-4 ---------------------*/\r\n (\r\n \r\n )}\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n (\r\n \r\n )}\r\n />\r\n /*---------------------------------- SCENARIO-3 ---------------------*/\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n /*---------------------------------- SCENARIO-5 ---------------------*/\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n /* --------------------- Independent Reference App\r\n ---------------------*/\r\n (\r\n \r\n )}\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n (\r\n \r\n )}\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n (\r\n \r\n )}\r\n />\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState } from \"../../redux/actions/Action\";\r\nimport { identityLookup, identityInitiate } from \"../../utility/dataConstansts\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport $ from 'jquery';\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport \"../../scss/_inputBox.css\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\n\r\nexport class ScenarioInitiateIdentity extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n identityValue: \"testfeb8@gmail.com\",\r\n errorStatus: false,\r\n errorMessage: null,\r\n errorDescription: null,\r\n completeValidation: false\r\n };\r\n this.identityLookup = this.identityLookup.bind(this);\r\n this.getIdentityValue = this.getIdentityValue.bind(this);\r\n }\r\n\r\n getIdentityValue = e => {\r\n this.setState({\r\n identityValue: e.target.value\r\n });\r\n };\r\n\r\n identityLookup = async () => {\r\n\r\n var emailInput = $(\"#emailAddressInput\").text();\r\n emailInput = emailInput.trim();\r\n\r\n this.setState({\r\n identityValue: emailInput\r\n });\r\n console.log(\" state \" + this.state.identityValue);\r\n\r\n try {\r\n var dataURL;\r\n html2canvas(document.querySelector('#initiateIdentityLookup'), {\r\n width: 1000,\r\n height: 600\r\n })\r\n .then(function (canvas) {\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n\r\n\r\n if (this.state.identityValue === null) {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"Please enter valid value\"\r\n });\r\n } else {\r\n\r\n var identityLookupParams = await DataParamsController.getParamsForTheAPICall(\"identityLookup\");\r\n\r\n identityLookupParams.consumerIdentity.identityValue = emailInput;\r\n console.log(\"identity value \" + identityLookupParams.consumerIdentity.identityValue);\r\n\r\n store.dispatch(loaderState(true));\r\n\r\n let identityLookupResponse = await window.DGNCheckout.identityLookup(\r\n identityLookupParams\r\n );\r\n\r\n if (identityLookupResponse.consumerPresent === true) {\r\n var identityInitiateParams = await DataParamsController.getParamsForTheAPICall(\"initiateIdentityValidation\");\r\n\r\n\r\n let response = await window.DGNCheckout.initiateIdentityValidation();\r\n\r\n logImage(SRCWrapper.srcTransactionID, \"identityLookup\", dataURL);\r\n\r\n if (response.error) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error[0].reasonCode,\r\n errorDescription: response.error[0].description\r\n });\r\n } else {\r\n console.log(\"successs\");\r\n\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n completeValidation: true,\r\n validationMsg: response.validationMessage\r\n });\r\n }\r\n } else {\r\n console.log(identityLookupResponse);\r\n store.dispatch(loaderState(false));\r\n\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: \"Your ID is not registered with us.\",\r\n errorDescription: \"Your ID is not registered with us.\"\r\n });\r\n\r\n if (identityLookupResponse.error[0].description != null) {\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: identityLookupResponse.error[0].reasonCode,\r\n errorDescription: identityLookupResponse.error[0].description\r\n });\r\n\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorDescription: error.description\r\n });\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n store.dispatch(loaderState(false));\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {this.state.completeValidation === true ?\r\n : null}\r\n\r\n\r\n \r\n
\r\n

New User

\r\n

Returning User

\r\n
\r\n\r\n
\r\n

Enter the email for consumer identity.

\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n \r\n {\r\n this.state.errorStatus ? ( {\r\n this.state.errorMessage\r\n } <\r\n br /> {\r\n this.state.errorDescription\r\n } \r\n ) : null\r\n }\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ScenarioInitiateIdentity;","import React, { Component } from \"react\";\r\nimport { Container } from 'react-bootstrap';\r\nimport { FooterNavBarComponent } from '../../components/FooterNavBar';\r\nimport { PaymentNavBarComponent } from '../../components/PaymentNavBar';\r\nimport $ from 'jquery';\r\nimport { store } from \"../../redux/store\";\r\nimport { loaderState, idTokens } from \"../../redux/actions/Action\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport html2canvas from \"html2canvas\";\r\nimport { logImage } from \"../../utility/utility.js\";\r\nimport SRCWrapper from \"../../utility/SRCWrapper\";\r\nimport \"../../scss/_inputBox.css\";\r\nimport DataParamsController from \"../../Controllers/DataParamsController\";\r\n\r\n\r\nexport class SecnarioCompleteIdentity extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n validationData: \"\",\r\n errorStatus: false,\r\n errorMessage: null,\r\n errorDescription: null,\r\n completeValidation: false,\r\n getProfiles: false,\r\n otpError: false,\r\n response: true\r\n };\r\n this.identityCompleteValidation = this.identityCompleteValidation.bind(\r\n this\r\n );\r\n this.getValidationData = this.getValidationData.bind(this);\r\n }\r\n getValidationData = e => {\r\n this.setState({\r\n validationData: e.target.value\r\n });\r\n };\r\n identityCompleteValidation = async () => {\r\n this.setState({\r\n validationData: $(\"#otpInput\").text()\r\n });\r\n \r\n store.dispatch(loaderState(true));\r\n\r\n try {\r\n var dataURL;\r\n\r\n html2canvas(document.querySelector('#otpConfirmation'), {\r\n letterRendering: 1, allowTaint: true,\r\n width: 1000,\r\n height: 600\r\n }).then(function (canvas) {\r\n dataURL = canvas.toDataURL();\r\n dataURL = dataURL.replace(/^data:image\\/\\w+;base64,/, \"\");\r\n });\r\n \r\n var completeValidationConst = await DataParamsController.getParamsForTheAPICall(\"completeIdentityValidation\");\r\n\r\n\r\n completeValidationConst.validationData = $(\"#otpInput\").text();\r\n console.log(completeValidationConst.validationData);\r\n let response = await window.DGNCheckout.completeIdentityValidation(\r\n completeValidationConst\r\n );\r\n\r\n if (response.idToken) {\r\n logImage(SRCWrapper.srcTransactionID, \"identityLookupCompleted\", dataURL);\r\n\r\n store.dispatch(loaderState(false));\r\n store.dispatch(idTokens(response.idToken));\r\n\r\n this.setState({\r\n getProfiles: true\r\n });\r\n } else {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: response.error.reason,\r\n errorDescription: response.error.details[0].message\r\n });\r\n }\r\n } catch (error) {\r\n store.dispatch(loaderState(false));\r\n this.setState({\r\n errorStatus: true,\r\n errorMessage: error.reason,\r\n errorDescription: error.description\r\n });\r\n\r\n }\r\n \r\n };\r\n validateFunction() {\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {this.state.getProfiles ? : null}\r\n\r\n\r\n \r\n \r\n
\r\n

Enter the code sent to selected mode

\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n {/* div input for screen-shot caputring with added data */}\r\n
\r\n
\r\n\r\n {this.state.errorStatus ? (\r\n {this.state.errorDescription}\r\n ) : null}\r\n\r\n {this.state.otpError ? (\r\n Enter OTP number.\r\n ) : null}\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default SecnarioCompleteIdentity;","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport React, { Component } from \"react\";\r\nimport { Spinner } from \"reactstrap\";\r\nimport \"./Loader.css\";\r\n\r\nclass Loader extends Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\tLoading...\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\n\r\nexport default Loader;\r\n","import React, { Component } from \"react\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport Routes from \"./Routes\";\r\nimport \"./App.css\";\r\nimport Loader from \"./components/loading-spinner/Loader\";\r\n\r\nclass App extends Component {\r\n\trender() {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t{this.props.loader ? : null}\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n}\r\nconst mapStateToProps = state => {\r\n\treturn {\r\n\t\tloader: state.reducer.loaderState\r\n\t};\r\n};\r\n\r\nexport default connect(mapStateToProps)(App);\r\n","import React from 'react';\r\nimport \"bootstrap/dist/css/bootstrap.css\";\r\nimport { render } from \"react-dom\";\r\nimport { Provider } from \"react-redux\";\r\nimport App from \"./App\";\r\nimport \"./index.css\";\r\nimport \"./scss/_media.css\";\r\nimport \"./scss/_fonts.css\";\r\nimport \"./scss/_custom.css\";\r\nimport { store } from \"./redux/store\"\r\n\r\nrender(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport * as React from 'react';\r\nimport { Navbar } from 'react-bootstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faSearch, faShoppingCart } from '@fortawesome/free-solid-svg-icons';\r\nimport SignInController from \"../Controllers/SignInController\";\r\n\r\n\r\nexport class ThankyouNavBarComponent extends React.Component {\r\n\r\n componentDidMount() {\r\n var scenarioPath = window.location.search.replace('?', '');\r\n\r\n if (scenarioPath == \"\") {\r\n scenarioPath = window.location.pathname.replace(\" \", \"\").trim().split(\"/\")[1];\r\n }\r\n\r\n if (scenarioPath != \"\" && scenarioPath.toLowerCase() != \"referenceapp\") {\r\n var cancelELement = (document.getElementById('cancelURL') as HTMLFormElement);\r\n\r\n if (cancelELement != null) {\r\n cancelELement.style.display = \"none\";\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n );\r\n }\r\n}\r\n","// Copyright (c) PayHuddle Solutions Pvt. Ltd. All rights reserved.\r\n// Author : Sivaguru A\r\n\r\nimport { loggerHost } from \"../logger/loggerConstants\";\r\nimport IRAController from \"./IRAController\";\r\n\r\nlet srcDpaId = \"\", srcClienId = \"\", srcCorrelationId = \"\";\r\n\r\nclass ServerToServerAPIController {\r\n set transactionAmount(amount) {\r\n this._transactionAmount = amount;\r\n }\r\n\r\n get transactionAmount() {\r\n return this._transactionAmount;\r\n }\r\n\r\n\r\n executeApiCalls = async (dataParams, url, headers, methodType) => {\r\n let options = {\r\n method: methodType,\r\n headers: headers,\r\n };\r\n\r\n if (methodType == \"POST\") {\r\n options.body = dataParams;\r\n }\r\n\r\n return fetch(url, options).then(response => {\r\n if (response.ok) {\r\n return response.status == \"200\" ? response.json() : \"\"; //HTTP status code\r\n } else if (response != null && response != \"\") {\r\n return response.json();\r\n } else {\r\n return \"\";\r\n }\r\n }).catch(error => {\r\n console.log(error);\r\n return \"\";\r\n });\r\n };\r\n\r\n generateOauthToken = async (environmentName) => {\r\n let apiHeaders = { \"Content-Type\": \"application/json\" };\r\n\r\n let accessToken = await this.executeApiCalls(JSON.stringify(environmentName.replace(\"-\", \" \")),\r\n loggerHost.fetchOauthURI, apiHeaders, \"POST\");\r\n\r\n return accessToken;\r\n }\r\n\r\n transactionCredentialsAPI = async (checkoutRequest, checkoutResponse, env) => {\r\n var accessToken = await this.generateOauthToken(env);\r\n var environment = await IRAController.getEnvironmentFromStore(env);\r\n\r\n let serverToServerAPI = environment.ServerToServerAPICredentials != null ?\r\n environment.ServerToServerAPICredentials : null;\r\n \r\n let decodedPayload = \"\";\r\n\r\n // Getting dpaid and client ids from cookies \r\n var existingCookie = await IRAController.getCookie(\"configEnvs\");\r\n\r\n if (existingCookie != \"\") {\r\n var envName = env.replace(\" \", \"-\");\r\n var cookieIndex = existingCookie.findIndex(x => x.envName == envName);\r\n\r\n // FindIndex returns -1, if index not found\r\n if (cookieIndex != -1 && existingCookie.length >= cookieIndex) {\r\n srcDpaId = existingCookie[cookieIndex].dpaId != null ? existingCookie[cookieIndex].dpaId : \"\";\r\n srcClienId = existingCookie[cookieIndex].clientId != null ? existingCookie[cookieIndex].clientId : \"\";\r\n }\r\n }\r\n\r\n if (accessToken != \"\" && serverToServerAPI != null && srcDpaId != \"\" && srcClienId != \"\") {\r\n let x_api_key = serverToServerAPI.XapiKey;\r\n\r\n let apiHeaders = {\r\n 'Cache-Control': 'no-store', 'Accept': 'application/json',\r\n 'X-API-KEY': x_api_key, 'Authorization': \"Bearer \" + accessToken\r\n };\r\n\r\n\r\n srcCorrelationId = checkoutRequest.srcCorrelationId;\r\n let srciTransactionId = checkoutRequest.srciTransactionId;\r\n let payloadTypeIndicator = \"FULL\";\r\n\r\n var queryParams = \"srcClientId=\"\r\n + srcClienId + \"&payloadTypeIndicator=\" + payloadTypeIndicator + \"&srcDpaId=\"\r\n + srcDpaId + \"&srcCorrelationId=\" + srcCorrelationId + \"&srciTransactionId=\"\r\n + srciTransactionId;\r\n\r\n let url = serverToServerAPI.ApiHostURL + \"/transaction/credentials?\" + queryParams;\r\n\r\n // /transaction/credentials api\r\n let data = await this.executeApiCalls(queryParams, url, apiHeaders, \"GET\");\r\n\r\n await IRAController.storeCurrentTransactionLogs(queryParams, data,\r\n \"/transaction/credentials\", \"Server to Server API\");\r\n\r\n // decrypting payload api\r\n if (data != null && data != \"\" && data.payloadResponse != null) {\r\n let payloadCipherText = await this.executeApiCalls(JSON.stringify(data.payloadResponse),\r\n loggerHost.DecryptPayloadURI, { \"Content-Type\": \"application/json\" }, \"POST\");\r\n\r\n decodedPayload = IRAController.apiResponseDecryption(payloadCipherText);\r\n\r\n console.log(payloadCipherText);\r\n }\r\n\r\n if (decodedPayload != \"\") {\r\n decodedPayload.replace(\"\\ \", \" \");\r\n }\r\n\r\n await IRAController.storeCurrentTransactionLogs(data, decodedPayload,\r\n \"Decoded Payload\", \"SRCI\");\r\n\r\n // /confirmation api\r\n await this.confirmationAPI(accessToken, checkoutResponse, serverToServerAPI);\r\n\r\n }\r\n return decodedPayload;\r\n }\r\n\r\n confirmationAPI = async (accessToken, checkoutResponse, serverToServerAPI) => {\r\n let x_api_key = serverToServerAPI.XapiKey;\r\n let apiHeaders = {\r\n 'Cache-Control': 'no-store',\r\n 'Accept': 'application/json',\r\n 'X-API-KEY': x_api_key, 'Authorization': \"Bearer \" + accessToken,\r\n 'Content-Type': 'application/json'\r\n };\r\n\r\n let confirmationStatus = \"03\"; // Others\r\n let confirmationReason = \"Other reason\";\r\n let checkoutEventType = \"04\";\r\n let checkoutEventStatus = \"03\";\r\n\r\n if (checkoutResponse != null && checkoutResponse.dcfActionCode != null) {\r\n if (checkoutResponse.dcfActionCode == \"COMPLETE\") {\r\n confirmationStatus = \"01\";\r\n confirmationReason = \"Order Completed\";\r\n checkoutEventType = \"01\";\r\n checkoutEventStatus = \"01\";\r\n } else if (checkoutResponse.dcfActionCode == \"ERROR\") {\r\n confirmationStatus = \"02\";\r\n confirmationReason = \"Order not completed\";\r\n checkoutEventType = \"07\";\r\n checkoutEventStatus = \"05\";\r\n }\r\n }\r\n\r\n let transactionAmount = (this.transactionAmount != null) ? this.transactionAmount :\r\n { \"transactionAmount\": 35.25, \"transactionCurrencyCode\": \"840\" };\r\n\r\n let confirmationDataParam = {\r\n 'checkoutEventType': checkoutEventType,\r\n 'checkoutEventStatus': checkoutEventStatus,\r\n 'confirmationStatus': confirmationStatus,\r\n 'confirmationReason': confirmationReason,\r\n 'confirmationTimestamp': this.getUTCEpochCurrentTime(),\r\n 'transactionAmount': transactionAmount\r\n };\r\n\r\n let confirmationAPIParams = {\r\n 'srcClientId': srcClienId,\r\n 'srcDpaId': srcDpaId,\r\n 'srcCorrelationId': srcCorrelationId,\r\n 'confirmationData': confirmationDataParam\r\n };\r\n\r\n let url = serverToServerAPI.ApiHostURL + \"/confirmations\";\r\n var response = await this.executeApiCalls(JSON.stringify(confirmationAPIParams), url, apiHeaders, \"POST\");\r\n\r\n await IRAController.storeCurrentTransactionLogs(confirmationAPIParams, response,\r\n \"/confirmations\", \"Server to Server API\");\r\n\r\n return response;\r\n }\r\n\r\n getUTCEpochCurrentTime() {\r\n const now = new Date();\r\n const utcMilllisecondsSinceEpoch = now.getTime() + (now.getTimezoneOffset() * 60000);\r\n const utcSecondsSinceEpoch = Math.round(utcMilllisecondsSinceEpoch / 1000);\r\n\r\n return utcSecondsSinceEpoch.toString();\r\n }\r\n}\r\n\r\nexport default new ServerToServerAPIController();"],"sourceRoot":""}