{"version":3,"sources":["components/header.js","components/nav.js","components/footer.js","components/Layout.js","readConfig.js","components/Home.js","components/debug.js","redux/actions.js","components/searchForm.js","components/fetchData.js","components/sharedFunctions.js","components/LoadingCheck.js","components/imagePopup.js","components/checksList.js","components/loading.js","pages/checks.js","components/depositsList.js","pages/deposits.js","components/filesList.js","components/downloadSearchForm.js","pages/downloads.js","pages/loginError.js","config.js","pages/provisionUser.js","pages/login.js","pages/logout.js","pages/unauthenticated.js","App.js","redux/store.js","index.js"],"names":["Header","id","className","this","props","user","FirstName","LastName","icon","faUser","Checks","Deposits","Download","version","Component","Nav","location","useLocation","pathname","includes","to","Footer","withRouter","Layout","children","displayName","name","envSettings","window","react_app_appversion","REACT_APP_APPVERSION","react_app_apiurl","REACT_APP_APIURL","react_app_client_id","REACT_APP_CLIENT_ID","react_app_okta_domain","REACT_APP_OKTA_DOMAIN","react_app_issuer","REACT_APP_ISSUER","react_app_logout_uri","REACT_APP_LOGOUT_URI","react_app_useokta","REACT_APP_USEOKTA","Home","configuration","Debug","message","console","log","updateUser","dispatch","Promise","resolve","reject","type","selectStyles","option","provided","state","color","isSelected","backgroundColor","input","styles","height","outline","borderColor","borderWidth","boxShadow","control","border","defaultState","accountNumberLabel","formValues","AccountNumber","Amount","AmountComparison","BeginningPaidDate","EndingPaidDate","BankSequenceNumber","CheckNumberLow","CheckNumberHigh","Searchform","getDefaultState","JSON","parse","stringify","promiseOptions","inputValue","setTimeout","populateAccounts","handleChange","e","currentState","target","value","setState","handleSelectChange","propName","label","handleDateChange","performSearch","searchValues","Object","assign","search","clearAll","clearTransactions","isValidBankSequence","length","IsRegions","accounts","filter","i","toLowerCase","amountComparisonOptions","loadOptions","placeholder","onChange","options","isSearchable","TextField","InputLabelProps","shrink","style","error","helperText","isDeposits","Button","onClick","faUndoAlt","disabled","faSearch","mapDispatchToProps","compose","connect","getToken","sessionStorage","getItem","fetchData","url","method","body","successMsg","errorMsg","successCallback","errorCallback","oktaToken","headers","userToken","token","Authorization","process","REACT_APP_SSO_ID","SSO_ID","payload","fetch","credentials","then","response","contentType","get","isJSON","indexOf","isJSONResponse","checkResponseForJSON","ok","json","data","toast","success","position","POSITION","TOP_CENTER","autoClose","catch","text","fontSize","fontWeight","faExclamationTriangle","marginLeft","Error","Details","stack","opacity","borderTop","paddingTop","marginTop","numberWithCommas","x","toString","split","join","replace","LoadingCheck","faSpinner","spin","moment","require","ImagePopup","forceDownload","isFrontShown","frontImg","backImg","fileName","frontFileName","backFileName","navigator","msSaveOrOpenBlob","byteCharacters","atob","byteArrays","offset","slice","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","push","blob","Blob","xhr","XMLHttpRequest","open","responseType","onload","imageUrl","URL","webkitURL","createObjectURL","tag","document","createElement","href","download","appendChild","click","removeChild","send","imagetoPrint","source","accountNumber","postingDateAlt","amount","serialNumber","bankSequence","imageRotate","printImage","Pagelink","pwa","write","close","rotateImage","element","getElementById","cssText","clearRotate","isFrontLoaded","isBackLoaded","detailIndex","transaction","DepositItems","postingDate","IPDate","format","parseFloat","IPAmount","toFixed","SerialNumber","CPCS","t","image","Front","Back","hide","src","alt","title","faTimesCircle","faSave","faPrint","ChecksList","getSortIcon","col","orderBy","sortAsc","faSortAmountDownAlt","faSortAmountDown","showImage","index","popup","transactions","hideImage","colSpan","sort","map","key","Loading","colClicked","order","dir","checks","sortChecks","searchItems","searching","a","b","PaidAccounts","DepositsList","toggleShowDepositDetails","values","showDepositDetails","loading","items","updateTransaction","d","dIndex","Description","deposits","sortdeposits","Items","currentDeposits","DepositAccounts","FilesList","downloadFile","bulkfile","dlFileName","FileName","substring","lastIndexOf","downloading","downloadFileName","request","Filename","YearMonth","yearMonth","res","downloadBlobUrl","revokeObjectURL","display","zipFiles","z","FileSize","ItemCount","MonthlyOptions","selectedText","MonthYear","DownloadSearchform","populateMonths","formdata","clearFiles","selectChanged","Downloads","sortzipFiles","monthYear","zipfiles","LoginError","CLIENT_ID","ISSUER","REDIRECT_URI","origin","LOGOUT_URI","USE_OKTA","REACT_APP_CLIENT_SECRET","USE_INTERACTION_CODE","oidc","clientId","issuer","redirectUri","scopes","pkce","disableHttpsCheck","OKTA_TESTING_DISABLEHTTPSCHECK","useInteractionCode","responseMode","postLogoutRedirectUri","PermissionsEnum","ProvisionUser","_isMounted","processToken","setItem","jwt","Token","Id","unique_name","isRegions","params","pop","fetchUser","config","undefined","history","oktaAuth","getIdToken","editUser","onePassId","User","UserAccount","forEach","Permissions","getPermissions","PermissionId","Account","saveUser","u","userToSave","uu","requestingUser","UserName","userRequest","RequestingUser","saving","ids","permId","reduce","p","results","bind","URLSearchParams","permissionOptions","IsAdmin","marginRight","faCheckSquare","faSquare","width","isMulti","noOptionsMessage","closeMenuOnSelect","withOktaAuth","Login","deleteCookie","cookie","getCookie","cookieArr","cookiePair","trim","decodeURIComponent","userIsLoaded","fetchAccounts","accountsAreLoaded","toRelativeUrl","isError","Logout","tokenManager","clear","opener","textAlign","wordSpacing","Unauthenticated","nonRedirectUrls","App","OktaAuth","onAuthResume","restoreOriginalUri","originalUri","getUser","sessionUser","parsedUser","prevProps","prevState","prev","now","path","render","exact","reducers","combineReducers","action","store","createStore","applyMiddleware","thunk","baseUrl","getElementsByTagName","getAttribute","rootElement","ReactDOM","basename"],"mappings":"iRAIaA,EAAM,kHAyBd,OAzBc,8CAEL,IAAD,UACL,OACI,kBAAC,WAAQ,KACL,6BAASC,GAAG,UACR,yBAAKC,UAAU,SACf,yBAAKA,UAAU,WACf,yBAAKA,UAAU,eACX,yBAAKA,UAAU,YAAU,UAAQ,0BAAMA,UAAU,QAAuB,QAAjB,EAAEC,KAAKC,MAAMC,YAAI,aAAf,EAAiBC,UAAS,IAAkB,QAAlB,EAAGH,KAAKC,MAAMC,YAAI,aAAf,EAAiBE,UACnG,yBAAKN,GAAG,mBACJ,yBAAKC,UAAU,SAAQ,kBAAC,IAAe,CAACM,KAAMC,MAAU,uBACxC,QAAf,EAAAN,KAAKC,MAAMC,YAAI,aAAf,EAAiBK,QAAS,yBAAKR,UAAU,cAAY,oBAA0B,MAChE,QAAf,EAAAC,KAAKC,MAAMC,YAAI,aAAf,EAAiBM,UAAW,yBAAKT,UAAU,cAAY,iBAAuB,MAC/D,QAAf,EAAAC,KAAKC,MAAMC,YAAI,aAAf,EAAiBO,UAAW,yBAAKV,UAAU,cAAY,0BAAgC,OAGhG,yBAAKA,UAAU,WAAS,WAAUC,KAAKC,MAAMS,WAGrD,6BAASZ,GAAG,YAAU,uCAKjC,EAzBc,CAASa,aCAfC,EAAM,SAACX,GAChB,IAAIY,EAAWC,cACf,OACI,6BAAShB,GAAG,OACR,4BACI,wBAAIC,UAAWc,EAASE,SAASC,SAAS,sBAAwB,WAAa,IAAI,kBAAC,OAAI,CAACC,GAAG,sBAAoB,uBAChH,wBAAIlB,UAAWc,EAASE,SAASC,SAAS,0BAA4B,WAAa,IAAI,kBAAC,OAAI,CAACC,GAAG,0BAAwB,oBACxH,wBAAIlB,UAAWc,EAASE,SAASC,SAAS,4BAA8B,WAAa,IAAI,kBAAC,OAAI,CAACC,GAAG,4BAA0B,yBAC5H,wBAAIlB,UAAWc,EAASE,SAASC,SAAS,WAAa,WAAa,IAAI,kBAAC,OAAI,CAACC,GAAG,WAAS,cCV7FC,GDiBEC,YAAWP,GCjBJ,SAACX,GACnB,OACI,yBAAKF,UAAU,UAAQ,wHCElBqB,EAAM,kHAchB,OAdgB,8CAIf,OACE,6BACM,kBAAC,EAAYpB,KAAKC,OAClB,kBAAC,EAAUD,KAAKC,OAChB,6BAASH,GAAG,WACTE,KAAKC,MAAMoB,UAEd,kBAAC,EAAM,WAGhB,EAdgB,CAASV,aAAfS,EACJE,YAAcF,EAAOG,KAgBfJ,YAAWC,GAAXD,ICvBTK,EAAcC,OAEJ,GACdC,qBAAsBF,EAAYG,qBAClCC,iBAAkBJ,EAAYK,iBAC9BC,oBAAqBN,EAAYO,oBACjCC,sBAAuBR,EAAYS,sBACnCC,iBAAkBV,EAAYW,iBAC9BC,qBAAsBZ,EAAYa,qBAClCC,kBAAmBd,EAAYe,mBCLpBC,EAAI,kHAWd,OAXc,8CAIX,OACI,kBAAC,EAAM,iBAAMxC,KAAKC,MAAK,CAAES,QAAS+B,EAAcf,uBAC9C,mCAKT,EAXc,CAASf,aAAb6B,EACJlB,YAAckB,EAAKjB,K,qDCCbmB,EANM,SAAAC,GAEbC,QAAQC,IAAIF,I,gBCAb,SAASG,EAAW5C,GACvB,OAAO,SAAA6C,GACH,OAAO,IAAIC,SAAQ,SAACC,EAASC,GACzBH,EAAS,CACLI,KANW,cAOXjD,KAAMA,IAEV+C,QAML,I,SCADG,EAAe,CACjBC,OAAQ,SAACC,EAAUC,GAAK,kCACjBD,GAAQ,IACXE,MAAOD,EAAME,WAAa,OAAS,OACnCC,gBAAiBH,EAAME,WAAa,UAAY,OAChD,SAAU,CACND,MAAO,UACPE,gBAAgB,cAGxBC,MAAO,SAACC,GAAM,kCACPA,GAAM,IACTC,OAAQ,kBACRC,QAAS,kBACTC,YAAa,UAGb,SAAU,CACNA,YAAa,2BACbC,YAAa,iBACbC,UAAW,mBAEf,SAAU,CACNF,YAAa,2BACbC,YAAa,iBACbC,UAAW,sBAGnBC,QAAS,SAACN,GAAM,kCACTA,GAAM,IACTC,OAAQ,kBACRC,QAAS,kBACTG,UAAW,OACXF,YAAa,2BACb,SAAU,CACNI,OAAQ,uCACRJ,YAAa,2BACbC,YAAa,iBACbC,UAAW,mBAEf,SAAU,CACNF,YAAa,2BACbC,YAAa,iBACbC,UAAW,uBAMjBG,EAAe,CACjBC,mBAAmB,GACnBC,WAAY,CACZC,cAAe,GAAIC,OAAQ,GAAIC,iBAAkB,EACjDC,kBAAmB,GAAIC,eAAgB,GACvCC,mBAAoB,GAAIC,eAAgB,GAAIC,gBAAiB,KAGpDC,EAAU,kDAEnB,WAAY9E,GAAQ,IAAD,EAEqB,OAFrB,qBACf,cAAMA,IAIV+E,gBAAkB,WACd,OAAOC,KAAKC,MAAMD,KAAKE,UAAUf,KACpC,EAYDgB,eAAiB,SAACC,GAAU,OACxB,IAAIrC,SAAQ,SAAAC,GACRqC,YAAW,WACPrC,EAAQ,EAAKsC,iBAAiBF,MAC/B,SACL,EAGNG,aAAe,SAACC,GACZ,IAAIC,EAAe,EAAKnC,MAAMe,WAC9BoB,EAAaD,EAAEE,OAAOpE,MAAQkE,EAAEE,OAAOC,MACvC,EAAKC,SAAS,CAAEvB,WAAYoB,KAC/B,EAEDI,mBAAqB,SAACC,EAAUH,GAC5B,IAAIF,EAAe,EAAKnC,MAAMe,WAC9BoB,EAAaK,GAAYH,EAAMA,MACd,kBAAbG,GAA8B,EAAKF,SAAS,CAAExB,mBAAoBuB,EAAMI,QAC5E,EAAKH,SAAS,CAAEvB,WAAYoB,IAAgB,kBAAMhD,EAAM,CAAE4B,WAAY,EAAKf,MAAMe,iBACpF,EAED2B,iBAAmB,SAACF,EAAUH,GAC1B,IAAIF,EAAe,EAAKnC,MAAMe,WAC9BoB,EAAaK,GAAYH,EACzB,EAAKC,SAAS,CAAEvB,WAAYoB,KAC/B,EAEDQ,cAAgB,WACZ,IAAIC,EAAeC,OAAOC,OAAO,GAAI,EAAK9C,MAAMe,YAChD,EAAKrE,MAAMqG,OAAOH,IACrB,EAEDI,SAAW,WACP,EAAKV,SAAS,EAAKb,kBAAmB,EAAK/E,MAAMuG,oBACpD,EAEDC,oBAAsB,WAClB,MAAoD,KAA7C,EAAKlD,MAAMe,WAAWM,oBAAiF,KAApD,EAAKrB,MAAMe,WAAWM,mBAAmB8B,QAtDnG,EAAKnD,MAAQ,EAAKyB,kBAAkB,EA0LvC,OAzLA,sDAMgBsB,GACb,OAAItG,KAAKC,MAAMC,KAAKyG,UACT3G,KAAKC,MAAM2G,SAASC,QAAO,SAAAC,GAAC,OAAIA,EAAEd,MAAMe,cAAc/F,SAASsF,EAAOS,kBAGtE/G,KAAKC,MAAM2G,WAGzB,+BA0CS,IAAD,OACDI,EAA0B,CAC1B,CAAEpB,MAAO,EAAGI,MAAO,YACnB,CAAEJ,MAAO,EAAGI,MAAO,gBACnB,CAAEJ,MAAO,EAAGI,MAAO,4BACnB,CAAEJ,MAAO,EAAGI,MAAO,aACnB,CAAEJ,MAAO,EAAGI,MAAO,0BAGvB,OACI,kBAAC,WAAQ,KACT,0BAAMlG,GAAG,cAEL,yBAAKC,UAAU,OACX,yBAAKA,UAAU,SAAO,mBACtB,yBAAKA,UAAU,sBACoB,IAA9BC,KAAKC,MAAMC,KAAKyG,UACb,kBAAC,IAAW,CACRpF,KAAM,gBACNqC,OAAQR,EACR6D,YAAajH,KAAKoF,eACd8B,YAAa,GACbtB,MAAO,CACHI,MAAOhG,KAAKuD,MAAMe,WAAWC,cAAeqB,MAAO5F,KAAKuD,MAAMe,WAAWC,eAEjF4C,SAAU,SAAC1B,GAAC,OAAK,EAAKK,mBAAmB,gBAAiBL,MAE9D,kBAAC,IAAM,CACHlE,KAAM,gBACN6F,QAASpH,KAAKC,MAAM2G,SACpBhD,OAAQR,EACJwC,MAAO,CACHI,MAAOhG,KAAKuD,MAAMc,mBAAoBuB,MAAO5F,KAAKuD,MAAMe,WAAWC,eAE3E2C,YAAa,GACbC,SAAU,SAAC1B,GAAC,OAAK,EAAKK,mBAAmB,gBAAiBL,IAC1D4B,cAAc,MAK9B,yBAAKtH,UAAU,OACP,yBAAKA,UAAU,SAAO,WACtB,yBAAKA,UAAU,WAAU,kBAACuH,EAAA,EAAS,CAAC/F,KAAK,SAAS4B,KAAK,OAAO6C,MAAO,GAAGuB,gBAAiB,CACrFC,QAAQ,GACT5B,MAAO5F,KAAKuD,MAAMe,WAAWE,OAAQ2C,SAAUnH,KAAKwF,iBAE/D,yBAAKzF,UAAU,OACX,yBAAKA,UAAU,SAAO,sBACtB,yBAAKA,UAAU,qBACX,kBAAC,IAAM,CACHwB,KAAM,mBACN6F,QAASJ,EACTpD,OAAQR,EACRwC,MAAOoB,EAAwBhH,KAAKuD,MAAMe,WAAWG,kBACrDyC,YAAa,GACbC,SAAU,SAAC1B,GAAC,OAAK,EAAKK,mBAAmB,mBAAoBL,IAC7D4B,cAAc,MAK1B,yBAAKtH,UAAU,OACX,yBAAKA,UAAU,SAAO,wBACtB,yBAAKA,UAAU,WACX,kBAACuH,EAAA,EAAS,CACNxH,GAAG,oBACHyB,KAAK,oBACLyE,MAAM,GACN7C,KAAK,OACLyC,MAAO5F,KAAKuD,MAAMe,WAAWI,kBAC7ByC,SAAUnH,KAAKwF,aACf+B,gBAAiB,CACbC,QAAQ,OAKxB,yBAAKzH,UAAU,OACX,yBAAKA,UAAU,SAAO,qBACtB,yBAAKA,UAAU,WACX,kBAACuH,EAAA,EAAS,CACNxH,GAAG,iBACHyB,KAAK,iBACLyE,MAAM,GACN7C,KAAK,OACLyC,MAAO5F,KAAKuD,MAAMe,WAAWK,eAC7BwC,SAAUnH,KAAKwF,aACf+B,gBAAiB,CACbC,QAAQ,OAKpB,yBAAKzH,UAAU,MAAM0H,MAAQzH,KAAKyG,sBAAuD,CAAE,aAAgB,QAAjD,CAAE,aAAgB,WAC5E,yBAAK1G,UAAU,SAAO,yBAClB,yBAAKA,UAAU,WAAU,kBAACuH,EAAA,EAAS,CAAC/F,KAAK,qBAAqB4B,KAAK,OAAO6C,MAAM,GAAGuB,gBAAiB,CAChGC,QAAQ,GACT5B,MAAO5F,KAAKuD,MAAMe,WAAWM,mBAAoBuC,SAAUnH,KAAKwF,aAAckC,OAAQ1H,KAAKyG,sBAC1FkB,WAAa3H,KAAKyG,sBAAmD,GAA3B,6BAKlDzG,KAAKC,MAAM2H,WAAa,KACxB,kBAAC,WAAQ,KACL,yBAAK7H,UAAU,OACX,yBAAKA,UAAU,SAAO,qBACd,yBAAKA,UAAU,WAAU,kBAACuH,EAAA,EAAS,CAAC/F,KAAK,iBAAiB4B,KAAK,OAAO6C,MAAM,GAAGuB,gBAAiB,CAC5FC,QAAQ,GACT5B,MAAO5F,KAAKuD,MAAMe,WAAWO,eAAgBsC,SAAUnH,KAAKwF,iBAE3E,yBAAKzF,UAAU,OACX,yBAAKA,UAAU,SAAO,sBACd,yBAAKA,UAAU,WAAU,kBAACuH,EAAA,EAAS,CAAC/F,KAAK,kBAAkB4B,KAAK,OAAO6C,MAAM,GAAGuB,gBAAiB,CAC7FC,QAAQ,GACT5B,MAAO5F,KAAKuD,MAAMe,WAAWQ,gBAAiBqC,SAAUnH,KAAKwF,kBAKpF,yBAAKzF,UAAU,OACX,yBAAKA,UAAW,WACZ,kBAAC8H,EAAA,EAAM,CAAC9H,UAAU,MAAM+H,QAAS9H,KAAKuG,UAAS,IAAE,kBAAC,IAAe,CAAClG,KAAM0H,MAAa,UACrF,kBAACF,EAAA,EAAM,CAAC9H,UAAU,cAAc+H,QAAS9H,KAAKkG,cAAe8B,UAAWhI,KAAKyG,uBAAsB,IAAE,kBAAC,IAAe,CAACpG,KAAM4H,MAAY,kBAK3J,EA9LkB,CAAStH,aAuM1BuH,EAAqB,CACvBpF,cAGWqF,cAAQhH,IAAYiH,aARX,SAAA7E,GAAK,MAAK,CAC9BrD,KAAMqD,EAAMrD,QAO4CgI,GAA7CC,CAAkEpD,G,gBCtMpEsD,EAAW,WAEpB,OADYC,eAAeC,QAAQ,cA2D1BC,EAAY,SAACC,EAAKC,EAAQC,EAAMC,EAAYC,EAAUC,EAAiBC,EAAeC,GAE/F,IAAIC,EAAU,CACV,OAAU,mBACV,eAAgB,oBAGhBC,EAAYb,IACZc,EAAQH,EAERC,EAAQG,cAAa,iBADrBJ,EACkCG,EAEAD,GAIlCG,ubAAYC,mBAAkBL,EAAQM,OAASF,ubAAYC,kBAG/D5G,EAAM,gBAAD,OAAiBgG,EAAM,oBAAYD,IACxC/F,EAAM,CAAE8G,QAASb,IACjBc,MAAMhB,EAAK,CACPC,OAAQA,EACRO,QAASA,EACTN,KAAMA,EACNe,YAAa,YAEhBC,MAAK,SAAAC,IA7J0B,SAACA,GACjC,IAAMC,EAAcD,EAASX,QAAQa,IAAI,gBACrCC,EAAUF,IAA4D,IAA7CA,EAAYG,QAAQ,oBAEjD,OADAtH,EAAM,CAAEuH,eAAgBF,IACjBA,GA0JCG,CAAqBN,IAAaA,EAASO,GAC3CP,EAASQ,OACJT,MAAK,SAAAU,GACF3H,EAAM,4BAAD,OAA6BgG,EAAM,oBAAYD,EAAG,gCACnDG,GAAY0B,IAAMC,QAAQ3B,EAAY,CAAE4B,SAAUF,IAAMG,SAASC,WAAYC,UAAW,MACxF7B,GAAiBA,EAAgBuB,MAEvCO,OAAM,SAAAlD,GACJhF,EAAM,8CAAD,OAA+CgF,IACpD4C,IAAM5C,MAAM,kBAAC,WAAQ,KAAEA,GAAmB,CAAE8C,SAAUF,IAAMG,SAASC,WAAYC,WAAW,IACxF5B,GAAeA,OAEnBa,EAASO,GAajBP,EAASiB,OACJlB,MAAK,SAAAjC,GACFhF,EAAM,CAACgF,UACHqB,GAAeA,IACnBuB,IAAM5C,MAAM,kBAAC,WAAQ,KACjB,yBAAKD,MAAO,CAAEqD,SAAU,OAAQC,WAAY,MAAQ,kBAAC,IAAe,CAAC1K,KAAM2K,MAAyB,IAAC,0BAAMvD,MAAO,CAAEwD,WAAY,SAAWvD,KAClI,CAAE8C,SAAUF,IAAMG,SAASC,WAAYC,WAAW,OAlBvEf,EAASQ,OACJT,MAAK,SAAAjC,GACFhF,EAAM,CAAEwI,MAAY,OAALxD,QAAK,IAALA,OAAK,EAALA,EAAO/E,UACtBD,EAAM,CAAEyI,QAAc,OAALzD,QAAK,IAALA,OAAK,EAALA,EAAO0D,QACpBrC,GAAeA,IACnBuB,IAAM5C,MAAM,kBAAC,WAAQ,KACjB,yBAAKD,MAAO,CAAEqD,SAAU,OAAQC,WAAY,MAAQ,kBAAC,IAAe,CAAC1K,KAAM2K,MAAyB,IAAC,0BAAMvD,MAAO,CAAEwD,WAAY,SAAWvD,EAAM/E,UAChJ+E,EAAM0D,MAAQ,yBAAK3D,MAAO,CAAEqD,SAAU,OAAQO,QAAS,MAAOC,UAAW,iBAAkBC,WAAY,OAAQC,UAAW,SAAW9D,EAAM0D,OAAe,MAClJ,CAAEZ,SAAUF,IAAMG,SAASC,WAAYC,WAAW,WC1LtEc,EAAmB,SAACC,GAE7B,OADaA,EAAEC,WAAYC,MAAM,2BAA2BC,KAAK,KACpDF,WAAWG,QAAQ,KAAK,MCE5BC,EAAe,SAAC9L,GACzB,OACI,yBAAKF,UAAW,gBAAe,IAAE,kBAAC,IAAe,CAACM,KAAM2L,IAAWC,MAAI,MCM3EC,EAASC,EAAQ,KAERC,EAAU,kDAEnB,WAAYnM,GAAQ,IAAD,EAWd,OAXc,qBACf,cAAMA,IA0BVoM,cAAgB,WACZ,IAAI5D,EAAM,EAAKlF,MAAM+I,aAAe,EAAK/I,MAAMgJ,SAAW,EAAKhJ,MAAMiJ,QACjEC,EAAW,EAAKlJ,MAAM+I,aAAe,EAAK/I,MAAMmJ,cAAcZ,QAAQ,YAAa,IAAM,EAAKvI,MAAMoJ,aAAab,QAAQ,YAAa,IAE1I,GADApJ,EAAM+F,GACFhH,OAAOmL,WAAanL,OAAOmL,UAAUC,iBAAzC,CAGI,IAFA,IAAMC,EAAiBC,KAAKtE,EAAIqD,QAAQ,UAAW,KAC7CkB,EAAa,GACVC,EAAS,EAAGA,EAASH,EAAepG,OAAQuG,GAAU,IAAK,CAIhE,IAHA,IAAMC,EAAQJ,EAAeI,MAAMD,EAAQA,EAAS,KAE9CE,EAAc,IAAIC,MAAMF,EAAMxG,QAC3BI,EAAI,EAAGA,EAAIoG,EAAMxG,OAAQI,IAC9BqG,EAAYrG,GAAKoG,EAAMG,WAAWvG,GAGtC,IAAMwG,EAAY,IAAIC,WAAWJ,GACjCH,EAAWQ,KAAKF,GAGpB,IAAMG,EAAO,IAAIC,KAAKV,EAAY,CAAE7J,KAAM,eAC1C1B,OAAOmL,UAAUC,iBAAiBY,EAAMhB,OAhB5C,CAmBA,IAAIkB,EAAM,IAAIC,eACdD,EAAIE,KAAK,MAAOpF,GAAK,GACrBkF,EAAIG,aAAe,OACnBH,EAAII,OAAS,WACT,IACIC,GADavM,OAAOwM,KAAOxM,OAAOyM,WACZC,gBAAgBnO,KAAK4J,UAC3CwE,EAAMC,SAASC,cAAc,KACjCF,EAAIG,KAAOP,EACXI,EAAII,SAAW/B,EACf4B,SAAS1F,KAAK8F,YAAYL,GAC1BA,EAAIM,QACJL,SAAS1F,KAAKgG,YAAYP,IAE9BT,EAAIiB,SACP,EAEDC,aAAe,SAACC,GAEZ,MAAO,m7KAQsH,EAAKvL,MAAMwL,cARjI,uIAU8H,EAAKxL,MAAMyL,eAVzI,iIAYwH,EAAKzL,MAAM0L,OAZnI,wIAc+H,EAAK1L,MAAM2L,aAd1I,wIAgB2H,EAAK3L,MAAM4L,aAhBtI,iCAkBYL,EAAO,GAAK,qEAAuE,EAAKvL,MAAM6L,YAlB1G,iEAmBYN,EAAO,GAAK,iHAClC,EAEDO,WAAa,WACT,IAAIP,EAAS,CAAC,EAAKvL,MAAMgJ,SAAU,EAAKhJ,MAAMiJ,SAE1C8C,EADW,EAAK/L,MAAMmJ,cAEtB6C,EAAM9N,OAAOoM,KAAKyB,EAAU,QAChCC,EAAIlB,SAASR,OACb0B,EAAIlB,SAASmB,MAAM,EAAKX,aAAaC,IACrCS,EAAIlB,SAASoB,SAChB,EAEDC,YAAc,WACV,IAAIC,EAAUtB,SAASuB,eAAe,aACP,IAA3B,EAAKrM,MAAM6L,aACXO,EAAQlI,MAAMoI,QAAU,2BACxB,EAAKhK,SAAS,CAAEuJ,YAAa,OAE7B,EAAKU,eAEZ,EAEDA,YAAc,WACIzB,SAASuB,eAAe,aAC9BnI,MAAMoI,QAAU,yBACxB,EAAKhK,SAAS,CAAEuJ,YAAa,KAChC,EAED3D,iBAAmB,SAACC,GAChB,OAAOA,EAAEC,WAAWG,QAAQ,wBAAyB,MAnHrD,EAAKvI,MAAQ,CACTgJ,SAAU,GAAIC,QAAS,GAAIF,cAAc,EAAMyD,eAAe,EAAOC,cAAc,EACnFtD,cAAc,GAAIC,aAAc,GAAIyC,YAAa,EACjDL,cAAe,EAAK9O,MAAMgQ,YAAc,EAAKhQ,MAAMiQ,YAAYC,aAAa,EAAKlQ,MAAMgQ,aAAa1L,cAAgB,EAAKtE,MAAMiQ,YAAY3L,cAC3I6L,YAAalE,EAAO,EAAKjM,MAAMiQ,YAAYG,QAAQC,OAAO,YAC1DtB,eAAgB9C,EAAO,EAAKjM,MAAMiQ,YAAYG,QAAQC,OAAO,cAC7DrB,OAAQxD,EAAiB,IAAD,QAAkJ,IAA5I8E,WAAW,EAAKtQ,MAAMgQ,YAAc,EAAKhQ,MAAMiQ,YAAYC,aAAa,EAAKlQ,MAAMgQ,aAAazL,OAAS,EAAKvE,MAAMiQ,YAAYM,WAAiBC,QAAQ,KACvLvB,aAAc,EAAKjP,MAAMiQ,YAAYQ,aACrCvB,aAAc,EAAKlP,MAAMgQ,YAAc,EAAKhQ,MAAMiQ,YAAYC,aAAa,EAAKlQ,MAAMgQ,aAAaU,KAAO,EAAK1Q,MAAMiQ,YAAYS,MACpI,EAuJJ,OAtJA,yDAKoB,IAAD,OAEhBnI,EAAU,SAAD,OAAUxI,KAAKuD,MAAMwL,cAAa,YAAI/O,KAAKuD,MAAM4L,aAAY,YAAInP,KAAKuD,MAAM6M,aAAe,MAAO,KAAM,KAAM,GAAM,SAACQ,GAC1H,IAAIC,EAAQ5L,KAAKC,MAAM0L,GACvBlO,EAAM,CAAEmO,UACR,EAAKhL,SAAS,CAAE6G,cAAc,GAAD,OAAK,EAAKnJ,MAAM6M,YAAW,YAAI,EAAK7M,MAAM4L,aAAY,YAAI,EAAK5L,MAAMwL,cAAa,QAAQxC,SAAS,0BAAD,OAA4BsE,EAAMC,OAASf,eAAe,IACzL,EAAKlK,SAAS,CAAE8G,aAAa,GAAD,OAAK,EAAKpJ,MAAM6M,YAAW,YAAI,EAAK7M,MAAM4L,aAAY,YAAI,EAAK5L,MAAMwL,cAAa,QAAQvC,QAAQ,2BAAD,OAA6BqE,EAAME,MAAQf,cAAc,MACvL,QACN,+BA+FS,IAAD,OAIL,OAEI,yBAAKlQ,GAAG,kBACJ,yBAAKC,UAAU,QAAQ+H,QAAS9H,KAAKC,MAAM+Q,OAC3C,yBAAKjR,UAAU,eACP,yBAAKA,UAAU,oBACbC,KAAKuD,MAAMwM,cACV,yBAAKkB,IAAKjR,KAAKuD,MAAMgJ,SAAU2E,IAAI,cAAcpJ,QAAS,kBAAM,EAAKjC,SAAS,CAAEyG,cAAc,EAAMoD,YAAa,GAAK,EAAKI,cAAcqB,MAAM,iCAC9I,kBAAC,EAAY,MAEfnR,KAAKuD,MAAMyM,aACL,yBAAKiB,IAAKjR,KAAKuD,MAAMiJ,QAAS0E,IAAI,aAAapJ,QAAS,kBAAM,EAAKjC,SAAS,CAAEyG,cAAc,EAAOoD,YAAa,GAAK,EAAKI,cAAcqB,MAAM,iCAC9I,kBAAC,EAAY,MAGjB,yBAAKpR,UAAU,qBAAmB,YAAWC,KAAKuD,MAAMwL,eACxD,yBAAKhP,UAAU,qBAAmB,iBAAgBC,KAAKuD,MAAMyL,gBAC7D,yBAAKjP,UAAU,qBAAmB,WAAUC,KAAKuD,MAAM0L,QACtDjP,KAAKuD,MAAM2L,aAAe,yBAAKnP,UAAU,qBAAmB,kBAAiBC,KAAKuD,MAAM2L,cAAsB,KAC/G,yBAAKnP,UAAU,qBAAmB,kBAAiBC,KAAKuD,MAAM4L,eAEtE,yBAAKpP,UAAU,gBACX,yBAAKA,UAAU,kBACX,kBAAC,IAAe,CAACM,KAAM+Q,IAAetJ,QAAS,kBAAM,EAAK7H,MAAM+Q,KAAK,EAAK/Q,MAAMH,KAAKqR,MAAM,kBAE9FnR,KAAKuD,MAAMwM,eAAiB/P,KAAKuD,MAAMyM,aACpC,yBAAKlQ,GAAI,YAAamR,IAAKjR,KAAKuD,MAAM+I,aAAetM,KAAKuD,MAAMgJ,SAAWvM,KAAKuD,MAAMiJ,QAAS0E,IAAI,UACnG,kBAAC,EAAY,MAEb,yBAAKnR,UAAU,kBACX,kBAAC,IAAe,CAACM,KAAMgR,IAAQvJ,QAAS9H,KAAKqM,cAAe8E,MAAM,mBAClE,kBAAC,IAAe,CAAC9Q,KAAMiR,IAASxJ,QAAS9H,KAAKqP,WAAY8B,MAAM,gBAChE,kBAAC,IAAe,CAAC9Q,KAAM0H,IAAWD,QAAS9H,KAAK0P,YAAayB,MAAM,yBAM9F,EApKkB,CAASxQ,aCP5BuL,GDmLW/D,YAAQhH,IAAYiH,aAJX,SAAA7E,GAAK,MAAK,CAC9BrD,KAAMqD,EAAMrD,QAG4C,MAA7CiI,CAAoDiE,GCnLtDD,EAAQ,MAoENoF,EAjEQ,kDAGnB,WAAYtR,GAAQ,IAAD,EAEW,OAFX,qBACf,cAAMA,IAIVuR,YAAc,SAACC,GACX,GAAI,EAAKxR,MAAMyR,UAAYD,EAC3B,OAAO,EAAKxR,MAAM0R,QAAU,kBAAC,IAAe,CAACtR,KAAMuR,MAA0B,kBAAC,IAAe,CAACvR,KAAMwR,OACvG,EAEDC,UAAY,SAACC,GACT,EAAKlM,SAAS,CACVmM,MAAO,kBAAC,EAAU,CAAC9B,YAAa,EAAKjQ,MAAMgS,aAAaF,GAAQf,KAAM,EAAKkB,eAElF,EAEDA,UAAY,SAACpS,GACT,EAAK+F,SAAS,CAAEmM,MAAO,QAfvB,EAAKzO,MAAQ,CAACyO,MAAO,MAAK,EAyD7B,OAxDA,8CAmBS,IAAD,OACL,OACI,kBAAC,WAAQ,KACL,+BACI,+BACI,4BACI,wBAAIG,QAAS,GAAE,eAAc1G,EAAiBzL,KAAKC,MAAMgS,aAAavL,UAE1E,4BACI,sCACA,wBAAIoB,QAAS,kBAAM,EAAK7H,MAAMmS,KAAK,YAAU,aAAYpS,KAAKwR,YAAY,WAC1E,wBAAI1J,QAAS,kBAAM,EAAK7H,MAAMmS,KAAK,UAAQ,mBAAkBpS,KAAKwR,YAAY,QAAO,KACrF,wBAAI1J,QAAS,kBAAM,EAAK7H,MAAMmS,KAAK,kBAAgB,gBAAepS,KAAKwR,YAAY,gBAAe,KAClG,wBAAI1J,QAAS,kBAAM,EAAK7H,MAAMmS,KAAK,cAAY,UAASpS,KAAKwR,YAAY,YAAW,OAG5F,+BAEKxR,KAAKC,MAAMgS,cAAgBjS,KAAKC,MAAMgS,aAAavL,OAAS,EAAI1G,KAAKC,MAAMgS,aAAaI,KAAI,SAACzB,EAAGmB,GAAK,OAClG,wBAAIO,IAAKP,EAAOZ,MAAM,4BAA4BrJ,QAAS,kBAAM,EAAKgK,UAAUC,KAC5E,4BAAKA,EAAQ,GACb,4BAAK7F,EAAO0E,EAAEP,QAAQC,OAAO,eAC7B,4BAAKM,EAAED,MACP,4BAAKC,EAAEF,cACP,4BAAKjF,EAAiB,IAAD,QAA+B,IAAzB8E,WAAWK,EAAEJ,WAAiBC,QAAQ,UAGrE,wBAAI1Q,UAAU,YACV,wBAAIoS,QAAS,GAAE,8BAM9BnS,KAAKuD,MAAMyO,WAGvB,EA9DkB,CAASrR,aCRnB4R,EAAU,SAACtS,GACpB,OACI,yBAAKF,UAAU,oBACX,yBAAKA,UAAU,gBACX,yBAAKkR,IAAI,cAAcC,IAAI,8BAC3B,2BAAIjR,EAAM4K,SCCbtK,EAAM,kDAEf,WAAYN,GAAQ,IAAD,EAEqE,OAFrE,qBACf,cAAMA,IAKVmS,KAAO,SAACI,GACJ,IAAIC,EAAQxN,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAMmO,UAC7CgB,EAAMzN,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAMoO,UAC3CgB,EAAS1N,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAMoP,SAC9CH,IAAe,EAAKjP,MAAMmO,QAC1BgB,GAAOA,GAEPD,EAAQD,EACRE,GAAM,GAGVC,EAAS,EAAKC,WAAWD,EAAQD,EAAKD,GAEtC,EAAK5M,SAAS,CAAE8M,OAAQA,EAAQjB,QAASe,EAAOd,QAASe,KAC5D,EAUDpM,OAAS,SAACuM,GACN,EAAKhN,SAAS,CAACiN,WAAW,IAAO,WACzBpQ,EAAM,CAAEmQ,gBACRrK,EAAU,gBAAiB,OAAQvD,KAAKE,UAAU0N,GAAc,KAAM,GAAM,SAACxI,GACzE,IAAIsI,EAAS,EAAKC,WAAW3N,KAAKC,MAAMmF,GAAO,EAAK9G,MAAMoO,QAAS,EAAKpO,MAAMmO,SAC9E,EAAK7L,SAAS,CAAE8M,OAAQA,EAAQG,WAAW,OAC5C,WACC,EAAKjN,SAAS,CAAE8M,OAAQ,GAAIG,WAAW,WAItD,EAEDtM,kBAAoB,WAChB,EAAKX,SAAS,CAAE8M,OAAQ,GAAIjB,QAAS,WAAYC,SAAS,KA1C1D,EAAKpO,MAAQ,CAAEoP,OAAQ,GAAIjB,QAAU,WAAYC,SAAU,EAAOmB,WAAW,GAAO,EA8DvF,OA7DA,gDAmBUH,EAAQhB,EAASc,GACxB,OAAId,EACOgB,EAAOP,MAAK,SAACW,EAAGC,GAAC,OAAMD,EAAEN,GAASO,EAAEP,GAAU,GAAK,KAEnDE,EAAOP,MAAK,SAACW,EAAGC,GAAC,OAAMD,EAAEN,GAASO,EAAEP,IAAW,EAAI,OAEjE,+BAoBG,OACI,kBAAC,EAAM,iBAAMzS,KAAKC,MAAK,CAAES,QAAS2I,UAC9B,kBAAC,WAAQ,KAEL,oEACA,gJACA,yBAAKvJ,GAAG,gBACJ,kBAAC,EAAU,CAACwG,OAAQtG,KAAKsG,OAAQE,kBAAmBxG,KAAKwG,kBAAmBI,SAAU5G,KAAKC,MAAMC,KAAK+S,eAElGjT,KAAKuD,MAAMuP,UAAY,kBAAC,EAAO,CAACjI,KAAK,iBACjC,kBAAC,EAAU,CAACoH,aAAcjS,KAAKuD,MAAMoP,OAAQP,KAAMpS,KAAKoS,KAAMV,QAAS1R,KAAKuD,MAAMmO,QAASC,QAAS3R,KAAKuD,MAAMoO,iBAM1I,EAlEc,CAAShR,aCCxBuL,GDqEW/K,YAAWZ,GCrEb4L,EAAQ,MA4GN+G,EAzGU,kDAGrB,WAAYjT,GAAQ,IAAD,EAEgD,OAFhD,qBACf,cAAMA,IAIVuR,YAAc,SAACC,GACX,GAAI,EAAKxR,MAAMyR,UAAYD,EAC3B,OAAO,EAAKxR,MAAM0R,QAAU,kBAAC,IAAe,CAACtR,KAAMuR,MAA0B,kBAAC,IAAe,CAACvR,KAAMwR,OACvG,EAEDC,UAAY,SAACC,EAAO9B,GAChB,EAAKpK,SAAS,CACVmM,MAAO,kBAAC,EAAU,CAAC9B,YAAa,EAAKjQ,MAAMgS,aAAaF,GAAQf,KAAM,EAAKkB,UAAWjC,YAAaA,OAE1G,EAEDkD,yBAA2B,SAACpB,GACxB,IAAInB,EAAI3L,KAAKC,MAAMD,KAAKE,UAAU,EAAKlF,MAAMgS,aAAaF,KACtDpJ,EAAO1D,KAAKE,UAAU,CAAEZ,cAAeqM,EAAErM,cAAe8L,OAAQO,EAAEP,OAAQM,KAAMC,EAAED,KAAMH,SAAUI,EAAEJ,WACpG4C,EAASnO,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAM8P,qBAC9CC,EAAUrO,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAM+P,UACnDF,EAAOrB,IAASqB,EAAOrB,GACvBuB,EAAQvB,IAAS,EACjB,EAAKlM,SAAS,CAAEwN,mBAAoBD,EAAQE,QAAQA,IAAW,WAC3D9K,EAAU,iBAAkB,OAAQG,EAAM,KAAM,GAAM,SAAC4K,GACnD7Q,EAAM,CAAC6Q,UACPD,EAAQvB,IAAS,EACjBnB,EAAET,aAAelL,KAAKC,MAAMqO,GAC5B,EAAKtT,MAAMuT,kBAAkBzB,EAAOnB,GACpC,EAAK/K,SAAS,CAAEyN,QAASA,OAE1B,WACKA,EAAQvB,IAAS,EACjBqB,EAAOrB,IAAS,EAChB,EAAKlM,SAAS,CAAEwN,mBAAoBD,EAAQE,QAASA,WAKpE,EAEDpB,UAAY,SAACpS,GACT,EAAK+F,SAAS,CAAEmM,MAAO,QAxCvB,EAAKzO,MAAQ,CAAEyO,MAAO,KAAMqB,mBAAmB,GAAIC,QAAQ,IAAI,EAiGlE,OAhGA,8CA2CS,IAAD,OACL,OACI,kBAAC,WAAQ,KACL,+BACI,+BACI,4BACI,wBAAInB,QAAS,GAAE,eAAc1G,EAAiBzL,KAAKC,MAAMgS,aAAavL,UAE1E,4BACI,sCACA,wBAAIoB,QAAS,kBAAM,EAAK7H,MAAMmS,KAAK,YAAU,gBAAepS,KAAKwR,YAAY,WAC7E,wBAAI1J,QAAS,kBAAM,EAAK7H,MAAMmS,KAAK,UAAQ,mBAAkBpS,KAAKwR,YAAY,QAAO,KACrF,wBAAI1J,QAAS,kBAAM,EAAK7H,MAAMmS,KAAK,cAAY,UAASpS,KAAKwR,YAAY,YAAW,OAG5F,+BAEKxR,KAAKC,MAAMgS,cAAgBjS,KAAKC,MAAMgS,aAAavL,OAAS,EAAI1G,KAAKC,MAAMgS,aAAaI,KAAI,SAACzB,EAAGmB,GAAK,OAClG,kBAAC,WAAQ,CAACO,IAAKP,GACX,wBAAIZ,MAAM,wBAAwBrJ,QAAS,kBAAM,EAAKqL,yBAAyBpB,KAC3E,4BAAKA,EAAQ,GACb,4BAAK7F,EAAO0E,EAAEP,QAAQC,OAAO,eAC7B,4BAAKM,EAAED,MACP,4BAAKlF,EAAiB,IAAD,QAA+B,IAAzB8E,WAAWK,EAAEJ,WAAiBC,QAAQ,OAGjE,EAAKlN,MAAM8P,mBAAmBtB,GAC1B,EAAKxO,MAAM+P,QAAQvB,GACf,wBAAIhS,UAAU,oBACV,wBAAIoS,QAAS,GAAE,eAEvBvB,EAAET,aAAakC,KAAI,SAACoB,EAAGC,GAAM,OACzB,wBAAIpB,IAAKoB,EAAQ3T,UAAU,mBAAmB+H,QAAS,kBAAM,EAAKgK,UAAUC,EAAO2B,KAC/E,6BACA,4BAAKD,EAAEE,aACP,4BAAKF,EAAE9C,MACP,4BAAuB,mBAAlB8C,EAAEE,YAAmC,GAAKlI,EAAiB,IAAD,QAA6B,IAAvB8E,WAAWkD,EAAEjP,SAAeiM,QAAQ,UAG9G,SAIf,wBAAI1Q,UAAU,YACV,wBAAIoS,QAAS,GAAE,8BAM9BnS,KAAKuD,MAAMyO,WAGvB,EAtGoB,CAASrR,aCJrBH,EAAQ,kDAEjB,WAAYP,GAAQ,IAAD,EAEqE,OAFrE,qBACf,cAAMA,IAIVmS,KAAO,SAACI,GACJ,IAAIC,EAAQxN,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAMmO,UAC7CgB,EAAMzN,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAMoO,UAC3CiC,EAAW3O,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAMqQ,WAChDpB,IAAe,EAAKjP,MAAMmO,QAC1BgB,GAAOA,GAEPD,EAAQD,EACRE,GAAM,GAGVkB,EAAW,EAAKC,aAAaD,EAAUlB,EAAKD,GAE5C,EAAK5M,SAAS,CAAE+N,SAAUA,EAAUlC,QAASe,EAAOd,QAASe,KAChE,EAUDpM,OAAS,SAACuM,GACN,EAAKhN,SAAS,CAAEiN,WAAW,IAAQ,WAC3BpQ,EAAM,CAAEmQ,gBACZrK,EAAU,kBAAmB,OAAQvD,KAAKE,UAAU0N,GAAc,KAAM,GAAM,SAACxI,GAC3E,IAAIuJ,EAAW,EAAKC,aAAa5O,KAAKC,MAAMmF,GAAO,EAAK9G,MAAMoO,QAAS,EAAKpO,MAAMmO,SAC9E,EAAK7L,SAAS,CAAE+N,SAAUA,EAAUd,WAAW,OACpD,WACK,EAAKjN,SAAS,CAAE+N,SAAU,GAAId,WAAW,WAIxD,EAEDtM,kBAAoB,WAChB,EAAKX,SAAS,CAAE+N,SAAU,GAAIlC,QAAS,WAAYC,SAAS,KAC/D,EAED6B,kBAAoB,SAACzB,EAAOnB,GACxBlO,EAAM,CAAEoR,MAAOlD,EAAET,eACjB,IAAI4D,EAAkB9O,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAMqQ,WAC3DG,EAAgBhC,GAASnB,EACzB,EAAK/K,SAAS,CAAE+N,SAAUG,KAhD1B,EAAKxQ,MAAQ,CAAEqQ,SAAU,GAAIlC,QAAS,WAAYC,SAAS,EAAOmB,WAAW,GAAO,EAmEvF,OAlEA,kDAkBYc,EAAUjC,EAASc,GAC5B,OAAId,EACOiC,EAASxB,MAAK,SAACW,EAAGC,GAAC,OAAMD,EAAEN,GAASO,EAAEP,GAAU,GAAK,KAErDmB,EAASxB,MAAK,SAACW,EAAGC,GAAC,OAAMD,EAAEN,GAASO,EAAEP,IAAW,EAAI,OAEnE,+BA2BG,OACI,kBAAC,EAAM,iBAAMzS,KAAKC,MAAK,CAAES,QAAS2I,UAC9B,kBAAC,WAAQ,KACL,iEACA,gJACA,yBAAKvJ,GAAG,gBACJ,kBAAC,EAAU,CAACwG,OAAQtG,KAAKsG,OAAQE,kBAAmBxG,KAAKwG,kBAAmBI,SAAU5G,KAAKC,MAAMC,KAAK8T,gBAAiBpM,YAAY,IAE/H5H,KAAKuD,MAAMuP,UAAY,kBAAC,EAAO,CAACjI,KAAK,iBACjC,kBAAC,EAAY,CAACoH,aAAcjS,KAAKuD,MAAMqQ,SAAUxB,KAAMpS,KAAKoS,KAAMV,QAAS1R,KAAKuD,MAAMmO,QAASC,QAAS3R,KAAKuD,MAAMoO,QAAS6B,kBAAmBxT,KAAKwT,2BAM/K,EAvEgB,CAAS7S,aCFjBsT,GD8EE9S,YAAWX,GC9EJ,kDAClB,WAAYP,GAAQ,IAAD,EAEiE,OAFjE,qBACf,cAAMA,IAIVuR,YAAc,SAACC,GACX,GAAI,EAAKxR,MAAMyR,UAAYD,EAC3B,OAAO,EAAKxR,MAAM0R,QAAU,kBAAC,IAAe,CAACtR,KAAMuR,MAA0B,kBAAC,IAAe,CAACvR,KAAMwR,OACvG,EAEDqC,aAAe,SAACC,GACZ,IAAIC,EAAaD,EAASE,SAASC,UAAUH,EAASE,SAASE,YAAY,KAAO,GAClF3R,QAAQC,IAAIuR,GACZ,EAAKvO,SAAS,CACV2O,aAAa,EAAMC,iBAAkBL,IACtC,WACC,IAAIM,EAAU,CAAEC,SAAUR,EAASE,SAAUO,UAAU,GAAD,OAAK,EAAK3U,MAAM4U,YAClE1L,EAAQd,IACNjB,EAAU,CACZsB,OAAQ,OACRC,KAAM1D,KAAKE,UAAUuP,GACrBzL,QAAS,CACL,eAAgB,mBAChB,cAAgB,UAAD,OAAYE,GAC3B,OAAUE,ubAAYC,mBAG9BG,MAAM,iBAAkBrC,GACnBuC,MAAK,SAAAmL,GAAG,OAAIA,EAAIrH,UAChB9D,MAAK,SAAA8D,GAIF,GAAIhM,OAAOmL,WAAanL,OAAOmL,UAAUC,iBAAkB,CACvD,IAAIJ,EAAW,EAAKlJ,MAAMkR,iBAAiB3I,QAAQ,YAAa,IAChErK,OAAOmL,UAAUC,iBAAiBY,EAAMhB,OACrC,CACH,IAAIhE,EAAMhH,OAAOwM,IAAIE,gBAAgBV,GACrC,EAAK5H,SAAS,CAAEkP,gBAAiBtM,IACzB4F,SAASuB,eAAe,sBAC9BlB,QACFjN,OAAOwM,IAAI+G,gBAAgBvM,GAG/B,EAAK5C,SAAS,CAAEkP,gBAAiB,KAAMN,iBAAkB,GAAID,aAAa,WA1CtF,EAAKjR,MAAQ,CAAEwR,gBAAiB,KAAMN,iBAAkB,GAAID,aAAa,GAAO,EAkFnF,OAjFA,8CA+CS,IAAD,OACL,OACI,kBAAC,WAAQ,KACT,uBAAG1U,GAAG,qBAAqB2H,MAAO,CAAEwN,QAAS,QAAU1G,KAAMvO,KAAKuD,MAAMwR,gBAAiBvG,SAAUxO,KAAKuD,MAAMkR,mBAC7GzU,KAAKuD,MAAMiR,YACJ,kBAAC,EAAO,CAAC3J,KAAI,qBAAgB7K,KAAKuD,MAAMkR,iBAAiB3I,QAAQ,YAAa,IAAG,uBACrF,+BAEI,+BACI,4BACI,wBAAIhE,QAAS,kBAAM,EAAK7H,MAAMmS,KAAK,mBAAiB,aAAYpS,KAAKwR,YAAY,kBACjF,wBAAI1J,QAAS,kBAAM,EAAK7H,MAAMmS,KAAK,cAAY,YAAWpS,KAAKwR,YAAY,aAC3E,wBAAI1J,QAAS,kBAAM,EAAK7H,MAAMmS,KAAK,cAAY,QAAOpS,KAAKwR,YAAY,aACvE,wBAAI1J,QAAS,kBAAM,EAAK7H,MAAMmS,KAAK,eAAa,SAAQpS,KAAKwR,YAAY,gBAGjF,+BACKxR,KAAKC,MAAMiV,UAAYlV,KAAKC,MAAMiV,SAASxO,OAAS,EAAI1G,KAAKC,MAAMiV,SAAS7C,KAAI,SAAC8C,EAAGpD,GAAK,OACtF,kBAAC,WAAQ,CAACO,IAAKP,GACX,wBAAIZ,MAAM,mCAAmCrJ,QAAS,kBAAM,EAAKoM,aAAaiB,KAC1E,4BAAKA,EAAE5Q,eACP,4BAAK4Q,EAAEd,SAASvI,QAAQ,YAAa,KACrC,4BAAKqJ,EAAEC,UACP,4BAAKD,EAAEE,gBAGf,wBAAItV,UAAU,YACV,wBAAIoS,QAAS,GAAE,4BAO1C,EArFiB,CAASxR,cCIzByC,EAAe,CACjBC,OAAQ,SAACC,EAAUC,GAAK,kCACjBD,GAAQ,IACXE,MAAOD,EAAME,WAAa,OAAS,OACnCC,gBAAiBH,EAAME,WAAa,UAAY,OAChD,SAAU,CACND,MAAO,UACPE,gBAAiB,cAGzBC,MAAO,SAACC,GAAM,kCACPA,GAAM,IACTC,OAAQ,kBACRC,QAAS,kBACTC,YAAa,UACb,SAAU,CACNA,YAAa,2BACbC,YAAa,iBACbC,UAAW,mBAEf,SAAU,CACNF,YAAa,2BACbC,YAAa,iBACbC,UAAW,sBAGnBC,QAAS,SAACN,GAAM,kCACTA,GAAM,IACTC,OAAQ,kBACRC,QAAS,kBACTG,UAAW,OACXF,YAAa,2BACb,SAAU,CACNI,OAAQ,uCACRJ,YAAa,2BACbC,YAAa,iBACbC,UAAW,mBAEf,SAAU,CACNF,YAAa,2BACbC,YAAa,iBACbC,UAAW,uBAIjBG,GAAe,CACjBkP,SAAS,EAAMgC,eAAgB,GAAIC,aAAc,GAAIjR,WAAY,CAC7DkR,UAAW,KAINC,GAAkB,kDAE3B,WAAYxV,GAAQ,IAAD,EAEqB,OAFrB,qBACf,cAAMA,IAWV+E,gBAAkB,WACd,OAAOC,KAAKC,MAAMD,KAAKE,UAAUf,MACpC,EAaDgB,eAAiB,SAACC,GAAU,OACxB,IAAIrC,SAAQ,SAAAC,GACRqC,YAAW,WACPrC,EAAQ,EAAKyS,eAAerQ,MAC7B,SACL,EAENa,cAAgB,WACZ,IAAIC,EAAeC,OAAOC,OAAO,GAAI,EAAK9C,MAAMe,YAChD,EAAKrE,MAAMqG,OAAOH,EAAaqP,YAClC,EAEDjP,SAAW,WACP,IAAIoP,EAAW1Q,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAMe,aACpDqR,EAASH,UAAY,GACrB,EAAK3P,SAAS,CAAEvB,WAAYqR,EAAUJ,aAAc,IAAM,EAAKtV,MAAM2V,aACxE,EAGD9P,mBAAqB,SAACC,EAAUH,GAC5BlD,EAAM,CAACmT,cAAcjQ,IACrB,IAAIF,EAAe,EAAKnC,MAAMe,WAC9BoB,EAAaK,GAAYH,EAAMA,MAC/B,EAAKC,SAAS,CAAEvB,WAAYoB,EAAc6P,aAAc3P,EAAMI,QAAS,kBAAMtD,EAAM,CAAE4B,WAAY,EAAKf,MAAMe,WAAYiR,aAAc,EAAKhS,MAAMgS,mBAhDjJ,EAAKhS,MAAQ,EAAKyB,kBAAkB,EA6EvC,OA5EA,yDAEoB,IAAD,OAChBwD,EAAU,mBAAoB,MAAO,KAAM,KAAM,GAAM,SAAC6B,GACpD,IAAIjD,EAAUnC,KAAKC,MAAMmF,GACzB,EAAKxE,SAAS,CAAEyP,eAAgBlO,EAASkM,SAAS,IAAS,kBAAM5Q,EAAM,CAAE4S,eAAgB,EAAK/R,MAAM+R,sBACrG,QACN,qCAOchP,GACX,OAAIA,EACOtG,KAAKuD,MAAM+R,eAAezO,QAAO,SAAAC,GAAC,OAAIA,EAAEd,MAAMe,cAAc/F,SAASsF,EAAOS,kBAG5E/G,KAAKuD,MAAM+R,iBAGzB,+BA4BS,IAAD,OACL,OACI,8BACI,yBAAKvV,UAAU,OACX,yBAAKA,UAAU,SAAO,kBACtB,yBAAKA,UAAU,qBACX,kBAAC,IAAM,CACHwB,KAAM,YACN6F,QAASpH,KAAKuD,MAAM+R,eACpB1R,OAAQR,EACR8D,YAAa,GACbtB,MAAO,CACHI,MAAOhG,KAAKuD,MAAMgS,aAAc3P,MAAO5F,KAAKuD,MAAMe,WAAWkR,WAEjErO,SAAU,SAAC1B,GAAC,OAAK,EAAKK,mBAAmB,YAAaL,QAKlE,yBAAK1F,UAAU,OACX,yBAAKA,UAAW,WAChB,yBAAKA,UAAU,MAAM+H,QAAS9H,KAAKuG,UAAS,IAAE,kBAAC,IAAe,CAAClG,KAAM0H,MAAa,UAClF,yBAAKhI,UAAU,cAAc+H,QAAS9H,KAAKkG,eAAc,IAAE,kBAAC,IAAe,CAAC7F,KAAM4H,MAAY,iBAI7G,EAjF0B,CAAStH,aA0FzBwH,eAAQhH,IAAYiH,aALX,SAAA7E,GAAK,MAAK,CAC9BrD,KAAMqD,EAAMrD,QAI4C,MAA7CiI,CAAoDsN,IC9ItDK,GAAS,kDAElB,WAAY7V,GAAQ,IAAD,EAEmF,OAFnF,qBACf,cAAMA,IAIVmS,KAAO,SAACI,GACJ,IAAIC,EAAQxN,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAMmO,UAC7CgB,EAAMzN,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAMoO,UAC3CuD,EAAWjQ,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAM2R,WAChD1C,IAAe,EAAKjP,MAAMmO,QAC1BgB,GAAOA,GAEPD,EAAQD,EACRE,GAAM,GAGVwC,EAAW,EAAKa,aAAab,EAAUxC,EAAKD,GAE5C,EAAK5M,SAAS,CAAEqP,SAAUA,EAAUxD,QAASe,EAAOd,QAASe,KAChE,EAUDpM,OAAS,SAAC0P,GACN,EAAKnQ,SAAS,CAAEiN,WAAW,IAAQ,WAC/BpQ,EAAM,CAAEoQ,UAAWkD,IACnBxN,EAAU,mBAAoB,OAAQvD,KAAKE,UAAU,CAAES,MAAOoQ,EAAWhQ,MAAOgQ,IAAc,KAAM,GAAM,SAAC3L,GACvG,IAAI4L,EAAW,EAAKF,aAAa9Q,KAAKC,MAAMmF,GAAO,EAAK9G,MAAMoO,QAAS,EAAKpO,MAAMmO,SAClF,EAAK7L,SAAS,CAAEqP,SAAUe,EAAUnD,WAAW,EAAO+B,UAAWmB,OAClE,kBAAM,EAAKnQ,SAAS,CAAEiN,WAAW,WAE3C,EAED8C,WAAa,WACT,EAAK/P,SAAS,CAAEqP,SAAU,GAAIxD,QAAS,WAAYC,SAAS,KAtC5D,EAAKpO,MAAQ,CAAE2R,SAAU,GAAIxD,QAAS,WAAYC,SAAS,EAAMmB,WAAW,EAAO+B,UAAW,IAAI,EA2DrG,OA1DA,kDAkBYK,EAAUvD,EAASc,GAC5B,OAAId,EACOuD,EAAS9C,MAAK,SAACW,EAAGC,GAAC,OAAMD,EAAEN,GAASO,EAAEP,GAAU,GAAK,KAErDyC,EAAS9C,MAAK,SAACW,EAAGC,GAAC,OAAMD,EAAEN,GAASO,EAAEP,IAAW,EAAI,OAEnE,+BAiBG,OACI,kBAAC,EAAM,iBAAMzS,KAAKC,MAAK,CAAES,QAAS2I,UAC9B,kBAAC,WAAQ,KACL,kEACA,+DACA,yBAAKvJ,GAAG,gBACJ,kBAAC,GAAkB,CAACwG,OAAQtG,KAAKsG,OAAQsP,WAAY5V,KAAK4V,aACzD5V,KAAKuD,MAAMuP,UACR,kBAAC,EAAO,CAACjI,KAAM,yBACf,kBAAC,EAAS,CAACqK,SAAUlV,KAAKuD,MAAM2R,SAAU9C,KAAMpS,KAAKoS,KAAMV,QAAS1R,KAAKuD,MAAMmO,QAASC,QAAS3R,KAAKuD,MAAMoO,QAASkD,UAAW7U,KAAKuD,MAAMsR,mBAQlK,EA/DiB,CAASlU,aCPlBuV,ID0EE/U,YAAW2U,IC1EA,SAAC7V,GACvB,OACI,yBAAKF,UAAU,oBACX,yBAAKA,UAAU,eAAe0H,MAAO,CAAE+D,UAAW,UAC9C,yBAAKzL,UAAW,QAASkR,IAAI,kBAAkBC,IAAI,eACnD,wBAAIzJ,MAAO,CAAEjE,MAAO,OAAQuH,WAAY,MAAOD,SAAU,SAAS,eAClE,uBAAGrD,MAAO,CAAEjE,MAAO,OAAQuH,WAAY,MAAOD,SAAU,OAAQO,QAAQ,MAAM,wE,8BCExF8K,GAAY1T,EAAcX,qBAAuB,aACjDsU,GAAS3T,EAAcP,kBAAoB,8CAE3CmU,GAAY,UAAM5U,OAAOZ,SAASyV,OAAM,sBACxCC,GAAa9T,EAAcL,qBAC3BoU,GAA+C,SAApC/T,EAAcH,kBAO/BM,QAAQC,IAAK,gCAAiC2T,IAC9C5T,QAAQC,IAAK,uBAAwBwG,ubAAYoN,yBAGjD,IAAIC,IAAuB,EACc,SAArCrN,ubAAYqN,uBACZA,IAAuB,GAGZ,QACXC,KAAM,CACFC,SAAUT,GACVU,OAAQT,GACRU,YAAaT,GACbU,OAAQ,CAAC,SAAU,OACnBC,MAAM,EACNC,mBAAmBC,EACnBC,oBAA6C,IAAzBT,GACpBU,aAAc,QACdC,sBAAuBd,IAE3BC,SAAUA,IC3BRpT,GAAe,CACjBC,OAAQ,SAACC,EAAUC,GAAK,kCACjBD,GAAQ,IACXE,MAAOD,EAAME,WAAa,OAAS,OACnCC,gBAAiBH,EAAME,WAAa,UAAY,OAChD,SAAU,CACND,MAAO,UACPE,gBAAiB,cAGzBC,MAAO,SAACC,GAAM,kCACPA,GAAM,IACTC,OAAQ,kBACRC,QAAS,kBACTC,YAAa,UAGb,SAAU,CACNA,YAAa,2BACbC,YAAa,iBACbC,UAAW,mBAEf,SAAU,CACNF,YAAa,2BACbC,YAAa,iBACbC,UAAW,sBAGnBC,QAAS,SAACN,GAAM,kCACTA,GAAM,IACTC,OAAQ,kBACRC,QAAS,kBACTG,UAAW,OACXF,YAAa,2BACb,SAAU,CACNI,OAAQ,uCACRJ,YAAa,2BACbC,YAAa,iBACbC,UAAW,mBAEf,SAAU,CACNF,YAAa,2BACbC,YAAa,iBACbC,UAAW,uBAIjBqT,GAEM,EAFNA,GAGQ,EAHRA,GAIQ,EAIDC,GAAa,kDAGtB,WAAYtX,GAAQ,IAAD,EAMkC,OANlC,qBACf,cAAMA,IAHVuX,YAAa,EAAM,EA4BnBC,aAAe,SAACtO,GACZb,eAAeoP,QAAQ,YAAa,MACpCpP,eAAeoP,QAAQ,YAAavO,GACpCzG,EAAM,CAAEyG,UACR,IAAIjJ,EAAOyX,KAAIxO,GACfzG,EAAM,CAAExC,SACRA,EAAK0X,MAAQzO,EACbjJ,EAAK2X,GAAK3X,EAAK4X,YAEf,IAAIC,EAA+B,SAAnB7X,EAAKyG,UACrBzG,EAAKyG,UAAYoR,EAEjBzP,eAAeoP,QAAQ,WAAY,MACnCpP,eAAeoP,QAAQ,WAAYzS,KAAKE,UAAUjF,IAGlDwC,EAAM,CAAEsV,OAAQ,EAAK/X,MAAM+X,SAE3B,IAAIlY,EAAK2B,OAAOZ,SAASE,SAAS6K,MAAM,KAAKqM,MAC7C,EAAK/R,cAAcpG,IAItB,EAEDoY,UAAY,WAGR,GAAI,EAAKV,WAAY,CAAC,IAAD,EAEb/O,EAAM0P,GAAO3B,SAAW,sBAAwB,iBAChD,EAAKgB,YAAYhP,EAAUC,EAAK,MAAO,KAAM,KAAM,GAAgC,SAAC4B,GACpF,IAAIlB,EAAQkB,EACZ,GAAY,MAARA,QAAyB+N,IAAT/N,EAGhB,OAFA/B,eAAeoP,QAAQ,YAAa,WACpC,EAAKzX,MAAMoY,QAAQ7K,KAAK,WAG5B,EAAKiK,aAAatO,MAEnB,WACKzG,EAAM,OACV,EAAKzC,MAAMoY,QAAQ7K,KAAK,OACN,QAArB,EAAE,EAAKvN,MAAMqY,gBAAQ,aAAnB,EAAqBC,gBAE/B,EAED/S,aAAe,SAACC,GACZ,IAAIC,EAAe,EAAKnC,MAAMiV,SAC9B9S,EAAaD,EAAEE,OAAOpE,MAAQkE,EAAEE,OAAOC,MACvC,EAAKC,SAAS,CAAE2S,SAAU9S,KAC7B,EAEDQ,cAAgB,SAACuS,GACb,EAAK5S,SAAS,CAAEyN,SAAS,IAAQ,WAC7B,IAAI7K,EAAG,gBAAYgQ,GACnBjQ,EAAUC,EAAK,MAAO,KAAM,KAAM,GAAM,SAAC4B,GACrC3H,EAAM,CAAE2H,SACR,IAAInK,EAAO+E,KAAKC,MAAMmF,GACtBnK,EAAKwY,KAAKC,YAAYC,SAAQ,SAAA7F,GAC1BA,EAAE8F,YAAc,EAAKC,eAAe/F,EAAEgG,iBAE1C7Y,EAAKwY,KAAKC,YAAYvG,MAAK,SAACW,EAAGC,GAAC,OAAMD,EAAEiG,QAAUhG,EAAEgG,QAAW,GAAK,KACpEtW,EAAM,CAACxC,SACP,EAAK2F,SAAS,CAAE2S,SAAUtY,EAAMoT,SAAS,MAC1C,KAAM,UAGhB,EAED2F,SAAW,WACP,IAAIC,EAAIjU,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAMiV,WAC7C9V,EAAM,CAAEyW,WAAYD,IACpB,IAAIE,EAAKnU,KAAKC,MAAMoD,eAAeC,QAAQ,aAC3C7F,EAAM,CAAE2W,eAAgBD,IACxBA,EAAGE,SAAUF,EAAGvB,GAChB,IAAI0B,EAActU,KAAKE,UAAU,CAAEuT,KAAMQ,EAAGM,eAAgBJ,IAC5D,EAAKvT,SAAS,CAAE4T,QAAQ,IAAQ,WAC5BjR,EAAU,eAAgB,OAAQvD,KAAKE,UAAUoU,GAAc,KAAM,GAAM,WACvE,EAAK1T,SAAS,CAAE4T,QAAQ,OACzB,kBAAM,EAAK5T,SAAS,CAAE4T,QAAQ,WAExC,EAED3T,mBAAqB,SAACF,EAAOmM,GACzBrP,EAAM,CAAEkD,UACR,IAAIsT,EAAIjU,KAAKC,MAAMD,KAAKE,UAAU,EAAK5B,MAAMiV,WAC7CU,EAAER,KAAKC,YAAY5G,GAAO8G,YAAmB,OAALjT,QAAK,IAALA,OAAK,EAALA,EAAOwM,MAAK,SAACW,EAAGC,GAAC,OAAMD,EAAEnN,MAAQoN,EAAEpN,MAAS,GAAK,KACzF,IAAI8T,EAAM,CAAC,GACPR,EAAER,KAAKC,YAAY5G,GAAO8G,aAC1BK,EAAER,KAAKC,YAAY5G,GAAO8G,YAAYD,SAAQ,SAAAlN,GAAC,OAAIgO,EAAIlM,KAAK9B,EAAE9F,UAElE,IAAI+T,EAASD,EAAIE,QAAO,SAAU7G,EAAGC,GACjC,OAAOD,EAAIC,KAEfkG,EAAER,KAAKC,YAAY5G,GAAOgH,aAAeY,EACzC,EAAK9T,SAAS,CAAE2S,SAAUU,IAAK,WAC3BxW,EAAM,CAAE8V,SAAU,EAAKjV,MAAMiV,eAEpC,EAEDM,eAAiB,SAACe,GACd,IAAIC,EAAU,GAId,OAHID,EAAIvC,IAAwBwC,EAAQtM,KAAK,CAAE5H,MAAO,EAAGI,MAAO,qBAC5D6T,EAAIvC,IAA0BwC,EAAQtM,KAAK,CAAE5H,MAAO,EAAGI,MAAO,kBAC9D6T,EAAIvC,IAA0BwC,EAAQtM,KAAK,CAAE5H,MAAO,EAAGI,MAAO,mBAC3D8T,GAlIP,EAAKvW,MAAQ,CAAEiV,SAAU,KAAMlF,SAAS,EAAMmG,QAAQ,GACtD,EAAKvT,cAAgB,EAAKA,cAAc6T,KAAK,iBAC7C,EAAK7B,UAAY,EAAKA,UAAU6B,KAAK,iBACrC,EAAKd,SAAW,EAAKA,SAASc,KAAK,iBACnC,EAAKtC,aAAe,EAAKA,aAAasC,KAAK,iBAAM,EAuLpD,OAtLA,yDAKG,GAFA/Z,KAAKwX,YAAa,EAEyB,MAAvClP,eAAeC,QAAQ,aAAsB,CAC7C,IACMY,EADQ,IAAI6Q,gBAAgBha,KAAKC,MAAMY,SAASyF,QAClCwD,IAAI,SACpBX,EAASnJ,KAAKyX,aAAatO,GAE3BnJ,KAAKkY,gBAEN,CACHxV,EAAM,CAAEsV,OAAQhY,KAAKC,MAAM+X,SAC3B,IAAIlY,EAAK2B,OAAOZ,SAASE,SAAS6K,MAAM,KAAKqM,MAC7CjY,KAAKkG,cAAcpG,MAE1B,+BA+GS,IAAD,OACDma,EAAoB,CACpB,CAAErU,MAAO,EAAGI,MAAO,oBACnB,CAAEJ,MAAO,EAAGI,MAAO,iBACnB,CAAEJ,MAAO,EAAGI,MAAO,mBAGvB,OACIhG,KAAKuD,MAAM+P,SAAWtT,KAAKuD,MAAMkW,OAC7B,kBAAC,EAAO,CAAC5O,KAAM7K,KAAKuD,MAAM+P,QAAU,mBAAqB,oBAEzD,yBAAKxT,GAAG,cACR,+BACQ,+BACI,4BAAI,wBAAIqS,QAAS,GAAInS,KAAKuD,MAAMiV,SAASE,KAAKvY,UAAS,IAAGH,KAAKuD,MAAMiV,SAASE,KAAKtY,SAAQ,MAC3F,4BAAI,wBAAI+R,QAAS,EAAGrK,QAAS,WACzB,IAAIpC,EAAe,EAAKnC,MAAMiV,SAC9B9S,EAAagT,KAAKwB,SAAW,EAAK3W,MAAMiV,SAASE,KAAKwB,QACtD,EAAKrU,SAAS,CAAE2S,SAAU9S,MAC1B,0BAAM+B,MAAO,CAAE0S,YAAa,SAAS,YAAgB,IAAEna,KAAKuD,MAAMiV,SAASE,KAAKwB,QAAU,kBAAC,IAAe,CAAC7Z,KAAM+Z,MAAoB,kBAAC,IAAe,CAAC/Z,KAAMga,OAC5J,8BAER,4BACQ,wBAAIC,MAAO,KAAI,kBACf,qDAGR,+BACKta,KAAKuD,MAAMiV,SAASE,KAAKC,YAAYtG,KAAI,SAAC6G,EAAGnH,GAAK,OAC/C,wBAAIO,IAAKP,GACL,6BAAoB,IAAfmH,EAAEF,QAAiB,MAAQE,EAAEF,SAClC,4BAAI,kBAAC,IAAM,CACPuB,SAAO,EACPC,iBAAkB,kBAAM,MACxBC,mBAAmB,EACnBlZ,KAAM,eACN6F,QAAS6S,EACTrW,OAAQR,GACRwC,MAAOsT,EAAEL,YACT3R,YAAa,GACbC,SAAU,SAAC1B,GAAC,OAAK,EAAKK,mBAAmBL,EAAGsM,IAC5C1K,cAAc,WAOlC,yBAAKtH,UAAU,OACX,yBAAKA,UAAW,WAChB,yBAAKA,UAAU,cAAc+H,QAAS9H,KAAKiZ,UAAS,IAAE,kBAAC,IAAe,CAAC5Y,KAAMgR,MAAU,oBAI1G,EAhMqB,CAAS1Q,aAyM7BuH,GAAqB,CACvBpF,c,IAGW4X,YAAavS,YAAQhH,IAAYiH,aARxB,SAAA7E,GAAK,MAAK,CAC9BrD,KAAMqD,EAAMrD,QAOyDgI,IAA7CC,CAAkEoP,K,OCnQjFoD,GAAK,kDAGd,WAAY1a,GAAQ,IAAD,EAK4B,OAL5B,qBACf,cAAMA,IAHVuX,YAAa,EAAM,EAmBnBoD,aAAe,SAACrZ,GAChB8M,SAASwM,OAAStZ,EAAO,6CACxB,EAEDuZ,UAAY,SAACvZ,GAKT,IAHA,IAAIwZ,EAAY1M,SAASwM,OAAOjP,MAAM,KAG7B9E,EAAI,EAAGA,EAAIiU,EAAUrU,OAAQI,IAAK,CACvC,IAAIkU,EAAaD,EAAUjU,GAAG8E,MAAM,KAIpC,GAAIrK,GAAQyZ,EAAW,GAAGC,OAEtB,OAAOC,mBAAmBF,EAAW,IAK7C,OAAO,MACV,EAED9C,UAAY,WAGR,GAAI,EAAKV,aAA0C,IAA5B,EAAKjU,MAAM4X,aAAwB,CAAC,IAAD,EAKlD1S,EAAM0P,GAAO3B,SAAW,sBAAwB,iBAChD,EAAKgB,YAAYhP,EAAUC,EAAK,MAAO,KAAM,KAAM,GAAgC,SAAC4B,GACpF,IAAIlB,EAAQkB,EACZ,GAAY,MAARA,QAAyB+N,IAAT/N,EAGhB,OAFA/B,eAAeoP,QAAQ,YAAa,WACpC,EAAKzX,MAAMoY,QAAQ7K,KAAK,WAG5BlF,eAAeoP,QAAQ,YAAa,MACpCpP,eAAeoP,QAAQ,YAAavO,GACpC,IAAIjJ,EAAOyX,KAAIxO,GACfjJ,EAAK0X,MAAQzO,EACbjJ,EAAK2X,GAAK3X,EAAK4X,YACf,IAAIC,EAA+B,SAAnB7X,EAAKyG,UACrBzG,EAAKyG,UAAYoR,EACjB,EAAKlS,SAAS,CAAEsV,cAAc,GAAQ,EAAKC,cAAclb,OAC1D,WACC,EAAKD,MAAMoY,QAAQ7K,KAAK,kBACN,QAArB,EAAE,EAAKvN,MAAMqY,gBAAQ,aAAnB,EAAqBC,gBAG/B,EAGD6C,cAAgB,SAAClb,GAEbsI,EAAU,gBAAiB,MAAO,KAAM,KAAM,GAAM,SAAC6B,GACjDnK,EAAK+S,aAAehO,KAAKC,MAAMmF,GAE/B7B,EAAU,oBAAqB,MAAO,KAAM,KAAM,GAAM,SAAC6B,GACrDnK,EAAK8T,gBAAkB/O,KAAKC,MAAMmF,GAClC,EAAKxE,SAAS,CAAEwV,mBAAmB,IAAQ,WAEvC/S,eAAeoP,QAAQ,WAAY,MACnCpP,eAAeoP,QAAQ,WAAYzS,KAAKE,UAAUjF,IAElD,EAAKD,MAAM6C,WAAW5C,GAAMyJ,MAAK,WAE7B,EAAK1J,MAAMoY,QAAQvM,QAAQwP,yBAAc,IAAK7Z,OAAOZ,SAASyV,iBAIvE,KAAM,QACV,KAAM,OA1FT,EAAK/S,MAAQ,CAAE4X,cAAc,EAAOE,mBAAmB,EAAOE,SAAS,GACvE,EAAKrD,UAAY,EAAKA,UAAU6B,KAAK,iBACrC,EAAKa,aAAe,EAAKA,aAAab,KAAK,iBAC3C,EAAKe,UAAY,EAAKA,UAAUf,KAAK,iBAAM,EAqG9C,OApGA,yDAGG/Z,KAAKwX,YAAa,EAClBxX,KAAKkY,cACR,6CAGGlY,KAAKwX,YAAa,IACrB,+BAiFG,OACIxX,KAAKuD,MAAMgY,QACX,kBAAC,GAAU,MACX,kBAAC,EAAO,CAAC1Q,KACJ7K,KAAKuD,MAAM4X,aACPnb,KAAKuD,MAAM8X,kBACoB,mBAA5B,0BAFmB,4BAMtC,EA7Ga,CAAS1a,aAoHrBuH,GAAqB,CACvBpF,cAGW4X,eAAavS,YAAQhH,IAAYiH,aARxB,SAAA7E,GAAK,MAAK,CAC9BrD,KAAMqD,EAAMrD,QAOyDgI,IAA7CC,CAAkEwS,KCjIjFa,GAAM,kHAqBd,OArBc,yDAGXlT,eAAeoP,QAAQ,YAAa,MACpCpP,eAAeoP,QAAQ,WAAY,MACnC1X,KAAKC,MAAMqY,SAASmD,aAAaC,QACjCja,OAAOka,OAAS,KAChBla,OAAOoM,KAAK,GAAI,SAChBpM,OAAOgO,QACPzP,KAAKC,MAAM6C,WAAW,MACzB,+BAGG,OACI,yBAAK/C,UAAU,oBACX,yBAAKA,UAAU,eAAe0H,MAAO,CAAEmU,UAAW,WAC9C,yBAAK3K,IAAI,WAAWC,IAAI,eAAezJ,MAAO,CAAE6S,MAAO,QAASzW,OAAQ,UACxE,uBAAG4D,MAAO,CAAE+D,UAAW,OAAQqQ,YAAa,QAAQ,iCAInE,EArBc,CAASlb,aA6BtBuH,GAAqB,CACvBpF,cAGW4X,eAAavS,YAAQhH,IAAYiH,aARxB,SAAA7E,GAAK,MAAK,CAC9BrD,KAAMqD,EAAMrD,QAOyDgI,IAA7CC,CAAkEqT,KClCjFM,GAAe,kHAYvB,OAZuB,8CAIpB,OACI,yBAAK/b,UAAU,oBACX,yBAAKA,UAAU,eAAe0H,MAAO,CAAEmU,UAAW,WAC9C,yBAAK3K,IAAI,WAAWC,IAAI,eAAezJ,MAAO,CAAE6S,MAAO,QAASzW,OAAQ,UACxE,uBAAG4D,MAAO,CAAE+D,UAAW,OAAQqQ,YAAa,QAAQ,2BAInE,EAZuB,CAASlb,aAoB/BuH,GAAqB,CACvBpF,cCLEiZ,IDQS5T,YAAQhH,IAAYiH,aARX,SAAA7E,GAAK,MAAK,CAC9BrD,KAAMqD,EAAMrD,QAO4CgI,IAA7CC,CAAkE2T,ICRzD,CACpB,wBACA,UACA,eACA,uBAGSE,GAAG,kDAIZ,WAAY/b,GAAQ,IAAD,EAmDlB,OAnDkB,qBACf,cAAMA,IAHVqY,SAAW,IAAI2D,YAAS9D,GAAOxB,MAAM,EAmCrCuF,aAAe,WACX,EAAKjc,MAAMoY,QAAQ7K,KAAK,WAC1B,EAEF2O,mBAAqB,SAAC7D,EAAU8D,GACxBA,EAAYpb,SAAS,oBACrB,EAAKf,MAAMoY,QAAQvM,QAAQwP,yBAAcc,EAAa3a,OAAOZ,SAASyV,SAGtE,EAAKrW,MAAMoY,QAAQvM,QAAQwP,yBAAc,wBAAyB7Z,OAAOZ,SAASyV,UAExF,EAEF+F,QAAU,WACN,IAAIC,EAAchU,eAAeC,QAAQ,YACzC7F,EAAM,CAAE4Z,gBACR,IAAIC,EAAatX,KAAKC,MAAMoX,GAC5B,EAAKrc,MAAM6C,WAAWyZ,IACzB,EAmCA,OAlFD,sDAEI,YACyBnE,IAApBpY,KAAKC,MAAMC,MAA0C,OAApBF,KAAKC,MAAMC,QAC5C6b,GAAgB/a,SAAShB,KAAKC,MAAMoY,QAAQxX,SAASE,YAE7D,0CAEoB,IAAD,IAIXuH,eAAeC,QAAQ,gBAAgC,QAApB,EAAKvI,KAAKC,MAAMC,YAAI,aAAf,EAAiB0X,SAA0B,QAAhB,EAAC5X,KAAKC,MAAMC,YAAI,aAAf,EAAiB0X,QACtF5X,KAAKqc,YAEZ,yCAEkBG,EAAWC,GAAY,IAAD,IAIiB,KAApC,QAAd,EAAAD,EAAUtc,YAAI,aAAd,EAAgB0X,UAAyB,QAApB,EAAK5X,KAAKC,MAAMC,YAAI,aAAf,EAAiB0X,SAC3ClV,EAAM,CAAEga,KAAMF,EAAUtc,KAAMyc,IAAK3c,KAAKC,MAAMC,OACzCoI,eAAeC,QAAQ,gBAAgC,QAApB,EAAKvI,KAAKC,MAAMC,YAAI,aAAf,EAAiB0X,SAA0B,QAAhB,EAAC5X,KAAKC,MAAMC,YAAI,aAAf,EAAiB0X,QACtF5X,KAAKqc,aAGhB,+BAsBU,IAAD,OACN,OACIlE,GAAO3B,SACH,kBAAC,IAAQ,CAAC8B,SAAUtY,KAAKsY,SAAU6D,mBAAoBnc,KAAKmc,oBACxD,kBAAC,IAAM,KACH,kBAAC,WAAQ,KACL,kBAAC,IAAK,CAACS,KAAK,qBAAqBC,OAAQ,kBAAM,kBAAC,IAAa,iBAAK,EAAK5c,MAAK,CAAEic,aAAc,EAAKA,mBACjG,kBAAC,IAAW,CAACU,KAAK,wBAAwBC,OAAQ,kBAAM,kBAAC,GAAU,EAAK5c,UACxE,kBAAC,IAAW,CAAC6c,OAAK,EAACF,KAAK,UAAUC,OAAQ,kBAAM,kBAAC,GAAW,EAAK5c,UACjE,kBAAC,IAAW,CAAC6c,OAAK,EAACF,KAAK,6BAA6BC,OAAQ,kBAAM,kBAAC,GAAa,iBAAK,EAAK5c,MAAK,CAAEqY,SAAU,EAAKA,SAAUe,eAAgB,EAAKpZ,MAAMC,WACtJ,kBAAC,IAAW,CAAC4c,OAAK,EAACF,KAAK,qBAAqBC,OAAQ,kBAAM,kBAAC,EAAW,EAAK5c,UAC5E,kBAAC,IAAW,CAAC6c,OAAK,EAACF,KAAK,yBAAyBC,OAAQ,kBAAM,kBAAC,EAAa,EAAK5c,UAClF,kBAAC,IAAW,CAAC6c,OAAK,EAACF,KAAK,2BAA2BC,OAAQ,kBAAM,kBAAC,GAAc,EAAK5c,UACrF,kBAAC,IAAK,CAAC2c,KAAK,eAAeC,OAAQ,kBAAM,kBAAC,GAAe,EAAK5c,UAC9D,kBAAC,IAAW,CAAC6c,OAAK,EAACF,KAAK,IAAIC,OAAQ,kBAAM,kBAAC,EAAS,EAAK5c,aAKrE,kBAAC,IAAM,KACH,kBAAC,WAAQ,KACL,kBAAC,IAAK,CAAC2c,KAAK,qBAAqBC,OAAQ,kBAAM,kBAAC,IAAa,iBAAK,EAAK5c,MAAK,CAAEic,aAAc,EAAKA,mBACjG,kBAAC,IAAK,CAACU,KAAK,wBAAwBC,OAAQ,kBAAM,kBAAC,GAAU,EAAK5c,UAClE,kBAAC,IAAK,CAAC6c,OAAK,EAACF,KAAK,UAAUC,OAAQ,kBAAM,kBAAC,GAAW,EAAK5c,UAC3D,kBAAC,IAAK,CAAC6c,OAAK,EAACF,KAAK,6BAA6BC,OAAQ,kBAAM,kBAAC,GAAa,iBAAK,EAAK5c,MAAK,CAAEoZ,eAAgB,EAAKpZ,MAAMC,WACvH,kBAAC,IAAK,CAAC4c,OAAK,EAACF,KAAK,qBAAqBC,OAAQ,kBAAM,kBAAC,EAAW,EAAK5c,UACtE,kBAAC,IAAK,CAAC6c,OAAK,EAACF,KAAK,yBAAyBC,OAAQ,kBAAM,kBAAC,EAAa,EAAK5c,UAC5E,kBAAC,IAAK,CAAC6c,OAAK,EAACF,KAAK,2BAA2BC,OAAQ,kBAAM,kBAAC,GAAc,EAAK5c,UAC/E,kBAAC,IAAK,CAAC2c,KAAK,eAAeC,OAAQ,kBAAM,kBAAC,GAAe,EAAK5c,UAC9D,kBAAC,IAAK,CAAC6c,OAAK,EAACF,KAAK,IAAIC,OAAQ,kBAAM,kBAAC,EAAS,EAAK5c,gBAItE,EA1FW,CAASU,aAiGnBuH,GAAqB,CACvBpF,cAGWqF,eAAQhH,IAAYiH,aARX,SAAA7E,GAAK,MAAK,CAC9BrD,KAAMqD,EAAMrD,QAO4CgI,IAA7CC,CAAkE6T,I,UC/HpEe,GAAWC,YAAgB,CACpC9c,KrBUuB,WAAyB,IAAxBqD,EAAK,uDAAG,GAAI0Z,EAAM,uCAC1C,OAAQA,EAAO9Z,MACX,IAjBmB,cAkBf,OAAO8Z,EAAO/c,KAClB,QACI,OAAOqD,MqBZN2Z,GAAQC,YACjBJ,GACAK,YAAgBC,O,OCDpBlR,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KAER,IAAMmR,GAAUjP,SAASkP,qBAAqB,QAAQ,GAAGC,aAAa,QAChEC,GAAcpP,SAASuB,eAAe,QAE5C8N,IAASb,OACL,kBAAC,IAAQ,CAACK,MAAOA,IACb,kBAAC,gBAAa,CAACS,SAAUL,IACrB,kBAAC,GAAG,MACJ,kBAAC,IAAc,QAGzBG,M","file":"static/js/main.799e5943.chunk.js","sourcesContent":["import React, { Component, Fragment } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faUser } from '@fortawesome/free-regular-svg-icons';\n\nexport class Header extends Component {\n\n render() {\n return (\n \n \n
\n Commercial Check Image Archive\n
\n
\n )\n }\n}\n\n\n","import React from 'react';\nimport { Link, useLocation } from 'react-router-dom';\nimport { withRouter } from 'react-router';\n\nexport const Nav = (props) => {\n let location = useLocation();\n return (\n \n )\n}\n\nexport default withRouter(Nav);","import React from 'react';\n\nexport const Footer = (props) => {\n return (\n
1-800-Regions | © 2020 Regions Financial Corporation. All Rights reserved. | Member FDIC | Equal Housing Lender
\n\n )\n}","import React, { Component } from 'react';\nimport { Header } from './header';\nimport { Nav } from './nav';\nimport { withRouter } from 'react-router-dom';\nimport { Footer } from './footer.js';\n\nexport class Layout extends Component {\n static displayName = Layout.name;\n\n render () {\n return (\n
\n
\n
\n );\n }\n}\n\nexport default withRouter(Layout);\n","const envSettings = window;\n\nexport default { \n react_app_appversion: envSettings.REACT_APP_APPVERSION,\n react_app_apiurl: envSettings.REACT_APP_APIURL,\n react_app_client_id: envSettings.REACT_APP_CLIENT_ID,\n react_app_okta_domain: envSettings.REACT_APP_OKTA_DOMAIN,\n react_app_issuer: envSettings.REACT_APP_ISSUER,\n react_app_logout_uri: envSettings.REACT_APP_LOGOUT_URI,\n react_app_useokta: envSettings.REACT_APP_USEOKTA\n};\n","import React, { Component } from 'react';\nimport { Layout } from './Layout';\nimport configuration from '../readConfig';\n\nexport class Home extends Component {\n static displayName = Home.name;\n\n render () {\n return (\n \n
\n \n
\n
\n );\n }\n};\n","export const Debug = message => {\n if (process.env.REACT_APP_USE_DEBUGMODE === 'true') {\n console.log(message);\n }\n}\n\nexport default Debug;","export const UPDATE_USER = 'UPDATE_USER';\n\nexport function updateUser(user) {\n return dispatch => {\n return new Promise((resolve, reject) => {\n dispatch({\n type: UPDATE_USER,\n user: user\n });\n resolve()\n });\n }\n}\n\n\nexport const userReducer = (state = {}, action) => {\n switch (action.type) {\n case UPDATE_USER:\n return action.user;\n default:\n return state;\n }\n}","import React, { Component, Fragment } from 'react';\nimport AsyncSelect from 'react-select/async';\nimport Select from 'react-select';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {faSearch, faUndoAlt } from '@fortawesome/free-solid-svg-icons';\nimport TextField from '@material-ui/core/TextField';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport Debug from './debug';\nimport { withRouter } from 'react-router';\nimport { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport { updateUser } from '../redux/actions';\nimport { Button } from '@material-ui/core';\n\n\nconst selectStyles = {\n option: (provided, state) => ({\n ...provided,\n color: state.isSelected ? '#fff' : '#777',\n backgroundColor: state.isSelected ? '#88bd40' : '#fff',\n ':hover': {\n color: '#66a326',\n backgroundColor:'#c2dd9e',\n }\n }),\n input: (styles) => ({\n ...styles,\n height: '34px !important',\n outline: 'none !important',\n borderColor: \"#88bd40\",\n\n\n ':hover': {\n borderColor: 'hsl(0,0%,80%) !important',\n borderWidth: '1px !important',\n boxShadow: 'none !important',\n },\n ':focus': {\n borderColor: 'hsl(0,0%,80%) !important',\n borderWidth: '1px !important',\n boxShadow: 'none !important',\n }\n }),\n control: (styles) => ({\n ...styles,\n height: '34px !important',\n outline: 'none !important',\n boxShadow: 'none',\n borderColor: 'hsl(0,0%,80%) !important',\n ':hover': {\n border: '1px solid hsl(0,0%, 80 %) !important',\n borderColor: 'hsl(0,0%,80%) !important',\n borderWidth: '1px !important',\n boxShadow: 'none !important',\n },\n ':focus': {\n borderColor: 'hsl(0,0%,80%) !important',\n borderWidth: '1px !important',\n boxShadow: 'none !important',\n }\n })\n}\n\n\nconst defaultState = {\n accountNumberLabel:'',\n formValues: {\n AccountNumber: '', Amount: '', AmountComparison: 0,\n BeginningPaidDate: '', EndingPaidDate: '',\n BankSequenceNumber: '', CheckNumberLow: '', CheckNumberHigh: '',\n}}\n\nexport class Searchform extends Component {\n\n constructor(props) {\n super(props);\n this.state = this.getDefaultState();\n }\n\n getDefaultState = () => {\n return JSON.parse(JSON.stringify(defaultState));\n }\n\n populateAccounts(search) {\n if (this.props.user.IsRegions) {\n return this.props.accounts.filter(i => i.label.toLowerCase().includes(search.toLowerCase()))\n }\n else {\n return this.props.accounts;\n }\n \n }\n\n promiseOptions = (inputValue) =>\n new Promise(resolve => {\n setTimeout(() => {\n resolve(this.populateAccounts(inputValue));\n }, 1000);\n });\n\n \n handleChange = (e) => {\n let currentState = this.state.formValues;\n currentState[e.target.name] = e.target.value;\n this.setState({ formValues: currentState })\n }\n\n handleSelectChange = (propName, value) => {\n let currentState = this.state.formValues;\n currentState[propName] = value.value;\n if (propName === 'AccountNumber') this.setState({ accountNumberLabel: value.label })\n this.setState({ formValues: currentState }, () => Debug({ formValues: this.state.formValues }))\n }\n\n handleDateChange = (propName, value) => {\n let currentState = this.state.formValues;\n currentState[propName] = value;\n this.setState({ formValues: currentState })\n }\n\n performSearch = () => {\n var searchValues = Object.assign({}, this.state.formValues);\n this.props.search(searchValues);\n }\n\n clearAll = () => {\n this.setState(this.getDefaultState(), this.props.clearTransactions)\n }\n\n isValidBankSequence = () => {\n return this.state.formValues.BankSequenceNumber === \"\" || this.state.formValues.BankSequenceNumber.length === 10\n }\n\n render() {\n let amountComparisonOptions = [\n { value: 0, label: 'Equal To' },\n { value: 1, label: 'Greater Than' },\n { value: 2, label: 'Greater Than Or Equal To' },\n { value: 3, label: 'Less Than' },\n { value: 4, label: 'Less Than Or Equal To' }\n ]\n\n return (\n \n
\n \n
\n
Account Number:
\n
\n {this.props.user.IsRegions === true ?\n this.handleSelectChange('AccountNumber', e)}\n /> :\n this.handleSelectChange('AccountNumber', e)}\n isSearchable={false}\n />\n }\n
\n
\n
\n
Amount:
\n
\n
\n
\n
Amount Comparison:
\n
\n this.handleSelectChange('AmountComparison', e)}\n isSearchable={false}\n />\n \n
\n
\n
\n
Beginning Paid Date:
\n
\n \n
\n
\n
\n
Ending Paid Date:
\n
\n \n
\n
\n
\n
Bank Sequence Number:
\n
\n
\n\n {\n this.props.isDeposits ? null :\n \n
\n
Check Number Low:
\n
\n
\n
\n
Check Number High:
\n
\n
\n
\n }\n\n
\n
\n \n \n
\n
\n
\n )\n }\n \n}\n\n\nconst mapStateToProps = state => ({\n user: state.user\n});\n\nconst mapDispatchToProps = {\n updateUser\n}\n\nexport default compose(withRouter, connect(mapStateToProps, mapDispatchToProps))(Searchform);","import React, { Fragment } from 'react';\nimport { toast } from 'react-toastify';\nimport Debug from './debug';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons';\nimport { useOktaAuth } from '@okta/okta-react';\n\nexport const checkResponseForJSON = (response) => {\n const contentType = response.headers.get(\"content-type\");\n let isJSON = (contentType && contentType.indexOf(\"application/json\") !== -1);\n Debug({ isJSONResponse: isJSON });\n return isJSON\n}\n\n//const getCleanError = (error) => {\n// if (error instanceof String && error.includes('')) {\n// let parser = new DOMParser();\n// let errorDoc = parser.parseFromString(error, 'text/html');\n// let html = errorDoc.getElementsByTagName('body')[0].innerText.replace(/(\\r\\n|\\n|\\r)/gm, '');\n// Debug({ html })\n// return html;\n// }\n\n// let cleanedErrorJson = error.replace(/(\\r\\n|\\n|\\r)/gm, \"|\").replace('||', '|');\n \n// try {\n// let cleanedErrorObj = JSON.parse(cleanedErrorJson);\n// if (cleanedErrorObj.errors) {\n// let errorString = '';\n// for (var propertyName in cleanedErrorObj.errors) {\n// cleanedErrorObj.errors[propertyName].map((e, index) => {\n// errorString += `[${propertyName}] ${e}|`\n// })\n\n// }\n// return errorString;\n// } else {\n// return cleanedErrorObj.error;\n// }\n// }\n// catch (e) {\n// return cleanedErrorJson;\n// }\n//}\n\n//const getErrorHtml = (error) => {\n\n\n// let cleanedError = getCleanError(error);\n// Debug({ cleanedError: cleanedError })\n// if (cleanedError.includes('|')) {\n// let cleanedArray = cleanedError.split('|');\n// let cleanError = cleanedArray.map((e, index) =>
{e}
)\n// return {cleanError};\n// }\n// return {cleanedError};\n//}\n\n//const getErrorHtmlFromJson = (e) => {\n\n// let error = JSON.parse(e);\n// try {\n// error = JSON.parse(e)\n// }\n// catch (x) {}\n// try {\n// error = JSON.parse(e)\n// }\n// catch (x1) { }\n\n// return \n//
{error.message}
\n// {error.stack ? < div style={{ fontSize: '14px', opacity: '.75', borderTop: '1px solid #fff', paddingTop: '16px', marginTop: '16px' }}>{error.stack} : null }\n//
\n\n//}\n\nexport const getToken = () => {\n var token = sessionStorage.getItem('cci_token');\n return token;\n}\n\n//export const fetchData = (url, method, body, successMsg, errorMsg, successCallback, errorCallback) => {\n\n// let headers = {\n// 'Accept': 'application/json',\n// 'Content-Type': 'application/json',\n// };\n\n// let token = getToken();\n// if (token) headers.Authorization = `Bearer ${token}`;\n// if (process.env.REACT_APP_SSO_ID) headers.SSO_ID = process.env.REACT_APP_SSO_ID;\n\n// Debug(`Performing a ${method} call to ${url}`);\n// Debug({ payload: body });\n// fetch(url, {\n// method: method,\n// headers: headers,\n// body: body,\n// credentials: 'include',\n// })\n// .then(response => {\n// if (checkResponseForJSON(response) && response.ok) {\n// response.json()\n// .then(data => {\n// Debug(`Successfully performed a ${method} call to ${url} and returned a JSON result`);\n// if (successMsg) toast.success(successMsg, { position: toast.POSITION.TOP_CENTER, autoClose: 3000 });\n// if (successCallback) successCallback(data);\n// }).catch(error => {\n// Debug(`An error occurred while parsing JSON data.`)\n// toast.error({getErrorHtml(error)}, { position: toast.POSITION.TOP_CENTER, autoClose: false });\n// if (errorCallback) errorCallback();\n// });\n// } else {\n// response.text()\n// .then(error => {\n// Debug(`${method.toUpperCase()} method call returned JSON formatted error.`)\n// if (response.status === 401) {\n// let e = JSON.stringify({ message: 'Unable to authenticate OnePass user' });\n// toast.error({getErrorHtmlFromJson(e)}, { position: toast.POSITION.TOP_CENTER, autoClose: false })\n// } else {\n// toast.error({getErrorHtmlFromJson(error)}, { position: toast.POSITION.TOP_CENTER, autoClose: false });\n// }\n// if (errorCallback) errorCallback();\n// })\n// .catch(error => {\n// Debug(`An error occurred while parsing JSON error data.`)\n// toast.error({getErrorHtml(error)}, { position: toast.POSITION.TOP_CENTER, autoClose: false });\n// if (errorCallback) errorCallback();\n// });\n// } \n// })\n\n\n\n//}\n\nexport const fetchData = (url, method, body, successMsg, errorMsg, successCallback, errorCallback, oktaToken) => {\n\n let headers = {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n };\n\n let userToken = getToken();\n let token = oktaToken;\n if (oktaToken) {\n headers.Authorization = `Bearer ${token}`;\n } else {\n headers.Authorization = `Bearer ${userToken}`;\n }\n\n //if (userToken) headers.UserToken = `Bearer ${userToken}`;\n if (process.env.REACT_APP_SSO_ID) headers.SSO_ID = process.env.REACT_APP_SSO_ID;\n\n\n Debug(`Performing a ${method} call to ${url}`);\n Debug({ payload: body });\n fetch(url, {\n method: method,\n headers: headers,\n body: body,\n credentials: 'include',\n })\n .then(response => {\n if (checkResponseForJSON(response) && response.ok) {\n response.json()\n .then(data => {\n Debug(`Successfully performed a ${method} call to ${url} and returned a JSON result`);\n if (successMsg) toast.success(successMsg, { position: toast.POSITION.TOP_CENTER, autoClose: 3000 });\n if (successCallback) successCallback(data);\n }\n ).catch(error => {\n Debug(`An error occurred while parsing JSON data. ${error}`)\n toast.error({error}, { position: toast.POSITION.TOP_CENTER, autoClose: false });\n if (errorCallback) errorCallback();\n });\n } else if (!response.ok) {\n response.json()\n .then(error => {\n Debug({ Error: error?.message });\n Debug({ Details: error?.stack });\n if (errorCallback) errorCallback();\n toast.error(\n
{error.message}
\n {error.stack ?
{error.stack}
: null}\n
, { position: toast.POSITION.TOP_CENTER, autoClose: false });\n\n });\n } else {\n response.text()\n .then(error => {\n Debug({error });\n if (errorCallback) errorCallback();\n toast.error(\n
{error}
\n
, { position: toast.POSITION.TOP_CENTER, autoClose: false });\n\n });\n }\n })\n\n\n\n}","export const numberWithCommas = (x) => {\n let value = (x.toString()).split(/(?=(?:\\d{3})+(?:\\.|$))/g).join(\",\");\n return value.toString().replace('$,','$');\n}\n\nexport const isNullOrWhitespace = (str) => {\n return str === undefined || str === null || str.match(/^ *$/) !== null;\n}\n\nexport const isGuid = (stringToTest) => {\n if (stringToTest[0] === \"{\") {\n stringToTest = stringToTest.substring(1, stringToTest.length - 1);\n }\n var regexGuid = /^(\\{){0,1}[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(\\}){0,1}$/gi;\n return regexGuid.test(stringToTest);\n}\n\nexport const isOnePassId = (str) => {\n if (isNullOrWhitespace(str)) return false;\n return (isGuid(str));\n}","import React from 'react';\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { faSpinner } from \"@fortawesome/free-solid-svg-icons\"\n\nexport const LoadingCheck = (props) => {\n return (\n
\n )\n}","import React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faTimesCircle, faSave } from '@fortawesome/free-regular-svg-icons';\nimport { faPrint, faUndoAlt } from '@fortawesome/free-solid-svg-icons';\nimport Debug from './debug';\nimport { numberWithCommas } from '../components/sharedFunctions';\nimport { fetchData } from './fetchData';\nimport { withRouter } from 'react-router';\nimport { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport { LoadingCheck } from './LoadingCheck';\n\nvar moment = require('moment'); // require\n\nexport class ImagePopup extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n frontImg: '', backImg: '', isFrontShown: true, isFrontLoaded: false, isBackLoaded: false,\n frontFileName:'', backFileName: '', imageRotate: 0,\n accountNumber: this.props.detailIndex ? this.props.transaction.DepositItems[this.props.detailIndex].AccountNumber : this.props.transaction.AccountNumber,\n postingDate: moment(this.props.transaction.IPDate).format('YYYYMMDD'),\n postingDateAlt: moment(this.props.transaction.IPDate).format('MM/DD/YYYY'),\n amount: numberWithCommas(`$${(parseFloat(this.props.detailIndex ? this.props.transaction.DepositItems[this.props.detailIndex].Amount : this.props.transaction.IPAmount) * .01).toFixed(2)}`),\n serialNumber: this.props.transaction.SerialNumber,\n bankSequence: this.props.detailIndex ? this.props.transaction.DepositItems[this.props.detailIndex].CPCS : this.props.transaction.CPCS,\n }\n }\n\n \n\n\n componentDidMount() {\n\n fetchData(`image/${this.state.accountNumber}/${this.state.bankSequence}/${this.state.postingDate}`, 'GET', null, null, null, (t) => {\n let image = JSON.parse(t);\n Debug({ image });\n this.setState({ frontFileName: `${this.state.postingDate}_${this.state.bankSequence}_${this.state.accountNumber}.jpg`, frontImg: `data:image/jpeg;base64,${image.Front}`, isFrontLoaded: true })\n this.setState({ backFileName: `${this.state.postingDate}_${this.state.bankSequence}_${this.state.accountNumber}.jpg`, backImg: `data: image/jpeg;base64,${image.Back}`, isBackLoaded: true })\n }, null);\n }\n\n forceDownload = () => {\n var url = this.state.isFrontShown ? this.state.frontImg : this.state.backImg;\n var fileName = this.state.isFrontShown ? this.state.frontFileName.replace(/^.*[\\\\\\/]/, '') : this.state.backFileName.replace(/^.*[\\\\\\/]/, '');\n Debug(url)\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n const byteCharacters = atob(url.replace(/^[^,]+,/, ''));\n const byteArrays = [];\n for (let offset = 0; offset < byteCharacters.length; offset += 512) {\n const slice = byteCharacters.slice(offset, offset + 512);\n\n const byteNumbers = new Array(slice.length);\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n byteArrays.push(byteArray);\n }\n\n const blob = new Blob(byteArrays, { type: 'image/jpeg' });\n window.navigator.msSaveOrOpenBlob(blob, fileName);\n return;\n }\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url, true);\n xhr.responseType = \"blob\";\n xhr.onload = function () {\n var urlCreator = window.URL || window.webkitURL;\n var imageUrl = urlCreator.createObjectURL(this.response);\n var tag = document.createElement('a');\n tag.href = imageUrl;\n tag.download = fileName;\n document.body.appendChild(tag);\n tag.click();\n document.body.removeChild(tag);\n }\n xhr.send();\n }\n\n imagetoPrint = (source) => {\n\n return \" \\n\" +\n \"\"+\n \"
Check Image Archive
\" +\n \"\" +\n \"\" +\n \" \" +\n \"\" +\n \" \" +\n \"\" +\n \" \" +\n \"\" +\n \" \" +\n \"\" +\n \" \" +\n \"
Account:\" + this.state.accountNumber + \"
Posting Date:\" + this.state.postingDateAlt + \"
Amount:\" + this.state.amount + \"
Serial Number:\" + this.state.serialNumber + \"
Bank Sequence:\" + this.state.bankSequence + \"
\" +\n \"\" + \n \"\";\n }\n\n printImage = () => {\n var source = [this.state.frontImg, this.state.backImg];\n var fileName = this.state.frontFileName;\n var Pagelink = fileName;\n var pwa = window.open(Pagelink, \"_new\");\n pwa.document.open();\n pwa.document.write(this.imagetoPrint(source));\n pwa.document.close();\n }\n\n rotateImage = () => {\n var element = document.getElementById('mainImage');\n if (this.state.imageRotate === 0) {\n element.style.cssText = 'transform:rotate(180deg)';\n this.setState({ imageRotate: 180 });\n } else {\n this.clearRotate()\n }\n }\n\n clearRotate = () => {\n var element = document.getElementById('mainImage');\n element.style.cssText = 'transform:rotate(0deg)';\n this.setState({ imageRotate: 0 });\n }\n\n numberWithCommas = (x) => {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n }\n\n render() {\n\n \n\n return (\n\n
\n
\n
\n
\n { this.state.isFrontLoaded ?\n check front this.setState({ isFrontShown: true, rotateImage: 0 }, this.clearRotate)} title='Click to view in main window' /> :\n \n }\n { this.state.isBackLoaded ?\n check back this.setState({ isFrontShown: false, rotateImage: 0 }, this.clearRotate)} title='Click to view in main window' /> :\n \n }\n\n
Account: {this.state.accountNumber}
\n
Posting Date: {this.state.postingDateAlt}
\n
Amount: {this.state.amount}
\n {this.state.serialNumber ?
Serial Number: {this.state.serialNumber}
: null}\n
Bank Sequence: {this.state.bankSequence}
\n
\n
\n
\n this.props.hide(this.props.id)} title='Close window'/>\n
\n {this.state.isFrontLoaded && this.state.isBackLoaded ?\n check :\n \n }\n
\n \n \n \n
\n
\n
\n
: null\n )\n }\n}\n\n\nconst mapStateToProps = state => ({\n user: state.user\n});\n\nexport default compose(withRouter, connect(mapStateToProps, null))(ImagePopup);","import React, { Fragment } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSortAmountDownAlt, faSortAmountDown } from '@fortawesome/free-solid-svg-icons';\nimport { ImagePopup } from './imagePopup';\nimport { Component } from 'react';\nimport { numberWithCommas } from '../components/sharedFunctions';\n\nvar moment = require('moment'); // require\n\n\nexport class ChecksList extends Component {\n\n\n constructor(props) {\n super(props);\n this.state = {popup: null}\n }\n\n getSortIcon = (col) => {\n if (this.props.orderBy !== col) return;\n return this.props.sortAsc ? : \n }\n\n showImage = (index) => {\n this.setState({\n popup: \n })\n }\n\n hideImage = (id) => {\n this.setState({ popup: null })\n }\n\n\n\n render() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {this.props.transactions && this.props.transactions.length > 0 ? this.props.transactions.map((t, index) =>\n this.showImage(index)}>\n \n \n \n \n \n \n ) :\n \n \n \n\n }\n \n
Item count: {numberWithCommas(this.props.transactions.length)}
Item # this.props.sort('IPDate')}>Paid Date {this.getSortIcon('IPDate')} this.props.sort('CPCS')}>Bank Sequence # {this.getSortIcon('CPCS')} this.props.sort('SerialNumber')}>Check Number {this.getSortIcon('SerialNumber')} this.props.sort('IPAmount')}>Amount {this.getSortIcon('IPAmount')}
{index + 1}{moment(t.IPDate).format('MM/DD/YYYY')}{t.CPCS}{t.SerialNumber}{numberWithCommas(`$${(parseFloat(t.IPAmount) * .01).toFixed(2)}`)}
No transactions found.
\n {this.state.popup}\n
\n )\n }\n}\n\nexport default ChecksList;","import React from 'react';\n\nexport const Loading = (props) => {\n return (\n
\n
\n Regions bike loading icon\n

{props.text}

\n
\n
\n\n )\n}","import React, { Component, Fragment } from 'react';\nimport SearchForm from '../components/searchForm';\nimport Debug from '../components/debug';\nimport { fetchData } from '../components/fetchData';\nimport ChecksList from '../components/checksList';\nimport { Loading } from '../components/loading';\nimport { withRouter } from 'react-router';\nimport { Layout } from '../components/Layout';\nexport class Checks extends Component {\n\n constructor(props) {\n super(props);\n this.state = { checks: [], orderBy : 'IPAmount', sortAsc : false, searching: false }\n }\n\n\n sort = (colClicked) => {\n let order = JSON.parse(JSON.stringify(this.state.orderBy));\n let dir = JSON.parse(JSON.stringify(this.state.sortAsc));\n let checks = JSON.parse(JSON.stringify(this.state.checks));\n if (colClicked === this.state.orderBy) {\n dir = !dir;\n } else {\n order = colClicked;\n dir = true;\n }\n\n checks = this.sortChecks(checks, dir, order);\n \n this.setState({ checks: checks, orderBy: order, sortAsc: dir });\n }\n\n sortChecks(checks, sortAsc, order) {\n if (sortAsc) {\n return checks.sort((a, b) => (a[order] > b[order]) ? 1 : -1);\n } else {\n return checks.sort((a, b) => (a[order] > b[order]) ? -1 : 1);\n }\n }\n\n search = (searchItems) => {\n this.setState({searching: true}, () => {\n Debug({ searchItems });\n fetchData('checks/search', 'POST', JSON.stringify(searchItems), null, null, (data) => {\n let checks = this.sortChecks(JSON.parse(data), this.state.sortAsc, this.state.orderBy);\n this.setState({ checks: checks, searching: false });\n }, () => {\n this.setState({ checks: [], searching: false })\n })\n }\n ); \n }\n\n clearTransactions = () => {\n this.setState({ checks: [], orderBy: 'IPAmount', sortAsc: false })\n }\n\n render() {\n return (\n \n \n\n

Search Image Archive for Paid Checks

\n

In order to maximize your research, please provide as much information as possible in the search criteria fields.

\n
\n \n {\n this.state.searching ? :\n \n }\n
\n
\n
\n )\n }\n}\n\n\nexport default withRouter(Checks);","import React, { Fragment } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSortAmountDownAlt, faSortAmountDown } from '@fortawesome/free-solid-svg-icons';\nimport { ImagePopup } from './imagePopup';\nimport { Component } from 'react';\nimport { numberWithCommas } from '../components/sharedFunctions';\nimport { fetchData } from './fetchData';\nimport Debug from './debug';\n\nvar moment = require('moment'); // require\n\n\nexport class DepositsList extends Component {\n\n\n constructor(props) {\n super(props);\n this.state = { popup: null, showDepositDetails:[], loading:[] }\n }\n\n getSortIcon = (col) => {\n if (this.props.orderBy !== col) return;\n return this.props.sortAsc ? : \n }\n\n showImage = (index, detailIndex) => {\n this.setState({\n popup: \n })\n }\n\n toggleShowDepositDetails = (index) => {\n let t = JSON.parse(JSON.stringify(this.props.transactions[index]));\n let body = JSON.stringify({ AccountNumber: t.AccountNumber, IPDate: t.IPDate, CPCS: t.CPCS, IPAmount: t.IPAmount });\n let values = JSON.parse(JSON.stringify(this.state.showDepositDetails));\n let loading = JSON.parse(JSON.stringify(this.state.loading));\n values[index] = values[index] ? false : true;\n loading[index] = true;\n this.setState({ showDepositDetails: values, loading:loading }, () => {\n fetchData('deposits/items', 'POST', body, null, null, (items) => {\n Debug({items})\n loading[index] = false;\n t.DepositItems = JSON.parse(items);\n this.props.updateTransaction(index, t);\n this.setState({ loading: loading })\n\n }, () => {\n loading[index] = false;\n values[index] = false;\n this.setState({ showDepositDetails: values, loading: loading })\n })\n\n })\n \n }\n\n hideImage = (id) => {\n this.setState({ popup: null })\n }\n\n\n render() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {this.props.transactions && this.props.transactions.length > 0 ? this.props.transactions.map((t, index) =>\n \n this.toggleShowDepositDetails(index)}>\n \n \n \n \n \n {\n this.state.showDepositDetails[index] ?\n this.state.loading[index] ?\n \n \n :\n t.DepositItems.map((d, dIndex) =>\n this.showImage(index, dIndex)}>\n \n \n \n \n \n )\n : null\n }\n \n ) :\n \n \n \n\n }\n \n
Item count: {numberWithCommas(this.props.transactions.length)}
Item # this.props.sort('IPDate')}>Deposit Date {this.getSortIcon('IPDate')} this.props.sort('CPCS')}>Bank Sequence # {this.getSortIcon('CPCS')} this.props.sort('IPAmount')}>Amount {this.getSortIcon('IPAmount')}
{index + 1}{moment(t.IPDate).format('MM/DD/YYYY')}{t.CPCS}{numberWithCommas(`$${(parseFloat(t.IPAmount) * .01).toFixed(2)}`)}
Loading...
{d.Description}{d.CPCS}{d.Description === 'Deposit Ticket' ? '' : numberWithCommas(`$${(parseFloat(d.Amount) * .01).toFixed(2)}`)}
No transactions found.
\n {this.state.popup}\n
\n )\n }\n}\n\nexport default DepositsList;","import React, { Component, Fragment } from 'react';\nimport SearchForm from '../components/searchForm';\nimport Debug from '../components/debug';\nimport { fetchData } from '../components/fetchData';\nimport DepositsList from '../components/depositsList';\nimport { Loading } from '../components/loading';\nimport { withRouter } from 'react-router';\nimport { Layout } from '../components/Layout';\nexport class Deposits extends Component {\n\n constructor(props) {\n super(props);\n this.state = { deposits: [], orderBy: 'IPAmount', sortAsc: false, searching: false }\n }\n\n sort = (colClicked) => {\n let order = JSON.parse(JSON.stringify(this.state.orderBy));\n let dir = JSON.parse(JSON.stringify(this.state.sortAsc));\n let deposits = JSON.parse(JSON.stringify(this.state.deposits));\n if (colClicked === this.state.orderBy) {\n dir = !dir;\n } else {\n order = colClicked;\n dir = true;\n }\n\n deposits = this.sortdeposits(deposits, dir, order);\n\n this.setState({ deposits: deposits, orderBy: order, sortAsc: dir });\n }\n\n sortdeposits(deposits, sortAsc, order) {\n if (sortAsc) {\n return deposits.sort((a, b) => (a[order] > b[order]) ? 1 : -1);\n } else {\n return deposits.sort((a, b) => (a[order] > b[order]) ? -1 : 1);\n }\n }\n\n search = (searchItems) => {\n this.setState({ searching: true }, () => {\n Debug({ searchItems });\n fetchData('deposits/search', 'POST', JSON.stringify(searchItems), null, null, (data) => {\n let deposits = this.sortdeposits(JSON.parse(data), this.state.sortAsc, this.state.orderBy);\n this.setState({ deposits: deposits, searching: false });\n }, () => {\n this.setState({ deposits: [], searching: false })\n })\n }\n );\n }\n\n clearTransactions = () => {\n this.setState({ deposits: [], orderBy: 'IPAmount', sortAsc: false })\n }\n\n updateTransaction = (index, t) => {\n Debug({ Items: t.DepositItems });\n let currentDeposits = JSON.parse(JSON.stringify(this.state.deposits));\n currentDeposits[index] = t;\n this.setState({ deposits: currentDeposits });\n }\n\n render() {\n return (\n \n \n

Search Image Archive for Deposits

\n

In order to maximize your research, please provide as much information as possible in the search criteria fields.

\n
\n \n {\n this.state.searching ? :\n \n }\n
\n
\n
\n )\n }\n}\n\n\n\nexport default withRouter(Deposits);\n\n\n","import React, { Component, Fragment } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSortAmountDownAlt, faSortAmountDown } from '@fortawesome/free-solid-svg-icons';\nimport { getToken } from './fetchData';\nimport { Loading } from './loading';\n\nexport class FilesList extends Component {\n constructor(props) {\n super(props);\n this.state = { downloadBlobUrl: null, downloadFileName: '', downloading: false }\n }\n \n getSortIcon = (col) => {\n if (this.props.orderBy !== col) return;\n return this.props.sortAsc ? : \n }\n\n downloadFile = (bulkfile) => {\n let dlFileName = bulkfile.FileName.substring(bulkfile.FileName.lastIndexOf('/') + 1);\n console.log(dlFileName)\n this.setState({\n downloading: true, downloadFileName: dlFileName\n }, () => {\n let request = { Filename: bulkfile.FileName, YearMonth: `${this.props.yearMonth}` }\n let token = getToken();\n const options = {\n method: 'POST',\n body: JSON.stringify(request),\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${token}`,\n 'SSO_ID': process.env.REACT_APP_SSO_ID\n }\n };\n fetch('downloads/file', options)\n .then(res => res.blob())\n .then(blob => {\n \n\n // IE & Edge fix for downloading blob files, gives option to save or open the file when the link is opened.\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n var fileName = this.state.downloadFileName.replace(/^.*[\\\\\\/]/, '');\n window.navigator.msSaveOrOpenBlob(blob, fileName);\n } else {\n var url = window.URL.createObjectURL(blob);\n this.setState({ downloadBlobUrl: url })\n var a = document.getElementById('hiddenDownloadLink');\n a.click();\n window.URL.revokeObjectURL(url);\n \n }\n this.setState({ downloadBlobUrl: null, downloadFileName: '', downloading: false })\n });\n })\n\n }\n\n render() {\n return (\n \n \n {this.state.downloading?\n :\n \n\n \n \n \n \n \n \n \n \n \n {this.props.zipFiles && this.props.zipFiles.length > 0 ? this.props.zipFiles.map((z, index) =>\n \n this.downloadFile(z)}>\n \n \n \n \n \n \n ) : \n \n }\n \n
this.props.sort('AccountNumber')}>Account # {this.getSortIcon('AccountNumber')} this.props.sort('FileName')}>Filename {this.getSortIcon('FileName')} this.props.sort('FileSize')}>Size {this.getSortIcon('FileSize')} this.props.sort('ItemCount')}>Items {this.getSortIcon('ItemCount')}
{z.AccountNumber}{z.FileName.replace(/^.*[\\\\\\/]/, '')}{z.FileSize}{z.ItemCount}
No files found.
\n }\n
\n )\n }\n}","import React, { Component } from 'react';\nimport Select from 'react-select';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSearch, faUndoAlt } from '@fortawesome/free-solid-svg-icons';\nimport Debug from '../components/debug';\nimport { fetchData } from '../components/fetchData';\nimport { withRouter } from 'react-router';\nimport { connect } from 'react-redux';\nimport { compose } from 'redux';\n\nconst selectStyles = {\n option: (provided, state) => ({\n ...provided,\n color: state.isSelected ? '#fff' : '#777',\n backgroundColor: state.isSelected ? '#88bd40' : '#fff',\n ':hover': {\n color: '#66a326',\n backgroundColor: '#c2dd9e',\n }\n }),\n input: (styles) => ({\n ...styles,\n height: '34px !important',\n outline: 'none !important',\n borderColor: \"#88bd40\",\n ':hover': {\n borderColor: 'hsl(0,0%,80%) !important',\n borderWidth: '1px !important',\n boxShadow: 'none !important',\n },\n ':focus': {\n borderColor: 'hsl(0,0%,80%) !important',\n borderWidth: '1px !important',\n boxShadow: 'none !important',\n }\n }),\n control: (styles) => ({\n ...styles,\n height: '34px !important',\n outline: 'none !important',\n boxShadow: 'none',\n borderColor: 'hsl(0,0%,80%) !important',\n ':hover': {\n border: '1px solid hsl(0,0%, 80 %) !important',\n borderColor: 'hsl(0,0%,80%) !important',\n borderWidth: '1px !important',\n boxShadow: 'none !important',\n },\n ':focus': {\n borderColor: 'hsl(0,0%,80%) !important',\n borderWidth: '1px !important',\n boxShadow: 'none !important',\n }\n })\n}\nconst defaultState = {\n loading: true, MonthlyOptions: [], selectedText: '', formValues: {\n MonthYear: ''\n }\n}\n\nexport class DownloadSearchform extends Component {\n\n constructor(props) {\n super(props);\n this.state = this.getDefaultState();\n }\n\n componentDidMount() {\n fetchData('downloads/months', 'GET', null, null, null, (data) => {\n var options = JSON.parse(data);\n this.setState({ MonthlyOptions: options, loading: false }, () => Debug({ MonthlyOptions: this.state.MonthlyOptions }));\n }, null);\n }\n\n getDefaultState = () => {\n return JSON.parse(JSON.stringify(defaultState));\n }\n\n\n populateMonths(search) {\n if (search) {\n return this.state.MonthlyOptions.filter(i => i.label.toLowerCase().includes(search.toLowerCase()))\n }\n else {\n return this.state.MonthlyOptions;\n }\n\n }\n\n promiseOptions = (inputValue) =>\n new Promise(resolve => {\n setTimeout(() => {\n resolve(this.populateMonths(inputValue));\n }, 1000);\n });\n\n performSearch = () => {\n var searchValues = Object.assign({}, this.state.formValues);\n this.props.search(searchValues.MonthYear);\n }\n\n clearAll = () => {\n var formdata = JSON.parse(JSON.stringify(this.state.formValues));\n formdata.MonthYear = '';\n this.setState({ formValues: formdata, selectedText: '' }, this.props.clearFiles)\n }\n\n\n handleSelectChange = (propName, value) => {\n Debug({selectChanged:value})\n let currentState = this.state.formValues;\n currentState[propName] = value.value;\n this.setState({ formValues: currentState, selectedText: value.label }, () => Debug({ formValues: this.state.formValues, selectedText: this.state.selectedText }))\n }\n\n render() {\n return (\n
\n
\n
Monthly Files:
\n
\n this.handleSelectChange('MonthYear', e)}\n />\n\n
\n
\n
\n
\n
Clear
\n
Search
\n
\n
\n )\n }\n}\n\n\nconst mapStateToProps = state => ({\n user: state.user\n});\n\n\nexport default compose(withRouter, connect(mapStateToProps, null))(DownloadSearchform);","import React, { Fragment, Component } from 'react';\nimport { FilesList } from '../components/filesList';\nimport Debug from '../components/debug';\nimport { fetchData } from '../components/fetchData';\nimport DownloadSearchform from '../components/downloadSearchForm';\nimport { withRouter } from 'react-router';\nimport { Loading } from '../components/loading';\nimport { Layout } from '../components/Layout';\n\nexport class Downloads extends Component {\n\n constructor(props) {\n super(props);\n this.state = { zipFiles: [], orderBy: 'Filename', sortAsc: true, searching: false, yearMonth: '' }\n }\n\n sort = (colClicked) => {\n let order = JSON.parse(JSON.stringify(this.state.orderBy));\n let dir = JSON.parse(JSON.stringify(this.state.sortAsc));\n let zipFiles = JSON.parse(JSON.stringify(this.state.zipFiles));\n if (colClicked === this.state.orderBy) {\n dir = !dir;\n } else {\n order = colClicked;\n dir = true;\n }\n\n zipFiles = this.sortzipFiles(zipFiles, dir, order);\n\n this.setState({ zipFiles: zipFiles, orderBy: order, sortAsc: dir });\n }\n\n sortzipFiles(zipFiles, sortAsc, order) {\n if (sortAsc) {\n return zipFiles.sort((a, b) => (a[order] > b[order]) ? 1 : -1);\n } else {\n return zipFiles.sort((a, b) => (a[order] > b[order]) ? -1 : 1);\n }\n }\n\n search = (monthYear) => {\n this.setState({ searching: true }, () => {\n Debug({ searching: monthYear });\n fetchData('downloads/search', 'POST', JSON.stringify({ value: monthYear, label: monthYear }), null, null, (data) => {\n let zipfiles = this.sortzipFiles(JSON.parse(data), this.state.sortAsc, this.state.orderBy);\n this.setState({ zipFiles: zipfiles, searching: false, yearMonth: monthYear });\n }, () => this.setState({ searching: false }))\n })\n }\n\n clearFiles = () => {\n this.setState({ zipFiles: [], orderBy: 'Filename', sortAsc: true })\n }\n\n render() {\n return (\n \n \n

Search for Available Monthly Files

\n

Select a month and year to view.

\n
\n \n {this.state.searching ?\n :\n \n\n }\n
\n\n
\n
\n )\n }\n}\n\n\nexport default withRouter(Downloads);\n","import React from 'react';\n\nexport const LoginError = (props) => {\n return (\n
\n
\n error icon\n

Login Error

\n

An error occurred and your login request could not be completed.

\n
\n
\n\n )\n}","import configuration from './readConfig';\n\n// Commenting the following lines as the values will be read from OCP config file\n\n// const CLIENT_ID = process.env.REACT_APP_CLIENT_ID || '{clientId}';\n// const ISSUER = process.env.REACT_APP_ISSUER || 'https://{yourOktaDomain}.com/oauth2/default';\n// const OKTA_TESTING_DISABLEHTTPSCHECK = process.env.OKTA_TESTING_DISABLEHTTPSCHECK || false;\n// const REDIRECT_URI = `${window.location.origin}/Account/OktaLogin`;\n// const USE_OKTA = process.env.REACT_APP_USEOKTA === 'true';\n\nconst CLIENT_ID = configuration.react_app_client_id || '{clientId}';\nconst ISSUER = configuration.react_app_issuer || 'https://{yourOktaDomain}.com/oauth2/default';\nconst OKTA_TESTING_DISABLEHTTPSCHECK = false;\nconst REDIRECT_URI = `${window.location.origin}/Account/OktaLogin`;\nconst LOGOUT_URI = configuration.react_app_logout_uri;\nconst USE_OKTA = configuration.react_app_useokta === 'true';\n\n\n//const REDIRECT_URI = `https://checkimage.regionstest.com/Account/OktaLogin`;\n// console.log ('CLIENT_ID values from config: ', CLIENT_ID );\n// console.log ('Issuer values from config: ', ISSUER );\n// console.log ('REDIRECT_URI values from config: ', REDIRECT_URI );\nconsole.log ('USE_OKTA values from config: ', USE_OKTA );\nconsole.log ('Value from secrets: ', process.env.REACT_APP_CLIENT_SECRET);\n\n\nlet USE_INTERACTION_CODE = false;\nif (process.env.USE_INTERACTION_CODE === 'true') {\n USE_INTERACTION_CODE = true;\n}\n\nexport default {\n oidc: {\n clientId: CLIENT_ID,\n issuer: ISSUER,\n redirectUri: REDIRECT_URI,\n scopes: ['openid', 'cci'],\n pkce: true,\n disableHttpsCheck: OKTA_TESTING_DISABLEHTTPSCHECK === true,\n useInteractionCode: USE_INTERACTION_CODE === true,\n responseMode: 'query',\n postLogoutRedirectUri: LOGOUT_URI\n },\n USE_OKTA: USE_OKTA\n};\n","import React, { Component } from 'react';\nimport { fetchData } from '../components/fetchData';\nimport { withRouter } from 'react-router';\nimport Select from 'react-select';\nimport { Loading } from '../components/loading';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport Debug from '../components/debug';\nimport { faSave, faSquare, faCheckSquare, faTrashAlt } from '@fortawesome/free-regular-svg-icons';\nimport jwt from 'jwt-decode';\nimport { updateUser } from '../redux/actions';\nimport { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport { withOktaAuth } from '@okta/okta-react';\nimport config from '../config';\n\n\nconst selectStyles = {\n option: (provided, state) => ({\n ...provided,\n color: state.isSelected ? '#fff' : '#777',\n backgroundColor: state.isSelected ? '#88bd40' : '#fff',\n ':hover': {\n color: '#66a326',\n backgroundColor: '#c2dd9e',\n }\n }),\n input: (styles) => ({\n ...styles,\n height: '34px !important',\n outline: 'none !important',\n borderColor: \"#88bd40\",\n\n\n ':hover': {\n borderColor: 'hsl(0,0%,80%) !important',\n borderWidth: '1px !important',\n boxShadow: 'none !important',\n },\n ':focus': {\n borderColor: 'hsl(0,0%,80%) !important',\n borderWidth: '1px !important',\n boxShadow: 'none !important',\n }\n }),\n control: (styles) => ({\n ...styles,\n height: '34px !important',\n outline: 'none !important',\n boxShadow: 'none',\n borderColor: 'hsl(0,0%,80%) !important',\n ':hover': {\n border: '1px solid hsl(0,0%, 80 %) !important',\n borderColor: 'hsl(0,0%,80%) !important',\n borderWidth: '1px !important',\n boxShadow: 'none !important',\n },\n ':focus': {\n borderColor: 'hsl(0,0%,80%) !important',\n borderWidth: '1px !important',\n boxShadow: 'none !important',\n }\n })\n}\nconst PermissionsEnum = {\n None: -1,\n Checks: 1,\n Deposits: 2,\n Download: 4\n}\n\n\nexport class ProvisionUser extends Component {\n _isMounted = false;\n\n constructor(props) {\n super(props);\n this.state = { editUser: null, loading: true, saving: false }\n this.performSearch = this.performSearch.bind(this);\n this.fetchUser = this.fetchUser.bind(this);\n this.saveUser = this.saveUser.bind(this);\n this.processToken = this.processToken.bind(this);\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (sessionStorage.getItem('cci_token') == null) {\n const query = new URLSearchParams(this.props.location.search);\n const token = query.get('token')\n if (token) { this.processToken(token); }\n else {\n this.fetchUser();\n }\n } else {\n Debug({ params: this.props.params })\n var id = window.location.pathname.split(\"/\").pop();\n this.performSearch(id);\n }\n }\n\n processToken = (token) => {\n sessionStorage.setItem('cci_token', null);\n sessionStorage.setItem('cci_token', token);\n Debug({ token });\n let user = jwt(token);\n Debug({ user })\n user.Token = token;\n user.Id = user.unique_name;\n\n var isRegions = user.IsRegions === 'true';\n user.IsRegions = isRegions;\n //set session state\n sessionStorage.setItem('cci_user', null);\n sessionStorage.setItem('cci_user', JSON.stringify(user));\n\n //this.props.updateUser(user).then(() => {\n Debug({ params: this.props.params })\n //var id = this.props.match.params.onePassId;\n var id = window.location.pathname.split(\"/\").pop()\n this.performSearch(id);\n //})\n\n\n }\n\n fetchUser = () => {\n\n\n if (this._isMounted) {\n\n var url = config.USE_OKTA ? 'Authentication/okta' : 'Authentication';\n if (this._isMounted) fetchData(url, \"GET\", null, null, \"Unable to authenticate user.\", (data) => {\n let token = data;\n if (data == null || data === undefined) {\n sessionStorage.setItem('cci_token', null);\n this.props.history.push('/logout');\n return;\n }\n this.processToken(token);\n\n }, () => {\n Debug(\"foo\")\n this.props.history.push('/');\n }, this.props.oktaAuth?.getIdToken())\n }\n }\n\n handleChange = (e) => {\n let currentState = this.state.editUser;\n currentState[e.target.name] = e.target.value;\n this.setState({ editUser: currentState })\n }\n\n performSearch = (onePassId) => {\n this.setState({ loading: true }, () => {\n let url = `users/${onePassId}`;\n fetchData(url, 'GET', null, null, null, (data) => {\n Debug({ data });\n var user = JSON.parse(data);\n user.User.UserAccount.forEach(a => {\n a.Permissions = this.getPermissions(a.PermissionId);\n });\n user.User.UserAccount.sort((a, b) => (a.Account > b.Account) ? 1 : -1);\n Debug({user})\n this.setState({ editUser: user, loading: false });\n }, null, null);\n })\n \n }\n\n saveUser = () => {\n let u = JSON.parse(JSON.stringify(this.state.editUser));\n Debug({ userToSave: u })\n let uu = JSON.parse(sessionStorage.getItem('cci_user'));\n Debug({ requestingUser: uu })\n uu.UserName =uu.Id;\n let userRequest = JSON.stringify({ User: u, RequestingUser: uu});\n this.setState({ saving: true }, () => {\n fetchData('users/update', 'POST', JSON.stringify(userRequest), null, null, () => {\n this.setState({ saving: false })\n }, () => this.setState({ saving: false }))\n })\n }\n\n handleSelectChange = (value, index) => {\n Debug({ value })\n let u = JSON.parse(JSON.stringify(this.state.editUser));\n u.User.UserAccount[index].Permissions = value?.sort((a, b) => (a.value > b.value) ? 1 : -1);\n let ids = [0];\n if (u.User.UserAccount[index].Permissions) {\n u.User.UserAccount[index].Permissions.forEach(x => ids.push(x.value));\n }\n let permId = ids.reduce(function (a, b) {\n return a + b;\n })\n u.User.UserAccount[index].PermissionId = permId\n this.setState({ editUser: u }, () => {\n Debug({ editUser: this.state.editUser })\n })\n }\n\n getPermissions = (p) => {\n var results = [];\n if (p & PermissionsEnum.Checks) results.push({ value: 1, label: 'VIEW PAID CHECKS' });\n if (p & PermissionsEnum.Deposits) results.push({ value: 2, label: 'VIEW DEPOSITS' });\n if (p & PermissionsEnum.Download) results.push({ value: 4, label: 'DOWNLOAD FILES' });\n return results;\n }\n\n render() {\n let permissionOptions = [\n { value: 1, label: 'VIEW PAID CHECKS' },\n { value: 2, label: 'VIEW DEPOSITS' },\n { value: 4, label: 'DOWNLOAD FILES' },\n ]\n\n return (\n this.state.loading || this.state.saving ?\n :\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n {this.state.editUser.User.UserAccount.map((u, index) => \n \n \n \n \n )}\n \n \n
{this.state.editUser.User.FirstName} {this.state.editUser.User.LastName}
{\n let currentState = this.state.editUser;\n currentState.User.IsAdmin = !this.state.editUser.User.IsAdmin;\n this.setState({ editUser: currentState })\n }} >Is Admin {this.state.editUser.User.IsAdmin ? : }
Account NumberAccount Permissions
{u.Account === -1 ? 'All' : u.Account} null}\n closeMenuOnSelect={false}\n name={'PermissionId'}\n options={permissionOptions}\n styles={selectStyles}\n value={u.Permissions}\n placeholder={''}\n onChange={(e) => this.handleSelectChange(e, index)}\n isSearchable={false}\n />
\n
\n
\n
Save User
\n
\n
\n );\n }\n}\n\n\n\nconst mapStateToProps = state => ({\n user: state.user\n});\n\nconst mapDispatchToProps = {\n updateUser\n}\n\nexport default withOktaAuth(compose(withRouter, connect(mapStateToProps, mapDispatchToProps))(ProvisionUser));\n\n","import React, { Component, } from 'react';\nimport { withRouter } from 'react-router';\nimport '../custom.css'\nimport { fetchData } from '../components/fetchData';\nimport Debug from '../components/debug';\nimport jwt from 'jwt-decode';\nimport { Loading } from '../components/loading';\nimport { updateUser } from '../redux/actions';\nimport { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport { isOnePassId } from '../components/sharedFunctions';\nimport { Redirect } from \"react-router-dom\";\nimport { LoginError } from './loginError';\nimport { withOktaAuth } from '@okta/okta-react';\nimport config from '../config';\nimport { toRelativeUrl } from '@okta/okta-auth-js';\n\nexport class Login extends Component {\n _isMounted = false;\n\n constructor(props) {\n super(props);\n this.state = { userIsLoaded: false, accountsAreLoaded: false, isError: false}\n this.fetchUser = this.fetchUser.bind(this);\n this.deleteCookie = this.deleteCookie.bind(this);\n this.getCookie = this.getCookie.bind(this);\n }\n\n componentDidMount() {\n this._isMounted = true;\n this.fetchUser()\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n deleteCookie = (name) => {\n document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';\n }\n\n getCookie = (name) => {\n // Split cookie string and get all individual name=value pairs in an array\n var cookieArr = document.cookie.split(\";\");\n\n // Loop through the array elements\n for (var i = 0; i < cookieArr.length; i++) {\n var cookiePair = cookieArr[i].split(\"=\");\n\n /* Removing whitespace at the beginning of the cookie name\n and compare it with the given string */\n if (name == cookiePair[0].trim()) {\n // Decode the cookie value and return\n return decodeURIComponent(cookiePair[1]);\n }\n }\n\n // Return null if not found\n return null;\n }\n\n fetchUser = () => {\n\n\n if (this._isMounted && this.state.userIsLoaded === false) {\n\n //var id = this.props.match.params.onePassId;\n //Debug(`fetching user ${id}...`)\n //var url = isOnePassId(this.props.match.params.onePassId) ? `Authentication/${id}` : 'Authentication';\n var url = config.USE_OKTA ? 'Authentication/okta' : 'Authentication';\n if (this._isMounted) fetchData(url, \"GET\", null, null, \"Unable to authenticate user.\", (data) => {\n let token = data;\n if (data == null || data === undefined) {\n sessionStorage.setItem('cci_token', null);\n this.props.history.push('/logout');\n return;\n }\n sessionStorage.setItem('cci_token', null);\n sessionStorage.setItem('cci_token', token);\n let user = jwt(token);\n user.Token = token;\n user.Id = user.unique_name;\n var isRegions = user.IsRegions === 'true';\n user.IsRegions = isRegions;\n this.setState({ userIsLoaded: true }, this.fetchAccounts(user))\n }, () => {\n this.props.history.push('/login/error');\n }, this.props.oktaAuth?.getIdToken())\n\n }\n }\n\n\n fetchAccounts = (user) => {\n //fetch deposit accounts\n fetchData('accounts/paid', 'GET', null, null, null, (data) => {\n user.PaidAccounts = JSON.parse(data);\n //fetch deposit accounts\n fetchData('accounts/deposits', 'GET', null, null, null, (data) => {\n user.DepositAccounts = JSON.parse(data);\n this.setState({ accountsAreLoaded: true }, () => {\n //set session state\n sessionStorage.setItem('cci_user', null);\n sessionStorage.setItem('cci_user', JSON.stringify(user));\n //update redux user\n this.props.updateUser(user).then(() => {\n //update url\n this.props.history.replace(toRelativeUrl('/', window.location.origin));\n //set loaded state\n })\n })\n }, null, null)\n }, null, null)\n }\n\n render() {\n return (\n this.state.isError ?\n :\n \n \n )\n }\n}\n\nconst mapStateToProps = state => ({\n user: state.user\n});\n\nconst mapDispatchToProps = {\n updateUser\n}\n\nexport default withOktaAuth(compose(withRouter, connect(mapStateToProps, mapDispatchToProps))(Login));","import React, { Component, } from 'react';\nimport { withRouter } from 'react-router';\nimport { updateUser } from '../redux/actions';\nimport { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport { withOktaAuth } from '@okta/okta-react';\nimport '../custom.css'\n\nexport class Logout extends Component {\n\n componentDidMount() {\n sessionStorage.setItem('cci_token', null);\n sessionStorage.setItem('cci_user', null);\n this.props.oktaAuth.tokenManager.clear();\n window.opener = null;\n window.open('', '_self');\n window.close();\n this.props.updateUser({})\n }\n\n render() {\n return (\n
\n
\n Regions logo\n

Successfully Logged Out

\n
\n
\n )\n }\n}\n\n\nconst mapStateToProps = state => ({\n user: state.user\n});\n\nconst mapDispatchToProps = {\n updateUser\n}\n\nexport default withOktaAuth(compose(withRouter, connect(mapStateToProps, mapDispatchToProps))(Logout));\n\n","import React, { Component, } from 'react';\nimport { withRouter } from 'react-router';\nimport { updateUser } from '../redux/actions';\nimport { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport '../custom.css'\n\nexport class Unauthenticated extends Component {\n\n\n render() {\n return (\n
\n
\n Regions logo\n

Not Authenticated

\n
\n
\n )\n }\n}\n\n\nconst mapStateToProps = state => ({\n user: state.user\n});\n\nconst mapDispatchToProps = {\n updateUser\n}\n\nexport default compose(withRouter, connect(mapStateToProps, mapDispatchToProps))(Unauthenticated);\n\n","import React, { Component, Fragment, useEffect } from 'react';\nimport { Route, withRouter, Switch } from 'react-router';\n\nimport { Home } from './components/Home';\nimport './custom.css'\nimport { Checks } from './pages/checks';\nimport { Deposits } from './pages/deposits';\nimport { Downloads } from './pages/downloads';\nimport { LoginError } from './pages/loginError';\nimport { ProvisionUser } from './pages/provisionUser';\nimport { updateUser } from './redux/actions';\nimport { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport Login from './pages/login';\nimport Debug from './components/debug';\nimport Logout from './pages/logout';\nimport { Unauthenticated } from './pages/unauthenticated';\nimport { Security, useOktaAuth, LoginCallback, SecureRoute } from '@okta/okta-react';\nimport config from './config';\nimport { OktaAuth, toRelativeUrl } from '@okta/okta-auth-js';\nimport { useHistory } from 'react-router-dom';\n\n\nconst nonRedirectUrls = [\n '/account/onepasslogin',\n '/logout',\n '/login/error',\n '/Account/OktaLogin'\n];\n\nexport class App extends Component {\n\n oktaAuth = new OktaAuth(config.oidc);\n\n constructor(props) {\n super(props);\n }\n\n // returns true if we should redirect from current page to the onepasslogin page to set user data.\n shouldRedirect() {\n return (\n (this.props.user === undefined || this.props.user === null) &&\n !nonRedirectUrls.includes(this.props.history.location.pathname)\n );\n }\n\n componentDidMount() {\n // if (this.shouldRedirect()) {\n // this.props.history.push('/account/onepasslogin');\n // }\n if ((sessionStorage.getItem('cci_token') !== this.props.user?.Token) || !this.props.user?.Token) {\n this.getUser();\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n // if (this.shouldRedirect()) {\n // this.props.history.push('/account/onepasslogin');\n // }\n if (prevProps.user?.Token !== this.props.user?.Token) {\n Debug({ prev: prevProps.user, now: this.props.user });\n if ((sessionStorage.getItem('cci_token') !== this.props.user?.Token) || !this.props.user?.Token) {\n this.getUser();\n }\n }\n }\n \n onAuthResume = () => {\n this.props.history.push('/login');\n };\n \n restoreOriginalUri = (oktaAuth, originalUri) => {\n if (originalUri.includes('/users/viewuser/')) {\n this.props.history.replace(toRelativeUrl(originalUri, window.location.origin));\n }\n else {\n this.props.history.replace(toRelativeUrl('/account/onepasslogin', window.location.origin));\n }\n };\n\n getUser = () => {\n let sessionUser = sessionStorage.getItem('cci_user');\n Debug({ sessionUser })\n let parsedUser = JSON.parse(sessionUser);\n this.props.updateUser(parsedUser);\n } \n\n render () {\n return (\n config.USE_OKTA ?\n \n \n \n } />\n } />\n } /> \n } /> \n } />\n } />\n } /> \n } />\n } />\n \n \n \n :\n \n \n } />\n } />\n } /> \n } /> \n } />\n } />\n } /> \n } />\n } />\n \n \n );\n }\n}\n\nconst mapStateToProps = state => ({\n user: state.user\n});\n\nconst mapDispatchToProps = {\n updateUser\n}\n\nexport default compose(withRouter, connect(mapStateToProps, mapDispatchToProps))(App);\n//export default App;","import { combineReducers, createStore, applyMiddleware } from 'redux';\nimport { userReducer } from './actions.js';\nimport thunk from 'redux-thunk';\n\nexport const reducers = combineReducers({\n user: userReducer\n});\n\nexport const store = createStore(\n reducers,\n applyMiddleware(thunk)\n);\n\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter, Switch } from 'react-router-dom';\nimport App from './App';\nimport { Provider } from 'react-redux'\nimport { store } from './redux/store'\nimport { ToastContainer } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\n\nrequire('react-app-polyfill/ie11');\nrequire('react-app-polyfill/stable');\nrequire('typeface-source-sans-pro');\n\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\nconst rootElement = document.getElementById('root');\n\nReactDOM.render(\n \n \n \n \n \n ,\n rootElement);\n\n\n\n"],"sourceRoot":""}