{"version":3,"sources":["Auth.js","Globals.js","components/shared/LeftMenu.js","Util.js","redux/constants/action-types.jsx","redux/actions/mainSystemAction.jsx","redux/actions/kepsSystemAction.jsx","redux/actions/sanalSinavSystemAction.jsx","layouts/AuthorizedLayout.jsx","layouts/GuestLayout.jsx","components/shared/AppRoute.js","pages/LoginPage.js","pages/RegisterPage.js","pages/AyarlarPage.js","components/shared/DuyuruTitle.js","components/shared/DuyuruItem.js","components/shared/DokumanTitle.js","components/shared/DokumanItem.js","pages/HomePage.js","pages/KayitKabulDashboard.js","components/shared/VeliDashboardTaksitTahsilatDetailView.jsx","components/OgrenciHataRapor.jsx","components/VeliDersButon.jsx","classes/DersTanim.jsx","pages/VeliDashboard.jsx","components/DersButon.jsx","pages/OgrenciDashboard.jsx","pages/OtomasyonAdminDasboard.jsx","pages/YonetimModulu/RolIslemleri.js","pages/YonetimModulu/KullaniciIslemleri.js","pages/YonetimModulu/RolEkranIslemleri.js","pages/YonetimModulu/KurumAktarmaIslemleri.js","pages/YonetimModulu/ExcelKullaniciAktar.js","pages/OtomasyonModulu/ExcelKullaniciAktar.jsx","pages/YonetimModulu/OtomasyonKullanicilari.jsx","pages/YonetimModulu/OtomasyonGenelTanimlar.jsx","pages/OtomasyonModulu/GenelTanimlar.jsx","pages/OtomasyonModulu/SubeKullanici.jsx","pages/OtomasyonModulu/Kullanici.jsx","pages/OtomasyonModulu/OgrenciIslemleri/OgrenciDetail.jsx","pages/OtomasyonModulu/OgrenciIslemleri/OgrenciKayit.jsx","pages/OtomasyonModulu/DevamsizlikIslemleri/DevamsizlikKayit.jsx","pages/OtomasyonModulu/GiderIslemleri/GiderKayit.jsx","pages/OtomasyonModulu/OdevVeEtutIslemleri/OdevTanim.jsx","pages/OtomasyonModulu/OdevVeEtutIslemleri/EtutTanim.jsx","pages/SinavModulu/YayinIslemleri.js","pages/SinavModulu/YayineviKullaniciIslemleri.js","pages/SinavIslemleri/OptikFormTanimi.js","pages/SinavIslemleri/SinavTanimi.js","pages/SinavIslemleri/CevapAnahtariTanimi.js","pages/SinavIslemleri/SinavGonderimi.js","pages/KurumIslemleri/KurumEkle.js","pages/SinavModulu/DokumanIslemleri.js","pages/SinavModulu/DuyuruIslemleri.js","pages/SinavModulu/OgrenciVeliAktarma.js","pages/OgrenciModulu/OgrenciSinavSonuclari.js","pages/OtomasyonModulu/RaporIslemleri/KurumToplamTaksitRaporu.jsx","pages/OtomasyonModulu/RaporIslemleri/KurumTaksitTahsilatRaporu.jsx","pages/OtomasyonModulu/RaporIslemleri/KurumTaksitTahsilatDurumRaporu.jsx","pages/OtomasyonModulu/RaporIslemleri/KurumTahsilatRaporu.jsx","pages/OtomasyonModulu/RaporIslemleri/KurumPesinatRaporu.jsx","pages/OgrenciSinavSonucPage.jsx","pages/EduAsistOgrenciLoginPage.js","pages/EduAsistVeliLoginPage.js","pages/OtomasyonModulu/InteraktifIslemler/MobilKutuphane.jsx","pages/OtomasyonModulu/InteraktifIslemler/AkilliTahta.jsx","pages/OtomasyonModulu/InteraktifIslemler/VideoCozum.jsx","pages/CrmModulu/CrmGorevTuru.jsx","pages/CrmModulu/Crm.jsx","pages/SanalSinavModulu/SanalOptikPage.jsx","layouts/MobileLayout.jsx","pages/MobilModulu/Index.jsx","pages/MobilModulu/DevamsizlikFilterPage.jsx","pages/OtomasyonModulu/RaporIslemleri/KurumGiderRaporu.jsx","routes.js","redux/reducers/mainSystemReducer.jsx","redux/reducers/kepsSystemReducer.jsx","redux/reducers/sanalSinavSystemReducer.jsx","redux/reducers/index.jsx","index.js"],"names":["constructor","this","authenticated","menuler","AdSoyad","login","cb","logout","isAuthenticated","Globals","props","isInitilazedLocalStorege","localStorage","getItem","undefined","setItem","isInitialized","session","window","location","href","throwIfNotInitialized","JSON","stringify","parse","currentSession","getSession","publicSession","public","service","Error","localStoregeData","setSession","LeftMenu","React","super","menuClick","event","itemData","Href","history","push","treeViewRef","selectedNodes","getSelectedNodes","treeView","current","instance","render","stylingMode","displayExpr","dataStructure","onItemClick","items","Menu","width","searchmode","searchEnabled","selectionMode","parentIdExpr","keyExpr","ref","expandEvent","selectedItem","withRouter","authApi","ayarlar","type","localauth","prodauth","sinavApi","localsinav","prodsinav","karneApi","localkarne","prodkarne","otomasyonApi","localotomasyon","prodotomasyon","crmApi","localcache","prodcache","localcrm","prodcrm","sinavRealApi","localOlusturulanListeKarneDosyasi","prodOlusturulanListeKarneDosyasi","localDokumanUrl","prodDokumanUrl","yayinGatewayUrl","yayinSinavApi","yayinKarneApi","errorMessageWithKonum","msg","konum","errorMessage","isEmpty","obj","key","hasOwnProperty","sendRequest","url","method","data","a","post","headers","Token","then","res","Success","ErrorMessage","catch","err","parameters","loadx","loadOptions","params","forEach","i","value","slice","get","response","totalCount","notify","GetStore","primaryKey","tabloAdi","loadUrl","insertUrl","updateUrl","deleteUrl","DataSource","store","CustomStore","cacheRawData","load","insert","values","tablo","update","remove","onBeforeSend","ajaxOptions","MainSystemActionTypes","KepsSystemActionTypes","SanalSinavSystemActionTypes","setRemoteSystemInfo","info","payload","setKepsSystemShortCodes","shortCodes","setSanalSinavSystemInfo","kisaYollar","AuthorizedLayout","onInitializedToolbar","bind","onInitializedFormDonemSecimi","gridSinavaKatilanOgrenciler","state","onOpen","vposition","mainConnected","remoteSystem","connectionState","actionType","popup","acikRizaBeyaniPopup","popupDonemSecim","popupSms","popupDonemArasi","donemGecisDisabled","telefon","document","title","sistemAdi","toolbar","formDonemSecimi","formDonemData","DonemId","KullaniciId","Kullanici","Id","formSmsData","Telefon","Mesaj","remoteDonemDataSource","loadMode","createStore","donemDataSource","sinavaKatilanOgrenciler","sinavaKatilanOgrenciDataSource","onUpdated","console","log","paginate","toolbarItems","profilMenu","projeturu","Data","length","satir","widget","options","icon","Icon","hint","Hint","onClick","Url","setShortCodes","loadMessages","trMessages","locale","navigator","language","rizaBeyanFormuGoster","setState","onClickSignOut","e","component","option","auth","removeItem","error","children","aydinlatmaMetniGizle","onClickProfile","getItems","visible","includes","Rol","text","KurumId","clearInterval","x","locateInMenu","template","DonemAdi","filter","selectedItemKey","useSelectMode","splitButton","id","setRemoteSystem","remoteToken","setSanalSystemInfo","getSinavaKatilanOgrenciler","resAlan","clear","refresh","index","sinavaKatilanOgrenci","Adi","Soyadi","SinifKodu","OgrenciCepTel","className","style","minWidth","onInitialized","minHeight","opened","openedStateMode","position","revealMode","height","closeOnOutsideClick","showTitle","shading","dragEnabled","popupForm","close_ClickOnOutsideClick","popupOptions","animation","showCloseButton","my","at","of","showScrollBarMode","scrollByContent","scrollByThumb","bounceEnabled","Object","assign","pathname","formData","showValidationSummary","cssClass","colCount","dataField","editorType","editorOptions","dataSource","valueExpr","message","disabled","KullaniciMenuler","toolBarDisabled","numbers","TelefonNo","split","alert","errorMessages","number","isNaN","confirm","dialogResult","resError","request","mesaj","status","keys","errors","toString","traceId","onInitializedFormNormalSms","formNormalSms","placeholder","normalSmsSecilenOgrenciMesajTextBox","onKeyUp","getElementById","innerText","textAlign","showBorders","showRowLines","columnHidingEnabled","onToolbarPreparing","toolbarOptions","unshift","getSelectedRowsData","row","startsWith","selection","mode","showCheckBoxesMode","useIcons","allowUpdating","enabled","caption","allowEditing","dataType","connect","kepsSystem","dispatch","GuestLayout","AppRoute","Component","Layout","layout","Path","path","rest","isLoginPath","isRegisterPath","to","c","substring","myMenu","find","LoginPage","onInitializedSelectBoxDonem","selectBoxDonem","tema","themes","handleSubmit","KullaniciAdi","Sifre","Donem","GirisTuru","buttonOptions","useSubmitBehavior","passwordOptions","preventDefault","getFirmaLink","firmaLinkiGoster","target","getOgrenciKayitLink","ogrenciKayitLinkiGoster","getAppLink","Fragment","rel","src","alt","border","getTgDegerlendirmeErkani","tgLink","fontSize","dangerouslySetInnerHTML","__html","tgLinkMetin","onSubmit","marginLeft","marginRight","readOnly","showColonAfterLabel","Value","horizontalAlignment","sistemLogo","RegisterPage","SinifSubeler","Sube","kurumlar","yayinlar","sinavTurleri","secilenYayin","secilenKurum","secilenSinavTuru","secilenSube","yayinMesaj","kurumMesaj","sinifMesaj","secilenYayinlar","dataGridYayin","KullaniciYayinYetki","yayinSecimiChanged","OgrenciNo","Tel","Gsm","SmsBilgi","MailBilgi","SinifId","VeliAd","VeliSoyad","VeliGsm","VeliEmail","SecilenYayinlar","componentDidMount","getYayinlar","getSiniflar","getKurumlar","Promise","resolve","reject","setTimeout","mask","maskRules","loadPanel","onValueChanged","showClearButton","deger","_getOptionValue","open","repaintChangesOnly","columnAutoWidth","autoNavigateToFocusedRow","focusedRowEnabled","hoverStateEnabled","rowAlternationEnabled","onSelectionChanged","paging","pageSize","pager","showPageSizeSelector","allowedPageSizes","showInfo","defaultPageSize","selectAllMode","kisayollar","AyarlarPage","formSifre","formApi","formSmsApi","dataGridKisayol","formShortCut","onInitializedFormSifre","onInitializedFormApiSifre","onInitializedGridKisayol","onInitializedFormShortCut","onInitializedFormSmsApi","handleApiSubmit","handleSmsApiSubmit","handleShortCutSubmit","formProfilSifre","Sifre1","Sifre2","Mail","formProfilApiSifre","ApiKullaniciAdi","ApiSifre","formShortCutData","EkranId","shortCodeDatasource","formSmsApiData","SmsMusteriNo","SmsKullaniciAdi","SmsSifre","SmsOrjinator","SmsUrl","SmsSaglayici","dataSourceFavoriler","getSmsSettings","selectedItems","selectedRowsData","validate","isValid","back","defaultValue","SmsProivders","DevextremeIcons","itemTemplate","itemIndex","itemElement","Name","filterPanel","filterRow","columnFixing","hidingPriority","display","DuyuruTitle","Baslik","YayinAdi","DuyuruItem","format","Tarih","Aciklama","DokumanTitle","SinavTuruAdi","Tur","DokumanItem","Created","SinavKodu","Dosyalar","map","item","Dosya","allowedFileExtensions","HomePage","tumCevapAnahtarlari","duyurular","dokumanlar","cevapAnahtarlari","tabs","tabSelectedIndex","secilenDosya","selectBoxYayin","selectBoxSinavTuru","renderDetay","renderTabDetay","tabsSelectionChanged","onInitializedSelectBoxYayin","onInitializedSelectBoxSinavTuru","yayinDataSource","yayinfilter","YayinId","sinavTuruDataSource","loadParams","remoteProvider","RemoteFileSystemProvider","beforeAjaxSend","xhrFields","Authorization","beforeSubmit","requestHeaders","endpointUrl","dosya","k","y","DokumanTuru","args","name","parseInt","tabIndex","marginTop","collapsible","multiple","animationDuration","itemTitleRender","itemRender","fileSystemProvider","rootFolderName","fileSelectionItems","custom","messageHtml","buttons","show","upload","maxFileSize","chunkSize","onSelectedFileOpened","size","create","copy","move","delete","rename","selectedIndex","onOptionChanged","currencyFormatter","Intl","NumberFormat","currency","minimumFractionDigits","maximumFractionDigits","KayitKabulDashBoard","HaftalikKayitSayilari","HaftalikTahsilatlar","SinifSeviyesiKayitSayilari","SinifSeviyesiKayitSayilariBugun","BugunTaksitTahsilEdilmesiGerekenBilgiler","DashboardData","toolTipKayitSayisiniGoster","toolTipBugunTahsilEdilmesiGerekenKayitSayisi","result","dashboardData","Img","BugunkuTahsilat","ToplamTahsilat","BugunYapilanKayitSayisi","ToplamYapilanKayitSayisi","BugunTahsilEdilmesiGerekenTaksitSayisi","ToplamTahsilEdilmesiGerekenTaksitSayisi","customizeTooltip","arg","argumentText","percentText","getBugunkuKayitSayilari","kayitData","KurumAdi","Sayi","getBugunTahsilEdilmesiGerekenSayilar","TaksitNo","Tutar","padding","onMouseOver","onMouseLeave","palette","argumentField","hoverMode","barPadding","barWidth","precision","valueField","showInLegend","subtitle","loadingIndicator","color","margin","verticalAlignment","VeliDashboardTaksitTahsilatDetailView","yetkiGrid","yetkilerDataSource","odemePlaniId","remoteOperations","calculateCellValue","rowData","TahsilatTarihi","Date","OgrenciHataRapor","gridMain","fileName","allowExportSelectedData","contextMenuEnabled","expandMode","emptyPanelText","applyFilter","VeliDersButon","Dersler","left","DersKodu","DersSimge","OgrenciId","DersAdi","DersTanim","GetDersler","sinavTuru","VeliDashBoard","popupOdev","popupEtut","odevBaslik","odevDetay","etutBaslik","etutDetay","dersler","ogrenciId","onInitializedGrdiOdemePlani","onInitializedGridGorusmeNotu","satirOdev","satirEtut","gridOdemePlaniDetay","griDevamsizlik","gridOdev","gridEtut","dersTanim","grdiGorusmeNotu","karneDataSource","ogrenciDataSource","odevDataSource","etutDataSource","devamsizlikuDataSource","ogrenciFilter","veliOdemePlaniDataSource","gorusmeNotuDataSource","popupOdevGizle","popupOdevAc","popupEtutGizle","popupEtutAc","formEtutTanimiData","onInitializedFormEtutTanimi","formEtutTanimi","deferRendering","satirSinav","KurumLogo","SinavTuru","SinavTuruId","MerkeziSinavId","MerkeziSinavLogId","gridSinav","allowSorting","cellRender","linkRender","Odev","texts","exportAll","allowExporting","DetailTemplate","export","onHiding","DersButon","OgrenciDashboard","merkeziSinavGoster","selectBoxMerkeziSinav","selectBoxKitapcikTuru","satirSanalSinav","gridSanalSinav","formSanalSinavData","KitapcikTuru","sanalSinavFilter","kurumKodu","KurumKodu","ogrenciNo","sanalSinavDataSource","merkeziSinavFilter","yayinId","sinifSeviyesi","SinifSeviye","merkeziSinavDataSource","kitapcikTuruFilter","merkeziSinavId","kitapcikTuruDataSource","devamsizlikFilter","devamsizlikAltRaporDataSource","devamsizlikUstRaporDataSource","getSinavApi","endpoint","getHeaders","karneFilter","isRequired","SanalSinavId","MerkeziSistem","sanalSinavData","KalanSure","TamamlanmaDurumu","gridDevamsizlikUstRapor","gridDevamsizlikAltRapor","OtomasyonAdminDashboard","gridAdminKurumRaporu","gridSinavGonderenKurumlar","gridSinavBasariDurum","formDashboard","sinavFilter","adminKurumRaporuDataSource","sinavGonderenKurumDataSource","kurumBasariDataSource","groupIndex","customizeText","column","summaryType","RolIslemleri","roller","ekranlar","loadingText","toolbarDisabled","mainDataGrid","dataGridEkran","secilenEkranlar","duzenleClick","ekranSecimiChanged","popupGizle","satirIptal","refreshData","popupAc","hataMesajlari","isError","duzenle","rolId","getSecilenRol","arrayList","Ekran","selectRows","componentWillUnmount","clearSelection","Ekranlar","KullaniciIslemleri","gridYayin","formKullanici","selectBoxRol","onSelectionGridMainChanged","onSelectionGridYayinChanged","onInitializedGridMain","onInitializedGridYayin","onInitializedSelectBoxRol","onInitializedFormKullanici","onUploaded","flag","kullaniciDataSource","rolDataSource","yeni","Rol_Id","Deleted","RowVersion","Email","Resim","dataClear","gridYayinSatirIptal","getKullanici","Logo","VarsayilanLogo","getYayinYetkileriByKullanici","kullaniciId","Yayin_Id","done","sil","aktifYap","pasifYap","gridMainSatirIptal","Yayin","sinavKullanici","uploadUrl","uploadMode","uploadHeaders","RolEkranIslemleri","KurumAktarmaIslemleri","loadPanelVisible","Result","reset","accept","shadingColor","showIndicator","showPane","ExcelKullaniciAktar","kullanicilar","secilenKullanici","secilenRol","DosyaAdi","rolMesaj","kullaniciMesaj","RolId","saveButtonOptions","getRoller","getKullanicilar","placeHolder","rolMesaji","IsVeliKullaniciAc","kurumDataSource","OtomasyonKullanicilari","kullaniciAktarVisible","formKullaniciAktar","gridKurum","gridMerkezKullaniciYetki","onSelectionGridKurumChanged","onInitializedGridKurum","onInitializedFormKullaniciAktar","secilenKurumlar","MerkeziKurumYetki","secilenKullanicilar","formKullaniciAktarData","Kullanicilar","GecmisDonemId","OgrenciNoAktar","popupKullaniciAktarGizle","Donem_Id","gridKurumSatirIptal","getMerkezKurumYetkileriByKullanici","Kurum","onFocusedRowChanged","satirIndex","rowIndex","onSelectedRowKeysChange","OtomasyonGenelTanimlar","meslekDataSource","yakinlikDataSource","bolumDataSource","sinifSeviyeDataSource","egitimTuruDataSource","paddingTop","keyboardNavigation","editOnKeyPress","enterKeyAction","enterKeyDirection","allowAdding","allowDeleting","GenelTanimlar","gridOtomasyonKurum","gridServis","gridGider","gridBanka","gridYurt","gridSinifSube","gridGrup","gridBrans","gridUcret","gridIndirim","branslar","kurumFilter","kurumId","onInitializedGridServis","onInitializedGridYurt","onInitializedGridSinifSube","onInitializedGridGrup","onInitializedGridGider","onInitializedGridBrans","onInitializedGridUcret","onInitializedGridIndirim","onInitializedGridOtomasyonKurum","onInitializedGridBanka","servisDataSource","yurtDataSource","sinifSubeDataSource","grupDataSource","bransDataSource","ucretDataSource","indirimDataSource","otomasyonKurumDataSource","giderDataSource","bankaDataSource","confirmDeleteMessage","confirmDeleteTitle","saveEditData","cancelEditData","form","colSpan","itemType","SubeKullanici","drpBransVisible","selectBoxBrans","onInitializedSelectBoxBrans","BransId","kullaniciData","getSelectedRowKeys","OgrenciDetail","Fotograf","OgrenciKayit","odemePlaniVisible","odemePlaniDetayVisible","tahsilatVisible","gorusmeVisible","subeDegisimiVisible","danismanDegisimiVisible","normalSmsVisible","secilenOgrenciNormalSmsVisible","secilenOgrenciBelgeVisible","gorusmeBaslik","ogrenciAktarVisible","ogrenciDonemBilgiVisible","smsRaporVisible","smsSinavVisible","makbuzVisible","tahsilatDetayVisible","devamsizlikRaporVisible","selectedOgrenciRowKeys","gridSmsRapor","gridTaksitTahsilat","normalSmsMesajTextBox","filterEditor","selectBoxSinifSube","selectBoxSinifSeviye","selectBoxKayitTuru","selectBoxSubeDegisimiSinifSube","gridTaksit","gridOgrenciDonemBilgi","formMain","formOdemePlani","popupOdemePlani","formOdemePlaniDetay","formGorusme","formSubeDegisimi","formDanismanDegisimi","formSecilenOgrenciNormalSms","formOgrenciAktar","formSinavSms","popupOdemePlaniDetay","formTahsilat","formMakbuz","satirTaksit","secilenOgrenciler","satirGorusmeNotu","satirTaksitTahsilat","textBoxKalanTutar","textBoxIlkTaksitTarihi","btnOgrenciNoVer","toolTipKesinKayitYap","toolTipGorusmeler","toolTipSubeDegistir","toolTipDanismanDegistir","toolTipKayitListesiExcel","toolTipKayitSozlesmesi","toolTipOdemePlaniGoster","toolTipOdemePlaniOlustur","toolTipYeniOgrenciEkle","toolTipOgrenciDuzenle","toolTipOgrenciSil","toolTipDanismanListesi","toolTipYoklamaListesi","toolTipDevamsizlikListesi","toolTipOgrenciNoVer","toolTipYenidenOdemePlaniOlustur","toolTipTekSenet","toolTipSenet","toolTipTahsilatYap","toolTipTahsilatSil","toolTipMakbuz","toolTipOgrenciEtutListesi","toolTipOgrenciOdevListesi","toolTipNormalSms","toolTipSecilenOgrenciBelge","toolGecisYap","toolTipSecilenOgrenciNormalSms","toolTipOgrenciAktar","toolTipOgrenciDonemBilgi","toolTipSmsGonderimBilgi","toolTipSeciliOgrenciSinavSms","smsSecilenOgrenciSinavMesajTextBox","onEditorPreparing","onToolbarPreparingGridTaksit","onToolbarPreparingGridGorusmeNotu","onInitializedGridTaksit","onSelectionChangedGridTaksit","onSelectionChangedGridGorusmeNotu","onInitializedPopupOdemePlani","onInitializedPopupOdemePlaniDetay","onInitializedFormOdemePlani","onInitializedFormOdemePlaniDetay","onInitializedFormTahsilat","onInitializedFormMakbuz","onInitializedFormGorusme","onInitializedTextBoxKalanTutar","onInitializedSelectBoxSinifSube","onInitializedSelectBoxSinifSeviye","onInitializedBtnOgrenciNoVer","onInitializedSelectBoxKayiTuru","onInitializedFormMain","onInitializedFormSubeDegisimi","onInitializedFormDanismanDegisimi","onInitializedFormOgrenciAktar","onInitializedFormSecilenOgrenciNormalSms","onInitializedSelectBoxSubeDegisimiSinifSube","onInitializedGridOgrenciDonemBilgi","onInitializedFormSinavSms","onInitializedSelectBoxMerkeziSinav","onInitializedGridTaksitTahsilat","onToolbarPreparingGridTaksitTahsilat","onSelectionChangedGridTaksitTahsilat","onSelectionOgrenciGridRowChanged","onInitializedSeciliOgrenciVeliSmsCheckBox","onInitializedSeciliOgrenciVeliNormalSmsCheckBox","onInitializedSeciliOgrenciVeliKurumSmsCheckBox","onExporting","popupSmsRaporGizle","popupSmsRaporAc","popupSmsSinavGizle","popupSmsSinavAc","popupOdemePlaniGizle","popupOdemePlaniDetayGizle","popupTahsilatGizle","popupMakbuzGizle","popupGorusmeGizle","popupTahsilatDetayGizle","popupSubeDegisimGizle","subeDegisimVisible","popupDanismanDegisimGizle","popupNormalSmsGizle","popupOgrenciAktarGizle","popupOgrenciDonemBilgiGizle","popupSecilenOgrenciNormalSmsGizle","popupDevamsizlikRaporGizle","formDataOdemePlani","DinamikUcret","Ucret1","Ucret2","Ucret3","Indirim","Ogrenci","OdemeTuru","Pesinat","IndirimOrani","TaksitSayisi","IlkTaksitTarihi","IlkTaksit","IsNakit","formDataOdemePlaniDetay","HizmetToplami","IndirimToplamTutar","OdenecekToplamTutar","TahsilatDurumu","TaksitTutar","formTahsilatData","TaksitOdemeTuru","TaksitId","Tahsilat","OdemePlaniId","MakbuzTuru","BankaId","SlipNo","formMakbuzData","formGorusmeData","IsVeliGorsun","formSubeDegisimiData","SinifSeviyeId","SubeId","formDanismanDegisimiData","DanismanId","formNormalSmsData","GonderimTipi","VeliCepTelEkstra","formSecilenOgrenciNormalSmsData","Ogrenciler","formOgrenciAktarData","formSinavSmsData","ogrenciStore","sinavTuruFilter","taksitFilter","taksitId","tahsilatDataSource","odemeTuruDataSource","enumName","ogrenciTcNoFilter","tcNo","ogrenciDonemDataSource","odemePlaniFilter","taksitDataSource","smsRaporFilter","numara","veliNumara","smsRaporDataSource","checkBoxSeciliOgrenciVeliSmsCheckBox","checkBoxSeciliOgrenciVeliNormalSmsCheckBox","checkBoxSeciliOgrenciVeliKurumSmsCheckBox","renderSwitch","cellInfo","parentType","editorName","cellValue","getFullYear","isNewRow","min","elementAttr","onContentReady","element","addEventListener","CepTelefonu","VeliCepTelefonu","TcNo","toolTipGecisYap","OgrenciBelgesiBas","DevamsizlikListesiBas","OgrenciOdevListesiBas","OgrenciEtutListesiBas","yoklamaListesiBas","danismanListesiBas","kayitListesiBas","odemePlaniDetay","odemePlaniOlustur","sozlesmeBas","addRow","editRow","dialogResult2","deleteRow","class","ogrenciData","ogrenci","parseFloat","OdemePlani","kalanOdeme","IsOdemePlani","KayitTuru","selectedRowKeys","workbook","Workbook","worksheet","addWorksheet","PromiseArray","exportDataGrid","autoFilterEnabled","customizeCell","excelCell","gridCell","rowType","xhr","XMLHttpRequest","responseType","onload","reader","FileReader","readAsDataURL","onloadend","base64data","image","addImage","base64","extension","getRow","tl","col","br","onerror","send","all","xlsx","writeBuffer","buffer","saveAs","Blob","cancel","onContextMenuPreparing","summary","groupPaging","filtering","grouping","sorting","tabPanelOptions","loop","animationEnabled","swipeEnabled","label","append","repaint","OgrenciSayisi","DonemOgrenciSayisi","Brans","multiline","refreshMode","displayMode","showNavigationButtons","showInColumnChooser","allowHiding","setCellValue","editCellRender","yeniOdemePlaniData","yeniTaksitPlaniData","KalanTutar","pesinatMakbuzData","PesinatMiktari","onCellPrepared","command","isEditing","jquery","cellElement","firstChild","on","Durum","allowFiltering","durumRender","t","setHours","getHours","toFixed","ogrenciInfoData","Kodu","Renk","backgroundColor","pictureData","DevamsizlikKayit","popupDevamsizlikDurumVisible","subeDevamsizlikDurumData","formDevamsizlik","gridDevamsizlik","gridOgrenci","gridKonu","gridDers","dropDownBoxOgrenci","dropDownBoxKonu","dropDownBoxDers","toolTipDevamsizlikInfo","ArrayStore","dersDataGridRender","onInitializedFormDevamsizlik","onInitializedGridDevamsizlik","onInitializedDropDownBoxDers","onInitializedGridOgrenci","onInitializedGridDers","onOgrenciDataGridSelectionChanged","onDersDataGridSelectionChanged","onDropDownBoxDersValueChanged","seviyeFilter","seviyeId","subeId","tx","tarih","toJSON","Konular","Tip","Icerik","EgitimTuruId","gridDersBoxValue","gridOgrenciBoxValue","popupSubeDevamsizlikDurumuGizle","allDate","dersmSmsGonder","dersAdlari","DersNo","SeviyeId","dersBildirimGonder","contentRender","ogrenciler","prompt","columns","linkWhatsAppRender","htmlData","VeliAdSoyad","toLocaleDateString","DersNoMetin","Turu","data-action","GiderKayit","formKurumGider","gridKurumGider","onInitializedFormKurumGider","onInitializedGridKurumGider","Gider","searchMode","OdevTanim","popupOdevTanimiGizle","odevTanimiVisible","popupOdevTanimiAc","onInitializedFormOdevTanimi","onToolbarPreparingGridOgrenci","onInitializedTextBoxOdev","toolTipOdevTakip","textBoxBaslik","textBoxSoruSayisi","textBoxOdev","formOdevTanimi","konuDataSource","odevFilter","odevId","formOdevTanimiData","SinifSube","SoruSayisi","konuDataGridRender","onInitializedDropDownBoxKonu","onInitializedGridKonu","onKonuDataGridSelectionChanged","onDropDownBoxKonuValueChanged","KonuIdEkran","konular","secilenKonular","getSecilenOgrenciler","OdevId","gridKonuBoxValue","onEditingStart","EtutTanim","popupEtutTanimiGizle","etutTanimiVisible","popupEtutTanimiAc","onInitializedSelectBoxOgretmen","onInitializedTextBoxEtut","textBoxBaslangicTarihi","textBoxBitisTarihi","textBoxEtut","selectBoxOgretmen","ogretmenDataSource","etutFilter","etutId","Ogretmen","BaslangicTarihi","BitisTarihi","EtutId","EtutBaslik","YayinIslemleri","secilenSinavTurleri","dataGrid","gridSinavTuru","KlasorAdi","gridSinavTuruSelectionChanged","yeniEkleClick","aktifYapClick","pasifYapClick","silClick","yayinFilter","sinavTuruYayinDataSource","SinavTurleri","YayineviKullaniciIslemleri","kullaniciYayinYetkilendirme","gridYayinMain","yayinYetkileriArrayList","ililceYetkileriArrayList","kurumYetkileriArrayList","onSelectionGridMerkeziKullaniciYetkiChanged","onInitializedGridYayinMain","onInitializedGridMerkezKullaniciYetki","secilenIlIlceler","MerkezKullaniciYetki","KullaniciSinavDetay","requireTotalCount","merkezKullaniciYetkiDataSource","popupYayinYetkilendirmeGizle","sinifSeviyeleri","SinifSeviyeleri","gridMerkezKullaniciYetkiSatirIptal","getKullaniciIlveIlceYetkileri","Ilce_Id","rol","kopyalananData","mainUrl","listener","ev","clipboardData","setData","execCommand","removeEventListener","copyRichText","kullaniciRolu","Il","Il_Id","Ilce","isDijitalPlatForm","selectSinifSeviye","recursive","yayinRows","Yayinlar","OptikFormTanimi","onEditorOptikFormAlanPreparing","AlanAdi","allowEditingOgrenciNoAdSoyad","toolTipInfo","optikFormAlan","optikFormAlanlar","Bilgi","CiftOturum","CiftOturumOzel","HerYayinGorsun","AdSoyadBir","HerDonemGozuksun","Kds","gridOptikFormAlan","gridOptikFormParametre","chkBoxCiftOturum","chkBoxCiftOturumOzel","chkBoxKds","onInitializedGridOptikFormParametre","onInitializedGridOptikFormAlan","kopyalaClick","mainDataSource","optikFormParametreDataSource","optikFormAlanDataSource","OptikFormAlanlar","resForm","Yetkili","CreatedUserId","OptikForm","OptikForm_Id","Baslangic","Uzunluk","Sira","kopyala","onRowClick","SinavTanimi","popupMerkeziForm","popupSinavAktar","btnDwonloadDisabled","btnSinavAktarDisabled","btnKopyalaState","formMerkez","formSinavAktar","selectBoxKullanici","selectBoxRemoteYayin","selectBoxLocalYayin","selectBoxRemoteSinavTuru","selectBoxLocalSinavTuru","selectBoxRemoteMerkeziSinav","selectBoxOptikForm","selectBoxKaynakKurum","selectBoxHedefKurum","onInitializedSelectBoxKullanici","onInitializedSelectBoxRemoteYayin","onInitializedSelectBoxLocalYayin","onInitializedSelectBoxRemoteSinavTuru","onInitializedSelectBoxLocalSinavTuru","onInitializedSelectBoxOptikForm","onInitializedSelectBoxRemoteKurum","onInitializedSelectBoxLocalKurum","onInitializedFormMerkeziSinav","onInitializedSelectBoxRemoteMerkeziSinav","onInitializedFormSinavAktar","kayitDuzenle","showLoadPanel","hideLoadPanel","popupMerkeziFormGizle","popupSinavAktarGizle","popupSinavIndirme","popupSinavAktarAc","popupDonemEkraniAc","popupDonemEkraniGizle","yayinRemoteDataSource","yayinRemotefilter","sinavTuruRemoteDataSource","optikFormDataSource","sinavTuruRemoteFilter","donemId","merkeziSinavRemoteDataSource","kurumRemoteDataSource","formMerkeziSinavData","KaynakKurumId","HedefKurumId","KaynakYayinId","HedefYayinId","KaynakSinavTuruId","HedefSinavTuruId","formSinavAktarData","SinavId","kullaniciFilter","timeout","getSatir","satirId","DogruYanlis","SecmeliDers","Degerlendirilebilir","Raporlanabilir","OnlineSinav","SanalOptik","fail","resYayin","RemoteMerkeziSinavId","searchExpr","merkeziSinavIndirmeDialog","hide","CevapAnahtariTanimi","merkeziSinavlar","secilenOptikForm","secilenSinavturu","secilenMerkeziSinav","secilenKitapcikTuru","secilenKitapcikEslestirme","secilenAktarilacakKitapcikTuru","GirilenCevapAnahtari","selectedItemKeys","kitapcikBirlestirDisabled","soruEslestir","soruEslestirDisabled","cevapAnahtariDataGrid","KitapcikSil","kitapcikTurleri","Deger","aktarilacakKitapcikTurleri","Display","Sinav","KitapcikEslestirme","AktarilacakKitapcikTuru","SinavTuru_Id","Sinav_Id","onButtonClick","sinavTuruText","kitapcikTuru","setValue","newRowIdx","getRowIndexByKey","columnIndex","getVisibleColumnIndex","closeEditCell","editCell","SinavGonderimi","popupKurum","tyt2Goster","otomatikKurumKodu","sinifSiraliListeText","sinifSiraliListeDisabled","kurumSiraliListeText","kurumSiraliListeDisabled","kurumSiraliExcelListeText","kurumSiraliExcelListeDisabled","listeKarneText","tekPdfText","tekPdfDisabled","listeKarneDisabled","secilenMerkeziSinavId","secilenKurumId","formKurum","buttonDegerlendir","selectBoxIl","selectBoxIlce","selectBoxYayin2","selectBoxMerkeziSinav2","selectBoxOptikform","fileUploadTxt","numberBoxKurumKodu","selectBoxKurumId","Yayin2","MerkeziSinav","MerkeziSinav2","BosKitapcikTuru","BosOgrenciNo","VeriSilme","formSinavGonderimi","kurumTurleri","formDataKurum","KurumEmail","popupKurumForm","bosOgrenciNo","bosKitapcikTuru","dosyaAdi","popupGizleKurum","sinavYukleClick","listeVeKarneClick","tekPdfClick","listeClick","listeKurumClick","listeExcelClick","sinavSil","ogrenciNoVer","getKitapcikTuruVer","onUploadedKurumLogo","onTxtIndir","onInitializedSelectBoxIl","onInitializedSelectBoxIlce","onInitializedSelectBoxMerkeziSinav2","onInitializedSelectBoxYayin2","onInitializedSelectBoxOptikform","onInitializedFormKurum","onInitializedNumberBoxKurumKodu","onInitializedSelectBoxKurumId","onInitializedFormSinavGonderimi","onInitializedFileUploadTxt","onFileSelected","onInitializedButtonDegerlendir","ilDataSource","ilfilter","IlId","ilceDataSource","yayin2filter","tytMerkeziSinavDataSource","degerlendirilenSinavlarDataSource","listeTytAytClick","postData","Kurum_Id","SinavAdi","kurumGenelRaporuGetir","kurumGenelIlRaporuGetir","kurumGenelIlceRaporuGetir","kurumGenelSinifRaporuGetir","ilk100GenelRaporuGetir","ilk100IlRaporuGetir","ilk100IlceRaporuGetir","kurumKonuanaliziGetir","kurumSoruanaliziGetir","sinifKonuAnaliziGetir","sinifSoruAnaliziGetir","kurumlarIlAnaliziGetir","kurumlarIlceAnaliziGetir","kurumlarSinifAnaliziGetir","kurumOgrenciAnaliziGetir","getKarneApi","createElement","SinavTxt","click","j","html","sinavKodu","sinavKoduPart","configAjax","linkMailRender","linkKayitliOgrenciEslestir","sortOrder","ilAdi","ilceAdi","fontWeight","innerHeight","innerWidth","KurumTuruId","cursor","ListeKarneId","KurumEkle","kodVerDisabled","onInitializedPopup","allowSearch","DokumanIslemleri","secilenDokuman","secilenDokumanTuru","dokumanTurleri","kayitYenile","kayitAktifYap","kayitPasifYap","kayitYeni","kayitSil","getDokuman","getYetkiliYayinlar","getSinavturleri","getMerkeziSinavlar","sinavTuruId","DuyuruIslemleri","getYayinlarByYteki","OgrenciAktarma","onInitializedYayinGrid","OgrenciSinavSonuclari","karneler","KurumToplamTaksitRaporu","KurumTaksitTahsilatRaporu","baslangicTarihi","getMonth","getDay","bitisTarihi","basTarih","bitTarih","dateFilter","Tarih1","Tarih2","date","GecikmeDurumu","AdiSoyadi","KurumTaksitTahsilatDurumRaporu","IndirimToplami","PesinatToplami","ToplamAlacak","TahsilatToplami","KalanAlacak","KasaToplami","GiderToplami","valueFormat","KurumTahsilatRaporu","allowGrouping","displayFormat","showInGroupFooter","KurumPesinatRaporu","OgrenciSinavSonucPage","yayin","match","yayinParam","ilFilter","ilceFilter","IlceId","selectBoxKurum","onInitializedSelectBoxKurum","EduAsistOgrenciLoginPage","EduAsistVeliLoginPage","ogrenciKullaniciId","OgrenciKullaniciId","sifre","MobilKutuphane","formMobilKutuphane","renderLink","Metin","maxWidth","maxHeight","AkilliTahta","VideoCozum","CrmGorevTuru","stateOpen","formCrmGorevTuru","onInitializedFormCrmGorevTuru","crmGorevTuruDataSource","Crm","popupState","aktiviteDataSource","atananAtayanDataSource","onInitializedFormCrm","formCrm","Atanan","Atayan","GorevTuru","KapatmaAciklama","secilenSatir","CrmDurum","cevapDizisi","soru","saat","dakika","saniye","isBaslangic","isBaslangicCounter","SanalOptikPage","merkeziSistem","useSelector","sanalSinav","sanalSinavSystem","useState","sorular","setSorular","filtrenelenenSorular","setFiltrelenenSorular","filtreler","setFiltreler","cevaplar","setCevap","ilkokulKontrol","setilkokulKontrol","liseKontrol","setliseKontrol","process","useDispatch","useCallback","useEffect","replace","filterButtons","VerilenCevap","sorularX","soruRender","SoruNo","SoruIsaretle","visibility","filtreRender","filtre","filtrele","toUpperCase","sort","b","SiraNo","isaret","filtrelenenSorularX","Cevap","copySanalsinav","tytGrupla","sosyal","fen","aytGrupla","edebiyat","sosyal2","matSirala","mat","timer","myDate","setMinutes","getMinutes","countDownDate","setInterval","now","getTime","distance","Math","floor","innerHTML","Ad","Soyad","actionSheetItems","MobileLayout","isActionSheetVisible","showCancelButton","showActionSheet","onActionSheetItemClick","onActionSheetCancelClick","onActionSheetButtonClick","changeTitle","changeCancelButton","cancelText","onCancelClick","buttonName","Index","DevamsizlikFilterPage","onInitializedOgrenciList","onSelectedItemKeysChange","listOgrenci","showSelectionControls","OgrenciInfo","indicateLoading","pageLoadMode","pageLoadingText","KurumGiderRaporu","groupPanel","routes","exact","KayitKabulDashboard","OgrenciDashBoard","OtomasyonAdminDasboard","OtomasyonGenelMerkezTanim","OtomasyonSubeKullanici","OtomasyonDigerKullanici","OtomasyonOgrenciKayit","OtomasyonDevamsizlikKayit","OtomasyonGiderKayit","OgrenciVeliAktarma","OtomasyonKullaniciAktar","initialState","reducers","combineReducers","action","persistConfig","storage","whitelist","persistedReducer","persistReducer","__REDUX_DEVTOOLS_EXTENSION__","persistor","persistStore","App","init","ReactDOM","loading"],"mappings":"sYAsBiB,UAtBjB,MACIA,cACEC,KAAKC,eAAgB,EACrBD,KAAKE,QAAQ,GACbF,KAAKG,QAAQ,GAGfC,MAAMC,GACJL,KAAKC,eAAgB,EACrBI,IAGFC,OAAOD,GACLL,KAAKC,eAAgB,EACrBI,IAGFE,kBACE,OAAOP,KAAKC,gB,mCCfH,MAAMO,EAGjBT,YAAYU,GACR,IAAIC,EAA2BC,aAAaC,QAAQ,eACnB,OAA7BF,OAAiEG,IAA7BH,EAAsE,OAA7BA,GAC7EC,aAAaG,QAAQ,eAAe,GAS5C,eACId,KAAKe,eAAgB,EACrBf,KAAKgB,QAAU,GAGnB,YAAYA,GAQRL,aAAaG,QAAQ,eAAe,GACpCd,KAAKe,cAAgBJ,aAAaC,QAAQ,eAG9C,+BACSZ,KAAKe,gBACNE,OAAOC,SAASC,KAAO,UAK/B,oBACInB,KAAKoB,wBACL,IAAIJ,EAAUL,aAAaC,QAAQ,WAOnC,OANe,MAAXI,OAA8BH,IAAZG,EAAoC,OAAZA,EAC1CL,aAAaG,QAAQ,UAAWO,KAAKC,UAAUtB,KAAKgB,UAGpDhB,KAAKgB,QAAUK,KAAKE,MAAMZ,aAAaC,QAAQ,YAE5CZ,KAAKgB,QAGhB,kBAAkBA,GACdhB,KAAKoB,wBAELpB,KAAKgB,QAAL,eAAoBhB,KAAKgB,QAAzB,GAAqCA,GAGzC,qBACI,IAAIQ,EAAiBxB,KAAKyB,aAC1B,GAAID,EAAgB,CAChB,IAAIE,EAAgBF,EAAeG,OACnC,GAAID,EACA,OAAOA,EAAcE,QAErBX,OAAOC,SAASC,KAAO,SAI/B,MAAMU,MAAM,iDAGhB,mBAAmBD,GACf,IAAIE,EAAmBnB,aAAaC,QAAQ,UACnB,OAArBkB,OAAiDjB,IAArBiB,EAAsD,OAArBA,GAC7DF,EAAUP,KAAKE,MAAMO,GACrB9B,KAAK+B,WAAW,CAAEJ,OAAQ,CAAEC,cAG5B5B,KAAK+B,WAAW,CAAEJ,OAAQ,CAAEC,aAKpC,6BACI,IAAIE,EAAmBnB,aAAaC,QAAQ,UAC5C,SAAyB,OAArBkB,OAAiDjB,IAArBiB,EAAsD,OAArBA,IArFpDtB,EAEVO,eAAgB,EAFNP,EAWVO,cAAgBJ,aAAaC,QAAQ,eAX3BJ,EAaVQ,QAAU,GCZrB,MAAMgB,UAAiBC,YAEnBlC,YAAYU,GACRyB,MAAMzB,GADS,KAWnB0B,UAAaC,IACTzB,aAAaG,QAAQ,WAAYO,KAAKC,UAAUc,EAAMC,WAC3B,MAAvBD,EAAMC,SAASC,MACftC,KAAKS,MAAM8B,QAAQC,KAAK,IAAMJ,EAAMC,SAASC,OAZjDtC,KAAKyC,YAAcR,cACnBjC,KAAK0C,cAAgB,GACrB1C,KAAK2C,iBAAmB,KACpB3C,KAAK0C,cAAgB1C,KAAK4C,SAASD,oBAG3C,eACI,OAAO3C,KAAKyC,YAAYI,QAAQC,SASpCC,SAEI,OACI,gBAAC,WAAD,KAEI,gBAAC,IAAD,CACIC,YAAa,SACbC,YAAa,WACbC,cAAe,QACfC,YAAanD,KAAKmC,UAClBiB,MAAO5C,EAAQoB,QAAQyB,KACvBC,MAAO,IACPC,WAAY,WACZC,eAAe,EACfC,cAAe,SACfC,aAAc,WACdC,QAAS,KACTC,IAAK5D,KAAKyC,YACVoB,YAAa,QACbC,aAAc,MAQnBC,kBAAW/B,G,6GC5C1B,MACagC,EAAkC,cAAxB/C,OAAOgD,QAAQC,KAAuBjD,OAAOgD,QAAQE,UAAYlD,OAAOgD,QAAQG,SAC1FC,EAAmC,cAAxBpD,OAAOgD,QAAQC,KAAuBjD,OAAOgD,QAAQK,WAAarD,OAAOgD,QAAQM,UAC5FC,EAAmC,cAAxBvD,OAAOgD,QAAQC,KAAuBjD,OAAOgD,QAAQQ,WAAaxD,OAAOgD,QAAQS,UAC5FC,EAAuC,cAAxB1D,OAAOgD,QAAQC,KAAuBjD,OAAOgD,QAAQW,eAAiB3D,OAAOgD,QAAQY,cAEpGC,GADmC,cAAxB7D,OAAOgD,QAAQC,KAAuBjD,OAAOgD,QAAQc,WAAa9D,OAAOgD,QAAQe,UAC3D,cAAxB/D,OAAOgD,QAAQC,KAAuBjD,OAAOgD,QAAQgB,SAAWhE,OAAOgD,QAAQiB,SAGxFC,GAFuD,cAAxBlE,OAAOgD,QAAQC,KAAuBjD,OAAOgD,QAAQmB,kCAAoCnE,OAAOgD,QAAQoB,iCAClG,cAAxBpE,OAAOgD,QAAQC,KAAuBjD,OAAOgD,QAAQqB,gBAAkBrE,OAAOgD,QAAQsB,eACpFtE,OAAOgD,QAAQkB,cAC9BK,EAAkBvE,OAAOgD,QAAQuB,gBACjCC,EAAgBxE,OAAOgD,QAAQwB,cAC/BC,EAAgBzE,OAAOgD,QAAQyB,cAIrC,SAASC,EAAsBC,EAAKC,GACvC,MAAO,gCAA6BA,EAAQ,0EAAuED,EAAM,UAGtH,SAASE,EAAaF,GACzB,MAAO,0FAAkFA,EAAM,UAG5F,SAASG,EAAQC,GACpB,IAAK,IAAIC,KAAOD,EACZ,GAAIA,EAAIE,eAAeD,GACnB,OAAO,EAEf,OAAO,EAGJ,SAAeE,EAAtB,sC,4CAAO,WAA2BC,EAAKC,EAAQC,GAAxC,IAAAC,EAAA,SAAAA,EAAA,sEACW3E,IAAQ4E,KAAKJ,EAAKE,EAAM,CAClCG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACF,IAAIA,EAAIN,KAAKO,QAIT,MAAMD,EAAIN,KAAKQ,eAGtBC,MAAMC,IACH,MAAMA,IAfX,cACCT,EADD,yBAiBIA,GAjBJ,4C,sBAoBP,IAAIU,EAAa,KACjB,SAASC,EAAMC,EAAaf,GACxB,IAAIgB,EAAS,IAqBb,MApBA,CACI,SACA,QACA,eACA,YACA,oBACA,aACA,kBACA,cACA,SACA,OACA,OACA,QACFC,SAAQ,SAAUC,GApEJC,MAqERD,KAAKH,SArEuBtG,KAApB0G,EAqEuBJ,EAAYG,KArEQ,OAAVC,GAA4B,KAAVA,KAsE3DH,GAAM,UAAOE,EAAP,YAAYjG,KAAKC,UAAU6F,EAAYG,IAAvC,SAGdF,EAASA,EAAOI,MAAM,GAAI,GAC1BP,EAAaG,EACNxF,IAAQ6F,IAAIrB,EAAMa,EACrB,CACIR,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKe,IACK,CACHpB,KAAMoB,EAASpB,KAAKA,KACpBqB,WAAYD,EAASpB,KAAKqB,cAGjCZ,MAAOC,IAAUY,YAAOZ,EAAK,QAAS,OAGxC,SAASa,EAASC,EACnBC,EACAC,EACAC,EACAC,EACAC,GACF,OAAO,IAAIC,IAAW,CAClBC,MAAO,IAAIC,UAAY,CACnBrC,IAAK6B,EACLS,cAAc,EACdC,KAAK,WAAD,4BAAE,WAAOrB,GAAP,SAAAZ,EAAA,+EACKW,EAAMC,EAAaa,IADxB,2CAAF,mDAAC,GAGLS,OAAO,WAAD,4BAAE,WAAOC,GAAP,SAAAnC,EAAA,sEACSJ,EAAY8B,EAAW,OAAQ,CACxCS,OAAQrH,KAAKC,UAAUoH,GACvBC,MAAOZ,IAENpB,KAAK,KACFiB,YAAO,0CAAyB,UAAW,OAE9Cb,MAAMC,IAEH,MADAY,YAAO,2EAA4CZ,EAAK,QAAS,KAC3DA,IAVV,mFAAF,mDAAC,GAaP4B,OAAO,WAAD,4BAAE,WAAO3C,EAAKyC,GAAZ,SAAAnC,EAAA,sEACSJ,EAAY+B,EAAW,OAAQ,CACxCjC,IAAKA,EACLyC,OAAQrH,KAAKC,UAAUoH,GACvBC,MAAOZ,IACRpB,KAAMC,IACLgB,YAAO,0CAAyB,UAAW,OAE1Cb,MAAMC,IAEH,MADAY,YAAO,2EAA4CZ,EAAK,QAAS,KAC3DA,IAVV,mFAAF,qDAAC,GAaP6B,OAAO,WAAD,4BAAE,WAAO5C,GAAP,SAAAM,EAAA,+EACGJ,EAAYgC,EAAW,OAAQ,CAClClC,IAAKA,EACL0C,MAAOZ,IACRpB,KAAMC,IACLgB,YAAO,0CAAyB,UAAW,OAE1Cb,MAAMC,IAEH,MADAY,YAAO,2EAA4CZ,EAAK,QAAS,KAC3DA,KATV,2CAAF,mDAAC,GAYP8B,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,Y,6CCtJ1D,MAAMsC,EACe,yBAGfC,GACQ,kBAGRC,GACgB,0BCRhBC,GAAuBC,IACzB,CACHlF,KAAM8E,EACNK,QAASD,ICHJE,GAA2BC,IAC7B,CACHrF,KAAM+E,GACNI,QAASE,ICHJC,GAA2BJ,IAC7B,CACHlF,KAAMgF,GACNG,QAASD,ICiCjB,IAAIK,GAAa,GACjB,MAAMC,WAAyBzH,YAC3BlC,YAAYU,GACRyB,MAAMzB,GACNT,KAAK2J,qBAAuB3J,KAAK2J,qBAAqBC,KAAK5J,MAC3DA,KAAK6J,6BAA+B7J,KAAK6J,6BAA6BD,KAAK5J,MAC3EA,KAAK8J,4BAA8B,KACnC9J,KAAK+J,MAAQ,CACTC,QAAQ,EACRC,UAAW,OACXC,cAAelK,KAAKS,MAAM0J,aAAaC,gBAEvCC,WAAY,EACZC,OAAO,EACPC,qBAAqB,EACrBC,iBAAiB,EACjBC,UAAU,EACVC,iBAAiB,EACjBC,oBAAoB,EACpBC,QAAS,IAGbC,SAASC,MAAQ7J,OAAOgD,QAAQ8G,UAChC/K,KAAKgL,QAAU,KACfhL,KAAKiL,gBAAkB,KACvBjL,KAAKkL,cAAgB,CACjBC,QAAS,KACTC,YAAa5K,EAAQoB,QAAQyJ,UAAUC,IAE3CtL,KAAKuL,YAAc,CACfC,QAAS,GACTC,MAAO,IAEXzL,KAAK0L,sBAAwB,IAAItD,IAC7B,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASxC,EAAkB,4BAGvCxF,KAAK6L,gBAAkB,IAAIzD,IACvB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAShE,EAAU,uBAG/BhE,KAAK8L,wBAA0B,GAC/B9L,KAAK+L,+BAAiC,IAAI3D,IAAW,CACjD4D,UAAW,SAAU/F,EAAKyC,GACtBuD,QAAQC,IAAIjG,GACZgG,QAAQC,IAAIxD,IAKhBL,MAAO,CACHnE,KAAM,QACN+B,IAAK,KACLK,KAAMtG,KAAK8L,yBAEfK,UAAU,IAEdnM,KAAKoM,aAAe,GAIpBpM,KAAKqM,WAAa,GACe,cAA7BpL,OAAOgD,QAAQqI,UACftM,KAAKqM,WAAa,CACd,CAAE,KAAQ,UAAW,GAAM,GAC3B,CAAE,KAAQrM,KAAKS,MAAM0J,aAAaC,gBAAkB,kCAAqB,qCAAuB,GAAM,GACtG,CAAE,KAAQ,gBAAc,GAAM,GAC9B,CAAE,KAAQ,gBAAiB,GAAM,IAIrCpK,KAAKqM,WAAa,CACd,CAAE,KAAQ,UAAW,GAAM,GAC3B,CAAE,KAAQ,gBAAiB,GAAM,IAGzCzK,IAAQ6F,IAAIpD,EAAW,yBACnB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,UACT4C,GAAa,GACT7C,EAAIN,KAAKiG,KAAKC,OAAS,IACvB5F,EAAIN,KAAKiG,KAAKlF,QAASoF,IACnBhD,GAAWjH,KAAK,CACZkK,OAAQ,WAAYxL,SAAU,SAC9ByL,QAAS,CACLC,KAAMH,EAAMI,KACZC,KAAML,EAAMM,KACZC,QAAS,KACL/L,OAAOC,SAASC,KAAO,IAAMsL,EAAMQ,UAKnDjN,KAAKS,MAAMyM,cAAczD,QAGlC1C,MAAMC,IACLY,YAAO,6DAA2CZ,EAAIF,aAAc,OAE5EqG,YAAaC,GACbC,YAAOC,UAAUC,UACbtM,OAAOgD,QAAQuJ,sBACf5L,IAAQ6F,IAAI9C,EAAe,yBACvB,CACI8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,UAA6B,IAAlBD,EAAIN,KAAKiG,KAC7BvM,KAAKyN,SAAS,CACVnD,OAAO,EACPC,qBAAqB,IAGnB3D,EAAIN,KAAKO,SACfe,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,OAGzFC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,OAQ/B0G,eAAeC,GAAI,IAAD,kHACpB/F,YAAO,GAAD,OAAI+F,EAAEC,UAAUC,OAAO,QAAvB,6CAA8D,UAAW,KAE/EC,EAAKxN,OAAO,KACR,IACIK,aAAaoN,WAAW,UACxBpN,aAAaoN,WAAW,WACxBpN,aAAaoN,WAAW,eAC1B,MAAOC,OAIb,EAAKvN,MAAMwN,SAASxN,MAAM8B,QAAQC,KAAK,UAZnB,6CAelB0L,qBAAqBP,GAAI,IAAD,kHAC1B,EAAKF,SAAS,CACVnD,OAAO,EACPC,qBAAqB,IAHC,6CAOxB4D,eAAeR,GAAI,IAAD,kHACpB/F,YAAO,GAAD,OAAI+F,EAAEC,UAAUC,OAAO,QAAvB,uEAA4E,UAAW,KAC7F,EAAKJ,SAAS,CAAEpD,WAAY,IAFR,6CAKxBV,qBAAqBgE,GACjB3N,KAAKgL,QAAU2C,EAAEC,UAErB/D,6BAA6B8D,GACzB3N,KAAKiL,gBAAkB0C,EAAEC,UAG7BQ,WAAY,IAAD,OACP,IAAIhL,EAAQ,GA6HZ,OA5HAA,EAAQ,CAAC,CAAEsJ,OAAQ,WAAYxL,SAAU,SAAUyL,QAAS,CAAEC,KAAM,OAAQI,QAAS,IAAOhN,KAAKyN,SAAS,CAAEzD,QAAShK,KAAK+J,MAAMC,WAChI,CAAE0C,OAAQ,WAAYxL,SAAU,SAAUyL,QAAS,CAAEC,KAAM,YAAaI,QAAS,IAAOhN,KAAKyN,SAAS,CAAExD,UAAoC,SAAzBjK,KAAK+J,MAAME,UAAuB,QAAU,WAC/J,CACIyC,OAAQ,WAAYxL,SAAU,SAAUyL,QAAS,CAC7C0B,QAAS,CAAC,eAAgB,cAAe,eAAeC,SAAS9N,EAAQoB,QAAQ2M,KAAMC,KAAM,wBAAiB5B,KAAM,OAAQI,QAAS,KACjI/L,OAAOC,SAASC,KAAO,2IAA6IX,EAAQoB,QAAQyJ,UAAUoD,QAAU,IAAMjO,EAAQoB,QAAQyJ,UAAUC,MAIpP,CACIoB,OAAQ,WAAYxL,SAAU,SAAUyL,QAAS,CAC7CC,KAAM,OAAQI,QAAS,KACS,mBAAxBxM,EAAQoB,QAAQ2M,KAGa,iBAAxB/N,EAAQoB,QAAQ2M,KAGQ,SAAxB/N,EAAQoB,QAAQ2M,KAGQ,gBAAxB/N,EAAQoB,QAAQ2M,KAGQ,sBAAxB/N,EAAQoB,QAAQ2M,IAXrBvO,KAAKS,MAAMwN,SAASxN,MAAM8B,QAAQC,KAAK,wBAcV,aAAxBhC,EAAQoB,QAAQ2M,IACrBvO,KAAKS,MAAMwN,SAASxN,MAAM8B,QAAQC,KAAK,kBAEV,gBAAxBhC,EAAQoB,QAAQ2M,KACrBtN,OAAOyN,cAAczN,OAAO0N,GAC5B3O,KAAKS,MAAMwN,SAASxN,MAAM8B,QAAQC,KAAK,sBAGvCxC,KAAKS,MAAMwN,SAASxN,MAAM8B,QAAQC,KAAK,YAuBvD,CAAEtB,SAAU,SAAU0N,aAAc,QAASC,SAAU,IAAe,iCAAqC5N,OAAOgD,QAAQ8G,UAAY,QAAUvK,EAAQoB,QAAQkN,SAAW,6BAC3K,CACI5N,SAAU,SACVwL,OAAQ,WACRC,QAAS,CACL6B,KAAM,uCACNtK,KAAM,UACN0I,KAAM,SACNI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,6DACL,EAAKsF,gBAAgBkD,OAAO,CAAC,KAAM,KAAMvO,EAAQoB,QAAQuJ,UADpD,SAEC,EAAKU,gBAAgBrD,OAAO7B,KAAK,KACnC,EAAK8G,SAAS,CACV/C,iBAAiB,MAJpB,2CAAF,kDAAC,KAWhB,CACIxJ,SAAU,QACVwL,OAAQ,mBACRC,QAAS,CACL1J,YAAa,OACbU,QAAS,KACTqL,gBAAiB,EACjBhM,YAAa,OACbiM,eAAe,EACfC,aAAa,EACbV,KAAMhO,EAAQoB,QAAQzB,QACtBiD,MAAOpD,KAAKqM,WACZ/I,MAAO,IACPH,YAAcwK,IACY,IAAlBA,EAAEtL,SAAS8M,GACXnP,KAAKS,MAAMwN,SAASxN,MAAM8B,QAAQC,KAAK,YAEhB,IAAlBmL,EAAEtL,SAAS8M,GAChBnP,KAAKyN,SAAS,CACVjD,iBAAiB,IAGE,IAAlBmD,EAAEtL,SAAS8M,IAChBnP,KAAKS,MAAM2O,gBAAgB,CACvBhF,iBAAiB,EACjBiF,YAAa,KAEjBrP,KAAKS,MAAMyM,cAAc,IACzBlN,KAAKS,MAAM6O,mBAAmB,IAC9BtP,KAAK0N,eAAeC,IAEG,IAAlBA,EAAEtL,SAAS8M,IAChBnP,KAAKyN,SAAS,CACVhD,UAAU,GACX,KACCzK,KAAKuP,mCASzBvP,KAAKS,MAAM8I,WAAWlC,QAAQ,CAACsH,EAAGrH,KAC9BlE,EAAMZ,KAAKmM,KAERvL,EAGLmM,6BAA8B,IAAD,kIACzB3N,IAAQ6F,IAAIpD,EAAW,gCACzB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KANC,uCAMI,WAAO6I,GAAP,SAAAjJ,EAAA,0DACEiJ,EAAQlJ,KAAKO,QADf,uBAEmB,EAAKkF,+BAA+B1D,QAC1CoH,QAHb,SAIQ,EAAK3F,4BAA4BhH,SAAS4M,UAAU/I,KAAK,KAC3D6I,EAAQlJ,KAAKiG,KAAKlF,QAAQ,CAACoF,EAAOkD,KAC9B,EAAKC,qBAAuB,CACxBtE,GAAImB,EAAMnB,GACVuE,IAAKpD,EAAMoD,IACXC,OAAQrD,EAAMqD,OACdC,UAAWtD,EAAMsD,UACjBC,cAAevD,EAAMuD,eAEb,EAAKjE,+BAA+B1D,QAC1CI,OAAO,EAAKmH,0BAd5B,uBAkBQ,EAAK9F,4BAA4BhH,SAAS4M,UAlBlD,8BAqBE9H,YAAO4H,EAAQlJ,KAAKQ,aAAc,QAAS,KArB7C,4CANJ,uDADyB,6CAiCnC/D,SAAU,IAAD,OACL,OACI,gBAAC,WAAD,KAEI,uBAAKkN,UAAW,6BACZ,uBAAKA,UAAU,YAAYC,MAAO,CAAEC,SAAU,SAC1C,uBAAKF,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,UAAD,CAAS7M,MAAOpD,KAAKoO,WAAYgC,cAAepQ,KAAK2J,qBAAsB/F,IAAMA,GAAQ5D,KAAKgL,QAAUpH,MAGhH,uBAAKqM,UAAU,MAAMC,MAAO,CAAEG,UAAW,UACzC,uBAAKJ,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,SAAD,CACIK,OAAQtQ,KAAK+J,MAAMC,OACnBuG,gBAAiB,SACjBC,SAAUxQ,KAAK+J,MAAME,UACrBwG,WAAY,QACZ7C,UAAW5L,EACX0O,OAAQ,OACRC,qBAAqB,GACrB,2BACK3Q,KAAKS,MAAMwN,eAQpC,gBAAC,QAAD,CAAO2C,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACrFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF9C,QAASrO,KAAK+J,MAAMO,MAAOhH,MAAO,OAAQoN,OAAQ,OAClD5F,MAAM,qHACNsB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAC3B1B,QAAS,SACT2B,QAAS,CACL6B,KAAM,mEAAqDtK,KAAM,UAAW4I,KAAM,mEAAqDF,KAAM,QAC3II,QAAUW,IACR3N,KAAKkO,4BASzB,gBAAC,WAAD,CAAUkD,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,YACX,gBAAC,WAAD,KAEI,iFACA,grCACA,iCACA,yBAAG,wDACH,gYACA,kYACA,uHACA,oDACA,kDAAoB,qBAAG9O,KAAK,6BAAR,8BACpB,4CAAmB,qBAAGA,KAAK,8BAAR,wBACnB,iCACA,yBAAG,0FACH,iJACA,uJACA,uIACA,6UACA,wPACA,iCACA,yBAAG,6GACH,yFACA,4MACA,gTACA,mPACA,gJACA,0PACA,2MACA,0HACA,iCACA,yBAAG,0GACH,mYACA,iCACA,yBAAG,yIACH,0gBAA4c,8CAA5c,YAA6e,qCAA7e,+BACA,iCACA,yBAAG,0JACH,mNACA,0BACI,2GACA,gHACA,0MACA,kLACA,qKACA,kLACA,+OACA,8OACA,yNAEJ,iCACA,yBAAG,oKACH,yeAA6Y,qBAAGA,KAAK,8BAAR,uBAA7Y,0FACA,iCACA,yBAAG,uDACH,yBAAG,8CACH,iCACA,iCACA,sCAOpB,gBAAC,QAAD,CAAOyP,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACrFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF9C,QAASrO,KAAK+J,MAAMQ,oBAAqBjH,MAAO,OAAQoN,OAAQ,OAChE5F,MAAM,8DACNsB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAC3B1B,QAAS,SACT2B,QAAS,CACL6B,KAAM,4DAAqDtK,KAAM,UAAW4I,KAAM,4DAAqDF,KAAM,QAC3II,QAAUW,IACR/L,IAAQ4E,KAAK7B,EAAe,kBACxB,KACA,CACI8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACVnD,OAAO,EACPC,qBAAqB,IAIzB3C,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,YAUlH,gBAAC,WAAD,CAAUsK,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,YACX,gBAAC,WAAD,KAEI,yBAAG,igBAAH,KACA,gRAAqL,8BAAQ,0CAA7L,wKAA2W,6FAC3W,qZAAyU,8BAAQ,0CAAjV,iwBACA,0BACI,ynBACA,gXACA,+TACA,0cAEJ,2SACA,gHAOpB,gBAAC,QAAD,CAAOW,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMhG,MAAO,uBAC7DkG,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF9C,QAASrO,KAAK+J,MAAMS,gBACpBlH,MAAM,OAAOoN,OAAQ,OACrBtE,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,cACNtK,KAAM,UACN4I,KAAM,cACNF,KAAM,QACNI,QAAUW,IACN/L,IAAQ6F,IAA4B,gBAAxBjH,EAAQoB,QAAQ2M,IAAwB5J,EAAe,mCAAqC3E,KAAKkL,cAAcC,QAAUxG,EAAe,4BAA8B3E,KAAKkL,cAAcC,QAAS,CAC1M1E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAMC,GAAN,SAAAL,EAAA,sDACEK,EAAIN,KAAKO,SACT,EAAKpG,MAAM2O,gBAAgBuC,OAAOC,OAAO,GAAI,CACzCxH,iBAAiB,EACjBiF,YAAazI,EAAIN,KAAKiG,QAE1BtL,OAAOC,SAASC,KAAOF,OAAOC,SAAS2Q,UAGvCjK,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KATzC,2CALV,uDAiBKC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,UAKzC,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACpDI,QAAS,KACPhN,KAAKyN,SAAS,CACVjD,iBAAiB,SASzC,gBAAC,WAAD,CAAU4G,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAM6B,SAAU9R,KAAKkL,cAAekF,cAAepQ,KAAK6J,6BAA8BjG,IAAMA,GAAQ5D,KAAKiL,gBAAkBrH,EACvHmO,uBAAuB,GAEvB,gBAAC,YAAD,CAAWC,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAU,UAAUC,WAAW,cAAcC,cAAe,CACpEC,WAAYrS,KAAK0L,sBACjB4G,UAAW,KACXrP,YAAa,QAEb,gBAAC,QAAD,CAAOuL,KAAK,wBACZ,gBAAC,eAAD,CAAc+D,QAAQ,2CAUtD,gBAAC,QAAD,CAAO3B,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMhG,MAAO,uBAC7DkG,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF9C,QAASrO,KAAK+J,MAAMW,gBACpBpH,MAAM,MAAMoN,OAAQ,MACpBtE,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,oBACNtK,KAAM,UACN4I,KAAM,oBACNF,KAAM,SACN4F,SAAUxS,KAAK+J,MAAMY,mBACrBqC,QAAUW,IACN3N,KAAKyN,SAAS,CACV9C,oBAAoB,IAExB/I,IAAQ4E,KAAKxC,EAAU,wBACjBhE,KAAKkL,cACP,CACIzE,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACFkH,EAAK1N,MAAM,KACPO,aAAaoN,WAAW,UACxBpN,aAAaoN,WAAW,WACxBpN,aAAaoN,WAAW,eAExBnH,EAAIN,KAAKnG,QAAUyG,EAAIN,KAAK+E,UAAUwE,IAAM,IAAMjJ,EAAIN,KAAK+E,UAAUyE,OACrElJ,EAAIN,KAAKjD,KAAOuD,EAAIN,KAAK+E,UAAUoH,iBACnC7L,EAAIN,KAAKiI,IAAM3H,EAAIN,KAAK+E,UAAUkD,IAClC3H,EAAIN,KAAKgF,GAAK1E,EAAIN,KAAK+E,UAAUC,GACjC1E,EAAIN,KAAK6E,QAAUnL,KAAKkL,cAAcC,QACtCvE,EAAIN,KAAKwI,SAAWlI,EAAIN,KAAK+E,UAAUyD,SACvCnO,aAAaG,QAAQ,SAAUO,KAAKC,UAAUsF,EAAIN,OAClD9F,EAAQoB,QARe,GASvB5B,KAAKS,MAAM2O,gBAAgB,CACvBhF,iBAAiB,EACjBiF,YAAa,KAEW,mBAAxB7O,EAAQoB,QAAQ2M,KAGa,iBAAxB/N,EAAQoB,QAAQ2M,KAGQ,sBAAxB/N,EAAQoB,QAAQ2M,KAGQ,SAAxB/N,EAAQoB,QAAQ2M,KAGQ,gBAAxB/N,EAAQoB,QAAQ2M,IAXrBtN,OAAOC,SAASC,KAAO,uBAcM,aAAxBX,EAAQoB,QAAQ2M,IACrBtN,OAAOC,SAASC,KAAO,iBAEM,gBAAxBX,EAAQoB,QAAQ2M,IACrBtN,OAAOC,SAASC,KAAO,oBAGM,mBAAxBX,EAAQoB,QAAQ2M,IACrBtN,OAAOC,SAASC,KAAO,sBAGvBF,OAAOC,SAASC,KAAO,YAMlC4F,MAAOiH,IAEJhO,KAAKyN,SAAS,CACV9C,oBAAoB,EACpBD,iBAAiB,IAErB9C,YAAO,sHAAoE,cAK/F,CACI1G,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACpDI,QAAS,KACPhN,KAAKyN,SAAS,CACV/C,iBAAiB,SASzC,gBAAC,WAAD,CAAU0G,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAM6B,SAAU9R,KAAKkL,cAAekF,cAAepQ,KAAK6J,6BAA8BjG,IAAMA,GAAQ5D,KAAKiL,gBAAkBrH,EACvHmO,uBAAuB,GAEvB,gBAAC,YAAD,CAAWC,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAU,UAAUC,WAAW,cAAcC,cAAe,CACpEC,WAAYrS,KAAK6L,gBACjByG,UAAW,KACXrP,YAAa,QAEb,gBAAC,QAAD,CAAOuL,KAAK,wBACZ,gBAAC,eAAD,CAAc+D,QAAQ,2CAUtD,gBAAC,QAAD,CAAO3B,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAMU,SACpBK,MAAO,8BACPsB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,gBACNtK,KAAM,UACN4I,KAAM,gBACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAM2I,gBACrBrE,SAAS,EACTrB,QAAQ,WAAD,4BAAE,WAAOW,GAAP,iBAAApH,EAAA,sDACDoM,EAAU,EAAKpH,YAAYqH,UAAUC,MAAM,KAC/C5G,QAAQC,IAAIyG,QACI9R,IAAZ8R,EACAG,YAAM,oEAGFC,EAAgB,GACpBJ,EAAQtL,QAAS2L,IACTA,EAAOxG,OAAS,GAChBuG,GAAiB,+BAAuBC,EAAS,0CAE5CA,EAAOxG,OAAS,GACrBuG,GAAiB,+BAAuBC,EAAS,+BAE5CC,MAAMD,KACXD,GAAiB,+BAAuBC,EAAS,gDAGnC,KAAlBD,EACAD,YAAM,2DAA6DC,EAAgB,WAEjE,2FACLG,YADK,2FACgB,8BAC3BvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK7B,EAAe,2BAA4B,EAAK4G,YAAa,CACtE9E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAK4G,SAAS,CAChBhD,UAAU,IAHhB,OAKE7C,YAAO,iDAAkC,UAAW,KALtD,sBAOEA,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KAPrF,2CALV,uDAeKC,MAAMC,IACH,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,cAtDlC,2CAAF,mDAAC,KAmEhB,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sDACP,EAAKkH,SAAS,CACVhD,UAAU,IAFP,2CAAF,kDAAC,OAU1B,gBAAC,WAAD,CAAU2G,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAMgC,SAAU,EAAGH,SAAU9R,KAAKuL,YAAa6E,cAAepQ,KAAK4T,2BAA4BhQ,IAAMA,GAAQ5D,KAAK6T,cAAgBjQ,GAC9H,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAW,YAAaC,WAAY,YAAaC,cAAe,CACxE7K,MAAOvH,KAAK+J,MAAMa,QAClBkJ,YAAa,mGAEb,gBAAC,eAAD,CAAcvB,QAAQ,0BACtB,gBAAC,QAAD,CAAO/D,KAAK,gBAEhB,gBAAC,aAAD,CAAY0D,UAAW,QAASC,WAAY,YAAaC,cAAe,CACpEhC,cAAgBzC,IACZ3N,KAAK+T,oCAAsCpG,EAAEC,WAEjDhK,IAAMA,IAAU5D,KAAK+T,oCAAsCnQ,GAC3DoQ,QAAUrG,IACN9C,SAASoJ,eAAe,8BAA8BC,UAAYlU,KAAK+T,oCAAoCjR,WAAW+K,OAAO,QAAQrB,UAGzI,gBAAC,eAAD,CAAc+F,QAAQ,gCACtB,gBAAC,QAAD,CAAO/D,KAAK,YAGpB,gBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,GACxC,uBAAKhC,UAAU,OACX,uBAAKA,UAAU,YACX,kEAEJ,uBAAKA,UAAU,WAAWd,GAAG,6BAA6Be,MAAO,CAAEiE,UAAW,YAKtF,gBAAC,YAAD,CAAWnC,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,KACI,gBAAC,IAAD,CACImC,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK+L,+BACjBuI,qBAAqB,EACrBrO,IAAK,KACLtC,QAAQ,KACRC,IAAMA,GAAQ5D,KAAK8J,4BAA8BlG,EACjDwM,cAAgBzC,IACZ3N,KAAK8J,4BAA8B6D,EAAEC,WAEzC2G,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,OACN1I,KAAM,UACN8I,QAAQ,WAAD,4BAAE,4BAAAzG,EAAA,sDACL,EAAKgF,YAAYC,QAAU,IACvBlF,EAAO,EAAKwD,4BAA4BhH,SAAS4R,uBAC5ClI,OAAS,GAEdlG,EAAKe,QAASsN,IACL,EAAKpJ,YAAYC,QAAQ8C,SAASqG,EAAI3E,iBACnC2E,EAAI3E,cAAc4E,WAAW,OAC7BD,EAAI3E,cAAgB2E,EAAI3E,cAAcxI,MAAM,IAGhD,EAAK+D,YAAYC,SAAWmJ,EAAI3E,cAAgB,OAIjB,MAAvC,EAAKzE,YAAYC,QAAQhE,OAAO,KAChC,EAAK+D,YAAYC,QAAU,EAAKD,YAAYC,QAAQhE,MAAM,GAAI,IAElE,EAAKiG,SAAS,CAAE,QAAW,EAAKlC,YAAYC,UAlBvC,2CAAF,kDAAC,OAwBxBqJ,UAAW,CAAEC,KAAM,YACnBC,oBAAoB,GAEpB,gBAAC,UAAD,CAASD,KAAM,MAAOE,UAAU,EAAMC,eAAe,IACrD,gBAAC,YAAD,CAAWC,SAAS,IACpB,gBAAC,SAAD,CAAQhD,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,KAAKC,cAAc,IACrD,gBAAC,SAAD,CAAQlD,UAAW,SAAUiD,QAAQ,QAAQE,SAAS,SAASD,cAAc,IAC7E,gBAAC,SAAD,CAAQlD,UAAW,YAAaiD,QAAQ,kBAAQE,SAAS,SAASD,cAAc,IAChF,gBAAC,SAAD,CAAQlD,UAAW,gBAAiBiD,QAAQ,cAAcE,SAAS,SAASD,cAAc,QAInG,iCASxBE,mBA15BSvL,IAAK,CACzBI,aAAcJ,EAAMI,aAAaf,KACjCG,WAAYQ,EAAMwL,WAAWhM,aATLiM,IACjB,CACHpG,gBAAkB9I,GAASkP,EAASrM,GAAoB7C,IACxD4G,cAAgB5G,GAASkP,EAASlM,GAAwBhD,IAC1DgJ,mBAAqBhJ,GAASkP,EAAShM,GAAwBlD,MA65BxDgP,CAA6C5L,I,UCx7B7C,MAAM+L,WAAoBxT,YACrClC,YAAYU,GACRyB,MAAMzB,GACNoK,SAASC,MAAQ7J,OAAOgD,QAAQ8G,UAEpChI,SACI,OAAO,uBAAKoM,GAAG,cAAcc,UAAU,UACnC,uBAAKA,UAAU,+BACVjQ,KAAKS,MAAMwN,UAEhB,gBAAC,KAAD,Q,cC0FGyH,OApGG,IAAmE,IAAtDC,EAAqD,EAAhE/H,UAA8BgI,EAAkC,EAA1CC,OAAsBC,EAAoB,EAA1BC,KAAeC,EAAW,8CAEhF,IAAIC,EAAuB,WAATH,EACdI,EAA0B,cAATJ,EACrB,GAAItV,EAAQD,iBAAmB0V,EAC3B,OAAO,gBAAC,IAAD,CAAUE,GAAG,MAEnB,KAAK3V,EAAQD,iBAAoB0V,GAAgBC,GAClD,OAAO,gBAAC,IAAD,CAAUC,GAAG,WAEnB,IAAK3V,EAAQD,iBAAmB2V,EACjC,OAAO,gBAAC,IAAD,CAAUC,GAAG,cAExB,IAAIC,EAAIN,EAAKO,UAAU,GACvB,GAAID,EAAG,CACH,GAAU,aAANA,EACA,OAAO,gBAAC,IAAD,iBAAWJ,EAAX,CAAiBjT,OAAQtC,GAC5B,gBAACmV,EAAD,KACI,gBAACD,EAAclV,OAItB,GAAU,qBAAN2V,EACL,OAAO,gBAAC,IAAD,iBAAWJ,EAAX,CAAiBjT,OAAQtC,GAC5B,gBAACmV,EAAD,KACI,gBAACD,EAAclV,OAItB,GAAU,SAAN2V,EACL,OAAO,gBAAC,IAAD,iBAAWJ,EAAX,CAAiBjT,OAAQtC,GAC5B,gBAACmV,EAAD,KACI,gBAACD,EAAclV,OAItB,GAAU,4BAAN2V,EACL,OAAO,gBAAC,IAAD,iBAAWJ,EAAX,CAAiBjT,OAAQtC,GAC5B,gBAACmV,EAAD,KACI,gBAACD,EAAclV,OAItB,GAAU,gDAAN2V,EACL,OAAO,gBAAC,IAAD,iBAAWJ,EAAX,CAAiBjT,OAAQtC,GAC5B,gBAACmV,EAAD,KACI,gBAACD,EAAclV,OAItB,GAAU,iEAAN2V,EACL,OAAO,gBAAC,IAAD,iBAAWJ,EAAX,CAAiBjT,OAAQtC,GAC5B,gBAACmV,EAAD,KACI,gBAACD,EAAclV,OAItB,GAAU,+BAAN2V,EACL,OAAO,gBAAC,IAAD,iBAAWJ,EAAX,CAAiBjT,OAAQtC,GAC5B,gBAACmV,EAAD,KACI,gBAACD,EAAclV,OAK3B,IAAI6V,EAAS9V,EAAQoB,QAAQyB,KAAKkT,KAAK5H,GAAKA,EAAErM,OAAS8T,GAEvD,GAAe,OAAXE,OAA6BzV,IAAXyV,KACL,MAATR,EACS,WAATA,EACS,6BAATA,EACS,cAATA,EACS,yBAATA,EACS,wBAATA,EACS,mBAATA,EACS,sBAATA,EACS,UAATA,EACS,aAATA,EACS,iDAATA,EACS,kEAATA,GAIA,OAAO,gBAAC,IAAD,CAAUK,GAAG,WAUhC,OAAO,gBAAC,IAAD,iBAAWH,EAAX,CAAiBjT,OAAQtC,GAC5B,gBAACmV,EAAD,KACI,gBAACD,EAAclV,Q,SChF3B,MAAM+V,WAAkBvU,IAAM0T,UAC5B5V,YAAYU,GACVyB,MAAMzB,GACNT,KAAKyW,4BAA8BzW,KAAKyW,4BAA4B7M,KAAK5J,MACzEA,KAAK0W,eAAiB,KACtB1W,KAAK6L,gBAAkB,IAAIzD,IACzB,CACEuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACjB3F,IAAK,KACL+B,QAAShE,EAAU,uBAGzB,IACErD,aAAaoN,WAAW,UACxBpN,aAAaoN,WAAW,WACxBpN,aAAaoN,WAAW,eACxB,MAAOC,IAET,MAAM2I,EAAOhW,aAAaC,QAAQ,QACtB,MAAR+V,GACFC,KAAO/T,QAAQ8T,GAEjB9L,SAASC,MAAQ7J,OAAOgD,QAAQ8G,UAChC/K,KAAK6W,aAAe7W,KAAK6W,aAAajN,KAAK5J,MAC3CA,KAAK8R,SAAW,CACdgF,aAAc,GACdC,MAAO,GACPC,MAAO,CAAE1L,GAAI,MACb2L,UAAW,OAGbjX,KAAKkX,cAAgB,CACnB1I,KAAM,aACNtK,KAAM,UACNiT,mBAAmB,GAGrBnX,KAAKoX,gBAAkB,CACrBtC,KAAM,YAGR9U,KAAK6L,gBAAgBrD,OAAO7B,KAAKC,IAC3BA,EAAI4F,OAAS,GACfxM,KAAK0W,eAAe5T,WAAW+K,OAAO,QAASjH,EAAI,GAAG0E,MAM5DmL,4BAA4B9I,GAC1B3N,KAAK0W,eAAiB/I,EAAEC,UAE1BiJ,aAAalJ,GACX/L,IAAQ4E,KAAKxC,EAAU,oBACnBhE,KAAK8R,UACNnL,KAAKC,IACJkH,EAAK1N,MAAM,KAETwG,EAAIN,KAAKnG,QAAUyG,EAAIN,KAAK+E,UAAUwE,IAAM,IAAMjJ,EAAIN,KAAK+E,UAAUyE,OACrElJ,EAAIN,KAAKjD,KAAOuD,EAAIN,KAAK+E,UAAUoH,iBACnC7L,EAAIN,KAAKiI,IAAM3H,EAAIN,KAAK+E,UAAUkD,IAClC3H,EAAIN,KAAKgF,GAAK1E,EAAIN,KAAK+E,UAAUC,GACjC1E,EAAIN,KAAK6E,QAAUnL,KAAK8R,SAASkF,MAAM1L,GACvC1E,EAAIN,KAAKwI,SAAWlI,EAAIN,KAAK+E,UAAUyD,SACvCnO,aAAaG,QAAQ,SAAUO,KAAKC,UAAUsF,EAAIN,OAGlD9F,EAAQoB,QAVe,GAaK,mBAAxBpB,EAAQoB,QAAQ2M,KAGa,iBAAxB/N,EAAQoB,QAAQ2M,KAGQ,sBAAxB/N,EAAQoB,QAAQ2M,KAGQ,SAAxB/N,EAAQoB,QAAQ2M,KAGQ,gBAAxB/N,EAAQoB,QAAQ2M,IAXvBvO,KAAKS,MAAM8B,QAAQC,KAAK,wBAcO,aAAxBhC,EAAQoB,QAAQ2M,IACvBvO,KAAKS,MAAM8B,QAAQC,KAAK,kBAEO,gBAAxBhC,EAAQoB,QAAQ2M,IACvBvO,KAAKS,MAAM8B,QAAQC,KAAK,qBAEO,iBAAxBhC,EAAQoB,QAAQ2M,KAAsD,UAA5BvO,KAAK8R,SAASmF,UAC/DjX,KAAKS,MAAM8B,QAAQC,KAAK,iBAEO,mBAAxBhC,EAAQoB,QAAQ2M,IACvBvO,KAAKS,MAAM8B,QAAQC,KAAK,uBAGxBxC,KAAKS,MAAM8B,QAAQC,KAAK,aAK7BuE,MAAOiH,IAEFA,EAAMtG,SACRE,YAAOoG,EAAMtG,SAASpB,KAAM,QAAS,KAC5B0H,EAAMqF,QACfzL,YAAOoG,EAAMqF,QAAS,QAAS,KAE/BzL,YAAO,6BAAyB,QAAS,OAI/C+F,EAAE0J,iBAGJC,eACE,OAAIrW,OAAOgD,QAAQsT,iBACV,kBAAC,IAAD,CAAMC,OAAO,SAASrB,GAAI,wBAA1B,0BAEA,GAIXsB,sBACE,OAAIxW,OAAOgD,QAAQyT,wBACV,kBAAC,IAAD,CAAMF,OAAO,QAAQrB,GAAI,aAAzB,6EAEA,GAIXwB,aACE,MAAiC,cAA7B1W,OAAOgD,QAAQqI,UAEf,kBAAC,IAAMsL,SAAP,KACE,yBAAK3H,UAAU,OACb,yBAAKA,UAAU,YACb,uBAAG9O,KAAK,8DAA8DqW,OAAO,SAASK,IAAI,uBACxF,yBAAKC,IAAI,uBAAuBC,IAAI,yBAAyB7H,MAAO,CAAE8H,OAAQ,WAGlF,yBAAK/H,UAAU,YACb,uBAAG9O,KAAK,mEAAmEqW,OAAO,SAASK,IAAI,uBAC7F,yBAAKC,IAAI,yBAAyBC,IAAI,iCAOzC,GAIXE,2BACE,OAAIhX,OAAOgD,QAAQiU,OAEf,kBAAC,IAAMN,SAAP,KAEI,yBAAK1H,MAAO,CAAEiI,SAAU,QAAUC,wBAAyB,CAAEC,OAAQpX,OAAOgD,QAAQqU,gBAKnF,kBAAC,IAAMV,SAAP,MAMX7U,SACE,OACE,yBAAKoM,GAAG,YAAYc,UAAU,aAC5B,0BAAMd,GAAG,OAAOoJ,SAAUvY,KAAK6W,aAAc3G,MAAO,CAAEsI,WAAY,OAAQC,YAAa,SACrF,kBAAC,IAAD,CACE3G,SAAU9R,KAAK8R,SACf4G,UAAU,EACVC,qBAAqB,EACrB5G,uBAAuB,GAEvB,kBAAC,YAAD,CAAWoD,QAAQ,mCACjB,kBAAC,aAAD,CAAYjD,UAAU,eAAeC,WAAW,aAC9C,kBAAC,QAAD,CAAO3D,KAAK,iCACZ,kBAAC,eAAD,CAAc+D,QAAQ,wDAExB,kBAAC,aAAD,CAAYL,UAAU,QAAQC,WAAW,YAAYC,cAAepS,KAAKoX,iBACvE,kBAAC,QAAD,CAAO5I,KAAK,eACZ,kBAAC,eAAD,CAAc+D,QAAQ,sCAExB,kBAAC,aAAD,CAAYL,UAAU,WAAWC,WAAW,cAAcC,cAAe,CACvEC,WAAYrS,KAAK6L,gBACjByG,UAAW,KACXrP,YAAa,MACbmN,cAAepQ,KAAKyW,4BACpB7S,IAAMA,IAAU5D,KAAK0W,eAAiB9S,KAGtC,kBAAC,QAAD,CAAO4K,KAAK,wBACZ,kBAAC,eAAD,CAAc+D,QAAQ,oCAExB,kBAAC,aAAD,CAAYL,UAAU,YAAYC,WAAW,cAAcC,cAAe,CACxEC,WAAY,CAAC,CAAE/G,GAAI,MAAOsN,MAAO,OACjC,CAAEtN,GAAI,QAASsN,MAAO,UACtBtG,UAAW,KACXrP,YAAa,UAGb,kBAAC,QAAD,CAAOuL,KAAK,4BAGhB,kBAAC,aAAD,CAAYqK,oBAAoB,OAC9B3B,cAAelX,KAAKkX,iBAGxB,6BAAM,6BACLlX,KAAKiY,2BACN,6BAAM,6BACLjY,KAAKyX,sBACN,6BAAM,6BACLzX,KAAKsX,eACN,6BAAM,6BACN,yBAAKQ,IAAK,IAAM7W,OAAOgD,QAAQ6U,WAAYf,IAAI,YAC/C,6BACC/X,KAAK2X,gBAODnB,UC7Of,MAAMuC,WAAqB9W,IAAM0T,UAC/B5V,YAAYU,GACVyB,MAAMzB,GACNT,KAAKgZ,aAAe,CAClB,CAAEC,KAAM,OACR,CAAEA,KAAM,SACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,QACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,UACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,QACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,UACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,QACR,CAAEA,KAAM,KACR,CAAEA,KAAM,KACR,CAAEA,KAAM,MAEVjZ,KAAK+J,MAAQ,CACXmP,SAAU,GACVC,SAAU,GACVC,aAAc,GACdC,aAAc,KACdC,aAAc,KACdC,iBAAkB,KAClBC,YAAa,KACbC,WAAY,iCACZC,WAAY,4BACZC,WAAY,uCAEd3Z,KAAK4Z,gBAAkB,GACvB5Z,KAAK6Z,cAAgB,KACrB7Z,KAAK8Z,oBAAsB,GAC3B9Z,KAAK6W,aAAe7W,KAAK6W,aAAajN,KAAK5J,MAC3CA,KAAK+Z,mBAAqB/Z,KAAK+Z,mBAAmBnQ,KAAK5J,MACvDA,KAAK8R,SAAW,CACdgF,aAAc,GACdC,MAAO,GACPlH,IAAK,GACLC,OAAQ,GACRkK,UAAW,EACXC,IAAK,GACLC,IAAK,GACLC,UAAU,EACVC,WAAW,EACXC,QAAS,EACT5L,QAAS,EACTwK,KAAM,GACNqB,OAAQ,GACRC,UAAW,GACXC,QAAS,GACTC,UAAW,GACXC,gBAAiB,IAGnB1a,KAAKkX,cAAgB,CACnB1I,KAAM,gBACNtK,KAAM,UACNiT,mBAAmB,GAGrBnX,KAAKoX,gBAAkB,CACrBtC,KAAM,YAIJ6F,oBAAqB,IAAD,kIAGlB,EAAKC,cAAcjU,KAAK,QAAWI,MAAMiH,IAC7CpG,YAAOoG,EAAO,QAAS,OAJD,uBAOlB,EAAK6M,cAAclU,KAAK,QAAWI,MAAMiH,IAC7CpG,YAAOoG,EAAO,QAAS,OARD,uBAWlB,EAAK8M,cAAcnU,KAAK,QAAWI,MAAMiH,IAC7CpG,YAAOoG,EAAO,QAAS,OAZD,6CAkB1B+L,qBACE/Z,KAAK4Z,gBAAkB5Z,KAAK6Z,cAAc/W,SAAS4R,sBAGrDkG,cACE,OAAO,IAAIG,QAAQ,CAACC,EAASC,KAC3Bjb,KAAKyN,SAAS,CACZgM,WAAY,mCAEd7X,IAAQ6F,IAAIzD,EAAU,oBACnB2C,KAAKC,IACAA,EAAIN,KAAKO,SACX7G,KAAKyN,SAAS,CACZ0L,SAAUvS,EAAIN,KAAKiG,KACnBkN,WAAY,KAEdzZ,KAAKyN,SAAS,CAAEgM,WAAY,KAC5BuB,EAAQ,oCAIRC,EAAOrU,EAAIN,KAAKQ,gBACjBC,MAAM,KACP/G,KAAKyN,SAAS,CAAEgM,WAAY,KAC5BwB,EAAO,qEAKfJ,cACE,OAAO,IAAIE,QAAQ,CAACC,EAASC,KAC3Bjb,KAAKyN,SAAS,CACZkM,WAAY,wCAEd/X,IAAQ6F,IAAIzD,EAAU,uBAAwB,MAC3C2C,KAAKC,IACAA,EAAIN,KAAKO,SACX7G,KAAKyN,SAAS,CACZ2L,aAAcxS,EAAIN,KAAKiG,KACvBoN,WAAY,eAEdqB,EAAQ,yCAGRhb,KAAKyN,SAAS,CAAEkM,WAAY/S,EAAIN,KAAKQ,eACrCmU,EAAOrU,EAAIN,KAAKQ,iBAGnBC,MAAM,KACL/G,KAAKyN,SAAS,CAAEkM,WAAY,2CAC5BsB,EAAO,0EAKfH,cACE,OAAO,IAAIC,QAAQ,CAACC,EAASC,KAC3Bjb,KAAKyN,SAAS,CAAEiM,WAAY,8BAC5B9X,IAAQ6F,IAAIzD,EAAU,mBACpB,MACC2C,KAAKC,IACAA,EAAIN,KAAKO,SACX7G,KAAKyN,SAAS,CACZyL,SAAUtS,EAAIN,KAAKiG,KACnBmN,WAAY,eAEdsB,EAAQ,+BAGRhb,KAAKyN,SAAS,CAAEiM,WAAY9S,EAAIN,KAAKQ,eACrCmU,EAAOrU,EAAIN,KAAKQ,iBAGnBC,MAAM,KACL/G,KAAKyN,SAAS,CAAEiM,WAAY,+BAC5BuB,EAAO,gEAKfpE,aAAalJ,GACX3N,KAAK8R,SAAS4I,gBAAkB1a,KAAK4Z,gBACrChY,IAAQ4E,KAAKxC,EAAU,gBACnBhE,KAAK8R,UACNnL,KAAKC,IACAA,EAAIN,KAAKO,SACXe,YAAO,6GAAwE,UAAW,KAC1F3G,OAAOia,WAAW,KAChBlb,KAAKS,MAAM8B,QAAQC,KAAK,WACvB,MAGHoF,YAAO,wBAAqBhB,EAAIN,KAAKQ,aAAc,UAAW,OAGjEC,MAAOiH,IAEFA,EAAMtG,SACRE,YAAOoG,EAAMtG,SAASpB,KAAKiM,QAAS,QAAS,KACpCvE,EAAMqF,QACfzL,YAAOoG,EAAMqF,QAAS,QAAS,KAE/BzL,YAAO,+BAA2B,QAAS,OAIjD+F,EAAE0J,iBAGJtU,SACE,OACE,yBAAKoM,GAAG,aACN,yBAAKc,UAAU,OACb,yBAAKA,UAAU,aAEb,0BAAMd,GAAG,OAAOoJ,SAAUvY,KAAK6W,cAC7B,kBAAC,IAAD,CACE/E,SAAU9R,KAAK8R,SACf4G,UAAU,EACVC,qBAAqB,EACrB5G,uBAAuB,GAEvB,kBAAC,YAAD,CAAWoD,QAAQ,uBAAkBlD,SAAU,GAC7C,kBAAC,aAAD,CAAYC,UAAU,eAAeC,WAAW,aAC9C,kBAAC,QAAD,CAAO3D,KAAK,iCACZ,kBAAC,eAAD,CAAc+D,QAAQ,wDAExB,kBAAC,aAAD,CAAYL,UAAU,QAAQC,WAAW,YAAYC,cAAepS,KAAKoX,iBACvE,kBAAC,QAAD,CAAO5I,KAAK,eACZ,kBAAC,eAAD,CAAc+D,QAAQ,sCAExB,kBAAC,aAAD,CAAYL,UAAU,QAAQC,WAAW,aACvC,kBAAC,QAAD,CAAO3D,KAAK,UACZ,kBAAC,eAAD,CAAc+D,QAAQ,iCAExB,kBAAC,aAAD,CAAYL,UAAU,YAAYC,WAAW,eAC3C,kBAAC,QAAD,CAAO3D,KAAK,uBACZ,kBAAC,eAAD,CAAc+D,QAAQ,+CAG1B,kBAAC,YAAD,CAAW4C,QAAQ,+BAAqBlD,SAAU,GAChD,kBAAC,aAAD,CAAYC,UAAU,MAAMC,WAAW,aACrC,kBAAC,QAAD,CAAO3D,KAAK,OACZ,kBAAC,eAAD,CAAc+D,QAAQ,8BAExB,kBAAC,aAAD,CAAYL,UAAU,SAASC,WAAW,aACxC,kBAAC,QAAD,CAAO3D,KAAK,UACZ,kBAAC,eAAD,CAAc+D,QAAQ,iCAExB,kBAAC,aAAD,CAAYL,UAAU,MAAMC,WAAW,YACrCC,cACE,CACE+I,KAAM,iBACNC,UAAW,CAAE,EAAK,YAGtB,kBAAC,QAAD,CAAO5M,KAAK,aAEd,kBAAC,aAAD,CAAY0D,UAAU,MAAMC,WAAW,YACrCC,cACE,CACE+I,KAAM,iBACNC,UAAW,CAAE,EAAK,YAGtB,kBAAC,QAAD,CAAO5M,KAAK,QACZ,kBAAC,eAAD,CAAc+D,QAAQ,+BAExB,kBAAC,aAAD,CAAYL,UAAU,WAAWC,WAAW,cAC1C,kBAAC,QAAD,CAAO3D,KAAK,eAEd,kBAAC,aAAD,CAAY0D,UAAU,YAAYC,WAAW,cAC3C,kBAAC,QAAD,CAAO3D,KAAK,iBAGhB,kBAAC,YAAD,CAAW2G,QAAQ,sCAAuBlD,SAAU,GAElD,kBAAC,aAAD,CAAYC,UAAW,UACrBC,WAAW,cACXC,cAAe,CACb0B,YAAa9T,KAAK+J,MAAM4P,WACxBvW,MAAOpD,KAAK+J,MAAMqP,aAClB5V,eAAe,EACf+D,MAAOvH,KAAK+J,MAAMwP,iBAClBtW,YAAa,MACbqP,UAAW,KACX+I,WAAW,EAEXC,eAAiB3N,IACC,KAAZA,EAAEpG,MAA2B,OAAZoG,EAAEpG,OAGrBvH,KAAKyN,SAAS,CACZ8L,iBAAkB5L,EAAEpG,WAM5B,kBAAC,eAAD,CAAcgL,QAAQ,0CACtB,kBAAC,QAAD,CAAO/D,KAAK,qBAGd,kBAAC,aAAD,CAAY0D,UAAW,OACrBC,WAAW,cACXC,cAAe,CACb0B,YAAa,uBACb1Q,MAAOpD,KAAKgZ,aACZxV,eAAe,EACf+D,MAAOvH,KAAK+J,MAAMyP,YAClBvW,YAAa,OACbqP,UAAW,OACXgJ,eAAiB3N,IACC,KAAZA,EAAEpG,MAA2B,OAAZoG,EAAEpG,OAGrBvH,KAAKyN,SAAS,CACZ+L,YAAa7L,EAAEpG,WAKvB,kBAAC,eAAD,CAAcgL,QAAQ,oCACtB,kBAAC,QAAD,CAAO/D,KAAK,gBAGhB,kBAAC,YAAD,CAAW2G,QAAQ,kBAAkBlD,SAAU,GAE7C,kBAAC,aAAD,CAAYC,UAAW,UACrBC,WAAW,cACXC,cAAe,CACb0B,YAAa9T,KAAK+J,MAAM2P,WACxBrH,WAAYrS,KAAK+J,MAAMmP,SACvB1V,eAAe,EACf+D,MAAOvH,KAAK+J,MAAMuP,aAClBrW,YAAa,WACbsY,iBAAiB,EACjBjJ,UAAW,KACX0B,QAAUrG,IACR,MAAM6N,EAAQ7N,EAAEC,UAAU9K,WAAW2Y,kBAAkBjN,KACnDgN,EAAM9H,WAAWlH,QAAU,GAI7B5K,IAAQ6F,IAAIzD,EAAU,yBAA2BwX,EAC/C,MACC7U,KAAKC,IACAA,EAAIN,KAAKO,SACX7G,KAAKyN,SAAS,CACZyL,SAAUtS,EAAIN,KAAKiG,OAErBoB,EAAEC,UAAU9K,WAAW4Y,QAIvB9T,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAKjDwU,eAAiB3N,IACf3N,KAAKyN,SAAS,CACZ6L,aAAc3L,EAAEpG,WAItB,kBAAC,QAAD,CAAOiH,KAAK,uBAIhB,kBAAC,YAAD,CAAW2G,QAAQ,iBAAiBlD,SAAU,GAC5C,kBAAC,aAAD,CAAYC,UAAU,SAASC,WAAW,aACxC,kBAAC,QAAD,CAAO3D,KAAK,OACZ,kBAAC,eAAD,CAAc+D,QAAQ,8BAExB,kBAAC,aAAD,CAAYL,UAAU,YAAYC,WAAW,aAC3C,kBAAC,QAAD,CAAO3D,KAAK,UACZ,kBAAC,eAAD,CAAc+D,QAAQ,iCAExB,kBAAC,aAAD,CAAYL,UAAU,UAAUC,WAAW,YACzCC,cACE,CACE+I,KAAM,iBACNC,UAAW,CAAE,EAAK,YAGtB,kBAAC,QAAD,CAAO5M,KAAK,QACZ,kBAAC,eAAD,CAAc+D,QAAQ,+BAExB,kBAAC,aAAD,CAAYL,UAAU,YAAYC,WAAW,aAC3C,kBAAC,QAAD,CAAO3D,KAAK,UACZ,kBAAC,eAAD,CAAc+D,QAAQ,kCAG1B,kBAAC,YAAD,CAAW4C,QAAQ,8HAAkFlD,SAAU,GAC7G,kBAAC,aAAD,KACGjS,KAAK+J,MAAM0P,WACZ,kBAAC,IAAD,CACErF,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK+J,MAAMoP,SACvBwC,oBAAoB,EACpBrH,qBAAqB,EACrBsH,iBAAiB,EACjBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBC,mBAAoBjc,KAAK+Z,mBACzBpW,QAAQ,KACRuY,OAAQ,CACNC,SAAU,IAEZC,MAAO,CACLC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEZ3Y,IAAMA,GAAQ5D,KAAK6Z,cAAgBjW,GAGnC,kBAAC,SAAD,CAAQ4Y,gBAAiB,KACzB,kBAAC,YAAD,CAAW1H,KAAK,WACd2H,cAAc,WACd1H,mBAAmB,YACrB,kBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,kBAKxC,kBAAC,aAAD,CAAY0D,oBAAoB,OAC9B3B,cAAelX,KAAKkX,iBAGxB,6BAAM,6BACN,kBAAC,IAAD,CAAMM,OAAO,QAAQrB,GAAI,UAAzB,kCACA,6BAAM,6BACN,6EAAwC,kBAAC,IAAD,CAAMqB,OAAO,SAASrB,GAAI,wBAA1B,+BAUvC4C,UCvbf,IAAI2D,GAAa,GAEjB,MAAMC,WAAoB1a,IAAM0T,UAE5B5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK4c,UAAY,KACjB5c,KAAK6c,QAAU,KACf7c,KAAK8c,WAAa,KAClB9c,KAAKyM,MAAQ,KACbzM,KAAK+c,gBAAkB,KACvB/c,KAAKgd,aAAe,KACpBhd,KAAKid,uBAAyBjd,KAAKid,uBAAuBrT,KAAK5J,MAC/DA,KAAKkd,0BAA4Bld,KAAKkd,0BAA0BtT,KAAK5J,MACrEA,KAAKmd,yBAA2Bnd,KAAKmd,yBAAyBvT,KAAK5J,MACnEA,KAAKod,0BAA4Bpd,KAAKod,0BAA0BxT,KAAK5J,MACrEA,KAAKqd,wBAA0Brd,KAAKqd,wBAAwBzT,KAAK5J,MACjEA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAK6W,aAAe7W,KAAK6W,aAAajN,KAAK5J,MAC3CA,KAAKsd,gBAAkBtd,KAAKsd,gBAAgB1T,KAAK5J,MACjDA,KAAKud,mBAAqBvd,KAAKud,mBAAmB3T,KAAK5J,MACvDA,KAAKwd,qBAAuBxd,KAAKwd,qBAAqB5T,KAAK5J,MAC3DA,KAAKyd,gBAAkB,CACnBC,OAAQ,GACRC,OAAQ,GACRC,KAAM,GACN3D,IAAK,GACLC,IAAK,IAETla,KAAK6d,mBAAqB,CACtBC,gBAAiB,GACjBC,SAAU,IAGd/d,KAAKge,iBAAmB,CACpBnR,KAAM,GACNoR,QAAS,MAGbje,KAAKke,oBAAsB,IAAI9V,IAC3B,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,UACL+B,QAAS3D,EAAW,+BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAKme,eAAiB,CAClBC,aAAc,GACdC,gBAAiB,GACjBC,SAAU,GACVC,aAAc,GACdC,OAAQ,GACRC,cAAe,GAGnBze,KAAK0e,oBAAsB,IAAItW,IAC3B,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,0BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK2e,iBAGT1B,uBAAuBtP,GACnB3N,KAAK4c,UAAYjP,EAAEC,UAGvBsP,0BAA0BvP,GACtB3N,KAAK6c,QAAUlP,EAAEC,UAGrB2G,mBAAmB5G,GAAI,IAAD,OAClBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,QACnC4B,KAAM,oBACNxB,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,6DAAyD,cACvEvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAKnC,EAAW,uBAAyBoI,EAAMnB,GACnD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAPL,uCAOU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAKkW,gBAAgBja,SAAS4M,UAFtC,uBAGQ,EAAKgP,oBAAoBlW,OAAO7B,KAAhC,sBAAqC,sBAAAJ,EAAA,sDACvCmW,GAAa,GACb,EAAKgC,oBAAoBtb,QAAQiE,QAASoF,IACtCiQ,GAAWla,KAAK,CACZkK,OAAQ,WAAYxL,SAAU,SAC9ByL,QAAS,CACLC,KAAMH,EAAMI,KACZC,KAAML,EAAMM,KACZC,QAAS,KACL/L,OAAOC,SAASC,KAAO,IAAMsL,EAAMQ,UAKnD,EAAKxM,MAAMyM,cAAcwP,IAdc,4CAH7C,6BAqBE9U,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,KArBpF,2CAPV,8DAPRgM,YAAM,6BAAsB,kBA8CpDsK,0BAA0BzP,GACtB3N,KAAKgd,aAAerP,EAAEC,UAG1BuP,yBAAyBxP,GACrB3N,KAAK+c,gBAAkBpP,EAAEC,UAG7ByP,wBAAwB1P,GACpB3N,KAAK8c,WAAanP,EAAEC,UAGxBqO,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDhI,aAAalJ,GACc3N,KAAK4c,UAAU9Z,SAASgc,WAC3BC,SAKhBnd,IAAQ4E,KAAKxC,EAAU,uBAAwBhE,KAAKyd,gBAChD,CACIhX,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACTe,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,KAEjC3E,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,OAG1FC,MAAMC,IACHY,YAAO,8DAA4CZ,EAAK,QAAS,OAEzE2G,EAAE0J,kBApBF1J,EAAE0J,iBAyBViG,gBAAgB3P,GACW3N,KAAK6c,QAAQ/Z,SAASgc,WACzBC,SAKhBnd,IAAQ4E,KAAKxC,EAAU,wBAAyBhE,KAAK6d,mBACjD,CACIpX,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACTe,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,KAEjC3E,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,OAG1FC,MAAMC,IACHY,YAAO,8DAA4CZ,EAAK,QAAS,OAEzE2G,EAAE0J,kBApBF1J,EAAE0J,iBAyBVmG,qBAAqB7P,GAAI,IAAD,OACG3N,KAAKgd,aAAala,SAASgc,WAC9BC,SAKhBnd,IAAQ4E,KAAKnC,EAAW,wBAAyBrE,KAAKge,iBAClD,CACIvX,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KANL,uCAMU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,uBAEEe,YAAO,8BAA0B,UAAW,KAF9C,SAGQ,EAAKmV,gBAAgBja,SAAS4M,UAHtC,uBAIQ,EAAKgP,oBAAoBlW,OAAO7B,KAAhC,sBAAqC,sBAAAJ,EAAA,sDACvCmW,GAAa,GACb,EAAKgC,oBAAoBtb,QAAQiE,QAASoF,IACtCiQ,GAAWla,KAAK,CACZkK,OAAQ,WAAYxL,SAAU,SAC9ByL,QAAS,CACLC,KAAMH,EAAMI,KACZC,KAAML,EAAMM,KACZC,QAAS,KACL/L,OAAOC,SAASC,KAAO,IAAMsL,EAAMQ,UAMnD,EAAKxM,MAAMyM,cAAcwP,IAfc,4CAJ7C,6BAuBE9U,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KAvBrF,2CANV,uDAgCKC,MAAMC,IACHY,YAAO,8DAA4CZ,EAAK,QAAS,OAEzE2G,EAAE0J,kBAvCF1J,EAAE0J,iBA4CVkG,mBAAmB5P,GACQ3N,KAAK8c,WAAWha,SAASgc,WAC5BC,SAKhBnd,IAAQ4E,KAAKnC,EAAW,8BAA+BrE,KAAKme,eACxD,CACI1X,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACTe,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,KAEjC3E,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,OAG1FC,MAAMC,IACHY,YAAO,8DAA4CZ,EAAK,QAAS,OAEzE2G,EAAE0J,kBApBF1J,EAAE0J,iBA0BVsH,iBACI/c,IAAQ6F,IAAIpD,EAAW,uBAAwB,CAC3CoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACJ,GAAIA,EAAIN,KAAKO,QAAS,CAClB,MAAMP,EAAOM,EAAIN,KAAKiG,KACtBvM,KAAKme,eAAiB,CAClBC,aAAc9X,EAAK8X,aACnBC,gBAAiB/X,EAAK+X,gBACtBC,SAAUhY,EAAKgY,SACfC,aAAcjY,EAAKiY,aACnBC,OAAQlY,EAAKkY,OACbC,aAAcnY,EAAKmY,cAEvBze,KAAKyN,SAAS,SAEd7F,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,OAGtFC,MAAMC,IACHY,YAAO,6CAAqCZ,EAAK,QAAS,OAItEjE,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,wBACX,kBAAC,SAAD,CAAQ/L,KAAK,SAAS0I,KAAK,SAAS4B,KAAK,QAAQxB,QAAS,KACtD/L,OAAOsB,QAAQyc,YAI3B,yBAAK/O,UAAU,OACX,yBAAKA,UAAU,aACX,0BAAMd,GAAG,OAAOoJ,SAAUvY,KAAK6W,cAC3B,kBAAC,IAAD,CACIzG,cAAepQ,KAAKid,uBACpBnL,SAAU9R,KAAKyd,gBACf/E,UAAU,EACVC,qBAAqB,EACrB5G,uBAAuB,EACvBnO,IAAMA,GAAQ5D,KAAK4c,UAAYhZ,GAE/B,kBAAC,YAAD,CAAWoO,SAAS,cAAcmD,QAAQ,wCAAoBlD,SAAU,GACpE,kBAAC,aAAD,CAAYC,UAAU,SAASC,WAAW,YAAYC,cAAe,CACjE0C,KAAM,WACNmK,aAAc,KAEd,kBAAC,QAAD,CAAOzQ,KAAK,oBACZ,kBAAC,eAAD,CAAc+D,QAAQ,2CAE1B,kBAAC,aAAD,CAAYL,UAAU,SAASC,WAAW,YAAYC,cAAe,CACjE0C,KAAM,WACNmK,aAAc,KAEd,kBAAC,QAAD,CAAOzQ,KAAK,2BACZ,kBAAC,eAAD,CAAc+D,QAAQ,kDAE1B,kBAAC,aAAD,CAAYL,UAAU,QAAQC,WAAW,aACrC,kBAAC,QAAD,CAAO3D,KAAK,UACZ,kBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,kBAAC,aAAD,CAAYL,UAAU,MAAMC,WAAW,aACnC,kBAAC,QAAD,CAAO3D,KAAK,SAEhB,kBAAC,aAAD,CAAY0D,UAAU,MAAMC,WAAW,aACnC,kBAAC,QAAD,CAAO3D,KAAK,SAEhB,kBAAC,aAAD,CAAY2D,WAAW,WAAWC,cAAe,CAC7C5D,KAAM,kCACNtK,KAAM,UACNiT,mBAAmB,UAS3C,yBAAKlH,UAAU,OACX,yBAAKA,UAAU,aACX,0BAAMd,GAAG,OAAOoJ,SAAUvY,KAAKsd,iBAC3B,kBAAC,IAAD,CACIlN,cAAepQ,KAAKkd,0BACpBpL,SAAU9R,KAAK6d,mBACfnF,UAAU,EACVrK,QAC4B,gBAAxB7N,EAAQoB,QAAQ2M,KACY,SAAxB/N,EAAQoB,QAAQ2M,KACQ,iBAAxB/N,EAAQoB,QAAQ2M,KACQ,mBAAxB/N,EAAQoB,QAAQ2M,KACQ,sBAAxB/N,EAAQoB,QAAQ2M,IACxBoK,qBAAqB,EACrB5G,uBAAuB,EACvBnO,IAAMA,GAAQ5D,KAAK6c,QAAUjZ,GAE7B,kBAAC,YAAD,CAAWoO,SAAS,cAAcmD,QAAQ,yEAAuDlD,SAAU,GACvG,kBAAC,aAAD,CAAYC,UAAU,kBAAkBC,WAAW,YAAYC,cAAe,CAC1E6M,aAAc,KAEd,kBAAC,QAAD,CAAOzQ,KAAK,qCACZ,kBAAC,eAAD,CAAc+D,QAAQ,4DAE1B,kBAAC,aAAD,CAAYL,UAAU,WAAWC,WAAW,YAAYC,cAAe,CACnE0C,KAAM,WACNmK,aAAc,KAEd,kBAAC,QAAD,CAAOzQ,KAAK,mBACZ,kBAAC,eAAD,CAAc+D,QAAQ,0CAE1B,kBAAC,aAAD,CAAYJ,WAAW,WAAWC,cAAe,CAC7C5D,KAAM,qBACNtK,KAAM,UACNiT,mBAAmB,UAS3C,yBAAKlH,UAAU,OACX,yBAAKA,UAAU,aACX,0BAAMd,GAAG,OAAOoJ,SAAUvY,KAAKud,oBAC3B,kBAAC,IAAD,CACInN,cAAepQ,KAAKqd,wBACpBvL,SAAU9R,KAAKme,eACfzF,UAAU,EACVrK,QAAiC,SAAxB7N,EAAQoB,QAAQ2M,IACzBoK,qBAAqB,EACrB5G,uBAAuB,EACvBnO,IAAMA,GAAQ5D,KAAK8c,WAAalZ,GAEhC,kBAAC,YAAD,CAAWoO,SAAS,cAAcmD,QAAQ,gBAAgBlD,SAAU,GAChE,kBAAC,aAAD,CAAYC,UAAU,eAAeC,WAAW,cAAcC,cAAe,CACzEC,WAAYpR,OAAOgD,QAAQib,aAC3Bjc,YAAa,OACbqP,UAAW,UAEX,kBAAC,QAAD,CAAO9D,KAAK,iCACZ,kBAAC,eAAD,CAAc+D,QAAQ,yDAE1B,kBAAC,aAAD,CAAYL,UAAU,eAAeC,WAAY,eAC7C,kBAAC,QAAD,CAAO3D,KAAK,wBAEhB,kBAAC,aAAD,CAAY0D,UAAU,mBAClB,kBAAC,QAAD,CAAO1D,KAAK,iCACZ,kBAAC,eAAD,CAAc+D,QAAQ,+CAE1B,kBAAC,aAAD,CAAYL,UAAU,WAAWC,WAAW,YAAYC,cAAe,CACnE0C,KAAM,WACNmK,aAAc,KAEd,kBAAC,QAAD,CAAOzQ,KAAK,eACZ,kBAAC,eAAD,CAAc+D,QAAQ,sCAE1B,kBAAC,aAAD,CAAYL,UAAU,gBAClB,kBAAC,QAAD,CAAO1D,KAAK,cACZ,kBAAC,eAAD,CAAc+D,QAAQ,4BAE1B,kBAAC,aAAD,CAAYL,UAAU,UAClB,kBAAC,QAAD,CAAO1D,KAAK,kCAEhB,kBAAC,aAAD,CAAY2D,WAAW,WAAWC,cAAe,CAC7C5D,KAAM,qBACNtK,KAAM,UACNiT,mBAAmB,UAS3C,yBAAKlH,UAAU,OACX,yBAAKA,UAAU,aACX,0BAAMd,GAAG,OAAOoJ,SAAUvY,KAAKwd,sBAC3B,kBAAC,IAAD,CACIpN,cAAepQ,KAAKod,0BACpBtL,SAAU9R,KAAKge,iBACftF,UAAU,EACVC,qBAAqB,EACrB5G,uBAAuB,EACvBnO,IAAMA,GAAQ5D,KAAKgd,aAAepZ,GAElC,kBAAC,YAAD,CAAWoO,SAAS,cAAcmD,QAAQ,+BAAqBlD,SAAU,GACrE,kBAAC,aAAD,CAAYC,UAAU,OAAOC,WAAW,cAAcC,cAAe,CACjEC,WAAYpR,OAAOgD,QAAQkb,gBAC3B7M,UAAW,QACXrP,YAAa,OACbmc,aAAc,CAAC/c,EAAUgd,EAAWC,IACzB,oFAAsFjd,EAASkd,KAAO,UAAYld,EAASkd,KAAO,WAG7I,kBAAC,QAAD,CAAO/Q,KAAK,cACZ,kBAAC,eAAD,CAAc+D,QAAQ,qCAE1B,kBAAC,aAAD,CAAYL,UAAU,UAAUC,WAAW,cAAcC,cAAe,CACpEC,WAAYrS,KAAKke,oBACjB5L,UAAW,KACXrP,YAAa,aAEb,kBAAC,QAAD,CAAOuL,KAAK,UACZ,kBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,kBAAC,aAAD,CAAYJ,WAAW,WAAWC,cAAe,CAC7C5D,KAAM,+BACNtK,KAAM,UACNiT,mBAAmB,MAK3B,kBAAC,YAAD,CAAWnF,SAAS,cAAcmD,QAAQ,4BACtC,kBAAC,aAAD,KACI,kBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK0e,oBACjBpK,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB8D,cAAc,EACd7D,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBlH,UAAW,CAAEC,KAAM,UACnBnR,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEd3Y,IAAMA,GAAQ5D,KAAK+c,gBAAkBnZ,EACrCwM,cAAepQ,KAAKmd,yBACpB5I,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzB3Y,MAAM,QAGN,kBAAC,SAAD,CAAQkZ,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,OAAQiD,QAAQ,QAAQwK,eAAe,MAC1D,kBAAC,SAAD,CAAQzN,UAAW,MAAOiD,QAAQ,OAAOwK,eAAe,MACxD,kBAAC,SAAD,CAAQzN,UAAW,OAAQiD,QAAQ,YAAOwK,eAAe,aASrF,yBAAK1P,UAAU,MAAMC,MAAO,CAAE0P,QAAiC,UAAxBpf,EAAQoB,QAAQ2M,IAAkB,GAAK,SAC1E,yBAAK0B,UAAU,aACX,0BAAMd,GAAG,mBACL,kBAAC,IAAD,KACI,kBAAC,YAAD,CAAW6C,SAAS,cAAcmD,QAAQ,kCAAwBlD,SAAU,GAExE,kBAAC,aAAD,CAAYE,WAAW,WAAWC,cAAe,CAC7C5D,KAAM,yHACNtK,KAAM,UACN8I,QAAS,KACLpL,IAAQ4E,KAAK7B,EAAe,kDAAmD,KAAM,CACjF8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,sDACEK,EAAIN,KAAKO,QACTiM,YAAM,qDAAsC,UAAW,KAGvDlL,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KALrF,2CALV,uDAaKC,MAAMC,IACH,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,sBAoBxDiC,mBAAQ,KA3mBKE,IACjB,CACHtI,cAAgB5G,GAASkP,EAASlM,GAAwBhD,MAymBnDgP,CAAkCqH,I,qBC5nBlC,SAASkD,GAAYvZ,GAClC,OACE,4BAAKA,EAAKwZ,OAAV,IAAmBxZ,EAAKyZ,U,yBCFb,SAASC,GAAW1Z,GACjC,OACE,kBAAC,IAAMsR,SAAP,KACI,2BACE,2BAAG,kBAAC,KAAD,CAAQqI,OAAO,cAAc3Z,EAAK4Z,SAEvC,uBAAG9H,wBAAyB,CAACC,OAAO/R,EAAK6Z,aCNlC,SAASC,GAAa9Z,GACnC,OACE,4BAAKA,EAAKuJ,IAAV,IAAgBvJ,EAAK+Z,aAArB,IAAoC/Z,EAAKyZ,SAAzC,IAAoDzZ,EAAKga,KCF9C,SAASC,GAAYja,GAClC,OACE,kBAAC,IAAMsR,SAAP,KACE,2BACE,2BAAG,kBAAC,KAAD,CAAQqI,OAAO,cAAc3Z,EAAKka,SAArC,IAA2E,IAAnBla,EAAKma,UAAkB,GAAK,mBAAgBna,EAAKma,YAGzGna,EAAKoa,SAASC,IAAI,CAACC,EAAMjR,IACvB,uBAAG1J,IAAK0J,EAAM+D,YACZ,uBAAGvS,KAAMyf,EAAKC,MAAOhJ,IAAI,sBAAsBL,OAAO,UAAUoJ,EAAKC,U,wDCMjF,MAAMC,GAAwB,CAAC,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,SAElF,MAAMC,WAAiB9e,YAClClC,YAAYU,GACRyB,MAAMzB,GACNT,KAAKghB,oBAAsB,GAC3BhhB,KAAK+J,MAAQ,CACTkX,UAAW,GACXC,WAAY,GACZC,iBAAkB,GAClBC,KAAM,CAAC,YAAa,qBAAiB,0BACrCC,iBAAkB,GAEtBrhB,KAAKshB,aAAe,GACpBthB,KAAKuhB,eAAiB,KACtBvhB,KAAKwhB,mBAAqB,KAC1BxhB,KAAKyhB,YAAczhB,KAAKyhB,YAAY7X,KAAK5J,MACzCA,KAAK0hB,eAAiB1hB,KAAK0hB,eAAe9X,KAAK5J,MAC/CA,KAAK2hB,qBAAuB3hB,KAAK2hB,qBAAqB/X,KAAK5J,MAC3DA,KAAK4hB,4BAA8B5hB,KAAK4hB,4BAA4BhY,KAAK5J,MACzEA,KAAK6hB,gCAAkC7hB,KAAK6hB,gCAAgCjY,KAAK5J,MACjFA,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf5D,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK+hB,YAAc,CAAEC,QAAS,GAC9BhiB,KAAKiiB,oBAAsB,IAAI7Z,IAC3B,CACIC,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAK+hB,YACjB/Z,QAAS3D,EAAW,iCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAKmiB,eAAiB,IAAIC,KAAyB,CAC/CC,eAAgB,UAAU,QAAE5b,EAAF,SAAWqL,EAAX,UAAqBwQ,IAC3C7b,EAAQ8b,cAAgB,UAAY/hB,EAAQoB,QAAQ8E,OAExD8b,aAAc,UAAU,SAAE1Q,IAGtBA,EAASvK,MAAQ,CACbd,QAAS,CACL8b,cAAe,UAAY/hB,EAAQoB,QAAQ8E,SAIvD+b,eAAgB,CACZF,cAAe,UAAY/hB,EAAQoB,QAAQ8E,OAE/Cgc,YAAare,EAAW,4BAKhCwd,gCAAgClU,GAC5B3N,KAAKwhB,mBAAqB7T,EAAEC,UAGhCgU,4BAA4BjU,GACxB3N,KAAKuhB,eAAiB5T,EAAEC,UAGtB+M,oBAAqB,IAAD,kHACtB/Y,IAAQ6F,IAAIpD,EAAW,0BACnB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,QACT,EAAK4G,SAAS,CACVwT,UAAWra,EAAIN,KAAKiG,OAIxB3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAEnDlF,IAAQ6F,IAAIpD,EAAW,iCACnB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACJ,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAIP,EAAO,GACXM,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzB,GAAoB,IAAhBrJ,EAAKkG,OACLoU,EAAKF,SAAW,CAAC,CAAEG,MAAOja,EAAIN,KAAKiG,KAAKoD,GAAOkR,QAC/Cva,EAAK9D,KAAKoe,QAET,GAAIta,EAAKyI,OAAOJ,GAAKA,EAAEkB,MAAQjJ,EAAIN,KAAKiG,KAAKoD,GAAOE,KAAKrD,OAAS,EAAG,CACtE,IAAImW,EAAQrc,EAAKiQ,KAAKqM,GAAKA,EAAE/S,MAAQjJ,EAAIN,KAAKiG,KAAKoD,GAAOE,KAE1D,IAAK,IAAIgT,EAAI,EAAGA,EAAIF,EAAMjC,SAASlU,OAAQqW,IACnCF,EAAMjC,SAASmC,GAAGhC,QAAUja,EAAIN,KAAKiG,KAAKoD,GAAOkR,OACjD8B,EAAMjC,SAASle,KAAK,CAAEqe,MAAOja,EAAIN,KAAKiG,KAAKoD,GAAOkR,QAI1Dva,EAAKiQ,KAAKqM,GAAKA,EAAE/S,MAAQjJ,EAAIN,KAAKiG,KAAKoD,GAAOE,KAAK6Q,SAAWiC,EAAMjC,cAGpEE,EAAKF,SAAW,CAAC,CAAEG,MAAOja,EAAIN,KAAKiG,KAAKoD,GAAOkR,QAC/Cva,EAAK9D,KAAKoe,KAGlB,EAAKnT,SAAS,CACVyT,WAAY5a,EAAKyI,OAAOJ,GAAuB,IAAlBA,EAAEmU,aAC/B3B,iBAAkB7a,EAAKyI,OAAOJ,GAAuB,IAAlBA,EAAEmU,eAEzC,EAAK9B,oBAAsB1a,EAAKyI,OAAOJ,GAAuB,IAAlBA,EAAEmU,kBAG9Clb,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAnD7B,6CAuD1B6a,qBAAqBoB,GACC,kBAAdA,EAAKC,MACLhjB,KAAKyN,SAAS,CACV4T,iBAAkB4B,SAASF,EAAKxb,SAK5Cma,eAAewB,GAEX,OAAiB,IAAbA,EAEI,gBAAC,WAAD,KACI,uBAAKhT,MAAO,CAAEiT,UAAW,SACrB,gBAAC,KAAD,CACI9Q,WAAYrS,KAAK+J,MAAMkX,UACvBmC,aAAa,EACbC,UAAU,EACVC,kBAAmB,EACnBC,gBAAiB1D,GACjBxR,QAAyB,YAAhB7N,EAAQ+N,IACjBiV,WAAYxD,OAMV,IAAbkD,EAGD,gBAAC,WAAD,KACI,uBAAKhT,MAAO,CAAEiT,UAAW,SACrB,gBAAC,KAAD,CACI9Q,WAAYrS,KAAK+J,MAAMmX,WACvBkC,aAAa,EACbC,UAAU,EACVhV,QAAyB,YAAhB7N,EAAQ+N,IACjB+U,kBAAmB,EACnBC,gBAAiBnD,GACjBoD,WAAYjD,OAMV,IAAb2C,EAED,gBAAC,WAAD,KACI,gBAAC,KAAD,CACIO,mBAAoBzjB,KAAKmiB,eACzBrB,sBAAuBA,GACvBrd,cAAc,SACdigB,eAAe,YACf1Y,QAAS,CACL2Y,mBAAoB,CAChB,CACIjX,OAAQ,WACRxL,SAAU,SACVyL,QAAS,CACLC,KAAM,WACN4B,KAAM,aACNtK,KAAM,UAEV8I,QAAS,KACL,GAAMhN,KAAKshB,aAAc,CACNsC,YAAO,CAClB9Y,MAAO,QACP+Y,YAAa,YAAc1e,EAAe,aAAenF,KAAKshB,aAAe,wFAC7EwC,QAAS,CAAC,CACNtV,KAAM,qBACNxB,QAAUW,GACC,SAIVoW,OAAOpd,KAAMwM,YAQ1C6Q,OAAQ,CACJC,YAAa,IACbC,UAAW,KAEfC,qBAAsB,KAClB,GAAMnkB,KAAKshB,aAAc,CACNsC,YAAO,CAClB9Y,MAAO,QACP+Y,YAAa,YAAc1e,EAAe,aAAenF,KAAKshB,aAAe,wFAC7EwC,QAAS,CAAC,CACNtV,KAAM,qBACNxB,QAAUW,GACC,SAIVoW,OAAOpd,KAAMwM,SAI9B8I,mBAAqBtO,IACbA,EAAEiR,cAAcpS,OAAS,EACrBmB,EAAEiR,cAAc,GAAGwF,KAAO,IAE1BpkB,KAAKshB,aAAe3T,EAAEiR,cAAc,GAAG7I,MAK3C/V,KAAKshB,aAAe,KAK5B,gBAAC,eAAD,CACI+C,OAAgC,UAAxB7jB,EAAQoB,QAAQ2M,IACxB+V,KAA8B,UAAxB9jB,EAAQoB,QAAQ2M,IACtBgW,KAA8B,UAAxB/jB,EAAQoB,QAAQ2M,IACtBiW,UAAgC,UAAxBhkB,EAAQoB,QAAQ2M,IAA0C,UAAxB/N,EAAQoB,QAAQ2M,KAC1DkW,UAAgC,UAAxBjkB,EAAQoB,QAAQ2M,IAA0C,UAAxB/N,EAAQoB,QAAQ2M,KAC1DyV,UAAgC,UAAxBxjB,EAAQoB,QAAQ2M,IAA0C,UAAxB/N,EAAQoB,QAAQ2M,cA9EzE,EAuFTkT,cACI,OACI,2BACI,gBAAC,KAAD,CAAMiD,cAAe1kB,KAAK+J,MAAMsX,iBAAkBhP,WAAYrS,KAAK+J,MAAMqX,KAAMuD,gBAAiB3kB,KAAK2hB,uBACpG3hB,KAAK0hB,eAAe1hB,KAAK+J,MAAMsX,mBAI5Cte,SAEI,MAAoB,YAAhBvC,EAAQ+N,IACA,gBAAC,WAAD,KACJ,uBAAK0B,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,sEASZ,gBAAC,WAAD,KACI,uBAAKA,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACVjQ,KAAKyhB,mB,wEC3StC,MAAMmD,GAAoB,IAAIC,KAAKC,aAAa,QAAS,CACrD5U,MAAO,WACP6U,SAAU,MACVC,sBAAuB,EACvBC,sBAAuB,IAEZ,MAAMC,WAA4BjjB,IAAM0T,UACnD5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTob,sBAAuB,GACvBC,oBAAqB,GACrBC,2BAA4B,GAC5BC,gCAAiC,GACjCC,yCAA0C,GAC1CC,cAAe,IAEnBxlB,KAAKylB,2BAA6B,KAClCzlB,KAAK0lB,6CAA+C,KACpD9jB,IAAQ6F,IAAI9C,EAAe,sCACvB,CACI8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACV0X,sBAAuBve,EAAIN,KAAKiG,OAIpC3E,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,OAG9FlF,IAAQ6F,IAAI9C,EAAe,oCACvB,CACI8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACV2X,oBAAqBxe,EAAIN,KAAKiG,OAIlC3E,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,OAG9FlF,IAAQ6F,IAAI9C,EAAe,2CACvB,CACI8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACV4X,2BAA4Bze,EAAIN,KAAKiG,OAIzC3E,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,OAG9FlF,IAAQ6F,IAAI9C,EAAe,gDACvB,CACI8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACV6X,gCAAiC1e,EAAIN,KAAKiG,OAI9C3E,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,OAG9FlF,IAAQ6F,IAAI9C,EAAe,wDACvB,CACI8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACV8X,yCAA0C3e,EAAIN,KAAKiG,OAIvD3E,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,OAG9FlF,IAAQ6F,IAAI9C,EAAe,8BACvB,CACI8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACF,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAI8e,EAAS/e,EAAIN,KAAKiG,KACtB,IAAIqZ,EAAgB,GACpBA,EAAcpjB,KAAK,CACf+c,KAAM,wCACNsG,IAAK,mBACLjN,MAAOgM,GAAkB3E,OAAO0F,EAAOG,mBAE3CF,EAAcpjB,KAAK,CACf+c,KAAM,yBACNsG,IAAK,kBACLjN,MAAOgM,GAAkB3E,OAAO0F,EAAOI,kBAE3CH,EAAcpjB,KAAK,CACf+c,KAAM,2DACNsG,IAAK,qBACLjN,MAAO+M,EAAOK,0BAElBJ,EAAcpjB,KAAK,CACf+c,KAAM,yDACNsG,IAAK,uBACLjN,MAAO+M,EAAOM,2BAElBL,EAAcpjB,KAAK,CACf+c,KAAM,kEACNsG,IAAK,sBACLjN,MAAO+M,EAAOO,yCAElBN,EAAcpjB,KAAK,CACf+c,KAAM,gEACNsG,IAAK,wBACLjN,MAAO+M,EAAOQ,0CAElBnmB,KAAKyN,SAAS,CACV+X,cAAeI,SAInBhe,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,OAIlGsf,iBAAiBC,GACb,MAAO,CACH7X,KAAK,GAAD,OAAK6X,EAAIC,aAAe,gCAAmBD,EAAI9e,MAAQ,IAAM8e,EAAIE,YAAc,MAG3FC,0BACI,OAA0D,IAAtDxmB,KAAK+J,MAAMub,gCAAgC9Y,OAEvC,kBAAC,IAAMoL,SAAP,KACI,8FAMJ,kBAAC,IAAMA,SAAP,KACI,6BACI,2BAAO3H,UAAU,QAAQC,MAAO,CAAE5M,MAAO,SACrC,+BACI,4BACI,8CACA,+CACA,2CAGR,+BAEQtD,KAAK+J,MAAMub,gCAAgC3E,IAAK8F,GAExC,kBAAC,IAAM7O,SAAP,KACI,4BACI,4BACK6O,EAAUC,UAEf,4BACKD,EAAU5W,KAEf,4BACK4W,EAAUE,YAUzC,8BAKtBC,uCACI,OAAmE,IAA/D5mB,KAAK+J,MAAMwb,yCAAyC/Y,OAEhD,kBAAC,IAAMoL,SAAP,KACI,8FAOJ,kBAAC,IAAMA,SAAP,KACI,6BACI,2BAAO3H,UAAU,QAAQC,MAAO,CAAE5M,MAAO,SACrC,+BACI,4BACI,yCACA,8CACA,kDACA,wCACA,uCAGR,+BAEQtD,KAAK+J,MAAMwb,yCAAyC5E,IAAK8F,GAEjD,kBAAC,IAAM7O,SAAP,KACI,4BACI,4BACK6O,EAAUI,UAEf,4BACKJ,EAAUC,UAEf,4BACKD,EAAUzM,WAEf,4BACKyM,EAAUtmB,SAEf,4BACKsmB,EAAUK,aAUzC,8BAMtB/jB,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,WAAWC,MAAO,CAAE8H,OAAQ,mBAAoB+O,QAAS,wBACpE,kBAAC,KAAD,CACI1U,WAAYrS,KAAK+J,MAAMyb,cACvB9U,OAAO,OACP8S,WAAald,GACQ,uBAAbA,EAAKuf,IACG,kBAAC,IAAMjO,SAAP,KACJ,kBAAC,WAAD,CACIJ,OAAO,8BACPhH,SAAS,MACTlN,MAAO,MACPsN,WAAW,EACX9F,MAAO,QACPlH,IAAMA,GAAQ5D,KAAKylB,2BAA6B7hB,GAI5C5D,KAAKwmB,2BAGb,yBAAKvW,UAAU,WACX,yBAAK6H,IAAKxR,EAAKuf,IAAK9N,IAAKzR,EAAKiZ,OAC9B,yBAAKpQ,GAAG,6BAA6BiJ,wBAAyB,CAAEC,OAAQ/R,EAAKiZ,MAAQyH,YAAa,KAC9FhnB,KAAKylB,2BAA2B3iB,SAAS+K,OAAO,WAAW,IAC5DoZ,aAAc,KACbjnB,KAAKylB,2BAA2B3iB,SAAS+K,OAAO,WAAW,MAE/D,yBAAKoC,UAAU,SAAS3J,EAAKsS,SAInB,wBAAbtS,EAAKuf,IACF,kBAAC,IAAMjO,SAAP,KACJ,kBAAC,WAAD,CACIJ,OAAO,4CACPhH,SAAS,MACTlN,MAAO,MACPsN,WAAW,EACX9F,MAAO,QACPlH,IAAMA,GAAQ5D,KAAK0lB,6CAA+C9hB,GAG9D5D,KAAK4mB,wCAGb,yBAAK3W,UAAU,WACX,yBAAK6H,IAAKxR,EAAKuf,IAAK9N,IAAKzR,EAAKiZ,OAC9B,yBAAKpQ,GAAG,2CAA2CiJ,wBAAyB,CAAEC,OAAQ/R,EAAKiZ,MAAQyH,YAAa,KAC5GhnB,KAAK0lB,6CAA6C5iB,SAAS+K,OAAO,WAAW,IAC9EoZ,aAAc,KACbjnB,KAAK0lB,6CAA6C5iB,SAAS+K,OAAO,WAAW,MAEjF,yBAAKoC,UAAU,SAAS3J,EAAKsS,SAK7B,kBAAC,IAAMhB,SAAP,KACJ,yBAAK3H,UAAU,WACX,yBAAK6H,IAAKxR,EAAKuf,IAAK9N,IAAKzR,EAAKiZ,OAC9B,yBAAKnH,wBAAyB,CAAEC,OAAQ/R,EAAKiZ,QAC7C,yBAAKtP,UAAU,SAAS3J,EAAKsS,YAOrD,yBAAK3I,UAAU,WAAWC,MAAO,CAAE8H,OAAQ,mBAAoB+O,QAAS,wBACpE,kBAAC,SAAD,CAAO5X,GAAG,QACN+X,QAAQ,OACR7U,WAAYrS,KAAK+J,MAAMob,uBACvB,kBAAC,wBAAD,CACIgC,cAAc,QACdjjB,KAAK,MACLkjB,UAAU,oBACV3jB,cAAc,oBACd4jB,WAAY,GACZC,SAAU,IAEV,kBAAC,SAAD,CAAOjZ,SAAS,GACZ,kBAAC,UAAD,CAAQnK,KAAK,aAAaqjB,UAAW,MAG7C,kBAAC,UAAD,CACIC,WAAW,OACXL,cAAc,MACdjjB,KAAK,MACL8e,KAAK,GACLyE,cAAc,EACdnkB,MAAO,KACX,kBAAC,SAAD,CAAOkL,KAAK,gCAAiBkZ,SAAS,uBAKlD,yBAAKzX,UAAU,OACX,yBAAKA,UAAU,WAAWC,MAAO,CAAE8H,OAAQ,mBAAoB+O,QAAS,wBACpE,kBAAC,SAAD,CAAOG,QAAQ,cAAc/X,GAAG,QAAQkD,WAAYrS,KAAK+J,MAAMqb,oBAAqBuC,kBAAkB,GAClG,kBAAC,wBAAD,CACIR,cAAc,QACdjjB,KAAK,MACLkjB,UAAU,oBACV3jB,cAAc,oBACd4jB,WAAY,GACZC,SAAU,IAEV,kBAAC,SAAD,CAAOjZ,SAAS,GACZ,kBAAC,UAAD,CAAQnK,KAAK,aAAaqjB,UAAW,MAG7C,kBAAC,UAAD,CACIC,WAAW,QACXL,cAAc,MACdjjB,KAAK,MACL8e,KAAK,GACLyE,cAAc,EACdnkB,MAAO,GACPskB,MAAM,eACV,kBAAC,SAAD,CAAOpZ,KAAK,wBAAmBkZ,SAAS,sBAIhD,yBAAKzX,UAAU,WAAWC,MAAO,CAAE8H,OAAQ,mBAAoB+O,QAAS,wBACpE,kBAAC,KAAD,CACI5X,GAAG,MACHjL,KAAK,WACL4G,MAAM,qEACNoc,QAAQ,cACR7U,WAAYrS,KAAK+J,MAAMsb,4BAEvB,kBAAC,UAAD,CAAQ8B,cAAc,MAAMK,WAAW,QACnC,kBAAC,cAAD,CAAYI,MAAM,aAEtB,kBAAC,UAAD,CACIC,OAAQ,GACRhP,oBAAoB,QACpBiP,kBAAkB,QAEtB,kBAAC,WAAD,CAAS5S,SAAS,EAAMkR,iBAAkBpmB,KAAKomB,kBAC3C,kBAAC,UAAD,CAAQliB,KAAK,kBCvZjD,MAAM6jB,WAA8C9lB,IAAM0T,UACtD5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAKoQ,cAAgBpQ,KAAKoQ,cAAcxG,KAAK5J,MAC7CA,KAAKgoB,UAAY,KACjBhoB,KAAKioB,mBAAqB,IAAI7f,IAC1B,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAY,CAAEgG,aAAcznB,EAAM6F,KAAKL,KACvC+B,QAASrD,EAAe,oCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMrE0J,cAAczC,GACV3N,KAAKgoB,UAAYra,EAAEC,UAEvB7K,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,kBAAC,IAAD,CACIxD,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKioB,mBACjB7X,cAAepQ,KAAKoQ,cACpB+X,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBsH,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBrY,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEd3Y,IAAMA,GAAQ5D,KAAKgoB,UAAYpkB,GAE/B,kBAAC,eAAD,CAAcsR,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,SAAD,CAAQsH,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,YAAYE,SAAU,WAC7D,kBAAC,SAAD,CAAQnD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SACtD,kBAAC,SAAD,CAAQnD,UAAW,iBAAkBiD,QAAQ,kBAAkBE,SAAU,OACrE+S,mBAAqBC,GACc,wBAA3BA,EAAQC,eACD,KAGA,IAAIC,KAAKF,EAAQC,kBAGpC,kBAAC,SAAD,CAAQpW,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SAAU4K,OAAQ,aACxE,kBAAC,SAAD,CAAQ/N,UAAW,WAAYiD,QAAQ,WAAWE,SAAU,SAAU4K,OAAQ,aAC9E,kBAAC,SAAD,CAAQ/N,UAAW,QAASiD,QAAQ,QAAQE,SAAU,WACtD,kBAAC,SAAD,CAAQnD,UAAW,YAAaiD,QAAQ,sBAAaE,SAAU,WAC/D,kBAAC,SAAD,CAAQnD,UAAW,WAAYiD,QAAQ,mBAAWwK,eAAgB,EAAGtK,SAAU,cAMpF0S,UChFA,MAAMS,WAAyBvmB,IAAM0T,UAChD5S,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,kBAAC,IAAD,CACIxD,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKS,MAAM8L,KACvB+H,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,UACR4Q,mBAAoBvU,KAAKuU,mBACzBnE,cAAepQ,KAAKoQ,cACpB6L,mBAAoBjc,KAAKic,mBACzBrY,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,kBAAmBC,yBAAyB,IAC7E,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,kBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,kBAAC,eAAD,CAAc5T,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,UAAWiD,QAAQ,YACtC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,OAAO9G,SAAS,IACtD,kBAAC,SAAD,CAAQ6D,UAAW,aAAciD,QAAQ,UAAUE,SAAU,WAC7D,kBAAC,SAAD,CAAQnD,UAAW,cAAeiD,QAAQ,oBAAWE,SAAU,WAC/D,kBAAC,SAAD,CAAQnD,UAAW,cAAeiD,QAAQ,gBAAWE,SAAU,WAC/D,kBAAC,SAAD,CAAQnD,UAAW,eAAgBiD,QAAQ,sBAAYE,SAAU,WACjE,kBAAC,SAAD,CAAQnD,UAAW,YAAaiD,QAAQ,cAASE,SAAU,WAC3D,kBAAC,SAAD,CAAQnD,UAAW,aAAciD,QAAQ,sBAAcE,SAAU,SAAU4K,OAAQ,aACnF,kBAAC,SAAD,CAAQ/N,UAAW,cAAeiD,QAAQ,4BAAeE,SAAU,SAAU4K,OAAQ,aACrF,kBAAC,SAAD,CAAQ/N,UAAW,aAAciD,QAAQ,0BAAcE,SAAU,SAAU4K,OAAQ,gBCvCxF,MAAM+I,WAAsB/mB,IAAM0T,UAC7C5V,cACImC,QACAlC,KAAK+J,MAAQ,CACTzD,KAAM,IAIdvD,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,OACX,yBAAKA,UAAU,aACVjQ,KAAKS,MAAMwoB,QAAQtI,IAAI,CAACC,EAAMjR,IAC3B,kCAAO,4BACHO,MAAO,CAAEgZ,KAAM,QACfjjB,IAAK0J,EAAM+D,WACXzD,UAAU,kCACVjD,QAAUW,IACN,IAAIrH,EAAO,CACP6iB,SAAUvI,EAAKwI,UACfC,UAAWrpB,KAAKS,MAAM4oB,WAE1BznB,IAAQ4E,KAAKhC,EAAW,mCAAoC8B,EACxD,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACVnH,KAAMM,EAAIN,KAAKiG,OAGnB3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAG9CC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,SAzB9B,OA4BD4Z,EAAK0I,QA5BJ,QAAP,QAgCZ,yBAAKrZ,UAAU,MAAMC,MAAO,CAAEG,UAAW,UAEzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,GAAD,CAAkB1D,KAAMvM,KAAK+J,MAAMzD,WCxD5C,MAAMijB,GACjBC,WAAWC,GACP,OAAQA,GACJ,IAAK,MACD,MAAO,CACH,CAAEL,UAAW,MAAOE,QAAS,gBAC3B,CAAEF,UAAW,MAAOE,QAAS,aAC7B,CAAEF,UAAW,QAASE,QAAS,SAC/B,CAAEF,UAAW,OAAQE,QAAS,iBAC9B,CAAEF,UAAW,OAAQE,QAAS,WAC9B,CAAEF,UAAW,QAASE,QAAS,aAC/B,CAAEF,UAAW,OAAQE,QAAS,wBAC9B,CAAEF,UAAW,QAASE,QAAS,SAC/B,CAAEF,UAAW,QAASE,QAAS,SAC/B,CAAEF,UAAW,OAAQE,QAAS,aAExC,IAAK,MAeL,IAAK,UAeL,IAAK,WAeL,IAAK,WACD,MAAO,CACH,CAAEF,UAAW,MAAOE,QAAS,YAC3B,CAAEF,UAAW,MAAOE,QAAS,SAC7B,CAAEF,UAAW,MAAOE,QAAS,iBAC7B,CAAEF,UAAW,MAAOE,QAAS,aAC7B,CAAEF,UAAW,MAAOE,QAAS,WAC7B,CAAEF,UAAW,MAAOE,QAAS,mBAC7B,CAAEF,UAAW,MAAOE,QAAS,iBAC7B,CAAEF,UAAW,MAAOE,QAAS,wBAC7B,CAAEF,UAAW,MAAOE,QAAS,cAC7B,CAAEF,UAAW,MAAOE,QAAS,SAC7B,CAAEF,UAAW,MAAOE,QAAS,SAC7B,CAAEF,UAAW,MAAOE,QAAS,aAEvC,IAAK,UASL,IAAK,UASL,IAAK,UASL,IAAK,UACD,MAAO,CACH,CAAEF,UAAW,MAAOE,QAAS,gBAC3B,CAAEF,UAAW,MAAOE,QAAS,aAC7B,CAAEF,UAAW,MAAOE,QAAS,iBAC7B,CAAEF,UAAW,MAAOE,QAAS,8BAC7B,CAAEF,UAAW,MAAOE,QAAS,aAC7B,CAAEF,UAAW,MAAOE,QAAS,yBAEvC,IAAK,UACD,MAAO,CACH,CAAEF,UAAW,MAAOE,QAAS,gBAC3B,CAAEF,UAAW,MAAOE,QAAS,aAC7B,CAAEF,UAAW,MAAOE,QAAS,iBAC7B,CAAEF,UAAW,MAAOE,QAAS,8BAC7B,CAAEF,UAAW,MAAOE,QAAS,cAEvC,IAAK,UACD,MAAO,CACH,CAAEF,UAAW,MAAOE,QAAS,gBAC3B,CAAEF,UAAW,MAAOE,QAAS,aAC7B,CAAEF,UAAW,MAAOE,QAAS,iBAC7B,CAAEF,UAAW,MAAOE,QAAS,iBAC7B,CAAEF,UAAW,MAAOE,QAAS,cAEvC,IAAK,UACD,MAAO,CACH,CAAEF,UAAW,MAAOE,QAAS,gBAC3B,CAAEF,UAAW,MAAOE,QAAS,aAC7B,CAAEF,UAAW,MAAOE,QAAS,iBAC7B,CAAEF,UAAW,MAAOE,QAAS,cAEvC,IAAK,SACD,MAAO,CACH,CAAEF,UAAW,MAAOE,QAAS,qBAErC,QACI,MAAO,KCxHR,MAAMI,WAAsBznB,IAAM0T,UAC7C5V,YAAYU,GAAQ,IAAD,EACfyB,MAAMzB,GADS,OAEfT,KAAK+J,MAAQ,CACT4f,WAAW,EACXC,WAAW,EACXC,WAAY,GACZC,UAAW,GACXC,WAAY,GACZC,UAAW,GACXC,QAAS,GACTC,UAAW,GAEflqB,KAAKmqB,4BAA8BnqB,KAAKmqB,4BAA4BvgB,KAAK5J,MACzEA,KAAKoqB,6BAA+BpqB,KAAKoqB,6BAA6BxgB,KAAK5J,MAC3EA,KAAKqqB,UAAY,KACjBrqB,KAAKsqB,UAAY,KACjBtqB,KAAKuqB,oBAAsB,KAC3BvqB,KAAKwqB,eAAiB,KACtBxqB,KAAKyqB,SAAW,KAChBzqB,KAAK0qB,SAAW,KAChB1qB,KAAK2qB,UAAY,IAAIpB,GACrBvpB,KAAK4qB,gBAAkB,KACvB5qB,KAAKiiB,oBAAsB,IAAI7Z,IAAW,CACtCuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASxD,EAAW,2BACpBsE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM7D1G,KAAK6qB,gBAAkB,IAAIziB,IAAW,CAClCuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASxD,EAAW,0CACpBsE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM7D1G,KAAK8qB,kBAAoB,IAAI1iB,IACzB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK+qB,eAAiB,IAAI3iB,IACtB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,2BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKgrB,eAAiB,IAAI5iB,IACtB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,2BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKirB,uBAAyB,IAAI7iB,IAC9B,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,yCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKkrB,cAAgB,CACjBhB,UAAW,GAGflqB,KAAKmrB,yBAA2B,IAAI/iB,IAChC,CACIG,cAAc,EACdtC,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKkrB,cACjBljB,QAASrD,EAAe,qCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAOjE1G,KAAKorB,sBAAwB,IAAIhjB,IAC7B,CACIG,cAAc,EACdwG,OAAQ,CAAC,eAAgB,KAAK,GAC9B1G,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKkrB,cACjBljB,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKqrB,eAAL,sBAAsB,sBAAA9kB,EAAA,sEACZ,EAAKkH,SACP,CACIkc,WAAW,IAHD,2CAQtB3pB,KAAKsrB,YAAc,KACftrB,KAAKyN,SACD,CACIkc,WAAW,KAIvB3pB,KAAKurB,eAAL,sBAAsB,sBAAAhlB,EAAA,sEACZ,EAAKkH,SACP,CACImc,WAAW,IAHD,2CAQtB5pB,KAAKwrB,YAAc,KACfxrB,KAAKyN,SACD,CACImc,WAAW,KAK3BO,4BAA4Bxc,GACxB3N,KAAKuqB,oBAAsB5c,EAAEC,UAEjCwc,6BAA6Bzc,GACzB3N,KAAK4qB,gBAAkBjd,EAAEC,UAE7B7K,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAMgC,SAAU,EAAG3O,MAAO,OAAQwO,SAAU9R,KAAKyrB,mBAAoBrb,cAAepQ,KAAK0rB,4BAA6B9nB,IAAMA,GAAQ5D,KAAK2rB,eAAiB/nB,GACtJ,kBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,KACI,kBAAC,kBAAD,CAAiB2Z,gBAAgB,IACjC,kBAAC,MAAD,CAAK9gB,MAAM,iBACP,kBAAC,IAAD,CACIsJ,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK6qB,gBACjBvW,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,WAAYF,KAAM,YACzC4B,KAAM,WACNxB,QAAS,KACL,MAAMP,EAAQzM,KAAK6rB,WACL,OAAVpf,QAA4B5L,IAAV4L,EAMlB7K,IAAQ4E,KAAKhC,EAAW,uCACpB,CACIwV,UAAWvN,EAAMuN,UACjBvL,QAAShC,EAAMgC,QACfqd,UAAWrf,EAAMqf,UACjBC,UAAWtf,EAAMsf,UACjBC,YAAavf,EAAMuf,YACnBC,eAAgBxf,EAAMnB,GACtB4gB,kBAAmBzf,EAAMyf,mBAE7B,CACIzlB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKmsB,UAAUrpB,SAAS4M,UAGxB9H,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAMiH,IACLpG,YAAO,oEAA6D,QAAS,OA5BrFkL,YAAM,6BAAsB,iBAkC5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvC4B,KAAM,SACNxB,QAAUW,IACN3N,KAAKmsB,UAAUrpB,SAAS4M,eAK5CuM,mBAAqB2C,IACjB5e,KAAK6rB,WAAajN,EAAcC,iBAAiB,IAErDjb,IAAMA,GAAQ5D,KAAKmsB,UAAYvoB,GAE/B,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,eAAD,CAAcA,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAU,WAAWiD,QAAQ,GACjC7R,MAAO,GACP8oB,cAAc,EACdC,WAAYC,KAEhB,kBAAC,SAAD,CAAQpa,UAAW,cAAeiD,QAAQ,cAAc9G,SAAS,IACjE,kBAAC,SAAD,CAAQ6D,UAAW,eAAgBiD,QAAQ,eAAe9G,SAAS,IACnE,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,UAAU9G,SAAS,IACzD,kBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,eACvC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,WAAQE,SAAS,WACzD,kBAAC,SAAD,CAAQnD,UAAW,MAAOiD,QAAQ,WAAME,SAAS,WACjD,kBAAC,SAAD,CAAQnD,UAAW,SAAUiD,QAAQ,cAASE,SAAS,WACvD,kBAAC,SAAD,CAAQnD,UAAW,YAAaiD,QAAQ,0BACxC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,oBACxC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,wBACvC,kBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,YACpC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,iBACtC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,UACvC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,OAAO4K,OAC1D,wBAEJ,kBAAC,SAAD,CAAQ/N,UAAW,YAAaiD,QAAQ,YAAY9G,SAAS,IAC7D,kBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,QAAQ9G,SAAS,MAI7D,kBAAC,MAAD,CAAKvD,MAAM,WACP,yBAAKmF,UAAU,OACX,yBAAKA,UAAU,YACX,kBAAC,YAAD,CACIoC,WAAYrS,KAAKiiB,oBACjBhf,YAAa,YACbqP,UAAW,YACXgJ,eAAiB3N,IACb,MAAMsc,EAAUjqB,KAAK2qB,UAAUnB,WAAW7b,EAAEpG,OAC5CvH,KAAKyN,SAAS,CACVwc,QAASA,QAMzB,yBAAKha,UAAU,MAAMC,MAAO,CAAEG,UAAW,UAGzC,yBAAKJ,UAAU,YACX,kBAAC,YAAD,CACIoC,WAAYrS,KAAK8qB,kBACjB7nB,YAAc2d,GACLA,EAIM,IAAMA,EAAK/Q,IAAM,IAAM+Q,EAAK9Q,OAAS,IAHrC,GAMfwC,UAAW,KACXgJ,eAAiB3N,IACb3N,KAAKyN,SAAS,CACVyc,UAAWvc,EAAEpG,YAM7B,yBAAK0I,UAAU,MAAMC,MAAO,CAAEG,UAAW,UAGzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,GAAD,CAAegZ,QAASjpB,KAAK+J,MAAMkgB,QAASZ,UAAWrpB,KAAK+J,MAAMmgB,gBAKlF,kBAAC,MAAD,CAAKpf,MAAM,WACP,kBAAC,IAAD,CACIsJ,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK+qB,eACjB5C,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnBC,oBAAoB,EACpB8G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJgW,mBAAqB2C,IACjB5e,KAAKqqB,UAAYzL,EAAcC,iBAAiB,GAChD7e,KAAKyN,SAAS,CACVoc,WAAY7pB,KAAKqqB,UAAUvK,OAC3BgK,UAAW9pB,KAAKqqB,UAAUkC,QAGlChY,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,sBAAeF,KAAM,SAC5CI,QAAS,KACkB,OAAnBhN,KAAKqqB,eAAwCxpB,IAAnBb,KAAKqqB,UAC/BvX,YAAM,sCAA4B,cAGlC9S,KAAKsrB,iBAKrB,CACIpqB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyqB,SAAS3nB,SAAS4M,eAM3CU,cAAgBzC,IACZ3N,KAAKyqB,SAAW9c,EAAEC,WAEtBhK,IAAMA,IAAU5D,KAAKyqB,SAAW7mB,IAEhC,kBAAC,SAAD,CACIsR,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,IACzBma,SAAU,qBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,kBAAC,eAAD,CAAcvX,SAAS,IACvB,kBAAC,gBAAD,CAAeJ,KAAK,cAAcI,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,MAC3D,kBAAC,YAAD,CAAW2G,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,eAAD,CAAcA,SAAS,IACvB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,iBAAkBiD,QAAQ,uBAC7C,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,SACtC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,oBACxC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,cACtC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,qBACrC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,sBACxC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,QAAQE,SAAU,WAGhE,kBAAC,MAAD,CAAKvK,MAAM,WACP,kBAAC,IAAD,CACIsJ,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKgrB,eACjB7C,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnBC,oBAAoB,EACpB8G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJgW,mBAAqB2C,IACjB5e,KAAKsqB,UAAY1L,EAAcC,iBAAiB,GAChD7e,KAAKyN,SAAS,CACVsc,WAAY/pB,KAAKsqB,UAAUxK,OAC3BkK,UAAWhqB,KAAKsqB,UAAUnK,YAGlC5L,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,sBAAeF,KAAM,SAC5CI,QAAS,KACkB,OAAnBhN,KAAKsqB,eAAwCzpB,IAAnBb,KAAKsqB,UAC/BxX,YAAM,sCAA4B,cAGlC9S,KAAKwrB,iBAKrB,CACItqB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAK0qB,SAAS5nB,SAAS4M,eAM3CU,cAAgBzC,IACZ3N,KAAK0qB,SAAW/c,EAAEC,WAEtBhK,IAAMA,IAAU5D,KAAK0qB,SAAW9mB,IAEhC,kBAAC,SAAD,CACIsR,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,IACzBma,SAAU,qBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,kBAAC,eAAD,CAAcvX,SAAS,IACvB,kBAAC,gBAAD,CAAeJ,KAAK,cAAcI,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,MAC3D,kBAAC,YAAD,CAAW2G,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,eAAD,CAAcA,SAAS,IACvB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,iBAAkBiD,QAAQ,uBAC7C,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,SACtC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,oBACxC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,cACtC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,qBACrC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,sBACxC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,QAAQE,SAAU,WAIhE,kBAAC,MAAD,CAAKvK,MAAM,yBACP,kBAAC,IAAD,CACIqE,GAAG,YACHiF,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKirB,uBACjB3W,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB3V,IAAK,KACL4O,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACR4Q,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QAAQ,CAC3BvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKwqB,eAAe1nB,SAAS4M,eAK7CU,cAAgBzC,IACZ3N,KAAKwqB,eAAiB7c,EAAEC,WAE5BhK,IAAMA,IAAU5D,KAAKwqB,eAAiB5mB,IAEtC,kBAAC,SAAD,CACIsR,SAAS,EACTwT,SAAU,iBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,kBAAC,eAAD,CAAcvX,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,eAAD,CAAcA,SAAS,IACvB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,EAAOqe,gBAAgB,IAC5E,kBAAC,SAAD,CAAQxa,UAAW,SAAUiD,QAAQ,UAAUE,SAAU,WACzD,kBAAC,SAAD,CAAQnD,UAAW,UAAWiD,QAAQ,kBAAUE,SAAU,WAC1D,kBAAC,SAAD,CAAQnD,UAAW,cAAeiD,QAAQ,cAAcE,SAAU,SAAUhH,SAAS,IACrF,kBAAC,SAAD,CAAQ6D,UAAW,kBAAmBiD,QAAQ,kBAAkBE,SAAU,SAAUhH,SAAS,IAC7F,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,SACtC,kBAAC,SAAD,CAAQjD,UAAW,aAAciD,QAAQ,SACzC,kBAAC,SAAD,CAAQjD,UAAW,OAAQiD,QAAQ,SACnC,kBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SACtD,kBAAC,SAAD,CAAQnD,UAAW,OAAQiD,QAAQ,WACnC,kBAAC,SAAD,CAAQjD,UAAW,aAAciD,QAAQ,qBAIjD,kBAAC,MAAD,CAAKrK,MAAM,mBACP,kBAAC,aAAD,CAAYoH,UAAW,YACnBC,WAAY,cACZC,cAAe,CACXC,WAAYrS,KAAK8qB,kBACjB7nB,YAAc2d,GACLA,EAIM,IAAMA,EAAK/Q,IAAM,IAAM+Q,EAAK9Q,OAAS,IAHrC,GAMfwC,UAAW,KACXgJ,eAAiB3N,IACb3N,KAAKkrB,cAAchB,UAAYvc,EAAEpG,MACjCvH,KAAKmrB,yBAAyB3iB,OAC9BxI,KAAKuqB,oBAAoBznB,SAAS4M,aAG1C,kBAAC,QAAD,CAAOlB,KAAK,gCAEhB,kBAAC,aAAD,KACI,kBAAC,IAAD,CACI4F,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKmrB,yBACjB7W,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB3V,IAAK,KACL4O,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACR4Q,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QAAQ,CAC3BvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKuqB,oBAAoBznB,SAAS4M,eAKlDU,cAAepQ,KAAKmqB,4BACpBvmB,IAAMA,IAAU5D,KAAKuqB,oBAAsB3mB,IAE3C,kBAAC,eAAD,CACIsR,SAAS,EACTtH,UAAW+e,KAEf,kBAAC,SAAD,CACIzX,SAAS,EACTwT,SAAU,iBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,kBAAC,eAAD,CAAcvX,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,eAAD,CAAcA,SAAS,IACvB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,EAAOqe,gBAAgB,IAC5E,kBAAC,SAAD,CAAQxa,UAAW,gBAAiBiD,QAAQ,sBAAiBE,SAAU,SAAU4K,OAAQ,aACzF,kBAAC,SAAD,CAAQ/N,UAAW,qBAAsBiD,QAAQ,eAAUE,SAAU,SAAU4K,OAAQ,aACvF,kBAAC,SAAD,CAAQ/N,UAAW,UAAWiD,QAAQ,eAAUE,SAAU,SAAU4K,OAAQ,aAC5E,kBAAC,SAAD,CAAQ/N,UAAW,sBAAuBiD,QAAQ,qBAAkBE,SAAU,SAAU4K,OAAQ,aAChG,kBAAC,SAAD,CAAQ/N,UAAW,aAAciD,QAAQ,cAAcE,SAAU,SAAU4K,OAAQ,aACnF,kBAAC,SAAD,CAAQ/N,UAAW,UAAWiD,QAAQ,QAAQE,SAAU,eAKpE,kBAAC,MAAD,CAAKvK,MAAM,yBACP,kBAAC,aAAD,CAAYoH,UAAW,YACnBC,WAAY,cACZC,cAAe,CACXC,WAAYrS,KAAK8qB,kBACjB7nB,YAAc2d,GACLA,EAIM,IAAMA,EAAK/Q,IAAM,IAAM+Q,EAAK9Q,OAAS,IAHrC,GAMfwC,UAAW,KACXgJ,eAAiB3N,IACb3N,KAAKkrB,cAAchB,UAAYvc,EAAEpG,MACjCvH,KAAKorB,sBAAsB5iB,OAC3BxI,KAAK4qB,gBAAgB9nB,SAAS4M,aAGtC,kBAAC,QAAD,CAAOlB,KAAK,gCAEhB,kBAAC,aAAD,KACI,kBAAC,IAAD,CACIW,GAAG,iBACHiF,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKorB,sBACjB9W,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBgR,OAAQ,CACJ1X,SAAS,EACTwT,SAAU,UAEd7T,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRyM,cAAepQ,KAAKoqB,6BACpBxmB,IAAMA,GAAQ5D,KAAK4qB,gBAAkBhnB,GAErC,kBAAC,SAAD,CACI8kB,SAAU,SACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,kBAAC,eAAD,CAAcvX,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,QAAQE,SAAU,OAAQ/R,MAAO,MACrE,kBAAC,SAAD,CAAQ4O,UAAW,eAAgBiD,QAAQ,yBAAiB7R,MAAO,MACnE,kBAAC,SAAD,CAAQ4O,UAAW,WAAYiD,QAAQ,0BAAewK,eAAgB,EAAGtK,SAAU,cAM/F,kBAAC,MAAD,CAAKvK,MAAM,wCACP,yBAAKmF,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,yBACX,uBAAG9O,KAAK,+CAA+C0W,IAAI,sBAAsBL,OAAO,UAAxF,6BAAoH,6BAAM,6BAC1H,uBAAGrW,KAAK,+CAA+C0W,IAAI,sBAAsBL,OAAO,UAAxF,+BAAsH,6BAAS,6BAC/H,uBAAGrW,KAAK,+CAA+C0W,IAAI,sBAAsBL,OAAO,UAAxF,kCAAyH,6BAAS,6BAClI,uBAAGrW,KAAK,+CAA+C0W,IAAI,sBAAsBL,OAAO,UAAxF,4BAAmH,6BAAS,uCAWpK,kBAAC,QAAD,CAAO5G,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACrFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAKqrB,eAAgBhd,QAASrO,KAAK+J,MAAM4f,UACnD7e,MAAO9K,KAAK+J,MAAM8f,WAClBzd,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KAAQhN,KAAKqrB,sBAOxC,kBAAC,WAAD,CAAUja,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,0BAAMmI,wBAAyB,CAAEC,OAAQrY,KAAK+J,MAAM+f,iBAKpE,kBAAC,QAAD,CAAOlZ,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACrFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAKurB,eAAgBld,QAASrO,KAAK+J,MAAM6f,UACnD9e,MAAO9K,KAAK+J,MAAMggB,WAClB3d,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KAAQhN,KAAKurB,sBAOxC,kBAAC,WAAD,CAAUna,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,0BAAMmI,wBAAyB,CAAEC,OAAQrY,KAAK+J,MAAMigB,mBAUpF,SAASsC,GAAWhmB,GAChB,OAAa,OAATA,QAEyBzF,IAApByF,EAAKA,KAAKua,OAA2C,OAApBva,EAAKA,KAAKua,OAAsC,KAApBva,EAAKA,KAAKua,MADrE,4BAKA,uBAAGhJ,IAAI,sBAAsB1W,KAAMmF,EAAKA,KAAKua,MAAOrJ,OAAO,UAC9D,yBAAKM,IAAI,sBAAsBC,IAAI,kCCj0BhC,MAAM+U,WAAkB7qB,IAAM0T,UACzC5V,cACImC,QACAlC,KAAK+J,MAAQ,CACTzD,KAAM,IAIdvD,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,OACX,yBAAKA,UAAU,aACVjQ,KAAKS,MAAMwoB,QAAQtI,IAAI,CAACC,EAAMjR,IAC3B,kCAAO,4BACHO,MAAO,CAAEgZ,KAAM,QACfjjB,IAAK0J,EAAM+D,WACXzD,UAAU,kCACVjD,QAAUW,IACN,IAAIrH,EAAO,CACP6iB,SAAUvI,EAAKwI,WAEnBxnB,IAAQ4E,KAAKhC,EAAW,+BAAgC8B,EACpD,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACVnH,KAAMM,EAAIN,KAAKiG,OAGnB3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAG9CC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,SAxB9B,OA2BD4Z,EAAK0I,QA3BJ,QAAP,QA+BZ,yBAAKrZ,UAAU,MAAMC,MAAO,CAAEG,UAAW,UAEzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,GAAD,CAAkB1D,KAAMvM,KAAK+J,MAAMzD,WCxB3D,MAAMymB,WAAyB9qB,IAAM0T,UACjC5V,YAAYU,GAAQ,IAAD,EACfyB,MAAMzB,GADS,OAEfT,KAAK+J,MAAQ,CACT4f,WAAW,EACXC,WAAW,EACXC,WAAY,GACZC,UAAW,GACXC,WAAY,GACZC,UAAW,GACXC,QAAS,GACT+C,oBAAoB,GAExBhtB,KAAK2qB,UAAY,IAAIpB,GACrBvpB,KAAKmqB,4BAA8BnqB,KAAKmqB,4BAA4BvgB,KAAK5J,MACzEA,KAAKitB,sBAAwB,KAC7BjtB,KAAKktB,sBAAwB,KAC7BltB,KAAKqqB,UAAY,KACjBrqB,KAAKsqB,UAAY,KACjBtqB,KAAK6rB,WAAa,KAClB7rB,KAAKmtB,gBAAkB,KACvBntB,KAAKmsB,UAAY,KACjBnsB,KAAKuqB,oBAAsB,KAC3BvqB,KAAKwqB,eAAiB,KACtBxqB,KAAKyqB,SAAW,KAChBzqB,KAAK0qB,SAAW,KAChB1qB,KAAKotB,eAAiB,KACtBptB,KAAKqtB,mBAAqB,CACtBrL,QAAS,KACTgK,YAAa,KACbsB,aAAc,MAElBrhB,QAAQC,IAAI1L,EAAQoB,SACpB5B,KAAK8qB,kBAAoB,IAAI1iB,IACzB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKiiB,oBAAsB,IAAI7Z,IAAW,CACtCuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASxD,EAAW,8BACpBsE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM7D1G,KAAK6qB,gBAAkB,IAAIziB,IAAW,CAClCuD,SAAU,MACV1F,IAAK,YACLoC,MAAOuD,sBAAY,CACf3F,IAAK,YACL+B,QAASxD,EAAW,sCACpBsE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM7D1G,KAAK+qB,eAAiB,IAAI3iB,IACtB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,uBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKgrB,eAAiB,IAAI5iB,IACtB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,uBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKirB,uBAAyB,IAAI7iB,IAC9B,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,qCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf5D,QAAS3D,EAAW,wCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKutB,iBAAmB,CACpBC,UAAWhtB,EAAQoB,QAAQyJ,UAAUoiB,UACrCC,UAAWltB,EAAQoB,QAAQyJ,UAAU2O,WAGzCha,KAAK2tB,qBAAuB,IAAIvlB,IAC5B,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKutB,iBACjBvlB,QAAS3D,EAAW,gCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK4tB,mBAAqB,CACtBC,QAAS,EACTC,cAAettB,EAAQoB,QAAQyJ,UAAU0iB,aAG7C/tB,KAAKguB,uBAAyB,IAAI5lB,IAC9B,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAK4tB,mBACjB5lB,QAAS3D,EAAW,uCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKiuB,mBAAqB,CACtBC,eAAgB,GAGpBluB,KAAKmuB,uBAAyB,IAAI/lB,IAC9B,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAKiuB,mBACjBjmB,QAAS3D,EAAW,+CACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAKouB,kBAAoB,CACrBlE,UAAW1pB,EAAQoB,QAAQyJ,UAAUge,WAEzCrpB,KAAKquB,8BAAgC,IAAIjmB,IACrC,CACI+D,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKouB,kBACjBpmB,QAASrD,EAAe,mCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKsuB,8BAAgC,IAAIlmB,IACrC,CACI+D,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKouB,kBACjBpmB,QAASrD,EAAe,mCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAKqrB,eAAL,sBAAsB,sBAAA9kB,EAAA,sEACZ,EAAKkH,SACP,CACIkc,WAAW,IAHD,2CAQtB3pB,KAAKsrB,YAAc,KACftrB,KAAKyN,SACD,CACIkc,WAAW,KAIvB3pB,KAAKurB,eAAL,sBAAsB,sBAAAhlB,EAAA,sEACZ,EAAKkH,SACP,CACImc,WAAW,IAHD,2CAQtB5pB,KAAKwrB,YAAc,KACfxrB,KAAKyN,SACD,CACImc,WAAW,KAI3BO,4BAA4Bxc,GACxB3N,KAAKuqB,oBAAsB5c,EAAEC,UAGjC2gB,cACI,IAAIC,EAAW,GAEf,OADAA,EAAYxuB,KAAKS,MAAM0J,aAAaC,iBAAmBpK,KAAK+J,MAAMijB,mBAAsBvnB,EAAgBpB,EACjGmqB,EAGXC,aACI,MAAO,CACH,cAAkBzuB,KAAKS,MAAM0J,aAAaC,iBAAmBpK,KAAK+J,MAAMijB,mBAClE,UAAYhtB,KAAKS,MAAM0J,aAAakF,YACpC,UAAY7O,EAAQoB,QAAQ8E,OAG1C3D,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAMgC,SAAU,EAAG3O,MAAO,OAAQwO,SAAU9R,KAAKyrB,mBAAoBrb,cAAepQ,KAAK0rB,4BAA6B9nB,IAAMA,GAAQ5D,KAAK2rB,eAAiB/nB,GACtJ,kBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,KACI,kBAAC,kBAAD,CAAiB2Z,gBAAgB,IACjC,kBAAC,MAAD,CAAK9gB,MAAM,6BACP,yBAAKmF,UAAU,OACX,yBAAKA,UAAU,aAAf,8LAIJ,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,SAAD,CACI/L,KAAMlE,KAAK+J,MAAMijB,mBAAqB,UAAY,UAClDxe,KAAMxO,KAAK+J,MAAMijB,mBAAqB,kEAAgD,gEACtFhgB,QAAUW,IAEF3N,KAAK+J,MAAMijB,oBACXhtB,KAAK2tB,qBAAuB,IAAIvlB,IAC5B,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKutB,iBACjBvlB,QAAS3D,EAAW,gCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf5D,QAAS3D,EAAW,wCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK6qB,gBAAkB,IAAIziB,IAAW,CAClCuD,SAAU,MACV1F,IAAK,YACLoC,MAAOuD,sBAAY,CACf3F,IAAK,YACL+B,QAASxD,EAAW,sCACpBsE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D1G,KAAKmsB,UAAUrpB,SAAS4M,UACxB1P,KAAKotB,eAAetqB,SAAS+K,OAAO,aAAc7N,KAAK2tB,sBACvD3tB,KAAKotB,eAAetqB,SAAS4M,YAG7B1P,KAAK2tB,qBAAuB,IAAIvlB,IAC5B,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKutB,iBACjBvlB,QAASvC,EAAgB,gCACzBqD,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYzG,KAAKS,MAAM0J,aAAakF,kBAKzErP,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf5D,QAASvC,EAAgB,wBACzBqD,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYzG,KAAKS,MAAM0J,aAAakF,kBAMzErP,KAAK0uB,YAAc,CACfhB,UAAWltB,EAAQoB,QAAQyJ,UAAU2O,UACrCwT,UAAWhtB,EAAQoB,QAAQyJ,UAAUoiB,WAEzCztB,KAAK6qB,gBAAkB,IAAIziB,IAAW,CAClCuD,SAAU,MACV1F,IAAK,YACLoC,MAAOuD,sBAAY,CACf3F,IAAK,YACLic,WAAYliB,KAAK0uB,YACjB1mB,QAAS,yEACTc,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYzG,KAAKS,MAAM0J,aAAakF,kBAKrErP,KAAKmsB,UAAUrpB,SAAS4M,UACxB1P,KAAKotB,eAAetqB,SAAS+K,OAAO,aAAc7N,KAAK2tB,sBACvD3tB,KAAKotB,eAAetqB,SAAS4M,WAIjC1P,KAAKyN,SAAS,CACVuf,oBAAqBhtB,KAAK+J,MAAMijB,wBAI5B,6BAAS,6BAAS,+BAG1C,yBAAK/c,UAAU,OACX,yBAAKA,UAAU,aAEX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAKqtB,oBACjB,kBAAC,YAAD,CAAWrb,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,yBACnD,kBAAC,aAAD,CAAYjD,UAAW,UAAWyc,YAAY,EAC1Cxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8hB,gBACjBne,QAAS,KACTH,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXiJ,iBAAiB,EACjBnL,cAAepQ,KAAK4hB,4BACpBhe,IAAMA,IAAU5D,KAAKuhB,eAAiB3d,GACtC0X,eAAiB3N,IACb3N,KAAK4tB,mBAAmBC,QAAU5K,SAAStV,EAAEpG,OAC7CvH,KAAKguB,uBAAyB,IAAI5lB,IAC9B,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAK4tB,mBACjB5lB,QAAShI,KAAKuuB,cAAgB,uCAC9BzlB,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAUzG,KAAKyuB,kBAI3CzuB,KAAKguB,uBAAuBxlB,OAC5BxI,KAAKitB,sBAAsBnqB,WAAW+K,OAAO,aAAc7N,KAAKguB,2BAGxE,kBAAC,QAAD,CAAOxf,KAAK,gBAEhB,kBAAC,aAAD,CAAY0D,UAAW,iBAAkByc,YAAY,EACjDxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKguB,uBACjBrqB,QAAS,KACTH,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXiJ,iBAAiB,EACjBD,eAAiB3N,IACb3N,KAAKiuB,mBAAmBC,eAAiBjL,SAAStV,EAAEpG,OACpDvH,KAAKmuB,uBAAyB,IAAI/lB,IAC9B,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAKiuB,mBACjBjmB,QAAShI,KAAKuuB,cAAgB,+CAC9BzlB,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAUzG,KAAKyuB,kBAI3CzuB,KAAKmuB,uBAAuB3lB,OAC5BxI,KAAKktB,sBAAsBpqB,WAAW+K,OAAO,aAAc7N,KAAKmuB,yBAEpE/d,cAAgBzC,IACZ3N,KAAKitB,sBAAwBtf,EAAEC,WAEnChK,IAAMA,GAAQ5D,KAAKitB,sBAAwBrpB,IAE/C,kBAAC,QAAD,CAAO4K,KAAK,gBAEhB,kBAAC,aAAD,CAAY0D,UAAW,eAAgByc,YAAY,EAC/Cxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKmuB,uBACjB3qB,eAAe,EACfP,YAAa,eACbqP,UAAW,eACXiJ,iBAAiB,EACjBnL,cAAgBzC,IACZ3N,KAAKktB,sBAAwBvf,EAAEC,WAEnChK,IAAMA,GAAQ5D,KAAKktB,sBAAwBtpB,IAE/C,kBAAC,QAAD,CAAO4K,KAAK,iCAEhB,kBAAC,aAAD,CACI2D,WAAW,WACXC,cAAe,CACX5D,KAAM,mEACNtK,KAAM,UACN8I,QAAS,KACL,MAAM1G,EAAO,CACTmnB,UAAWjtB,EAAQoB,QAAQyJ,UAAUoiB,UACrCzT,UAAWxZ,EAAQoB,QAAQyJ,UAAU2O,UACrCgI,QAAShiB,KAAKqtB,mBAAmBrL,QACjCiK,eAAgBjsB,KAAKqtB,mBAAmBpB,eACxCqB,aAActtB,KAAKqtB,mBAAmBC,aACtCsB,aAAc,EACdC,cAAe7uB,KAAK+J,MAAMijB,oBAG9BprB,IAAQ4E,KAAKxG,KAAKuuB,cAAgB,iCAC5BjoB,EAAM,CACRG,QAASzG,KAAKyuB,eAEb9nB,KAAKC,IACF,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAIioB,EAAiBxoB,EACrBwoB,EAAeF,aAAe3L,SAASrc,EAAIN,KAAKiG,KAAKjB,IACrDwjB,EAAe/C,UAAYnlB,EAAIN,KAAKiG,KAAKwf,UACzC+C,EAAeC,UAAYnoB,EAAIN,KAAKiG,KAAKwiB,UACzC/uB,KAAKS,MAAM6O,mBAAmBwf,GAC9BlnB,YAAO,gIAA6F,UAAW,KAC/G3G,OAAOia,WAAW,KACdja,OAAOC,SAASC,KAAO,+BACxB,UAEHyG,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KAEvF9G,KAAKotB,eAAetqB,SAAS4M,YAEhC3I,MAAMC,IACH,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,eAWvC,kBAAC,YAAD,CAAWrB,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,4CACnD,kBAAC,aAAD,KACI,kBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK2tB,qBACjBrZ,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,WAAYF,KAAM,YACzC4B,KAAM,yBACNxB,QAAS,KACL,MAAMP,EAAQzM,KAAKmtB,gBACnB,GAAc,OAAV1gB,QAA4B5L,IAAV4L,EAIjB,GAA+B,oBAA3BA,EAAMuiB,iBAIV,CACD,MAAM1oB,EAAO,CACTmnB,UAAWhhB,EAAMghB,UACjBzT,UAAWvN,EAAMuN,UACjBgI,QAASvV,EAAMuV,QACfiK,eAAgBxf,EAAMwf,eACtBqB,aAAc7gB,EAAM6gB,aACpBsB,aAAcniB,EAAMnB,GACpBygB,UAAWtf,EAAMsf,UACjBgD,UAAWtiB,EAAMsiB,UACjBF,cAAe7uB,KAAK+J,MAAMijB,oBAE9BhtB,KAAKS,MAAM6O,mBAAmBhJ,GAC9BsB,YAAO,gIAA6F,UAAW,KAC/G3G,OAAOia,WAAW,KACdja,OAAOC,SAASC,KAAO,+BACxB,UAnBH2R,YAAM,wDAA2B,mBAJjCA,YAAM,6BAAsB,iBA4B5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvC4B,KAAM,SACNxB,QAAUW,IACN3N,KAAKotB,eAAetqB,SAAS4M,eAKjDuM,mBAAqB2C,IACjB5e,KAAKmtB,gBAAkBvO,EAAcC,iBAAiB,IAE1DzO,cAAgBzC,IACZ3N,KAAKotB,eAAiBzf,EAAEC,WAE5BhK,IAAMA,GAAQ5D,KAAKotB,eAAiBxpB,GAEpC,kBAAC,gBAAD,CAAesR,SAAS,IACxB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,iBAAkB7D,SAAS,IAC9C,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAS,UAAW9G,SAAS,IAC3D,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,UAAU9G,SAAS,IACzD,kBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,cAAc9G,SAAS,IACjE,kBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,eACvC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,UACvC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,0BACxC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,oBACxC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,wBACvC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,eACxC,kBAAC,SAAD,CAAQjD,UAAW,eAAgBiD,QAAQ,qBAC3C,kBAAC,SAAD,CAAQjD,UAAW,mBAAoBiD,QAAQ,iBAS3E,kBAAC,MAAD,CAAKrK,MAAM,iBACP,kBAAC,IAAD,CACIsJ,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK6qB,gBACjBvW,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,YACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,WAAYF,KAAM,YACzC4B,KAAM,WACNxB,QAAS,KACL,MAAMP,EAAQzM,KAAK6rB,WACL,OAAVpf,QAA4B5L,IAAV4L,EAMlB7K,IAAQ4E,MAAMxG,KAAK+J,MAAMijB,mBAAqB,yCAA2CxoB,GAAY,mCACjG,CACIwV,UAAWvN,EAAMuN,UACjBvL,QAAShC,EAAMgC,QACfrD,YAAaqB,EAAMrB,YACnB0gB,UAAWrf,EAAMqf,UACjBC,UAAWtf,EAAMsf,UACjBC,YAAavf,EAAMuf,YACnBC,eAAgBxf,EAAMnB,GACtB4gB,kBAAmBzf,EAAMyf,mBAE7B,CACIzlB,QAASzG,KAAKyuB,eAEjB9nB,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKmsB,UAAUrpB,SAAS4M,UAGxB9H,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAMiH,IACLpG,YAAO,oEAA6D,QAAS,OA3BrFkL,YAAM,6BAAsB,iBAiC5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvC4B,KAAM,SACNxB,QAAUW,IACN3N,KAAKmsB,UAAUrpB,SAAS4M,eAK5CuM,mBAAqB2C,IACjB5e,KAAK6rB,WAAajN,EAAcC,iBAAiB,IAErDjb,IAAMA,GAAQ5D,KAAKmsB,UAAYvoB,GAE/B,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,YAAaiD,QAAQ,gBAAW9G,SAAS,IAC5D,kBAAC,SAAD,CAAQ6D,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAU,WAAWiD,QAAQ,GACjC7R,MAAO,GACP8oB,cAAc,EACdC,WAAYC,KAEhB,kBAAC,SAAD,CAAQpa,UAAW,cAAeiD,QAAQ,cAAc9G,SAAS,IACjE,kBAAC,SAAD,CAAQ6D,UAAW,eAAgBiD,QAAQ,eAAe9G,SAAS,IACnE,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,UAAU9G,SAAS,IACzD,kBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,eACvC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,0BACxC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,oBACxC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,wBACvC,kBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,YACpC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,iBACtC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,UACvC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,OAAO4K,OAC1D,wBAEJ,kBAAC,SAAD,CAAQ/N,UAAW,YAAaiD,QAAQ,YAAY9G,SAAS,IAC7D,kBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,QAAQ9G,SAAS,MAG7D,kBAAC,MAAD,CAAKvD,MAAM,WACP,yBAAKmF,UAAU,OACX,yBAAKA,UAAU,YACX,kBAAC,YAAD,CACIoC,WAAYrS,KAAKiiB,oBACjBhf,YAAa,YACbqP,UAAW,YACXgJ,eAAiB3N,IACb,MAAMsc,EAAUjqB,KAAK2qB,UAAUnB,WAAW7b,EAAEpG,OAC5CvH,KAAKyN,SAAS,CACVwc,QAASA,QAMzB,yBAAKha,UAAU,MAAMC,MAAO,CAAEG,UAAW,UAGzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,GAAD,CAAWgZ,QAASjpB,KAAK+J,MAAMkgB,cAK/C,kBAAC,MAAD,CAAKnf,MAAM,WACP,kBAAC,IAAD,CACIsJ,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK+qB,eACjB5C,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnBC,oBAAoB,EACpB8G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJgW,mBAAqB2C,IACjB5e,KAAKqqB,UAAYzL,EAAcC,iBAAiB,GAChD7e,KAAKyN,SAAS,CACVoc,WAAY7pB,KAAKqqB,UAAUvK,OAC3BgK,UAAW9pB,KAAKqqB,UAAUkC,QAGlChY,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,sBAAeF,KAAM,SAC5CI,QAAS,KACkB,OAAnBhN,KAAKqqB,eAAwCxpB,IAAnBb,KAAKqqB,UAC/BvX,YAAM,sCAA4B,cAGlC9S,KAAKsrB,iBAKrB,CACIpqB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyqB,SAAS3nB,SAAS4M,eAM3CU,cAAgBzC,IACZ3N,KAAKyqB,SAAW9c,EAAEC,WAEtBhK,IAAMA,IAAU5D,KAAKyqB,SAAW7mB,IAEhC,kBAAC,SAAD,CACIsR,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,IACzBma,SAAU,qBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,kBAAC,gBAAD,CAAe3X,KAAK,cAAcI,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,MAC3D,kBAAC,YAAD,CAAW2G,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,eAAD,CAAcA,SAAS,IACvB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,SACtC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,oBACxC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,cACtC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,qBACrC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,sBACxC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,QAAQE,SAAU,WAIhE,kBAAC,MAAD,CAAKvK,MAAM,WACP,kBAAC,IAAD,CACIsJ,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKgrB,eACjB7C,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnBC,oBAAoB,EACpB8G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJgW,mBAAqB2C,IACjB5e,KAAKsqB,UAAY1L,EAAcC,iBAAiB,GAChD7e,KAAKyN,SAAS,CACVsc,WAAY/pB,KAAKsqB,UAAUxK,OAC3BkK,UAAWhqB,KAAKsqB,UAAUnK,YAGlC5L,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,sBAAeF,KAAM,SAC5CI,QAAS,KACkB,OAAnBhN,KAAKsqB,eAAwCzpB,IAAnBb,KAAKsqB,UAC/BxX,YAAM,sCAA4B,cAGlC9S,KAAKwrB,iBAKrB,CACItqB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAK0qB,SAAS5nB,SAAS4M,eAM3CU,cAAgBzC,IACZ3N,KAAK0qB,SAAW/c,EAAEC,WAEtBhK,IAAMA,IAAU5D,KAAK0qB,SAAW9mB,IAEhC,kBAAC,SAAD,CACIsR,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,IACzBma,SAAU,qBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,kBAAC,gBAAD,CAAe3X,KAAK,cAAcI,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,MAC3D,kBAAC,YAAD,CAAW2G,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,eAAD,CAAcA,SAAS,IACvB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,SACtC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,oBACxC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,cACtC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,qBACrC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,sBACxC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,QAAQE,SAAU,WAIhE,kBAAC,MAAD,CAAKvK,MAAM,yBACP,yBAAKmF,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKsuB,8BACjBle,cAAgBzC,IACZ3N,KAAKivB,wBAA0BthB,EAAEC,WAErC0G,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBue,OAAQ,CACJ1X,SAAS,EACTwT,SAAU,uBAEd7T,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRC,IAAMA,GAAQ5D,KAAKivB,wBAA0BrrB,GAE7C,kBAAC,SAAD,CACI8kB,SAAU,6BACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAIrB,kBAAC,YAAD,CAAWvX,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,OAAQiD,QAAQ,YAAO7R,MAAO,KACjD,kBAAC,SAAD,CAAQ4O,UAAW,MAAOiD,QAAQ,OAClC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,UACrC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,qBAAaE,SAAU,WAC/D,kBAAC,SAAD,CAAQnD,UAAW,QAASiD,QAAQ,QAAQ7R,MAAO,MACnD,kBAAC,SAAD,CAAQ4O,UAAW,SAAUmD,SAAU,SAAUF,QAAQ,oBAKrE,yBAAKlF,UAAU,MAAMC,MAAO,CAAEQ,OAAQ,SAClC,yBAAKT,UAAU,eAInB,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKquB,8BACjBje,cAAgBzC,IACZ3N,KAAKkvB,wBAA0BvhB,EAAEC,WAErC0G,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBgR,OAAQ,CACJ1X,SAAS,EACTwT,SAAU,YAEd7T,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRC,IAAMA,GAAQ5D,KAAKkvB,wBAA0BtrB,GAE7C,kBAAC,SAAD,CACI8kB,SAAU,6BACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,kBAAC,eAAD,CAAcvX,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,OAAQiD,QAAQ,cACnC,kBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,OAClC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,UACrC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,qBAAaE,SAAU,WAC/D,kBAAC,SAAD,CAAQnD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,aACtD,kBAAC,SAAD,CAAQnD,UAAW,kBAAmBiD,QAAQ,oBAC9C,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,UAAUE,SAAU,WACzD,kBAAC,SAAD,CAAQnD,UAAW,OAAQiD,QAAQ,cAMnD,kBAAC,MAAD,CAAKrK,MAAM,wCACP,yBAAKmF,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,yBACX,uBAAG9O,KAAK,+CAA+C0W,IAAI,sBAAsBL,OAAO,UAAxF,6BAAoH,6BAAM,6BAC1H,uBAAGrW,KAAK,+CAA+C0W,IAAI,sBAAsBL,OAAO,UAAxF,+BAAsH,6BAAS,6BAC/H,uBAAGrW,KAAK,+CAA+C0W,IAAI,sBAAsBL,OAAO,UAAxF,kCAAyH,6BAAS,6BAClI,uBAAGrW,KAAK,+CAA+C0W,IAAI,sBAAsBL,OAAO,UAAxF,4BAAmH,6BAAS,uCAWpK,kBAAC,QAAD,CAAO5G,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACrFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAKqrB,eAAgBhd,QAASrO,KAAK+J,MAAM4f,UACnD7e,MAAO9K,KAAK+J,MAAM8f,WAClBzd,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KAAQhN,KAAKqrB,sBAOxC,kBAAC,WAAD,CAAUja,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,0BAAMmI,wBAAyB,CAAEC,OAAQrY,KAAK+J,MAAM+f,iBAKpE,kBAAC,QAAD,CAAOlZ,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACrFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAKurB,eAAgBld,QAASrO,KAAK+J,MAAM6f,UACnD9e,MAAO9K,KAAK+J,MAAMggB,WAClB3d,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KAAQhN,KAAKurB,sBAOxC,kBAAC,WAAD,CAAUna,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,0BAAMmI,wBAAyB,CAAEC,OAAQrY,KAAK+J,MAAMigB,mBASrE1U,mBA9mCSvL,IAAK,CACzBI,aAAcJ,EAAMI,aAAaf,OAPToM,IACjB,CACHpG,gBAAkB9I,GAASkP,EAASrM,GAAoB7C,IACxDgJ,mBAAqBhJ,GAASkP,EAAShM,GAAwBlD,MAinCxDgP,CAA6CyX,IAC5D,SAAST,GAAWhmB,GAChB,OAAa,OAATA,QAEyBzF,IAApByF,EAAKA,KAAKua,OAA2C,OAApBva,EAAKA,KAAKua,OAAsC,KAApBva,EAAKA,KAAKua,MADrE,4BAKA,uBAAGhJ,IAAI,sBAAsB1W,KAAMmF,EAAKA,KAAKua,MAAOrJ,OAAO,UAC9D,yBAAKM,IAAI,sBAAsBC,IAAI,kCCxoChC,MAAMoX,WAAgCltB,IAAM0T,UACvD5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAKovB,qBAAuB,KAC5BpvB,KAAKqvB,0BAA4B,KACjCrvB,KAAKsvB,qBAAuB,KAC5BtvB,KAAKuvB,cAAgB,KACrBvvB,KAAKwvB,YAAc,CAAEtB,eAAgB,GACrCluB,KAAKyvB,2BAA6B,IAAIrnB,IAClC,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,gCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAK0vB,6BAA+B,IAAItnB,IACpC,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,iDACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAKguB,uBAAyB,IAAI5lB,IAC9B,CACIuD,SAAU,MACV1F,IAAK,iBACLoC,MAAOuD,sBAAY,CACf3F,IAAK,iBACL+B,QAASrD,EAAe,oCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAK2vB,sBAAwB,IAAIvnB,IAC7B,CACIG,cAAc,EACd4D,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKwvB,YACjBxnB,QAASrD,EAAe,oCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAOrE3D,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAMgC,SAAU,EAAG3O,MAAO,OAAQM,IAAMA,GAAQ5D,KAAKuvB,cAAgB3rB,GACjE,kBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,KACI,kBAAC,kBAAD,CAAiB2Z,gBAAgB,IACjC,kBAAC,MAAD,CAAK9gB,MAAM,4CACP,kBAAC,IAAD,CACIsJ,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKyvB,2BACjBnb,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvC4B,KAAM,SACNxB,QAAUW,IACN3N,KAAKovB,qBAAqBtsB,SAAS4M,eAKvD9L,IAAMA,GAAQ5D,KAAKovB,qBAAuBxrB,GAE1C,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,cAAeC,yBAAyB,IACzE,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,eAAD,CAAc7G,SAAS,IACvB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,YAAD,CAAWA,SAAS,EAAM0a,YAAa,SACvC,kBAAC,aAAD,CAAY1a,SAAS,IACrB,kBAAC,SAAD,CAAQmO,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,oBAAqBiD,QAAQ,2BAAiB9G,SAAS,EAAMuhB,WAAY,EAAGC,cAAgBlb,GACzF,IAAdA,EAAIpN,MACG,WAEY,IAAdoN,EAAIpN,MACF,WAEY,IAAdoN,EAAIpN,MACF,WAEY,IAAdoN,EAAIpN,MACF,WAEY,IAAdoN,EAAIpN,MACF,WAEY,IAAdoN,EAAIpN,MACF,WAEY,IAAdoN,EAAIpN,MACF,WAEY,KAAdoN,EAAIpN,MACF,YAEY,KAAdoN,EAAIpN,MACF,YAEY,KAAdoN,EAAIpN,MACF,YAEY,KAAdoN,EAAIpN,MACF,aADN,IAIT,kBAAC,SAAD,CAAQ2K,UAAW,WAAYiD,QAAQ,aACvC,kBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,YACpC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,iBACtC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,UACvC,kBAAC,SAAD,CAAQjD,UAAW,uBAAwBiD,QAAQ,qCACnD,kBAAC,UAAD,KACI,kBAAC,YAAD,CACI2a,OAAO,uBACPC,YAAY,WAM5B,kBAAC,MAAD,CAAKjlB,MAAM,mEACP,kBAAC,IAAD,CACIsJ,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK0vB,6BACjBpb,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvC4B,KAAM,SACNxB,QAAUW,IACN3N,KAAKqvB,0BAA0BvsB,SAAS4M,eAK5D9L,IAAMA,GAAQ5D,KAAKqvB,0BAA4BzrB,GAE/C,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,wBAAyBC,yBAAyB,IACnF,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,eAAD,CAAc7G,SAAS,IACvB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,YAAD,CAAWA,SAAS,EAAM0a,YAAa,SACvC,kBAAC,aAAD,CAAY1a,SAAS,IACrB,kBAAC,SAAD,CAAQmO,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,YACpC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,iBACtC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,UACvC,kBAAC,SAAD,CAAQjD,UAAW,gBAAiBiD,QAAQ,uCAGpD,kBAAC,MAAD,CAAKrK,MAAM,uDACP,kBAAC,IAAD,CAAMmH,SAAU,EAAG3O,MAAO,QACtB,kBAAC,YAAD,CAAW0O,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,CAAYC,UAAW,iBACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKguB,uBACjBxqB,eAAe,EACfP,YAAa,kBACbsY,iBAAiB,EACjBjJ,UAAW,iBACXgJ,eAAiB3N,IACb3N,KAAKwvB,YAAYtB,eAAiBjL,SAAStV,EAAEpG,OAC7CvH,KAAKsvB,qBAAqBxsB,SAAS4M,aAG3C,kBAAC,QAAD,CAAOlB,KAAK,4BAGpB,kBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,KACI,kBAAC,IAAD,CACImC,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK2vB,sBACjBrb,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvC4B,KAAM,SACNxB,QAAUW,IACN3N,KAAKsvB,qBAAqBxsB,SAAS4M,eAKvD9L,IAAMA,GAAQ5D,KAAKsvB,qBAAuB1rB,GAE1C,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,oBAAqBC,yBAAyB,IAC/E,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,eAAD,CAAc7G,SAAS,IACvB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,YAAD,CAAWA,SAAS,EAAM0a,YAAa,SACvC,kBAAC,aAAD,CAAY1a,SAAS,IACrB,kBAAC,SAAD,CAAQmO,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,YACpC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,iBACtC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,UACvC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,0BACxC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,eACvC,kBAAC,SAAD,CAAQjD,UAAW,eAAgBiD,QAAQ,yBAC3C,kBAAC,SAAD,CAAQjD,UAAW,OAAQiD,QAAQ,sBCtShF,MAAM6a,WAAqB/tB,IAAM0T,UAC5C5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTkmB,OAAQ,GACR3lB,OAAO,EACP4lB,SAAU,GACVC,YAAa,GACbC,iBAAiB,GAErBpwB,KAAK+Q,UAAY,KACjB/Q,KAAKqwB,aAAe,KACpBrwB,KAAKswB,cAAgB,KACrBtwB,KAAKuwB,gBAAkB,GACvBvwB,KAAKyM,MAAQ,KACbzM,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAKwwB,aAAexwB,KAAKwwB,aAAa5mB,KAAK5J,MAC3CA,KAAKywB,mBAAqBzwB,KAAKywB,mBAAmB7mB,KAAK5J,MACvDA,KAAKoQ,cAAgBpQ,KAAKoQ,cAAcxG,KAAK5J,MAC7CA,KAAK0wB,WAAa,KACd1wB,KAAKuwB,gBAAkB,GACvBvwB,KAAKyN,SAAS,CACVnD,OAAO,EAAO6lB,YAAa,GAC3BC,iBAAiB,IAErBpwB,KAAK2wB,cAET3wB,KAAK4wB,cAGTrc,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QAEnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,aACNF,KAAM,OACN4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKwwB,eAGtB,CACItvB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UAAW4F,SAAUxS,KAAK+J,MAAMqmB,gBACvEpjB,QAAS,KACLhN,KAAK4wB,iBAIjB,CACI1vB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YAAa0F,SAAUxS,KAAK+J,MAAMqmB,gBACvEpjB,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CyZ,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAG1CgS,UAAW,IAAD,kHACZ,EAAKpjB,SAAS,CACVnD,OAAO,EACP8lB,iBAAiB,IAHT,6CAOVH,SAAU,IAAD,2IAEJ,IAAIlV,QAAQ,CAACC,EAASC,KAEzBrZ,IAAQ6F,IAAIpD,EAAW,gBACnB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACVwiB,OAAQrpB,EAAIN,KAAKiG,OAErByO,EAAQ,8BAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOtV,EAAsBqI,EAAO,uBAtBrC,6CA4BTkiB,WAAY,IAAD,2IACN,IAAInV,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,kBACnB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACVyiB,SAAUtpB,EAAIN,KAAKiG,OAEvByO,EAAQ,+BAIRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAGvBC,MAAMiH,IACHiN,EAAOnV,EAAakI,SAtBnB,6CA4BX4iB,cAAe,IAAD,iIAChB,EAAKnjB,SAAS,CACV0iB,YAAa,+BACbC,iBAAiB,IAEjBU,EAAgB,GAChBC,GAAU,EANE,SAQV,EAAKd,SAAStpB,KAAKC,OAAYG,MAAMiH,IACvC8iB,GAAiB9iB,EAAQ,QACzB+iB,GAAU,IAVE,uBAaV,EAAKb,WAAWvpB,KAAKC,OAAYG,MAAMiH,IACzC8iB,GAAiB9iB,EAAQ,QACzB+iB,GAAU,IAfE,uBAkBV,EAAKJ,aAlBK,OAoBhB,EAAKljB,SAAS,CACV0iB,YAAa,GACbC,iBAAiB,IAEjBW,GACAje,YAAMge,GAzBM,8CA6BdE,QAAQC,GAAQ,IAAD,kIACX,EAAKC,cAAcD,GACpBtqB,KAAKC,IACF,EAAKiqB,YAER9pB,MAAMiH,IACH8E,YAAM9E,KANG,6CAUfkjB,cAAcD,GAAQ,IAAD,2IAChB,IAAIlW,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,0BAA4B4sB,EAC/C,CACIxqB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACF,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAIsqB,EAAY,GAChBvqB,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzBwhB,EAAU3uB,KAAKoe,EAAKwQ,MAAM9lB,MAE9B,EAAKglB,cAAcxtB,SAASuuB,WAAWF,GACvCnW,EAAQ,8BAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,gBAErBC,MAAMiH,IACLiN,EAAOtV,EAAsBqI,EAAO,gCAtBzB,6CA2BrBsjB,uBAAwB,OAAD,0IAG7Bd,aAAa7iB,GAET,MAAMlB,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,EAKlBzM,KAAKgxB,QAAQvkB,EAAMnB,IAJnBwH,YAAM,6BAAsB,cAQpC2d,qBACIzwB,KAAKuwB,gBAAkBvwB,KAAKswB,cAAcxtB,SAAS4R,sBAGvDtE,cAAczC,GACV3N,KAAKqwB,aAAe1iB,EAAEC,UAIpB+iB,aAAc,IAAD,kHACf,EAAKN,aAAavtB,SAASyuB,iBAC3B,EAAKlB,aAAavtB,SAAS+K,OAAO,mBAAoB,GAFvC,6CAKnB9K,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,OACX,yBAAKA,UAAU,aACVjQ,KAAK+J,MAAMomB,cAGpB,yBAAKlgB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK+J,MAAMkmB,OACvB3b,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzB7L,cAAepQ,KAAKoQ,cACpBxM,IAAMA,GAAQ5D,KAAKqwB,aAAezsB,GAElC,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,SAAUC,yBAAyB,IACpE,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,kBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,kBAAC,eAAD,CAAc5T,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,SAEtC,kBAAC,QAAD,CAAOvE,WAAW,EAAMC,SAAS,EAAOC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACtFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAAOhH,MAAO,OAAQoN,OAAQ,OAC7EtE,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IACR,IAAIrH,EAAO,CACPkrB,SAAUxxB,KAAKuwB,iBAEnBvwB,KAAKyN,SAAS,CACV0iB,YAAa,8BACbC,iBAAiB,IAErBxuB,IAAQ4E,KAAKnC,EAAW,oBAAsBrE,KAAKyM,MAAMnB,GACrDhF,EACA,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAK0wB,cAGL1wB,KAAKyN,SAAS,CACV0iB,YAAa,GACbC,iBAAiB,IAErBxoB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAE5CC,MAAMiH,IACLhO,KAAKyN,SAAS,CACV0iB,YAAa,GACbC,iBAAiB,IAErBtd,YAAMhN,EAAakI,SAKvC,CACI9M,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,kBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,UACjB,kBAAC,YAAD,CAAWE,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,YACnD,kBAAC,aAAD,KACI,kBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK+J,MAAMmmB,SACvB5b,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB8D,cAAc,EACd7D,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EAEnBE,mBAAoBjc,KAAKywB,mBACzB9sB,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEd3Y,IAAMA,GAAQ5D,KAAKswB,cAAgB1sB,EACnCN,MAAM,QAGN,kBAAC,SAAD,CAAQkZ,gBAAiB,KACzB,kBAAC,YAAD,CAAW1H,KAAK,WACZ2H,cAAc,WACd1H,mBAAmB,YACvB,kBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,WAAQwK,eAAe,MAC3D,kBAAC,SAAD,CAAQzN,UAAW,OAAQiD,QAAQ,OAAOwK,eAAe,MACzD,kBAAC,SAAD,CAAQzN,UAAW,MAAOiD,QAAQ,QAAQwK,eAAe,MACzD,kBAAC,SAAD,CAAQzN,UAAW,WAAYiD,QAAQ,mBAAWwK,eAAe,kBC7W1G,MAAM8R,WAA2BxvB,YAC5ClC,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTO,OAAO,GAEXtK,KAAK0xB,UAAY,KACjB1xB,KAAKyoB,SAAW,KAChBzoB,KAAK2xB,cAAgB,KACrB3xB,KAAK4xB,aAAe,KACpB5xB,KAAKyM,MAAQ,KACbzM,KAAKmZ,SAAW,GAChBnZ,KAAK8R,SAAW,GAEhB9R,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAK6xB,2BAA6B7xB,KAAK6xB,2BAA2BjoB,KAAK5J,MACvEA,KAAK8xB,4BAA8B9xB,KAAK8xB,4BAA4BloB,KAAK5J,MACzEA,KAAK+xB,sBAAwB/xB,KAAK+xB,sBAAsBnoB,KAAK5J,MAC7DA,KAAKgyB,uBAAyBhyB,KAAKgyB,uBAAuBpoB,KAAK5J,MAC/DA,KAAKiyB,0BAA4BjyB,KAAKiyB,0BAA0BroB,KAAK5J,MACrEA,KAAKkyB,2BAA6BlyB,KAAKkyB,2BAA2BtoB,KAAK5J,MACvEA,KAAKwwB,aAAexwB,KAAKwwB,aAAa5mB,KAAK5J,MAC3CA,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAK0wB,WAAa,KACd1wB,KAAKyN,SAAS,CAAEnD,OAAO,KAE3BtK,KAAKyG,QAAU,CAAE,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAC9D1G,KAAKmxB,UAAY,KACjBnxB,KAAKoyB,MAAO,EACZpyB,KAAK4Z,gBAAkB,GACvB5Z,KAAK8Z,oBAAsB,GAC3B9Z,KAAKqyB,oBAAsB,IAAIjqB,IAC3B,CACIuD,SAAU,MACVQ,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,+BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKsyB,cAAgB,IAAIlqB,IACrB,CACIuD,SAAU,MACVoD,OAAQ,CAAC,MAAO,IAAK,SACrB1G,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,aACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAU/DmqB,UAAW,IAAD,2IACL,IAAI9V,QAAQC,IACf,EAAKvN,SAAS,CACVnD,OAAO,IAEX0Q,GAAQ,MALA,6CASVuX,OAAQ,IAAD,kHACT,EAAKzgB,SAAW,CACZxG,GAAI,EACJknB,OAAQ,KACRC,SAAS,EACTC,WAAY,EACZ5b,aAAc,KACdC,MAAO,KACP4b,MAAO,KACP9iB,IAAK,KACLC,OAAQ,KACRqK,UAAU,EACVC,WAAW,EACXH,IAAK,KACLC,IAAK,KACL0Y,MAAO,MAfF,6CAmBPC,YAAa,IAAD,yHACd,EAAKjZ,gBAAkB,GACvB,EAAKE,oBAAsB,GAFb,SAGR,EAAK4X,UAAU5uB,SAASyuB,iBAHhB,uBAIR,EAAKuB,sBAJG,6CAOZC,aAAa5jB,GAAK,IAAD,2IACZ,IAAI4L,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,0BAA4B8K,EAAI,CACnD1I,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACTD,EAAIN,KAAKiG,KAAO3F,EAAIN,KAAKiG,KAAK,GAC9B,EAAKuF,SAAW,CACZxG,GAAI1E,EAAIN,KAAKiG,KAAKjB,GAClBknB,OAAQ5rB,EAAIN,KAAKiG,KAAKimB,OACtBC,QAAS7rB,EAAIN,KAAKiG,KAAKkmB,QACvBC,WAAY9rB,EAAIN,KAAKiG,KAAKmmB,WAC1B5b,aAAclQ,EAAIN,KAAKiG,KAAKuK,aAC5BC,MAAOnQ,EAAIN,KAAKiG,KAAKwK,MACrB4b,MAAO/rB,EAAIN,KAAKiG,KAAKomB,MACrB9iB,IAAKjJ,EAAIN,KAAKiG,KAAKsD,IACnBC,OAAQlJ,EAAIN,KAAKiG,KAAKuD,OACtBqK,SAAUvT,EAAIN,KAAKiG,KAAK4N,SACxBC,UAAWxT,EAAIN,KAAKiG,KAAK6N,UACzBH,IAAKrT,EAAIN,KAAKiG,KAAK0N,IACnBC,IAAKtT,EAAIN,KAAKiG,KAAK2N,IACnB0Y,MAAOhsB,EAAIN,KAAKiG,KAAKymB,KACrBA,KAAMpsB,EAAIN,KAAKiG,KAAKymB,KACpBC,eAAgBrsB,EAAIN,KAAKiG,KAAK0mB,gBAElCjY,EAAQ,6CAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAM,KACLkU,EAAO,+EAjCI,6CAsCjBiY,6BAA6BC,GAAc,IAAD,2IACrC,IAAIpY,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,0CAA4C8uB,EAAa,CAC5E1sB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACJ,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAIsqB,EAAY,GAChBvqB,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzBwhB,EAAU3uB,KAAKoe,EAAKwS,YAExB,EAAK1B,UAAU5uB,SAASuuB,WAAWF,GACnCnW,EAAQ,wCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAM,KACLkU,EAAO,uEAnB6B,6CA4B1CuV,aAAa7iB,GAAI,IAAD,2HAEJ,QADRlB,EAAQ,EAAKA,aACa5L,IAAV4L,EAFJ,uBAGdqG,YAAM,6BAAsB,cAHd,+BAOc,kBAAxBtS,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,KAP1C,iBAQVuE,YAAM,uDARI,yCAWJ,EAAK+f,YAXD,eAYV,EAAK/gB,SAAW,GAZN,UAaJ,EAAKihB,aAAatmB,EAAMnB,IAAIvE,MAAMC,IACpCY,YAAOZ,EAAK,QAAS,OAdf,yBAiBJ,EAAKsrB,cAAc9pB,OAAO6qB,KAA1B,sBAA+B,sBAAA9sB,EAAA,sEAC3B,EAAKqrB,aAAa9uB,WAAW+K,OAAO,QAAS,EAAKiE,SAAS0gB,QADhC,4CAjB3B,yBAuBJ,EAAKU,6BAA6BzmB,EAAMnB,IAAI3E,KAAK,QACpDI,MAAMiH,IACLpG,YAAOoG,EAAO,QAAS,OAzBjB,yBA4BJ,EAAK6iB,UA5BD,8CAkChByC,IAAI7mB,GAAQ,IAAD,kHACb7K,IAAQ4E,KAAKnC,EAAW,0BAA4BoI,EAAMnB,GACtD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QAETjF,IAAQ4E,KAAKnC,EAAW,0BAA4BoI,EAAMnB,GACtD,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD,EAAK6gB,SAAS3lB,SAAS4M,WAGvB9H,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAMnDc,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OA9BtC,6CAmCXysB,SAAS9mB,GAAQ,IAAD,kHAClB7K,IAAQ4E,KAAKnC,EAAW,sBAAwBoI,EAAMnB,GAAI,KACtD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4hB,SAAS3lB,SAAS4M,UACvB9H,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAdjC,6CAmBhB0sB,SAAS/mB,GAAQ,IAAD,kHAClB7K,IAAQ4E,KAAKnC,EAAW,sBAAwBoI,EAAMnB,GAClD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4hB,SAAS3lB,SAAS4M,UACvB9H,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAfjC,6CAoBtBqrB,WAAWxkB,GACHA,EAAEpG,MAAMiF,OAAS,IACjBxM,KAAK8R,SAAS8gB,MAAQjlB,EAAEpG,MAAM,GAAGyb,KACjCpb,YAAO,sBAAoB,UAAW,MAI9C2M,mBAAmB5G,GAAI,IAAD,OAClBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,OAAQF,KAAM,MACrCI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,2DACuB,eAAxB/F,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,KADnD,gBAEDuE,YAAM,uDAFL,uCAMK,EAAKyf,OANV,uBAOK,EAAKM,YAPV,wBAQK,EAAKhC,UARV,4CAAF,kDAAC,KAahB,CACI3vB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,aAAWF,KAAM,OACxCI,QAAShN,KAAKwwB,eAGtB,CACItvB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,QACnCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,8IAA6H,cAC3IvM,KAAP,uCAAY,WAAOwM,GAAP,SAAA5M,EAAA,0DACa,IAAjB4M,EADI,gCAEE,EAAKmgB,IAAI7mB,GAFX,uBAGE,EAAKgnB,qBAHP,2CAAZ,4DATJ3gB,YAAM,6BAAsB,iBAoB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAP,uCAAY,WAAOwM,GAAP,SAAA5M,EAAA,0DACa,IAAjB4M,EADI,gCAEE,EAAKqgB,SAAS/mB,GAFhB,uBAGE,EAAKgnB,qBAHP,2CAAZ,4DATJ3gB,YAAM,6BAAsB,iBAoB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1CI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAP,uCAAY,WAAOwM,GAAP,SAAA5M,EAAA,0DACa,IAAjB4M,EADI,gCAEE,EAAKogB,SAAS9mB,GAFhB,uBAGE,EAAKgnB,qBAHP,2CAAZ,4DATJ3gB,YAAM,6BAAsB,iBAoB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAAS4M,aAInC,CACIxO,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrCE,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAS5CuvB,sBAAsBpkB,GAClB3N,KAAKyoB,SAAW9a,EAAEC,UAGtBokB,uBAAuBrkB,GACnB3N,KAAK0xB,UAAY/jB,EAAEC,UAMvBqkB,0BAA0BtkB,GACtB3N,KAAK4xB,aAAejkB,EAAEC,UAG1BskB,2BAA2BvkB,GACvB3N,KAAK2xB,cAAgBhkB,EAAEC,UAG3BikB,2BAA2BjT,GACvB5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDiT,8BACI9xB,KAAK4Z,gBAAkB5Z,KAAK0xB,UAAU5uB,SAAS4R,sBAG7C+e,qBAAsB,IAAD,kHACQ,OAA3B,EAAKhL,SAAS3lB,WACd,EAAK2lB,SAAS3lB,SAASyuB,iBACvB,EAAK9I,SAAS3lB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAOrBilB,sBAAuB,IAAD,kHACQ,OAA5B,EAAKpB,UAAU5uB,WACf,EAAK4uB,UAAU5uB,SAASyuB,iBACxB,EAAKG,UAAU5uB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAS5B9K,SAEI,OACI,gBAAC,WAAD,KACI,uBAAKkN,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKqyB,oBACjBlK,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBrY,QAAQ,KACRuY,OAAQ,CACJhH,SAAS,GAEbkH,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAoBvU,KAAKuU,mBACzBnE,cAAepQ,KAAK+xB,sBACpB9V,mBAAoBjc,KAAK6xB,2BACzBjuB,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAG9B,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,gBAAD,CAAezT,SAAS,IACxB,gBAAC,UAAD,CAASJ,KAAM,UACf,gBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,gBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,gBAAC,eAAD,CAAc5T,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,KACzB,gBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,YACvD,gBAAC,SAAD,CAAQnD,UAAW,eAAgBiD,QAAQ,gBAC3C,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,UACpC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,aAClC,gBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,gBACrC,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,eACpC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,MAAM9G,SAAS,IACjD,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,MAAM9G,SAAS,IACjD,gBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,YAAYE,SAAS,YAC5D,gBAAC,SAAD,CAAQnD,UAAW,YAAaiD,QAAQ,aAAaE,SAAS,gBAK9E,gBAAC,QAAD,CAAOzE,WAAW,EAAMC,SAAS,EAAOC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACtFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IACe3N,KAAK2xB,cAAc7uB,SAASgc,WAC/BC,UAOhB/e,KAAK8Z,oBAAsB,GAE3B9Z,KAAK4Z,gBAAgBvS,QAAQ,CAACuZ,EAAMjR,KAChC3P,KAAK8Z,oBAAoBtX,KACrB,CACIkxB,MAAO,CAAEpoB,GAAIsV,EAAKtV,IAClBD,UAAW,CAAEC,GAAI,YAKDzK,IAAxBb,KAAK8R,SAAS8gB,QACd5yB,KAAK8R,SAASkhB,KAAOhzB,KAAK8R,SAAS8gB,OAOvC5yB,KAAK2zB,eAAiB,CAClBtoB,UAAWrL,KAAK8R,SAChBgI,oBAAqB9Z,KAAK8Z,qBAG9BlY,IAAQ4E,KAAKnC,EAAW,+BACpBrE,KAAK2zB,eACL,CACIltB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QAET7G,KAAKyoB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC3G,KAAKyN,SAAS,CACVnD,OAAO,OAKftK,KAAK2zB,eAAiB,CAClBtoB,UAAWrL,KAAK8R,SAChBgI,oBAAqB9Z,KAAK8Z,qBAE9BlS,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,YAQnE,CACI5F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,gBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAKkyB,2BAA4BtuB,IAAMA,GAAQ5D,KAAK2xB,cAAgB/tB,GAC9G,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,iCACnD,gBAAC,aAAD,CAAYjD,UAAW,QAASyc,YAAY,GACxC,gBAAC,QAAD,CAAOngB,KAAK,WAEhB,gBAAC,aAAD,CAAY0D,UAAW,eAAgByc,YAAY,GAC/C,gBAAC,QAAD,CAAOngB,KAAK,iBAEhB,gBAAC,aAAD,CAAY0D,UAAW,QAASyc,YAAY,EAAMxc,WAAW,aACzD,gBAAC,QAAD,CAAO3D,KAAK,gBAEhB,gBAAC,aAAD,CAAY0D,UAAW,MAAOyc,YAAY,GACtC,gBAAC,QAAD,CAAOngB,KAAK,cAEhB,gBAAC,aAAD,CAAY0D,UAAW,SAAUyc,YAAY,GACzC,gBAAC,QAAD,CAAOngB,KAAK,iBAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnB,gBAAC,QAAD,CAAO1D,KAAK,aAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnB,gBAAC,QAAD,CAAO1D,KAAK,SAEhB,gBAAC,aAAD,CAAY0D,UAAW,WAAYC,WAAW,cAC1C,gBAAC,QAAD,CAAO3D,KAAK,eAEhB,gBAAC,aAAD,CAAY0D,UAAW,YAAaC,WAAW,cAC3C,gBAAC,QAAD,CAAO3D,KAAK,iBAGpB,gBAAC,YAAD,CAAWwD,SAAS,aAAaC,SAAU,GACvC,gBAAC,aAAD,CAAYC,UAAW,SAAUyc,YAAY,EACzCxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKsyB,cACjBnK,kBAAkB,EAClB3kB,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAKiyB,0BACpBruB,IAAMA,IAAU5D,KAAK4xB,aAAehuB,KAExC,gBAAC,QAAD,CAAO4K,KAAK,SAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWvvB,EAAW,uBACtBwvB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpBuc,KAAM,SACN1H,eAAgBtb,KAAKmyB,aAEzB,gBAAC,QAAD,CAAO3jB,KAAK,qBAEhB,gBAAC,aAAD,CAAY0D,UAAW,iBAAkBC,WAAW,cAChD,gBAAC,QAAD,CAAO3D,KAAK,2BAGpB,gBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,wBACnD,gBAAC,aAAD,KACI,kDACA,gBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK8hB,gBACjBqG,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB5L,cAAepQ,KAAKgyB,uBACpB/V,mBAAoBjc,KAAK8xB,4BACzBnuB,QAAQ,KACRC,IAAMA,GAAQ5D,KAAK0xB,UAAY9tB,GAG/B,gBAAC,SAAD,CAAQ4Y,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,YAAD,CAAWJ,KAAK,WACZ2H,cAAc,WACd1H,mBAAmB,YACvB,gBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,yBC1sBlE,MAAM4e,WAA0B9xB,YAC5Cc,SACI,OACI,6D,cCEZ,MAAMyN,GAAW,CAAEc,GAAI,mBACR,MAAM0iB,WAA8B/xB,YAC/ClC,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTkqB,kBAAkB,GAEtBj0B,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAKyG,QAAU,CAAE,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAElEyrB,WAAWxkB,GACP,IAAI/G,EAAMvF,KAAKE,MAAMoM,EAAE0F,QAAQ3L,UAC1Bd,EAAIstB,OAAOtb,MAAM/R,SAKlBe,YAAO,mDAA2B,UAAW,KAC7C+F,EAAEC,UAAUumB,UALZvsB,YAAO,uDAAgChB,EAAIstB,OAAOtb,MAAM9R,aAAc,QAAS,KAC/E6G,EAAEC,UAAUumB,SAQpBpxB,SACI,OACI,gBAAC,WAAD,KACI,uBAAKoM,GAAG,kBACJ,gBAAC,IAAD,CAAM2C,SAAU9R,KAAK8R,UACjB,gBAAC,YAAD,CAAWE,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,+FACnD,gBAAC,aAAD,CAAYjD,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWvvB,EAAW,kCACtBwvB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpB2tB,OAAQ,IACRnQ,YAAa,IACbjB,KAAM,SACNmP,WAAYnyB,KAAKmyB,aAErB,gBAAC,QAAD,CAAO3jB,KAAK,6BAGpB,gBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,0FACnD,gBAAC,aAAD,CAAYjD,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWvvB,EAAW,iCACtBwvB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpB2tB,OAAQ,IACRnQ,YAAa,IACbjB,KAAM,SACNmP,WAAYnyB,KAAKmyB,aAErB,gBAAC,QAAD,CAAO3jB,KAAK,+BAM5B,gBAAC,aAAD,CACI6lB,aAAa,kBACb7jB,SAAUA,GACVnC,QAASrO,KAAK+J,MAAMkqB,iBACpBK,eAAe,EACfzjB,SAAS,EACT0jB,UAAU,EACV5jB,qBAAqB,M,yBC9D1B,MAAM6jB,WAA4BvyB,YAC7ClC,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACToP,SAAU,GACV8W,OAAQ,GACRwE,aAAc,GACdC,iBAAkB,KAClBrb,aAAc,KACdsb,WAAY,KACZC,SAAU,GACVnb,WAAY,iCACZob,SAAU,0BACVC,eAAgB,GAChB1E,iBAAiB,EACjBD,YAAa,IAEjBnwB,KAAK8R,SAAW,CACZkQ,QAAS,EACT+S,MAAO,EACP3pB,YAAa,EACbwpB,SAAU,IAEd50B,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MAEvCA,KAAKyG,QAAU,CACX,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAEjD1G,KAAKg1B,kBAAoB,CACrBxmB,KAAM,yCACN5B,KAAM,QACNE,KAAM,yCACN5I,KAAM,UACNsO,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAS,KAELhN,KAAKyN,SAAS,CACV0iB,YAAa,+DACbC,iBAAiB,IAErBpwB,KAAK8R,SAAS8iB,SAAW50B,KAAK+J,MAAM6qB,SACpChzB,IAAQ4E,KAAKnC,EAAW,4BAA6BrE,KAAK8R,SACtD,CACIrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,SACTiM,YAAMlM,EAAIN,KAAKiG,MACfvM,KAAKyN,SAAS,CACV0iB,YAAa,+DACbC,iBAAiB,MAIrBxoB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvC9G,KAAKyN,SAAS,CACV0iB,YAAa,GACbC,iBAAiB,OAIxBrpB,MAAMiH,IAGHhO,KAAKyN,SAAS,CACV0iB,YAAa,GACbC,iBAAiB,IAErBtd,YAAMhN,EAAakI,QAInChO,KAAK4wB,cACL5wB,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAOrEyrB,WAAWxkB,GACP,IAAI/G,EAAMvF,KAAKE,MAAMoM,EAAE0F,QAAQ3L,UAC1Bd,EAAIC,SAKL7G,KAAKyN,SAAS,CAAEmnB,SAAUhuB,EAAI2F,OAC9BvM,KAAK8R,SAAS8iB,SAAW50B,KAAK+J,MAAM6qB,SAEpChtB,YAAO,uCAA2B,UAAW,KAC7C+F,EAAEC,UAAUumB,UARZvsB,YAAO,2CAAgChB,EAAIE,aAAc,QAAS,KAClE6G,EAAEC,UAAUumB,SAWdvD,cAAe,IAAD,iIACZG,GAAU,EACVD,EAAgB,GAFJ,SAQV,EAAKmE,YAAYtuB,KAAKC,OAAYG,MAAMiH,IAC1C+iB,GAAU,EACVD,GAAiB9iB,EAAQ,UAVb,OAYZ+iB,GACAje,YAAMge,GAEV,EAAKrjB,SAAS,CAAE2iB,iBAAiB,IAfjB,6CAmBd6E,YAAa,IAAD,2IACP,IAAIla,QAAQ,CAACC,EAASC,KACzB,EAAKxN,SAAS,CACVonB,SAAU,0BACV1E,YAAa,4BAEjBvuB,IAAQ6F,IAAIpD,EAAW,kBAAmB,CACtCoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACVwiB,OAAQrpB,EAAIN,KAAKiG,KACjBsoB,SAAU,aACV1E,YAAa,KAEjBnV,EAAQ,8BAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvC,EAAK2G,SAAS,CACVonB,SAAUjuB,EAAIN,KAAKQ,aACnBqpB,YAAa,KAEjBlV,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACL,EAAKP,SAAS,CAAEonB,SAAU,6BAA8B1E,YAAa,KACrElV,EAAOtV,EAAsBqI,EAAO,uBA7B9B,6CAkCZknB,kBAAmB,IAAD,2IACb,IAAIna,QAAQ,CAACC,EAASC,KACzB,EAAKxN,SAAS,CACVqnB,eAAgB,0CAChB3E,YAAa,4CAEjBvuB,IAAQ6F,IAAIpD,EAAW,mCAAqC,EAAK0F,MAAM4qB,WAAa,IAAM,EAAK5qB,MAAMsP,aAAc,CAC/G5S,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACVgnB,aAAc7tB,EAAIN,KAAKiG,KACvBuoB,eAAgB,aAChB3E,YAAa,KAEjBnV,EAAQ,8CAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvC,EAAK2G,SAAS,CACVonB,SAAUjuB,EAAIN,KAAKQ,aACnBqpB,YAAa,KAEjBlV,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACL,EAAKP,SAAS,CAAEonB,SAAU,6CAAoC1E,YAAa,KAC3ElV,EAAOtV,EAAsBqI,EAAO,uCA7BxB,6CAiExBjL,SACI,OAAQ,gBAAC,WAAD,KACJ,uBAAKkN,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACVjQ,KAAK+J,MAAMomB,cAGpB,uBAAKlgB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,UACjB,gBAAC,YAAD,CAAWE,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAW,UACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8hB,gBACjBte,eAAe,EACfP,YAAa,MACbsY,iBAAiB,EACjBjJ,UAAW,KACXgJ,eAAiB3N,IACb3N,KAAKyN,SAAS,CACV4L,aAAc1L,EAAEpG,WAI5B,gBAAC,QAAD,CAAOiH,KAAK,2BAEhB,gBAAC,aAAD,CAAY0D,UAAW,QACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK+J,MAAMkmB,OACvBzsB,eAAe,EACf2xB,YAAan1B,KAAK+J,MAAMqrB,UACxB7tB,MAAOvH,KAAK+J,MAAM4qB,WAClB1xB,YAAa,MACbsY,iBAAiB,EACjBjJ,UAAW,KACXgJ,eAAiB3N,IACb3N,KAAKyN,SAAS,CACVknB,WAAYhnB,EAAEpG,QAElBvH,KAAKk1B,gBAAgBl1B,KAAK+J,MAAM4qB,WAAY30B,KAAK+J,MAAMsP,cAAc1S,KAAKC,OAErEG,MAAMiH,IACH8E,YAAM9E,QAItB,gBAAC,QAAD,CAAOQ,KAAK,oBAEhB,gBAAC,aAAD,CAAY0D,UAAW,cACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK+J,MAAM0qB,aACvBjxB,eAAe,EACf2xB,YAAan1B,KAAK+J,MAAM+qB,eACxBvtB,MAAOvH,KAAK+J,MAAM2qB,iBAClBzxB,YAAa,MACbsY,iBAAiB,EACjBjJ,UAAW,KACXgJ,eAAiB3N,IACb3N,KAAKyN,SAAS,CACVinB,iBAAkB/mB,EAAEpG,WAKhC,gBAAC,QAAD,CAAOiH,KAAK,qCAGpB,gBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,wGACnD,gBAAC,aAAD,CAAYjD,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWvvB,EAAW,mCACtBwvB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpB2tB,OAAQ,IACRnQ,YAAa,IACbjB,KAAM,SACNmP,WAAYnyB,KAAKmyB,aAErB,gBAAC,QAAD,CAAO3jB,KAAK,8BAKxB,gBAAC,KAAD,KACI,gBAAC,QAAD,CAAMtN,SAAS,QACXwL,OAAO,WACPC,QAAS3M,KAAKg1B,0BCvT/B,MAAMR,WAA4BvyB,YAC7ClC,YAAYU,GACRyB,MAAMzB,GAENT,KAAK8R,SAAW,CACZrD,QAAS,EACTmmB,SAAU,GACVS,mBAAmB,GAEvBr1B,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAKyG,QAAU,CACX,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAEjD1G,KAAKg1B,kBAAoB,CACrBxmB,KAAM,yCACN5B,KAAM,QACNE,KAAM,yCACN5I,KAAM,UACN8I,QAAS,KACLpL,IAAQ4E,KAAK7B,EAAe,iCAAkC3E,KAAK8R,SAC/D,CACIrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,QACTiM,YAAMlM,EAAIN,KAAKiG,KAAM,SAGrB3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE1CC,MAAOiH,IAEJpG,YAAO,yGAAsFoG,EAAO,QAAS,SAI7HhO,KAAKs1B,gBAAkB,IAAIltB,IACvB,CACIuD,SAAU,MACVQ,UAAU,EACVgQ,SAAU,GACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,iBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAOrEyrB,WAAWxkB,GACP,IAAI/G,EAAMvF,KAAKE,MAAMoM,EAAE0F,QAAQ3L,UAC1Bd,EAAIC,SAKL7G,KAAK8R,SAAS8iB,SAAWhuB,EAAI2F,KAC7B3E,YAAO,uCAA2B,UAAW,KAC7C+F,EAAEC,UAAUumB,UANZvsB,YAAO,2CAAgChB,EAAIE,aAAc,QAAS,KAClE6G,EAAEC,UAAUumB,SAQpBpxB,SACI,OACI,gBAAC,WAAD,KACI,uBAAKkN,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,0BAAK,oEAGb,uBAAKA,UAAU,MAAMC,MAAO,CAAEG,UAAW,UAEzC,uBAAKJ,UAAU,OACX,uBAAKA,UAAU,aACX,qBAAG9O,KAAK,yCAAyCqW,OAAO,UAAxD,+FAA4H,2BADhI,kLAKJ,uBAAKvH,UAAU,MAAMC,MAAO,CAAEG,UAAW,UAEzC,uBAAKJ,UAAU,OACX,uBAAKA,UAAU,aAEX,gBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,UACjB,gBAAC,YAAD,CAAWE,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAW,oBACnBC,WAAW,cACX,gBAAC,QAAD,CAAO3D,KAAK,0CAEhB,gBAAC,aAAD,CAAY0D,UAAW,UACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKs1B,gBACjBnN,kBAAkB,EAClB3kB,eAAe,EACfP,YAAa,WACbsY,iBAAiB,EACjBjJ,UAAW,OAEf,gBAAC,QAAD,CAAO9D,KAAK,uBAIpB,gBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,yGACnD,gBAAC,aAAD,CAAYjD,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWjvB,EAAe,6CAC1BkvB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpB2tB,OAAQ,IACRnQ,YAAa,IACbjB,KAAM,SACNmP,WAAYnyB,KAAKmyB,aAErB,gBAAC,QAAD,CAAO3jB,KAAK,8BAIxB,gBAAC,KAAD,KACI,gBAAC,QAAD,CAAMtN,SAAS,QACXwL,OAAO,WACPC,QAAS3M,KAAKg1B,0BC/HnC,MAAMO,WAA+BtzB,YAChDlC,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTO,OAAO,EACPkrB,uBAAuB,GAE3Bx1B,KAAKy1B,mBAAqB,KAC1Bz1B,KAAK0xB,UAAY,KACjB1xB,KAAKyoB,SAAW,KAChBzoB,KAAK01B,UAAY,KACjB11B,KAAK21B,yBAA2B,KAChC31B,KAAK2xB,cAAgB,KACrB3xB,KAAK4xB,aAAe,KACpB5xB,KAAKyM,MAAQ,KACbzM,KAAKmZ,SAAW,GAChBnZ,KAAKkZ,SAAW,GAChBlZ,KAAK8R,SAAW,GAEhB9R,KAAK2zB,eAAiB,GACtB3zB,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAK6xB,2BAA6B7xB,KAAK6xB,2BAA2BjoB,KAAK5J,MACvEA,KAAK8xB,4BAA8B9xB,KAAK8xB,4BAA4BloB,KAAK5J,MACzEA,KAAK41B,4BAA8B51B,KAAK41B,4BAA4BhsB,KAAK5J,MACzEA,KAAK+xB,sBAAwB/xB,KAAK+xB,sBAAsBnoB,KAAK5J,MAC7DA,KAAK61B,uBAAyB71B,KAAK61B,uBAAuBjsB,KAAK5J,MAC/DA,KAAKgyB,uBAAyBhyB,KAAKgyB,uBAAuBpoB,KAAK5J,MAC/DA,KAAKiyB,0BAA4BjyB,KAAKiyB,0BAA0BroB,KAAK5J,MACrEA,KAAKkyB,2BAA6BlyB,KAAKkyB,2BAA2BtoB,KAAK5J,MACvEA,KAAK81B,gCAAkC91B,KAAK81B,gCAAgClsB,KAAK5J,MACjFA,KAAKwwB,aAAexwB,KAAKwwB,aAAa5mB,KAAK5J,MAC3CA,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAK0wB,WAAa,KACd1wB,KAAKyN,SAAS,CAAEnD,OAAO,KAE3BtK,KAAKyG,QAAU,CAAE,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAC9D1G,KAAKmxB,UAAY,KACjBnxB,KAAKoyB,MAAO,EACZpyB,KAAK4Z,gBAAkB,GACvB5Z,KAAK+1B,gBAAkB,GACvB/1B,KAAK8Z,oBAAsB,GAC3B9Z,KAAKg2B,kBAAoB,GACzBh2B,KAAKi2B,oBAAsB,GAC3Bj2B,KAAKk2B,uBAAyB,CAC1BC,aAAc,GACdzjB,iBAAiB,EACjB0jB,cAAe51B,EAAQoB,QAAQuJ,QAC/BA,QAAS,KACTkrB,gBAAgB,GAGpBr2B,KAAK6L,gBAAkB,IAAIzD,IACvB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAShE,EAAU,uBAI/BhE,KAAKqyB,oBAAsB,IAAIjqB,IAC3B,CACIuD,SAAU,MACVQ,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,4BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKsyB,cAAgB,IAAIlqB,IACrB,CACIuD,SAAU,MACVoD,OAAQ,CAAC,CAAC,MAAO,IAAK,eAAgB,KAAM,CAAC,MAAO,IAAK,mBACzD1G,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,aACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKs1B,gBAAkB,IAAIltB,IACvB,CACIG,cAAc,EACdoD,SAAU,YACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,iBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKs2B,yBAA2B,KAC5Bt2B,KAAKyN,SAAS,CACV+nB,uBAAuB,KAK7B3E,UAAW,IAAD,2IACL,IAAI9V,QAAQC,IACf,EAAKvN,SAAS,CACVnD,OAAO,IAEX0Q,GAAQ,MALA,6CASVuX,OAAQ,IAAD,kHACT,EAAKzgB,SAAW,CACZxG,GAAI,EACJknB,OAAQ,KACRC,SAAS,EACTC,WAAY,EACZ5b,aAAc,KACdC,MAAO,KACP4b,MAAO,KACP9iB,IAAK,KACLC,OAAQ,KACRqK,UAAU,EACVC,WAAW,EACXH,IAAK,KACLC,IAAK,KACL0Y,MAAO,KACP2D,SAAU,GAhBL,6CAoBP1D,YAAa,IAAD,yHACd,EAAKjZ,gBAAkB,GACvB,EAAKmc,gBAAkB,GACvB,EAAKjc,oBAAsB,GAC3B,EAAKkc,kBAAoB,GAJX,SAKR,EAAKtE,UAAU5uB,SAASyuB,iBALhB,uBAMR,EAAKuB,sBANG,wBAOR,EAAK4C,UAAU5yB,SAASyuB,iBAPhB,yBAQR,EAAKiF,sBARG,8CAWZzD,aAAa5jB,GAAK,IAAD,2IACZ,IAAI4L,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,0BAA4B8K,EAAI,CACnD1I,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACTD,EAAIN,KAAKiG,KAAO3F,EAAIN,KAAKiG,KAAK,GAC9B,EAAKuF,SAAW,CACZxG,GAAI1E,EAAIN,KAAKiG,KAAKjB,GAClBknB,OAAQ5rB,EAAIN,KAAKiG,KAAKimB,OACtBC,QAAS7rB,EAAIN,KAAKiG,KAAKkmB,QACvBC,WAAY9rB,EAAIN,KAAKiG,KAAKmmB,WAC1B5b,aAAclQ,EAAIN,KAAKiG,KAAKuK,aAC5BC,MAAOnQ,EAAIN,KAAKiG,KAAKwK,MACrB4b,MAAO/rB,EAAIN,KAAKiG,KAAKomB,MACrB9iB,IAAKjJ,EAAIN,KAAKiG,KAAKsD,IACnBC,OAAQlJ,EAAIN,KAAKiG,KAAKuD,OACtBqK,SAAUvT,EAAIN,KAAKiG,KAAK4N,SACxBC,UAAWxT,EAAIN,KAAKiG,KAAK6N,UACzBH,IAAKrT,EAAIN,KAAKiG,KAAK0N,IACnBC,IAAKtT,EAAIN,KAAKiG,KAAK2N,IACnB0Y,MAAOhsB,EAAIN,KAAKiG,KAAKymB,KACrBA,KAAMpsB,EAAIN,KAAKiG,KAAKymB,KACpBC,eAAgBrsB,EAAIN,KAAKiG,KAAK0mB,eAC9BsD,SAAU3vB,EAAIN,KAAKiG,KAAKgqB,UAE5Bvb,EAAQ,6CAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAM,KACLkU,EAAO,+EAlCI,6CAuCjBiY,6BAA6BC,GAAc,IAAD,2IACrC,IAAIpY,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,0CAA4C8uB,EAAa,CAC5E1sB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACJ,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAIsqB,EAAY,GAChBvqB,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzBwhB,EAAU3uB,KAAKoe,EAAKwS,YAExB,EAAK1B,UAAU5uB,SAASuuB,WAAWF,GACnCnW,EAAQ,wCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAM,KACLkU,EAAO,uEAnB6B,6CAwB1Cwb,mCAAmCtD,GAAc,IAAD,2IAC3C,IAAIpY,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,gDAAkD8uB,EAAa,CAClF1sB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACF,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAIsqB,EAAY,GAChBvqB,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzBwhB,EAAU3uB,KAAKoe,EAAK8V,MAAMprB,MAE9B,EAAKoqB,UAAU5yB,SAASuuB,WAAWF,GACnC,EAAKuE,UAAU5yB,SAAS4M,UACxBsL,EAAQ,iCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,gBAErBC,MAAM,KACLkU,EAAO,kEAtB+B,6CA2BhDuV,aAAa7iB,GAAI,IAAD,2HAEJ,QADRlB,EAAQ,EAAKA,aACa5L,IAAV4L,EAFJ,uBAGdqG,YAAM,6BAAsB,cAHd,+BAOc,kBAAxBtS,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,KAP1C,iBAQVuE,YAAM,uDARI,yCAWJ,EAAK+f,YAXD,eAYV,EAAK/gB,SAAW,GAZN,UAaJ,EAAKihB,aAAatmB,EAAMnB,IAAIvE,MAAMC,IACpCY,YAAOZ,EAAK,QAAS,OAdf,yBAiBJ,EAAKsrB,cAAc9pB,OAAO6qB,KAA1B,sBAA+B,sBAAA9sB,EAAA,sEAC3B,EAAKkwB,mCAAmChqB,EAAMnB,IAAI3E,KAAK,QAE1DI,MAAMiH,IACLpG,YAAOoG,EAAO,QAAS,OAJM,4CAjB3B,yBAwBJ,EAAKklB,6BAA6BzmB,EAAMnB,IAAI3E,KAAK,QACpDI,MAAMiH,IACLpG,YAAOoG,EAAO,QAAS,OA1BjB,yBA6BJ,EAAK6iB,UA7BD,8CAmChByC,IAAI7mB,GAAQ,IAAD,kHACb7K,IAAQ4E,KAAKnC,EAAW,0BAA4BoI,EAAMnB,GACtD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QAETjF,IAAQ4E,KAAKnC,EAAW,0BAA4BoI,EAAMnB,GACtD,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD,EAAK6gB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,wBAIT7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAMnDc,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAhCtC,6CAqCXysB,SAAS9mB,GAAQ,IAAD,kHAClB7K,IAAQ4E,KAAKnC,EAAW,sBAAwBoI,EAAMnB,GAAI,KACtD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4hB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,uBAET7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAhBjC,6CAqBhB0sB,SAAS/mB,GAAQ,IAAD,kHAClB7K,IAAQ4E,KAAKnC,EAAW,sBAAwBoI,EAAMnB,GAClD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4hB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,uBAET7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAjBjC,6CAsBtBqrB,WAAWxkB,GACHA,EAAEpG,MAAMiF,OAAS,IACjBxM,KAAK8R,SAAS8gB,MAAQjlB,EAAEpG,MAAM,GAAGyb,KACjCpb,YAAO,sBAAoB,UAAW,MAI9C2M,mBAAmB5G,GAAI,IAAD,OAClBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,iBACN1I,KAAM,UACN8I,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,6DACL,EAAKsF,gBAAgBkD,OAAO,CAAC,KAAM,KAAMvO,EAAQoB,QAAQuJ,UADpD,SAEC,EAAKU,gBAAgBrD,OAFtB,OAGL,EAAKiF,SAAS,CACV+nB,uBAAuB,IAJtB,2CAAF,kDAAC,KAShB,CACIt0B,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,OAAQF,KAAM,MACrCI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,2DACuB,eAAxB/F,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,KADnD,gBAEDuE,YAAM,uDAFL,uCAMK,EAAKyf,OANV,uBAOK,EAAKM,YAPV,wBAQK,EAAKhC,UARV,4CAAF,kDAAC,KAahB,CACI3vB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,aAAWF,KAAM,OACxCI,QAAShN,KAAKwwB,eAGtB,CACItvB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,QACnCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKszB,IAAI7mB,UAXrBqG,YAAM,6BAAsB,iBAmB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKwzB,SAAS/mB,UAX1BqG,YAAM,6BAAsB,iBAmB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1CI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKuzB,SAAS9mB,UAX1BqG,YAAM,6BAAsB,iBAmB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAAS4M,aAInC,CACIxO,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrCE,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CozB,8BACI51B,KAAK+1B,gBAAkB/1B,KAAK01B,UAAU5yB,SAAS4R,sBAGnDohB,gCAAgCnoB,GAC5B3N,KAAKy1B,mBAAqB9nB,EAAEC,UAIhCmkB,sBAAsBpkB,GAClB3N,KAAKyoB,SAAW9a,EAAEC,UAGtBokB,uBAAuBrkB,GACnB3N,KAAK0xB,UAAY/jB,EAAEC,UAIvBioB,uBAAuBloB,GACnB3N,KAAK01B,UAAY/nB,EAAEC,UAGvBqkB,0BAA0BtkB,GACtB3N,KAAK4xB,aAAejkB,EAAEC,UAG1BskB,2BAA2BvkB,GACvB3N,KAAK2xB,cAAgBhkB,EAAEC,UAG3BikB,2BAA2BjT,GACvB5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDiT,8BACI9xB,KAAK4Z,gBAAkB5Z,KAAK0xB,UAAU5uB,SAAS4R,sBAG7C+e,qBAAsB,IAAD,kHACQ,OAA3B,EAAKhL,SAAS3lB,WACd,EAAK2lB,SAAS3lB,SAASyuB,iBACvB,EAAK9I,SAAS3lB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAOrBilB,sBAAuB,IAAD,kHACQ,OAA5B,EAAKpB,UAAU5uB,WACf,EAAK4uB,UAAU5uB,SAASyuB,iBACxB,EAAKG,UAAU5uB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAStB2oB,sBAAuB,IAAD,kHACQ,OAA5B,EAAKd,UAAU5yB,WACf,EAAK4yB,UAAU5yB,SAASyuB,iBACxB,EAAKmE,UAAU5yB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAO5B9K,SAAU,IAAD,OAEL,OACI,gBAAC,WAAD,KAEI,uBAAKkN,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKqyB,oBACjBlK,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,YACnBC,oBAAoB,EACpB8G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBrY,QAAQ,KACRuY,OAAQ,CACJhH,SAAS,GAEbkH,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAoBvU,KAAKuU,mBACzBnE,cAAepQ,KAAK+xB,sBACpB4E,oBAAsBhpB,IAClB3N,KAAK42B,WAAajpB,EAAEkpB,SACpB,IAAIxO,EAAU1a,EAAEgH,KAAOhH,EAAEgH,IAAIrO,KACzB+hB,IACAroB,KAAKyM,MAAQ4b,IAGrByO,wBAA0BnpB,IACtB3N,KAAKi2B,oBAAsB,GACvBtoB,EAAEnB,OAAS,GACXmB,EAAEtG,QAASoF,IACPzM,KAAKi2B,oBAAoBzzB,KAAK,CAC1B4I,YAAaqB,OAK7B7I,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAG9B,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,gBAAD,CAAezT,SAAS,IACxB,gBAAC,UAAD,CAASJ,KAAM,UACf,gBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,gBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,gBAAC,eAAD,CAAc5T,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,KACzB,gBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,YACvD,gBAAC,SAAD,CAAQnD,UAAW,WAAYiD,QAAQ,aACvC,gBAAC,SAAD,CAAQjD,UAAW,eAAgBiD,QAAQ,gBAC3C,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,UACpC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,aAClC,gBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,gBACrC,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,eACpC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,MAAM9G,SAAS,IACjD,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,MAAM9G,SAAS,IACjD,gBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,YAAYE,SAAS,YAC5D,gBAAC,SAAD,CAAQnD,UAAW,YAAaiD,QAAQ,aAAaE,SAAS,eAK1E,gBAAC,QAAD,CAAOzE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACrFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtFrG,MAAM,yCAA0BxH,MAAO,OAAQoN,OAAQ,OACvDmc,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IACe3N,KAAK2xB,cAAc7uB,SAASgc,WAC/BC,UAIhBjM,YAAM9S,KAAK8R,SAASykB,UACpBv2B,KAAKg2B,kBAAoB,GACzBh2B,KAAK8Z,oBAAsB,GAC3B9Z,KAAK4Z,gBAAgBvS,QAAQ,CAACuZ,EAAMjR,KAChC3P,KAAK8Z,oBAAoBtX,KACrB,CACIkxB,MAAO,CAAEpoB,GAAIsV,EAAKtV,IAClBD,UAAW,CAAEC,GAAI,YAKDzK,IAAxBb,KAAK8R,SAAS8gB,QACd5yB,KAAK8R,SAASkhB,KAAOhzB,KAAK8R,SAAS8gB,OAGvC5yB,KAAKg2B,kBAAoB,GACzBh2B,KAAK+1B,gBAAgB1uB,QAAQ,CAACuZ,EAAMjR,KAChC3P,KAAKg2B,kBAAkBxzB,KAAK,CACxBk0B,MAAO,CAAEprB,GAAIsV,EAAKtV,QAI1BtL,KAAK2zB,eAAiB,CAClBtoB,UAAWrL,KAAK8R,SAChBgI,oBAAqB9Z,KAAK8Z,oBAC1Bkc,kBAAmBh2B,KAAKg2B,mBAG5Bp0B,IAAQ4E,KAAKnC,EAAW,mCACpBrE,KAAK2zB,eACL,CACIltB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QAET7G,KAAKyoB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC3G,KAAKyN,SAAS,CACVnD,OAAO,OAKftK,KAAK2zB,eAAiB,CAClBtoB,UAAWrL,KAAK8R,SAChBgI,oBAAqB9Z,KAAK8Z,oBAC1Bkc,kBAAmBh2B,KAAKg2B,mBAE5BpuB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,YAQnE,CACI5F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,gBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAKkyB,2BAA4BtuB,IAAMA,GAAQ5D,KAAK2xB,cAAgB/tB,GAC9G,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,iCACnD,gBAAC,aAAD,CAAYjD,UAAW,QAASyc,YAAY,GACxC,gBAAC,QAAD,CAAOngB,KAAK,WAEhB,gBAAC,aAAD,CAAY0D,UAAW,eAAgByc,YAAY,GAC/C,gBAAC,QAAD,CAAOngB,KAAK,iBAEhB,gBAAC,aAAD,CAAY0D,UAAW,QAASyc,YAAY,EAAMxc,WAAW,aACzD,gBAAC,QAAD,CAAO3D,KAAK,gBAEhB,gBAAC,aAAD,CAAY0D,UAAW,MAAOyc,YAAY,GACtC,gBAAC,QAAD,CAAOngB,KAAK,cAEhB,gBAAC,aAAD,CAAY0D,UAAW,SAAUyc,YAAY,GACzC,gBAAC,QAAD,CAAOngB,KAAK,iBAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnB,gBAAC,QAAD,CAAO1D,KAAK,aAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnB,gBAAC,QAAD,CAAO1D,KAAK,SAEhB,gBAAC,aAAD,CAAY0D,UAAW,WAAYC,WAAW,cAC1C,gBAAC,QAAD,CAAO3D,KAAK,eAEhB,gBAAC,aAAD,CAAY0D,UAAW,YAAaC,WAAW,cAC3C,gBAAC,QAAD,CAAO3D,KAAK,iBAGpB,gBAAC,YAAD,CAAWwD,SAAS,aAAaC,SAAU,GACvC,gBAAC,aAAD,CAAYC,UAAW,SAAUyc,YAAY,EACzCxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKsyB,cACjBnK,kBAAkB,EAClB3kB,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAKiyB,0BACpBruB,IAAMA,IAAU5D,KAAK4xB,aAAehuB,KAExC,gBAAC,QAAD,CAAO4K,KAAK,SAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWvvB,EAAW,uBACtBwvB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpBuc,KAAM,SACN1H,eAAgBtb,KAAKmyB,aAEzB,gBAAC,QAAD,CAAO3jB,KAAK,qBAEhB,gBAAC,aAAD,CAAY0D,UAAW,iBAAkBC,WAAW,cAChD,gBAAC,QAAD,CAAO3D,KAAK,2BAIpB,gBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,YACnD,gBAAC,aAAD,KACI,kDACA,gBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK8hB,gBACjBqG,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB5L,cAAepQ,KAAKgyB,uBACpB/V,mBAAoBjc,KAAK8xB,4BACzBnuB,QAAQ,KACRC,IAAMA,GAAQ5D,KAAK0xB,UAAY9tB,GAG/B,gBAAC,SAAD,CAAQ4Y,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,YAAD,CAAWJ,KAAK,WACZ2H,cAAc,WACd1H,mBAAmB,YACvB,gBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,iBAG1C,gBAAC,aAAD,KACI,6CACA,gBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKs1B,gBACjBnN,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBC,mBAAoBjc,KAAK41B,4BACzBxlB,cAAepQ,KAAK61B,uBACpBlyB,QAAQ,KACRC,IAAMA,GAAQ5D,KAAK01B,UAAY9xB,GAG/B,gBAAC,SAAD,CAAQ4Y,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,YAAD,CAAWJ,KAAK,WACZ2H,cAAc,WACd1H,mBAAmB,YACvB,gBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,YACpC,gBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,iBACtC,gBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,QAAQE,SAAS,mBAYxF,gBAAC,QAAD,CAAOzE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAMyrB,sBACpB1qB,MAAO,+CACPsB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,4BACNtK,KAAM,UACN4I,KAAM,4BACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAM2I,gBACrB1F,QAAQ,WAAD,4BAAE,WAAOW,GAAP,SAAApH,EAAA,sDACL,EAAK2vB,uBAAuBC,aAAe,EAAKF,oBAChD,EAAKxoB,SAAS,CACViF,iBAAiB,IAErB9Q,IAAQ4E,KAAKnC,EAAW,iDAAkD,EAAK6xB,uBAAwB,CACnGzvB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAK4G,SAAS,CAChBiF,iBAAiB,IAHvB,uBAKQ,EAAK4jB,2BALb,OAME1uB,YAAO,kDAAiC,UAAW,KANrD,uBAQE,EAAK6F,SAAS,CACViF,iBAAiB,IAErB9K,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KAXrF,4CALV,uDAmBKC,MAAMC,IAIH,GAHA,EAAKyG,SAAS,CACViF,iBAAiB,IAEjB1L,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,UAxClB,2CAAF,mDAAC,KAiDhB,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAK+vB,2BADJ,2CAAF,kDAAC,OAQ1B,gBAAC,WAAD,CAAUllB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAMgC,SAAU,EAAGH,SAAU9R,KAAKk2B,uBAAwB9lB,cAAepQ,KAAK81B,gCAAiClyB,IAAMA,GAAQ5D,KAAKy1B,mBAAqB7xB,GACnJ,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAU,UAAUC,WAAW,cAAcC,cAAe,CACpEC,WAAYrS,KAAK6L,gBACjByG,UAAW,KACXrP,YAAa,QAEb,gBAAC,QAAD,CAAOuL,KAAK,wBACZ,gBAAC,eAAD,CAAc+D,QAAQ,sCAG3B,iCCh9BxB,MAAMwkB,WAA+B90B,YAChDlC,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTsX,iBAAkB,GAEtBrhB,KAAKyhB,YAAczhB,KAAKyhB,YAAY7X,KAAK5J,MACzCA,KAAK0hB,eAAiB1hB,KAAK0hB,eAAe9X,KAAK5J,MAC/CA,KAAK2hB,qBAAuB3hB,KAAK2hB,qBAAqB/X,KAAK5J,MAE3DA,KAAKohB,KAAO,CAAC,YAAa,qBAAY,iBAAY,6BAAoB,0BAEtEphB,KAAKg3B,iBAAmBnvB,EACpB,KACE,kBACAlD,EAAe,wBACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAKi3B,mBAAqBpvB,EACtB,KACE,oBACAlD,EAAe,0BACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAKk3B,gBAAkBrvB,EACnB,KACE,iBACAlD,EAAe,uBACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAKm3B,sBAAwBtvB,EACzB,KACE,uBACAlD,EAAe,6BACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAKo3B,qBAAuBvvB,EACxB,KACE,sBACAlD,EAAe,4BACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAIzBgd,qBAAqBoB,GACC,kBAAdA,EAAKC,MACLhjB,KAAKyN,SAAS,CACV4T,iBAAkB4B,SAASF,EAAKxb,SAK5Cka,cACI,OACI,gBAAC,WAAD,KACI,gBAAC,KAAD,CAAMiD,cAAe1kB,KAAK+J,MAAMsX,iBAAkBhP,WAAYrS,KAAKohB,KAAMuD,gBAAiB3kB,KAAK2hB,uBAC9F3hB,KAAK0hB,eAAe1hB,KAAK+J,MAAMsX,mBAK5CK,eAAewB,GACX,OAAiB,IAAbA,EAEI,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbkjB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,UAG3BpjB,cAAc,EACdhC,WAAYrS,KAAKg3B,iBACjB7O,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,MAEJ,gBAAC,SAAD,CAAQiP,SAAS,EAAMwT,SAAU,YAAaC,yBAAyB,IACvE,gBAAC,UAAD,CAAS7T,KAAM,MAAO4iB,aAAa,EAAMC,eAAe,EAAM1iB,eAAe,EAAMD,UAAU,IAC7F,gBAAC,eAAD,CAAcE,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,eAK5B,IAAb+N,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKi3B,mBACjB9O,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJqxB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,WAI3B,gBAAC,SAAD,CAAQviB,SAAS,EAAMwT,SAAU,wBAAeC,yBAAyB,IACzE,gBAAC,UAAD,CAAS7T,KAAM,MAAO4iB,aAAa,EAAMC,eAAe,EAAM1iB,eAAe,EAAMD,UAAU,IAC7F,gBAAC,eAAD,CAAcE,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,eAK5B,IAAb+N,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKk3B,gBACjB/O,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJqxB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,WAI3B,gBAAC,SAAD,CAAQviB,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,UAAD,CAAS7T,KAAM,MAAO4iB,aAAa,EAAMC,eAAe,EAAM1iB,eAAe,EAAMD,UAAU,IAC7F,gBAAC,eAAD,CAAcE,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,aAClC,gBAAC,SAAD,CAAQjD,UAAW,OAAQiD,QAAQ,gBAK7B,IAAb+N,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKm3B,sBACjBhP,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJqxB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,WAI3B,gBAAC,SAAD,CAAQviB,SAAS,EAAMwT,SAAU,kBAAmBC,yBAAyB,IAC7E,gBAAC,UAAD,CAAS7T,KAAM,MAAO4iB,aAAa,EAAMC,eAAe,EAAM1iB,eAAe,EAAMD,UAAU,IAC7F,gBAAC,eAAD,CAAcE,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,aAClC,gBAAC,SAAD,CAAQjD,UAAW,OAAQiD,QAAQ,gBAK7B,IAAb+N,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKo3B,qBACjBjP,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJqxB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,WAI3B,gBAAC,SAAD,CAAQviB,SAAS,EAAMwT,SAAU,gBAAiBC,yBAAyB,IAC3E,gBAAC,UAAD,CAAS7T,KAAM,MAAO4iB,aAAa,EAAMC,eAAe,EAAM1iB,eAAe,EAAMD,UAAU,IAC7F,gBAAC,eAAD,CAAcE,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,oBApC7C,EA2CTpS,SACI,OACI,gBAAC,WAAD,KACI,uBAAKkN,UAAU,OACX,uBAAKA,UAAU,YAAYC,MAAO,CAAE6W,QAAS,wBACxC/mB,KAAKyhB,kBCxRf,MAAMmW,WAAsB31B,YACvClC,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTsX,iBAAkB,GAEtBrhB,KAAK63B,mBAAqB,KAC1B73B,KAAK83B,WAAa,KAClB93B,KAAK+3B,UAAY,KACjB/3B,KAAKg4B,UAAY,KACjBh4B,KAAKi4B,SAAW,KAChBj4B,KAAKk4B,cAAgB,KACrBl4B,KAAKm4B,SAAW,KAChBn4B,KAAKo4B,UAAY,KACjBp4B,KAAKq4B,UAAY,KACjBr4B,KAAKs4B,YAAc,KACnBt4B,KAAKu4B,SAAW,GAChBv4B,KAAKw4B,YAAc,CAAEC,QAAS,GAC9Bz4B,KAAK04B,wBAA0B14B,KAAK04B,wBAAwB9uB,KAAK5J,MACjEA,KAAK24B,sBAAwB34B,KAAK24B,sBAAsB/uB,KAAK5J,MAC7DA,KAAK44B,2BAA6B54B,KAAK44B,2BAA2BhvB,KAAK5J,MACvEA,KAAK64B,sBAAwB74B,KAAK64B,sBAAsBjvB,KAAK5J,MAC7DA,KAAK84B,uBAAyB94B,KAAK84B,uBAAuBlvB,KAAK5J,MAC/DA,KAAK+4B,uBAAyB/4B,KAAK+4B,uBAAuBnvB,KAAK5J,MAC/DA,KAAKg5B,uBAAyBh5B,KAAKg5B,uBAAuBpvB,KAAK5J,MAC/DA,KAAKi5B,yBAA2Bj5B,KAAKi5B,yBAAyBrvB,KAAK5J,MACnEA,KAAKk5B,gCAAkCl5B,KAAKk5B,gCAAgCtvB,KAAK5J,MACjFA,KAAKm5B,uBAAyBn5B,KAAKm5B,uBAAuBvvB,KAAK5J,MAC/DA,KAAKyhB,YAAczhB,KAAKyhB,YAAY7X,KAAK5J,MACzCA,KAAK0hB,eAAiB1hB,KAAK0hB,eAAe9X,KAAK5J,MAC/CA,KAAK2hB,qBAAuB3hB,KAAK2hB,qBAAqB/X,KAAK5J,MAC3DA,KAAKohB,KAAO,CAAC,cAAe,YAAa,iCAAmB,YAAa,kBAAc,gBAAc,qBAAiB,mBAAe,aAAc,cACnJphB,KAAKo5B,iBAAmBvxB,EACpB,KACE,kBACAlD,EAAe,mCACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAKq5B,eAAiBxxB,EAClB,KACE,gBACAlD,EAAe,iCACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAKs5B,oBAAsBzxB,EACvB,KACE,qBACAlD,EAAe,sCACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAKu5B,eAAiB1xB,EAClB,KACE,gBACAlD,EAAe,iCACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAKw5B,gBAAkB3xB,EACnB,KACE,iBACAlD,EAAe,kCACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAKy5B,gBAAkB5xB,EACnB,KACE,sBACAlD,EAAe,kCACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAK05B,kBAAoB7xB,EACrB,KACE,wBACAlD,EAAe,oCACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAK25B,yBAA2B9xB,EAC5B,KACE,iBACAlD,EAAe,2CACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAKm3B,sBAAwBtvB,EACzB,KACE,uBACAlD,EAAe,6BACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAK45B,gBAAkB/xB,EACnB,KACE,sBACAlD,EAAe,uCACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAErB3E,KAAK65B,gBAAkBhyB,EACnB,KACE,sBACAlD,EAAe,uCACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBAIzB+zB,wBAAwB/qB,GACpB3N,KAAK83B,WAAanqB,EAAEC,UAGxBmrB,uBAAuBprB,GACnB3N,KAAKo4B,UAAYzqB,EAAEC,UAGvBirB,sBAAsBlrB,GAClB3N,KAAKm4B,SAAWxqB,EAAEC,UAGtBkrB,uBAAuBnrB,GACnB3N,KAAK+3B,UAAYpqB,EAAEC,UAGvBurB,uBAAuBxrB,GACnB3N,KAAKg4B,UAAYrqB,EAAEC,UAIvBqrB,yBAAyBtrB,GACrB3N,KAAKs4B,YAAc3qB,EAAEC,UAGzBorB,uBAAuBrrB,GACnB3N,KAAKq4B,UAAY1qB,EAAEC,UAGvB+qB,sBAAsBhrB,GAClB3N,KAAKi4B,SAAWtqB,EAAEC,UAGtBgrB,2BAA2BjrB,GACvB3N,KAAKk4B,cAAgBvqB,EAAEC,UAG3BsrB,gCAAgCvrB,GAC5B3N,KAAK63B,mBAAqBlqB,EAAEC,UAGhC+T,qBAAqBoB,GACC,kBAAdA,EAAKC,MACLhjB,KAAKyN,SAAS,CACV4T,iBAAkB4B,SAASF,EAAKxb,SAK5Cka,cACI,OACI,gBAAC,WAAD,KACI,uBAAKxR,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,KAAD,CAAMyU,cAAe1kB,KAAK+J,MAAMsX,iBAAkBhP,WAAYrS,KAAKohB,KAAMuD,gBAAiB3kB,KAAK2hB,uBAC9F3hB,KAAK0hB,eAAe1hB,KAAK+J,MAAMsX,sBAQxDK,eAAewB,GAAW,IAAD,OACrB,OAAiB,IAAbA,EAEI,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbkjB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,UAG3BpjB,cAAc,EACdhC,WAAYrS,KAAKo5B,iBACjBjR,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJmK,cAAepQ,KAAK04B,wBACpB90B,IAAMA,GAAQ5D,KAAK83B,WAAal0B,GAEhC,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,YAAaC,yBAAyB,IACvE,gBAAC,UAAD,CACI+O,aAAa,EACbC,eAAe,EACf1iB,eAAe,EACfD,UAAU,EACVF,KAAM,QACN0X,MAAO,CACHsN,qBAAsB,0EACtBC,mBAAoB,cAExBzvB,MAAO,CACHQ,MAAO,mBACP8F,WAAW,EACXtN,MAAO,MACPoN,OAAQ,MACRG,SAAS,EACTC,aAAa,EACbK,iBAAiB,EACjBvN,IAAMA,IAAU5D,KAAK+Q,UAAYnN,GACjCoN,2BAA2B,EAC3BR,SAAU,CACNY,GAAI,SACJC,GAAI,SACJC,GAAIrQ,QAERmL,aAAc,CACV,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACvDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACC,EAAKuxB,WAAWh1B,SAASk3B,eAAejzB,MAAMC,IAChDY,YAAO,8DAA4CZ,EAAK,QAAS,OAFhE,2CAAF,kDAAC,KAQhB,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACtDI,QAAS,KACLhN,KAAK83B,WAAWh1B,SAASm3B,sBAM7CC,KAAM,CACFjoB,SAAU,EACV7O,MAAO,CACH,CACI+2B,QAAS,EACTC,SAAU,QACVh3B,MAAO,CACH,CAAE8O,UAAW,OACb,CACIA,UAAW,UACXC,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IACZ,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,UACL+B,QAAS3D,EAAW,8BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE4L,UAAW,UACXrP,YAAa,mBAUzC,gBAAC,eAAD,CAAciS,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,YAC9B,gBAAC,eAAD,CAAc5C,QAAQ,oCAE1B,gBAAC,SAAD,CAAQL,UAAW,UAAWiD,QAAQ,QAAQ9G,SAAS,GACnD,gBAAC,eAAD,CAAckE,QAAQ,iCAE1B,gBAAC,SAAD,CAAQL,UAAW,WAAYiD,QAAQ,YAKjC,IAAb+N,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbkjB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,UAG3BpjB,cAAc,EACdhC,WAAYrS,KAAKq5B,eACjBlR,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJmK,cAAepQ,KAAK24B,sBACpB/0B,IAAMA,GAAQ5D,KAAKi4B,SAAWr0B,GAE9B,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,UAAWC,yBAAyB,IACrE,gBAAC,UAAD,CACI+O,aAAa,EACbC,eAAe,EACf1iB,eAAe,EACfD,UAAU,EACVF,KAAM,QACN0X,MAAO,CACHsN,qBAAsB,0EACtBC,mBAAoB,cAExBzvB,MAAO,CACHQ,MAAO,iBACP8F,WAAW,EACXtN,MAAO,MACPoN,OAAQ,MACRG,SAAS,EACTC,aAAa,EACbK,iBAAiB,EACjBvN,IAAMA,IAAU5D,KAAK+Q,UAAYnN,GACjCoN,2BAA2B,EAC3BR,SAAU,CACNY,GAAI,SACJC,GAAI,SACJC,GAAIrQ,QAERmL,aAAc,CACV,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACvDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACC,EAAK0xB,SAASn1B,SAASk3B,eAAejzB,MAAMC,IAC9CY,YAAO,8DAA4CZ,EAAK,QAAS,OAFhE,2CAAF,kDAAC,KAQhB,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACtDI,QAAS,KACLhN,KAAKi4B,SAASn1B,SAASm3B,sBAM3CC,KAAM,CACFjoB,SAAU,EACV7O,MAAO,CACH,CACI+2B,QAAS,EACTC,SAAU,QACVh3B,MAAO,CACH,CAAE8O,UAAW,OACb,CACIA,UAAW,UACXC,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IACZ,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,UACL+B,QAAS3D,EAAW,8BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE4L,UAAW,UACXrP,YAAa,mBAUzC,gBAAC,eAAD,CAAciS,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,YAC9B,gBAAC,eAAD,CAAc5C,QAAQ,oCAE1B,gBAAC,SAAD,CAAQL,UAAW,UAAWiD,QAAQ,QAAQ9G,SAAS,GACnD,gBAAC,eAAD,CAAckE,QAAQ,iCAE1B,gBAAC,SAAD,CAAQL,UAAW,WAAYiD,QAAQ,YAKjC,IAAb+N,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbkjB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,UAG3BpjB,cAAc,EACdhC,WAAYrS,KAAKs5B,oBACjBnR,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJmK,cAAepQ,KAAK44B,2BACpBh1B,IAAMA,GAAQ5D,KAAKk4B,cAAgBt0B,GAEnC,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,eAAgBC,yBAAyB,IAC1E,gBAAC,UAAD,CACI+O,aAAa,EACbC,eAAe,EACf1iB,eAAe,EACfD,UAAU,EACVF,KAAM,QACN0X,MAAO,CACHsN,qBAAsB,0EACtBC,mBAAoB,cAExBzvB,MAAO,CACHQ,MAAO,sCACP8F,WAAW,EACXtN,MAAO,MACPoN,OAAQ,MACRG,SAAS,EACTC,aAAa,EACbK,iBAAiB,EACjBvN,IAAMA,IAAU5D,KAAK+Q,UAAYnN,GACjCoN,2BAA2B,EAC3BR,SAAU,CACNY,GAAI,SACJC,GAAI,SACJC,GAAIrQ,QAERmL,aAAc,CACV,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACvDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACC,EAAK2xB,cAAcp1B,SAASk3B,eAAejzB,MAAMC,IACnDY,YAAO,8DAA4CZ,EAAK,QAAS,OAFhE,2CAAF,kDAAC,KAQhB,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACtDI,QAAS,KACLhN,KAAKk4B,cAAcp1B,SAASm3B,sBAMhDC,KAAM,CACFjoB,SAAU,EACV7O,MAAO,CACH,CACI+2B,QAAS,EACTC,SAAU,QACVh3B,MAAO,CACH,CAAE8O,UAAW,OACb,CACIA,UAAW,UACXC,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IACZ,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,UACL+B,QAAS3D,EAAW,8BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE4L,UAAW,UACXrP,YAAa,aAGrB,CACIiP,UAAW,WACXC,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IACZ,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE4L,UAAW,KACXrP,YAAa,cAUzC,gBAAC,eAAD,CAAciS,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,YAC9B,gBAAC,eAAD,CAAc5C,QAAQ,oCAE1B,gBAAC,SAAD,CAAQL,UAAW,UAAWiD,QAAQ,QAAQ9G,SAAS,GACnD,gBAAC,eAAD,CAAckE,QAAQ,iCAE1B,gBAAC,SAAD,CAAQL,UAAW,WAAYiD,QAAQ,UACvC,gBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,SAAS9G,SAAS,GACrD,gBAAC,eAAD,CAAckE,QAAQ,kCAE1B,gBAAC,SAAD,CAAQL,UAAW,YAAaiD,QAAQ,WACxC,gBAAC,SAAD,CAAQjD,UAAW,qBAAsBiD,QAAQ,kCAAkBE,SAAU,WAC7E,gBAAC,SAAD,CAAQnD,UAAW,gBAAiBiD,QAAQ,gCAAmBE,SAAU,aAKnE,IAAb6N,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbkjB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,UAG3BpjB,cAAc,EACdhC,WAAYrS,KAAKu5B,eACjBpR,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJmK,cAAepQ,KAAK64B,sBACpBj1B,IAAMA,GAAQ5D,KAAKm4B,SAAWv0B,GAE9B,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,UAAWC,yBAAyB,IACrE,gBAAC,UAAD,CACI+O,aAAa,EACbC,eAAe,EACf1iB,eAAe,EACfD,UAAU,EACVF,KAAM,QACN0X,MAAO,CACHsN,qBAAsB,0EACtBC,mBAAoB,cAExBzvB,MAAO,CACHQ,MAAO,iBACP8F,WAAW,EACXtN,MAAO,MACPoN,OAAQ,MACRG,SAAS,EACTC,aAAa,EACbK,iBAAiB,EACjBvN,IAAMA,IAAU5D,KAAK+Q,UAAYnN,GACjCoN,2BAA2B,EAC3BR,SAAU,CACNY,GAAI,SACJC,GAAI,SACJC,GAAIrQ,QAERmL,aAAc,CACV,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACvDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACC,EAAK4xB,SAASr1B,SAASk3B,eAAejzB,MAAMC,IAC9CY,YAAO,8DAA4CZ,EAAK,QAAS,OAFhE,2CAAF,kDAAC,KAQhB,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACtDI,QAAS,KACLhN,KAAKm4B,SAASr1B,SAASm3B,sBAM3CC,KAAM,CACFjoB,SAAU,EACV7O,MAAO,CACH,CACI+2B,QAAS,EACTC,SAAU,QACVh3B,MAAO,CACH,CAAE8O,UAAW,OACb,CACIA,UAAW,UACXC,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IACZ,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,UACL+B,QAAS3D,EAAW,8BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE4L,UAAW,UACXrP,YAAa,mBAUzC,gBAAC,eAAD,CAAciS,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,YAC9B,gBAAC,eAAD,CAAc5C,QAAQ,oCAE1B,gBAAC,SAAD,CAAQL,UAAW,UAAWiD,QAAQ,QAAQ9G,SAAS,GACnD,gBAAC,eAAD,CAAckE,QAAQ,iCAE1B,gBAAC,SAAD,CAAQL,UAAW,WAAYiD,QAAQ,YAKjC,IAAb+N,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbkjB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,UAG3BpjB,cAAc,EACdhC,WAAYrS,KAAKw5B,gBACjBrR,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJmK,cAAepQ,KAAK+4B,uBACpBn1B,IAAMA,GAAQ5D,KAAKo4B,UAAYx0B,GAE/B,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,UAAD,CACI+O,aAAa,EACbC,eAAe,EACf1iB,eAAe,EACfD,UAAU,EACVF,KAAM,QACN0X,MAAO,CACHsN,qBAAsB,0EACtBC,mBAAoB,cAExBzvB,MAAO,CACHQ,MAAO,uBACP8F,WAAW,EACXtN,MAAO,MACPoN,OAAQ,MACRG,SAAS,EACTC,aAAa,EACbK,iBAAiB,EACjBvN,IAAMA,IAAU5D,KAAK+Q,UAAYnN,GACjCoN,2BAA2B,EAC3BR,SAAU,CACNY,GAAI,SACJC,GAAI,SACJC,GAAIrQ,QAERmL,aAAc,CACV,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACvDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACC,EAAK6xB,UAAUt1B,SAASk3B,eAAejzB,MAAMC,IAC/CY,YAAO,8DAA4CZ,EAAK,QAAS,OAFhE,2CAAF,kDAAC,KAQhB,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACtDI,QAAS,KACLhN,KAAKo4B,UAAUt1B,SAASm3B,sBAM5CC,KAAM,CACFjoB,SAAU,EACV7O,MAAO,CACH,CACI+2B,QAAS,EACTC,SAAU,QACVh3B,MAAO,CACH,CAAE8O,UAAW,OACb,CACIA,UAAW,UACXC,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IACZ,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,UACL+B,QAAS3D,EAAW,8BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE4L,UAAW,UACXrP,YAAa,mBAUzC,gBAAC,eAAD,CAAciS,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,YAC9B,gBAAC,eAAD,CAAc5C,QAAQ,oCAE1B,gBAAC,SAAD,CAAQL,UAAW,UAAWiD,QAAQ,QAAQ9G,SAAS,GACnD,gBAAC,eAAD,CAAckE,QAAQ,iCAE1B,gBAAC,SAAD,CAAQL,UAAW,WAAYiD,QAAQ,YAKjC,IAAb+N,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbkjB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,UAG3BpjB,cAAc,EACdhC,WAAYrS,KAAKy5B,gBACjBtR,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJmK,cAAepQ,KAAKg5B,uBACpBp1B,IAAMA,GAAQ5D,KAAKq4B,UAAYz0B,GAE/B,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,UAAD,CACI+O,aAAa,EACbC,eAAe,EACf1iB,eAAe,EACfD,UAAU,EACVF,KAAM,QACN0X,MAAO,CACHsN,qBAAsB,0EACtBC,mBAAoB,cAExBzvB,MAAO,CACHQ,MAAO,qBACP8F,WAAW,EACXtN,MAAO,MACPoN,OAAQ,MACRG,SAAS,EACTC,aAAa,EACbK,iBAAiB,EACjBvN,IAAMA,IAAU5D,KAAK+Q,UAAYnN,GACjCoN,2BAA2B,EAC3BR,SAAU,CACNY,GAAI,SACJC,GAAI,SACJC,GAAIrQ,QAERmL,aAAc,CACV,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACvDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACC,EAAK8xB,UAAUv1B,SAASk3B,eAAejzB,MAAMC,IAC/CY,YAAO,8DAA4CZ,EAAK,QAAS,OAFhE,2CAAF,kDAAC,KAQhB,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACtDI,QAAS,KACLhN,KAAKq4B,UAAUv1B,SAASm3B,sBAM5CC,KAAM,CACFjoB,SAAU,EACV7O,MAAO,CACH,CACI+2B,QAAS,EACTC,SAAU,QACVh3B,MAAO,CACH,CAAE8O,UAAW,OACb,CACIA,UAAW,UAAW7D,SAAS,EAAO8D,WAAY,YAAaC,cAAe,CAC1E/D,SAAS,EACT9G,MAAO/G,EAAQoB,QAAQuJ,UAG/B,CACI+G,UAAW,UACXC,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IACZ,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,UACL+B,QAAS3D,EAAW,8BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE4L,UAAW,UACXrP,YAAa,aAGrB,CACIiP,UAAW,QACXmD,SAAU,SACV4K,OAAQ,kBAShC,gBAAC,eAAD,CAAc/K,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,YAC9B,gBAAC,eAAD,CAAc5C,QAAQ,oCAE1B,gBAAC,SAAD,CAAQL,UAAW,UAAWiD,QAAQ,QAAQ9G,SAAS,GACnD,gBAAC,eAAD,CAAckE,QAAQ,iCAE1B,gBAAC,SAAD,CAAQL,UAAW,WAAYiD,QAAQ,UACvC,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SAAUjD,cAAe,CAC3E6N,OAAQ,aAER,gBAAC,eAAD,CAAc1N,QAAS,mCAMrB,IAAb2Q,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbkjB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,UAG3BpjB,cAAc,EACdhC,WAAYrS,KAAK05B,kBACjBvR,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJmK,cAAepQ,KAAKi5B,yBACpBr1B,IAAMA,GAAQ5D,KAAKs4B,YAAc10B,GAEjC,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,aAAcC,yBAAyB,IACxE,gBAAC,UAAD,CACI+O,aAAa,EACbC,eAAe,EACf1iB,eAAe,EACfD,UAAU,EACVF,KAAM,QACN0X,MAAO,CACHsN,qBAAsB,0EACtBC,mBAAoB,cAExBzvB,MAAO,CACHQ,MAAO,yBACP8F,WAAW,EACXtN,MAAO,MACPoN,OAAQ,MACRG,SAAS,EACTC,aAAa,EACbK,iBAAiB,EACjBvN,IAAMA,IAAU5D,KAAK+Q,UAAYnN,GACjCoN,2BAA2B,EAC3BR,SAAU,CACNY,GAAI,SACJC,GAAI,SACJC,GAAIrQ,QAERmL,aAAc,CACV,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACvDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACC,EAAK+xB,YAAYx1B,SAASk3B,eAAejzB,MAAMC,IACjDY,YAAO,8DAA4CZ,EAAK,QAAS,OAFhE,2CAAF,kDAAC,KAQhB,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACtDI,QAAS,KACLhN,KAAKs4B,YAAYx1B,SAASm3B,sBAM9CC,KAAM,CACFjoB,SAAU,EACV7O,MAAO,CACH,CACI+2B,QAAS,EACTC,SAAU,QACVh3B,MAAO,CACH,CAAE8O,UAAW,OACb,CACIA,UAAW,UACXC,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IACZ,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,UACL+B,QAAS3D,EAAW,8BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE4L,UAAW,UACXrP,YAAa,aAGrB,CACIiP,UAAW,QACXmD,SAAU,SACV4K,OAAQ,kBAShC,gBAAC,eAAD,CAAc/K,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,YAC9B,gBAAC,eAAD,CAAc5C,QAAQ,oCAE1B,gBAAC,SAAD,CAAQL,UAAW,UAAWiD,QAAQ,QAAQ9G,SAAS,GACnD,gBAAC,eAAD,CAAckE,QAAQ,iCAE1B,gBAAC,SAAD,CAAQL,UAAW,WAAYiD,QAAQ,UACvC,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SAAUjD,cAAe,CAC3E6N,OAAQ,aAER,gBAAC,eAAD,CAAc1N,QAAS,mCAMrB,IAAb2Q,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbkjB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,UAG3BpjB,cAAc,EACdhC,WAAYrS,KAAK25B,yBACjBxR,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJmK,cAAepQ,KAAKk5B,gCACpBt1B,IAAMA,GAAQ5D,KAAK63B,mBAAqBj0B,GAExC,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,kBAAmBC,yBAAyB,IAC7E,gBAAC,UAAD,CACI+O,aAAa,EACbC,eAAe,EACf1iB,eAAe,EACfD,UAAU,EACVF,KAAM,QACN0X,MAAO,CACHsN,qBAAsB,0EACtBC,mBAAoB,cAExBzvB,MAAO,CACHQ,MAAO,wBACP8F,WAAW,EACXtN,MAAO,MACPoN,OAAQ,MACRG,SAAS,EACTC,aAAa,EACbK,iBAAiB,EACjBvN,IAAMA,IAAU5D,KAAK+Q,UAAYnN,GACjCoN,2BAA2B,EAC3BR,SAAU,CACNY,GAAI,SACJC,GAAI,SACJC,GAAIrQ,QAERmL,aAAc,CACV,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACvDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACC,EAAKsxB,mBAAmB/0B,SAASk3B,eAAejzB,MAAMC,IACxDY,YAAO,8DAA4CZ,EAAK,QAAS,OAFhE,2CAAF,kDAAC,KAQhB,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACtDI,QAAS,KACLhN,KAAK63B,mBAAmB/0B,SAASm3B,sBAMrDC,KAAM,CACFjoB,SAAU,EACV7O,MAAO,CACH,CACI+2B,QAAS,EACTC,SAAU,QACVh3B,MAAO,CACH,CAAE8O,UAAW,aACb,CAAEA,UAAW,cACb,CACIA,UAAW,UAAW7D,SAAS,EAAO8D,WAAY,YAAaC,cAAe,CAC1E/D,SAAS,EACT9G,MAAO/G,EAAQoB,QAAQuJ,UAG/B,CACI+G,UAAW,UACXC,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IACZ,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,UACL+B,QAAS3D,EAAW,8BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE4L,UAAW,UACXrP,YAAa,mBAUzC,gBAAC,eAAD,CAAciS,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,aAAciD,QAAQ,mBACrC,gBAAC,eAAD,CAAc5C,QAAQ,2CAE1B,gBAAC,SAAD,CAAQL,UAAW,YAAamD,SAAU,SAAUF,QAAQ,qCACxD,gBAAC,eAAD,CAAc5C,QAAQ,6DAE1B,gBAAC,SAAD,CAAQL,UAAW,UAAWiD,QAAQ,QAAQ9G,SAAS,GACnD,gBAAC,eAAD,CAAckE,QAAQ,iCAE1B,gBAAC,SAAD,CAAQL,UAAW,WAAYiD,QAAQ,YAKjC,IAAb+N,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbkjB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,UAG3BpjB,cAAc,EACdhC,WAAYrS,KAAK45B,gBACjBzR,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJmK,cAAepQ,KAAK84B,uBACpBl1B,IAAMA,GAAQ5D,KAAK+3B,UAAYn0B,GAE/B,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,UAAD,CACI+O,aAAa,EACbC,eAAe,EACf1iB,eAAe,EACfD,UAAU,EACVF,KAAM,QACN0X,MAAO,CACHsN,qBAAsB,0EACtBC,mBAAoB,cAExBzvB,MAAO,CACHQ,MAAO,kBACP8F,WAAW,EACXtN,MAAO,MACPoN,OAAQ,MACRG,SAAS,EACTC,aAAa,EACbK,iBAAiB,EACjBvN,IAAMA,IAAU5D,KAAK+Q,UAAYnN,GACjCoN,2BAA2B,EAC3BR,SAAU,CACNY,GAAI,SACJC,GAAI,SACJC,GAAIrQ,QAERmL,aAAc,CACV,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACvDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACC,EAAKwxB,UAAUj1B,SAASk3B,eAAejzB,MAAMC,IAC/CY,YAAO,8DAA4CZ,EAAK,QAAS,OAFhE,2CAAF,kDAAC,KAQhB,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACtDI,QAAS,KACLhN,KAAK+3B,UAAUj1B,SAASm3B,sBAM5CC,KAAM,CACFjoB,SAAU,EACV7O,MAAO,CACH,CACI+2B,QAAS,EACTC,SAAU,QACVh3B,MAAO,CACH,CAAE8O,UAAW,OACb,CACIA,UAAW,UAAW7D,SAAS,EAAO8D,WAAY,YAAaC,cAAe,CAC1E/D,SAAS,EACT9G,MAAO/G,EAAQoB,QAAQuJ,UAG/B,CACI+G,UAAW,UACXC,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IACZ,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,UACL+B,QAAS3D,EAAW,8BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE4L,UAAW,UACXrP,YAAa,mBAUzC,gBAAC,eAAD,CAAciS,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,YAC9B,gBAAC,eAAD,CAAc5C,QAAQ,oCAE1B,gBAAC,SAAD,CAAQL,UAAW,UAAWiD,QAAQ,QAAQ9G,SAAS,GACnD,gBAAC,eAAD,CAAckE,QAAQ,iCAE1B,gBAAC,SAAD,CAAQL,UAAW,WAAYiD,QAAQ,YAKjC,IAAb+N,EAED,uBAAKhT,MAAO,CAAEmnB,WAAY,SACtB,gBAAC,IAAD,CACIjjB,aAAa,EACbkjB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,UAG3BpjB,cAAc,EACdhC,WAAYrS,KAAK65B,gBACjB1R,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,QACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJmK,cAAepQ,KAAKm5B,uBACpBv1B,IAAMA,GAAQ5D,KAAKg4B,UAAYp0B,GAE/B,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,UAAD,CACI+O,aAAa,EACbC,eAAe,EACf1iB,eAAe,EACfD,UAAU,EACVF,KAAM,QACN0X,MAAO,CACHsN,qBAAsB,0EACtBC,mBAAoB,cAExBzvB,MAAO,CACHQ,MAAO,kBACP8F,WAAW,EACXtN,MAAO,MACPoN,OAAQ,MACRG,SAAS,EACTC,aAAa,EACbK,iBAAiB,EACjBvN,IAAMA,IAAU5D,KAAK+Q,UAAYnN,GACjCoN,2BAA2B,EAC3BR,SAAU,CACNY,GAAI,SACJC,GAAI,SACJC,GAAIrQ,QAERmL,aAAc,CACV,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACvDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACC,EAAKyxB,UAAUl1B,SAASk3B,eAAejzB,MAAMC,IAC/CY,YAAO,8DAA4CZ,EAAK,QAAS,OAFhE,2CAAF,kDAAC,KAQhB,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACtDI,QAAS,KACLhN,KAAKg4B,UAAUl1B,SAASm3B,sBAM5CC,KAAM,CACFjoB,SAAU,EACV7O,MAAO,CACH,CACI+2B,QAAS,EACTC,SAAU,QACVh3B,MAAO,CACH,CAAE8O,UAAW,OACb,CACIA,UAAW,UAAW7D,SAAS,EAAO8D,WAAY,YAAaC,cAAe,CAC1E/D,SAAS,EACT9G,MAAO/G,EAAQoB,QAAQuJ,UAG/B,CACI+G,UAAW,UACXC,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IACZ,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,UACL+B,QAAS3D,EAAW,8BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE4L,UAAW,UACXrP,YAAa,mBAUzC,gBAAC,eAAD,CAAciS,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,YAC9B,gBAAC,eAAD,CAAc5C,QAAQ,oCAE1B,gBAAC,SAAD,CAAQL,UAAW,UAAWiD,QAAQ,QAAQ9G,SAAS,GACnD,gBAAC,eAAD,CAAckE,QAAQ,iCAE1B,gBAAC,SAAD,CAAQL,UAAW,WAAYiD,QAAQ,iBApIlD,EA0ITpS,SACI,OACI,gBAAC,WAAD,KACI,uBAAKkN,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,0BAAK,sDACJjQ,KAAKyhB,mBCxiDnB,MAAM4Y,WAAsBp4B,YACvClC,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTO,OAAO,GAEXtK,KAAK0xB,UAAY,KACjB1xB,KAAKyoB,SAAW,KAChBzoB,KAAK01B,UAAY,KACjB11B,KAAK21B,yBAA2B,KAChC31B,KAAK2xB,cAAgB,KACrB3xB,KAAK4xB,aAAe,KACpB5xB,KAAKyM,MAAQ,KACbzM,KAAKmZ,SAAW,GAChBnZ,KAAKkZ,SAAW,GAChBlZ,KAAK8R,SAAW,GAEhB9R,KAAK2zB,eAAiB,GACtB3zB,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAK6xB,2BAA6B7xB,KAAK6xB,2BAA2BjoB,KAAK5J,MACvEA,KAAK8xB,4BAA8B9xB,KAAK8xB,4BAA4BloB,KAAK5J,MACzEA,KAAK41B,4BAA8B51B,KAAK41B,4BAA4BhsB,KAAK5J,MACzEA,KAAK+xB,sBAAwB/xB,KAAK+xB,sBAAsBnoB,KAAK5J,MAC7DA,KAAK61B,uBAAyB71B,KAAK61B,uBAAuBjsB,KAAK5J,MAC/DA,KAAKgyB,uBAAyBhyB,KAAKgyB,uBAAuBpoB,KAAK5J,MAC/DA,KAAKiyB,0BAA4BjyB,KAAKiyB,0BAA0BroB,KAAK5J,MACrEA,KAAKkyB,2BAA6BlyB,KAAKkyB,2BAA2BtoB,KAAK5J,MACvEA,KAAKwwB,aAAexwB,KAAKwwB,aAAa5mB,KAAK5J,MAC3CA,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAK0wB,WAAa,KACd1wB,KAAKyN,SAAS,CAAEnD,OAAO,KAE3BtK,KAAKyG,QAAU,CAAE,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAC9D1G,KAAKmxB,UAAY,KACjBnxB,KAAKoyB,MAAO,EACZpyB,KAAK4Z,gBAAkB,GACvB5Z,KAAK+1B,gBAAkB,GACvB/1B,KAAK8Z,oBAAsB,GAC3B9Z,KAAKg2B,kBAAoB,GACzBh2B,KAAKqyB,oBAAsB,IAAIjqB,IAC3B,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,4BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKsyB,cAAgB,IAAIlqB,IACrB,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,aACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAQjE1G,KAAKs1B,gBAAkB,IAAIltB,IACvB,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,iBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAO/DmqB,UAAW,IAAD,2IACL,IAAI9V,QAAQC,IACf,EAAKvN,SAAS,CACVnD,OAAO,IAEX0Q,GAAQ,MALA,6CASVuX,OAAQ,IAAD,kHACT,EAAKzgB,SAAW,CACZxG,GAAI,EACJknB,OAAQ,KACRC,SAAS,EACTC,WAAY,EACZ5b,aAAc,KACdC,MAAO,KACP4b,MAAO,KACP9iB,IAAK,KACLC,OAAQ,KACRqK,UAAU,EACVC,WAAW,EACXH,IAAK,KACLC,IAAK,KACL0Y,MAAO,MAfF,6CAmBPC,YAAa,IAAD,yHACd,EAAKjZ,gBAAkB,GACvB,EAAKmc,gBAAkB,GACvB,EAAKjc,oBAAsB,GAC3B,EAAKkc,kBAAoB,GAJX,SAKR,EAAKtE,UAAU5uB,SAASyuB,iBALhB,uBAMR,EAAKuB,sBANG,wBAOR,EAAK4C,UAAU5yB,SAASyuB,iBAPhB,yBAQR,EAAKiF,sBARG,8CAWZzD,aAAa5jB,GAAK,IAAD,2IACZ,IAAI4L,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,0BAA4B8K,EAAI,CACnD1I,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACTD,EAAIN,KAAKiG,KAAO3F,EAAIN,KAAKiG,KAAK,GAC9B,EAAKuF,SAAW,CACZxG,GAAI1E,EAAIN,KAAKiG,KAAKjB,GAClBknB,OAAQ5rB,EAAIN,KAAKiG,KAAKimB,OACtBC,QAAS7rB,EAAIN,KAAKiG,KAAKkmB,QACvBC,WAAY9rB,EAAIN,KAAKiG,KAAKmmB,WAC1B5b,aAAclQ,EAAIN,KAAKiG,KAAKuK,aAC5BC,MAAOnQ,EAAIN,KAAKiG,KAAKwK,MACrB4b,MAAO/rB,EAAIN,KAAKiG,KAAKomB,MACrB9iB,IAAKjJ,EAAIN,KAAKiG,KAAKsD,IACnBC,OAAQlJ,EAAIN,KAAKiG,KAAKuD,OACtBqK,SAAUvT,EAAIN,KAAKiG,KAAK4N,SACxBC,UAAWxT,EAAIN,KAAKiG,KAAK6N,UACzBH,IAAKrT,EAAIN,KAAKiG,KAAK0N,IACnBC,IAAKtT,EAAIN,KAAKiG,KAAK2N,IACnB0Y,MAAOhsB,EAAIN,KAAKiG,KAAKymB,KACrBA,KAAMpsB,EAAIN,KAAKiG,KAAKymB,KACpBC,eAAgBrsB,EAAIN,KAAKiG,KAAK0mB,gBAElCjY,EAAQ,6CAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAM,KACLkU,EAAO,+EAjCI,6CAsCjBiY,6BAA6BC,GAAc,IAAD,2IACrC,IAAIpY,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,0CAA4C8uB,EAAa,CAC5E1sB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACJ,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAIsqB,EAAY,GAChBvqB,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzBwhB,EAAU3uB,KAAKoe,EAAKwS,YAExB,EAAK1B,UAAU5uB,SAASuuB,WAAWF,GACnCnW,EAAQ,wCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAM,KACLkU,EAAO,uEAnB6B,6CAwB1Cwb,mCAAmCtD,GAAc,IAAD,2IAC3C,IAAIpY,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,gDAAkD8uB,EAAa,CAClF1sB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACF,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAIsqB,EAAY,GAChBvqB,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzBwhB,EAAU3uB,KAAKoe,EAAK8V,MAAMprB,MAE9B,EAAKoqB,UAAU5yB,SAASuuB,WAAWF,GACnC,EAAKuE,UAAU5yB,SAAS4M,UACxBsL,EAAQ,iCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,gBAErBC,MAAM,KACLkU,EAAO,kEAtB+B,6CA2BhDuV,aAAa7iB,GAAI,IAAD,2HAEJ,QADRlB,EAAQ,EAAKA,aACa5L,IAAV4L,EAFJ,uBAGdqG,YAAM,6BAAsB,cAHd,+BAOc,kBAAxBtS,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,KAP1C,iBAQVuE,YAAM,uDARI,yCAWJ,EAAK+f,YAXD,eAYV,EAAK/gB,SAAW,GAZN,UAaJ,EAAKihB,aAAatmB,EAAMnB,IAAIvE,MAAMC,IACpCY,YAAOZ,EAAK,QAAS,OAdf,yBAiBJ,EAAKsrB,cAAc9pB,OAAO6qB,KAA1B,sBAA+B,sBAAA9sB,EAAA,sEAC3B,EAAKkwB,mCAAmChqB,EAAMnB,IAAI3E,KAAK,QAE1DI,MAAMiH,IACLpG,YAAOoG,EAAO,QAAS,OAJM,4CAjB3B,yBAwBJ,EAAKklB,6BAA6BzmB,EAAMnB,IAAI3E,KAAK,QACpDI,MAAMiH,IACLpG,YAAOoG,EAAO,QAAS,OA1BjB,yBA6BJ,EAAK6iB,UA7BD,8CAmChByC,IAAI7mB,GAAQ,IAAD,kHACb7K,IAAQ4E,KAAKnC,EAAW,0BAA4BoI,EAAMnB,GACtD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QAETjF,IAAQ4E,KAAKnC,EAAW,0BAA4BoI,EAAMnB,GACtD,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD,EAAK6gB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,wBAIT7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAMnDc,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAhCtC,6CAqCXysB,SAAS9mB,GAAQ,IAAD,kHAClB7K,IAAQ4E,KAAKnC,EAAW,sBAAwBoI,EAAMnB,GAAI,KACtD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4hB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,uBAET7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAhBjC,6CAqBhB0sB,SAAS/mB,GAAQ,IAAD,kHAClB7K,IAAQ4E,KAAKnC,EAAW,sBAAwBoI,EAAMnB,GAClD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4hB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,uBAET7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAjBjC,6CAsBtBqrB,WAAWxkB,GACHA,EAAEpG,MAAMiF,OAAS,IACjBxM,KAAK8R,SAAS8gB,MAAQjlB,EAAEpG,MAAM,GAAGyb,KACjCpb,YAAO,sBAAoB,UAAW,MAI9C2M,mBAAmB5G,GAAI,IAAD,OAClBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,OAAQF,KAAM,MACrCI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,2DACuB,eAAxB/F,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,KADnD,gBAEDuE,YAAM,uDAFL,uCAMK,EAAKyf,OANV,uBAOK,EAAKM,YAPV,wBAQK,EAAKhC,UARV,4CAAF,kDAAC,KAahB,CACI3vB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,aAAWF,KAAM,OACxCI,QAAShN,KAAKwwB,eAGtB,CACItvB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,QACnCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKszB,IAAI7mB,UAXrBqG,YAAM,6BAAsB,iBAmB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKwzB,SAAS/mB,UAX1BqG,YAAM,6BAAsB,iBAmB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1CI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKuzB,SAAS9mB,UAX1BqG,YAAM,6BAAsB,iBAmB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAAS4M,cAO3CkmB,8BACI51B,KAAK+1B,gBAAkB/1B,KAAK01B,UAAU5yB,SAAS4R,sBAKnDqd,sBAAsBpkB,GAClB3N,KAAKyoB,SAAW9a,EAAEC,UAGtBokB,uBAAuBrkB,GACnB3N,KAAK0xB,UAAY/jB,EAAEC,UAIvBioB,uBAAuBloB,GACnB3N,KAAK01B,UAAY/nB,EAAEC,UAKvBqkB,0BAA0BtkB,GACtB3N,KAAK4xB,aAAejkB,EAAEC,UAG1BskB,2BAA2BvkB,GACvB3N,KAAK2xB,cAAgBhkB,EAAEC,UAG3BikB,2BAA2BjT,GACvB5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDiT,8BACI9xB,KAAK4Z,gBAAkB5Z,KAAK0xB,UAAU5uB,SAAS4R,sBAG7C+e,qBAAsB,IAAD,kHACQ,OAA3B,EAAKhL,SAAS3lB,WACd,EAAK2lB,SAAS3lB,SAASyuB,iBACvB,EAAK9I,SAAS3lB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAOrBilB,sBAAuB,IAAD,kHACQ,OAA5B,EAAKpB,UAAU5uB,WACf,EAAK4uB,UAAU5uB,SAASyuB,iBACxB,EAAKG,UAAU5uB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAStB2oB,sBAAuB,IAAD,kHACQ,OAA5B,EAAKd,UAAU5yB,WACf,EAAK4yB,UAAU5yB,SAASyuB,iBACxB,EAAKmE,UAAU5yB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAO5B9K,SAEI,OACI,gBAAC,WAAD,KACI,uBAAKkN,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKqyB,oBACjBlK,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBrY,QAAQ,KACRuY,OAAQ,CACJhH,SAAS,GAEbkH,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAoBvU,KAAKuU,mBACzBnE,cAAepQ,KAAK+xB,sBACpB9V,mBAAoBjc,KAAK6xB,2BACzBjuB,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAG9B,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,gBAAD,CAAezT,SAAS,IACxB,gBAAC,UAAD,CAASJ,KAAM,UACf,gBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,gBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,gBAAC,eAAD,CAAc5T,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,KACzB,gBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,YACvD,gBAAC,SAAD,CAAQnD,UAAW,eAAgBiD,QAAQ,gBAC3C,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,UACpC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,aAClC,gBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,gBACrC,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,eACpC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,MAAM9G,SAAS,IACjD,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,MAAM9G,SAAS,IACjD,gBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,YAAYE,SAAS,YAC5D,gBAAC,SAAD,CAAQnD,UAAW,YAAaiD,QAAQ,aAAaE,SAAS,gBAO9E,gBAAC,QAAD,CAAOzE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACrFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtFrG,MAAM,yCAA0BxH,MAAO,OAAQoN,OAAQ,OACvDmc,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IACe3N,KAAK2xB,cAAc7uB,SAASgc,WAC/BC,UAKhB/e,KAAKg2B,kBAAoB,GACzBh2B,KAAK8Z,oBAAsB,GAC3B9Z,KAAK4Z,gBAAgBvS,QAAQ,CAACuZ,EAAMjR,KAChC3P,KAAK8Z,oBAAoBtX,KACrB,CACIkxB,MAAO,CAAEpoB,GAAIsV,EAAKtV,IAClBD,UAAW,CAAEC,GAAI,YAKDzK,IAAxBb,KAAK8R,SAAS8gB,QACd5yB,KAAK8R,SAASkhB,KAAOhzB,KAAK8R,SAAS8gB,OAGvC5yB,KAAKg2B,kBAAoB,GACzBh2B,KAAK+1B,gBAAgB1uB,QAAQ,CAACuZ,EAAMjR,KAChC3P,KAAKg2B,kBAAkBxzB,KAAK,CACxBk0B,MAAO,CAAEprB,GAAIsV,EAAKtV,QAI1BtL,KAAK2zB,eAAiB,CAClBtoB,UAAWrL,KAAK8R,SAChBgI,oBAAqB9Z,KAAK8Z,oBAC1Bkc,kBAAmBh2B,KAAKg2B,mBAG5Bp0B,IAAQ4E,KAAKnC,EAAW,mCACpBrE,KAAK2zB,eACL,CACIltB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QAET7G,KAAKyoB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC3G,KAAKyN,SAAS,CACVnD,OAAO,OAKftK,KAAK2zB,eAAiB,CAClBtoB,UAAWrL,KAAK8R,SAChBgI,oBAAqB9Z,KAAK8Z,oBAC1Bkc,kBAAmBh2B,KAAKg2B,mBAE5BpuB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,YAQnE,CACI5F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,gBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAKkyB,2BAA4BtuB,IAAMA,GAAQ5D,KAAK2xB,cAAgB/tB,GAC9G,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,iCACnD,gBAAC,aAAD,CAAYjD,UAAW,QAASyc,YAAY,GACxC,gBAAC,QAAD,CAAOngB,KAAK,WAEhB,gBAAC,aAAD,CAAY0D,UAAW,eAAgByc,YAAY,GAC/C,gBAAC,QAAD,CAAOngB,KAAK,iBAEhB,gBAAC,aAAD,CAAY0D,UAAW,QAASyc,YAAY,EAAMxc,WAAW,aACzD,gBAAC,QAAD,CAAO3D,KAAK,gBAEhB,gBAAC,aAAD,CAAY0D,UAAW,MAAOyc,YAAY,GACtC,gBAAC,QAAD,CAAOngB,KAAK,cAEhB,gBAAC,aAAD,CAAY0D,UAAW,SAAUyc,YAAY,GACzC,gBAAC,QAAD,CAAOngB,KAAK,iBAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnB,gBAAC,QAAD,CAAO1D,KAAK,aAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnB,gBAAC,QAAD,CAAO1D,KAAK,SAEhB,gBAAC,aAAD,CAAY0D,UAAW,WAAYC,WAAW,cAC1C,gBAAC,QAAD,CAAO3D,KAAK,eAEhB,gBAAC,aAAD,CAAY0D,UAAW,YAAaC,WAAW,cAC3C,gBAAC,QAAD,CAAO3D,KAAK,iBAGpB,gBAAC,YAAD,CAAWwD,SAAS,aAAaC,SAAU,GACvC,gBAAC,aAAD,CAAYC,UAAW,SAAUyc,YAAY,EACzCxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKsyB,cACjBnK,kBAAkB,EAClB3kB,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAKiyB,0BACpBruB,IAAMA,IAAU5D,KAAK4xB,aAAehuB,KAExC,gBAAC,QAAD,CAAO4K,KAAK,SAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWvvB,EAAW,uBACtBwvB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpBuc,KAAM,SACN1H,eAAgBtb,KAAKmyB,aAEzB,gBAAC,QAAD,CAAO3jB,KAAK,qBAEhB,gBAAC,aAAD,CAAY0D,UAAW,iBAAkBC,WAAW,cAChD,gBAAC,QAAD,CAAO3D,KAAK,2BAIpB,gBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,YACnD,gBAAC,aAAD,KACI,kDACA,gBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK8hB,gBACjBqG,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB5L,cAAepQ,KAAKgyB,uBACpB/V,mBAAoBjc,KAAK8xB,4BACzBnuB,QAAQ,KACRC,IAAMA,GAAQ5D,KAAK0xB,UAAY9tB,GAG/B,gBAAC,SAAD,CAAQ4Y,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,YAAD,CAAWJ,KAAK,WACZ2H,cAAc,WACd1H,mBAAmB,YACvB,gBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,iBAG1C,gBAAC,aAAD,KACI,6CACA,gBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKs1B,gBACjBnN,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBC,mBAAoBjc,KAAK41B,4BACzBxlB,cAAepQ,KAAK61B,uBACpBlyB,QAAQ,KACRC,IAAMA,GAAQ5D,KAAK01B,UAAY9xB,GAG/B,gBAAC,SAAD,CAAQ4Y,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,YAAD,CAAWJ,KAAK,WACZ2H,cAAc,WACd1H,mBAAmB,YACvB,gBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,YACpC,gBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,iBACtC,gBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,QAAQE,SAAS,qBCzxBzF,MAAMhK,WAAkBpJ,YACnClC,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTO,OAAO,EACPgwB,iBAAiB,EACjB9E,uBAAuB,EACvB9iB,iBAAiB,GAErB1S,KAAKu6B,eAAiB,KACtBv6B,KAAK0xB,UAAY,KACjB1xB,KAAKyoB,SAAW,KAChBzoB,KAAK01B,UAAY,KACjB11B,KAAK21B,yBAA2B,KAChC31B,KAAK2xB,cAAgB,KACrB3xB,KAAKy1B,mBAAqB,KAC1Bz1B,KAAK4xB,aAAe,KACpB5xB,KAAKyM,MAAQ,KACbzM,KAAKmZ,SAAW,GAChBnZ,KAAKkZ,SAAW,GAChBlZ,KAAK8R,SAAW,GAGhB9R,KAAKk2B,uBAAyB,CAC1BC,aAAc,GACdC,cAAe51B,EAAQoB,QAAQuJ,QAC/BA,QAAS,MAEbnL,KAAK2zB,eAAiB,GACtB3zB,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAK6xB,2BAA6B7xB,KAAK6xB,2BAA2BjoB,KAAK5J,MACvEA,KAAK8xB,4BAA8B9xB,KAAK8xB,4BAA4BloB,KAAK5J,MACzEA,KAAK41B,4BAA8B51B,KAAK41B,4BAA4BhsB,KAAK5J,MACzEA,KAAK+xB,sBAAwB/xB,KAAK+xB,sBAAsBnoB,KAAK5J,MAC7DA,KAAK61B,uBAAyB71B,KAAK61B,uBAAuBjsB,KAAK5J,MAC/DA,KAAKgyB,uBAAyBhyB,KAAKgyB,uBAAuBpoB,KAAK5J,MAC/DA,KAAKiyB,0BAA4BjyB,KAAKiyB,0BAA0BroB,KAAK5J,MACrEA,KAAKw6B,4BAA8Bx6B,KAAKw6B,4BAA4B5wB,KAAK5J,MACzEA,KAAKkyB,2BAA6BlyB,KAAKkyB,2BAA2BtoB,KAAK5J,MAEvEA,KAAKwwB,aAAexwB,KAAKwwB,aAAa5mB,KAAK5J,MAC3CA,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAK0wB,WAAa,KACd1wB,KAAKyN,SAAS,CAAEnD,OAAO,KAE3BtK,KAAKyG,QAAU,CAAE,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAC9D1G,KAAKmxB,UAAY,KACjBnxB,KAAKoyB,MAAO,EACZpyB,KAAK4Z,gBAAkB,GACvB5Z,KAAK+1B,gBAAkB,GACvB/1B,KAAK8Z,oBAAsB,GAC3B9Z,KAAKg2B,kBAAoB,GAEzBh2B,KAAK6L,gBAAkB,IAAIzD,IACvB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAShE,EAAU,uBAI/BhE,KAAKqyB,oBAAsB,IAAIjqB,IAC3B,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,wCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKw5B,gBAAkB,IAAIpxB,IACvB,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,kCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKsyB,cAAgB,IAAIlqB,IACrB,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,aACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKs1B,gBAAkB,IAAIltB,IACvB,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,iBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAU/DmqB,UAAW,IAAD,2IACL,IAAI9V,QAAQC,IACf,EAAKvN,SAAS,CACVnD,OAAO,IAEX0Q,GAAQ,MALA,6CAShBsb,2BACIt2B,KAAKyN,SAAS,CACV+nB,uBAAuB,IAIzBjD,OAAQ,IAAD,kHACT,EAAKzgB,SAAW,CACZxG,GAAI,EACJknB,OAAQ,KACRiI,QAAS,KACThI,SAAS,EACTC,WAAY,EACZ5b,aAAc,KACdC,MAAO,KACP4b,MAAO,KACP9iB,IAAK,KACLC,OAAQ,KACRqK,UAAU,EACVC,WAAW,EACXH,IAAK,KACLC,IAAK,KACL0Y,MAAO,MAhBF,6CAoBPC,YAAa,IAAD,yHACd,EAAKjZ,gBAAkB,GACvB,EAAKmc,gBAAkB,GACvB,EAAKjc,oBAAsB,GAC3B,EAAKkc,kBAAoB,GAJX,SAKR,EAAKtE,UAAU5uB,SAASyuB,iBALhB,uBAMR,EAAKuB,sBANG,wBAOR,EAAK4C,UAAU5yB,SAASyuB,iBAPhB,yBAQR,EAAKiF,sBARG,8CAWZzD,aAAa5jB,GAAK,IAAD,2IACZ,IAAI4L,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,0BAA4B8K,EAAI,CACnD1I,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACTD,EAAIN,KAAKiG,KAAO3F,EAAIN,KAAKiG,KAAK,GAC9B,EAAKuF,SAAW,CACZxG,GAAI1E,EAAIN,KAAKiG,KAAKjB,GAClBknB,OAAQ5rB,EAAIN,KAAKiG,KAAKimB,OACtBC,QAAS7rB,EAAIN,KAAKiG,KAAKkmB,QACvBgI,QAAS7zB,EAAIN,KAAKiG,KAAKkuB,QACvB/H,WAAY9rB,EAAIN,KAAKiG,KAAKmmB,WAC1B5b,aAAclQ,EAAIN,KAAKiG,KAAKuK,aAC5BC,MAAOnQ,EAAIN,KAAKiG,KAAKwK,MACrB4b,MAAO/rB,EAAIN,KAAKiG,KAAKomB,MACrB9iB,IAAKjJ,EAAIN,KAAKiG,KAAKsD,IACnBC,OAAQlJ,EAAIN,KAAKiG,KAAKuD,OACtBqK,SAAUvT,EAAIN,KAAKiG,KAAK4N,SACxBC,UAAWxT,EAAIN,KAAKiG,KAAK6N,UACzBH,IAAKrT,EAAIN,KAAKiG,KAAK0N,IACnBC,IAAKtT,EAAIN,KAAKiG,KAAK2N,IACnB0Y,MAAOhsB,EAAIN,KAAKiG,KAAKymB,KACrBA,KAAMpsB,EAAIN,KAAKiG,KAAKymB,KACpBC,eAAgBrsB,EAAIN,KAAKiG,KAAK0mB,gBAElC,EAAKsH,eAAez3B,WAAW+K,OAAO,QAAS,EAAKiE,SAAS2oB,SAC7Dzf,EAAQ,6CAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAM,KACLkU,EAAO,+EAnCI,6CAwCjBiY,6BAA6BC,GAAc,IAAD,2IACrC,IAAIpY,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,0CAA4C8uB,EAAa,CAC5E1sB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACJ,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAIsqB,EAAY,GAChBvqB,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzBwhB,EAAU3uB,KAAKoe,EAAKwS,YAExB,EAAK1B,UAAU5uB,SAASuuB,WAAWF,GACnCnW,EAAQ,wCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAM,KACLkU,EAAO,uEAnB6B,6CAwB1Cwb,mCAAmCtD,GAAc,IAAD,2IAC3C,IAAIpY,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,gDAAkD8uB,EAAa,CAClF1sB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACF,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAIsqB,EAAY,GAChBvqB,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzBwhB,EAAU3uB,KAAKoe,EAAK8V,MAAMprB,MAE9B,EAAKoqB,UAAU5yB,SAASuuB,WAAWF,GACnC,EAAKuE,UAAU5yB,SAAS4M,UACxBsL,EAAQ,iCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,gBAErBC,MAAM,KACLkU,EAAO,kEAtB+B,6CA2BhDuV,aAAa7iB,GAAI,IAAD,2HAEJ,QADRlB,EAAQ,EAAKA,aACa5L,IAAV4L,EAFJ,uBAGdqG,YAAM,6BAAsB,cAHd,+BAOc,kBAAxBtS,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,KAP1C,iBAQVuE,YAAM,uDARI,yCAWJ,EAAK+f,YAXD,eAYV,EAAK/gB,SAAW,GAZN,UAaJ,EAAKihB,aAAatmB,EAAMnB,IAAIvE,MAAMC,IACpCY,YAAOZ,EAAK,QAAS,OAdf,yBAiBJ,EAAKsrB,cAAc9pB,OAAO6qB,KAA1B,sBAA+B,sBAAA9sB,EAAA,sEAC3B,EAAKkwB,mCAAmChqB,EAAMnB,IAAI3E,KAAK,QAE1DI,MAAMiH,IACLpG,YAAOoG,EAAO,QAAS,OAJM,4CAjB3B,yBAwBJ,EAAKklB,6BAA6BzmB,EAAMnB,IAAI3E,KAAK,QACpDI,MAAMiH,IACLpG,YAAOoG,EAAO,QAAS,OA1BjB,yBA8BJ,EAAK6iB,UA9BD,8CAoChByC,IAAI7mB,GAAQ,IAAD,kHACb7K,IAAQ4E,KAAKnC,EAAW,0BAA4BoI,EAAMnB,GACtD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QAETjF,IAAQ4E,KAAKnC,EAAW,0BAA4BoI,EAAMnB,GACtD,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD,EAAK6gB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,wBAIT7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAMnDc,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAhCtC,6CAqCXysB,SAAS9mB,GAAQ,IAAD,kHAClB7K,IAAQ4E,KAAKnC,EAAW,sBAAwBoI,EAAMnB,GAAI,KACtD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4hB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,uBAET7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAhBjC,6CAqBhB0sB,SAAS/mB,GAAQ,IAAD,kHAClB7K,IAAQ4E,KAAKnC,EAAW,sBAAwBoI,EAAMnB,GAClD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4hB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,uBAET7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAjBjC,6CAsBtBqrB,WAAWxkB,GACHA,EAAEpG,MAAMiF,OAAS,IACjBxM,KAAK8R,SAAS8gB,MAAQjlB,EAAEpG,MAAM,GAAGyb,KACjCpb,YAAO,sBAAoB,UAAW,MAI9C2M,mBAAmB5G,GAAI,IAAD,OAClBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,4BAAmBF,KAAM,SAChDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,2DACc,OAAf,EAAKkG,WAAgC5L,IAAf,EAAK4L,OAD1B,gBAEDqG,YAAM,6BAAsB,cAF3B,6BAKD,EAAKjH,gBAAgBkD,OAAO,CAAC,KAAM,KAAMvO,EAAQoB,QAAQuJ,UALxD,SAMK,EAAKU,gBAAgBrD,OAN1B,OAOD,EAAKiF,SAAS,CACV+nB,uBAAuB,IAR1B,2CAAF,kDAAC,KAchB,CACIt0B,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,OAAQF,KAAM,MACrCI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,2DACuB,eAAxB/F,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,KADnD,gBAEDuE,YAAM,uDAFL,uCAMK,EAAKyf,OANV,uBAOK,EAAKM,YAPV,wBAQK,EAAKhC,UARV,4CAAF,kDAAC,KAahB,CACI3vB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,aAAWF,KAAM,OACxCI,QAAShN,KAAKwwB,eAGtB,CACItvB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,QACnCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKszB,IAAI7mB,UAXrBqG,YAAM,6BAAsB,iBAmB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKwzB,SAAS/mB,UAX1BqG,YAAM,6BAAsB,iBAmB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1CI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKuzB,SAAS9mB,UAX1BqG,YAAM,6BAAsB,iBAmB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAAS4M,aAInC,CACIxO,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrCE,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CozB,8BACI51B,KAAK+1B,gBAAkB/1B,KAAK01B,UAAU5yB,SAAS4R,sBAGnD8lB,4BAA4B7sB,GACxB3N,KAAKu6B,eAAiB5sB,EAAEC,UAK5BmkB,sBAAsBpkB,GAClB3N,KAAKyoB,SAAW9a,EAAEC,UAGtBokB,uBAAuBrkB,GACnB3N,KAAK0xB,UAAY/jB,EAAEC,UAGvBioB,uBAAuBloB,GACnB3N,KAAK01B,UAAY/nB,EAAEC,UAGvBqkB,0BAA0BtkB,GACtB3N,KAAK4xB,aAAejkB,EAAEC,UAG1BskB,2BAA2BvkB,GACvB3N,KAAK2xB,cAAgBhkB,EAAEC,UAG3BikB,2BAA2BjT,GACvB5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDiT,8BACI9xB,KAAK4Z,gBAAkB5Z,KAAK0xB,UAAU5uB,SAAS4R,sBAG7C+e,qBAAsB,IAAD,kHACQ,OAA3B,EAAKhL,SAAS3lB,WACd,EAAK2lB,SAAS3lB,SAASyuB,iBACvB,EAAK9I,SAAS3lB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAOrBilB,sBAAuB,IAAD,kHACQ,OAA5B,EAAKpB,UAAU5uB,WACf,EAAK4uB,UAAU5uB,SAASyuB,iBACxB,EAAKG,UAAU5uB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAOtB2oB,sBAAuB,IAAD,kHACQ,OAA5B,EAAKd,UAAU5yB,WACf,EAAK4yB,UAAU5yB,SAASyuB,iBACxB,EAAKmE,UAAU5yB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAO5B9K,SAAU,IAAD,OAEL,OACI,gBAAC,WAAD,KACI,uBAAKkN,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,0BAAK,yDACL,gBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKqyB,oBACjBlK,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBrY,QAAQ,KACRuY,OAAQ,CACJhH,SAAS,GAEbkH,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAoBvU,KAAKuU,mBACzBnE,cAAepQ,KAAK+xB,sBACpB9V,mBAAoBjc,KAAK6xB,2BACzBjuB,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAG9B,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,gBAAD,CAAezT,SAAS,IACxB,gBAAC,UAAD,CAASJ,KAAM,UACf,gBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,gBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,gBAAC,eAAD,CAAc5T,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,KACzB,gBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,YACvD,gBAAC,SAAD,CAAQnD,UAAW,MAAOiD,QAAQ,QAClC,gBAAC,SAAD,CAAQjD,UAAW,eAAgBiD,QAAQ,gBAC3C,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,UACpC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,aAClC,gBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,gBACrC,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,eACpC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,MAAM9G,SAAS,IACjD,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,MAAM9G,SAAS,IACjD,gBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,YAAYE,SAAS,YAC5D,gBAAC,SAAD,CAAQnD,UAAW,YAAaiD,QAAQ,aAAaE,SAAS,gBAO9E,gBAAC,QAAD,CAAOzE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACrFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtFrG,MAAM,yCAA0BxH,MAAO,OAAQoN,OAAQ,OACvDmc,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IACe3N,KAAK2xB,cAAc7uB,SAASgc,WAC/BC,UAIc,OAA1B/e,KAAK8R,SAAS2oB,aAA6C55B,IAA1Bb,KAAK8R,SAAS2oB,UAC/Cz6B,KAAK8R,SAAS2oB,QAAU,GAE5Bz6B,KAAKg2B,kBAAoB,GACzBh2B,KAAK8Z,oBAAsB,GAC3B9Z,KAAK4Z,gBAAgBvS,QAAQ,CAACuZ,EAAMjR,KAChC3P,KAAK8Z,oBAAoBtX,KACrB,CACIkxB,MAAO,CAAEpoB,GAAIsV,EAAKtV,IAClBD,UAAW,CAAEC,GAAI,YAKDzK,IAAxBb,KAAK8R,SAAS8gB,QACd5yB,KAAK8R,SAASkhB,KAAOhzB,KAAK8R,SAAS8gB,OAGvC5yB,KAAKg2B,kBAAoB,GACzBh2B,KAAK+1B,gBAAgB1uB,QAAQ,CAACuZ,EAAMjR,KAChC3P,KAAKg2B,kBAAkBxzB,KAAK,CACxBk0B,MAAO,CAAEprB,GAAIsV,EAAKtV,QAI1BtL,KAAK2zB,eAAiB,CAClBtoB,UAAWrL,KAAK8R,SAChBgI,oBAAqB9Z,KAAK8Z,oBAC1Bkc,kBAAmBh2B,KAAKg2B,mBAG5Bp0B,IAAQ4E,KAAKnC,EAAW,mCACpBrE,KAAK2zB,eACL,CACIltB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QAET7G,KAAKyoB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC3G,KAAKyN,SAAS,CACVnD,OAAO,OAKftK,KAAK2zB,eAAiB,CAClBtoB,UAAWrL,KAAK8R,SAChBgI,oBAAqB9Z,KAAK8Z,oBAC1Bkc,kBAAmBh2B,KAAKg2B,mBAE5BpuB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAG5CC,MAAMC,IACL,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAEN1L,YAAOZ,EAAK,QAAS,WAOjD,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,gBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAKkyB,2BAA4BtuB,IAAMA,GAAQ5D,KAAK2xB,cAAgB/tB,GAC9G,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,iCACnD,gBAAC,aAAD,CAAYjD,UAAW,QAASyc,YAAY,GACxC,gBAAC,QAAD,CAAOngB,KAAK,WAEhB,gBAAC,aAAD,CAAY0D,UAAW,eAAgByc,YAAY,GAC/C,gBAAC,QAAD,CAAOngB,KAAK,iBAEhB,gBAAC,aAAD,CAAY0D,UAAW,QAASyc,YAAY,EAAMxc,WAAW,aACzD,gBAAC,QAAD,CAAO3D,KAAK,gBAEhB,gBAAC,aAAD,CAAY0D,UAAW,MAAOyc,YAAY,GACtC,gBAAC,QAAD,CAAOngB,KAAK,cAEhB,gBAAC,aAAD,CAAY0D,UAAW,SAAUyc,YAAY,GACzC,gBAAC,QAAD,CAAOngB,KAAK,iBAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnB,gBAAC,QAAD,CAAO1D,KAAK,aAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnB,gBAAC,QAAD,CAAO1D,KAAK,SAEhB,gBAAC,aAAD,CAAY0D,UAAW,WAAYC,WAAW,cAC1C,gBAAC,QAAD,CAAO3D,KAAK,eAEhB,gBAAC,aAAD,CAAY0D,UAAW,YAAaC,WAAW,cAC3C,gBAAC,QAAD,CAAO3D,KAAK,iBAGpB,gBAAC,YAAD,CAAWwD,SAAS,aAAaC,SAAU,GACvC,gBAAC,aAAD,CAAYC,UAAW,SAAUyc,YAAY,EACzCxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKsyB,cACjBnK,kBAAkB,EAClB3kB,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAKiyB,0BACpBruB,IAAMA,IAAU5D,KAAK4xB,aAAehuB,GACpC0X,eAAiB3N,IAGD,iBADF3N,KAAK4xB,aAAa9uB,WAAW+K,OAAO,SAE1C7N,KAAKu6B,eAAez3B,WAAW+K,OAAO,QAAS7N,KAAK8R,SAAS2oB,SAC7Dz6B,KAAKyN,SAAS,CACV6sB,iBAAiB,MAIrBt6B,KAAKu6B,eAAez3B,WAAW+K,OAAO,QAAS,MAC/C7N,KAAKyN,SAAS,CACV6sB,iBAAiB,QAKjC,gBAAC,QAAD,CAAO9rB,KAAK,SAEhB,gBAAC,aAAD,CACI2D,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKw5B,gBACjBrR,kBAAkB,EAClB3kB,eAAe,EACfgP,UAAWxS,KAAK+J,MAAMuwB,gBACtBr3B,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAKw6B,4BACpB52B,IAAMA,IAAU5D,KAAKu6B,eAAiB32B,GACtC0X,eAAiB3N,IACb3N,KAAK8R,SAAS2oB,QAAU9sB,EAAEpG,SAGlC,gBAAC,QAAD,CAAOiH,KAAK,gBAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWvvB,EAAW,uBACtBwvB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpBuc,KAAM,SACN1H,eAAgBtb,KAAKmyB,aAEzB,gBAAC,QAAD,CAAO3jB,KAAK,qBAEhB,gBAAC,aAAD,CAAY0D,UAAW,iBAAkBC,WAAW,cAChD,gBAAC,QAAD,CAAO3D,KAAK,2BAIpB,gBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,YACnD,gBAAC,aAAD,KACI,kDACA,gBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK8hB,gBACjBqG,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB5L,cAAepQ,KAAKgyB,uBACpB/V,mBAAoBjc,KAAK8xB,4BACzBnuB,QAAQ,KACRC,IAAMA,GAAQ5D,KAAK0xB,UAAY9tB,GAG/B,gBAAC,SAAD,CAAQ4Y,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,YAAD,CAAWJ,KAAK,WACZ2H,cAAc,WACd1H,mBAAmB,YACvB,gBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,iBAG1C,gBAAC,aAAD,KACI,6CACA,gBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKs1B,gBACjBnN,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBC,mBAAoBjc,KAAK41B,4BACzBxlB,cAAepQ,KAAK61B,uBACpBlyB,QAAQ,KACRC,IAAMA,GAAQ5D,KAAK01B,UAAY9xB,GAG/B,gBAAC,SAAD,CAAQ4Y,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,YAAD,CAAWJ,KAAK,WACZ2H,cAAc,WACd1H,mBAAmB,YACvB,gBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,YACpC,gBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,iBACtC,gBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,QAAQE,SAAS,mBAYxF,gBAAC,QAAD,CAAOzE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAMyrB,sBACpB1qB,MAAO,+CACPsB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,4BACNtK,KAAM,UACN4I,KAAM,4BACNF,KAAM,QACN8F,iBAAiB,EACjB1F,QAAQ,WAAD,4BAAE,WAAOW,GAAP,eAAApH,EAAA,sDACDm0B,EAAgB,GACpB,EAAKjS,SAAS3lB,SAAS63B,qBAAqBtzB,QAASsN,IACjD+lB,EAAcl4B,KAAK,CACf4I,YAAa6X,SAAStO,OAG9B1I,QAAQC,IAAIwuB,GACZ,EAAKxE,uBAAuBC,aAAeuE,EAC9BxnB,YAAQ,uDAAyC,yDACvDvM,KAAMwM,KACY,IAAjBA,IACA,EAAK1F,SAAS,CACViF,iBAAiB,IAErB9Q,IAAQ4E,KAAKnC,EAAW,oCAAqC,EAAK6xB,uBAAwB,CACtFzvB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAK4G,SAAS,CAChBiF,iBAAiB,IAHvB,uBAKQ,EAAK4jB,2BALb,OAMExjB,YAAMlM,EAAIN,KAAKiG,KAAM,UAAW,KANlC,uBAQE,EAAKkB,SAAS,CACViF,iBAAiB,IAErB9K,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KAXrF,4CALV,uDAmBKC,MAAMC,IAIH,GAHA,EAAKyG,SAAS,CACViF,iBAAiB,IAEjB1L,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,aAlD1B,2CAAF,mDAAC,KA6DhB,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAK+vB,2BADJ,2CAAF,kDAAC,OAQ1B,gBAAC,WAAD,CAAUllB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAMgC,SAAU,EAAGH,SAAU9R,KAAKk2B,uBAAwB9lB,cAAgBzC,IACtE3N,KAAKy1B,mBAAqB9nB,EAAEC,WAC7BhK,IAAMA,GAAQ5D,KAAKy1B,mBAAqB7xB,GACvC,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAU,UAAUC,WAAW,cAAcC,cAAe,CACpEC,WAAYrS,KAAK6L,gBACjByG,UAAW,KACXrP,YAAa,QAEb,gBAAC,QAAD,CAAOuL,KAAK,wBACZ,gBAAC,eAAD,CAAc+D,QAAQ,sCAG3B,iC,gEC9gCvC,MAAMqoB,WAAsB34B,IAAM0T,UAC9B5V,YAAYU,GACRyB,MAAMzB,GACNwL,QAAQC,IAAIzL,GACZT,KAAK+J,MAAQ,CACTzD,KAAM,MAEVtG,KAAKmsB,UAAY,KACjBnsB,KAAKkqB,UAAYzpB,EAAM6F,KAAKA,KAAKgF,GACjC1J,IAAQ6F,IAAI9C,EAAe,wCAA0C3E,KAAKkqB,UAAW,CACjFzjB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACFqF,QAAQC,IAAItF,EAAIN,MAChBtG,KAAKyN,SAAS,CACVnH,KAAMM,EAAIN,KAAKiG,SAG3BvM,KAAK6qB,gBAAkB,IAAIziB,IAAW,CAClCuD,SAAU,MACV1F,IAAK,YACLoC,MAAOuD,sBAAY,CACf3F,IAAK,YACLic,WAAY,CACRgI,UAAWlqB,KAAKkqB,WAEpBliB,QAASxD,EAAW,iDACpBsE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE3D,SACI,OAAwB,OAApB/C,KAAK+J,MAAMzD,KACH,kBAAC,IAAMsR,SAAP,+CAMJ,kBAAC,IAAMA,SAAP,KACI,kBAAC,IAAD,CAAM3F,SAAU,EAAGH,SAAU9R,KAAK+J,MAAMzD,MACpC,kBAAC,aAAD,KACI,kBAAC,kBAAD,CAAiBslB,gBAAgB,IACjC,kBAAC,MAAD,CAAK9gB,MAAM,6BACP,kBAAC,YAAD,CAAWkH,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,CAAYC,UAAW,MAAOC,WAAY,YAAaC,cAAe,CAClEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,cAEhB,kBAAC,aAAD,CAAY0D,UAAW,SAAUC,WAAY,YAAaC,cAAe,CACrEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,iBAEhB,kBAAC,aAAD,CAAY0D,UAAW,OAAQC,WAAY,YAAaC,cAAe,CACnEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,aAEhB,kBAAC,aAAD,CAAY0D,UAAW,cAAeC,WAAY,YAAaC,cAAe,CAC1EI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,kBAEhB,kBAAC,aAAD,CAAY0D,UAAW,eAAgBC,WAAY,YAAaC,cAAe,CAC3EI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,gBAEhB,kBAAC,aAAD,CAAY0D,UAAW,YAAaC,WAAY,YAAaC,cAAe,CACxEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,WAEhB,kBAAC,aAAD,CAAY0D,UAAW,aAAcC,WAAY,YAAaC,cAAe,CACzEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,iBAEhB,kBAAC,aAAD,CAAY0D,UAAW,aAAcC,WAAY,YAAaC,cAAe,CACzEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,iBAEhB,kBAAC,aAAD,CAAY0D,UAAW,cAAeC,WAAY,YAAaC,cAAe,CAC1EI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,uBAEhB,kBAAC,aAAD,KACI,yBAAKsJ,IAAK9X,KAAK+J,MAAMzD,KAAKu0B,SAAU9iB,IAAK/X,KAAK+J,MAAMzD,KAAKuJ,IAAKK,MAAO,CAAE5M,MAAO,OAAQoN,OAAQ,aAI1G,kBAAC,MAAD,CAAK5F,MAAM,+BACP,kBAAC,YAAD,CAAWkH,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,CAAYC,UAAW,cAAeC,WAAY,YAAaC,cAAe,CAC1EI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,mBAEhB,kBAAC,aAAD,CAAY0D,UAAW,cAAeC,WAAY,YAAaC,cAAe,CAC1EI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,mBAEhB,kBAAC,aAAD,CAAY0D,UAAW,cAAeC,WAAY,YAAaC,cAAe,CAC1EI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,mBAEhB,kBAAC,aAAD,CAAY0D,UAAW,WAAYC,WAAY,YAAaC,cAAe,CACvEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,kBAEhB,kBAAC,aAAD,CAAY0D,UAAW,kBAAmBC,WAAY,YAAaC,cAAe,CAC9EI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,uBAEhB,kBAAC,aAAD,CAAY0D,UAAW,mBAAoBC,WAAY,YAAaC,cAAe,CAC/EI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,yBAEhB,kBAAC,aAAD,CAAY0D,UAAW,YAAaC,WAAY,YAAaC,cAAe,CACxEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,qBAEhB,kBAAC,aAAD,CAAY0D,UAAW,eAAgBC,WAAY,YAAaC,cAAe,CAC3EI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,6BAEhB,kBAAC,aAAD,CAAY0D,UAAW,aAAcC,WAAY,YAAaC,cAAe,CACzEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,mBAIxB,kBAAC,MAAD,CAAK1D,MAAM,wBACP,kBAAC,YAAD,CAAWkH,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,CAAYC,UAAW,WAAYC,WAAY,YAAaC,cAAe,CACvEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,WAEhB,kBAAC,aAAD,CAAY0D,UAAW,YAAaC,WAAY,YAAaC,cAAe,CACxEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,iBAEhB,kBAAC,aAAD,CAAY0D,UAAW,aAAcC,WAAY,YAAaC,cAAe,CACzEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,aAEhB,kBAAC,aAAD,CAAY0D,UAAW,cAAeC,WAAY,YAAaC,cAAe,CAC1EI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,uBAEhB,kBAAC,aAAD,CAAY0D,UAAW,cAAeC,WAAY,YAAaC,cAAe,CAC1EI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,4BAEhB,kBAAC,aAAD,CAAY0D,UAAW,aAAcC,WAAY,YAAaC,cAAe,CACzEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,8BAIxB,kBAAC,MAAD,CAAK1D,MAAM,qBAAkBuD,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,KAClD,kBAAC,YAAD,CAAWyD,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,CAAYC,UAAW,gBAAiBC,WAAY,cAAeC,cAAe,CAC9E6N,OAAQ,WACRzN,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,yBAEhB,kBAAC,aAAD,CAAY0D,UAAW,UAAWC,WAAY,cAAeC,cAAe,CACxE6N,OAAQ,WACRzN,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,kBAEhB,kBAAC,aAAD,CAAY0D,UAAW,qBAAsBC,WAAY,cAAeC,cAAe,CACnF6N,OAAQ,WACRzN,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,+BAEhB,kBAAC,aAAD,CAAY0D,UAAW,sBAAuBC,WAAY,cAAeC,cAAe,CACpF6N,OAAQ,WACRzN,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,8BAEhB,kBAAC,aAAD,CAAY0D,UAAW,aAAcC,WAAY,cAAeC,cAAe,CAC3E6N,OAAQ,WACRzN,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,iBAEhB,kBAAC,aAAD,CAAY0D,UAAW,YAAaC,WAAY,YAAaC,cAAe,CACxEI,UAAU,IAEV,kBAAC,QAAD,CAAOhE,KAAK,qBAIxB,kBAAC,MAAD,CAAK1D,MAAM,iBACP,kBAAC,IAAD,CACIsJ,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK6qB,gBACjBvW,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,YACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,WAAYF,KAAM,YACzC4B,KAAM,WACNxB,QAAS,KACL,MAAMP,EAAQzM,KAAK6rB,WACL,OAAVpf,QAA4B5L,IAAV4L,EAMlB7K,IAAQ4E,KAAKhC,EAAW,mCACpB,CACIwV,UAAWvN,EAAMuN,UACjBvL,QAAShC,EAAMgC,QACfrD,YAAaqB,EAAMrB,YACnB0gB,UAAWrf,EAAMqf,UACjBC,UAAWtf,EAAMsf,UACjBC,YAAavf,EAAMuf,YACnBC,eAAgBxf,EAAMnB,GACtB4gB,kBAAmBzf,EAAMyf,mBAE7B,CACIzlB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKmsB,UAAUrpB,SAAS4M,UAGxB9H,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAMiH,IACLpG,YAAO,oEAA6D,QAAS,OA7BrFkL,MAAM,6BAAsB,iBAmC5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvC4B,KAAM,SACNxB,QAAUW,IAEN3N,KAAKmsB,UAAUrpB,SAAS4M,eAK5CuM,mBAAqB2C,IACjB5e,KAAK6rB,WAAajN,EAAcC,iBAAiB,IAErDjb,IAAMA,GAAQ5D,KAAKmsB,UAAYvoB,GAE/B,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,YAAaiD,QAAQ,gBAAW9G,SAAS,IAC5D,kBAAC,SAAD,CAAQ6D,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAU,WAAWiD,QAAQ,GACjC7R,MAAO,GACP8oB,cAAc,EACdC,WAAYC,KAEhB,kBAAC,SAAD,CAAQpa,UAAW,cAAeiD,QAAQ,cAAc9G,SAAS,IACjE,kBAAC,SAAD,CAAQ6D,UAAW,eAAgBiD,QAAQ,eAAe9G,SAAS,IACnE,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,UAAU9G,SAAS,IACzD,kBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,eACvC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,0BACxC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,oBACxC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,wBACvC,kBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,YACpC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,iBACtC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,UACvC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,OAAO4K,OAC1D,wBAEJ,kBAAC,SAAD,CAAQ/N,UAAW,YAAaiD,QAAQ,YAAY9G,SAAS,IAC7D,kBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,QAAQ9G,SAAS,UAU1EusB,UACf,SAAStO,GAAWhmB,GAChB,OAAa,OAATA,QAEyBzF,IAApByF,EAAKA,KAAKua,OAA2C,OAApBva,EAAKA,KAAKua,OAAsC,KAApBva,EAAKA,KAAKua,MADrE,4BAKA,uBAAGhJ,IAAI,sBAAsB1W,KAAMmF,EAAKA,KAAKua,MAAOrJ,OAAO,UAC9D,yBAAKM,IAAI,sBAAsBC,IAAI,kCClVF,MAAM+iB,WAAqB74B,YACpElC,YAAYU,GACRyB,MAAMzB,GAENT,KAAK+J,MAAQ,CACTgxB,mBAAmB,EACnBC,wBAAwB,EACxBC,iBAAiB,EACjBC,gBAAgB,EAChBC,qBAAqB,EACrBC,yBAAyB,EACzBC,kBAAkB,EAClBC,gCAAgC,EAChCC,4BAA4B,EAC5BC,cAAe,GACfnS,UAAW,EACX3W,iBAAiB,EACjB+oB,qBAAqB,EACrBC,0BAA0B,EAC1BC,iBAAiB,EACjBC,iBAAiB,EACjBC,eAAe,EACfC,sBAAsB,EACtBC,yBAAyB,EACzBC,uBAAwB,IAE5Bh8B,KAAKi8B,aAAe,KACpBj8B,KAAKk8B,mBAAqB,KAC1Bl8B,KAAKm8B,sBAAwB,KAC7Bn8B,KAAK+T,oCAAsC,KAC3C/T,KAAKo8B,aAAe,KACpBp8B,KAAKq8B,mBAAqB,KAC1Br8B,KAAKs8B,qBAAuB,KAC5Bt8B,KAAKu8B,mBAAqB,KAC1Bv8B,KAAKuhB,eAAiB,KACtBvhB,KAAKwhB,mBAAqB,KAC1BxhB,KAAKitB,sBAAwB,KAC7BjtB,KAAKw8B,+BAAiC,KACtCx8B,KAAKyoB,SAAW,KAChBzoB,KAAKy8B,WAAa,KAClBz8B,KAAK08B,sBAAwB,KAC7B18B,KAAK4qB,gBAAkB,KACvB5qB,KAAKkvB,wBAA0B,KAC/BlvB,KAAKivB,wBAA0B,KAC/BjvB,KAAK28B,SAAW,KAChB38B,KAAK48B,eAAiB,KACtB58B,KAAK68B,gBAAkB,KACvB78B,KAAK88B,oBAAsB,KAC3B98B,KAAK+8B,YAAc,KACnB/8B,KAAKg9B,iBAAmB,KACxBh9B,KAAKi9B,qBAAuB,KAC5Bj9B,KAAK6T,cAAgB,KACrB7T,KAAKk9B,4BAA8B,KACnCl9B,KAAKm9B,iBAAmB,KACxBn9B,KAAKo9B,aAAe,KAEpBp9B,KAAKq9B,qBAAuB,KAC5Br9B,KAAKs9B,aAAe,KACpBt9B,KAAKu9B,WAAa,KAClBv9B,KAAK42B,WAAa,KAClB52B,KAAKyM,MAAQ,KACbzM,KAAKw9B,YAAc,KACnBx9B,KAAKy9B,kBAAoB,GACzBz9B,KAAK09B,iBAAmB,KACxB19B,KAAK29B,oBAAsB,KAC3B39B,KAAK49B,kBAAoB,KACzB59B,KAAK69B,uBAAyB,KAC9B79B,KAAK89B,gBAAkB,KACvB99B,KAAK+9B,qBAAuB,KAC5B/9B,KAAKg+B,kBAAoB,KACzBh+B,KAAKi+B,oBAAsB,KAC3Bj+B,KAAKk+B,wBAA0B,KAC/Bl+B,KAAKm+B,yBAA2B,KAChCn+B,KAAKo+B,uBAAyB,KAC9Bp+B,KAAKq+B,wBAA0B,KAC/Br+B,KAAKs+B,yBAA2B,KAChCt+B,KAAKu+B,uBAAyB,KAC9Bv+B,KAAKw+B,sBAAwB,KAC7Bx+B,KAAKy+B,kBAAoB,KACzBz+B,KAAK0+B,uBAAyB,KAC9B1+B,KAAK2+B,sBAAwB,KAC7B3+B,KAAK4+B,0BAA4B,KACjC5+B,KAAK6+B,oBAAsB,KAC3B7+B,KAAK8+B,gCAAkC,KACvC9+B,KAAK++B,gBAAkB,KACvB/+B,KAAKg/B,aAAe,KACpBh/B,KAAKi/B,mBAAqB,KAC1Bj/B,KAAKk/B,mBAAqB,KAC1Bl/B,KAAKm/B,cAAgB,KACrBn/B,KAAKo/B,0BAA4B,KACjCp/B,KAAKq/B,0BAA4B,KACjCr/B,KAAKs/B,iBAAmB,KACxBt/B,KAAKu/B,2BAA6B,KAClCv/B,KAAKw/B,aAAe,KACpBx/B,KAAKy/B,+BAAiC,KACtCz/B,KAAKu/B,2BAA6B,KAClCv/B,KAAK0/B,oBAAsB,KAC3B1/B,KAAK2/B,yBAA2B,KAChC3/B,KAAK4/B,wBAA0B,KAC/B5/B,KAAK6/B,6BAA+B,KACpC7/B,KAAK8/B,mCAAqC,KAC1C9/B,KAAK+/B,kBAAoB//B,KAAK+/B,kBAAkBn2B,KAAK5J,MACrDA,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKggC,6BAA+BhgC,KAAKggC,6BAA6Bp2B,KAAK5J,MAC3EA,KAAKigC,kCAAoCjgC,KAAKigC,kCAAkCr2B,KAAK5J,MACrFA,KAAKoQ,cAAgBpQ,KAAKoQ,cAAcxG,KAAK5J,MAC7CA,KAAKkgC,wBAA0BlgC,KAAKkgC,wBAAwBt2B,KAAK5J,MACjEA,KAAKoqB,6BAA+BpqB,KAAKoqB,6BAA6BxgB,KAAK5J,MAC3EA,KAAKmgC,6BAA+BngC,KAAKmgC,6BAA6Bv2B,KAAK5J,MAC3EA,KAAKogC,kCAAoCpgC,KAAKogC,kCAAkCx2B,KAAK5J,MACrFA,KAAKqgC,6BAA+BrgC,KAAKqgC,6BAA6Bz2B,KAAK5J,MAC3EA,KAAKsgC,kCAAoCtgC,KAAKsgC,kCAAkC12B,KAAK5J,MACrFA,KAAKugC,4BAA8BvgC,KAAKugC,4BAA4B32B,KAAK5J,MACzEA,KAAKwgC,iCAAmCxgC,KAAKwgC,iCAAiC52B,KAAK5J,MACnFA,KAAKygC,0BAA4BzgC,KAAKygC,0BAA0B72B,KAAK5J,MACrEA,KAAK0gC,wBAA0B1gC,KAAK0gC,wBAAwB92B,KAAK5J,MACjEA,KAAK2gC,yBAA2B3gC,KAAK2gC,yBAAyB/2B,KAAK5J,MACnEA,KAAK4gC,+BAAiC5gC,KAAK4gC,+BAA+Bh3B,KAAK5J,MAC/EA,KAAK6gC,gCAAkC7gC,KAAK6gC,gCAAgCj3B,KAAK5J,MACjFA,KAAK8gC,kCAAoC9gC,KAAK8gC,kCAAkCl3B,KAAK5J,MACrFA,KAAK+gC,6BAA+B/gC,KAAK+gC,6BAA6Bn3B,KAAK5J,MAC3EA,KAAKghC,+BAAiChhC,KAAKghC,+BAA+Bp3B,KAAK5J,MAC/EA,KAAKihC,sBAAwBjhC,KAAKihC,sBAAsBr3B,KAAK5J,MAC7DA,KAAKkhC,8BAAgClhC,KAAKkhC,8BAA8Bt3B,KAAK5J,MAC7EA,KAAKmhC,kCAAoCnhC,KAAKmhC,kCAAkCv3B,KAAK5J,MACrFA,KAAK4T,2BAA6B5T,KAAK4T,2BAA2BhK,KAAK5J,MACvEA,KAAKohC,8BAAgCphC,KAAKohC,8BAA8Bx3B,KAAK5J,MAC7EA,KAAKqhC,yCAA2CrhC,KAAKqhC,yCAAyCz3B,KAAK5J,MACnGA,KAAKshC,4CAA8CthC,KAAKshC,4CAA4C13B,KAAK5J,MACzGA,KAAKuhC,mCAAqCvhC,KAAKuhC,mCAAmC33B,KAAK5J,MACvFA,KAAKwhC,0BAA4BxhC,KAAKwhC,0BAA0B53B,KAAK5J,MACrEA,KAAK4hB,4BAA8B5hB,KAAK4hB,4BAA4BhY,KAAK5J,MACzEA,KAAK6hB,gCAAkC7hB,KAAK6hB,gCAAgCjY,KAAK5J,MACjFA,KAAKyhC,mCAAqCzhC,KAAKyhC,mCAAmC73B,KAAK5J,MACvFA,KAAK0hC,gCAAkC1hC,KAAK0hC,gCAAgC93B,KAAK5J,MACjFA,KAAK2hC,qCAAuC3hC,KAAK2hC,qCAAqC/3B,KAAK5J,MAC3FA,KAAK4hC,qCAAuC5hC,KAAK4hC,qCAAqCh4B,KAAK5J,MAC3FA,KAAK6hC,iCAAmC7hC,KAAK6hC,iCAAiCj4B,KAAK5J,MACnFA,KAAK8hC,0CAA4C9hC,KAAK8hC,0CAA0Cl4B,KAAK5J,MACrGA,KAAK+hC,gDAAkD/hC,KAAK+hC,gDAAgDn4B,KAAK5J,MACjHA,KAAKgiC,+CAAiDhiC,KAAKgiC,+CAA+Cp4B,KAAK5J,MAC/GA,KAAKiiC,YAAcjiC,KAAKiiC,YAAYr4B,KAAK5J,MAEzCA,KAAKkiC,mBAAqB,KACtBliC,KAAKyN,SAAS,CACVkuB,iBAAiB,KAIzB37B,KAAKmiC,gBAAkB,KACnBniC,KAAKyN,SAAS,CACVkuB,iBAAiB,KAIzB37B,KAAKoiC,mBAAqB,KACtBpiC,KAAKyN,SAAS,CACVmuB,iBAAiB,KAIzB57B,KAAKqiC,gBAAkB,KACnBriC,KAAKyN,SAAS,CACVmuB,iBAAiB,KAIzB57B,KAAKsiC,qBAAuB,KACxBtiC,KAAKyN,SAAS,CACVstB,mBAAmB,KAI3B/6B,KAAKuiC,0BAA4B,KAC7BviC,KAAKyN,SAAS,CACVutB,wBAAwB,KAIhCh7B,KAAKwiC,mBAAqB,KACtBxiC,KAAKyN,SAAS,CACVwtB,iBAAiB,KAIzBj7B,KAAKyiC,iBAAmB,KACpBziC,KAAKyN,SAAS,CACVouB,eAAe,KAIvB77B,KAAK0iC,kBAAoB,KACrB1iC,KAAKyN,SAAS,CACVytB,gBAAgB,KAIxBl7B,KAAK2iC,wBAA0B,KAC3B3iC,KAAKy8B,WAAW35B,SAAS4M,UACzB1P,KAAKyN,SAAS,CACVquB,sBAAsB,KAI9B97B,KAAK4iC,sBAAwB,KACzB5iC,KAAKyN,SAAS,CACVo1B,oBAAoB,KAI5B7iC,KAAK8iC,0BAA4B,KAC7B9iC,KAAKyN,SAAS,CACV2tB,yBAAyB,KAIjCp7B,KAAK+iC,oBAAsB,KACvB/iC,KAAKyN,SAAS,CACV4tB,kBAAkB,KAI1Br7B,KAAKgjC,uBAAyB,KAC1BhjC,KAAKyN,SAAS,CACVguB,qBAAqB,KAI7Bz7B,KAAKijC,4BAA8B,KAC/BjjC,KAAKyN,SAAS,CACViuB,0BAA0B,KAIlC17B,KAAKkjC,kCAAoC,KACrCljC,KAAKyN,SAAS,CACV6tB,gCAAgC,KAIxCt7B,KAAKmjC,2BAA6B,KAC9BnjC,KAAKyN,SAAS,CACVsuB,yBAAyB,KAKjC/7B,KAAKojC,mBAAqB,CACtBC,aAAc,EACdC,OAAQ,CAAEh4B,GAAI,GACdi4B,OAAQ,CAAEj4B,GAAI,GACdk4B,OAAQ,CAAEl4B,GAAI,GACdm4B,QAAS,CAAEn4B,GAAI,GACfo4B,QAAS,CAAEp4B,GAAI,GACfq4B,UAAW,EACXC,QAAS,EACTC,aAAc,EACdC,aAAc,EACdC,gBAAiB,KACjBC,WAAW,EACX7jB,SAAU,GACV8jB,SAAS,EACTpjB,MAAO,MAGX7gB,KAAKkkC,wBAA0B,CAC3B54B,GAAI,EACJ64B,cAAe,EACfP,QAAS,EACTQ,mBAAoB,EACpBC,oBAAqB,EACrBP,aAAc,EACdC,gBAAiB,KACjB5jB,SAAU,GACVwjB,UAAW,GACXW,eAAgB,GAChBC,YAAa,GAGjBvkC,KAAKwkC,iBAAmB,CACpBrkB,SAAU,GACVskB,gBAAiB,KACjBC,SAAU,EACVC,SAAU,EACVrc,eAAgB,IAAIC,KACpBqc,aAAc,EACdvb,UAAW,EACXwb,WAAY,EACZC,QAAS,EACTC,OAAQ,IAGZ/kC,KAAKglC,eAAiB,CAClBN,SAAU,EACVG,WAAY,GAGhB7kC,KAAKilC,gBAAkB,CACnB/kB,MAAO,IAAIqI,KACXpI,SAAU,KACV+kB,cAAc,EACdxB,QAAS,CAAEp4B,GAAI,OAGnBtL,KAAKmlC,qBAAuB,CACxBC,cAAe,KACfC,OAAQ,MAGZrlC,KAAKslC,yBAA2B,CAC5BC,WAAY,MAGhBvlC,KAAKwlC,kBAAoB,CACrB/5B,MAAO,GACPg6B,aAAc,EACdC,kBAAkB,GAGtB1lC,KAAK2lC,gCAAkC,CACnCl6B,MAAO,GACPg6B,aAAc,EACdG,WAAY,GACZF,kBAAkB,GAGtB1lC,KAAK6lC,qBAAuB,CACxBD,WAAY,GACZxP,cAAe51B,EAAQoB,QAAQuJ,QAC/BA,QAAS,KACTkrB,gBAAgB,GAEpBr2B,KAAK8lC,iBAAmB,CACpBF,WAAY,GACZ3Z,eAAgB,KAChBwZ,aAAc,KACdC,kBAAkB,GAEtB1lC,KAAK+lC,aAAel+B,EAChB,KACE,mBACAlD,EAAe,4BACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBACrB3E,KAAKs5B,oBAAsBzxB,EACvB,KACE,qBACAlD,EAAe,sCACfA,EAAe,cACfA,EAAe,cACfA,EAAe,iBACrB3E,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf5D,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAK+hB,YAAc,CAAEC,QAAS,GAC9BhiB,KAAKiiB,oBAAsB,IAAI7Z,IAC3B,CACIC,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAK+hB,YACjB/Z,QAAS3D,EAAW,iCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKgmC,gBAAkB,CACnBhkB,QAAS,EACTgK,YAAa,GAEjBhsB,KAAKguB,uBAAyB,IAAI5lB,IAC9B,CACI2G,OAAQ,CAAC,sBAAuB,KAAK,GACrC5C,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAKgmC,gBACjBh+B,QAAS3D,EAAW,kCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKimC,aAAe,CAChBC,SAAU,GAEdlmC,KAAKmmC,mBAAqB,IAAI/9B,IAC1B,CACI+D,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKimC,aACjBj+B,QAASrD,EAAe,+BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKouB,kBAAoB,CACrBlE,UAAW,GAEflqB,KAAKquB,8BAAgC,IAAIjmB,IACrC,CACI+D,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKouB,kBACjBpmB,QAASrD,EAAe,mCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKsuB,8BAAgC,IAAIlmB,IACrC,CACI+D,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKouB,kBACjBpmB,QAASrD,EAAe,mCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK6L,gBAAkB,IAAIzD,IACvB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAShE,EAAU,uBAI/BhE,KAAKomC,oBAAsB,IAAIh+B,IAAW,CACtCuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,QACLic,WAAY,CACRmkB,SAAU,aAEdr+B,QAASrD,EAAe,kBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM7D1G,KAAKkrB,cAAgB,CAAEhB,UAAW,GAClClqB,KAAKorB,sBAAwB,IAAIhjB,IAC7B,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKkrB,cACjBljB,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKsmC,kBAAoB,CAAEC,KAAM,KACjCvmC,KAAKwmC,uBAAyB,IAAIp+B,IAC9B,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKsmC,kBACjBt+B,QAASrD,EAAe,+BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKy5B,gBAAkB,IAAIrxB,IACvB,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf5D,QAASrD,EAAe,kCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKymC,iBAAmB,CAAEve,aAAc,GAExCloB,KAAK0mC,iBAAmB,IAAIt+B,IACxB,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKymC,iBACjBz+B,QAASrD,EAAe,oCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK2mC,eAAiB,CAAEC,OAAQ,GAAIC,WAAY,IAEhD7mC,KAAK8mC,mBAAqB,IAAI1+B,IAC1B,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAK2mC,eACjB3+B,QAASrD,EAAe,kBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK05B,kBAAoB,IAAItxB,IACzB,CACIG,cAAc,EACdF,MAAOuD,sBAAY,CACf5D,QAASrD,EAAe,oCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAK+mC,qCAAuC,KAC5C/mC,KAAKgnC,2CAA6C,KAClDhnC,KAAKinC,0CAA4C,KAGrDC,aAAaC,GACTl7B,QAAQC,IAAIi7B,GAIZ,OAAMA,EAAS7gC,KAAKu0B,SAGZ,gBAAC,WAAD,KACI,uBAAK/iB,IAAKqvB,EAAS7gC,KAAKu0B,SAAU9iB,IAAKovB,EAAS7gC,KAAKuJ,IAAM,IAAMs3B,EAAS7gC,KAAKwJ,OAAQI,MAAO,CAAE5M,MAAO,QAASoN,OAAQ,YAK5H,gBAAC,WAAD,MAQNqvB,kBAAkBpyB,GAAI,IAAD,kHAEF,YAAjBA,EAAEy5B,YAA4C,SAAhBz5B,EAAEuE,YAChCvE,EAAE05B,WAAa,iBACf15B,EAAEyE,cAAc4Q,KAAO,SACvBrV,EAAEyE,cAAcwhB,UAAYjvB,EAAe,4BAC3CgJ,EAAEyE,cAAc0hB,cAAgB,CAAE,cAAiB,UAAYtzB,EAAQoB,QAAQ8E,OAC/EiH,EAAEyE,cAAc+f,WAAcpP,IAC1B,IAAI4C,EAAStkB,KAAKE,MAAMwhB,EAAK1P,QAAQ3L,UACrC,GAAIie,EAAO9e,QAAS,CAChB,MAAMgwB,EAAWlpB,EAAEgH,IAAIkiB,SACvBlpB,EAAEC,UAAU05B,UAAUzQ,EAAU,WAAYlR,EAAOpZ,MACnD3E,YAAO,kDAA8B,UAAW,UAGhDA,YAAO,qDAAiC,QAAS,OAMxC,YAAjB+F,EAAEy5B,YAA4C,kBAAhBz5B,EAAEuE,WAEL,OADhB,IAAIqW,KAAK5a,EAAEyE,cAAc7K,OAC3BggC,gBACL55B,EAAEyE,cAAc7K,MAAQ,MAGX,YAAjBoG,EAAEy5B,YAA4C,gBAAhBz5B,EAAEuE,WAEL,OADhB,IAAIqW,KAAK5a,EAAEyE,cAAc7K,OAC3BggC,gBACL55B,EAAEyE,cAAc7K,MAAQ,MAIX,YAAjBoG,EAAEy5B,YAA4C,YAAhBz5B,EAAEuE,YAC5BvE,EAAEgH,IAAI6yB,UACN75B,EAAEyE,cAAc7K,MAAQ,EACxBoG,EAAEyE,cAAcq1B,IAAM,GAGtB95B,EAAEyE,cAAcq1B,IAAM,GAGT,YAAjB95B,EAAEy5B,YAA4C,cAAhBz5B,EAAEuE,aAC3BvE,EAAEgH,IAAI6yB,UAAY75B,EAAEyE,cAAc7K,MAAQ,EAC3CoG,EAAEyE,cAAcI,UAAW,EAG3B7E,EAAEyE,cAAc0R,QAAU,CAAC,CACvB5iB,SAAU,QACVwmC,YAAa,CACTv4B,GAAI,oBAER6T,KAAM,eACNrW,QAAS,CACLC,KAAM,OAEN4B,KAAM,yBACNgE,SAAU7E,EAAEyE,cAAc7K,MAAQ,EAClC3D,IAAMA,IAAU,EAAKk6B,gBAAkBl6B,GACvCwM,cAAe,EAAK2wB,6BACpB4G,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC,EAAKhJ,oBAAoB/7B,SAAS+K,OAAO,WAAW,KAExDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC,EAAKhJ,oBAAoB/7B,SAAS+K,OAAO,WAAW,MAG5Db,QAAS,KACLpL,IAAQ6F,IAAI9C,EAAe,2BAA6BgJ,EAAEgH,IAAIrO,KAAKynB,YAAYziB,GAC3E,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACJ,GAAIA,EAAIN,KAAKO,QAAS,CAClB,MAAMgwB,EAAWlpB,EAAEgH,IAAIkiB,SACvBlpB,EAAEC,UAAU05B,UAAUzQ,EAAU,YAAa5T,SAASrc,EAAIN,KAAKiG,OAC3DoB,EAAEyE,cAAc7K,MAAQ,GACxB,EAAKu2B,gBAAgBh7B,WAAW+K,OAAO,YAAY,QAMvDjG,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAG9CC,MAAMC,IACHY,YAAO,8DAA4CZ,EAAK,QAAS,YAQxE,YAAjB2G,EAAEy5B,YAA4C,iBAAhBz5B,EAAEuE,YAC3BnM,EAAQ4H,EAAEgH,IAAIrO,QACfqH,EAAEyE,cAAcI,SAAiD,kBAA9B7E,EAAEgH,IAAIrO,KAAKynB,YAAYziB,GAC1DqC,EAAEyE,cAAcC,WAAWtD,OAAO,CAAC,WAAY,IAAKpB,EAAEgH,IAAIrO,KAAKynB,YAAYziB,KAC3EqC,EAAEyE,cAAcC,WAAW7J,SAtGZ,6CA2G3BirB,qBACmC,OAA3BzzB,KAAKyoB,SAAS3lB,WACd9C,KAAKyoB,SAAS3lB,SAASyuB,iBACvBvxB,KAAKyM,MAAQ,KACbzM,KAAKyoB,SAAS3lB,SAAS+K,OAAO,mBAAoB,IAI1DuC,cAAczC,GACV3N,KAAKyoB,SAAW9a,EAAEC,UAGtBqzB,sBAAsBtzB,GAClB3N,KAAK28B,SAAWhvB,EAAEC,UAGtBwzB,8BAA8BzzB,GAC1B3N,KAAKm9B,iBAAmBxvB,EAAEC,UAG9BmzB,6BAA6BpzB,GACzB3N,KAAK89B,gBAAkBnwB,EAAEC,UAG7BizB,gCAAgClzB,GAC5B3N,KAAKq8B,mBAAqB1uB,EAAEC,UAGhCkzB,kCAAkCnzB,GAC9B3N,KAAKs8B,qBAAuB3uB,EAAEC,UAGlC0zB,4CAA4C3zB,GACxC3N,KAAKw8B,+BAAiC7uB,EAAEC,UAG5CozB,+BAA+BrzB,GAC3B3N,KAAKu8B,mBAAqB5uB,EAAEC,UAGhCsyB,wBAAwBvyB,GACpB3N,KAAKy8B,WAAa9uB,EAAEC,UAGxBwc,6BAA6Bzc,GACzB3N,KAAK4qB,gBAAkBjd,EAAEC,UAE7B2zB,mCAAmC5zB,GAC/B3N,KAAK08B,sBAAwB/uB,EAAEC,UAGnCyyB,6BAA6B1yB,GACzB3N,KAAK68B,gBAAkBlvB,EAAEC,UAG7B0yB,kCAAkC3yB,GAC9B3N,KAAKq9B,qBAAuB1vB,EAAEC,UAGlC2yB,4BAA4B5yB,GACxB3N,KAAK48B,eAAiBjvB,EAAEC,UAG5B4yB,iCAAiC7yB,GAC7B3N,KAAK48B,eAAiBjvB,EAAEC,UAG5B6yB,0BAA0B9yB,GACtB3N,KAAKs9B,aAAe3vB,EAAEC,UAG1B8yB,wBAAwB/yB,GACpB3N,KAAKu9B,WAAa5vB,EAAEC,UAGxB+yB,yBAAyBhzB,GACrB3N,KAAK+8B,YAAcpvB,EAAEC,UAGzBszB,8BAA8BvzB,GAC1B3N,KAAKg9B,iBAAmBrvB,EAAEC,UAG9BuzB,kCAAkCxzB,GAC9B3N,KAAKi9B,qBAAuBtvB,EAAEC,UAGlCgzB,+BAA+BjzB,GAC3B3N,KAAK49B,kBAAoBjwB,EAAEC,UAG/BgG,2BAA2BjG,GACvB3N,KAAK6T,cAAgBlG,EAAEC,UAG3BgU,4BAA4BjU,GACxB3N,KAAKuhB,eAAiB5T,EAAEC,UAG5B6zB,mCAAmC9zB,GAC/B3N,KAAKitB,sBAAwBtf,EAAEC,UAGnCiU,gCAAgClU,GAC5B3N,KAAKwhB,mBAAqB7T,EAAEC,UAGhCyzB,yCAAyC1zB,GACrC3N,KAAKk9B,4BAA8BvvB,EAAEC,UAGzC8zB,gCAAgC/zB,GAC5B3N,KAAKk8B,mBAAqBvuB,EAAEC,UAGhC4zB,0BAA0B7zB,GACtB3N,KAAKo9B,aAAezvB,EAAEC,UAG1B2G,mBAAmB5G,GAAI,IAAD,OAClBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,eAERvC,KAAM,SACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAK4/B,wBAAwB98B,SAAS+K,OAAO,WAAW,KAE5DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAK4/B,wBAAwB98B,SAAS+K,OAAO,WAAW,MAGhEb,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,2DACc,OAAf,EAAKkG,WAAgC5L,IAAf,EAAK4L,OAD1B,gBAEDqG,YAAM,6BAAsB,cAF3B,8BAKD,EAAK6zB,eAAeC,OAAS,EAAKn6B,MAAMq7B,YACxC,EAAKnB,eAAeE,WAAa,EAAKp6B,MAAMs7B,gBAN3C,SAOK,EAAKjB,mBAAmBt+B,OAP7B,wBAQK,EAAKyzB,aAAan5B,SAAS4M,UARhC,QASD,EAAKjC,SAAS,CACVkuB,iBAAiB,IAVpB,4CAAF,kDAAC,KAgBhB,CACIz6B,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,wBAERvC,KAAM,OACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAK2/B,yBAAyB78B,SAAS+K,OAAO,WAAW,KAE7DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAK2/B,yBAAyB78B,SAAS+K,OAAO,WAAW,MAGjEb,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,2DACc,OAAf,EAAKkG,WAAgC5L,IAAf,EAAK4L,OAD1B,gBAEDqG,YAAM,6BAAsB,cAF3B,8BAKD,EAAKwzB,kBAAkBC,KAAO,EAAK95B,MAAMu7B,KALxC,SAMK,EAAKxB,uBAAuBh+B,OANjC,uBAOK,EAAKk0B,sBAAsB55B,SAAS4M,UAPzC,OAQD,EAAKjC,SAAS,CACViuB,0BAA0B,IAT7B,4CAAF,kDAAC,KAehB,CACIx6B,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,mBAERvC,KAAM,iBACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAK0/B,oBAAoB58B,SAAS+K,OAAO,WAAW,KAExDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAK0/B,oBAAoB58B,SAAS+K,OAAO,WAAW,MAG5Db,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,2DACc,OAAf,EAAKkG,WAAgC5L,IAAf,EAAK4L,OAD1B,gBAEDqG,YAAM,6BAAsB,cAF3B,6BAKD,EAAKjH,gBAAgBkD,OAAO,CAAC,KAAM,KAAMvO,EAAQoB,QAAQuJ,UALxD,SAMK,EAAKU,gBAAgBrD,OAN1B,OAOD,EAAKiF,SAAS,CACVguB,qBAAqB,IARxB,2CAAF,kDAAC,KAchB,CACIv6B,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,eAERvC,KAAM,OACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKioC,gBAAgBnlC,SAAS+K,OAAO,WAAW,KAEpDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKioC,gBAAgBnlC,SAAS+K,OAAO,WAAW,MAGxDb,QAAS,KACL,GAAmB,OAAfhN,KAAKyM,WAAgC5L,IAAfb,KAAKyM,MAC3BqG,YAAM,6BAAsB,kBAE3B,CACD,IACInS,aAAaoN,WAAW,UACxBpN,aAAaoN,WAAW,WACxBpN,aAAaoN,WAAW,eAC1B,MAAOC,IAET,MAAM1H,EAAO,CACTwQ,aAAc9W,KAAKyM,MAAMu7B,KACzBjxB,MAAO/W,KAAKyM,MAAMsK,MAClBC,MAAO,CAAE1L,GAAItL,KAAKyM,MAAMuK,MAAM1L,KAElC1J,IAAQ4E,KAAKxC,EAAU,oBACjBsC,GACDK,KAAKC,IACFkH,EAAK1N,MAAM,KAIPwG,EAAIN,KAAKnG,QAAUyG,EAAIN,KAAK+E,UAAUwE,IAAM,IAAMjJ,EAAIN,KAAK+E,UAAUyE,OACrElJ,EAAIN,KAAKjD,KAAOuD,EAAIN,KAAK+E,UAAUoH,iBACnC7L,EAAIN,KAAKiI,IAAM3H,EAAIN,KAAK+E,UAAUkD,IAClC3H,EAAIN,KAAKgF,GAAK1E,EAAIN,KAAK+E,UAAUC,GACjC1E,EAAIN,KAAK6E,QAAUvE,EAAIN,KAAK+E,UAAU2L,MAAM1L,GAC5C1E,EAAIN,KAAKwI,SAAWlI,EAAIN,KAAK+E,UAAUyD,SACvClI,EAAIN,KAAKmI,QAAU7H,EAAIN,KAAK+E,UAAUoD,QACtC9N,aAAaG,QAAQ,SAAUO,KAAKC,UAAUsF,EAAIN,OAGlD9F,EAAQoB,QAXe,GAcK,mBAAxBpB,EAAQoB,QAAQ2M,KAGa,iBAAxB/N,EAAQoB,QAAQ2M,KAGQ,sBAAxB/N,EAAQoB,QAAQ2M,KAGQ,SAAxB/N,EAAQoB,QAAQ2M,KAGQ,gBAAxB/N,EAAQoB,QAAQ2M,IAXrBvO,KAAKS,MAAM8B,QAAQC,KAAK,wBAcK,aAAxBhC,EAAQoB,QAAQ2M,IACrBvO,KAAKS,MAAM8B,QAAQC,KAAK,kBAEK,gBAAxBhC,EAAQoB,QAAQ2M,IACrBtN,OAAOC,SAASC,KAAO,oBAGvBnB,KAAKS,MAAM8B,QAAQC,KAAK,aAKnCuE,MAAOiH,IAEAA,EAAMtG,SACNE,YAAOoG,EAAMtG,SAASpB,KAAKiM,QAAS,QAAS,KACtCvE,EAAMqF,QACbzL,YAAOoG,EAAMqF,QAAS,QAAS,KAE/BzL,YAAO,6BAAyB,QAAS,WAQrE,CACI1G,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzB5B,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,0BAERvC,KAAM,eACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKu/B,2BAA2Bz8B,SAAS+K,OAAO,WAAW,KAE/DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKu/B,2BAA2Bz8B,SAAS+K,OAAO,WAAW,MAGnEb,QAAS,KACLhN,KAAKkoC,uBAIjB,CACIhnC,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,uBAERvC,KAAM,QACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAK6/B,6BAA6B/8B,SAAS+K,OAAO,WAAW,KAEjEF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAK6/B,6BAA6B/8B,SAAS+K,OAAO,WAAW,MAGrEb,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sDACc,OAAf,EAAKkG,WAAgC5L,IAAf,EAAK4L,MAC3BqG,YAAM,6BAAsB,cAO5B,EAAKrF,SAAS,CACVmuB,iBAAiB,IAVpB,2CAAF,kDAAC,KAgBhB,CACI16B,SAAU,QACVwL,OAAQ,WACR2B,SAAS,EACT1B,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,8BAERvC,KAAM,QACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKy/B,+BAA+B38B,SAAS+K,OAAO,WAAW,KAEnEF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKy/B,+BAA+B38B,SAAS+K,OAAO,WAAW,MAGvEb,QAAS,KACLhN,KAAKyN,SAAS,CACV6tB,gCAAgC,OAKhD,CACIp6B,SAAU,QACVwL,OAAQ,WACR2B,SAAS,EACT1B,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,gBAERvC,KAAM,QACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKs/B,iBAAiBx8B,SAAS+K,OAAO,WAAW,KAErDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKs/B,iBAAiBx8B,SAAS+K,OAAO,WAAW,MAGzDb,QAAS,KACLhN,KAAKyN,SAAS,CACV4tB,kBAAkB,OAKlC,CACIn6B,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,yBAERvC,KAAM,SACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAK4+B,0BAA0B97B,SAAS+K,OAAO,WAAW,KAE9DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAK4+B,0BAA0B97B,SAAS+K,OAAO,WAAW,MAGlEb,QAAS,KACLhN,KAAKmoC,2BAIjB,CACIjnC,SAAU,QACV0N,aAAc,OACdlC,OAAQ,WACR2B,UAAS,CAAC,eAAgB,OAAQ,eAAeC,SAAS9N,EAAQoB,QAAQ2M,KAC1E5B,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,yBAERvC,KAAM,YACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKq/B,0BAA0Bv8B,SAAS+K,OAAO,WAAW,KAE9DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKq/B,0BAA0Bv8B,SAAS+K,OAAO,WAAW,MAGlEb,QAAS,KACLhN,KAAKooC,2BAIjB,CACIlnC,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,KAAkD,SAAxB/N,EAAQoB,QAAQ2M,IACnE5B,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,yBAERvC,KAAM,YACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKo/B,0BAA0Bt8B,SAAS+K,OAAO,WAAW,KAE9DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKo/B,0BAA0Bt8B,SAAS+K,OAAO,WAAW,MAGlEb,QAAS,KACLhN,KAAKqoC,2BAIjB,CACInnC,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,qBAERvC,KAAM,YACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAK2+B,sBAAsB77B,SAAS+K,OAAO,WAAW,KAE1DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAK2+B,sBAAsB77B,SAAS+K,OAAO,WAAW,MAG9Db,QAAS,KACLhN,KAAKsoC,uBAIjB,CACIpnC,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzB5B,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,sBAERvC,KAAM,YACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAK0+B,uBAAuB57B,SAAS+K,OAAO,WAAW,KAE3DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAK0+B,uBAAuB57B,SAAS+K,OAAO,WAAW,MAG/Db,QAAS,KACLhN,KAAKuoC,wBAIjB,CACIrnC,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzB5B,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,wBAERvC,KAAM,UACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKm+B,yBAAyBr7B,SAAS+K,OAAO,WAAW,KAE7DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKm+B,yBAAyBr7B,SAAS+K,OAAO,WAAW,MAGjEb,QAAS,KACLhN,KAAKwoC,qBAIjB,CACItnC,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,iBAERvC,KAAM,UACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKg+B,kBAAkBl7B,SAAS+K,OAAO,WAAW,KAEtDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKg+B,kBAAkBl7B,SAAS+K,OAAO,WAAW,MAG1Db,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,2DACc,OAAf,EAAKkG,WAAgC5L,IAAf,EAAK4L,OAD1B,gBAEDqG,YAAM,6BAAsB,cAF3B,6BAKD,EAAKoY,cAAchB,UAAY,EAAKzd,MAAMnB,GALzC,SAOK,EAAKsf,gBAAgB9nB,SAAS4M,UAPnC,OAQD,EAAKjC,SAAS,CACV4b,UAAW,EAAK5c,MAAMnB,GACtB4vB,gBAAgB,EAChBM,cAAe,EAAK/uB,MAAMoD,IAAM,IAAM,EAAKpD,MAAMqD,OAAS,6CAX7D,2CAAF,kDAAC,KAiBhB,CACI5O,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzB5B,QAAS,CACLC,KAAM,SACN86B,YAAa,CACTv4B,GAAI,uBAERjL,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKq+B,wBAAwBv7B,SAAS+K,OAAO,WAAW,KAE5DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKq+B,wBAAwBv7B,SAAS+K,OAAO,WAAW,MAGhEb,QAAS,KACLhN,KAAKyoC,qBAIjB,CACIvnC,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzB5B,QAAS,CACLC,KAAM,UACN86B,YAAa,CACTv4B,GAAI,wBAERjL,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKs+B,yBAAyBx7B,SAAS+K,OAAO,WAAW,KAE7DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKs+B,yBAAyBx7B,SAAS+K,OAAO,WAAW,MAGjEb,QAAS,KACLhN,KAAK0oC,uBAIjB,CACIxnC,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzB5B,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,kBAERvC,KAAM,QACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKo+B,uBAAuBt7B,SAAS+K,OAAO,WAAW,KAE3DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKo+B,uBAAuBt7B,SAAS+K,OAAO,WAAW,MAG/Db,QAAS,KACLhN,KAAK2oC,iBAIjB,CACIznC,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzB5B,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,sBAERvC,KAAM,MACN1I,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKu+B,uBAAuBz7B,SAAS+K,OAAO,WAAW,KAE3DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKu+B,uBAAuBz7B,SAAS+K,OAAO,WAAW,MAG/Db,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAAS+K,OAAO,mBAAoB,GAClD7N,KAAKyoB,SAAS3lB,SAAS8lC,YAInC,CACI1nC,SAAU,QAAS0N,aAAc,OACjCP,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzB7B,OAAQ,WAAYC,QAAS,CACzB+6B,YAAa,CACTv4B,GAAI,qBAERjL,KAAM,UACN0I,KAAM,OACN+6B,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKw+B,sBAAsB17B,SAAS+K,OAAO,WAAW,KAE1DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKw+B,sBAAsB17B,SAAS+K,OAAO,WAAW,MAG9Db,QAAS,MACoB,IAArBhN,KAAK42B,WAAwC,OAApB52B,KAAK42B,WAC9B9jB,YAAM,6BAAsB,cAG5B9S,KAAKyoB,SAAS3lB,SAAS+lC,QAAQ7oC,KAAK42B,eAKpD,CACI11B,SAAU,QACV0N,aAAc,OACdlC,OAAQ,WACR2B,UAAiC,mBAAxB7N,EAAQoB,QAAQ2M,IAAmD,iBAAxB/N,EAAQoB,QAAQ2M,IAAiD,iBAAxB/N,EAAQoB,QAAQ2M,KAC7G5B,QAAS,CACLzI,KAAM,SACNwjC,YAAa,CACTv4B,GAAI,iBAERvC,KAAM,QACN+6B,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKy+B,kBAAkB37B,SAAS+K,OAAO,WAAW,KAEtDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKy+B,kBAAkB37B,SAAS+K,OAAO,WAAW,MAG1Db,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sDACc,OAAf,EAAKkG,WAAgC5L,IAAf,EAAK4L,MAC3BqG,YAAM,6BAAsB,cAGfI,YAAQ,uMAAkK,oBAChLvM,KAAP,uCAAY,WAAOwM,GAAP,SAAA5M,EAAA,uDACa,IAAjB4M,GACcD,YAAQ,mOAA8L,sCAC5MvM,KAAR,uCAAa,WAAOmiC,GAAP,SAAAviC,EAAA,0DACa,IAAlBuiC,EADK,gCAEC,EAAKrgB,SAAS3lB,SAASimC,UAAU,EAAKnS,YAFvC,uBAGC,EAAKnD,qBAHN,2CAAb,uDAHI,2CAAZ,uDANC,2CAAF,kDAAC,KAuBhB,CAEIvyB,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzB5B,QAAS,CACLC,KAAM,OACN1I,KAAM,UACNwjC,YAAa,CACTv4B,GAAI,sBACJ65B,MAAO,eAEXrB,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKk+B,wBAAwBp7B,SAAS+K,OAAO,WAAW,KAE5DF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKk+B,wBAAwBp7B,SAAS+K,OAAO,WAAW,MAGhEb,QAAS,KACsD,IAAvDhN,KAAKyoB,SAAS3lB,SAAS63B,qBAAqBnuB,OAC5CsG,YAAM,4IAA+G,cAGrH9S,KAAKyN,SAAS,CACV2tB,yBAAyB,OAQ7C,CAEIl6B,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzB5B,QAAS,CACLC,KAAM,QACN1I,KAAM,SACNwjC,YAAa,CACTv4B,GAAI,mBAERw4B,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKi+B,oBAAoBn7B,SAAS+K,OAAO,WAAW,KAExDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKi+B,oBAAoBn7B,SAAS+K,OAAO,WAAW,MAG5Db,QAAS,KACsD,IAAvDhN,KAAKyoB,SAAS3lB,SAAS63B,qBAAqBnuB,OAC5CsG,YAAM,4IAA+G,cAGrH9S,KAAKyN,SAAS,CACVo1B,oBAAoB,OAQxC,CAEI3hC,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzB5B,QAAS,CACLC,KAAM,QACN86B,YAAa,CACTv4B,GAAI,oBAERw4B,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAK+9B,qBAAqBj7B,SAAS+K,OAAO,WAAW,KAEzDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAK+9B,qBAAqBj7B,SAAS+K,OAAO,WAAW,MAG7Db,QAAS,KACL,GAA2D,IAAvDhN,KAAKyoB,SAAS3lB,SAAS63B,qBAAqBnuB,OAC5CsG,YAAM,4IAA+G,kBAEpH,CACD,IAAIm2B,EAAc,GAClBjpC,KAAKyoB,SAAS3lB,SAAS63B,qBAAqBtzB,QAAS6hC,IACjDD,EAAYzmC,KAAK,CACb6mB,UAAWpG,SAASimB,OAG5BtnC,IAAQ4E,KAAK7B,EAAe,2BAA4BskC,EACpD,CACIxiC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KANL,uCAMU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAK4sB,qBAFb,uBAGQ,EAAKhL,SAAS3lB,SAAS4M,UAH/B,OAIE9H,YAAO,0CAAyB,UAAW,KAJ7C,sBAMEA,YAAO,+BAA4BhB,EAAIN,KAAKQ,aAAc,QAAS,KANrE,2CANV,uDAeKC,MAAMC,IACHY,YAAO,+BAA4BZ,EAAK,QAAS,WAQzE,CACI9F,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WACjD2B,UAAiC,mBAAxB7N,EAAQoB,QAAQ2M,IAAmD,iBAAxB/N,EAAQoB,QAAQ2M,IAAiD,iBAAxB/N,EAAQoB,QAAQ2M,KAC7G5B,QAAS,CACLzI,KAAM,UAAW4I,KAAM,8BAAuBF,KAAM,aACpDI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,oEAA2D,yBACzEvM,KAAP,uCAAY,WAAOwM,GAAP,SAAA5M,EAAA,uDACa,IAAjB4M,GACA,EAAK4yB,aAAa19B,QAAQO,OAAO,EAAK6D,MAAMnB,GAAI,CAAEmnB,SAAS,IAASY,KAAK,KACrE,EAAK5K,SAAS3lB,SAAS4M,UAAU2jB,KAAK,KAClC,EAAKI,yBAJT,2CAAZ,4DALA3gB,YAAM,6BAAsB,iBAkB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WACjD2B,UAAiC,mBAAxB7N,EAAQoB,QAAQ2M,IAAmD,iBAAxB/N,EAAQoB,QAAQ2M,IAAiD,iBAAxB/N,EAAQoB,QAAQ2M,KAC7G5B,QAAS,CACLzI,KAAM,SAAU4I,KAAM,8BAAuBF,KAAM,UACnDI,QAAS,KACL,QAAwBnM,IAApBb,KAAK42B,WAA+C,OAApB52B,KAAK42B,WACrC9jB,YAAM,6BAAsB,kBAG3B,CAEYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAK+lC,aAAa19B,QAAQO,OAAO5I,KAAKyM,MAAMnB,GAAI,CAAEmnB,SAAS,IAAQY,KAAK,KACpErzB,KAAKyoB,SAAS3lB,SAAS4M,UAAU2jB,KAAK,KAClCrzB,KAAKyzB,+BASrC,CACIvyB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAAS4M,UAAU2jB,KAAK,KAClCrzB,KAAKyzB,0BAKrB,CACIvyB,SAAU,QACV0N,aAAc,OACdC,SAAU,IACE,qYAexBmxB,6BAA6BryB,GAAI,IAAD,OAC5BA,EAAE6G,eAAepR,MAAMqR,QAEnB,CACIvT,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,SACN4B,KAAM,0BACNk5B,YAAa,CACTv4B,GAAI,eAERjL,KAAM,UACN8I,QAAS,KAEoB,OAArBhN,KAAKw9B,kBAA6C38B,IAArBb,KAAKw9B,YAClC1qB,YAAM,mDAAoC,eAI1C9S,KAAKimC,aAAaC,SAAWlmC,KAAKw9B,YAAYlyB,GAC9CtL,KAAKk8B,mBAAmBp5B,SAAS4M,UACjC1P,KAAKyN,SAAS,CACVquB,sBAAsB,QAO1C,CACI56B,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,QACN4B,KAAM,SACNk5B,YAAa,CACTv4B,GAAI,aAERjL,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKm/B,cAAcr8B,SAAS+K,OAAO,WAAW,KAElDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKm/B,cAAcr8B,SAAS+K,OAAO,WAAW,MAGtDb,QAAS,KAEoB,OAArBhN,KAAKw9B,kBAA6C38B,IAArBb,KAAKw9B,YAClC1qB,YAAM,mDAAoC,eAG1C9S,KAAKglC,eAAeN,SAAW1kC,KAAKw9B,YAAYlyB,GAChDtL,KAAKyN,SAAS,CACVouB,eAAe,QAOnC,CACI36B,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,QACN86B,YAAa,CACTv4B,GAAI,YAERX,KAAM,QACNtK,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKg/B,aAAal8B,SAAS+K,OAAO,WAAW,KAEjDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKg/B,aAAal8B,SAAS+K,OAAO,WAAW,MAGrDb,QAAS,KACDhN,KAAKkkC,wBAAwBD,QAC7BnxB,YAAM,yHAA0E,cAKhFlR,IAAQ6F,IAAI9C,EAAe,uBAAyB3E,KAAKkkC,wBAAwB54B,GAC7E,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACTiM,YAAM,4CAAyClM,EAAIN,KAAKiG,KAAO,4LAAqI,SACnK,OAA7BvM,KAAKy8B,WAAW35B,WAChB9C,KAAKy8B,WAAW35B,SAASyuB,iBACzBvxB,KAAKw9B,YAAc,KACnBx9B,KAAKy8B,WAAW35B,SAAS+K,OAAO,mBAAoB,KAIxDiF,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IACH8L,YAAM,6DAA2C9L,EAAK,aAO9E,CACI9F,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,QACN86B,YAAa,CACTv4B,GAAI,eAERX,KAAM,YACNtK,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAK++B,gBAAgBj8B,SAAS+K,OAAO,WAAW,KAEpDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAK++B,gBAAgBj8B,SAAS+K,OAAO,WAAW,MAGxDb,QAAS,KACDhN,KAAKkkC,wBAAwBD,QAC7BnxB,YAAM,yHAA0E,cAKhFlR,IAAQ6F,IAAI9C,EAAe,0BAA4B3E,KAAKkkC,wBAAwB54B,GAChF,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACTiM,YAAM,4CAAyClM,EAAIN,KAAKiG,KAAO,4LAAqI,SACnK,OAA7BvM,KAAKy8B,WAAW35B,WAChB9C,KAAKy8B,WAAW35B,SAASyuB,iBACzBvxB,KAAKw9B,YAAc,KACnBx9B,KAAKy8B,WAAW35B,SAAS+K,OAAO,mBAAoB,KAIxDiF,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IACH8L,YAAM,6DAA2C9L,EAAK,aAO9E,CACI9F,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,OACN86B,YAAa,CACTv4B,GAAI,kBAERX,KAAM,eACNtK,KAAM,UACNyjC,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKi/B,mBAAmBn8B,SAAS+K,OAAO,WAAW,KAEvDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKi/B,mBAAmBn8B,SAAS+K,OAAO,WAAW,MAG3Db,QAAS,KACoB,OAArBhN,KAAKw9B,kBAA6C38B,IAArBb,KAAKw9B,YAClC1qB,YAAM,mDAAoC,eAG1C9S,KAAKwkC,iBAAmB,CACpBrkB,SAAU,GACVskB,gBAAiB,KACjBI,WAAY,EACZH,SAAU1kC,KAAKw9B,YAAYlyB,GAC3Bq5B,SAAUwE,WAAWnpC,KAAKw9B,YAAY1W,OAASqiB,WAAWnpC,KAAKw9B,YAAYzX,gBAC3E6e,aAAc5kC,KAAKw9B,YAAY4L,WAAW99B,GAC1C+d,UAAWrpB,KAAK+J,MAAMsf,UACtBf,eAAgB,IAAIC,KACpBuc,QAAS,EACTC,OAAQ,IAEZ/kC,KAAKyN,SAAS,CACVwtB,iBAAiB,QAMrC,CACI/5B,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,SACN86B,YAAa,CACTv4B,GAAI,kBAERX,KAAM,wBACNtK,KAAM,SACNmK,QAAkC,mBAAxB7N,EAAQoB,QAAQ2M,KAAoD,iBAAxB/N,EAAQoB,QAAQ2M,IACtEo5B,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKk/B,mBAAmBp8B,SAAS+K,OAAO,WAAW,KAEvDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKk/B,mBAAmBp8B,SAAS+K,OAAO,WAAW,MAG3Db,QAAS,KACL,GAAyB,OAArBhN,KAAKw9B,kBAA6C38B,IAArBb,KAAKw9B,YAClC1qB,YAAM,mDAAoC,kBAEzC,CACYI,YAAQ,0JAAmI,+BACjJvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK7B,EAAe,0BAA4B3E,KAAKw9B,YAAYlyB,GACrE,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAPL,uCAOU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,mBAEmC,OAA7B,EAAK41B,WAAW35B,SAFtB,gCAGY,EAAK25B,WAAW35B,SAAS4M,UAHrC,uBAIY9N,IAAQ6F,IAAI9C,EAAe,gCAAkC,EAAK64B,YAAY4L,WAAW99B,GAAI,CAC/F7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACF,MAAMyiC,EAAaF,WAAWviC,EAAIN,KAAKiG,MACvC,EAAKqxB,kBAAkB96B,WAAW+K,OAAO,QAASw7B,GACjB,OAA7B,EAAK5M,WAAW35B,WAChB,EAAK25B,WAAW35B,SAASyuB,iBACzB,EAAKiM,YAAc,KACnB,EAAKf,WAAW35B,SAAS+K,OAAO,mBAAoB,MAftE,6BAsBEiF,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,QAtB1E,2CAPV,uDAgCKC,MAAMC,IACH8L,YAAM,6DAA2C9L,EAAK,iBAW9Fi5B,kCAAkCtyB,GAC9BA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,QACN4B,KAAM,MACN1B,KAAM,MACN5I,KAAM,SACN8I,QAAS,KAGyB,OAA1BhN,KAAK09B,uBAAuD78B,IAA1Bb,KAAK09B,iBACvC5qB,YAAM,mEAAyC,cAG/ClR,IAAQ4E,KAAK7B,EAAe,6BAA+B3E,KAAK09B,iBAAiBpyB,GAAI,KACjF,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SAC6B,OAAlC7G,KAAK4qB,gBAAgB9nB,WACrB9C,KAAK4qB,gBAAgB9nB,SAASyuB,iBAC9BvxB,KAAK09B,iBAAmB,KACxB19B,KAAK4qB,gBAAgB9nB,SAAS+K,OAAO,mBAAoB,IAE7D7N,KAAK4qB,gBAAgB9nB,SAAS4M,WAG9BoD,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IACH8L,YAAM,6DAA2C9L,EAAK,cAWtF26B,qCAAqCh0B,GAAI,IAAD,OACpCA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,QACN4B,KAAM,MACN1B,KAAM,MACN5I,KAAM,SACNmK,QAAkC,mBAAxB7N,EAAQoB,QAAQ2M,KAAoD,iBAAxB/N,EAAQoB,QAAQ2M,IACtEvB,QAAS,KAGL,GAAiC,OAA7BhN,KAAK29B,0BAA6D98B,IAA7Bb,KAAK29B,oBAC1C7qB,YAAM,iDAAkC,kBAEvC,CACYI,YAAQ,0GAAyF,gCACvGvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK7B,EAAe,qCAAuC3E,KAAK29B,oBAAoBryB,GAAI,KAC5F,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KANL,uCAMU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,uBAE2C,OAArC,EAAKq1B,mBAAmBp5B,WACxB,EAAKo5B,mBAAmBp5B,SAASyuB,iBACjC,EAAKoM,oBAAsB,KAC3B,EAAKzB,mBAAmBp5B,SAAS+K,OAAO,mBAAoB,IALlE,SAOQ,EAAKquB,mBAAmBp5B,SAAS4M,UAPzC,uBAQQ9N,IAAQ6F,IAAI9C,EAAe,gCAAkC,EAAK64B,YAAY4L,WAAW99B,GAAI,CAC/F7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACF,MAAMyiC,EAAaF,WAAWviC,EAAIN,KAAKiG,MACvC,EAAKqxB,kBAAkB96B,WAAW+K,OAAO,QAASw7B,KAf5D,6BAqBEv2B,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,QArB1E,2CANV,uDA8BKC,MAAMC,IACH8L,YAAM,6DAA2C9L,EAAK,iBAa9Fm5B,6BAA6Bvf,QACR/f,IAAb+f,EAAKjM,MACL3U,KAAKw9B,YAAc5c,EAAKjM,IAAIrO,MAIpCs7B,qCAAqChhB,QAChB/f,IAAb+f,EAAKjM,MACL3U,KAAK29B,oBAAsB/c,EAAKjM,IAAIrO,MAK5C85B,kCAAkCxf,QACb/f,IAAb+f,EAAKjM,MACL3U,KAAK09B,iBAAmB9c,EAAKjM,IAAIrO,MAIzCmiC,kBAAmB,IAAD,OACK,OAAfzoC,KAAKyM,WAAgC5L,IAAfb,KAAKyM,MAC3BqG,YAAM,6BAAsB,cAGxB9S,KAAKyM,MAAM68B,aACX1nC,IAAQ6F,IAAI9C,EAAe,8BAAgC3E,KAAKyM,MAAMnB,GAAI,CACtE7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAJH,uCAIQ,WAAOC,GAAP,SAAAL,EAAA,0DACAK,EAAIN,KAAKO,QADT,wBAEA,EAAKq9B,wBAA0Bt9B,EAAIN,KAAKiG,KACxC,EAAKk6B,iBAAiBve,aAAe,EAAKgc,wBAAwB54B,GAE5B,IADhB,IAAIid,KAAK3hB,EAAIN,KAAKiG,KAAKw3B,iBACzBwD,gBAChB,EAAKrD,wBAAwBH,gBAAkB,KAC/C,EAAKlG,uBAAuB/6B,WAAW+K,OAAO,QAAS,OAP3D,SASM,EAAK4uB,WAAW35B,SAAS4M,UAT/B,OAWA,EAAK2tB,qBAAqBv6B,SAAS+K,OAAO,QAAS,EAAKpB,MAAMoD,IAAM,IAAM,EAAKpD,MAAMqD,OAAS,iDAC9F,EAAKrC,SAAS,CACVutB,wBAAwB,EACxB3R,UAAW,EAAK5c,MAAMnB,KAd1B,wBAkBA1D,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KAlBvC,4CAJR,uDAyBKC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,OAI7BY,YAAO,+EAA8C,UAAW,KAK5E+gC,cAAe,IAAD,OACS,OAAf3oC,KAAKyM,WAAgC5L,IAAfb,KAAKyM,MAC3BqG,YAAM,6BAAsB,cAGxB9S,KAAKyM,MAAM68B,aACX1nC,IAAQ6F,IAAI9C,EAAe,0BAA4B3E,KAAKyM,MAAMnB,GAAI,CAClE7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAJH,uCAIQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACTiM,YAAM,sDAA2ClM,EAAIN,KAAKiG,KAAO,sMAAuI,SACxM,EAAKknB,sBAGL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KANvC,2CAJR,uDAaKC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,OAI7BY,YAAO,gFAA+C,UAAW,KAK7E4gC,kBAAmB,IAAD,OAEd5mC,IAAQ6F,IAAI9C,EAAe,6BAA8B,CACrD8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAJH,uCAIQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACTiM,YAAM,sDAA8ClM,EAAIN,KAAKiG,KAAO,wMAA4I,SAChN,EAAKknB,sBAGL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KANvC,2CAJR,uDAaKC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,OAIjCshC,oBAAqB,IAAD,OAChB1mC,IAAQ6F,IAAI9C,EAAe,+BAAgC,CACvD8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAJH,uCAIQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACTiM,YAAM,mDAAgDlM,EAAIN,KAAKiG,KAAO,qMAA8I,SACpN,EAAKknB,sBAGL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KANvC,2CAJR,uDAaKC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,OAIjCmhC,wBACuB,OAAfnoC,KAAKyM,WAAgC5L,IAAfb,KAAKyM,MAC3BqG,YAAM,6BAAsB,eAG5B9S,KAAKouB,kBAAkBlE,UAAYlqB,KAAKyM,MAAMnB,GAC9CtL,KAAKkvB,wBAAwBpsB,SAAS4M,UACtC1P,KAAKivB,wBAAwBnsB,SAAS4M,UACtC1P,KAAKyN,SAAS,CACVsuB,yBAAyB,IAE7B/7B,KAAKyzB,sBAIbyU,oBAAqB,IAAD,OACG,OAAfloC,KAAKyM,WAAgC5L,IAAfb,KAAKyM,MAC3BqG,YAAM,6BAAsB,cAG5BlR,IAAQ6F,IAAI9C,EAAe,2BAA6B3E,KAAKyM,MAAMnB,GAAI,CACnE7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAJH,uCAIQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACTiM,YAAM,2DAAgDlM,EAAIN,KAAKiG,KAAO,2MAA4I,SAClN,EAAKknB,sBAGL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KANvC,2CAJR,uDAaKC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,OAKrCqhC,wBAAyB,IAAD,OACD,OAAfroC,KAAKyM,WAAgC5L,IAAfb,KAAKyM,MAC3BqG,YAAM,6BAAsB,cAG5BlR,IAAQ6F,IAAI9C,EAAe,+BAAiC3E,KAAKyM,MAAMgC,QAAU,IAAMzO,KAAKyM,MAAMnB,GAAI,CAClG7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAJH,uCAIQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACTiM,YAAM,mEAAqDlM,EAAIN,KAAKiG,KAAO,qMAA2I,SACtN,EAAKknB,sBAGL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KANvC,2CAJR,uDAaKC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,OAKrCohC,wBAAyB,IAAD,OACD,OAAfpoC,KAAKyM,WAAgC5L,IAAfb,KAAKyM,MAC3BqG,YAAM,6BAAsB,cAG5BlR,IAAQ6F,IAAI9C,EAAe,iCAAmC3E,KAAKyM,MAAMnB,GAAI,CACzE7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAJH,uCAIQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACTiM,YAAM,mEAAqDlM,EAAIN,KAAKiG,KAAO,qMAA2I,SACtN,EAAKknB,sBAGL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KANvC,2CAJR,uDAaKC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,OAKrCuhC,qBAAsB,IAAD,OAEjB3mC,IAAQ6F,IAAI9C,EAAe,gCAAiC,CACxD8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAJH,uCAIQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACTiM,YAAM,8DAAiDlM,EAAIN,KAAKiG,KAAO,gNAA+I,SACtN,EAAKknB,sBAGL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KANvC,2CAJR,uDAaKC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,OAIjC0hC,oBACuB,OAAf1oC,KAAKyM,WAAgC5L,IAAfb,KAAKyM,MAC3BqG,YAAM,6BAAsB,cAGxB9S,KAAKyM,MAAM68B,cACXx2B,YAAM,gKAAiH,SACvHlL,YAAO,wIAAyF,UAAW,MAG9E,IAAzB5H,KAAKyM,MAAM88B,WACXvpC,KAAK68B,gBAAgB/5B,SAAS+K,OAAO,QAAS7N,KAAKyM,MAAMoD,IAAM,IAAM7P,KAAKyM,MAAMqD,OAAS,gCACzF9P,KAAKojC,mBAAmBM,QAAQp4B,GAAKtL,KAAKyM,MAAMnB,GAChDtL,KAAKyN,SAAS,CACV4b,UAAWrpB,KAAKyM,MAAMnB,GACtByvB,mBAAmB,MAIvBjoB,YAAM,0GAAwE,SAC9ElL,YAAO,0GAAwE,UAAW,MAQ1Gi6B,kCAAiC,gBAAE2H,EAAF,iBAAmB3qB,IAChD7e,KAAKyN,SAAL,eACOzN,KAAK+J,MADZ,CAEIiyB,uBAAwBwN,KAE5Bv9B,QAAQC,IAAIlM,KAAK+J,MAAMiyB,wBAG3BiG,YAAYt0B,GACR,IAAI87B,EAAW,IAAIC,YACfC,EAAYF,EAASG,aAAa,cAClCC,EAAe,GACnBC,aAAe,CACXl8B,UAAWD,EAAEC,UACb+7B,UAAWA,EACXI,mBAAmB,EACnBC,cAAgBr9B,IAAa,IACnBs9B,EAAwBt9B,EAAxBs9B,UAAWC,EAAav9B,EAAbu9B,SACQ,SAArBA,EAASC,SACyB,aAA9BD,EAASpa,OAAO5d,gBAAgDrR,IAAnBqpC,EAAS3iC,MAAyC,KAAnB2iC,EAAS3iC,MAAkC,OAAnB2iC,EAAS3iC,QAC7G0iC,EAAU1iC,WAAQ1G,EAClBgpC,EAAarnC,KACT,IAAIuY,QAAQ,CAACC,EAASC,MAggHlD,SAAkB7U,EAAKqjC,EAAUE,EAAWM,EAAWjvB,GAEnD,IAAIovB,EAAM,IAAIC,eACdD,EAAI1uB,KAAK,MAAOtV,GAChBgkC,EAAIE,aAAe,OAGnBF,EAAIG,OAAJ,sBAAa,4BAAAhkC,EAAA,6DACLikC,EAAS,IAAIC,WADR,SAEHD,EAAOE,cAAcN,EAAI1iC,UAFtB,OAGT8iC,EAAOG,UAAY,WACf,IAAIC,EAAaJ,EAAO7kB,OACxB,MAAMklB,EAAQpB,EAASqB,SAAS,CAC5BC,OAAQH,EACRI,UAAW,MACX1nC,MAAO,GACPoN,OAAQ,KAEZi5B,EAAUsB,OAAOhB,EAAUt1B,KAAKjE,OAAS,GACzCi5B,EAAUsB,OAAOhB,EAAUt1B,KAAKrR,MAAQ,GACxCqmC,EAAUmB,SAASD,EAAO,CACtBK,GAAI,CAAEC,IAAKlB,EAAUkB,IAAM,EAAGx2B,IAAKs1B,EAAUt1B,IAAM,GACnDy2B,GAAI,CAAED,IAAKlB,EAAUkB,IAAKx2B,IAAKs1B,EAAUt1B,OAE7CqG,KAjBK,2CAoBbovB,EAAIiB,QAAU,WACVp/B,QAAQ+B,MAAM,sCAElBo8B,EAAIkB,OA7hHwBR,CAASZ,EAAS3iC,MAAOkiC,EAAUE,EAAWM,EAAWjvB,UAM9ErU,MAAK,WACJoU,QAAQwwB,IAAI1B,GAAcljC,KAAK,KAC3B8iC,EAAS+B,KAAKC,cAAc9kC,MAAK,SAAU+kC,GACvCC,aAAO,IAAIC,KAAK,CAACF,GAAS,CAAExnC,KAAM,6BAA+B,2BAI7EyJ,EAAEk+B,QAAS,EAGf/J,0CAA0Cn0B,GACtC3N,KAAK+mC,qCAAuCp5B,EAAEC,UAGlDm0B,gDAAgDp0B,GAC5C3N,KAAKgnC,2CAA6Cr5B,EAAEC,UAGxDo0B,+CAA+Cr0B,GAC3C3N,KAAKinC,0CAA4Ct5B,EAAEC,UAIvD7K,SAAU,IAAD,OACL,OACI,gBAAC,WAAD,KACI,gBAAC,WAAD,CACIyU,OAAO,uBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,yDACPlH,IAAMA,GAAQ5D,KAAK6/B,6BAA+Bj8B,GANtD,uGAQ6E,4BAE7E,gBAAC,WAAD,CACI4T,OAAO,eACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,0BACPlH,IAAMA,GAAQ5D,KAAK4/B,wBAA0Bh8B,GANjD,yEAQ4D,4BAE5D,gBAAC,WAAD,CACI4T,OAAO,wBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,mCACPlH,IAAMA,GAAQ5D,KAAK2/B,yBAA2B/7B,GANlD,2HAQqF,4BAErF,gBAAC,WAAD,CACI4T,OAAO,mBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,wBACPlH,IAAMA,GAAQ5D,KAAK0/B,oBAAsB97B,GAN7C,8HAQgF,4BAEhF,gBAAC,WAAD,CACI4T,OAAO,eACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,uCACPlH,IAAMA,GAAQ5D,KAAKioC,gBAAkBrkC,GANzC,oGAQwE,4BAExE,gBAAC,WAAD,CACI4T,OAAO,0BACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,0BACPlH,IAAMA,GAAQ5D,KAAKu/B,2BAA6B37B,GANpD,iFAQ0D,4BAE1D,gBAAC,WAAD,CACI4T,OAAO,8BACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,gBACPlH,IAAMA,GAAQ5D,KAAKy/B,+BAAiC77B,GANxD,sFAQiE,4BAEjE,gBAAC,WAAD,CACI4T,OAAO,gBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,gBACPlH,IAAMA,GAAQ5D,KAAKs/B,iBAAmB17B,GAN1C,0DAQgD,4BAEhD,gBAAC,WAAD,CACI4T,OAAO,yBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,kCACPlH,IAAMA,GAAQ5D,KAAKq/B,0BAA4Bz7B,GANnD,mEAQsD,4BAEtD,gBAAC,WAAD,CACI4T,OAAO,yBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,kCACPlH,IAAMA,GAAQ5D,KAAKo/B,0BAA4Bx7B,GANnD,mEAQsD,4BAEtD,gBAAC,WAAD,CACI4T,OAAO,aACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,SACPlH,IAAMA,GAAQ5D,KAAKm/B,cAAgBv7B,GANvC,4DAQuD,4BAEvD,gBAAC,WAAD,CACI4T,OAAO,kBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,eACPlH,IAAMA,GAAQ5D,KAAKk/B,mBAAqBt7B,GAN5C,0DAQmD,2BAC/C,wBAAMsM,MAAO,CAAE0X,MAAO,QAAtB,iDAEJ,gBAAC,WAAD,CACIpQ,OAAO,kBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,eACPlH,IAAMA,GAAQ5D,KAAKi/B,mBAAqBr7B,GAN5C,0DAQmD,2BARnD,0DAS8C,2BAT9C,2DAU+C,2BAV/C,sDAaA,gBAAC,WAAD,CACI4T,OAAO,YACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,QACPlH,IAAMA,GAAQ5D,KAAKg/B,aAAep7B,GANtC,gEAUA,gBAAC,WAAD,CACI4T,OAAO,eACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,YACPlH,IAAMA,GAAQ5D,KAAK++B,gBAAkBn7B,GANzC,uFAUA,gBAAC,WAAD,CACI4T,OAAO,+BACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,2CACPlH,IAAMA,GAAQ5D,KAAK8+B,gCAAkCl7B,GANzD,qKAQuG,2BARvG,4GAWA,gBAAC,WAAD,CACI4T,OAAO,oBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,yBACPlH,IAAMA,GAAQ5D,KAAK6+B,oBAAsBj7B,GAN7C,mFAQ0D,2BAR1D,0HAaA,gBAAC,WAAD,CACI4T,OAAO,yBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,gCACPlH,IAAMA,GAAQ5D,KAAK4+B,0BAA4Bh7B,GANnD,0EAQ4D,4BAE5D,gBAAC,WAAD,CACI4T,OAAO,qBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,kBACPlH,IAAMA,GAAQ5D,KAAK2+B,sBAAwB/6B,GAN/C,4EAQ8D,4BAE9D,gBAAC,WAAD,CACI4T,OAAO,sBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,6BACPlH,IAAMA,GAAQ5D,KAAK0+B,uBAAyB96B,GANhD,4GAUA,gBAAC,WAAD,CACI4T,OAAO,iBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,wBACPlH,IAAMA,GAAQ5D,KAAKy+B,kBAAoB76B,GAN3C,8DAQiD,2BAC7C,wBAAMsM,MAAO,CAAE0X,MAAO,QAAtB,kDAEJ,gBAAC,WAAD,CACIpQ,OAAO,qBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,+BACPlH,IAAMA,GAAQ5D,KAAKw+B,sBAAwB56B,GAN/C,oEAUA,gBAAC,WAAD,CACI4T,OAAO,sBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,4BACPlH,IAAMA,GAAQ5D,KAAKu+B,uBAAyB36B,GANhD,wFAQ4E,2BAR5E,mEAS2C,2BAT3C,kCAUoB,wBAAMsM,MAAO,CAAE0X,MAAO,QAAtB,wBAVpB,6CAYA,gBAAC,WAAD,CACIpQ,OAAO,wBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,mCACPlH,IAAMA,GAAQ5D,KAAKs+B,yBAA2B16B,GANlD,4HAQsF,2BARtF,gDAS+B,wBAAMsM,MAAO,CAAE0X,MAAO,QAAtB,wBAT/B,6CAWA,gBAAC,WAAD,CACIpQ,OAAO,uBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,gCACPlH,IAAMA,GAAQ5D,KAAKq+B,wBAA0Bz6B,GANjD,kEAQsD,2BARtD,qFAWA,gBAAC,WAAD,CACI4T,OAAO,kBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,gCACPlH,IAAMA,GAAQ5D,KAAKo+B,uBAAyBx6B,GANhD,wEAQuD,2BARvD,+FAWA,gBAAC,WAAD,CACI4T,OAAO,wBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,2BACPlH,IAAMA,GAAQ5D,KAAKm+B,yBAA2Bv6B,GANlD,qEAUA,gBAAC,WAAD,CACI4T,OAAO,iBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,wBACPlH,IAAMA,GAAQ5D,KAAKg+B,kBAAoBp6B,GAN3C,+EAQwD,2BARxD,wEAWA,gBAAC,WAAD,CACI4T,OAAO,oBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,QACPlH,IAAMA,GAAQ5D,KAAK+9B,qBAAuBn6B,GAN9C,qFAUA,gBAAC,WAAD,CACI4T,OAAO,mBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,QACPlH,IAAMA,GAAQ5D,KAAKi+B,oBAAsBr6B,GAN7C,8EAUA,gBAAC,WAAD,CACI4T,OAAO,uBACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,QACPlH,IAAMA,GAAQ5D,KAAKk+B,wBAA0Bt6B,GANjD,uFAUA,uBAAKqM,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,0BAAK,kGACL,gBAAC,IAAD,CACImE,aAAa,EACbkjB,mBACI,CACIC,gBAAgB,EAChBC,eAAgB,YAChBtiB,SAAS,EACTuiB,kBAAmB,UAG3BqU,uBACKn+B,IACyB,SAAlBA,EAAEgH,IAAIw1B,UACNx8B,EAAEvK,MAAQ,CAAC,CACPoL,KAAM,qBACNrL,YAAa,KACTnD,KAAKyzB,uBAGb,CACIplB,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzBC,KAAM,4BACNrL,YAAa,KACTnD,KAAKyoC,oBAGb,CACIp6B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzBC,KAAM,mCACNrL,YAAa,KACTnD,KAAK0oC,sBAGb,CACIr6B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzBC,KAAM,gCACNrL,YAAa,KACTnD,KAAK2oC,gBAGb,CACIt6B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzBC,KAAM,2BACNrL,YAAa,KACTnD,KAAKwoC,uBAMzBn0B,cAAc,EACdhC,WAAYrS,KAAK+lC,aACjB5d,iBAAkB,CACd4jB,SAAS,EACT7vB,QAAQ,EACR8vB,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAS,GAEbxwB,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,YACnBC,oBAAoB,EACpB8G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJ85B,kBAAmB//B,KAAK+/B,kBACxB3vB,cAAepQ,KAAKoQ,cACpBumB,oBAAsBhpB,IAClB3N,KAAK42B,WAAajpB,EAAEkpB,SACpB,IAAIxO,EAAU1a,EAAEgH,KAAOhH,EAAEgH,IAAIrO,KACzB+hB,IACAroB,KAAKyM,MAAQ4b,IAGrB4Z,YAAajiC,KAAKiiC,YAClB1tB,mBAAoBvU,KAAKuU,mBACzB3Q,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,gBAAC,SAAD,CACIsR,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,IACzBoa,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,gBAAC,UAAD,CACI3X,KAAM,QAKNxK,MAAO,CACHQ,MAAO,wHACP8F,WAAW,EACXtN,MAAO,MACPoN,OAAQ,MACRG,SAAS,EACTC,aAAa,EACbK,iBAAiB,EACjBvN,IAAMA,IAAU5D,KAAK+Q,UAAYnN,GACjCoN,2BAA2B,EAE3BR,SAAU,CACNY,GAAI,SACJC,GAAI,SACJC,GAAIrQ,QAERmL,aAAc,CACV,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACvDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,yDACkB,EAAKo2B,SAAS75B,WAAWgc,WAE5BC,QAHf,uBAIDnX,YAAO,6DAA2D,UAAW,KAJ5E,6BAQ0D,IAAvD,EAAK20B,mBAAmBz5B,WAAW+K,OAAO,SAR7C,oBAS8D,OAAvD,EAAKwuB,mBAAmBv5B,WAAW+K,OAAO,eAA4EhN,IAAvD,EAAKw7B,mBAAmBv5B,WAAW+K,OAAO,UAAiF,IAAvD,EAAKwuB,mBAAmBv5B,WAAW+K,OAAO,SATpL,wBAUOjG,YAAO,6DAA2D,UAAW,KAVpF,4CAca,EAAK6gB,SAAS3lB,SAASk3B,eAAejzB,MAAMC,IAC9CY,YAAO,8DAA4CZ,EAAK,QAAS,OAf5E,yBAiBa,EAAKysB,qBAjBlB,iDAqBS,EAAKhL,SAAS3lB,SAASk3B,eAAejzB,MAAMC,IAC9CY,YAAO,8DAA4CZ,EAAK,QAAS,OAtBxE,yBAwBS,EAAKysB,qBAxBd,4CAAF,kDAAC,KA+BhB,CACIvyB,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,YAAUF,KAAM,SACtDI,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAASm3B,sBAM3CC,KAAM,CACF9pB,cAAepQ,KAAKihC,sBACpBr9B,IAAMA,GAAQ5D,KAAK28B,SAAW/4B,EAC9BqO,SAAU,EACV7O,MAAO,CACH,CACI+2B,QAAS,EACTC,SAAU,QACVh3B,MAAO,CACH,CACIg3B,SAAU,SACVgS,gBAAiB,CACbxgB,gBAAgB,EAChBygB,MAAM,EACNC,kBAAkB,EAClBC,cAAc,GAElBnrB,KAAM,CACF,CACInP,SAAU,EACVnH,MAAO,4BACP1H,MAAO,CACH,CAAE8O,UAAW,OACb,CAAEA,UAAW,UACb,CAAEA,UAAW,QACb,CACIA,UAAW,WACXC,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,QACLic,WAAY,CACRmkB,SAAU,YAEdr+B,QAASrD,EAAe,kBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,QACXrP,YAAa,SAGrB,CAAEiP,UAAW,eACb,CAAEA,UAAW,SACb,CACIA,UAAW,SAEf,CAAEA,UAAW,SACb,CACIA,UAAW,gBACXs6B,MAAO,CACHh+B,KAAM,eAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,wBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,QAGrB,CACIiP,UAAW,gBACXs6B,MAAO,CACHh+B,KAAM,eAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,wBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,QAGrB,CACIiP,UAAW,cAAeC,WAAY,YAAaC,cAAe,CAC9DmJ,iBAAiB,IAGzB,CAAErJ,UAAW,QACb,CACIA,UAAW,WAAY7D,SAAS,IAIxC+Q,aAAc,SAAU/c,EAAUgd,EAAWC,GACzCA,EAAYmtB,OAAO,6BAA+BpqC,EAASw4B,SAAW,UAG9E,CACI5oB,SAAU,EACVnH,MAAO,8BACP1H,MAAO,CACH,CAAE8O,UAAW,eACb,CAAEA,UAAW,eACb,CAAEA,UAAW,eACb,CAAEA,UAAW,YACb,CAAEA,UAAW,mBACb,CAAEA,UAAW,oBACb,CAAEA,UAAW,aACb,CACIA,UAAW,aAEf,CACIA,UAAW,kBACXs6B,MAAO,CACHh+B,KAAM,2BAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,0BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,QAGrB,CACIiP,UAAW,gBACXs6B,MAAO,CACHh+B,KAAM,eAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,wBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,QAGrB,CAAEiP,UAAW,eAGrB,CACID,SAAU,EACVnH,MAAO,uBACP1H,MAAO,CACH,CAAE8O,UAAW,cAAeC,WAAY,aACxC,CACID,UAAW,YACXC,WAAY,cACZC,cAAe,CACXhC,cAAepQ,KAAKghC,+BACpBp9B,IAAMA,GAAQ5D,KAAKu8B,mBAAqB34B,EACxCyO,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,QACLic,WAAY,CACRmkB,SAAU,aAEdr+B,QAASrD,EAAe,kBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,QACXrP,YAAa,OACbqY,eAAiB3N,KAC6C,IAAtD3N,KAAKyoB,SAAS3lB,SAAS+K,OAAO,mBAC9B7N,KAAKyoB,SAAS3lB,SAASwkC,UAAU,EAAG,YAAa35B,EAAEpG,OAEnDvH,KAAKyoB,SAAS3lB,SAASwkC,UAAUtnC,KAAKyoB,SAAS3lB,SAAS+K,OAAO,mBAAoB,YAAaF,EAAEpG,OAEtGvH,KAAKu8B,mBAAmBz5B,WAAW+K,OAAO,QAASF,EAAEpG,OACrC,IAAZoG,EAAEpG,OACFvH,KAAKq8B,mBAAmBv5B,WAAW+K,OAAO,cAAc,GACxD7N,KAAKq8B,mBAAmBv5B,WAAW+K,OAAO,YAAY,GACtD7N,KAAKq8B,mBAAmBv5B,WAAW+K,OAAO,WAAW,GACrD7N,KAAKq8B,mBAAmBv5B,WAAW+K,OAAO,mBAAoB,SAC9D7N,KAAKq8B,mBAAmBv5B,WAAW4pC,YAGnC1sC,KAAKq8B,mBAAmBv5B,WAAW+K,OAAO,cAAc,GACxD7N,KAAKq8B,mBAAmBv5B,WAAW+K,OAAO,YAAY,GACtD7N,KAAKq8B,mBAAmBv5B,WAAW+K,OAAO,WAAW,GACrD7N,KAAKq8B,mBAAmBv5B,WAAW+K,OAAO,mBAAoB,WAC9D7N,KAAKq8B,mBAAmBv5B,WAAW4pC,cAOnD,CACIx6B,UAAW,YACXs6B,MAAO,CACHh+B,KAAM,UAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,mCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,QAGrB,CACIiP,UAAW,UACXs6B,MAAO,CACHh+B,KAAM,QAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,iCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,QAGrB,CAAEiP,UAAW,SACb,CAAEA,UAAW,SACb,CACIA,UAAW,UACXs6B,MAAO,CACHh+B,KAAM,QAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,iCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,QAGrB,CACIiP,UAAW,gBAAiBC,WAAY,YAAaC,cAAe,CAChEmJ,iBAAiB,IAGzB,CAAErJ,UAAW,cAGrB,CACID,SAAU,EACVnH,MAAO,kCACP1H,MAAO,CACH,CACI8O,UAAW,UACXs6B,MAAO,CACHh+B,KAAM,SAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,iBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,aAGrB,CACIiP,UAAW,WACXs6B,MAAO,CACHh+B,KAAM,eAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,uBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,QAGrB,CACIiP,UAAW,iBACXs6B,MAAO,CACHh+B,KAAM,4BAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,MACbmN,cAAepQ,KAAK8gC,kCACpBl9B,IAAMA,GAAQ5D,KAAKs8B,qBAAuB14B,EAC1C0X,eAAe,WAAD,4BAAE,WAAO3N,GAAP,eAAApH,EAAA,6DAC8C,IAAtD,EAAKkiB,SAAS3lB,SAAS+K,OAAO,mBAC9B,EAAK4a,SAAS3lB,SAASwkC,UAAU,EAAG,iBAAkB35B,EAAEpG,OAExD,EAAKkhB,SAAS3lB,SAASwkC,UAAU,EAAK7e,SAAS3lB,SAAS+K,OAAO,mBAAoB,iBAAkBF,EAAEpG,OAE3G,EAAK+0B,qBAAqBx5B,WAAW+K,OAAO,QAASF,EAAEpG,OACvD,EAAK80B,mBAAmBv5B,WAAW+K,OAAO,QAAS,OAC/CwE,EAAa,EAAKgqB,mBAAmBv5B,WAAW+K,OAAO,eAChDkB,OAAO,CAAC,WAAY,IAAKpB,EAAEpG,QAT1B,SAUN8K,EAAW7J,OAVL,OAWZ,EAAK6zB,mBAAmBv5B,WAAW+K,OAAO,aAAcwE,GAC3B,OAAzB,EAAKyrB,sBAAqDj9B,IAAzB,EAAKi9B,iBACtC,EAAKA,gBAAgBh7B,WAAW+K,OAAO,YAAY,GAb3C,2CAAF,mDAAC,KAmBvB,CACIqE,UAAW,eACXs6B,MAAO,CACHh+B,KAAM,+BAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,sCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,MACbmc,aAAc,CAAC/c,EAAUgd,EAAWC,IACzB,QAAUjd,EAASwN,IAAM,sDAAgDxN,EAASsqC,cAAgB,8DAAqDtqC,EAASuqC,mBAAqB,iBAEhMx8B,cAAepQ,KAAK6gC,gCACpBj9B,IAAMA,GAAQ5D,KAAKq8B,mBAAqBz4B,IAGhD,CACIsO,UAAW,aAGf,CACIA,UAAW,UAAWE,cAAe,CACjC0C,KAAM,SACNvN,MAAO,EACP+T,eAAiB3N,IACG,OAAZA,EAAEpG,WAA6B1G,IAAZ8M,EAAEpG,MAAkC,KAAZoG,EAAEpG,OAC7CoG,EAAEC,UAAUC,OAAO,QAAS,MAK5C,CACIqE,UAAW,cACXs6B,MAAO,CACHh+B,KAAM,sBAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,oCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAc2d,GACLA,EAIMA,EAAK/Q,IAAM,IAAM+Q,EAAK9Q,OAAS,IAAM8Q,EAAKisB,MAAQ,IAHlD,KAQvB,CAAE36B,UAAW,SACb,CACIA,UAAW,gBACXs6B,MAAO,CACHh+B,KAAM,0BAEV2D,WAAY,cACZC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,4BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,UAK7B,CACIgP,SAAU,EACVnH,MAAO,QACP1H,MAAO,CACH,CACI8O,UAAW,aACXC,WAAY,eACZC,cAAe,CACX1B,OAAQ,IACR1F,QAAS,CACL5H,MAAO,CACH,OACA,SACA,QACA,aACA,OACA,CACI,WAAc,SACd,aAAgB,CACZ,EACA,EACA,GACA,IAGR,WACA,SACA,QACA,YACA,cACA,YACA,aACA,iBACA,iBACA,cACA,aACA,YACA,cACA,aACA,eACA,YACA,OACA,OACA,QACA,aAEJ0pC,WAAW,aAavDC,YAAa,YAIjB,gBAAC,eAAD,CAAc73B,SAAS,IACvB,gBAAC,gBAAD,CAAeJ,KAAK,cAAcI,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,MAC3D,gBAAC,YAAD,CAAW2G,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,IACpB,gBAAC,cAAD,CAAaA,SAAS,IACtB,gBAAC,eAAD,CAAcA,SAAS,IACvB,gBAAC,QAAD,CACIA,SAAS,EACTiO,iBAAkB,CAAC,GAAI,GAAI,GAAI,KAC/B0wB,YAAa,OACb3wB,sBAAsB,EACtBE,UAAU,EACV0wB,uBAAuB,IAE3B,gBAAC,SAAD,CAAQ/6B,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQ9G,SAAS,IACvD,gBAAC,SAAD,CAAQ6D,UAAW,eAAgBiD,QAAQ,gCAAmBE,SAAU,YACxE,gBAAC,SAAD,CAAQnD,UAAW,MAAOiD,QAAQ,YAC9B,gBAAC,eAAD,CAAc5C,QAAQ,8BAE1B,gBAAC,SAAD,CAAQL,UAAW,SAAUiD,QAAQ,SACjC,gBAAC,eAAD,CAAc5C,QAAQ,iCAE1B,gBAAC,SAAD,CAAQL,UAAW,SAAUiD,QAAQ,oBACrC,gBAAC,SAAD,CAAQjD,UAAW,OAAQiD,QAAQ,cACnC,gBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,qBAAaE,SAAS,SAAShH,SAAS,EAAM+Z,mBAAqBza,GAChGA,EAAEqM,WAET,gBAAC,eAAD,CAAczH,QAAQ,8CAE1B,gBAAC,SAAD,CAAQL,UAAW,kBAAmBiD,QAAQ,oBAC1C/C,cAAe,CACX+I,KAAM,kBAEV9M,SAAS,GACT,gBAAC,eAAD,CAAckE,QAAQ,6CAE1B,gBAAC,SAAD,CAAQL,UAAW,SAAUiD,QAAQ,oBACrC,gBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,WAAWE,SAAS,SAASjD,cAAe,CAC9E0C,KAAM,UACPzG,SAAS,IAEZ,gBAAC,SAAD,CAAQ6D,UAAW,OACfiD,QAAQ,UACRE,SAAS,SACThH,SAAS,EACT+D,cAAe,CACX+I,KAAM,gBAGV,gBAAC,eAAD,CAAc5I,QAAQ,mCAE1B,gBAAC,SAAD,CAAQL,UAAW,WAAYiD,QAAQ,WAAW9G,SAAS,IAC3D,gBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,cACtC/C,cAAe,CACX+I,KAAM,kBAEV9M,SAAS,GACT,gBAAC,eAAD,CAAckE,QAAQ,wCAE1B,gBAAC,SAAD,CAAQL,UAAW,QAASiD,QAAQ,QAAQ9G,SAAS,IAErD,gBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,QAAQ9G,SAAS,IAKrD,gBAAC,SAAD,CAAQ6D,UAAW,OAAQiD,QAAQ,gBAAW+3B,qBAAqB,EAAOC,aAAa,EAAM9+B,SAAS,EAClG++B,aAAc,CAAC/kB,EAAS9gB,KACpB8gB,EAAQwS,SAAWtzB,EAAM,GAAGyb,QAGpC,gBAAC,SAAD,CAAQ9Q,UAAW,cAAeiD,QAAQ,gBAAgB9G,SAAS,IACnE,gBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,gBAAgB9G,SAAS,IACnE,gBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,gBAAgB9G,SAAS,GAC/D,gBAAC,eAAD,CAAckE,QAAQ,yCAE1B,gBAAC,SAAD,CAAQL,UAAW,WACfiD,QAAQ,eACRE,SAAS,SACThH,SAAS,EACT+D,cAAe,CACX+I,KAAM,gBAGV,gBAAC,eAAD,CAAc5I,QAAQ,wCAG1B,gBAAC,SAAD,CAAQL,UAAW,mBAAoBiD,QAAQ,sBAC3C/C,cAAe,CACX+I,KAAM,kBAEV9M,SAAS,IAEb,gBAAC,SAAD,CAAQ6D,UAAW,YAAaiD,QAAQ,QAAQ9G,SAAS,IAEzD,gBAAC,SAAD,CAAQ6D,UAAW,aAAciD,QAAQ,QAAQ9G,SAAS,EAAO6+B,qBAAqB,IAItF,gBAAC,SAAD,CAAQh7B,UAAW,kBAAmB7D,SAAS,EAAO6+B,qBAAqB,IAC3E,gBAAC,SAAD,CAAQh7B,UAAW,YAAaiD,QAAQ,QAAQ9G,SAAS,IACzD,gBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,UAAU9G,SAAS,EAAO6+B,qBAAqB,GACjF,gBAAC,eAAD,CAAc36B,QAAQ,iCAE1B,gBAAC,SAAD,CAAQL,UAAW,WAAYiD,QAAQ,iBAAW9G,SAAS,EAAO6+B,qBAAqB,GACnF,gBAAC,eAAD,CAAc36B,QAAQ,uCAE1B,gBAAC,SAAD,CACIL,UAAW,iBACXiD,QAAQ,4BACR9G,SAAS,EACT6+B,qBAAqB,GACrB,gBAAC,eAAD,CAAc36B,QAAQ,2CAE1B,gBAAC,SAAD,CAAQL,UAAW,eAAgBiD,QAAQ,+BAAgB9G,SAAS,EAAO6+B,qBAAqB,IAEhG,gBAAC,SAAD,CAAQh7B,UAAW,cAAeiD,QAAQ,wBAAc9G,SAAS,EAAO6+B,qBAAqB,IAC7F,gBAAC,SAAD,CAAQh7B,UAAW,gBAAiBiD,QAAQ,4BAAiB9G,SAAS,EAAO6+B,qBAAqB,IAClG,gBAAC,SAAD,CAAQh7B,UAAW,YAAaiD,QAAQ,wBAAa9G,SAAS,GAC1D,gBAAC,eAAD,CAAckE,QAAQ,iDAE1B,gBAAC,SAAD,CAAQL,UAAW,QAASiD,QAAQ,QAAQ9G,SAAS,IACrD,gBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,oBAAeE,SAAU,OAAQhH,SAAS,IACpF,gBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,oBAAeE,SAAU,OAAQhH,SAAS,IACpF,gBAAC,SAAD,CAAQ6D,UAAW,gBAAiBiD,QAAQ,sBAAiBE,SAAU,OAAQhH,SAAS,IACxF,gBAAC,SAAD,CAAQ6D,UAAW,YAAaiD,QAAQ,YAAY9G,SAAS,EAAO6+B,qBAAqB,IACzF,gBAAC,SAAD,CAAQh7B,UAAW,UAAWiD,QAAQ,UAAU9G,SAAS,EAAO6+B,qBAAqB,IACrF,gBAAC,SAAD,CAAQh7B,UAAW,UAAWiD,QAAQ,UAAU9G,SAAS,EAAO6+B,qBAAqB,IACrF,gBAAC,SAAD,CAAQh7B,UAAW,gBAAiBiD,QAAQ,iBAAiB9G,SAAS,EAAO6+B,qBAAqB,IAClG,gBAAC,SAAD,CAAQh7B,UAAW,gBAAiBiD,QAAQ,iBAAiB9G,SAAS,EAAO6+B,qBAAqB,IAClG,gBAAC,SAAD,CAAQh7B,UAAW,gBAAiBiD,QAAQ,iBAAiB9G,SAAS,EAAO6+B,qBAAqB,IAClG,gBAAC,SAAD,CAAQh7B,UAAW,QAASmD,SAAS,UAAUF,QAAQ,QAAQ9G,SAAS,IACxE,gBAAC,SAAD,CAAQ6D,UAAW,QAASmD,SAAS,UAAUF,QAAQ,QAAQ9G,SAAS,IACxE,gBAAC,SAAD,CAAQ6D,UAAW,SAAUiD,QAAQ,cAAQ9G,SAAS,IACtD,gBAAC,SAAD,CAAQ6D,UAAW,YAAaiD,QAAQ,qBAAW9G,SAAS,IAC5D,gBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,yBAAc9G,SAAS,IACjE,gBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,SAAS9G,SAAS,IACxD,gBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,OAAO9G,SAAS,IACpD,gBAAC,SAAD,CAAQ6D,UAAW,YAAaiD,QAAQ,0BAAgB9G,SAAS,IACjE,gBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,cAAc9G,SAAS,IACjE,gBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,cAAc9G,SAAS,IACjE,gBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,cAAc9G,SAAS,IACjE,gBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,mBAAW9G,SAAS,IAC3D,gBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,gBAAW9G,SAAS,EAAO6+B,qBAAqB,EAAMG,eAAgBrtC,KAAKknC,aAAc7a,WAAYA,KAC5I,gBAAC,SAAD,CAAQna,UAAW,QAASiD,QAAQ,aAAQ9G,SAAS,EAAO6+B,qBAAqB,GAC7E,gBAAC,eAAD,CAAc36B,QAAQ,sCAE1B,gBAAC,SAAD,CAAQL,UAAW,YAAaiD,QAAQ,kBAAa9G,SAAS,EAAO6+B,qBAAqB,GACtF,gBAAC,eAAD,CAAc36B,QAAQ,2CAE1B,gBAAC,SAAD,CAAQL,UAAW,QAASiD,QAAQ,OAAO9G,SAAS,IACpD,gBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,QAAQ9G,SAAS,EAAO6+B,qBAAqB,IACpF,gBAAC,eAAD,CACIh4B,SAAS,EACTtH,UAAWgtB,SAM/B,gBAAC,QAAD,CAAOhqB,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMV,cAAepQ,KAAKqgC,6BAA8Bz8B,IAAMA,GAAQ5D,KAAK68B,gBAAkBj5B,EAC7IoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBmc,SAAU7sB,KAAKsiC,qBAAsBj0B,QAASrO,KAAK+J,MAAMgxB,kBACzD3uB,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,mCAAuBtK,KAAM,UAAW4I,KAAM,mCAAuBF,KAAM,UAC/EI,QAAUW,IACe3N,KAAK48B,eAAe95B,SAASgc,WAChCC,UAI0B,OAAtC/e,KAAKojC,mBAAmBE,OAAOh4B,KAC/BtL,KAAKojC,mBAAmBE,OAAOh4B,GAAK,GAEE,OAAtCtL,KAAKojC,mBAAmBG,OAAOj4B,KAC/BtL,KAAKojC,mBAAmBG,OAAOj4B,GAAK,GAEE,OAAtCtL,KAAKojC,mBAAmBI,OAAOl4B,KAC/BtL,KAAKojC,mBAAmBI,OAAOl4B,GAAK,GAEG,OAAvCtL,KAAKojC,mBAAmBK,QAAQn4B,KAChCtL,KAAKojC,mBAAmBK,QAAQn4B,GAAK,GAEI,OAAzCtL,KAAKojC,mBAAmBS,eACxB7jC,KAAKojC,mBAAmBS,aAAe,GAE3CjiC,IAAQ4E,KAAK7B,EAAe,+BACtB3E,KAAKojC,mBACL,CACE38B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAPL,uCAOU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,wBAEEe,YAAO,uCAA2B,UAAW,KAF/C,SAGQ,EAAK06B,uBAHb,uBAIQ,EAAK7Z,SAAS3lB,SAAS4M,UAJ/B,uBAKQ,EAAK+jB,qBALb,+BAQE7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KARzC,4CAPV,uDAkBKC,MAAMC,IACH,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,cAUvC,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KACPhN,KAAKsiC,4BAOzB,gBAAC,WAAD,CAAUlxB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAElH,gBAAC,IAAD,CAAMI,SAAU9R,KAAKojC,mBAAoBhzB,cAAepQ,KAAKugC,4BAA6B38B,IAAMA,GAAQ5D,KAAK48B,eAAiBh5B,GAC1H,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,iCACnD,gBAAC,aAAD,CAAYjD,UAAW,eAAgBE,cAAe,CAClD6N,OAAQ,YACT9N,WAAY,eACX,gBAAC,QAAD,CAAO3D,KAAK,sBAEhB,gBAAC,aAAD,CAAY0D,UAAW,UAAWmD,SAAU,SAAUlD,WAAY,cAAeC,cAAe,CAC5F6N,OAAQ,aAGR,gBAAC,QAAD,CAAOzR,KAAK,kBAEhB,gBAAC,aAAD,CAAY0D,UAAW,YAAamD,SAAU,OAAQlD,WAAY,aAAcC,cAAe,IAI3F,gBAAC,QAAD,CAAO5D,KAAK,0CAEhB,gBAAC,aAAD,CAAY0D,UAAW,YACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKy5B,gBACjBtR,kBAAkB,EAClB3kB,eAAe,EACf+X,iBAAiB,EACjBtY,YAAc2d,GACLA,EAIM,IAAMA,EAAK/Q,IAAM,IAAM+Q,EAAKkG,MAAQ,IAHpC,GAMfxU,UAAW,OAEf,gBAAC,QAAD,CAAO9D,KAAK,kBAEhB,gBAAC,aAAD,CAAY0D,UAAW,YACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKy5B,gBACjBtR,kBAAkB,EAClB3kB,eAAe,EACf+X,iBAAiB,EACjBtY,YAAc2d,GACLA,EAIM,IAAMA,EAAK/Q,IAAM,IAAM+Q,EAAKkG,MAAQ,IAHpC,GAMfxU,UAAW,OAEf,gBAAC,QAAD,CAAO9D,KAAK,uBAEhB,gBAAC,aAAD,CAAY0D,UAAW,YACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKy5B,gBACjBtR,kBAAkB,EAClB3kB,eAAe,EACf+X,iBAAiB,EACjBtY,YAAc2d,GACLA,EAIM,IAAMA,EAAK/Q,IAAM,IAAM+Q,EAAKkG,MAAQ,IAHpC,GAMfxU,UAAW,OAEf,gBAAC,QAAD,CAAO9D,KAAK,uBAEhB,gBAAC,aAAD,CAAY0D,UAAW,aACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK05B,kBACjBvR,kBAAkB,EAClB3kB,eAAe,EACf+X,iBAAiB,EACjBtY,YAAc2d,GACLA,EAIM,IAAMA,EAAK/Q,IAAM,IAAM+Q,EAAKkG,MAAQ,IAHpC,GAMfxU,UAAW,OAEf,gBAAC,QAAD,CAAO9D,KAAK,kBAEhB,gBAAC,aAAD,CAAY0D,UAAW,eAAgBmD,SAAU,SAAUlD,WAAY,cACnEC,cAAe,CACX6N,OAAQ,OAGZ,gBAAC,QAAD,CAAOzR,KAAK,uCAEhB,gBAAC,aAAD,CAAY0D,UAAW,eAAgBmD,SAAU,SAAUlD,WAAY,cACnEC,cAAe,CACX6N,OAAQ,OAGZ,gBAAC,QAAD,CAAOzR,KAAK,6BAGhB,gBAAC,aAAD,CAAY0D,UAAW,kBAAmBE,cAAe,CAAE7K,MAAO,MAAQ4K,WAAY,aAClF,gBAAC,QAAD,CAAO3D,KAAK,2BACZ,gBAAC,eAAD,CAAc+D,QAAQ,kDAE1B,gBAAC,aAAD,CAAYL,UAAW,YAAaC,WAAY,cAAeC,cAAe,CAC1EC,WAAYrS,KAAKomC,oBACjB9zB,UAAW,QACXrP,YAAa,UAIjB,gBAAC,aAAD,CAAYiP,UAAW,YACnB,gBAAC,QAAD,CAAO1D,KAAK,0BAQhC,gBAAC,QAAD,CAAOoC,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMV,cAAepQ,KAAKsgC,kCAAmC18B,IAAMA,GAAQ5D,KAAKq9B,qBAAuBz5B,EACvJoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBmc,SAAU7sB,KAAKuiC,0BAA2Bl0B,QAASrO,KAAK+J,MAAMixB,uBAC9D5uB,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C0B,UAAS,CAAC,OAAQ,eAAgB,oBAAqB,eAAeC,SAAS9N,EAAQoB,QAAQ2M,KAC/FC,KAAM,2CACNk5B,YAAa,CACTv4B,GAAI,+BAERjL,KAAM,UACN0I,KAAM,SACN+6B,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAK8+B,gCAAgCh8B,SAAS+K,OAAO,WAAW,KAEpEF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAK8+B,gCAAgCh8B,SAAS+K,OAAO,WAAW,MAGxEb,QAAS,KACQkG,YAAQ,mIAAmG,kDACjHvM,KAAMwM,IACT,IAAqB,IAAjBA,EAAuB,CACvB,IAAIm6B,EAAqB,CACrB1I,aAAc5kC,KAAKkkC,wBAAwB54B,GAC3C64B,cAAenkC,KAAKkkC,wBAAwBC,cAC5CP,QAAS5jC,KAAKkkC,wBAAwBN,QACtCQ,mBAAoBpkC,KAAKkkC,wBAAwBE,mBACjDN,aAAc9jC,KAAKkkC,wBAAwBJ,cAE/CliC,IAAQ4E,KAAK7B,EAAe,yCACxB2oC,EACA,CACI7mC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,wEAAwC,UAAW,KAC1D5H,KAAKuiC,6BAGL36B,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,OAExFC,MAAMC,IACLY,YAAOZ,EAAK,QAAS,aAOjD,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KACPhN,KAAKuiC,iCAOzB,gBAAC,WAAD,CAAUnxB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,gBAAC,IAAD,CAAMO,SAAU,EAAGH,SAAU9R,KAAKkkC,wBAAyB9zB,cAAepQ,KAAKwgC,iCAAkC58B,IAAMA,GAAQ5D,KAAK88B,oBAAsBl5B,GACtJ,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,mCACnD,gBAAC,aAAD,CAAYjD,UAAW,gBAAiBE,cAAe,CACnD6N,OAAQ,WACRvH,UAAU,CAAC,OAAQ,eAAgB,oBAAqB,eAAepK,SAAS9N,EAAQoB,QAAQ2M,MACjG4D,WAAY,eACX,gBAAC,QAAD,CAAO3D,KAAK,yBAEhB,gBAAC,aAAD,CAAY0D,UAAW,eAAgBE,cAAe,CAClD6N,OAAQ,KACRvH,UAAU,CAAC,iBAAkB,cAAe,QAAQpK,SAAS9N,EAAQoB,QAAQ2M,KAC7EuV,QAAS,CAAC,CACN5iB,SAAU,QACV8hB,KAAM,sBACNrW,QAAS,CACL6B,KAAM,uBACN5B,KAAM,cACN1I,KAAM,UACNmK,QAAiC,mBAAxB7N,EAAQoB,QAAQ2M,IACzBzB,KAAM,uBACNE,QAAS,KACL,IAAIugC,EAAsB,CACtB3I,aAAc5kC,KAAKkkC,wBAAwB54B,GAC3CkiC,WAAYxtC,KAAKkkC,wBAAwBsJ,WACzC1J,aAAc9jC,KAAKkkC,wBAAwBJ,cAE/CliC,IAAQ4E,KAAK7B,EAAe,8BACxB4oC,EACA,CACI9mC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,8DAAsC,UAAW,KACxD5H,KAAKuiC,6BAGL36B,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,OAExFC,MAAMC,IACLY,YAAOZ,EAAK,QAAS,YAK1CmL,WAAY,eACX,gBAAC,QAAD,CAAO3D,KAAK,6BAEhB,gBAAC,aAAD,CAAY0D,UAAW,qBAAsBE,cAAe,CACxD6N,OAAQ,WACRvH,UAAU,CAAC,OAAQ,eAAgB,oBAAqB,eAAepK,SAAS9N,EAAQoB,QAAQ2M,MACjG4D,WAAY,eACX,gBAAC,QAAD,CAAO3D,KAAK,kBAEhB,gBAAC,aAAD,CAAY0D,UAAW,kBAAmBE,cAAe,CACrDsG,UAAU,EACVtI,cAAgBzC,IACZ3N,KAAK69B,uBAAyBlwB,EAAEC,WAEpChK,IAAMA,IAAU5D,KAAK69B,uBAAyBj6B,IAC/CuO,WAAY,aAGX,gBAAC,QAAD,CAAO3D,KAAK,4BAEhB,gBAAC,aAAD,CAAY0D,UAAW,UAAWE,cAAe,CAC7C6N,OAAQ,WACRvH,UAAU,CAAC,OAAQ,eAAgB,oBAAqB,eAAepK,SAAS9N,EAAQoB,QAAQ2M,KAChGuV,QAAS,CAAC,CACN5iB,SAAU,QACV8hB,KAAM,mBACNrW,QAAS,CACL6B,KAAM,sBACN5B,KAAM,QACN1I,KAAM,UACN4I,KAAM,sBACN0F,UAAU,EACVxF,QAAS,KACL,IAAIygC,EAAoB,CACpBC,eAAgB1tC,KAAKkkC,wBAAwBN,QAC7Cva,UAAWrpB,KAAK+J,MAAMsf,WAE1BznB,IAAQ4E,KAAK7B,EAAe,iCACxB8oC,EACA,CACIhnC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACTiM,YAAM,uDAA+ClM,EAAIN,KAAKiG,KAAO,0MAA8I,SAInNuG,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IACH8L,YAAM,6DAA2C9L,EAAK,eAK3EmL,WAAY,eACX,gBAAC,QAAD,CAAO3D,KAAK,kBAEhB,gBAAC,aAAD,CAAY0D,UAAW,YAAaE,cAAe,CAC/CsG,UAAU,IAEV,gBAAC,QAAD,CAAOlK,KAAK,yBAEhB,gBAAC,aAAD,CAAY0D,UAAW,sBAAuBE,cAAe,CACzD6N,OAAQ,WACRvH,UAAU,GACXvG,WAAY,eACX,gBAAC,QAAD,CAAO3D,KAAK,0BAEhB,gBAAC,aAAD,CAAY0D,UAAW,iBAAkBE,cAAe,CACpDsG,UAAU,IAEV,gBAAC,QAAD,CAAOlK,KAAK,qBAEhB,gBAAC,aAAD,CAAY0D,UAAW,aAAcE,cAAe,CAChD6N,OAAQ,WACRvH,UAAU,EACVtI,cAAepQ,KAAK4gC,+BACpBh9B,IAAMA,GAAQ5D,KAAK49B,kBAAoBh6B,GACxCuO,WAAY,eACX,gBAAC,QAAD,CAAO3D,KAAK,iBAEhB,gBAAC,aAAD,CAAY0D,UAAW,cAAeE,cAAe,CACjD6N,OAAQ,WACRvH,UAAU,CAAC,OAAQ,eAAgB,oBAAqB,eAAepK,SAAS9N,EAAQoB,QAAQ2M,KAChGuV,QAAS,CAAC,CACN5iB,SAAU,QACV8hB,KAAM,gCACNrW,QAAS,CACL6B,KAAM,uBACN5B,KAAM,cACN1I,KAAM,UACNmK,UAAS,CAAC,OAAQ,eAAgB,oBAAqB,eAAeC,SAAS9N,EAAQoB,QAAQ2M,KAC/FzB,KAAM,uBACNE,QAAS,KACQkG,YAAQ,yJAAiH,kDAC/HvM,KAAMwM,IACT,IAAqB,IAAjBA,EAAuB,CACvB,IAAIo6B,EAAsB,CACtB3I,aAAc5kC,KAAKkkC,wBAAwB54B,GAC3CkiC,WAAYxtC,KAAKkkC,wBAAwBsJ,WACzCjJ,YAAavkC,KAAKkkC,wBAAwBK,aAE9C3iC,IAAQ4E,KAAK7B,EAAe,iDACxB4oC,EACA,CACI9mC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,8DAAsC,UAAW,KACxD5H,KAAKuiC,6BAGL36B,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,OAExFC,MAAMC,IACLY,YAAOZ,EAAK,QAAS,eAQlDmL,WAAY,eACX,gBAAC,QAAD,CAAO3D,KAAK,kBAEhB,gBAAC,aAAD,CAAY0D,UAAW,WAAYioB,QAAS,EAAG/nB,cAAe,CAC1DsG,UAAU,GAEXvG,WAAY,aACX,gBAAC,QAAD,CAAO3D,KAAK,uBAIpB,gBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,aACnD,gBAAC,IAAD,CACIhG,GAAG,YACHiF,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK0mC,iBACjBpyB,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRyM,cAAepQ,KAAKkgC,wBACpB3rB,mBAAoBvU,KAAKggC,6BACzBrJ,oBAAqB32B,KAAKmgC,6BAC1BwN,eAAiBhgC,IACK,SAAdA,EAAEw8B,SAA2C,SAArBx8B,EAAEmiB,OAAO8d,UACjBjgC,EAAEgH,IAAIk5B,WAGlBC,KAAOngC,EAAEogC,YAAYC,YAAYC,GAAG,QAAS,KACzC,GAAyB,cAArBtgC,EAAEgH,IAAIrO,KAAK4nC,MAA0C,wBAArBvgC,EAAEgH,IAAIrO,KAAK4nC,MAC3CluC,KAAKy8B,WAAW35B,SAASm3B,qBACtB,CACH,IAAI3zB,EAAO,CACPo+B,SAAU/2B,EAAEgH,IAAIrO,KAAKgF,GACrB4U,MAAOvS,EAAEgH,IAAIrO,KAAK4Z,MAClB4G,MAAOnZ,EAAEgH,IAAIrO,KAAKwgB,MAClB0mB,WAAYxtC,KAAK49B,kBAAkB96B,WAAW+K,OAAO,UAE7B,IAAxBF,EAAEgH,IAAIrO,KAAKugB,UACX7mB,KAAK69B,uBAAuB/6B,WAAW+K,OAAO,QAASF,EAAEgH,IAAIrO,KAAK4Z,OAEtEte,IAAQ4E,KAAK7B,EAAe,iCAAkC2B,EAAM,CAChEG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKy8B,WAAW35B,SAAS4M,UAEzBoD,YAAM,8DAA4ClM,EAAIN,KAAKQ,aAAc,UAGhFC,MAAMC,IACH8L,YAAM,8DAA4C9L,EAAK,eASnF+4B,kBAAoBpyB,IACI,UAAhBA,EAAEuE,WAA0C,YAAjBvE,EAAEy5B,aAC7Bz5B,EAAEyE,cAAcI,SAAY7E,EAAEgH,IAAIrO,MAA6B,cAArBqH,EAAEgH,IAAIrO,KAAK4nC,OAErC,UAAhBvgC,EAAEuE,WAA0C,YAAjBvE,EAAEy5B,aAC7Bz5B,EAAEyE,cAAcI,SAAY7E,EAAEgH,IAAIrO,MAA6B,cAArBqH,EAAEgH,IAAIrO,KAAK4nC,QAG7DtqC,IAAMA,GAAQ5D,KAAKy8B,WAAa74B,GAEhC,gBAAC,UAAD,CACIkR,KAAK,MACLG,eAAe,IAEnB,gBAAC,eAAD,CAAcC,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,EAAM+G,cAAc,IACzE,gBAAC,SAAD,CAAQlD,UAAW,WAAYiD,QAAQ,YAAYE,SAAU,SAAUD,cAAc,IACrF,gBAAC,SAAD,CAAQlD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SAUtD,gBAAC,SAAD,CAAQnD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SAAU4K,OAAQ,aACxE,gBAAC,SAAD,CAAQ/N,UAAW,iBAAkBiD,QAAQ,WAAWE,SAAU,SAAU4K,OAAQ,WAAY7K,cAAc,IAC9G,gBAAC,SAAD,CAAQlD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SAAUD,cAAc,IAC9E,gBAAC,SAAD,CAAQlD,UAAU,YAAYkD,cAAc,EAAOD,QAAQ,GACvD7R,MAAO,GACP6qC,gBAAgB,EAChB/hB,cAAc,EACdC,WAAY+hB,UAUpC,gBAAC,QAAD,CAAOx9B,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBmc,SAAU7sB,KAAKyiC,iBAAkBp0B,QAASrO,KAAK+J,MAAM8xB,cACrDzvB,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,qBAAiBtK,KAAM,UAAW4I,KAAM,qBAAiBF,KAAM,QACnEI,QAAS,KACgBhN,KAAKu9B,WAAWz6B,SAASgc,WAC5BC,SAIhBnd,IAAQ6F,IAAI9C,EAAe,8BAAgC3E,KAAKglC,eAAeN,SAAW,IAAM1kC,KAAKglC,eAAeH,WAChH,CACIp+B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACTiM,YAAM,6CAA0ClM,EAAIN,KAAKiG,KAAO,6LAAsI,SAItMuG,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IACH8L,YAAM,6DAA2C9L,EAAK,aAO9E,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KACPhN,KAAKyiC,wBAOzB,gBAAC,WAAD,CAAUrxB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,gBAAC,IAAD,CAAMO,SAAU,EAAGH,SAAU9R,KAAKglC,eAAgB50B,cAAepQ,KAAK0gC,wBAAyB98B,IAAMA,GAAQ5D,KAAKu9B,WAAa35B,GAC3H,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,+BACnD,gBAAC,aAAD,CAAYjD,UAAW,aAAcC,WAAW,cAAcC,cAAe,CACzEhP,MAAO,CAAC,CACJwV,MAAO,EAAG2G,KAAM,0BAEpB,CACI3G,MAAO,EAAG2G,KAAM,2BAEpB,CACI3G,MAAO,EAAG2G,KAAM,iBAEpBjN,UAAW,QACXrP,YAAa,OACbqY,eAAiB3N,IACb3N,KAAKwkC,iBAAiBK,WAAal3B,EAAEpG,SAGzC,gBAAC,QAAD,CAAOiH,KAAK,sBACZ,gBAAC,eAAD,CAAc+D,QAAQ,iDAS1C,gBAAC,QAAD,CAAO3B,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBmc,SAAU7sB,KAAKwiC,mBAAoBn0B,QAASrO,KAAK+J,MAAMkxB,gBACvD7uB,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,eAAgBtK,KAAM,UAAW4I,KAAM,eAAgBF,KAAM,QACjEI,QAAS,KAEP,GADuBhN,KAAKs9B,aAAax6B,SAASgc,WAC9BC,QAApB,CAII,IAAIsvB,EAAI,IAAI9lB,KAAKvoB,KAAKwkC,iBAAiBlc,gBACvC+lB,EAAEC,SAASD,EAAEE,WAAa,GAC1BvuC,KAAKwkC,iBAAiBlc,eAAiB+lB,EACvCruC,KAAKwkC,iBAAiBG,SAAW3kC,KAAKwkC,iBAAiBG,SAAS6J,QAAQ,GACxE5sC,IAAQ4E,KAAK7B,EAAe,yBACxB3E,KAAKwkC,iBACL,CACI/9B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAPF,uCAOO,WAAOC,GAAP,SAAAL,EAAA,0DACCK,EAAIN,KAAKO,QADV,gCAEO,EAAK41B,WAAW35B,SAAS4M,UAFhC,uBAGO9N,IAAQ6F,IAAI9C,EAAe,gCAAkC,EAAK64B,YAAY4L,WAAW99B,GAAI,CAC/F7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACF,MAAMyiC,EAAaF,WAAWviC,EAAIN,KAAKiG,MACvC,EAAKqxB,kBAAkB96B,WAAW+K,OAAO,QAASw7B,GACjB,OAA7B,EAAK5M,WAAW35B,WAChB,EAAK25B,WAAW35B,SAASyuB,iBACzB,EAAKiM,YAAc,KACnB,EAAKf,WAAW35B,SAAS+K,OAAO,mBAAoB,IAExD,EAAKJ,SAAS,CACVwtB,iBAAiB,MAjB9B,6BAwBCnoB,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,QAxBzE,2CAPP,uDAkCKC,MAAMC,IACH8L,YAAM9L,EAAK,cAMnC,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KACPhN,KAAKwiC,0BAOzB,gBAAC,WAAD,CAAUpxB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,gBAAC,IAAD,CAAMO,SAAU,EAAGH,SAAU9R,KAAKwkC,iBAAkBp0B,cAAepQ,KAAKygC,0BAA2B78B,IAAMA,GAAQ5D,KAAKs9B,aAAe15B,GACjI,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,wBACnD,gBAAC,aAAD,CAAYjD,UAAW,kBAAmBC,WAAW,cAAcC,cAC/D,CACIC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,QACLic,WAAY,CACRmkB,SAAU,mBAEdr+B,QAASrD,EAAe,kBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,QACXrP,YAAa,OACbsY,iBAAiB,IAGrB,gBAAC,QAAD,CAAO/M,KAAK,+BACZ,gBAAC,eAAD,CAAc+D,QAAQ,sDAE1B,gBAAC,aAAD,CAAYL,UAAW,UAAWC,WAAW,cAAcC,cACvD,CACIC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,uCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,MACbsY,iBAAiB,IAGrB,gBAAC,QAAD,CAAO/M,KAAK,WAEhB,gBAAC,aAAD,CAAY0D,UAAW,WAAYC,WAAW,cAAcC,cAAe,CACvE6N,OAAQ,aAER,gBAAC,QAAD,CAAOzR,KAAK,yBACZ,gBAAC,eAAD,CAAc+D,QAAQ,0CAG1B,gBAAC,aAAD,CAAYL,UAAW,iBAAkBC,WAAY,YAAaC,cAAe,CAC7ElO,KAAM,aAEN,gBAAC,QAAD,CAAOsK,KAAK,oBACZ,gBAAC,eAAD,CAAc+D,QAAQ,2CAE1B,gBAAC,aAAD,CAAYL,UAAU,SAASioB,QAAS,GACpC,gBAAC,QAAD,CAAO3rB,KAAK,YAEhB,gBAAC,aAAD,CAAY0D,UAAU,WAAWioB,QAAS,GACtC,gBAAC,QAAD,CAAO3rB,KAAK,0BAShC,gBAAC,QAAD,CAAOoC,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBmc,SAAU7sB,KAAK2iC,wBAAyBt0B,QAASrO,KAAK+J,MAAM+xB,qBAC5D1vB,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KACPhN,KAAK2iC,+BAOzB,gBAAC,WAAD,CAAUvxB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,gBAAC,IAAD,CAAMO,SAAU,GACZ,gBAAC,YAAD,CAAWD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,wBACnD,gBAAC,IAAD,CACIhG,GAAG,mBACHiF,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKmmC,mBACjB7xB,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRgzB,oBAAqB32B,KAAK4hC,qCAC1BxxB,cAAepQ,KAAK0hC,gCACpBntB,mBAAoBvU,KAAK2hC,qCACzB/9B,IAAMA,GAAQ5D,KAAKk8B,mBAAqBt4B,GAGxC,gBAAC,eAAD,CAAcsR,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,EAAM+G,cAAc,IACzE,gBAAC,SAAD,CAAQlD,UAAW,WAAYiD,QAAQ,YAAYE,SAAU,SAAUD,cAAc,IACrF,gBAAC,SAAD,CAAQlD,UAAW,iBAAkBiD,QAAQ,kBAAkBE,SAAU,WACrE+S,mBAAqBC,GACc,wBAA3BA,EAAQC,eACD,KAGA,IAAIC,KAAKF,EAAQC,gBAEhClT,cAAc,IAClB,gBAAC,SAAD,CAAQlD,UAAW,WAAYiD,QAAQ,WAAWE,SAAU,SAAU4K,OAAQ,WAAY7K,cAAc,IACxG,gBAAC,SAAD,CAAQlD,UAAW,YAAaiD,QAAQ,QAAQE,SAAU,SAAUD,cAAc,IAClF,gBAAC,SAAD,CAAQlD,UAAW,WAAYiD,QAAQ,QAAQE,SAAU,SAAUD,cAAc,IACjF,gBAAC,SAAD,CAAQlD,UAAW,WAAYiD,QAAQ,mBAAWE,SAAU,SAAUD,cAAc,IACpF,gBAAC,SAAD,CAAQlD,UAAW,SAAUiD,QAAQ,SAASE,SAAU,SAAUD,cAAc,SASpG,gBAAC,QAAD,CAAOxE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAMmxB,eACpBpwB,MAAO9K,KAAK+J,MAAMyxB,cAClBpvB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAS,KACPhN,KAAK0iC,yBAOzB,gBAAC,WAAD,CAAUtxB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,wBAAMd,GAAG,OAAOoJ,SAAW5K,IACvB3N,KAAKilC,gBAAgBvB,QAAQp4B,GAAKtL,KAAK+J,MAAMsf,UAC7CznB,IAAQ4E,KAAK7B,EAAe,6BAA8B3E,KAAKilC,gBAAiB,CAC5Ex+B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAMC,IACCA,EAAIN,KAAKO,SACTe,YAAO,qCAA2B,UAAW,KAC7C5H,KAAKkrB,cAAchB,UAAYlqB,KAAK+J,MAAMsf,UAC1CrpB,KAAK4qB,gBAAgB9nB,SAAS4M,WAE9B9H,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,OAG1FC,MAAMC,IACH,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,UAMvB1F,EAAE0J,mBAEF,gBAAC,IAAD,CAAMpF,SAAU,EAAGH,SAAU9R,KAAKilC,gBAAiB70B,cAAepQ,KAAK2gC,yBAA0B/8B,IAAMA,GAAQ5D,KAAK+8B,YAAcn5B,GAC9H,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,2BACnD,gBAAC,aAAD,CAAYjD,UAAW,QAASC,WAAY,aACxC,gBAAC,QAAD,CAAO3D,KAAK,+BAEhB,gBAAC,aAAD,CAAY0D,UAAW,eAAgBC,WAAY,cAC/C,gBAAC,QAAD,CAAO3D,KAAK,uBAEhB,gBAAC,aAAD,CAAY0D,UAAU,WAAWioB,QAAS,GACtC,gBAAC,QAAD,CAAO3rB,KAAK,4BACZ,gBAAC,eAAD,CAAc+D,QAAQ,oDAI9B,gBAAC,aAAD,CAAYsG,oBAAoB,OAC5B3B,cAAe,CACX1I,KAAM,OACN1B,KAAM,OACN5I,KAAM,UACN0I,KAAM,MACNuK,mBAAmB,MAGxB,8BAKnB,uBAAKlH,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CACId,GAAG,iBACHiF,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKorB,sBACjB9W,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBgR,OAAQ,CACJ1X,SAAS,EACTwT,SAAU,UAEd7T,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRyM,cAAepQ,KAAKoqB,6BACpB7V,mBAAoBvU,KAAKigC,kCACzBtJ,oBAAqB32B,KAAKogC,kCAC1Bx8B,IAAMA,GAAQ5D,KAAK4qB,gBAAkBhnB,GAErC,gBAAC,SAAD,CACI8kB,SAAU,SACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,gBAAC,eAAD,CAAcvX,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,gBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SACtD,gBAAC,SAAD,CAAQnD,UAAW,eAAgBiD,QAAQ,2BAC3C,gBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,0BAAewK,eAAgB,EAAGtK,SAAU,WACnF,gBAAC,SAAD,CAAQnD,UAAW,eAAgBiD,QAAQ,oBAAcwK,eAAgB,EAAGtK,SAAU,iBAQ1G,gBAAC,QAAD,CAAOzE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAM84B,mBACpB/3B,MAAO,0EACPsB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAKktB,qBADJ,uBAED,EAAKmP,wBAFJ,2CAAF,kDAAC,OAS1B,gBAAC,WAAD,CAAUxxB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aAEX,gBAAC,IAAD,CAAMgC,SAAU,EAAGH,SAAU9R,KAAKmlC,qBAAsB/0B,cAAepQ,KAAKkhC,8BAA+Bt9B,IAAMA,GAAQ5D,KAAKg9B,iBAAmBp5B,GAC7I,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAW,gBAAiBC,WAAY,cAChDC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,MACbqY,eAAe,WAAD,4BAAE,WAAO3N,GAAP,eAAApH,EAAA,6DACZ,EAAKi2B,+BAA+B15B,WAAW+K,OAAO,QAAS,OAC3DwE,EAAa,EAAKmqB,+BAA+B15B,WAAW+K,OAAO,eAC5DkB,OAAO,CAAC,WAAY,IAAKpB,EAAEpG,QAH1B,SAIN8K,EAAW7J,OAJL,OAKZ,EAAKg0B,+BAA+B15B,WAAW+K,OAAO,aAAcwE,GALxD,2CAAF,mDAAC,KAUnB,gBAAC,eAAD,CAAcE,QAAQ,mDACtB,gBAAC,QAAD,CAAO/D,KAAK,8BAEhB,gBAAC,aAAD,CAAY0D,UAAW,SAAUC,WAAY,cACzCC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,sCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,MACbmN,cAAepQ,KAAKshC,4CACpB19B,IAAMA,GAAQ5D,KAAKw8B,+BAAiC54B,IAIxD,gBAAC,eAAD,CAAc2O,QAAQ,sDACtB,gBAAC,QAAD,CAAO/D,KAAK,kCAIpB,gBAAC,aAAD,CAAYqK,oBAAoB,OAC5B3B,cAAe,CACX1I,KAAM,2CACN1B,KAAM,OACN5I,KAAM,UACN0I,KAAM,WACNI,QAAS,KACL,IAAIi8B,EAAc,GACdwF,EAAkB,+HAEtBzuC,KAAKyoB,SAAS3lB,SAAS63B,qBAAqBtzB,QAASsN,IACjDs0B,EAAYzmC,KAAK,CACb6mB,UAAWpG,SAAStO,OAG5B85B,GAAmB,kEACnBzuC,KAAKyoB,SAAS3lB,SAAS4R,sBAAsBrN,QAAQ,CAACsN,EAAKhF,KACvD8+B,GAAmB9+B,EAAQ,EAAI,KAAOgF,EAAI9E,IAAM,IAAM8E,EAAI7E,OAAS,UAEvE2+B,GAAmB,SACnBzuC,KAAKmlC,qBAAqBS,WAAaqD,EAC1B/1B,YAAQu7B,EAAiB,uCAC/B9nC,KAAMwM,KACY,IAAjBA,GAEAvR,IAAQ4E,KAAK7B,EAAe,gCAAiC3E,KAAKmlC,qBAAsB,CACpF1+B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,uBAEEe,YAAO,qCAA2B,UAAW,KAF/C,SAGQ,EAAK6rB,qBAHb,uBAIQ,EAAKhL,SAAS3lB,SAAS4M,UAAU2jB,KAAK,KAExC,EAAKuP,0BANX,6BASEh7B,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KATrF,2CALV,uDAiBKC,MAAMC,IACH,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,iBAYxC,+BAOvB,gBAAC,QAAD,CAAOzC,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAMqxB,wBACpBtwB,MAAO,mFACPsB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAKktB,qBADJ,uBAED,EAAKqP,4BAFJ,2CAAF,kDAAC,OAS1B,gBAAC,WAAD,CAAU1xB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aAEX,gBAAC,IAAD,CAAMgC,SAAU,EAAGH,SAAU9R,KAAKslC,yBAA0Bl1B,cAAepQ,KAAKmhC,kCAAmCv9B,IAAMA,GAAQ5D,KAAKi9B,qBAAuBr5B,GACzJ,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAW,aAAcC,WAAY,cAC7CC,cAAe,CACXC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,oCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAc2d,GACLA,EAIMA,EAAK/Q,IAAM,IAAM+Q,EAAK9Q,OAAS,IAAM8Q,EAAKisB,MAAQ,IAHlD,KASnB,gBAAC,eAAD,CAAct6B,QAAQ,6CACtB,gBAAC,QAAD,CAAO/D,KAAK,yBAGpB,gBAAC,aAAD,CAAYqK,oBAAoB,OAC5B3B,cAAe,CACX1I,KAAM,oDACN1B,KAAM,OACN5I,KAAM,UACN0I,KAAM,WACNI,QAAS,KACL,IAAIi8B,EAAc,GACdwF,EAAkB,0IAEtBzuC,KAAKyoB,SAAS3lB,SAAS63B,qBAAqBtzB,QAASsN,IACjDs0B,EAAYzmC,KAAK,CACb6mB,UAAWpG,SAAStO,OAG5B85B,GAAmB,kEACnBzuC,KAAKyoB,SAAS3lB,SAAS4R,sBAAsBrN,QAAQ,CAACsN,EAAKhF,KACvD8+B,GAAmB9+B,EAAQ,EAAI,KAAOgF,EAAI9E,IAAM,IAAM8E,EAAI7E,OAAS,UAEvE2+B,GAAmB,SACnBzuC,KAAKslC,yBAAyBM,WAAaqD,EAC9B/1B,YAAQu7B,EAAiB,gDAC/B9nC,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK7B,EAAe,oCAAqC3E,KAAKslC,yBAA0B,CAC5F7+B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,uBAEEe,YAAO,uDAA+B,UAAW,KAFnD,SAGQ,EAAK6rB,qBAHb,uBAIQ,EAAKhL,SAAS3lB,SAAS4M,UAAU2jB,KAAK,KAExC,EAAKyP,8BANX,6BASEl7B,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KATrF,2CALV,uDAiBKC,MAAMC,IACH,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,iBAYxC,+BAMvB,gBAAC,QAAD,CAAOzC,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAMsxB,iBACpBvwB,MAAO,wBACPsB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,gBACNtK,KAAM,UACN4I,KAAM,gBACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAM2I,gBACrBrE,SAAS,EACTrB,QAAQ,WAAD,4BAAE,WAAOW,GAAP,SAAApH,EAAA,sDACa,iIACL2M,YADK,iIACgB,+EAC3BvM,KAAMwM,KACY,IAAjBA,IACA,EAAK1F,SAAS,CACViF,iBAAiB,IAErB9Q,IAAQ4E,KAAK7B,EAAe,0BAA2B,EAAK6gC,kBAAmB,CAC3E/+B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAK4G,SAAS,CAChBiF,iBAAiB,IAHvB,uBAKQ,EAAKqwB,sBALb,OAMEn7B,YAAO,iDAAkC,UAAW,KANtD,uBAQE,EAAK6F,SAAS,CACViF,iBAAiB,IAErB9K,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KAXrF,4CALV,uDAmBKC,MAAMC,IAIH,GAHA,EAAKyG,SAAS,CACViF,iBAAiB,IAEjB1L,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,aA3C1B,2CAAF,mDAAC,KAsDhB,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAKw8B,sBADJ,2CAAF,kDAAC,OAQ1B,gBAAC,WAAD,CAAU3xB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAMgC,SAAU,EAAGH,SAAU9R,KAAKwlC,kBAAmBp1B,cAAepQ,KAAK4T,2BAA4BhQ,IAAMA,GAAQ5D,KAAK6T,cAAgBjQ,GACpI,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAW,eAAgBC,WAAY,cAC/CC,cAAe,CACXhP,MAAO,CACH,CAAEmc,KAAM,gCAAsB3G,MAAO,GACrC,CAAE2G,KAAM,qBAAmB3G,MAAO,GAClC,CAAE2G,KAAM,wCAA8B3G,MAAO,GAC7C,CAAE2G,KAAM,iCAAuB3G,MAAO,IAG1CtG,UAAW,QACXrP,YAAa,OACbqY,eAAiB3N,IACG,IAAZA,EAAEpG,MAA0B,IAAZoG,EAAEpG,OAClBvH,KAAKinC,0CAA0CnkC,WAAW+K,OAAO,WAAW,GAC5E7N,KAAKinC,0CAA0CnkC,WAAW+K,OAAO,SAAS,KAG1E7N,KAAKinC,0CAA0CnkC,WAAW+K,OAAO,WAAW,GAC5E7N,KAAKinC,0CAA0CnkC,WAAW+K,OAAO,SAAS,OAKtF,gBAAC,eAAD,CAAc0E,QAAQ,uCACtB,gBAAC,QAAD,CAAO/D,KAAK,sBAEhB,gBAAC,aAAD,CAAY0D,UAAW,QAASC,WAAY,YAAaC,cAAe,CACpEhC,cAAgBzC,IACZ3N,KAAK+T,oCAAsCpG,EAAEC,WAEjDhK,IAAMA,IAAU5D,KAAK+T,oCAAsCnQ,GAC3DoQ,QAAUrG,IACN9C,SAASoJ,eAAe,8BAA8BC,UAAYlU,KAAK+T,oCAAoCjR,WAAW+K,OAAO,QAAQrB,UAGzI,gBAAC,eAAD,CAAc+F,QAAQ,gCACtB,gBAAC,QAAD,CAAO/D,KAAK,WAEhB,gBAAC,aAAD,CAAY0D,UAAW,mBAAoBC,WAAY,aACnDC,cAAe,CACX5D,KAAM,+BACNH,SAAS,EACT+B,cAAepQ,KAAKgiC,+CACpBp+B,IAAMA,IAAU5D,KAAKinC,0CAA4CrjC,OAK7E,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,uBAAKhC,UAAU,OACX,uBAAKA,UAAU,YACX,kEAEJ,uBAAKA,UAAU,WAAWd,GAAG,6BAA6Be,MAAO,CAAEiE,UAAW,aAKnF,+BAMvB,gBAAC,QAAD,CAAOvD,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAM6xB,gBACpB9wB,MAAO,yDACPsB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,yDACNtK,KAAM,UACN4I,KAAM,yDACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAM2I,gBACrBrE,SAAS,EACTrB,QAAQ,WAAD,4BAAE,WAAOW,GAAP,iBAAApH,EAAA,sDAED0iC,EAAc,GACdwF,EAAkB,8HAEtB,EAAKhmB,SAAS3lB,SAAS63B,qBAAqBtzB,QAASsN,IACjDs0B,EAAYzmC,KAAK,CACb6mB,UAAWpG,SAAStO,OAG5B85B,GAAmB,kEACnB,EAAKhmB,SAAS3lB,SAAS4R,sBAAsBrN,QAAQ,CAACsN,EAAKhF,KACvD8+B,GAAmB9+B,EAAQ,EAAI,KAAOgF,EAAI9E,IAAM,IAAM8E,EAAI7E,OAAS,UAEvE2+B,GAAmB,SACnB,EAAK3I,iBAAiBF,WAAaqD,EACtB/1B,YACTu7B,EACA,8BACG9nC,KAAMwM,KACY,IAAjBA,IACA,EAAK1F,SAAS,CACViF,iBAAiB,IAErB9Q,IAAQ4E,KAAK7B,EAAe,0CAA2C,EAAKmhC,iBAAkB,CAC1Fr/B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAK4G,SAAS,CAChBiF,iBAAiB,IAHvB,uBAKQ,EAAK0vB,qBALb,OAMEx6B,YAAO,iDAAkC,UAAW,KANtD,uBAQE,EAAK6F,SAAS,CACViF,iBAAiB,IAErB9K,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KAXrF,4CALV,uDAmBKC,MAAMC,IAIH,GAHA,EAAKyG,SAAS,CACViF,iBAAiB,IAEjB1L,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,aA3D1B,2CAAF,mDAAC,KAsEhB,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAK67B,qBADJ,2CAAF,kDAAC,OAQ1B,gBAAC,WAAD,CAAUhxB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAMgC,SAAU,EAAGH,SAAU9R,KAAK8lC,iBAAkB11B,cAAepQ,KAAKwhC,0BAA2B59B,IAAMA,GAAQ5D,KAAKo9B,aAAex5B,GACjI,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAW,UAAWyc,YAAY,EAC1Cxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8hB,gBACjBne,QAAS,KACTH,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXiJ,iBAAiB,EACjBnL,cAAepQ,KAAK4hB,4BACpBhe,IAAMA,IAAU5D,KAAKuhB,eAAiB3d,GACtC0X,eAAiB3N,IACG,KAAZA,EAAEpG,MAA2B,OAAZoG,EAAEpG,WAA6B1G,IAAZ8M,EAAEpG,QAItCvH,KAAK+hB,YAAYC,QAAUrU,EAAEpG,MAC7BvH,KAAKgmC,gBAAgBhkB,QAAUrU,EAAEpG,MACjCvH,KAAKiiB,oBAAoBzZ,WAMrC,gBAAC,QAAD,CAAOgG,KAAK,eACZ,gBAAC,eAAD,CAAc+D,QAAQ,mCAE1B,gBAAC,aAAD,CAAYL,UAAW,cACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKiiB,oBACjBhf,YAAa,eACbqP,UAAW,eACXlC,cAAepQ,KAAK6hB,gCACpBje,IAAMA,IAAU5D,KAAKwhB,mBAAqB5d,GAC1C0X,eAAiB3N,IACG,KAAZA,EAAEpG,MAA2B,OAAZoG,EAAEpG,QAInBvH,KAAKgmC,gBAAgBha,YAAcre,EAAEpG,MACrCvH,KAAKguB,uBAAuBxlB,WAIxC,gBAAC,QAAD,CAAOgG,KAAK,0BACZ,gBAAC,eAAD,CAAc+D,QAAQ,8CAE1B,gBAAC,aAAD,CAAYL,UAAW,iBACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKguB,uBACjB/qB,YAAc2d,GACLA,EAIMA,EAAK8tB,KAAO,MAAQ9tB,EAAK/Q,IAHzB,GAMfyC,UAAW,KACX8M,aAAc,CAAC/c,EAAUgd,EAAWC,IACzB,qBAAuBjd,EAASssC,KAAO,KAAOtsC,EAASqsC,KAAO,IAAMrsC,EAASwN,IAAM,SAE9FO,cAAepQ,KAAKyhC,mCACpB79B,IAAMA,IAAU5D,KAAKitB,sBAAwBrpB,KAEjD,gBAAC,QAAD,CAAO4K,KAAK,eACZ,gBAAC,eAAD,CAAc+D,QAAQ,0CAE1B,gBAAC,aAAD,CAAYL,UAAW,eAAgBC,WAAY,cAC/CC,cAAe,CACXhP,MAAO,CACH,CAAEmc,KAAM,gCAAsB3G,MAAO,GACrC,CAAE2G,KAAM,qBAAmB3G,MAAO,GAClC,CAAE2G,KAAM,wCAA8B3G,MAAO,IAGjDtG,UAAW,QACXrP,YAAa,OACbqY,eAAiB3N,IACG,IAAZA,EAAEpG,MAA0B,IAAZoG,EAAEpG,OAClBvH,KAAK+mC,qCAAqCjkC,WAAW+K,OAAO,WAAW,GACvE7N,KAAK+mC,qCAAqCjkC,WAAW+K,OAAO,SAAS,KAGrE7N,KAAK+mC,qCAAqCjkC,WAAW+K,OAAO,WAAW,GACvE7N,KAAK+mC,qCAAqCjkC,WAAW+K,OAAO,SAAS,OAKjF,gBAAC,eAAD,CAAc0E,QAAQ,uCACtB,gBAAC,QAAD,CAAO/D,KAAK,sBAEhB,gBAAC,aAAD,CAAY0D,UAAW,mBAAoBC,WAAY,aACnDC,cAAe,CACX5D,KAAM,+BACNH,SAAS,EACT+B,cAAepQ,KAAK8hC,0CACpBl+B,IAAMA,IAAU5D,KAAK+mC,qCAAuCnjC,QAMrE,+BAMvB,gBAAC,QAAD,CAAOgN,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAMuxB,+BACpBxwB,MAAO,wDACPsB,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,qBACNtK,KAAM,UACN4I,KAAM,qBACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAM2I,gBACrBrE,SAAS,EACTrB,QAAQ,WAAD,4BAAE,WAAOW,GAAP,iBAAApH,EAAA,sDACD0iC,EAAc,GACdwF,EAAkB,mIAEtB,EAAKhmB,SAAS3lB,SAAS63B,qBAAqBtzB,QAASsN,IACjDs0B,EAAYzmC,KAAK,CACb6mB,UAAWpG,SAAStO,OAG5B85B,GAAmB,kEAEnB,EAAKhmB,SAAS3lB,SAAS4R,sBAAsBrN,QAAQ,CAACsN,EAAKhF,KACvD8+B,GAAmB9+B,EAAQ,EAAI,KAAOgF,EAAI9E,IAAM,IAAM8E,EAAI7E,OAAS,UAEvE2+B,GAAmB,SACNv7B,YAAQu7B,EAAiB,mCAC/B9nC,KAAMwM,KACY,IAAjBA,IACA,EAAKwyB,gCAAgCC,WAAaqD,EAClD,EAAKx7B,SAAS,CACViF,iBAAiB,IAGrB9Q,IAAQ4E,KAAK7B,EAAe,2CAA4C,EAAKghC,gCAAiC,CAC1Gl/B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAK4G,SAAS,CAChBiF,iBAAiB,IAHvB,uBAKQ,EAAKwwB,oCALb,OAMEt7B,YAAO,0DAA2C,UAAW,KAN/D,uBAQE,EAAK6F,SAAS,CACViF,iBAAiB,IAErB9K,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KAXrF,4CALV,uDAmBKC,MAAMC,IAIH,GAHA,EAAKyG,SAAS,CACViF,iBAAiB,IAEjB1L,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,aA1D1B,2CAAF,mDAAC,KAsEhB,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,gBACNtK,KAAM,UACN4I,KAAM,gBACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAM2I,gBACrBrE,SAAS,EACTrB,QAAQ,WAAD,4BAAE,WAAOW,GAAP,iBAAApH,EAAA,sDACD0iC,EAAc,GACdwF,EAAkB,8HAEtB,EAAKhmB,SAAS3lB,SAAS63B,qBAAqBtzB,QAASsN,IACjDs0B,EAAYzmC,KAAK,CACb6mB,UAAWpG,SAAStO,OAG5B85B,GAAmB,kEAEnB,EAAKhmB,SAAS3lB,SAAS4R,sBAAsBrN,QAAQ,CAACsN,EAAKhF,KACvD8+B,GAAmB9+B,EAAQ,EAAI,KAAOgF,EAAI9E,IAAM,IAAM8E,EAAI7E,OAAS,UAEvE2+B,GAAmB,SACNv7B,YAAQu7B,EAAiB,8BAC/B9nC,KAAMwM,KACY,IAAjBA,IACA,EAAKwyB,gCAAgCC,WAAaqD,EAClD,EAAKx7B,SAAS,CACViF,iBAAiB,IAGrB9Q,IAAQ4E,KAAK7B,EAAe,wCAAyC,EAAKghC,gCAAiC,CACvGl/B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAK4G,SAAS,CAChBiF,iBAAiB,IAHvB,uBAKQ,EAAKwwB,oCALb,OAMEt7B,YAAO,iDAAkC,UAAW,KANtD,uBAQE,EAAK6F,SAAS,CACViF,iBAAiB,IAErB9K,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KAXrF,4CALV,uDAmBKC,MAAMC,IAIH,GAHA,EAAKyG,SAAS,CACViF,iBAAiB,IAEjB1L,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,aA1D1B,2CAAF,mDAAC,KAsEhB,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAK28B,oCADJ,2CAAF,kDAAC,OAQ1B,gBAAC,WAAD,CAAU9xB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAMgC,SAAU,EAAGH,SAAU9R,KAAK2lC,gCAAiCv1B,cAAepQ,KAAKqhC,yCAA0Cz9B,IAAMA,GAAQ5D,KAAKk9B,4BAA8Bt5B,GAC9K,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAW,eAAgBC,WAAY,cAC/CC,cAAe,CACXhP,MAAO,CACH,CAAEmc,KAAM,gCAAsB3G,MAAO,GACrC,CAAE2G,KAAM,qBAAmB3G,MAAO,GAClC,CAAE2G,KAAM,wCAA8B3G,MAAO,IAGjDtG,UAAW,QACXrP,YAAa,OACbqY,eAAiB3N,IACG,IAAZA,EAAEpG,MAA0B,IAAZoG,EAAEpG,OAClBvH,KAAKgnC,2CAA2ClkC,WAAW+K,OAAO,WAAW,GAC7E7N,KAAKgnC,2CAA2ClkC,WAAW+K,OAAO,SAAS,KAG3E7N,KAAKgnC,2CAA2ClkC,WAAW+K,OAAO,WAAW,GAC7E7N,KAAKgnC,2CAA2ClkC,WAAW+K,OAAO,SAAS,OAKvF,gBAAC,eAAD,CAAc0E,QAAQ,uCACtB,gBAAC,QAAD,CAAO/D,KAAK,sBAEhB,gBAAC,aAAD,CAAY0D,UAAW,QAASC,WAAY,YAAaC,cAAe,CACpEhC,cAAgBzC,IACZ3N,KAAKm8B,sBAAwBxuB,EAAEC,WAEnChK,IAAMA,IAAU5D,KAAKm8B,sBAAwBv4B,GAC7CoQ,QAAUrG,IACN9C,SAASoJ,eAAe,qBAAqBC,UAAYlU,KAAKm8B,sBAAsBr5B,WAAW+K,OAAO,QAAQrB,UAGlH,gBAAC,eAAD,CAAc+F,QAAQ,gCACtB,gBAAC,QAAD,CAAO/D,KAAK,WAEhB,gBAAC,aAAD,CAAY0D,UAAW,mBAAoBC,WAAY,aACnDC,cAAe,CACX5D,KAAM,+BACNH,SAAS,EACT+B,cAAepQ,KAAK+hC,gDACpBn+B,IAAMA,IAAU5D,KAAKgnC,2CAA6CpjC,OAK9E,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,uBAAKhC,UAAU,OACX,uBAAKA,UAAU,YACX,kEAEJ,uBAAKA,UAAU,WAAWd,GAAG,oBAAoBe,MAAO,CAAEiE,UAAW,aAK1E,+BAMvB,gBAAC,QAAD,CAAOvD,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAM0xB,oBACpB3wB,MAAO,2CACPsB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,wBACNtK,KAAM,UACN4I,KAAM,wBACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAM2I,gBACrBrE,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzBvB,QAAQ,WAAD,4BAAE,WAAOW,GAAP,iBAAApH,EAAA,sDACD0iC,EAAc,GACdwF,EAAkB,4GAEtB,EAAKhmB,SAAS3lB,SAAS63B,qBAAqBtzB,QAASsN,IACjDs0B,EAAYzmC,KAAK,CACb6mB,UAAWpG,SAAStO,OAG5B85B,GAAmB,kEACnB,EAAKhmB,SAAS3lB,SAAS4R,sBAAsBrN,QAAQ,CAACsN,EAAKhF,KACvD8+B,GAAmB9+B,EAAQ,EAAI,KAAOgF,EAAI9E,IAAM,IAAM8E,EAAI7E,OAAS,UAEvE2+B,GAAmB,SACnB,EAAK5I,qBAAqBD,WAAaqD,EAC1B/1B,YAAQu7B,EAAiB,yDAC/B9nC,KAAMwM,KACY,IAAjBA,IACA,EAAK1F,SAAS,CACViF,iBAAiB,IAErB9Q,IAAQ4E,KAAK7B,EAAe,6CAA8C,EAAKkhC,qBAAsB,CACjGp/B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAK4G,SAAS,CAChBiF,iBAAiB,IAHvB,uBAKQ,EAAKswB,yBALb,OAMElwB,YAAMlM,EAAIN,KAAKiG,KAAM,UAAW,KANlC,uBAQE,EAAKkB,SAAS,CACViF,iBAAiB,IAErB9K,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KAXrF,4CALV,uDAmBKC,MAAMC,IAIH,GAHA,EAAKyG,SAAS,CACViF,iBAAiB,IAEjB1L,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,aAxD1B,2CAAF,mDAAC,KAmEhB,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAKy8B,yBADJ,2CAAF,kDAAC,OAQ1B,gBAAC,WAAD,CAAU5xB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAMgC,SAAU,EAAGH,SAAU9R,KAAK6lC,qBAAsBz1B,cAAepQ,KAAKohC,8BAA+Bx9B,IAAMA,GAAQ5D,KAAKm9B,iBAAmBv5B,GAC7I,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAU,UAAUC,WAAW,cAAcC,cAAe,CACpEC,WAAYrS,KAAK6L,gBACjByG,UAAW,KACXrP,YAAa,QAEb,gBAAC,QAAD,CAAOuL,KAAK,wBACZ,gBAAC,eAAD,CAAc+D,QAAQ,oCAE1B,gBAAC,aAAD,CAAYL,UAAW,iBAAkBC,WAAY,cACjD,gBAAC,QAAD,CAAO3D,KAAK,wDAGjB,+BAMvB,gBAAC,QAAD,CAAOoC,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAM2xB,yBACpB5wB,MAAO,mCACPsB,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAK08B,8BADJ,2CAAF,kDAAC,OAQ1B,gBAAC,WAAD,CAAU7xB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CACId,GAAG,kBACHiF,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKwmC,uBACjBp2B,cAAepQ,KAAKuhC,mCACpBjtB,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBgR,OAAQ,CACJ1X,SAAS,EACTwT,SAAU,uBAEd7T,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRC,IAAMA,GAAQ5D,KAAK08B,sBAAwB94B,GAE3C,gBAAC,SAAD,CACI8kB,SAAU,kBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,gBAAC,eAAD,CAAcvX,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,sBACvC,gBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,6BACvC,gBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,4BAQ5D,gBAAC,QAAD,CAAOvE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAM4xB,gBACpB7wB,MAAO,aACPsB,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAK27B,qBADJ,2CAAF,kDAAC,OAQ1B,gBAAC,WAAD,CAAU9wB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CACId,GAAG,cACHiF,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAK8mC,mBACjB12B,cAAgBzC,IACZ3N,KAAKi8B,aAAetuB,EAAEC,WAE1B0G,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBgR,OAAQ,CACJ1X,SAAS,EACTwT,SAAU,YAEd7T,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRC,IAAMA,GAAQ5D,KAAKi8B,aAAer4B,GAElC,gBAAC,SAAD,CACI8kB,SAAU,kBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,gBAAC,eAAD,CAAcvX,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,SAAUiD,QAAQ,SAAS7R,MAAO,MACrD,gBAAC,SAAD,CAAQ4O,UAAW,QAASiD,QAAQ,QAAQ7R,MAAO,MACnD,gBAAC,SAAD,CAAQ4O,UAAW,QAASiD,QAAQ,QAAQE,SAAU,WAAY/R,MAAO,MACzE,gBAAC,SAAD,CAAQ4O,UAAW,QAASiD,QAAQ,eAQxD,gBAAC,QAAD,CAAOvE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAMgyB,wBACpBjxB,MAAO,+BACPsB,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAK48B,6BADJ,2CAAF,kDAAC,OAQ1B,gBAAC,WAAD,CAAU/xB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKsuB,8BACjBle,cAAgBzC,IACZ3N,KAAKivB,wBAA0BthB,EAAEC,WAErC0G,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBue,OAAQ,CACJ1X,SAAS,EACTwT,SAAU,uBAEd7T,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRC,IAAMA,GAAQ5D,KAAKivB,wBAA0BrrB,GAE7C,gBAAC,SAAD,CACI8kB,SAAU,6BACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAIrB,gBAAC,YAAD,CAAWvX,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,OAAQiD,QAAQ,YAAO7R,MAAO,KACjD,gBAAC,SAAD,CAAQ4O,UAAW,MAAOiD,QAAQ,OAClC,gBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,UACrC,gBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,qBAAaE,SAAU,WAC/D,gBAAC,SAAD,CAAQnD,UAAW,QAASiD,QAAQ,QAAQ7R,MAAO,MACnD,gBAAC,SAAD,CAAQ4O,UAAW,SAAUmD,SAAU,SAAUF,QAAQ,oBAKrE,uBAAKlF,UAAU,MAAMC,MAAO,CAAEQ,OAAQ,SAClC,uBAAKT,UAAU,eAInB,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKquB,8BACjBje,cAAgBzC,IACZ3N,KAAKkvB,wBAA0BvhB,EAAEC,WAErC0G,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBgR,OAAQ,CACJ1X,SAAS,EACTwT,SAAU,YAEd7T,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRC,IAAMA,GAAQ5D,KAAKkvB,wBAA0BtrB,GAE7C,gBAAC,SAAD,CACI8kB,SAAU,6BACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,gBAAC,eAAD,CAAcvX,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,OAAQiD,QAAQ,cACnC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,OAClC,gBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,UACrC,gBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,qBAAaE,SAAU,WAC/D,gBAAC,SAAD,CAAQnD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,aACtD,gBAAC,SAAD,CAAQnD,UAAW,kBAAmBiD,QAAQ,oBAC9C,gBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,UAAUE,SAAU,WACzD,gBAAC,SAAD,CAAQnD,UAAW,OAAQiD,QAAQ,iBAWxD2lB,UACf,SAASsT,GAAY9nC,GACjB,OAAa,OAATA,QAEyBzF,IAApByF,EAAKA,KAAK4nC,OAA2C,OAApB5nC,EAAKA,KAAK4nC,OAAsC,KAApB5nC,EAAKA,KAAK4nC,MADrE,0BAIkB,cAApB5nC,EAAKA,KAAK4nC,MACR,qBAAGh+B,MAAO,CAAE0X,MAAO,QAASgnB,gBAAiB,SAAW3+B,UAAU,uBAEhD,wBAApB3J,EAAKA,KAAK4nC,MACR,qBAAGh+B,MAAO,CAAE0X,MAAO,QAASgnB,gBAAiB,UAAY3+B,UAAU,uBAGnE,qBAAGC,MAAO,CAAE0X,MAAO,QAASgnB,gBAAiB,OAAS3+B,UAAU,uBAG/E,SAASoc,GAAW/lB,GAChB,IAAIuoC,EAAcvoC,EAAKA,KAAKu0B,SAC5B,OAAMgU,EACK,uBAAK/2B,IAAK+2B,EAAa3+B,MAAO,CAAE5M,MAAO,OAAQoN,OAAQ,QAAU5F,MAAOxE,EAAKA,KAAKuJ,IAAM,IAAMvJ,EAAKA,KAAKwJ,OAAQiI,IAAKzR,EAAKA,KAAKuJ,IAAM,IAAMvJ,EAAKA,KAAKwJ,SAGrJ,K,wDC5xLA,MAAMg/B,WAAyB7sC,YAC1ClC,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTqmB,iBAAiB,EACjB2e,8BAA8B,EAC9BC,yBAA0B,IAE9BhvC,KAAKivC,gBAAkB,KACvBjvC,KAAKkvC,gBAAkB,KACvBlvC,KAAKmvC,YAAc,KACnBnvC,KAAKovC,SAAW,KAChBpvC,KAAKqvC,SAAW,KAChBrvC,KAAKsvC,mBAAqB,KAC1BtvC,KAAKuvC,gBAAkB,KACvBvvC,KAAKwvC,gBAAkB,KACvBxvC,KAAKq8B,mBAAqB,KAC1Br8B,KAAKs8B,qBAAuB,KAC5Bt8B,KAAKyvC,uBAAyB,KAC9BzvC,KAAKyM,MAAQ,KA2CbzM,KAAKiqB,QAAU,IAAIylB,KAAW,CAC1BzpC,IAAK,KACLK,KA5Ca,CACb,CACIgF,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,GACJuE,IAAK,eAWb7P,KAAK2vC,mBAAqB3vC,KAAK2vC,mBAAmB/lC,KAAK5J,MAEvDA,KAAK4vC,6BAA+B5vC,KAAK4vC,6BAA6BhmC,KAAK5J,MAC3EA,KAAK6vC,6BAA+B7vC,KAAK6vC,6BAA6BjmC,KAAK5J,MAG3EA,KAAK8vC,6BAA+B9vC,KAAK8vC,6BAA6BlmC,KAAK5J,MAE3EA,KAAK6gC,gCAAkC7gC,KAAK6gC,gCAAgCj3B,KAAK5J,MACjFA,KAAK8gC,kCAAoC9gC,KAAK8gC,kCAAkCl3B,KAAK5J,MAErFA,KAAK+vC,yBAA2B/vC,KAAK+vC,yBAAyBnmC,KAAK5J,MACnEA,KAAKgwC,sBAAwBhwC,KAAKgwC,sBAAsBpmC,KAAK5J,MAE7DA,KAAKiwC,kCAAoCjwC,KAAKiwC,kCAAkCrmC,KAAK5J,MACrFA,KAAKkwC,+BAAiClwC,KAAKkwC,+BAA+BtmC,KAAK5J,MAE/EA,KAAKmwC,8BAAgCnwC,KAAKmwC,8BAA8BvmC,KAAK5J,MAE7EA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKyzB,mBAAqBzzB,KAAKyzB,mBAAmB7pB,KAAK5J,MAEvDA,KAAKm3B,sBAAwB,IAAI/uB,IAAW,CACxCuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM7D1G,KAAKowC,aAAe,CAChBC,SAAU,GAGdrwC,KAAKs5B,oBAAsB,IAAIlxB,IAAW,CACtCuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,sCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAQ7D1G,KAAKkrB,cAAgB,CACjBolB,OAAQ,EACRD,SAAU,GAGdrwC,KAAK8qB,kBAAoB,IAAI1iB,IACzB,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKkrB,cACjBljB,QAASrD,EAAe,8CACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE,IAAI6pC,EAAK,IAAIhoB,KACbgoB,EAAGjC,SAASiC,EAAGhC,WAAa,GAG5BvuC,KAAKouB,kBAAoB,CAAEoiB,MAAOD,EAAGE,UACrCzwC,KAAKirB,uBAAyB,IAAI7iB,IAC9B,CACIuD,SAAU,MACV1F,IAAK,SACLoC,MAAOuD,sBAAY,CACf3F,IAAK,SACLic,WAAYliB,KAAKouB,kBACjBpmB,QAASrD,EAAe,mBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK8R,SAAW,CACZmX,QAAS,GACT8E,YAAa,CAAEziB,GAAI,MACnB+5B,OAAQ,KACRqL,QAAS,GACTC,IAAK,KACLrwB,IAAK,KACLswB,OAAQ,KACR1wB,MAAOqwB,EAAGE,SACV7K,WAAY,GACZiL,aAAc,MAGlB7wC,KAAK8wC,iBAAmB,GACxB9wC,KAAK+wC,oBAAsB,GAG/BC,kCACIhxC,KAAKyN,SAAS,CACVshC,8BAA8B,IAGtCa,6BAA6BjiC,GACzB3N,KAAKivC,gBAAkBthC,EAAEC,UAG7BiiC,6BAA6BliC,GACzB3N,KAAKkvC,gBAAkBvhC,EAAEC,UAG7BkiC,6BAA6BniC,GACzB3N,KAAKwvC,gBAAkB7hC,EAAEC,UAG7BmiC,yBAAyBpiC,GACrB3N,KAAKmvC,YAAcxhC,EAAEpG,MAGzByoC,sBAAsBriC,GAClB3N,KAAKqvC,SAAW1hC,EAAEC,UAGtBizB,gCAAgClzB,GAC5B3N,KAAKq8B,mBAAqB1uB,EAAEC,UAGhCkzB,kCAAkCnzB,GAC9B3N,KAAKs8B,qBAAuB3uB,EAAEC,UAGlCqO,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDoxB,kCAAkCtiC,GACG,IAA7BA,EAAE67B,gBAAgBh9B,OAClBxM,KAAK+wC,oBAAsB,GAG3B/wC,KAAK+wC,oBAAsBpjC,EAAE67B,gBAKrC0G,+BAA+BviC,GACM,IAA7BA,EAAE67B,gBAAgBh9B,OAClBxM,KAAK8wC,iBAAmB,GAGxB9wC,KAAK8wC,iBAAmBnjC,EAAE67B,gBAE9BxpC,KAAKwvC,gBAAgB1sC,SAAS+K,OAAO,QAAS7N,KAAK8wC,kBAMvDX,8BAA8BxiC,GACtB3N,KAAK8wC,mBAAqBnjC,EAAEpG,QAI5BvH,KAAK8wC,iBAAmBnjC,EAAEpG,OAAS,GACnCvH,KAAKwvC,gBAAgB1sC,SAAS+K,OAAO,QAAS7N,KAAK8wC,mBAI3Drd,qBAC0C,OAAlCzzB,KAAKkvC,gBAAgBpsC,WACrB9C,KAAKkvC,gBAAgBpsC,SAASyuB,iBAC9BvxB,KAAKkvC,gBAAgBpsC,SAAS+K,OAAO,mBAAoB,IAIjE0G,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,mCAAuBF,KAAM,QACpD4B,KAAM,mCACNxB,QAAS,KACL,IAAIikC,EAAU,IAAI1oB,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,GAC5CvoB,KAAKouB,kBAAkBoiB,MAAQS,EAAQR,SACvCzwC,KAAKkvC,gBAAgBpsC,SAAS4M,aAI1C,CACIxO,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,QACnC4B,KAAM,6CACNxB,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,2EAAkE,cAChFvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK7B,EAAe,kBACxB8H,EACA,CACIhG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKkvC,gBAAgBpsC,SAAS4M,UAC9B1P,KAAKyzB,sBAGL7rB,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,cApBtGgM,YAAM,6BAAsB,kBA+BpDo+B,eAAeC,GACX,IAAIlnB,EAAU,GACdjqB,KAAK8wC,iBAAiBzpC,QAASoF,IAC3Bwd,EAAQznB,KAAK,CACT8I,GAAImB,MAIZ,MAAMnG,EAAO,CACT4Z,MAAOlgB,KAAK8R,SAASoO,MACrBkxB,OAAQnnB,EACRX,aAAwBzoB,IAAfswC,EAA2B,GAAKA,EACzCN,aAA6C,OAA/B7wC,KAAK8R,SAAS++B,aAAwB,EAAI7wC,KAAK8R,SAAS++B,aACtEQ,SAA2C,OAAjCrxC,KAAK8R,SAASic,YAAYziB,GAAc,EAAItL,KAAK8R,SAASic,YAAYziB,GAChF+5B,OAAiC,OAAzBrlC,KAAK8R,SAASuzB,OAAkB,EAAIrlC,KAAK8R,SAASuzB,QAK9DzjC,IAAQ4E,KAAK7B,EAAe,+BAAgC2B,EACxD,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QAITe,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,KAMjCuG,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IAIH8L,YAAM,6DAA2C9L,EAAK,UAGlEsqC,mBAAmBH,GACf,IAAIlnB,EAAU,GACdjqB,KAAK8wC,iBAAiBzpC,QAASoF,IAC3Bwd,EAAQznB,KAAK,CACT8I,GAAImB,MAIZ,MAAMnG,EAAO,CACT4Z,MAAOlgB,KAAK8R,SAASoO,MACrBkxB,OAAQnnB,EACRX,aAAwBzoB,IAAfswC,EAA2B,GAAKA,EACzCN,aAA6C,OAA/B7wC,KAAK8R,SAAS++B,aAAwB,EAAI7wC,KAAK8R,SAAS++B,aACtEQ,SAA2C,OAAjCrxC,KAAK8R,SAASic,YAAYziB,GAAc,EAAItL,KAAK8R,SAASic,YAAYziB,GAChF+5B,OAAiC,OAAzBrlC,KAAK8R,SAASuzB,OAAkB,EAAIrlC,KAAK8R,SAASuzB,QAK9DzjC,IAAQ4E,KAAK7B,EAAe,oCAAqC2B,EAC7D,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QAITe,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,KAMjCuG,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IAIH8L,YAAM,6DAA2C9L,EAAK,UAGlEjE,SAAU,IAAD,OACL,OACI,gBAAC,WAAD,KAGI,uBAAKkN,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,0BAAK,gHAIb,uBAAKA,UAAU,MAAMC,MAAO,CAAEiT,UAAW,SACrC,uBAAKlT,UAAU,aAGX,gBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAK4vC,6BAA8BhsC,IAAMA,GAAQ5D,KAAKivC,gBAAkBrrC,GAClH,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,mCACnD,gBAAC,aAAD,CAAYjD,UAAW,WACnB,gBAAC,KAAD,CACII,UAAU,KACVsZ,gBAAgB,EAChB3oB,YAAY,MACZsY,iBAAiB,EACjBlJ,WAAYrS,KAAKiqB,QACjBsnB,cAAevxC,KAAK2vC,mBACpBr0B,eAAgBtb,KAAKmwC,8BACrB//B,cAAepQ,KAAK8vC,6BACpBlsC,IAAMA,IAAU5D,KAAKwvC,gBAAkB5rC,KAE3C,gBAAC,QAAD,CAAO4K,KAAK,SACZ,gBAAC,eAAD,CAAc+D,QAAQ,gCAE1B,gBAAC,aAAD,CAAYL,UAAW,eAAgBC,WAAY,cAAeC,cAAe,CAC7EC,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,4BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,KACXrP,YAAa,MACbsY,iBAAiB,IAEjB,gBAAC,QAAD,CAAO/M,KAAK,4BAEhB,gBAAC,aAAD,CAAY0D,UAAW,iBAAkBC,WAAY,cAAeC,cAAe,CAC/EC,WAAYrS,KAAKm3B,sBACjB7kB,UAAW,KACXrP,YAAa,MACbmN,cAAepQ,KAAK8gC,kCACpBl9B,IAAMA,GAAQ5D,KAAKs8B,qBAAuB14B,EAC1C0X,eAAe,WAAD,4BAAE,WAAO3N,GAAP,eAAApH,EAAA,6DACZ,EAAK81B,mBAAmBv5B,WAAW+K,OAAO,QAAS,OAC/CwE,EAAa,EAAKgqB,mBAAmBv5B,WAAW+K,OAAO,eAChDkB,OAAO,CAAC,WAAY,IAAKpB,EAAEpG,QAH1B,SAIN8K,EAAW7J,OAAO6qB,KAAK,KACzB,EAAKgJ,mBAAmBv5B,WAAW+K,OAAO,aAAcwE,KALhD,OAOZ,EAAK+9B,aAAaC,SAAW1iC,EAAEpG,MAC/B,EAAK2jB,cAAcmlB,SAAW1iC,EAAEpG,MAChC,EAAK2jB,cAAcolB,OAAS,EAC5B,EAAKx+B,SAASic,YAAYziB,GAAKqC,EAAEpG,MAVrB,2CAAF,mDAAC,KAaf,gBAAC,QAAD,CAAOiH,KAAK,WACZ,gBAAC,eAAD,CAAc+D,QAAQ,kCAE1B,gBAAC,aAAD,CAAYL,UAAW,SAAUC,WAAY,cAAeC,cAAe,CACvEC,WAAYrS,KAAKs5B,oBACjBhnB,UAAW,KACXrP,YAAa,MACbmN,cAAepQ,KAAK6gC,gCACpBj9B,IAAMA,GAAQ5D,KAAKq8B,mBAAqBz4B,EACxC0X,eAAiB3N,IACb3N,KAAKkrB,cAAcolB,OAAS3iC,EAAEpG,MAC9BvH,KAAKmvC,YAAYrsC,SAAS4M,UAC1B1P,KAAK8R,SAASuzB,OAAS13B,EAAEpG,SAG7B,gBAAC,QAAD,CAAOiH,KAAK,cACZ,gBAAC,eAAD,CAAc+D,QAAQ,qCAE1B,gBAAC,aAAD,CAAYL,UAAW,MAAOC,WAAY,cACtCC,cAAe,CACXmJ,iBAAiB,EACjBlJ,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,QACLic,WAAY,CACRmkB,SAAU,mBAEdr+B,QAASrD,EAAe,kBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,QACXrP,YAAa,SAGjB,gBAAC,QAAD,CAAOuL,KAAK,UACZ,gBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,gBAAC,aAAD,CAAYL,UAAW,QAASC,WAAY,YACxCC,cAAe,CACX7K,MAAO,IAAIghB,KACXjN,eAAiB3N,IACb,IACI,IAAI0gC,EAAI,IAAI9lB,KAAK5a,EAAEpG,OACnB8mC,EAAEC,SAASD,EAAEE,WAAa,GAC1BvuC,KAAK8R,SAASoO,MAAQmuB,EACtBruC,KAAKouB,kBAAkBoiB,MAAQnC,EAAEoC,SACjCzwC,KAAKkvC,gBAAgBpsC,SAAS4M,UAC9B1P,KAAKyzB,qBACP,MAAOzlB,QAOjB,gBAAC,QAAD,CAAOQ,KAAK,UACZ,gBAAC,eAAD,CAAc+D,QAAQ,kCAG9B,gBAAC,YAAD,CAAWP,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,sBACnD,gBAAC,aAAD,KACI,gBAAC,KAAD,KACI,gBAAC,QAAD,CACIjU,SAAU,SACVwL,OAAO,WACPC,QAAS,CACLrJ,MAAO,IACPkL,KAAM,OACNtK,KAAM,UACN8I,QAAS,KAEL,GADuBhN,KAAKivC,gBAAgBnsC,SAASgc,WACjCC,QAGf,CAID,IAAIkL,EAAU,GACdjqB,KAAK8wC,iBAAiBzpC,QAASoF,IAC3Bwd,EAAQznB,KAAK,CACT8I,GAAImB,MAIZ,IAAI+kC,EAAa,GAQjB,GAPAxxC,KAAK+wC,oBAAoB1pC,QAASoF,IAC9B+kC,EAAWhvC,KAAK,CACZ8I,GAAImB,MAGZzM,KAAK8R,SAAS8zB,WAAa4L,EAC3BxxC,KAAK8R,SAASmX,QAAUgB,EACD,IAAnBA,EAAQzd,OAER,YADAsG,YAAM,kCAGV,GAA0B,IAAtB0+B,EAAWhlC,OAEX,YADAsG,YAAM,6CAGVlR,IAAQ4E,KAAK7B,EAAe,mBAAoB3E,KAAK8R,SAAU,CAC3DrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,sDACEK,EAAIN,KAAKO,SACTe,YAAO,gCAAuB,UAAW,KACzC,EAAKsnC,gBAAgBpsC,SAAS4M,WAG9B9H,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KANzC,2CALV,uDAcKC,MAAMC,IACH,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,eAWvC,gBAAC,QAAD,CACInS,SAAU,SACVwL,OAAO,WACPC,QAAS,CACL6B,KAAM,qBACN5B,KAAM,QACN1I,KAAM,UACNsO,SAAUxS,KAAK+J,MAAMqmB,gBACrBsX,YAAa,CACTx3B,MAAO,oBAEXlD,QAAS,KACL,IAAImkC,EAAaM,OAAO,qKAEL,OAAfN,GACAr+B,YAAM,iEAAsDq+B,EAAa,yCACpExqC,KAAK,KACF3G,KAAKkxC,eAAeC,SAc5C,gBAAC,QAAD,CACIjwC,SAAU,SACVwL,OAAO,WACPC,QAAS,CACL6B,KAAM,gBACN5B,KAAM,QACN1I,KAAM,UACNsO,SAAUxS,KAAK+J,MAAMqmB,gBACrBsX,YAAa,CACTx3B,MAAO,oBAEXlD,QAAS,KACL,IAAImkC,EAAaM,OAAO,wKAEL,OAAfN,GACAr+B,YAAM,sEAA2Dq+B,EAAa,yCACzExqC,KAAK,KACF3G,KAAKsxC,mBAAmBH,SAchD,gBAAC,QAAD,CACIjwC,SAAU,SACVwL,OAAO,WACPC,QAAS,CACL6B,KAAM,6BACN5B,KAAM,QACN1I,KAAM,UACNsO,SAAUxS,KAAK+J,MAAMqmB,gBACrBsX,YAAa,CACTx3B,MAAO,oBAEXlD,QAAS,KACL,MAAM1G,EAAO,CACT4Z,MAAOlgB,KAAK8R,SAASoO,MACrBkxB,OAAQpxC,KAAK8R,SAASmX,QACtB4nB,aAA6C,OAA/B7wC,KAAK8R,SAAS++B,aAAwB,EAAI7wC,KAAK8R,SAAS++B,cAK1EjvC,IAAQ4E,KAAK7B,EAAe,qCAAsC2B,EAC9D,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QAITe,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,KAMjCuG,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IAIH8L,YAAM,6DAA2C9L,EAAK,cAO1E,gBAAC,QAAD,CACI9F,SAAU,SACVwL,OAAO,WACPC,QAAS,CACL6B,KAAM,wBACN5B,KAAM,QACN1I,KAAM,UACNsO,SAAUxS,KAAK+J,MAAMqmB,gBACrBsX,YAAa,CACTx3B,MAAO,oBAEXlD,QAAS,KACL,MAAM1G,EAAO,CACT4Z,MAAOlgB,KAAK8R,SAASoO,MACrBkxB,OAAQpxC,KAAK8R,SAASmX,QACtB4nB,aAA6C,OAA/B7wC,KAAK8R,SAAS++B,aAAwB,EAAI7wC,KAAK8R,SAAS++B,cAK1EjvC,IAAQ4E,KAAK7B,EAAe,0CAA2C2B,EACnE,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QAITe,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,KAMjCuG,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IAIH8L,YAAM,6DAA2C9L,EAAK,cAO1E,gBAAC,QAAD,CACI9F,SAAU,SACVwL,OAAO,WACPC,QAAS,CACL6B,KAAM,yCACNtK,KAAM,UACN8I,QAAS,KACL,IAAIid,EAAU,GAMd,GALAjqB,KAAK8wC,iBAAiBzpC,QAASoF,IAC3Bwd,EAAQznB,KAAK,CACT8I,GAAImB,MAGW,IAAnBwd,EAAQzd,OAER,YADAsG,YAAM,2BAGV,MAAMxM,EAAO,CACT2iB,QAASgB,EACT/J,MAAOlgB,KAAK8R,SAASoO,MACrBzR,QAASjO,EAAQoB,QAAQyJ,UAAUoD,SAEvC7M,IAAQ4E,KAAK7B,EAAe,+CAAgD2B,EACxE,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACVuhC,yBAA0BpoC,EAAIN,KAAKiG,KACnCwiC,8BAA8B,IAOlCj8B,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IAIH8L,YAAM,6DAA2C9L,EAAK,iBAUtF,gBAAC,YAAD,CAAWgL,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,sBACnD,gBAAC,aAAD,KACI,gBAAC,IAAD,CACI9C,WAAYrS,KAAK8qB,kBACjB/O,mBAAmB,EACnBE,mBAAoBjc,KAAKiwC,kCACzByB,QAAS,CAAC,MAAO,SAAU,aAC3BthC,cAAepQ,KAAK+vC,yBACpBnsC,IAAMA,IAAU5D,KAAKmvC,YAAcvrC,IAEnC,gBAAC,YAAD,CAAWkR,KAAK,aAChB,gBAAC,YAAD,CAAWA,KAAK,YAChB,gBAAC,SAAD,CAAQI,SAAS,EAAMiH,SAAU,KACjC,gBAAC,YAAD,CAAW9N,SAAS,QAMpC,gBAAC,IAAD,CACIc,GAAG,YACHiF,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKirB,uBACjB1W,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzB7L,cAAepQ,KAAK6vC,6BACpBv7B,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB3V,IAAK,SACL4O,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,SACRC,IAAMA,GAAQ5D,KAAKkvC,gBAAkBtrC,GAErC,gBAAC,SAAD,CACIsR,SAAS,EACTwT,SAAU,iBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,gBAAC,YAAD,CAAWvX,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,IACpB,gBAAC,cAAD,CAAaA,SAAS,IACtB,gBAAC,eAAD,CAAcA,SAAS,IACvB,gBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,SAAUiD,QAAQ,gBAAW9G,SAAS,EAAOqe,gBAAgB,IAChF,gBAAC,SAAD,CAAQxa,UAAU,SAASiD,QAAQ,GAC/B7R,MAAO,GACP8oB,cAAc,EACd+hB,gBAAgB,EAChB9hB,WAAYslB,GACZjlB,gBAAgB,IAEpB,gBAAC,SAAD,CAAQxa,UAAW,cAAeiD,QAAQ,UAAUE,SAAU,WAC9D,gBAAC,SAAD,CAAQnD,UAAW,UAAWiD,QAAQ,YAAOE,SAAU,WACvD,gBAAC,SAAD,CAAQnD,UAAW,UAAWiD,QAAQ,kBAAUE,SAAU,WAC1D,gBAAC,SAAD,CAAQnD,UAAW,cAAeiD,QAAQ,cAAcE,SAAU,SAAUhH,SAAS,IACrF,gBAAC,SAAD,CAAQ6D,UAAW,kBAAmBiD,QAAQ,kBAAkBE,SAAU,SAAUhH,SAAS,IAC7F,gBAAC,SAAD,CAAQ6D,UAAW,OAAQiD,QAAQ,WACnC,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SACtD,gBAAC,SAAD,CAAQnD,UAAW,YAAaiD,QAAQ,sBAAYE,SAAU,eAM9E,gBAAC,QAAD,CAAOzE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAMglC,6BACpBjkC,MAAO,yCACPsB,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAKyqC,kCADJ,2CAAF,kDAAC,OAQ1B,gBAAC,WAAD,CAAU5/B,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAK+J,MAAMilC,yBACvB16B,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBue,OAAQ,CACJ1X,SAAS,EACTwT,SAAU,6BAEd7M,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,MAER,gBAAC,SAAD,CACI+kB,SAAU,6BACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAIrB,gBAAC,YAAD,CAAWvX,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQ7W,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,OAAQiD,QAAQ,YAAO7R,MAAO,KACjD,gBAAC,SAAD,CAAQ4O,UAAW,QAASiD,QAAQ,oBACpC,gBAAC,SAAD,CAAQjD,UAAW,OAAQiD,QAAQ,oBAYnEw6B,qBACI,OACI,gBAAC,IAAD,CACIt9B,WAAYrS,KAAKiqB,QACjBlO,mBAAmB,EACnBE,mBAAoBjc,KAAKkwC,+BACzBwB,QAAS,CAAC,OACVthC,cAAepQ,KAAKgwC,sBACpBpsC,IAAMA,IAAU5D,KAAKqvC,SAAWzrC,IAEhC,gBAAC,YAAD,CAAWkR,KAAK,aAChB,gBAAC,YAAD,CAAWA,KAAK,YAChB,gBAAC,SAAD,CAAQI,SAAS,EAAMiH,SAAU,KACjC,gBAAC,YAAD,CAAW9N,SAAS,MAQpC,SAASsjC,GAAmBrrC,GACxB,GAAa,OAATA,EACA,OAAO,0BACN,QAAkCzF,IAA9ByF,EAAKA,KAAKyhC,iBAA+D,OAA9BzhC,EAAKA,KAAKyhC,iBAA0D,KAA9BzhC,EAAKA,KAAKyhC,gBAChG,OAAO,uBAAKjwB,IAAI,sBAAsBC,IAAI,yBAAoB/K,QAAS,KACnE8F,YAAM,kNAIV,IAAI8+B,EAAW,GAiBf,OAhBAA,GAAY,2CACZA,GAAYtrC,EAAKA,KAAKyhC,gBACtB6J,GAAY,oBACZA,GAAYtrC,EAAKA,KAAKurC,YACtBD,GAAY,MACZA,GAAYtrC,EAAKA,KAAKnG,QACtByxC,GAAY,8BACZA,GAAY,IAAIrpB,KAAKjiB,EAAKA,KAAK4Z,OAAO4xB,qBACtCF,GAAY,cACZA,GAAYtrC,EAAKA,KAAKyrC,YACtBH,GAAY,YACZA,GAAYtrC,EAAKA,KAAK0rC,KACtBJ,GAAY,MACZA,GAAY,IAEZA,GAAY,IACL,qBAAG/5B,IAAI,sBACV1W,KAAMywC,EACNp6B,OAAO,SACPy6B,cAAY,wBACZ,uBAAKn6B,IAAI,sBAAsBC,IAAI,8BC7gChC,MAAMm6B,WAAmBjwC,YACpClC,YAAYU,GACRyB,MAAMzB,GACNT,KAAKmyC,eAAiB,KACtBnyC,KAAKoyC,eAAiB,KACtBpyC,KAAKyM,MAAQ,KACbzM,KAAKqyC,4BAA8BryC,KAAKqyC,4BAA4BzoC,KAAK5J,MACzEA,KAAKsyC,4BAA8BtyC,KAAKsyC,4BAA4B1oC,KAAK5J,MACzEA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKyzB,mBAAqBzzB,KAAKyzB,mBAAmB7pB,KAAK5J,MACvD,IAAIuwC,EAAK,IAAIhoB,KACbgoB,EAAGjC,SAASiC,EAAGhC,WAAa,GAC5BvuC,KAAK45B,gBAAkB,IAAIxxB,IACvB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,aACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK8R,SAAW,CACZrD,QAAS,KACT8jC,MAAO,CAAEjnC,GAAI,MACbwb,MAAO,EACP5G,MAAOqwB,EAAGE,SACVtwB,SAAU,IAGlBkyB,4BAA4B1kC,GACxB3N,KAAKmyC,eAAiBxkC,EAAEC,UAG5B0kC,4BAA4B3kC,GACxB3N,KAAKoyC,eAAiBzkC,EAAEC,UAG5BqO,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhD4U,qBACyC,OAAjCzzB,KAAKoyC,eAAetvC,WACpB9C,KAAKoyC,eAAetvC,SAASyuB,iBAC7BvxB,KAAKoyC,eAAetvC,SAAS+K,OAAO,mBAAoB,IAGhE0G,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,QACnCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,4DAA6D,cAC3EvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK7B,EAAe,aAAe8H,EAAMnB,GAC7C,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKoyC,eAAetvC,SAAS4M,UAC7B1P,KAAKyzB,sBAGL7rB,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,cApBtGgM,YAAM,6BAAsB,iBA4B5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKoyC,eAAetvC,SAAS4M,cAOjD3M,SAAU,IAAD,OACL,OACI,gBAAC,WAAD,KACI,uBAAKkN,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,0BAAK,8EACL,gBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAKqyC,4BAA6BzuC,IAAMA,GAAQ5D,KAAKmyC,eAAiBvuC,GAChH,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,mBACnD,gBAAC,aAAD,CAAYjD,UAAW,UAAWyc,YAAY,EAAMxc,WAAY,cAC5DC,cAAe,CACXmJ,iBAAiB,EACjBlJ,WAAY,IAAIjK,IAAW,CACvBC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,iBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7DyhB,kBAAkB,EAClB3kB,eAAe,EACfgvC,WAAY,WACZvvC,YAAa,WACbqP,UAAW,OAGf,gBAAC,QAAD,CAAO9D,KAAK,UACZ,gBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,gBAAC,aAAD,CAAYL,UAAW,WAAYyc,YAAY,EAAMxc,WAAY,cAC7DC,cAAe,CACXmJ,iBAAiB,EACjBlJ,WAAY,IAAIjK,IAAW,CACvBC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,uCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7DyhB,kBAAkB,EAClB3kB,eAAe,EACfgvC,WAAY,WACZvvC,YAAa,MACbqP,UAAW,OAGf,gBAAC,QAAD,CAAO9D,KAAK,UACZ,gBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,gBAAC,aAAD,CAAYL,UAAW,QAASC,WAAY,YACxCC,cAAe,CACX7K,MAAO,IAAIghB,KACXjN,eAAiB3N,IACb,IAAI0gC,EAAI,IAAI9lB,KAAK5a,EAAEpG,OACnB8mC,EAAEC,SAASD,EAAEE,WAAa,GAC1BvuC,KAAK8R,SAASoO,MAAQmuB,KAI9B,gBAAC,QAAD,CAAO7/B,KAAK,UACZ,gBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,gBAAC,aAAD,CAAYL,UAAW,QAASE,cAAe,CAC3C6N,OAAQ,YACT9N,WAAY,eACX,gBAAC,QAAD,CAAO3D,KAAK,UACZ,gBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,gBAAC,aAAD,CAAYL,UAAW,WAAYC,WAAY,aAC3C,gBAAC,QAAD,CAAO3D,KAAK,wBAIxB,gBAAC,UAAD,CACIlL,MAAO,IACPkL,KAAK,OACLtK,KAAK,UACL8I,QAAS,KACkBhN,KAAKmyC,eAAervC,SAASgc,WAChCC,SAKhBnd,IAAQ4E,KAAK7B,EAAe,aAAc3E,KAAK8R,SAAU,CACrDrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,sDACEK,EAAIN,KAAKO,SACTe,YAAO,2BAAuB,UAAW,KACzC,EAAKwqC,eAAetvC,SAAS4M,WAG7B9H,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KANzC,2CALV,uDAcKC,MAAMC,IACH,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,aASnC,gBAAC,IAAD,CACIlE,GAAG,gBACHiF,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAK45B,gBACjBrlB,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzB7L,cAAepQ,KAAKsyC,4BACpBh+B,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB3V,IAAK,KACL4O,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRC,IAAMA,GAAQ5D,KAAKoyC,eAAiBxuC,GAEpC,gBAAC,SAAD,CACIsR,SAAS,EACTwT,SAAU,gBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,gBAAC,eAAD,CAAcvX,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,IACpB,gBAAC,cAAD,CAAaA,SAAS,IACtB,gBAAC,eAAD,CAAcA,SAAS,IACvB,gBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,EAAOqe,gBAAgB,IAC5E,gBAAC,SAAD,CAAQxa,UAAW,iBAAkBiD,QAAQ,yBAAiBE,SAAU,WACxE,gBAAC,SAAD,CAAQnD,UAAW,WAAYiD,QAAQ,QAAQE,SAAU,WACzD,gBAAC,SAAD,CAAQnD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SACtD,gBAAC,SAAD,CAAQnD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SAAU4K,OAAQ,aACxE,gBAAC,SAAD,CAAQ/N,UAAW,WAAYiD,QAAQ,mBAAWE,SAAU,iBC9Q7E,MAAMo9B,WAAkBxwC,IAAM0T,UACzC5V,YAAYU,GACRyB,MAAMzB,GADS,KA4oBnBiyC,qBAAuB,KACnB1yC,KAAKyN,SAAS,CACVklC,mBAAmB,KA9oBR,KAkpBnBC,kBAAoB,KAChB5yC,KAAKyN,SAAS,CACVklC,mBAAmB,KAlpBvB3yC,KAAK+J,MAAQ,CACT4oC,mBAAmB,GAEvB3yC,KAAKoQ,cAAgBpQ,KAAKoQ,cAAcxG,KAAK5J,MAC7CA,KAAK+vC,yBAA2B/vC,KAAK+vC,yBAAyBnmC,KAAK5J,MACnEA,KAAK6yC,4BAA8B7yC,KAAK6yC,4BAA4BjpC,KAAK5J,MACzEA,KAAK8gC,kCAAoC9gC,KAAK8gC,kCAAkCl3B,KAAK5J,MACrFA,KAAK6gC,gCAAkC7gC,KAAK6gC,gCAAgCj3B,KAAK5J,MACjFA,KAAK8yC,8BAAgC9yC,KAAK8yC,8BAA8BlpC,KAAK5J,MAC7EA,KAAK+yC,yBAA2B/yC,KAAK+yC,yBAAyBnpC,KAAK5J,MACnEA,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAKyG,QAAU,CAAE,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAC9D1G,KAAKgzC,iBAAmB,KACxBhzC,KAAKyoB,SAAW,KAChBzoB,KAAKizC,cAAgB,KACrBjzC,KAAKkzC,kBAAoB,KACzBlzC,KAAKmzC,YAAc,KACnBnzC,KAAKmvC,YAAc,KACnBnvC,KAAKs8B,qBAAuB,KAC5Bt8B,KAAKq8B,mBAAqB,KAC1Br8B,KAAKozC,eAAiB,KACtBpzC,KAAKyM,MAAQ,KACbzM,KAAKy9B,kBAAoB,GACzBz9B,KAAK+qB,eAAiB,IAAI3iB,IACtB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,YACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKm3B,sBAAwB,IAAI/uB,IAAW,CACxCuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM7D1G,KAAKs5B,oBAAsB,IAAIlxB,IAAW,CACtCuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,sCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM7D1G,KAAKowC,aAAe,CAAEC,SAAU,GAChCrwC,KAAKqzC,eAAiB,IAAIjrC,IACtB,CACIG,cAAc,EACd4D,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKowC,aACjBpoC,QAASrD,EAAe,0BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKszC,WAAa,CACdC,OAAQ,EACRlD,SAAU,EACVC,OAAQ,GAEZtwC,KAAK8qB,kBAAoB,IAAI1iB,IACzB,CACIG,cAAc,EACdtC,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKszC,WACjBtrC,QAASrD,EAAe,kCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKwzC,mBAAqB,CACtB9C,QAAS,GACT3iB,YAAa,CAAEziB,GAAI,MACnBmoC,UAAW,CAAEnoC,GAAI,MACjBooC,WAAY,EACZ5zB,OAAQ,GACRyM,KAAM,GACN1L,MAAO,KACP+kB,WAAY,GACZt6B,GAAI,GAERtL,KAAKovC,SAAW,KAChBpvC,KAAK2zC,mBAAqB3zC,KAAK2zC,mBAAmB/pC,KAAK5J,MACvDA,KAAKuvC,gBAAkB,KACvBvvC,KAAK4zC,6BAA+B5zC,KAAK4zC,6BAA6BhqC,KAAK5J,MAC3EA,KAAK6zC,sBAAwB7zC,KAAK6zC,sBAAsBjqC,KAAK5J,MAC7DA,KAAK8zC,+BAAiC9zC,KAAK8zC,+BAA+BlqC,KAAK5J,MAC/EA,KAAK+zC,8BAAgC/zC,KAAK+zC,8BAA8BnqC,KAAK5J,MAGjFmyB,WAAWxkB,GACP,IAAI/G,EAAMvF,KAAKE,MAAMoM,EAAE0F,QAAQ3L,UAC1Bd,EAAIstB,OAAOtb,MAAM/R,SAKlBe,YAAO,4BAAqB,UAAW,KACvC5H,KAAKwzC,mBAAmB3yB,MAAQja,EAAIstB,OAAOtb,MAAMrM,KACjDoB,EAAEC,UAAUumB,UANZvsB,YAAO,gCAA0BhB,EAAIstB,OAAOtb,MAAM9R,aAAc,QAAS,KACzE6G,EAAEC,UAAUumB,SASpB/jB,cAAczC,GACV3N,KAAKyoB,SAAW9a,EAAEC,UAGtBmlC,yBAAyBplC,GACrB3N,KAAKmzC,YAAcxlC,EAAEC,UAEzBmiC,yBAAyBpiC,GACrB3N,KAAKmvC,YAAcxhC,EAAEC,UAGzBilC,4BAA4BllC,GACxB3N,KAAKozC,eAAiBzlC,EAAEC,UAG5BkzB,kCAAkCnzB,GAC9B3N,KAAKs8B,qBAAuB3uB,EAAEC,UAGlCizB,gCAAgClzB,GAC5B3N,KAAKq8B,mBAAqB1uB,EAAEC,UAGhC2G,mBAAmB5G,GAAI,IAAD,OAClBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QACV0N,aAAc,OACdlC,OAAQ,WACRC,QAAS,CACLzI,KAAM,UACN4I,KAAM,kCACNF,KAAM,YACNI,QAAQ,WAAD,4BAAE,4BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAODlR,IAAQ6F,IAAI9C,EAAe,iCAAmC8H,EAAMnB,GAChE,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACTiM,YAAM,mEAAqDlM,EAAIN,KAAKiG,KAAO,mNAAiJ,SAC7L,OAA3B,EAAKkc,SAAS3lB,WACd,EAAK2lB,SAAS3lB,SAASyuB,iBACvB,EAAK9kB,MAAQ,KACb,EAAKgc,SAAS3lB,SAAS+K,OAAO,mBAAoB,KAItDiF,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IACH8L,YAAM,6DAA2C9L,EAAK,UA3B7D,2CAAF,kDAAC,KAiChB,CACI9F,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,OAAQF,KAAM,MACrCI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sDACuB,iBAAxB/F,EAAQoB,QAAQ2M,IAChBuE,YAAM,wDAGN,EAAK0gC,mBAAqB,CACtB9C,QAAS,GACT3iB,YAAa,CAAEziB,GAAI,MACnBmoC,UAAW,CAAEnoC,GAAI,MACjBooC,WAAY,EACZ5zB,OAAQ,GACRyM,KAAM,GACN1L,MAAO,KACP+kB,WAAY,GACZt6B,GAAI,GAER,EAAK6jC,YAAYrsC,SAASyuB,iBAC1B,EAAK6d,SAAStsC,SAASyuB,iBACvB,EAAK+hB,WAAWC,OAAS,EACzB,EAAKzoB,kBAAkB/b,OAAO,CAAC,iBAAkB,KAAM,IAEvD,EAAKogC,YAAYrsC,SAAS4M,UAC1B,EAAK0/B,SAAStsC,SAAS4M,UACvB,EAAK+tB,kBAAoB,GAEzB,EAAKmV,qBAzBJ,2CAAF,kDAAC,KA8BhB,CACI1xC,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,aAAWF,KAAM,OACxCI,QAAQ,WAAD,4BAAE,4BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,6BAO2B,iBAAxBtS,EAAQoB,QAAQ2M,KAAkD,UAAxB/N,EAAQoB,QAAQ2M,IAP7D,iBAQGuE,YAAM,uDART,+BAWG,EAAKq8B,YAAYrsC,SAASyuB,iBAX7B,UAcS,EAAK4F,sBAAsB3uB,OAAO6qB,KAAK,KACP,cAA9B,EAAKiJ,sBAAsE,OAA9B,EAAKA,sBAA+D,KAA9B,EAAKA,2BAA6Dz7B,IAA9B,EAAKy7B,sBAC5H,EAAKA,qBAAqBx5B,WAAW+K,OAAO,QAAS,EAAKpB,MAAMshB,YAAYziB,MAhBvF,yBAqBS,EAAKguB,oBAAoB9wB,OAAO6qB,KAAK,KACP,cAA5B,EAAKgJ,oBAAkE,OAA5B,EAAKA,oBAA2D,KAA5B,EAAKA,yBAAyDx7B,IAA5B,EAAKw7B,oBACtH,EAAKA,mBAAmBv5B,WAAW+K,OAAO,QAAS,EAAKpB,MAAMgnC,UAAUnoC,MAvBnF,yBA2BS,EAAK+nC,eAAe7qC,OAAO6qB,KAAK,KAElC,GAAM,EAAK5mB,MAAMunC,YAAa,CAC1B,IAAIC,EAAU,EAAKxnC,MAAMunC,YAAYnhC,MAAM,KACvCqhC,EAAiB,GACrBD,EAAQ5sC,QAASsH,IACb,EAAK6kC,mBAAmB9C,QAAQluC,KAAK,CACjC8I,GAAI2X,SAAStU,KAEjBulC,EAAe1xC,KAAKygB,SAAStU,MAEjC,EAAKygC,SAAStsC,SAASuuB,WAAW6iB,MAtC7C,eA0CG,EAAKZ,WAAWC,OAAS,EAAK9mC,MAAMnB,GACpC,EAAKgoC,WAAWjD,SAAW,EAAK5jC,MAAMshB,YAAYziB,GAClD,EAAKgoC,WAAWhD,OAAS,EAAK7jC,MAAMgnC,UAAUnoC,GA5CjD,UA8CS,EAAK6jC,YAAYrsC,SAAS4M,UA9CnC,yBA+CS,EAAKykC,qBAAqB,EAAK1nC,MAAMnB,IA/C9C,QAgDG,EAAKkoC,mBAAmBloC,GAAK,EAAKmB,MAAMnB,GACxC,EAAKkoC,mBAAmBzlB,YAAYziB,GAAK,EAAKmB,MAAMshB,YAAYziB,GAChE,EAAKkoC,mBAAmBC,UAAUnoC,GAAK,EAAKmB,MAAMgnC,UAAUnoC,GAC5D,EAAKkoC,mBAAmBE,WAAa,EAAKjnC,MAAMinC,WAChD,EAAKF,mBAAmB1zB,OAAS,EAAKrT,MAAMqT,OAC5C,EAAK0zB,mBAAmBjnB,KAAO,EAAK9f,MAAM8f,KAC1C,EAAKinB,mBAAmB3yB,MAAQ,EAAKpU,MAAMoU,MAC3C,EAAKoyB,cAAcnwC,WAAW+K,OAAO,QAAS,EAAKpB,MAAMqT,QACzD,EAAKozB,kBAAkBpwC,WAAW+K,OAAO,QAAS,EAAKpB,MAAMinC,YAC7D,EAAKP,YAAYrwC,WAAW+K,OAAO,QAAS,EAAKpB,MAAM8f,MAEvD,EAAKqmB,oBA3DR,4CAAF,kDAAC,KAiEhB,CACI1xC,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,QACnCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,iBAAxBjM,EAAQoB,QAAQ2M,KAAkD,UAAxB/N,EAAQoB,QAAQ2M,IAC1DuE,YAAM,2DAEL,CACYI,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK7B,EAAe,eAAiB3E,KAAKyM,MAAMnB,GACpD,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD5H,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,sBAIL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,cAzB/DgM,YAAM,6BAAsB,iBAmC5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,iBAAxBjM,EAAQoB,QAAQ2M,KAAkD,UAAxB/N,EAAQoB,QAAQ2M,IAC1DuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK7B,EAAe,iBAAmB8H,EAAMnB,GACjD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,qBACL7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,cA1B/DgM,YAAM,6BAAsB,iBAoC5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1CI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,iBAAxBjM,EAAQoB,QAAQ2M,KAAkD,UAAxB/N,EAAQoB,QAAQ2M,IAC1DuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK7B,EAAe,iBAAmB8H,EAAMnB,GACjD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,qBACL7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,cA1B/DgM,YAAM,6BAAsB,iBAoC5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAAS4M,cAO3CojC,8BAA8BnlC,GAAI,IAAD,OAC7BA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,OAAQ0B,KAAM,OAAQ5B,KAAM,MACnDI,QAAQ,WAAD,4BAAE,8BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAO2B,iBAAxBtS,EAAQoB,QAAQ2M,IAChBuE,YAAM,wDAGFxM,EAAO,CACP8tC,OAAQ,EAAK3nC,MAAMnB,GACnB4iC,MAAO,EACPtI,WAAY,EAAKnI,mBAErB77B,IAAQ4E,KAAK7B,EAAe,qBACxB2B,EACA,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAKsoC,YAAYrsC,SAAS4M,UAC1B9H,YAAO,mFAA4D,UAAW,MAG9EA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QA9BtD,2CAAF,kDAAC,KAsChB,CACI5F,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,oBAAW0B,KAAM,oBAAW5B,KAAM,QACzDI,QAAQ,WAAD,4BAAE,8BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAO2B,iBAAxBtS,EAAQoB,QAAQ2M,IAChBuE,YAAM,wDAGFxM,EAAO,CACP8tC,OAAQ,EAAK3nC,MAAMnB,GACnB4iC,MAAO,EACPtI,WAAY,EAAKnI,mBAErB77B,IAAQ4E,KAAK7B,EAAe,qBACxB2B,EACA,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAKsoC,YAAYrsC,SAAS4M,UAC1B9H,YAAO,gGAA+D,UAAW,MAGjFA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QA9BtD,2CAAF,kDAAC,KAsChB,CACI5F,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,sBAAa0B,KAAM,sBAAa5B,KAAM,QAC5DI,QAAQ,WAAD,4BAAE,8BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAO2B,iBAAxBtS,EAAQoB,QAAQ2M,IAChBuE,YAAM,wDAGFxM,EAAO,CACP8tC,OAAQ,EAAK3nC,MAAMnB,GACnB4iC,MAAO,EACPtI,WAAY,EAAKnI,mBAErB77B,IAAQ4E,KAAK7B,EAAe,qBACxB2B,EACA,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAKsoC,YAAYrsC,SAAS4M,UAC1B9H,YAAO,gGAA+D,UAAW,MAGjFA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QA9BtD,2CAAF,kDAAC,KAsChB,CACI5F,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,QAAS0B,KAAM,QAAS5B,KAAM,QACpDI,QAAQ,WAAD,4BAAE,8BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAO2B,iBAAxBtS,EAAQoB,QAAQ2M,IAChBuE,YAAM,wDAGFxM,EAAO,CACP8tC,OAAQ,EAAK3nC,MAAMnB,GACnB4iC,MAAO,EACPtI,WAAY,EAAKnI,mBAErB77B,IAAQ4E,KAAK7B,EAAe,qBACxB2B,EACA,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAKsoC,YAAYrsC,SAAS4M,UAC1B9H,YAAO,gGAA+D,UAAW,MAGjFA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QA9BtD,2CAAF,kDAAC,KAsChB,CACI5F,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,iBAAe0B,KAAM,iBAAe5B,KAAM,QAChEI,QAAQ,WAAD,4BAAE,8BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAO2B,iBAAxBtS,EAAQoB,QAAQ2M,IAChBuE,YAAM,wDAGFxM,EAAO,CACP8tC,OAAQ,EAAK3nC,MAAMnB,GACnB4iC,MAAO,EACPtI,WAAY,EAAKnI,mBAErB77B,IAAQ4E,KAAK7B,EAAe,qBACxB2B,EACA,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAKsoC,YAAYrsC,SAAS4M,UAC1B9H,YAAO,gGAA+D,UAAW,MAGjFA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QA9BtD,2CAAF,kDAAC,MAsDxB2sB,qBACmC,OAA3BzzB,KAAKyoB,SAAS3lB,WACd9C,KAAKyoB,SAAS3lB,SAASyuB,iBACvBvxB,KAAKyM,MAAQ,KACbzM,KAAKyoB,SAAS3lB,SAAS+K,OAAO,mBAAoB,IAIpDsmC,qBAAqBZ,GAAS,IAAD,2IACxB,IAAIx4B,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAI9C,EAAe,6BAA+B4uC,EACtD,CACI9sC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACF,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAIsqB,EAAY,GAChBvqB,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzBwhB,EAAU3uB,KAAKoe,EAAKyI,aAExB,EAAKoU,kBAAoBtM,EACzB,EAAKqiB,mBAAmB5N,WAAa,EAAKnI,kBAC1C,EAAK0R,YAAYrsC,SAASuuB,WAAW,EAAKoM,mBAC1CziB,EAAQ,4CAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,gBAErBC,MAAMiH,IACLiN,EAAOjN,QAxBY,6CA6BnC4lC,6BAA6BjmC,GACzB3N,KAAKuvC,gBAAkB5hC,EAAEC,UAG7BimC,sBAAsBlmC,GAClB3N,KAAKovC,SAAWzhC,EAAEpG,MAGtBusC,+BAA+BnmC,GACM,IAA7BA,EAAE67B,gBAAgBh9B,OAClBxM,KAAKq0C,iBAAmB,GAGxBr0C,KAAKq0C,iBAAmB1mC,EAAE67B,gBAE9BxpC,KAAKuvC,gBAAgBzsC,SAAS+K,OAAO,QAAS7N,KAAKq0C,kBAGvDN,8BAA8BpmC,GACtB3N,KAAKq0C,mBAAqB1mC,EAAEpG,QAI5BvH,KAAKq0C,iBAAmB1mC,EAAEpG,OAAS,GACnCvH,KAAKuvC,gBAAgBzsC,SAAS+K,OAAO,QAAS7N,KAAKq0C,mBAI3DtxC,SAAU,IAAD,OACL,OACI,kBAAC,IAAM6U,SAAP,KAEI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,0FAGb,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK+qB,eACjB5C,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnBC,oBAAoB,EACpB8G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJmK,cAAepQ,KAAKoQ,cACpBumB,oBAAsBhpB,IAClB3N,KAAK42B,WAAajpB,EAAEkpB,SACpB,IAAIxO,EAAU1a,EAAEgH,KAAOhH,EAAEgH,IAAIrO,KACzB+hB,IACAroB,KAAKyM,MAAQ4b,IAGrB9T,mBAAoBvU,KAAKuU,mBACzB3Q,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,kBAAC,SAAD,CACIsR,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,IACzBma,SAAU,qBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,kBAAC,eAAD,CAAcvX,SAAS,IACvB,kBAAC,gBAAD,CAAeJ,KAAK,cAAcI,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,MAC3D,kBAAC,YAAD,CAAW2G,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,eAAD,CAAcA,SAAS,IACvB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,UACtC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,SACtC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,oBACxC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,cACtC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,yBAKrD,kBAAC,QAAD,CAAOvE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAM4oC,kBACpB7nC,MAAO,yDACPsB,aACI,CAEI,CACIlL,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACL6B,KAAM,SACNtK,KAAM,UACN4I,KAAM,SACN0F,SAAyC,IAA/BxS,KAAKwzC,mBAAmBloC,GAClCsB,KAAM,QACJI,QAAQ,WAAD,4BAAE,4BAAAzG,EAAA,gEACuB1F,IAA1B,EAAKwzC,iBAA2D,OAA1B,EAAKA,iBAAsD,KAA1B,EAAKA,kBADzE,uBAEHvhC,YAAM,oCAA+B,cAFlC,6BAK+B,IAAlC,EAAK2qB,kBAAkBjxB,OALpB,uBAMHsG,YAAM,+CAAkC,cANrC,6BASgB,EAAKsgC,eAAetwC,SAASgc,WAChCC,QAVb,mDAcCk1B,EAAU,GACd,EAAKI,iBAAiBhtC,QAASoF,IAC3BwnC,EAAQzxC,KAAK,CACT8I,GAAImB,MAGZ,EAAK+mC,mBAAmB9C,QAAUuD,EAElC,EAAKT,mBAAmB5N,WAAa,GACrC,EAAK4N,mBAAmB5N,WAAa,EAAKnI,kBAC1C77B,IAAQ4E,KAAK7B,EAAe,YAAa,EAAK6uC,mBAAoB,CAC9D/sC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,uBAEEe,YAAO,qCAAyB,UAAW,KAF7C,SAGQ,EAAK6rB,qBAHb,uBAIQ,EAAKhL,SAAS3lB,SAAS4M,UAAU2jB,KAAK,KAExC,EAAKqf,yBANX,6BASE9qC,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KATrF,2CALV,uDAiBKC,MAAMC,IACH,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,UAtDpB,4CAAF,kDAAC,KAgElB,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAKktB,qBADJ,uBAED,EAAKif,uBAFJ,2CAAF,kDAAC,OAS1B,kBAAC,WAAD,CAAUthC,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAMgC,SAAU,EAAGH,SAAU9R,KAAKwzC,mBAAoBpjC,cAAepQ,KAAK6yC,4BAA6BjvC,IAAMA,GAAQ5D,KAAKozC,eAAiBxvC,GACvI,kBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,CAAYC,UAAW,iBAAkBC,WAAY,cAAeC,cAAe,CAC/EC,WAAYrS,KAAKm3B,sBACjB7kB,UAAW,KACXrP,YAAa,MACbmN,cAAepQ,KAAK8gC,kCACpBl9B,IAAMA,GAAQ5D,KAAKs8B,qBAAuB14B,EAC1C0X,eAAe,WAAD,4BAAE,WAAO3N,GAAP,eAAApH,EAAA,6DACZ,EAAK81B,mBAAmBv5B,WAAW+K,OAAO,QAAS,OAC/CwE,EAAa,EAAKgqB,mBAAmBv5B,WAAW+K,OAAO,eAChDkB,OAAO,CAAC,WAAY,IAAKpB,EAAEpG,QAH1B,SAIN8K,EAAW7J,OAAO6qB,KAAK,KACzB,EAAKgJ,mBAAmBv5B,WAAW+K,OAAO,aAAcwE,KALhD,OAOZ,EAAK+9B,aAAaC,SAAW1iC,EAAEpG,MAC/B,EAAK6nC,SAAStsC,SAASyuB,iBACvB,EAAK6d,SAAStsC,SAAS4M,UACvB,EAAK6/B,gBAAgBzsC,SAAS+K,OAAO,QAAS,MAC9C,EAAK4vB,kBAAoB,GAEU,IAA/B,EAAK+V,mBAAmBloC,KACxB,EAAKwf,kBAAkB/b,OAAO,CAAC,iBAAkB,IAAKpB,EAAEpG,QACxD,EAAK4nC,YAAYrsC,SAAS4M,WAG9B,EAAKy/B,YAAYrsC,SAASyuB,iBAlBd,4CAAF,mDAAC,KAqBf,kBAAC,QAAD,CAAO/iB,KAAK,YAEhB,kBAAC,aAAD,CAAY0D,UAAW,eAAgBC,WAAY,cAAeC,cAAe,CAC7EC,WAAYrS,KAAKs5B,oBACjBhnB,UAAW,KACXrP,YAAa,MACbmN,cAAepQ,KAAK6gC,gCACpBj9B,IAAMA,GAAQ5D,KAAKq8B,mBAAqBz4B,EACxC0X,eAAiB3N,IACb3N,KAAKy9B,kBAAoB,GACzBz9B,KAAK8qB,kBAAkB/b,OAAO,CAAC,eAAgB,IAAKpB,EAAEpG,QACtDvH,KAAKmvC,YAAYrsC,SAAS4M,UAC1B1P,KAAKmvC,YAAYrsC,SAASyuB,oBAG9B,kBAAC,QAAD,CAAO/iB,KAAK,cACZ,kBAAC,eAAD,CAAc+D,QAAQ,qCAE1B,kBAAC,aAAD,CAAYL,UAAW,WACnB,kBAAC,KAAD,CACII,UAAU,KACVsZ,gBAAgB,EAChB3oB,YAAY,MACZsY,iBAAiB,EACjBlJ,WAAYrS,KAAKqzC,eACjB9B,cAAevxC,KAAK2zC,mBACpBr4B,eAAgBtb,KAAK+zC,8BACrB3jC,cAAepQ,KAAK4zC,6BACpBhwC,IAAMA,IAAU5D,KAAKuvC,gBAAkB3rC,KAE3C,kBAAC,QAAD,CAAO4K,KAAK,SACZ,kBAAC,eAAD,CAAc+D,QAAQ,gCAE1B,kBAAC,aAAD,CAAYL,UAAW,aAAcC,WAAY,cAAeC,cAAe,CAC3EhC,cAAgBzC,IACZ3N,KAAKkzC,kBAAoBvlC,EAAEC,WAE/BhK,IAAMA,GAAQ5D,KAAKkzC,kBAAoBtvC,IAEvC,kBAAC,QAAD,CAAO4K,KAAK,2BAEhB,kBAAC,aAAD,CAAY0D,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWjvB,EAAe,mBAC1BkvB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpB2tB,OAAQ,IACRnQ,YAAa,IACbjB,KAAM,SACNmP,WAAYnyB,KAAKmyB,aAErB,kBAAC,QAAD,CAAO3jB,KAAK,uBAGpB,kBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,WACnD,kBAAC,aAAD,KACI,kBAAC,kBAAD,CAAiByW,gBAAgB,IACjC,kBAAC,MAAD,CAAK9gB,MAAM,gCACP,kBAAC,aAAD,CAAYoH,UAAW,SAAUC,WAAY,YAAaC,cAAe,CACrEhC,cAAgBzC,IACZ3N,KAAKizC,cAAgBtlC,EAAEC,WAE3BhK,IAAMA,GAAQ5D,KAAKizC,cAAgBrvC,IAEnC,kBAAC,QAAD,CAAO4K,KAAK,qBACZ,kBAAC,eAAD,CAAc+D,QAAQ,4CAE1B,kBAAC,aAAD,CAAYL,UAAW,OAAQC,WAAY,eAAgBC,cAAe,CACtE1B,OAAQ,IACR1F,QAAS,CACL5H,MAAO,CACH,OACA,SACA,QACA,aACA,OACA,CACI,WAAc,SACd,aAAgB,CACZ,EACA,EACA,GACA,IAGR,WACA,SACA,QACA,YACA,cACA,YACA,aACA,iBACA,iBACA,cACA,aACA,YACA,cACA,aACA,eACA,YACA,OACA,OACA,QACA,aAEJ0pC,WAAW,GAGf18B,cAAgBzC,IACZ3N,KAAKmzC,YAAcxlC,EAAEC,WAEzBhK,IAAMA,GAAQ5D,KAAKmzC,YAAcvvC,IAEjC,kBAAC,QAAD,CAAO4K,KAAK,cAIpB,kBAAC,MAAD,CAAK1D,MAAM,sBACP,kBAAC,IAAD,CACIsJ,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK8qB,kBACjB3C,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,YACnBC,oBAAoB,EACpB8G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJtC,QAAQ,KACR4Q,mBAAoBvU,KAAK8yC,8BACzB1iC,cAAepQ,KAAK+vC,yBACpBjZ,wBAA0BnpB,IACtB3N,KAAKy9B,kBAAoB,GACrB9vB,EAAEnB,OAAS,GACXmB,EAAEtG,QAASoF,IACPzM,KAAKy9B,kBAAkBj7B,KAAK,CACxB6mB,UAAW5c,OAK3B6nC,eAAiB3mC,MAGjB/J,IAAMA,GAAQ5D,KAAKmvC,YAAcvrC,GAEjC,kBAAC,SAAD,CACIsR,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,IACzBma,SAAU,qBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,kBAAC,eAAD,CAAcvX,SAAS,IACvB,kBAAC,gBAAD,CAAeJ,KAAK,cAAcI,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,MAC3D,kBAAC,YAAD,CAAW2G,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,eAAD,CAAcA,SAAS,IACvB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,UACtC,kBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,YAC9B,kBAAC,eAAD,CAAc5C,QAAQ,8BAE1B,kBAAC,SAAD,CAAQL,UAAW,SAAUiD,QAAQ,SACjC,kBAAC,eAAD,CAAc5C,QAAQ,iCAE1B,kBAAC,SAAD,CAAQL,UAAW,SAAUiD,QAAQ,oBACrC,kBAAC,SAAD,CAAQjD,UAAW,OAAQiD,QAAQ,cACnC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,oBACrC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,wBAOrD,kCASnCw+B,qBACI,OACI,kBAAC,IAAD,CACIthC,WAAYrS,KAAKqzC,eACjBt3B,mBAAmB,EACnBE,mBAAoBjc,KAAK8zC,+BACzBpC,QAAS,CAAC,YAAa,UAAW,OAClCthC,cAAepQ,KAAK6zC,sBACpBjwC,IAAMA,IAAU5D,KAAKovC,SAAWxrC,IAEhC,kBAAC,YAAD,CAAWkR,KAAK,aAChB,kBAAC,YAAD,CAAWA,KAAK,YAChB,kBAAC,SAAD,CAAQI,SAAS,EAAMiH,SAAU,KACjC,kBAAC,YAAD,CAAW9N,SAAS,MC7mCrB,MAAMkmC,WAAkBtyC,IAAM0T,UACzC5V,YAAYU,GACRyB,MAAMzB,GADS,KAmrBnB+zC,qBAAuB,KACnBx0C,KAAKyN,SAAS,CACVgnC,mBAAmB,KArrBR,KAyrBnBC,kBAAoB,KAChB10C,KAAKyN,SAAS,CACVgnC,mBAAmB,KAzrBvBz0C,KAAK+J,MAAQ,CACT0qC,mBAAmB,EACnBrkB,iBAAiB,GAErBpwB,KAAKoQ,cAAgBpQ,KAAKoQ,cAAcxG,KAAK5J,MAC7CA,KAAK+vC,yBAA2B/vC,KAAK+vC,yBAAyBnmC,KAAK5J,MACnEA,KAAK0rB,4BAA8B1rB,KAAK0rB,4BAA4B9hB,KAAK5J,MACzEA,KAAK8gC,kCAAoC9gC,KAAK8gC,kCAAkCl3B,KAAK5J,MACrFA,KAAK6gC,gCAAkC7gC,KAAK6gC,gCAAgCj3B,KAAK5J,MACjFA,KAAK20C,+BAAiC30C,KAAK20C,+BAA+B/qC,KAAK5J,MAC/EA,KAAK8yC,8BAAgC9yC,KAAK8yC,8BAA8BlpC,KAAK5J,MAC7EA,KAAK40C,yBAA2B50C,KAAK40C,yBAAyBhrC,KAAK5J,MACnEA,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKgzC,iBAAmB,KACxBhzC,KAAKyoB,SAAW,KAChBzoB,KAAKizC,cAAgB,KACrBjzC,KAAK60C,uBAAyB,KAC9B70C,KAAK80C,mBAAqB,KAC1B90C,KAAK+0C,YAAc,KACnB/0C,KAAKmvC,YAAc,KACnBnvC,KAAKs8B,qBAAuB,KAC5Bt8B,KAAKq8B,mBAAqB,KAC1Br8B,KAAKg1C,kBAAoB,KACzBh1C,KAAK2rB,eAAiB,KACtB3rB,KAAKyM,MAAQ,KACbzM,KAAKy9B,kBAAoB,GACzBz9B,KAAKovC,SAAW,KAChBpvC,KAAK2zC,mBAAqB3zC,KAAK2zC,mBAAmB/pC,KAAK5J,MACvDA,KAAKuvC,gBAAkB,KACvBvvC,KAAK4zC,6BAA+B5zC,KAAK4zC,6BAA6BhqC,KAAK5J,MAC3EA,KAAK6zC,sBAAwB7zC,KAAK6zC,sBAAsBjqC,KAAK5J,MAC7DA,KAAK8zC,+BAAiC9zC,KAAK8zC,+BAA+BlqC,KAAK5J,MAC/EA,KAAK+zC,8BAAgC/zC,KAAK+zC,8BAA8BnqC,KAAK5J,MAC7EA,KAAKgrB,eAAiB,IAAI5iB,IACtB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,YACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKi1C,mBAAqB,IAAI7sC,IAAW,CACrCuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,oCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM7D1G,KAAKm3B,sBAAwB,IAAI/uB,IAAW,CACxCuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAO7D1G,KAAKs5B,oBAAsB,IAAIlxB,IAAW,CACtCuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,sCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM7D1G,KAAKowC,aAAe,CAAEC,SAAU,GAChCrwC,KAAKqzC,eAAiB,IAAIjrC,IACtB,CACIG,cAAc,EACd4D,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKowC,aACjBpoC,QAASrD,EAAe,0BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKk1C,WAAa,CACdC,OAAQ,EACR9E,SAAU,EACVC,OAAQ,GAEZtwC,KAAK8qB,kBAAoB,IAAI1iB,IACzB,CACIG,cAAc,EACdtC,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKk1C,WACjBltC,QAASrD,EAAe,kCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKyrB,mBAAqB,CACtB2pB,SAAU,CAAE9pC,GAAI,MAChBolC,QAAS,GACT3iB,YAAa,CAAEziB,GAAI,MACnBmoC,UAAW,CAAEnoC,GAAI,MACjB+pC,gBAAiB,KACjBC,YAAa,KACbx1B,OAAQ,GACRK,SAAU,GACVylB,WAAY,GACZt6B,GAAI,GAMZ8E,cAAczC,GACV3N,KAAKyoB,SAAW9a,EAAEC,UAGtBgnC,yBAAyBjnC,GACrB3N,KAAK+0C,YAAcpnC,EAAEC,UAEzBmiC,yBAAyBpiC,GACrB3N,KAAKmvC,YAAcxhC,EAAEC,UAGzB8d,4BAA4B/d,GACxB3N,KAAK2rB,eAAiBhe,EAAEC,UAG5BkzB,kCAAkCnzB,GAC9B3N,KAAKs8B,qBAAuB3uB,EAAEC,UAGlCizB,gCAAgClzB,GAC5B3N,KAAKq8B,mBAAqB1uB,EAAEC,UAKhC+mC,+BAA+BhnC,GAC3B3N,KAAKg1C,kBAAoBrnC,EAAEC,UAG/B2G,mBAAmB5G,GAAI,IAAD,OAClBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QACV0N,aAAc,OACdlC,OAAQ,WACR8F,SAAUxS,KAAK+J,MAAMqmB,gBACrB/hB,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzB5B,QAAS,CACLzI,KAAM,UACN4I,KAAM,kBACN0B,KAAM,kBACN5B,KAAM,QACNI,QAAQ,WAAD,4BAAE,8BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAOKxM,EAAO,CACTgF,GAAImB,EAAMnB,IAEd,EAAKmC,SAAS,CACV2iB,iBAAiB,IAErBxuB,IAAQ4E,KAAK7B,EAAe,wBAAyB2B,EACjD,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACV2iB,iBAAiB,IAErBxoB,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,KACF,OAA3B,EAAKkc,SAAS3lB,WACd,EAAK2lB,SAAS3lB,SAASyuB,iBACvB,EAAK9kB,MAAQ,KACb,EAAKgc,SAAS3lB,SAAS+K,OAAO,mBAAoB,MAItD,EAAKJ,SAAS,CACV2iB,iBAAiB,IAErBtd,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,WAG/EC,MAAMC,IACH,EAAKyG,SAAS,CACV2iB,iBAAiB,IAErBtd,YAAM,6DAA2C9L,EAAK,UA1C7D,2CAAF,kDAAC,KAgDhB,CACI9F,SAAU,QACV0N,aAAc,OACdlC,OAAQ,WACRC,QAAS,CACLzI,KAAM,UACN4I,KAAM,2CACN0B,KAAM,2CACN5B,KAAM,YACNI,QAAQ,WAAD,4BAAE,4BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAODlR,IAAQ6F,IAAI9C,EAAe,qBAAuB8H,EAAMnB,GACpD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACTiM,YAAM,4EAAyDlM,EAAIN,KAAKiG,KAAO,4NAAqJ,SACrM,OAA3B,EAAKkc,SAAS3lB,WACd,EAAK2lB,SAAS3lB,SAASyuB,iBACvB,EAAK9kB,MAAQ,KACb,EAAKgc,SAAS3lB,SAAS+K,OAAO,mBAAoB,KAItDiF,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IACH8L,YAAM,6DAA2C9L,EAAK,UA3B7D,2CAAF,kDAAC,KAiChB,CACI9F,SAAU,QACV0N,aAAc,OACdlC,OAAQ,WACRC,QAAS,CACLzI,KAAM,UACN4I,KAAM,kCACN0B,KAAM,kCACN5B,KAAM,YACNI,QAAQ,WAAD,4BAAE,4BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAODlR,IAAQ6F,IAAI9C,EAAe,yBAA2B8H,EAAMnB,GACxD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACTiM,YAAM,4CAAyClM,EAAIN,KAAKiG,KAAO,4LAAqI,SACrK,OAA3B,EAAKkc,SAAS3lB,WACd,EAAK2lB,SAAS3lB,SAASyuB,iBACvB,EAAK9kB,MAAQ,KACb,EAAKgc,SAAS3lB,SAAS+K,OAAO,mBAAoB,KAItDiF,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IACH8L,YAAM,6DAA2C9L,EAAK,UA3B7D,2CAAF,kDAAC,KAiChB,CACI9F,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,OAAQF,KAAM,MACrCI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sDACuB,iBAAxB/F,EAAQoB,QAAQ2M,KAAkD,gBAAxB/N,EAAQoB,QAAQ2M,KAAiD,SAAxB/N,EAAQoB,QAAQ2M,KAA0C,UAAxB/N,EAAQoB,QAAQ2M,IACrIuE,YAAM,wDAGN,EAAK2Y,mBAAqB,CACtB2pB,SAAU,CAAE9pC,GAAI9K,EAAQoB,QAAQ0J,IAChColC,QAAS,GACT3iB,YAAa,CAAEziB,GAAI,MACnBmoC,UAAW,CAAEnoC,GAAI,MACjB+pC,gBAAiB,KACjBC,YAAa,KACbx1B,OAAQ,GACRK,SAAU,GACVylB,WAAY,GACZt6B,GAAI,GAER,EAAK6jC,YAAYrsC,SAASyuB,iBAC1B,EAAK6d,SAAStsC,SAASyuB,iBACvB,EAAK2jB,WAAWC,OAAS,EACzB,EAAKD,WAAW7E,SAAW,EAC3B,EAAK6E,WAAW5E,OAAS,EACzB,EAAKxlB,kBAAkB/b,OAAO,CAAC,iBAAkB,KAAM,IACvD,EAAKqgC,SAAStsC,SAAS4M,UACvB,EAAKy/B,YAAYrsC,SAAS4M,UAC1B,EAAK+tB,kBAAoB,GAEzB,EAAKiX,qBA3BJ,2CAAF,kDAAC,KAgChB,CACIxzC,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,aAAWF,KAAM,OACxCI,QAAQ,WAAD,4BAAE,4BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,6BAO2B,iBAAxBtS,EAAQoB,QAAQ2M,KAAkD,gBAAxB/N,EAAQoB,QAAQ2M,KAAiD,SAAxB/N,EAAQoB,QAAQ2M,KAA0C,UAAxB/N,EAAQoB,QAAQ2M,IAPxI,iBAQGuE,YAAM,uDART,+BAWG,EAAKq8B,YAAYrsC,SAASyuB,iBAX7B,UAaS,EAAK0jB,mBAAmBzsC,OAAO6qB,KAAK,KACP,cAA3B,EAAK2hB,mBAAgE,OAA3B,EAAKA,mBAAyD,KAA3B,EAAKA,wBAAuDn0C,IAA3B,EAAKm0C,mBACnH,EAAKA,kBAAkBlyC,WAAW+K,OAAO,QAAS,EAAKpB,MAAM2oC,SAAS9pC,MAfjF,yBAmBS,EAAK6rB,sBAAsB3uB,OAAO6qB,KAAK,KACP,cAA9B,EAAKiJ,sBAAsE,OAA9B,EAAKA,sBAA+D,KAA9B,EAAKA,2BAA6Dz7B,IAA9B,EAAKy7B,sBAC5H,EAAKA,qBAAqBx5B,WAAW+K,OAAO,QAAS,EAAKpB,MAAMshB,YAAYziB,MArBvF,yBA0BS,EAAKguB,oBAAoB9wB,OAAO6qB,KAAK,KACP,cAA5B,EAAKgJ,oBAAkE,OAA5B,EAAKA,oBAA2D,KAA5B,EAAKA,yBAAyDx7B,IAA5B,EAAKw7B,oBACtH,EAAKA,mBAAmBv5B,WAAW+K,OAAO,QAAS,EAAKpB,MAAMgnC,UAAUnoC,MA5BnF,yBAgCS,EAAK+nC,eAAe7qC,OAAO6qB,KAAK,KAElC,GAAM,EAAK5mB,MAAMunC,YAAa,CAC1B,IAAIC,EAAU,EAAKxnC,MAAMunC,YAAYnhC,MAAM,KACvCqhC,EAAiB,GACrBD,EAAQ5sC,QAASsH,IACb,EAAK8c,mBAAmBilB,QAAQluC,KAAK,CACjC8I,GAAI2X,SAAStU,KAEjBulC,EAAe1xC,KAAKygB,SAAStU,MAEjC,EAAKygC,SAAStsC,SAASuuB,WAAW6iB,MA3C7C,eA+CG,EAAKgB,WAAWC,OAAS,EAAK1oC,MAAMnB,GACpC,EAAK4pC,WAAW7E,SAAW,EAAK5jC,MAAMshB,YAAYziB,GAClD,EAAK4pC,WAAW5E,OAAS,EAAK7jC,MAAMgnC,UAAUnoC,GAjDjD,UAmDS,EAAK6jC,YAAYrsC,SAAS4M,UAnDnC,yBAoDS,EAAKykC,qBAAqB,EAAK1nC,MAAMnB,IApD9C,QAqDG,EAAKmgB,mBAAmBngB,GAAK,EAAKmB,MAAMnB,GACxC,EAAKmgB,mBAAmB2pB,SAAS9pC,GAAK,EAAKmB,MAAM2oC,SAAS9pC,GAC1D,EAAKmgB,mBAAmBsC,YAAYziB,GAAK,EAAKmB,MAAMshB,YAAYziB,GAChE,EAAKmgB,mBAAmBgoB,UAAUnoC,GAAK,EAAKmB,MAAMgnC,UAAUnoC,GAC5D,EAAKmgB,mBAAmB4pB,gBAAkB,EAAK5oC,MAAM4oC,gBACrD,EAAK5pB,mBAAmB6pB,YAAc,EAAK7oC,MAAM6oC,YACjD,EAAK7pB,mBAAmBtL,SAAW,EAAK1T,MAAM0T,SAC9C,EAAK8yB,cAAcnwC,WAAW+K,OAAO,QAAS,EAAKpB,MAAMqT,QACzD,EAAKi1B,YAAYjyC,WAAW+K,OAAO,QAAS,EAAKpB,MAAM0T,UACvD,EAAK00B,uBAAuB/xC,WAAW+K,OAAO,QAAS,EAAKpB,MAAM4oC,iBAClE,EAAKP,mBAAmBhyC,WAAW+K,OAAO,QAAS,EAAKpB,MAAM6oC,aAC9D,EAAKZ,oBAhER,4CAAF,kDAAC,KAsEhB,CACIxzC,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,QACnCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,iBAAxBjM,EAAQoB,QAAQ2M,KAAkD,gBAAxB/N,EAAQoB,QAAQ2M,KAAiD,SAAxB/N,EAAQoB,QAAQ2M,KAA0C,UAAxB/N,EAAQoB,QAAQ2M,IACrIuE,YAAM,2DAEL,CACYI,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK7B,EAAe,eAAiB3E,KAAKyM,MAAMnB,GACpD,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD5H,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,sBAIL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,cAzB/DgM,YAAM,6BAAsB,iBAmC5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,iBAAxBjM,EAAQoB,QAAQ2M,KAAkD,gBAAxB/N,EAAQoB,QAAQ2M,KAAiD,SAAxB/N,EAAQoB,QAAQ2M,KAA0C,UAAxB/N,EAAQoB,QAAQ2M,IACrIuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK7B,EAAe,iBAAmB8H,EAAMnB,GACjD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,qBACL7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,cA1B/DgM,YAAM,6BAAsB,iBAoC5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1CI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,iBAAxBjM,EAAQoB,QAAQ2M,KAAkD,gBAAxB/N,EAAQoB,QAAQ2M,KAAiD,SAAxB/N,EAAQoB,QAAQ2M,KAA0C,UAAxB/N,EAAQoB,QAAQ2M,IACrIuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK7B,EAAe,iBAAmB8H,EAAMnB,GACjD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,qBACL7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,cA1B/DgM,YAAM,6BAAsB,iBAoC5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAAS4M,cAO3CojC,8BAA8BnlC,GAAI,IAAD,OAC7BA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,OAAQ0B,KAAM,OAAQ5B,KAAM,MACnDI,QAAQ,WAAD,4BAAE,8BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAO2B,iBAAxBtS,EAAQoB,QAAQ2M,IAChBuE,YAAM,wDAGFxM,EAAO,CACPivC,OAAQ,EAAK9oC,MAAMnB,GACnB4iC,MAAO,EACPtI,WAAY,EAAKnI,mBAErB77B,IAAQ4E,KAAK7B,EAAe,qBACxB2B,EACA,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAKsoC,YAAYrsC,SAAS4M,UAC1B9H,YAAO,mFAA4D,UAAW,MAG9EA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QA9BtD,2CAAF,kDAAC,KAsChB,CACI5F,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,oBAAW0B,KAAM,oBAAW5B,KAAM,QACzDI,QAAQ,WAAD,4BAAE,8BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAO2B,iBAAxBtS,EAAQoB,QAAQ2M,IAChBuE,YAAM,wDAGFxM,EAAO,CACPivC,OAAQ,EAAK9oC,MAAMnB,GACnB4iC,MAAO,EACPtI,WAAY,EAAKnI,mBAErB77B,IAAQ4E,KAAK7B,EAAe,qBACxB2B,EACA,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAKsoC,YAAYrsC,SAAS4M,UAC1B9H,YAAO,gGAA+D,UAAW,MAGjFA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QA9BtD,2CAAF,kDAAC,KAsChB,CACI5F,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,sBAAa0B,KAAM,sBAAa5B,KAAM,QAC5DI,QAAQ,WAAD,4BAAE,8BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAO2B,iBAAxBtS,EAAQoB,QAAQ2M,IAChBuE,YAAM,wDAGFxM,EAAO,CACPivC,OAAQ,EAAK9oC,MAAMnB,GACnB4iC,MAAO,EACPtI,WAAY,EAAKnI,mBAErB77B,IAAQ4E,KAAK7B,EAAe,qBACxB2B,EACA,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAKsoC,YAAYrsC,SAAS4M,UAC1B9H,YAAO,gGAA+D,UAAW,MAGjFA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QA9BtD,2CAAF,kDAAC,MAsDxB2sB,qBACmC,OAA3BzzB,KAAKyoB,SAAS3lB,WACd9C,KAAKyoB,SAAS3lB,SAASyuB,iBACvBvxB,KAAKyM,MAAQ,KACbzM,KAAKyoB,SAAS3lB,SAAS+K,OAAO,mBAAoB,IAIpDsmC,qBAAqBgB,GAAS,IAAD,2IACxB,IAAIp6B,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAI9C,EAAe,6BAA+BwwC,EACtD,CACI1uC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACF,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAIsqB,EAAY,GAChBvqB,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzBwhB,EAAU3uB,KAAKoe,EAAKyI,aAExB,EAAKoU,kBAAoBtM,EACzB,EAAK1F,mBAAmBma,WAAa,EAAKnI,kBAC1C,EAAK0R,YAAYrsC,SAASuuB,WAAW,EAAKoM,mBAC1CziB,EAAQ,4CAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,gBAErBC,MAAMiH,IACLiN,EAAOjN,QAxBY,6CA6BnC4lC,6BAA6BjmC,GACzB3N,KAAKuvC,gBAAkB5hC,EAAEC,UAG7BimC,sBAAsBlmC,GAClB3N,KAAKovC,SAAWzhC,EAAEpG,MAGtBusC,+BAA+BnmC,GACM,IAA7BA,EAAE67B,gBAAgBh9B,OAClBxM,KAAKq0C,iBAAmB,GAGxBr0C,KAAKq0C,iBAAmB1mC,EAAE67B,gBAE9BxpC,KAAKuvC,gBAAgBzsC,SAAS+K,OAAO,QAAS7N,KAAKq0C,kBAGvDN,8BAA8BpmC,GACtB3N,KAAKq0C,mBAAqB1mC,EAAEpG,QAI5BvH,KAAKq0C,iBAAmB1mC,EAAEpG,OAAS,GACnCvH,KAAKuvC,gBAAgBzsC,SAAS+K,OAAO,QAAS7N,KAAKq0C,mBAI3DtxC,SAAU,IAAD,OACL,OACI,kBAAC,IAAM6U,SAAP,KAEI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,0FAGb,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKgrB,eACjB7C,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnBC,oBAAoB,EACpB8G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJmK,cAAepQ,KAAKoQ,cACpBumB,oBAAsBhpB,IAClB3N,KAAK42B,WAAajpB,EAAEkpB,SACpB,IAAIxO,EAAU1a,EAAEgH,KAAOhH,EAAEgH,IAAIrO,KACzB+hB,IACAroB,KAAKyM,MAAQ4b,IAGrB9T,mBAAoBvU,KAAKuU,mBACzB3Q,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,kBAAC,SAAD,CACIsR,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,IACzBma,SAAU,qBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,kBAAC,eAAD,CAAcvX,SAAS,IACvB,kBAAC,gBAAD,CAAeJ,KAAK,cAAcI,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,MAC3D,kBAAC,YAAD,CAAW2G,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,eAAD,CAAcA,SAAS,IACvB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,UACtC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,SACtC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,oBACxC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,cACtC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,yBAKrD,kBAAC,QAAD,CAAOvE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAM0qC,kBACpB3pC,MAAO,yDACPsB,aACI,CAEI,CACIlL,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACL6B,KAAM,SACNtK,KAAM,UACN4I,KAAM,SACN0F,SAAyC,IAA/BxS,KAAKyrB,mBAAmBngB,GAClCsB,KAAM,QACJI,QAAQ,WAAD,4BAAE,4BAAAzG,EAAA,gEACuB1F,IAA1B,EAAKwzC,iBAA2D,OAA1B,EAAKA,iBAAsD,KAA1B,EAAKA,kBADzE,uBAEHvhC,YAAM,oCAA+B,cAFlC,6BAK+B,IAAlC,EAAK2qB,kBAAkBjxB,OALpB,uBAMHsG,YAAM,+CAAkC,cANrC,6BASgB,EAAK6Y,eAAe7oB,SAASgc,WAChCC,QAVb,mDAeH,EAAK0M,mBAAmBma,WAAa,GACrC,EAAKna,mBAAmBma,WAAa,EAAKnI,kBACtCwW,EAAU,GACd,EAAKI,iBAAiBhtC,QAASoF,IAC3BwnC,EAAQzxC,KAAK,CACT8I,GAAImB,MAGZ,EAAKgf,mBAAmBilB,QAAUuD,EAClCryC,IAAQ4E,KAAK7B,EAAe,YAAa,EAAK8mB,mBAAoB,CAC9DhlB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,uBAEEe,YAAO,qCAAyB,UAAW,KAF7C,SAGQ,EAAK6rB,qBAHb,uBAIQ,EAAKhL,SAAS3lB,SAAS4M,UAAU2jB,KAAK,KACxC,EAAKmhB,yBALX,6BAQE5sC,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KARrF,2CALV,uDAgBKC,MAAMC,IACH,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,UArDpB,4CAAF,kDAAC,KA+DlB,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAKktB,qBADJ,uBAED,EAAK+gB,uBAFJ,2CAAF,kDAAC,OAS1B,kBAAC,WAAD,CAAUpjC,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAMgC,SAAU,EAAGH,SAAU9R,KAAKyrB,mBAAoBrb,cAAepQ,KAAK0rB,4BAA6B9nB,IAAMA,GAAQ5D,KAAK2rB,eAAiB/nB,GACvI,kBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,CAAYC,UAAW,cAAeC,WAAY,cAAeC,cAAe,CAC5EC,WAAYrS,KAAKi1C,mBACjB3iC,UAAW,KACXrP,YAAc2d,GACLA,EAIMA,EAAK/Q,IAAM,IAAM+Q,EAAK9Q,OAAS,IAAM8Q,EAAKisB,MAAQ,IAHlD,GAMfz8B,cAAepQ,KAAK20C,+BACpB/wC,IAAMA,GAAQ5D,KAAKg1C,kBAAoBpxC,IAEvC,kBAAC,QAAD,CAAO4K,KAAK,qBACZ,kBAAC,eAAD,CAAc+D,QAAQ,4CAE1B,kBAAC,aAAD,CAAYL,UAAW,iBAAkBC,WAAY,cAAeC,cAAe,CAC/EC,WAAYrS,KAAKm3B,sBACjB7kB,UAAW,KACXrP,YAAa,MACbmN,cAAepQ,KAAK8gC,kCACpBl9B,IAAMA,GAAQ5D,KAAKs8B,qBAAuB14B,EAC1C0X,eAAe,WAAD,4BAAE,WAAO3N,GAAP,eAAApH,EAAA,6DACZ,EAAK81B,mBAAmBv5B,WAAW+K,OAAO,QAAS,OAC/CwE,EAAa,EAAKgqB,mBAAmBv5B,WAAW+K,OAAO,eAChDkB,OAAO,CAAC,WAAY,IAAKpB,EAAEpG,QAH1B,SAIN8K,EAAW7J,OAAO6qB,KAAK,KACzB,EAAKgJ,mBAAmBv5B,WAAW+K,OAAO,aAAcwE,KALhD,OAQZ,EAAK+9B,aAAaC,SAAW1iC,EAAEpG,MAC/B,EAAK6nC,SAAStsC,SAASyuB,iBAIvB,EAAK6d,SAAStsC,SAAS4M,UAEvB,EAAK6/B,gBAAgBzsC,SAAS+K,OAAO,QAAS,MAE9C,EAAK4vB,kBAAoB,GACU,IAA/B,EAAKhS,mBAAmBngB,KACxB,EAAKwf,kBAAkB/b,OAAO,CAAC,iBAAkB,IAAKpB,EAAEpG,QACxD,EAAK4nC,YAAYrsC,SAAS4M,WAE9B,EAAKy/B,YAAYrsC,SAASyuB,iBAtBd,4CAAF,mDAAC,KAyBf,kBAAC,QAAD,CAAO/iB,KAAK,WACZ,kBAAC,eAAD,CAAc+D,QAAQ,kCAE1B,kBAAC,aAAD,CAAYL,UAAW,eAAgBC,WAAY,cAAeC,cAAe,CAC7EC,WAAYrS,KAAKs5B,oBACjBhnB,UAAW,KACXrP,YAAa,MACbmN,cAAepQ,KAAK6gC,gCACpBj9B,IAAMA,GAAQ5D,KAAKq8B,mBAAqBz4B,EACxC0X,eAAiB3N,IACb3N,KAAKy9B,kBAAoB,GACzBz9B,KAAK8qB,kBAAkB/b,OAAO,CAAC,eAAgB,IAAKpB,EAAEpG,QACtDvH,KAAKmvC,YAAYrsC,SAAS4M,UAC1B1P,KAAKmvC,YAAYrsC,SAASyuB,oBAG9B,kBAAC,QAAD,CAAO/iB,KAAK,cACZ,kBAAC,eAAD,CAAc+D,QAAQ,qCAE1B,kBAAC,aAAD,CAAYL,UAAW,WACnB,kBAAC,KAAD,CACII,UAAU,KACVsZ,gBAAgB,EAChB3oB,YAAY,MACZsY,iBAAiB,EACjBlJ,WAAYrS,KAAKqzC,eACjB9B,cAAevxC,KAAK2zC,mBACpBr4B,eAAgBtb,KAAK+zC,8BACrB3jC,cAAepQ,KAAK4zC,6BACpBhwC,IAAMA,IAAU5D,KAAKuvC,gBAAkB3rC,KAE3C,kBAAC,QAAD,CAAO4K,KAAK,SACZ,kBAAC,eAAD,CAAc+D,QAAQ,gCAE1B,kBAAC,aAAD,CAAYL,UAAW,kBAAmBC,WAAY,YAAaC,cAAe,CAC9ElO,KAAM,WACNkM,cAAgBzC,IACZ3N,KAAK60C,uBAAyBlnC,EAAEC,WAEpC0N,eAAiB3N,IACb,IAAI0gC,EAAI,IAAI9lB,KAAK5a,EAAEpG,OACnB8mC,EAAEC,SAASD,EAAEE,WAAa,GAC1BvuC,KAAKyrB,mBAAmB4pB,gBAAkBhH,GAE9CzqC,IAAMA,GAAQ5D,KAAK60C,uBAAyBjxC,IAE5C,kBAAC,QAAD,CAAO4K,KAAK,kCACZ,kBAAC,eAAD,CAAc+D,QAAQ,yDAE1B,kBAAC,aAAD,CAAYL,UAAW,cAAeC,WAAY,YAAaC,cAAe,CAC1ElO,KAAM,WACNoX,eAAiB3N,IACb,IAAI0gC,EAAI,IAAI9lB,KAAK5a,EAAEpG,OACnB8mC,EAAEC,SAASD,EAAEE,WAAa,GAC1BvuC,KAAKyrB,mBAAmB6pB,YAAcjH,GAE1Cj+B,cAAgBzC,IACZ3N,KAAK80C,mBAAqBnnC,EAAEC,WAEhChK,IAAMA,GAAQ5D,KAAK80C,mBAAqBlxC,IAExC,kBAAC,QAAD,CAAO4K,KAAK,sBACZ,kBAAC,eAAD,CAAc+D,QAAQ,8CAG9B,kBAAC,YAAD,CAAWP,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,WACnD,kBAAC,aAAD,KACI,kBAAC,kBAAD,CAAiByW,gBAAgB,IACjC,kBAAC,MAAD,CAAK9gB,MAAM,gCACP,kBAAC,aAAD,CAAYoH,UAAW,SAAUC,WAAY,cAAeC,cAAe,CACvEC,WAAYpR,OAAOgD,QAAQuxC,WAC3BvyC,YAAa,OACbqP,UAAW,QACXlC,cAAgBzC,IACZ3N,KAAKizC,cAAgBtlC,EAAEC,WAE3BhK,IAAMA,GAAQ5D,KAAKizC,cAAgBrvC,IAEnC,kBAAC,QAAD,CAAO4K,KAAK,qBACZ,kBAAC,eAAD,CAAc+D,QAAQ,4CAE1B,kBAAC,aAAD,CAAYL,UAAW,WAAYC,WAAY,eAAgBC,cAAe,CAC1E1B,OAAQ,IACR1F,QAAS,CACL5H,MAAO,CACH,OACA,SACA,QACA,aACA,OACA,CACI,WAAc,SACd,aAAgB,CACZ,EACA,EACA,GACA,IAGR,WACA,SACA,QACA,YACA,cACA,YACA,aACA,iBACA,iBACA,cACA,aACA,YACA,cACA,aACA,eACA,YACA,OACA,OACA,QACA,aAEJ0pC,WAAW,GAGf18B,cAAgBzC,IACZ3N,KAAK+0C,YAAcpnC,EAAEC,WAEzBhK,IAAMA,GAAQ5D,KAAK+0C,YAAcnxC,IAEjC,kBAAC,QAAD,CAAO4K,KAAK,cAIpB,kBAAC,MAAD,CAAK1D,MAAM,sBACP,kBAAC,IAAD,CACIsJ,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK8qB,kBACjB3C,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,YACnBC,oBAAoB,EACpB8G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB/V,IAAI,KACJsO,mBAAoBvU,KAAK8yC,8BACzB1iC,cAAepQ,KAAK+vC,yBACpBjZ,wBAA0BnpB,IACtB3N,KAAKy9B,kBAAoB,GACrB9vB,EAAEnB,OAAS,GACXmB,EAAEtG,QAASoF,IACPzM,KAAKy9B,kBAAkBj7B,KAAK,CACxB6mB,UAAW5c,OAK3B6nC,eAAiB3mC,MAGjB/J,IAAMA,GAAQ5D,KAAKmvC,YAAcvrC,GAEjC,kBAAC,SAAD,CACIsR,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,IACzBma,SAAU,qBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,kBAAC,eAAD,CAAcvX,SAAS,IACvB,kBAAC,gBAAD,CAAeJ,KAAK,cAAcI,QAAiC,iBAAxB1U,EAAQoB,QAAQ2M,MAC3D,kBAAC,YAAD,CAAW2G,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,cAAD,CAAaA,SAAS,IACtB,kBAAC,eAAD,CAAcA,SAAS,IACvB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,UACtC,kBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,YAC9B,kBAAC,eAAD,CAAc5C,QAAQ,8BAE1B,kBAAC,SAAD,CAAQL,UAAW,SAAUiD,QAAQ,SACjC,kBAAC,eAAD,CAAc5C,QAAQ,iCAE1B,kBAAC,SAAD,CAAQL,UAAW,SAAUiD,QAAQ,oBACrC,kBAAC,SAAD,CAAQjD,UAAW,OAAQiD,QAAQ,cACnC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,oBACrC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,wBAMrD,kCASnCw+B,qBACI,OACI,kBAAC,IAAD,CACIthC,WAAYrS,KAAKqzC,eACjBt3B,mBAAmB,EACnBE,mBAAoBjc,KAAK8zC,+BACzBpC,QAAS,CAAC,YAAa,UAAW,OAClCthC,cAAepQ,KAAK6zC,sBACpBjwC,IAAMA,IAAU5D,KAAKovC,SAAWxrC,IAEhC,kBAAC,YAAD,CAAWkR,KAAK,aAChB,kBAAC,YAAD,CAAWA,KAAK,YAChB,kBAAC,SAAD,CAAQI,SAAS,EAAMiH,SAAU,KACjC,kBAAC,YAAD,CAAW9N,SAAS,MCrrCrB,MAAMonC,WAAuBxzC,YAExClC,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACToP,SAAU,GACV7O,OAAO,EACP6lB,YAAa,GACbC,iBAAiB,GAErBpwB,KAAK01C,oBAAsB,GAC3B11C,KAAK21C,SAAW,KAChB31C,KAAK41C,cAAgB,KACrB51C,KAAKyM,MAAQ,KACbzM,KAAK8R,SAAW,CACZxG,GAAI,EACJuE,IAAK,KACLgmC,UAAW,KACXpjB,SAAS,EACTC,WAAY,GAEhB1yB,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKoQ,cAAgBpQ,KAAKoQ,cAAcxG,KAAK5J,MAC7CA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAK81C,8BAAgC91C,KAAK81C,8BAA8BlsC,KAAK5J,MAC7EA,KAAK+1C,cAAgB/1C,KAAK+1C,cAAcnsC,KAAK5J,MAC7CA,KAAKwwB,aAAexwB,KAAKwwB,aAAa5mB,KAAK5J,MAC3CA,KAAKg2C,cAAgBh2C,KAAKg2C,cAAcpsC,KAAK5J,MAC7CA,KAAKi2C,cAAgBj2C,KAAKi2C,cAAcrsC,KAAK5J,MAC7CA,KAAKk2C,SAAWl2C,KAAKk2C,SAAStsC,KAAK5J,MACnCA,KAAK0wB,WAAa,KACd1wB,KAAKyN,SACD,CACInD,OAAO,EACP8lB,iBAAiB,IAEzBpwB,KAAK01C,oBAAsB,GAC3B11C,KAAK2wB,cAET3wB,KAAK6wB,QAAU,KACX7wB,KAAK01C,oBAAsB,GAC3B11C,KAAKyN,SACD,CACInD,OAAO,EACP8lB,iBAAiB,KAG7BpwB,KAAK4wB,cACL5wB,KAAKiiB,oBAAsB,IAAI7Z,IAC3B,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,qBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKm2C,YAAc,CAAEn0B,QAAS,GAC9BhiB,KAAKo2C,yBAA2B,IAAIhuC,IAChC,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAKm2C,YACjBnuC,QAAS3D,EAAW,iCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAQrE0J,cAAczC,GACV3N,KAAK21C,SAAWhoC,EAAEC,UAGtBmoC,gBAEI,OAAO,IAAIh7B,QAAQ,CAACC,EAASC,KACzB,IACIjb,KAAK8R,SAAW,CACZxG,GAAI,EACJuE,IAAK,KACL4iB,SAAS,EACTC,WAAY,EACZmjB,UAAW,MAEf76B,EAAQ,iCACV,MAAOhN,GACLiN,EAAOtV,EAAsBqI,EAAO,iBAEzCrH,KAAKC,IACJ5G,KAAK6wB,YACN9pB,MAAMiH,IACL8E,YAAM9E,KAMdwiB,aAAa7iB,GACT,MAAMlB,EAAQzM,KAAKyM,MACnB,OAAc,OAAVA,QAA4B5L,IAAV4L,OAClBqG,YAAM,6BAAsB,cAIrB,IAAIiI,QAAQ,CAACC,EAASC,KACzB,IACIjb,KAAK8R,SAAW,CACZxG,GAAImB,EAAMnB,GACVuE,IAAKpD,EAAMoD,IACXgmC,UAAWppC,EAAMopC,UACjBpjB,QAAShmB,EAAMgmB,QACfC,WAAiC,OAArBjmB,EAAMimB,WAAsB,EAAKjmB,EAAMimB,YAEvD1X,EAAQ,uDACV,MAAOhN,GACLiN,EAAOtV,EAAsBqI,EAAO,qCAEzCrH,KAAKC,IACJ5G,KAAK6wB,YACN9pB,MAAMiH,IACL8E,YAAM9E,KAKlBkoC,SAASvoC,GACL,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,mJAA6H,cAC3IvM,KAAMwM,IACT,IAAqB,IAAjBA,EACA,OAAO,IAAI4H,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ4E,KAAKnC,EAAW,qBAAuBoI,EAAMnB,GACjD,CACIA,GAAImB,EAAMnB,IAEd,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvDoT,EAAQ,oDAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAGvBC,MAAOiH,IACJiN,EAAOtV,EAAsBqI,EAAO,yBAE7CrH,KAAKC,IACJ5G,KAAK4wB,gBACN7pB,MAAMiH,IACL8E,YAAM9E,YAlClB8E,YAAM,6BAAsB,cA0CpCkjC,cAAcroC,GACV,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,oEAA2D,yBACzEvM,KAAMwM,IACT,IAAqB,IAAjBA,EACA,OAAO,IAAI4H,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ4E,KAAKnC,EAAW,kBAAoBoI,EAAMnB,GAC9C,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SAETmU,EAAQ,4CACRpT,YAAO,2CAAkC,UAAW,OAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAGvBC,MAAOiH,IACJiN,EAAOnV,EAAakI,QAE7BrH,KAAKC,IACJ5G,KAAK4wB,gBACN7pB,MAAMiH,IACL8E,YAAM9E,YAjClB8E,YAAM,6BAAsB,cAyCpCmjC,cAActoC,GACV,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,oEAA2D,yBACzEvM,KAAMwM,IACT,IAAqB,IAAjBA,EACA,OAAO,IAAI4H,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ4E,KAAKnC,EAAW,kBAAoBoI,EAAMnB,GAC9C,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QAETmU,EAAQ,6CAIRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAGvBC,MAAOiH,IAEJiN,EAAOnV,EAAakI,QAI7BrH,KAAKC,IACJgB,YAAO,2CAAkC,UAAW,KACpD5H,KAAK4wB,gBACN7pB,MAAMiH,IACL8E,YAAM9E,YArClB8E,YAAM,6BAAsB,cA6CpCyB,mBAAmB5G,GAAI,IAAD,OAClBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,OAAQF,KAAM,MAAO4F,SAAUxS,KAAK+J,MAAMqmB,gBACjEpjB,QAAShN,KAAK+1C,gBAGtB,CACI70C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,aAAWF,KAAM,OAAQ4F,SAAUxS,KAAK+J,MAAMqmB,gBACrEpjB,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACC,EAAKiqB,eADN,OAEL,EAAK2lB,YAAYn0B,QAAU,EAAKvV,MAAMnB,GACtC,EAAK8qC,yBAAyB5tC,OAAO6qB,KAAK,KACtC,IAAIlC,EAAY,GAChB,EAAKilB,yBAAyBhzC,QAAQiE,QAAQ,CAACuZ,EAAMjR,KACjDwhB,EAAU3uB,KAAKoe,EAAKmL,UAAUzgB,MAElC,EAAKsqC,cAAc9yC,SAASuuB,WAAWF,KARtC,2CAAF,kDAAC,KAchB,CACIjwB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,SAAU4F,SAAUxS,KAAK+J,MAAMqmB,gBAClEpjB,QAAShN,KAAKk2C,WAGtB,CACIh1C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UAAW4F,SAAUxS,KAAK+J,MAAMqmB,gBACzEpjB,QAAShN,KAAKi2C,gBAGtB,CACI/0C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAAc4F,SAAUxS,KAAK+J,MAAMqmB,gBAC7EpjB,QAAShN,KAAKg2C,gBAGtB,CACI90C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UAAW4F,SAAUxS,KAAK+J,MAAMqmB,gBACvEpjB,QAAS,KACLhN,KAAK4wB,iBAIjB,CACI1vB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YAAa0F,SAAUxS,KAAK+J,MAAMqmB,gBACvEpjB,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CyZ,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAIhDi3B,gCACI91C,KAAK01C,oBAAsB11C,KAAK41C,cAAc9yC,SAAS4R,sBAGrDkc,cAAe,IAAD,yHAEhB,EAAKnjB,SAAS,CACV0iB,YAAa,sCACbC,iBAAiB,IAJL,SAOV,EAAKxV,cAAcjU,KAAKC,OAAYG,MAAMiH,IAC5C8E,YAAM9E,KARM,uBAWV,EAAK2iB,aAXK,OAYhB,EAAKljB,SAAS,CACV0iB,YAAa,GACbC,iBAAiB,EACjB9lB,OAAO,IAfK,6CAqBdqmB,aAAc,IAAD,kHACf,EAAKglB,SAAS7yC,SAASyuB,iBACvB,EAAKokB,SAAS7yC,SAAS+K,OAAO,mBAAoB,GAFnC,6CAKb+M,cAAe,IAAD,2IACT,IAAIG,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,oBAAqB,CACxCoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACV0L,SAAUvS,EAAIN,KAAKiG,OAEvByO,EAAQ,qCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOtV,EAAsBqI,EAAO,8BAlB5B,6CAwBpBjL,SAEI,OACI,gBAAC,WAAD,KACI,uBAAKkN,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACVjQ,KAAK+J,MAAMomB,cAGpB,uBAAKlgB,UAAU,OACX,uBAAKA,UAAU,aAEX,gBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK+J,MAAMoP,SACvBwC,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EAEvBrY,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzB7L,cAAepQ,KAAKoQ,cACpBxM,IAAMA,GAAQ5D,KAAK21C,SAAW/xC,GAE9B,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,gBAAD,CAAezT,SAAS,IACxB,gBAAC,UAAD,CAASJ,KAAM,UACf,gBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,gBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,gBAAC,eAAD,CAAc5T,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,KACzB,gBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,UACtC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,eAClC,gBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,eAE5C,gBAAC,QAAD,CAAOvE,WAAW,EAAMC,SAAS,EAAOC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACtFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IACR3N,KAAKyN,SAAS,CACV0iB,YAAa,sDAEjBnwB,KAAK8R,SAASukC,aAAer2C,KAAK01C,oBAC3B,IAAI36B,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ4E,KAAKnC,EAAW,kBACpBrE,KAAK8R,SACL,CACIrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,oDAAqC,UAAW,KACvDoT,EAAQ,uDAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAGvBC,MAAOiH,IAEJiN,EAAOtV,EAAsBqI,EAAO,0CAG7CrH,KAAKC,IACJ5G,KAAK4wB,gBACN7pB,MAAMiH,IACL8E,YAAM9E,QAMtB,CACI9M,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,gBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,gBAAC,IAAD,CAAMI,SAAU9R,KAAK8R,UACjB,gBAAC,YAAD,CAAWE,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAW,MAAOyc,YAAY,GACtC,gBAAC,QAAD,CAAOngB,KAAK,gBAEhB,gBAAC,aAAD,CAAY0D,UAAW,YAAayc,YAAY,GAC5C,gBAAC,QAAD,CAAOngB,KAAK,eAEhB,gBAAC,aAAD,KACI,gBAAC,IAAD,CACI4F,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKiiB,oBACjB3N,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB8D,cAAc,EACd7D,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBE,mBAAoBjc,KAAK81C,8BACzBnyC,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEd3Y,IAAMA,GAAQ5D,KAAK41C,cAAgBhyC,EACnCN,MAAM,QAGN,gBAAC,SAAD,CAAQkZ,gBAAiB,KACzB,gBAAC,YAAD,CAAW1H,KAAK,WACZ2H,cAAc,WACd1H,mBAAmB,YACvB,gBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,qC,yBCvhBvE,MAAMmhC,WAAmCr0C,YACpDlC,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTO,OAAO,EACPkrB,uBAAuB,EACvB+gB,6BAA6B,GAEjCv2C,KAAK0xB,UAAY,KACjB1xB,KAAKyoB,SAAW,KAChBzoB,KAAKw2C,cAAgB,KACrBx2C,KAAK01B,UAAY,KACjB11B,KAAK21B,yBAA2B,KAChC31B,KAAK2xB,cAAgB,KACrB3xB,KAAKy1B,mBAAqB,KAC1Bz1B,KAAK4xB,aAAe,KACpB5xB,KAAKyM,MAAQ,KACbzM,KAAKmZ,SAAW,GAChBnZ,KAAKkZ,SAAW,GAChBlZ,KAAKy2C,wBAA0B,GAC/Bz2C,KAAK02C,yBAA2B,GAChC12C,KAAK22C,wBAA0B,GAC/B32C,KAAK8R,SAAW,GAEhB9R,KAAK2zB,eAAiB,GACtB3zB,KAAKi2B,oBAAsB,GAC3Bj2B,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAK6xB,2BAA6B7xB,KAAK6xB,2BAA2BjoB,KAAK5J,MACvEA,KAAK8xB,4BAA8B9xB,KAAK8xB,4BAA4BloB,KAAK5J,MACzEA,KAAK42C,4CAA8C52C,KAAK42C,4CAA4ChtC,KAAK5J,MACzGA,KAAK41B,4BAA8B51B,KAAK41B,4BAA4BhsB,KAAK5J,MACzEA,KAAK+xB,sBAAwB/xB,KAAK+xB,sBAAsBnoB,KAAK5J,MAC7DA,KAAK61B,uBAAyB71B,KAAK61B,uBAAuBjsB,KAAK5J,MAC/DA,KAAKgyB,uBAAyBhyB,KAAKgyB,uBAAuBpoB,KAAK5J,MAC/DA,KAAK62C,2BAA6B72C,KAAK62C,2BAA2BjtC,KAAK5J,MACvEA,KAAK82C,sCAAwC92C,KAAK82C,sCAAsCltC,KAAK5J,MAC7FA,KAAKiyB,0BAA4BjyB,KAAKiyB,0BAA0BroB,KAAK5J,MACrEA,KAAKkyB,2BAA6BlyB,KAAKkyB,2BAA2BtoB,KAAK5J,MACvEA,KAAK81B,gCAAkC91B,KAAK81B,gCAAgClsB,KAAK5J,MACjFA,KAAKwwB,aAAexwB,KAAKwwB,aAAa5mB,KAAK5J,MAC3CA,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAK0wB,WAAa,KACd1wB,KAAKyN,SAAS,CAAEnD,OAAO,KAE3BtK,KAAKyG,QAAU,CAAE,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAC9D1G,KAAKmxB,UAAY,KACjBnxB,KAAKoyB,MAAO,EACZpyB,KAAK+2C,iBAAmB,GACxB/2C,KAAK4Z,gBAAkB,GACvB5Z,KAAK+1B,gBAAkB,GACvB/1B,KAAK8Z,oBAAsB,GAC3B9Z,KAAKg3C,qBAAuB,GAC5Bh3C,KAAKg2B,kBAAoB,GACzBh2B,KAAKi3C,oBAAsB,GAC3Bj3C,KAAKqyB,oBAAsB,IAAIjqB,IAC3B,CAEI+D,UAAU,EACV+qC,mBAAmB,EACnB7uC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,4BAEpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKsyB,cAAgB,IAAIlqB,IACrB,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,aACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKm3C,+BAAiC,IAAI/uC,IACtC,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,0BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKs1B,gBAAkB,IAAIltB,IACvB,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,iBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK6L,gBAAkB,IAAIzD,IACvB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAShE,EAAU,uBAI/BhE,KAAKs2B,yBAA2B,KAC5Bt2B,KAAKyN,SAAS,CACV+nB,uBAAuB,KAI/Bx1B,KAAKo3C,6BAA+B,KAChCp3C,KAAKyN,SAAS,CACV8oC,6BAA6B,KAIrCv2C,KAAKk2B,uBAAyB,CAC1BC,aAAc,GACdzjB,iBAAiB,EACjB0jB,cAAe51B,EAAQoB,QAAQuJ,QAC/BA,QAAS,MAEbnL,KAAKq3C,gBAAkBp2C,OAAOgD,QAAQqzC,gBAIpCzmB,UAAW,IAAD,kHAEZ,EAAKpjB,SAAS,CACVnD,OAAO,IAHC,6CAOVioB,OAAQ,IAAD,kHACT,EAAKzgB,SAAW,CACZxG,GAAI,EACJknB,OAAQ,KACRC,SAAS,EACTC,WAAY,EACZ5b,aAAc,KACdC,MAAO,KACP4b,MAAO,KACP9iB,IAAK,KACLC,OAAQ,KACRqK,UAAU,EACVC,WAAW,EACXH,IAAK,KACLC,IAAK,KACL0Y,MAAO,KACPwS,cAAe,GAhBV,6CAoBPvS,YAAa,IAAD,yHACd,EAAKkkB,iBAAmB,GACxB,EAAKn9B,gBAAkB,GACvB,EAAKmc,gBAAkB,GACvB,EAAKjc,oBAAsB,GAC3B,EAAKk9B,qBAAuB,GAC5B,EAAKhhB,kBAAoB,GACzB,EAAKihB,oBAAsB,GAPb,SAQR,EAAKvlB,UAAU5uB,SAASyuB,iBARhB,wBASR,EAAKuB,sBATG,yBAUR,EAAK6C,yBAAyB7yB,SAASyuB,iBAV/B,yBAWR,EAAKgmB,qCAXG,yBAYR,EAAK7hB,UAAU5yB,SAASyuB,iBAZhB,yBAaR,EAAKiF,sBAbG,8CAgBZzD,aAAa5jB,GAAK,IAAD,2IACZ,IAAI4L,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,0BAA4B8K,EAAI,CACnD1I,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,UACTD,EAAIN,KAAKiG,KAAO3F,EAAIN,KAAKiG,KAAK,GAC9B,EAAKuF,SAAW,CACZxG,GAAI1E,EAAIN,KAAKiG,KAAKjB,GAClBknB,OAAQ5rB,EAAIN,KAAKiG,KAAKimB,OACtBC,QAAS7rB,EAAIN,KAAKiG,KAAKkmB,QACvBC,WAAY9rB,EAAIN,KAAKiG,KAAKmmB,WAC1B5b,aAAclQ,EAAIN,KAAKiG,KAAKuK,aAC5BC,MAAOnQ,EAAIN,KAAKiG,KAAKwK,MACrB4b,MAAO/rB,EAAIN,KAAKiG,KAAKomB,MACrB9iB,IAAKjJ,EAAIN,KAAKiG,KAAKsD,IACnBC,OAAQlJ,EAAIN,KAAKiG,KAAKuD,OACtBqK,SAAUvT,EAAIN,KAAKiG,KAAK4N,SACxBC,UAAWxT,EAAIN,KAAKiG,KAAK6N,UACzBH,IAAKrT,EAAIN,KAAKiG,KAAK0N,IACnBC,IAAKtT,EAAIN,KAAKiG,KAAK2N,IACnB0Y,MAAOhsB,EAAIN,KAAKiG,KAAKymB,KACrBA,KAAMpsB,EAAIN,KAAKiG,KAAKymB,KACpBC,eAAgBrsB,EAAIN,KAAKiG,KAAK0mB,eAC9BmS,cAAe,GAEnBpqB,EAAQ,+CAEbjU,MAAM,KACLkU,EAAO,+EA/BI,6CAoCjBiY,6BAA6BC,GAAc,IAAD,2IACrC,IAAIpY,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,0CAA4C8uB,EAAa,CAC5E1sB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,UACT,EAAK4vC,wBAA0B,GAC/B7vC,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzB,EAAK8mC,wBAAwBj0C,KAAKoe,EAAKwS,YAE3CpY,EAAQ,sCAEbjU,MAAM,KACLkU,EAAO,uEAf6B,6CAoB1Cu8B,8BAA8BrkB,GAAc,IAAD,2IACtC,IAAIpY,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,oDAAsD8uB,EAAa,CACtF1sB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,UACT,EAAK6vC,yBAA2B,GAChC9vC,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzB,EAAK+mC,yBAAyBl0C,KAAKoe,EAAK62B,WAE5Cz8B,EAAQ,oDAEbjU,MAAM,KACLkU,EAAO,2EAf8B,6CAoB3Cwb,mCAAmCtD,GAAc,IAAD,2IAC3C,IAAIpY,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,gDAAkD8uB,EAAa,CAClF1sB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,UACT,EAAK8vC,wBAA0B,GAC/B/vC,EAAIN,KAAKiG,KAAKlF,QAAQ,CAACuZ,EAAMjR,KACzB,EAAKgnC,wBAAwBn0C,KAAKoe,EAAK8V,MAAMprB,MAEjD0P,EAAQ,+BAEbjU,MAAM,KACLkU,EAAO,kEAhB+B,6CAqBhDuV,aAAa7iB,GAAI,IAAD,6HAEJ,QADRlB,EAAQ,EAAKA,aACa5L,IAAV4L,EAFJ,uBAGdqG,YAAM,6BAAsB,cAHd,+BAOc,kBAAxBtS,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,KAP1C,iBAQVuE,YAAM,uDARI,mDAYA,EAAK+f,YAZL,eAaN,EAAK/gB,SAAW,GAbV,UAcA,EAAKihB,aAAatmB,EAAMnB,IAdxB,yBAeA,EAAKgnB,cAAc9pB,OAfnB,WAgBoB,OAAtB,EAAKopB,mBAA+C/wB,IAAtB,EAAK+wB,aAhBjC,kCAiBI,EAAKA,aAAa9uB,WAAW+K,OAAO,QAAS,EAAKiE,SAAS0gB,QAjB/D,WAqBU,WADVklB,EAAM,EAAKplB,cAAclvB,QAAQ2L,OAAOJ,GAAKA,EAAErD,KAAO,EAAKwG,SAAS0gB,QAAQ,IAC1E3iB,KAA+B,YAAZ6nC,EAAI7nC,IArBzB,kCAsBI,EAAK2nC,8BAA8B/qC,EAAMnB,IAAI3E,KAAK,KACd,OAAlC,EAAKgvB,+BAC0C90B,IAA3C,EAAK80B,yBAAyB7yB,UAAqE,OAA3C,EAAK6yB,yBAAyB7yB,WACtF,EAAK6yB,yBAAyB7yB,SAASuuB,WAAW,EAAKqlB,0BACvD,EAAK/gB,yBAAyB7yB,SAAS4M,aA1BjD,iDAgCI,EAAK+mB,mCAAmChqB,EAAMnB,IAAI3E,KAAK,KAClC,OAAnB,EAAK+uB,gBAC2B70B,IAA5B,EAAK60B,UAAU5yB,UAAsD,OAA5B,EAAK4yB,UAAU5yB,WACxD,EAAK4yB,UAAU5yB,SAASuuB,WAAW,EAAKslB,yBACxC,EAAKjhB,UAAU5yB,SAAS4M,aApClC,yBAyCA,EAAKwjB,6BAA6BzmB,EAAMnB,IAAI3E,KAAK,KAC5B,OAAnB,EAAK+qB,gBAC2B7wB,IAA5B,EAAK6wB,UAAU5uB,UAAsD,OAA5B,EAAK4uB,UAAU5uB,UACxD,EAAK4uB,UAAU5uB,SAASuuB,WAAW,EAAKolB,2BA5C9C,2DAkDNxqC,QAAQC,IAAR,MAlDM,yBAoDJ,EAAK2kB,UApDD,6DA0DhByC,IAAI7mB,GAAQ,IAAD,kHACb7K,IAAQ4E,KAAKnC,EAAW,0BAA4BoI,EAAMnB,GACtD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QAETjF,IAAQ4E,KAAKnC,EAAW,0BAA4BoI,EAAMnB,GACtD,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD,EAAK6gB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,wBAIT7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAMnDc,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAhCtC,6CAqCXysB,SAAS9mB,GAAQ,IAAD,kHAClB7K,IAAQ4E,KAAKnC,EAAW,sBAAwBoI,EAAMnB,GAAI,KACtD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4hB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,uBAET7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAhBjC,6CAqBhB0sB,SAAS/mB,GAAQ,IAAD,kHAClB7K,IAAQ4E,KAAKnC,EAAW,sBAAwBoI,EAAMnB,GAClD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4hB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,uBAET7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAjBjC,6CAsBtBqrB,WAAWxkB,GACHA,EAAEpG,MAAMiF,OAAS,IACjBxM,KAAK8R,SAAS8gB,MAAQjlB,EAAEpG,MAAM,GAAGyb,KACjCpb,YAAO,sBAAoB,UAAW,MAI9C2M,mBAAmB5G,GAAI,IAAD,OAClBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,QACN1I,KAAM,UACN4I,KAAM,8DACNE,QAAQ,WAAD,4BAAE,4BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAO2B,kBAAxBtS,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,uDAGN,EAAKrF,SAAS,CACV8oC,6BAA6B,IAZpC,2CAAF,kDAAC,KAmBhB,CACIr1C,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,iBACN1I,KAAM,UACN8I,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,6DACL,EAAKsF,gBAAgBkD,OAAO,CAAC,KAAM,KAAMvO,EAAQoB,QAAQuJ,UADpD,SAEC,EAAKU,gBAAgBrD,OAFtB,OAGL,EAAKiF,SAAS,CACV+nB,uBAAuB,IAJtB,2CAAF,kDAAC,KAShB,CACIt0B,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,eAERvC,KAAM,OACN1I,KAAM,UACN4I,KAAM,mFACNE,QAAS,KACL,GAAmB,OAAfhN,KAAKyM,WAAgC5L,IAAfb,KAAKyM,MAC3BqG,YAAM,6BAAsB,kBAE3B,CACD,IACInS,aAAaoN,WAAW,UACxBpN,aAAaoN,WAAW,WACxBpN,aAAaoN,WAAW,eAC1B,MAAOC,IAET,MAAM1H,EAAO,CACTwQ,aAAc9W,KAAKyM,MAAMqK,aACzBC,MAAO/W,KAAKyM,MAAMsK,MAClBC,MAAO,CAAE1L,GAAItL,KAAKyM,MAAM8pB,WAE5B30B,IAAQ4E,KAAKxC,EAAU,oBACjBsC,GACDK,KAAKC,IACFkH,EAAK1N,MAAM,KAIPwG,EAAIN,KAAKnG,QAAUyG,EAAIN,KAAK+E,UAAUwE,IAAM,IAAMjJ,EAAIN,KAAK+E,UAAUyE,OACrElJ,EAAIN,KAAKjD,KAAOuD,EAAIN,KAAK+E,UAAUoH,iBACnC7L,EAAIN,KAAKiI,IAAM3H,EAAIN,KAAK+E,UAAUkD,IAClC3H,EAAIN,KAAKgF,GAAK1E,EAAIN,KAAK+E,UAAUC,GACjC1E,EAAIN,KAAK6E,QAAUvE,EAAIN,KAAK+E,UAAU2L,MAAM1L,GAC5C1E,EAAIN,KAAKwI,SAAWlI,EAAIN,KAAK+E,UAAUyD,SACvClI,EAAIN,KAAKmI,QAAU7H,EAAIN,KAAK+E,UAAUoD,QACtC9N,aAAaG,QAAQ,SAAUO,KAAKC,UAAUsF,EAAIN,OAGlD9F,EAAQoB,QAXe,GAcK,mBAAxBpB,EAAQoB,QAAQ2M,KAGa,iBAAxB/N,EAAQoB,QAAQ2M,KAGQ,sBAAxB/N,EAAQoB,QAAQ2M,KAGQ,SAAxB/N,EAAQoB,QAAQ2M,KAGQ,gBAAxB/N,EAAQoB,QAAQ2M,IAXrBvO,KAAKS,MAAM8B,QAAQC,KAAK,wBAcK,aAAxBhC,EAAQoB,QAAQ2M,IACrBvO,KAAKS,MAAM8B,QAAQC,KAAK,kBAEK,gBAAxBhC,EAAQoB,QAAQ2M,IACrBtN,OAAOC,SAASC,KAAO,oBAGvBnB,KAAKS,MAAM8B,QAAQC,KAAK,aAKnCuE,MAAOiH,IAEAA,EAAMtG,SACNE,YAAOoG,EAAMtG,SAASpB,KAAKiM,QAAS,QAAS,KACtCvE,EAAMqF,QACbzL,YAAOoG,EAAMqF,QAAS,QAAS,KAE/BzL,YAAO,6BAAyB,QAAS,WAQrE,CACI1G,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,OAAQF,KAAM,MACrCI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,2DACuB,eAAxB/F,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,KADnD,gBAEDuE,YAAM,uDAFL,uCAMK,EAAKyf,OANV,uBAOK,EAAKM,YAPV,wBAQK,EAAKhC,UARV,4CAAF,kDAAC,KAahB,CACI3vB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,aAAWF,KAAM,OACxCI,QAAShN,KAAKwwB,eAGtB,CACItvB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,0CAAiCF,KAAM,OAC9DI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACD,IAAIkrC,EAAiB12C,OAAOgD,QAAQ2zC,QAAU,KAC9CD,GAAkB,wCAAsBlrC,EAAMqK,aAAe,KAC7D6gC,GAAkB,iBAAclrC,EAAMsK,MA5mBlE,SAAsBvI,GAClB,MAAMqpC,EAAW,SAAUC,GACvBA,EAAGzgC,iBACHygC,EAAGC,cAAcC,QAAQ,YAAaxpC,GACtCspC,EAAGC,cAAcC,QAAQ,aAAcxpC,IAE3C3D,SAASg9B,iBAAiB,OAAQgQ,GAClChtC,SAASotC,YAAY,QACrBptC,SAASqtC,oBAAoB,OAAQL,GACrCjwC,YAAO,2BAAuB,UAAW,KAomBjBuwC,CAAaR,QAPb7kC,YAAM,6BAAsB,iBAY5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,QACnCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKszB,IAAI7mB,UAXrBqG,YAAM,6BAAsB,iBAmB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKwzB,SAAS/mB,UAX1BqG,YAAM,6BAAsB,iBAmB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1CI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,kBAAxBjM,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,kBAAxB/N,EAAQoB,QAAQ2M,IACtFuE,YAAM,2DAEL,CACYI,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKuzB,SAAS9mB,UAX1BqG,YAAM,6BAAsB,iBAmB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAAS4M,aAInC,CACIxO,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrCE,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CozB,8BAC2B,OAAnB51B,KAAK01B,gBAC2B70B,IAA5Bb,KAAK01B,UAAU5yB,UAAsD,OAA5B9C,KAAK01B,UAAU5yB,WACxD9C,KAAK+1B,gBAAkB/1B,KAAK01B,UAAU5yB,SAAS4R,uBAM3DkiC,8CAC0C,OAAlC52C,KAAK21B,0BAC0C,OAA3C31B,KAAK21B,yBAAyB7yB,eAAgEjC,IAA3Cb,KAAK21B,yBAAyB7yB,WACjF9C,KAAK+2C,iBAAmB/2C,KAAK21B,yBAAyB7yB,SAAS4R,uBAK3Eqd,sBAAsBpkB,GAClB3N,KAAKyoB,SAAW9a,EAAEC,UAGtBokB,uBAAuBrkB,GACnB3N,KAAK0xB,UAAY/jB,EAAEC,UAIvBipC,2BAA2BlpC,GACvB3N,KAAKw2C,cAAgB7oC,EAAEC,UAG3BioB,uBAAuBloB,GACnB3N,KAAK01B,UAAY/nB,EAAEC,UAGvBkpC,sCAAsCnpC,GAClC3N,KAAK21B,yBAA2BhoB,EAAEC,UAGtCqkB,0BAA0BtkB,GACtB3N,KAAK4xB,aAAejkB,EAAEC,UAG1BskB,2BAA2BvkB,GACvB3N,KAAK2xB,cAAgBhkB,EAAEC,UAG3BikB,2BAA2BjT,GACvB5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDiT,8BAC2B,OAAnB9xB,KAAK0xB,WAC2B,OAA5B1xB,KAAK0xB,UAAU5uB,eAAiDjC,IAA5Bb,KAAK0xB,UAAU5uB,WACnD9C,KAAK4Z,gBAAkB5Z,KAAK0xB,UAAU5uB,SAAS4R,uBAK3DohB,gCAAgCnoB,GAC5B3N,KAAKy1B,mBAAqB9nB,EAAEC,UAG1B6lB,qBAAsB,IAAD,kHACQ,OAA3B,EAAKhL,SAAS3lB,WACd,EAAK2lB,SAAS3lB,SAASyuB,iBACvB,EAAK9I,SAAS3lB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAOrBilB,sBAAuB,IAAD,kHACQ,OAA5B,EAAKpB,UAAU5uB,WACf,EAAK4uB,UAAU5uB,SAASyuB,iBACxB,EAAKG,UAAU5uB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAOtB0pC,qCAAsC,IAAD,kHACQ,OAA3C,EAAK5hB,yBAAyB7yB,WAC9B,EAAK6yB,yBAAyB7yB,SAASyuB,iBACvC,EAAKoE,yBAAyB7yB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAOrC2oB,sBAAuB,IAAD,kHACQ,OAA5B,EAAKd,UAAU5yB,WACf,EAAK4yB,UAAU5yB,SAASyuB,iBACxB,EAAKmE,UAAU5yB,SAAS+K,OAAO,mBAAoB,IAH/B,6CAO5B9K,SAAU,IAAD,OAEL,OACI,gBAAC,WAAD,KACI,uBAAKkN,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKqyB,oBACjBlK,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,YACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBjH,oBAAoB,EACpBpR,QAAQ,KACRuY,OAAQ,CACJhH,SAAS,GAEbkH,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAoBvU,KAAKuU,mBACzBnE,cAAepQ,KAAK+xB,sBACpB9V,mBAAoBjc,KAAK6xB,2BACzBiF,wBAA0BnpB,IACtB3N,KAAKi2B,oBAAsB,GACvBtoB,EAAEnB,OAAS,GACXmB,EAAEtG,QAASoF,IACPzM,KAAKi2B,oBAAoBzzB,KAAK,CAC1B4I,YAAaqB,OAK7B7I,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAI9B,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,gBAAD,CAAezT,SAAS,IACxB,gBAAC,UAAD,CAASJ,KAAM,UACf,gBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,gBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,gBAAC,eAAD,CAAc5T,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,KACzB,gBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,UAAUhH,SAAS,EAAO6+B,qBAAqB,IACtG,gBAAC,SAAD,CAAQh7B,UAAW,WAAYiD,QAAQ,WAAQE,SAAS,WACxD,gBAAC,SAAD,CAAQnD,UAAW,SAAUiD,QAAQ,UAAKE,SAAS,WACnD,gBAAC,SAAD,CAAQnD,UAAW,eAAgBiD,QAAQ,gBAC3C,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,UACpC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,aAClC,gBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,gBACrC,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,eACpC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,QAClC,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,MAAM9G,SAAS,IACjD,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,MAAM9G,SAAS,IACjD,gBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,YAAYE,SAAS,UAAUhH,SAAS,EAAO6+B,qBAAqB,IAC3G,gBAAC,SAAD,CAAQh7B,UAAW,YAAaiD,QAAQ,aAAaE,SAAS,UAAUhH,SAAS,EAAO6+B,qBAAqB,IAC7G,gBAAC,SAAD,CAAQh7B,UAAW,WAAYiD,QAAQ,cAAWE,SAAS,SAAShH,SAAS,EAAO6+B,qBAAqB,QAKzH,gBAAC,QAAD,CAAOt8B,WAAW,EAAMC,SAAS,EAAOC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACtFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IAER,GADuB3N,KAAK2xB,cAAc7uB,SAASgc,WAC/BC,QAGf,CACD,MAAMq5B,EAAgBp4C,KAAK4xB,aAAa9uB,WAAW+K,OAAO,QACpC,YAAlBuqC,EAAgD,SAAlBA,GAC9Bp4C,KAAK+1B,gBAAkB,GACvB/1B,KAAKg2B,kBAAoB,IAGF,UAAlBoiB,GAA+C,YAAlBA,GAClCp4C,KAAK+2C,iBAAmB,GACxB/2C,KAAKg3C,qBAAuB,KAI5Bh3C,KAAK+1B,gBAAkB,GACvB/1B,KAAKg2B,kBAAoB,IAI7Bh2B,KAAK8Z,oBAAsB,GAE3B9Z,KAAK4Z,gBAAgBvS,QAAQ,CAACuZ,EAAMjR,KAChC3P,KAAK8Z,oBAAoBtX,KACrB,CACIkxB,MAAO,CAAEpoB,GAAIsV,EAAKtV,IAClBD,UAAW,CAAEC,GAAI,YAKDzK,IAAxBb,KAAK8R,SAAS8gB,QACd5yB,KAAK8R,SAASkhB,KAAOhzB,KAAK8R,SAAS8gB,OAGvC5yB,KAAKg3C,qBAAuB,GAC5Bh3C,KAAK+2C,iBAAiB1vC,QAAQ,CAACuZ,EAAMjR,KACjC3P,KAAKg3C,qBAAqBx0C,KAAK,CAC3BkxB,MAAO,CAAEpoB,GAAI,GACbD,UAAW,CAAEC,GAAI,GACjB+sC,GAAI,CAAE/sC,GAAIsV,EAAK03B,OACfC,KAAM,CAAEjtC,GAAIsV,EAAK62B,aAIzBz3C,KAAKg2B,kBAAoB,GACzBh2B,KAAK+1B,gBAAgB1uB,QAAQ,CAACuZ,EAAMjR,KAChC3P,KAAKg2B,kBAAkBxzB,KAAK,CACxBk0B,MAAO,CAAEprB,GAAIsV,EAAKtV,QAI1BtL,KAAK2zB,eAAiB,CAClBtoB,UAAWrL,KAAK8R,SAChBmlC,oBAAqBj3C,KAAKi3C,oBAC1Bn9B,oBAAqB9Z,KAAK8Z,oBAC1Bk9B,qBAAsBh3C,KAAKg3C,qBAC3BhhB,kBAAmBh2B,KAAKg2B,mBAG5Bp0B,IAAQ4E,KAAKnC,EAAW,0BACpBrE,KAAK2zB,eACL,CACIltB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QAET7G,KAAKyoB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC3G,KAAKyN,SAAS,CACVnD,OAAO,OAKftK,KAAK2zB,eAAiB,CAClBtoB,UAAWrL,KAAK8R,SAChBmlC,oBAAqBj3C,KAAKi3C,oBAC1Bn9B,oBAAqB9Z,KAAK8Z,oBAC1Bk9B,qBAAsBh3C,KAAKg3C,qBAC3BhhB,kBAAmBh2B,KAAKg2B,mBAE5BpuB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,YAQnE,CACI5F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,gBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAKkyB,2BAA4BtuB,IAAMA,GAAQ5D,KAAK2xB,cAAgB/tB,GAC9G,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,iCACnD,gBAAC,aAAD,CAAYjD,UAAW,QAASyc,YAAY,GACxC,gBAAC,QAAD,CAAOngB,KAAK,WAEhB,gBAAC,aAAD,CAAY0D,UAAW,eAAgByc,YAAY,GAC/C,gBAAC,QAAD,CAAOngB,KAAK,iBAEhB,gBAAC,aAAD,CAAY0D,UAAW,QAASyc,YAAY,EAAMxc,WAAW,aACzD,gBAAC,QAAD,CAAO3D,KAAK,gBAEhB,gBAAC,aAAD,CAAY0D,UAAW,MAAOyc,YAAY,GACtC,gBAAC,QAAD,CAAOngB,KAAK,cAEhB,gBAAC,aAAD,CAAY0D,UAAW,SAAUyc,YAAY,GACzC,gBAAC,QAAD,CAAOngB,KAAK,iBAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnB,gBAAC,QAAD,CAAO1D,KAAK,aAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnB,gBAAC,QAAD,CAAO1D,KAAK,SAEhB,gBAAC,aAAD,CAAY0D,UAAW,WAAYC,WAAW,cAC1C,gBAAC,QAAD,CAAO3D,KAAK,eAEhB,gBAAC,aAAD,CAAY0D,UAAW,YAAaC,WAAW,cAC3C,gBAAC,QAAD,CAAO3D,KAAK,gBAEhB,gBAAC,aAAD,CAAY0D,UAAW,gBAAiByc,YAAY,EAChDxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKq3C,gBACjB7zC,eAAe,EACf6K,UAAUpN,OAAOgD,QAAQu0C,kBACzBv1C,YAAa,OACbqP,UAAW,QACXlC,cAAgBzC,IACZ3N,KAAKy4C,kBAAoB9qC,EAAEC,WAE/B0N,eAAiB3N,IACb3N,KAAK8R,SAASszB,cAAgBniB,SAAStV,EAAEpG,QAE7C3D,IAAMA,IAAU5D,KAAKy4C,kBAAoB70C,KAE7C,gBAAC,QAAD,CAAO4K,KAAK,+BAGpB,gBAAC,YAAD,CAAWwD,SAAS,aAAaC,SAAU,GACvC,gBAAC,aAAD,CAAYC,UAAW,SAAUyc,YAAY,EACzCxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKsyB,cACjBnK,kBAAkB,EAClB3kB,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAKiyB,0BACpBruB,IAAMA,IAAU5D,KAAK4xB,aAAehuB,GACpC0X,eAAiB3N,IACb,IAAIa,EAAOb,EAAEC,UAAUC,OAAO,QACjB,UAATW,EAA4B,YAATA,GAEnBxO,KAAKs1B,gBAAgBvmB,OAAO,MACL,OAAnB/O,KAAK01B,gBAC2B70B,IAA5Bb,KAAK01B,UAAU5yB,UACf9C,KAAK01B,UAAU5yB,SAAS4M,UAAU/I,KAAK,KACnC3G,KAAK+1B,gBAAkB,KAKnC/1B,KAAKm3C,+BAA+BpoC,OAAO,CAAC,KAAM,IAAK,IACjB,OAAlC/O,KAAK21B,+BAC0C90B,IAA3Cb,KAAK21B,yBAAyB7yB,UAC9B9C,KAAK21B,yBAAyB7yB,SAAS4M,UAAU/I,KAAK,KAClD3G,KAAK+2C,iBAAmB,MAOtB,SAATvoC,EAA2B,YAATA,IACvBxO,KAAKs1B,gBAAgBvmB,OAAO,CAAC,KAAM,IAAK,IACjB,OAAnB/O,KAAK01B,gBAC2B70B,IAA5Bb,KAAK01B,UAAU5yB,UACf9C,KAAK01B,UAAU5yB,SAAS4M,UAAU/I,KAAK,KACnC3G,KAAK+1B,gBAAkB,KAKnC/1B,KAAKm3C,+BAA+BpoC,OAAO,MACL,OAAlC/O,KAAK21B,+BAC0C90B,IAA3Cb,KAAK21B,yBAAyB7yB,UAC9B9C,KAAK21B,yBAAyB7yB,SAAS4M,UAAU/I,KAAK,KAClD3G,KAAK+2C,iBAAmB,SAOhD,gBAAC,QAAD,CAAOvoC,KAAK,SAEhB,gBAAC,aAAD,CAAY0D,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWvvB,EAAW,uBACtBwvB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpBuc,KAAM,SACN1H,eAAgBtb,KAAKmyB,aAEzB,gBAAC,QAAD,CAAO3jB,KAAK,qBAEhB,gBAAC,aAAD,CAAY0D,UAAW,iBAAkBC,WAAW,cAChD,gBAAC,QAAD,CAAO3D,KAAK,2BAGpB,gBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,6CACnD,gBAAC,aAAD,KACI,4DACA,gBAAC,KAAD,CACI9C,WAAYrS,KAAKm3C,+BACjB9iC,cAAc,EACdD,aAAa,EACbwH,iBAAiB,EACjBjY,QAAQ,KACRD,aAAa,WACbmY,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB5L,cAAepQ,KAAK82C,sCACpB76B,mBAAoBjc,KAAK42C,4CACzBhzC,IAAMA,GAAQ5D,KAAK21B,yBAA2B/xB,GAE9C,gBAAC,SAAD,CAAQsR,SAAS,IACjB,gBAAC,YAAD,CAAWJ,KAAM,aACjB,gBAAC,QAAD,CAAOuH,sBAAsB,EAAMC,iBAAkB,cAAeC,UAAU,IAC9E,gBAAC,YAAD,CAAWm8B,WAAW,EAAM5jC,KAAK,aACjC,gBAAC,SAAD,CAAQ5C,UAAU,SAASiD,QAAQ,qBACnC,gBAAC,SAAD,CAAQjD,UAAU,WAAWiD,QAAQ,4BAI7C,gBAAC,aAAD,KACI,kDACA,gBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK8hB,gBACjBqG,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB5L,cAAepQ,KAAKgyB,uBACpB/V,mBAAoBjc,KAAK8xB,4BACzBnuB,QAAQ,KACRC,IAAMA,GAAQ5D,KAAK0xB,UAAY9tB,GAG/B,gBAAC,SAAD,CAAQ4Y,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,YAAD,CAAWJ,KAAK,WACZ2H,cAAc,WACd1H,mBAAmB,YACvB,gBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,kBAM9C,gBAAC,YAAD,CAAWnD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,mBACnD,gBAAC,aAAD,KACI,6CACA,gBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKs1B,gBACjBnN,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBC,mBAAoBjc,KAAK41B,4BACzBxlB,cAAepQ,KAAK61B,uBACpBlyB,QAAQ,KACRC,IAAMA,GAAQ5D,KAAK01B,UAAY9xB,GAG/B,gBAAC,SAAD,CAAQ4Y,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,YAAD,CAAWJ,KAAK,WACZ2H,cAAc,WACd1H,mBAAmB,YACvB,gBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,YACpC,gBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,iBACtC,gBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,QAAQE,SAAS,mBASxF,gBAAC,QAAD,CAAOzE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAMyrB,sBACpB1qB,MAAO,+CACPsB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,4BACNtK,KAAM,UACN4I,KAAM,4BACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAM2I,gBACrB1F,QAAQ,WAAD,4BAAE,WAAOW,GAAP,SAAApH,EAAA,sDACL,EAAK2vB,uBAAuBC,aAAe,EAAKF,oBAChD,EAAKxoB,SAAS,CACViF,iBAAiB,IAErB9Q,IAAQ4E,KAAKnC,EAAW,gDAAiD,EAAK6xB,uBAAwB,CAClGzvB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAK4G,SAAS,CAChBiF,iBAAiB,IAHvB,uBAKQ,EAAK4jB,2BALb,OAME1uB,YAAO,kDAAiC,UAAW,KANrD,uBAQE,EAAK6F,SAAS,CACViF,iBAAiB,IAErB9K,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KAXrF,4CALV,uDAmBKC,MAAMC,IAIH,GAHA,EAAKyG,SAAS,CACViF,iBAAiB,IAEjB1L,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,UAxClB,2CAAF,mDAAC,KAiDhB,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAK+vB,2BADJ,2CAAF,kDAAC,OAQ1B,gBAAC,WAAD,CAAUllB,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAMgC,SAAU,EAAGH,SAAU9R,KAAKk2B,uBAAwB9lB,cAAepQ,KAAK81B,gCAAiClyB,IAAMA,GAAQ5D,KAAKy1B,mBAAqB7xB,GACnJ,gBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAU,UAAUC,WAAW,cAAcC,cAAe,CACpEC,WAAYrS,KAAK6L,gBACjByG,UAAW,KACXrP,YAAa,QAEb,gBAAC,QAAD,CAAOuL,KAAK,wBACZ,gBAAC,eAAD,CAAc+D,QAAQ,sCAG3B,+BAKvB,gBAAC,QAAD,CAAO3B,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAChDE,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF7N,MAAO,MAAOoN,OAAQ,MACtBrC,QAASrO,KAAK+J,MAAMwsC,4BACpBzrC,MAAO,gEACPsB,aACI,CAEI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,6CACNtK,KAAM,UACN4I,KAAM,6CACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAM2I,gBACrB1F,QAAQ,WAAD,4BAAE,WAAOW,GAAP,iBAAApH,EAAA,sDACDoyC,EAAY,GAEhB,EAAKnC,cAAc1zC,SAAS4R,sBAAsBrN,QAAQ,CAACsN,EAAKhF,KAC5DgpC,EAAUn2C,KAAK,CACX8I,GAAIqJ,EAAIrJ,OAIZhF,EAAO,CACP8E,YAAa,EAAKqB,MAAMnB,GACxBstC,SAAUD,GAGd,EAAKlrC,SAAS,CACViF,iBAAiB,IAErB9Q,IAAQ4E,KAAKnC,EAAW,gDAAiDiC,EAAM,CAC3EG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAK4G,SAAS,CAChBiF,iBAAiB,IAHvB,uBAKQ,EAAK0kC,+BALb,OAMExvC,YAAO,uEAAiD,UAAW,KANrE,uBAQE,EAAK6F,SAAS,CACViF,iBAAiB,IAErB9K,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,KAXrF,4CALV,uDAmBKC,MAAMC,IAIH,GAHA,EAAKyG,SAAS,CACViF,iBAAiB,IAEjB1L,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,UApDlB,2CAAF,mDAAC,KA6DhB,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,QAClDI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sEACD,EAAK6wC,+BADJ,2CAAF,kDAAC,OAQ1B,gBAAC,WAAD,CAAUhmC,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK8hB,gBACjBqG,kBAAkB,EAClBxM,oBAAoB,EACpBrH,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,YACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvBjH,oBAAoB,EACpBpR,QAAQ,KACRuY,OAAQ,CACJhH,SAAS,GAEbkH,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdnM,cAAepQ,KAAK62C,2BACpBjzC,IAAMA,GAAQ5D,KAAKw2C,cAAgB5yC,GAInC,gBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,gBAAD,CAAezT,SAAS,IACxB,gBAAC,WAAD,CAAU0T,oBAAoB,EAAMC,WAAW,aAC/C,gBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,gBAAC,eAAD,CAAc5T,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,KACzB,gBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,UAAUhH,SAAS,EAAO6+B,qBAAqB,IACtG,gBAAC,SAAD,CAAQh7B,UAAW,MAAOiD,QAAQ,aAAQE,SAAS,kBCl7CxE,MAAMwjC,WAAwB52C,YACzClC,YAAYU,GACRyB,MAAMzB,GADS,KA6MnBq4C,+BAAkCnrC,IACV,YAAhBA,EAAEuE,WAA4C,YAAjBvE,EAAEy5B,YAAmD,cAAvBz5B,EAAEgH,IAAIrO,KAAKyyC,SAIjD,YAAhBprC,EAAEuE,WAA4C,YAAjBvE,EAAEy5B,YAAmD,QAAvBz5B,EAAEgH,IAAIrO,KAAKyyC,SAItD,YAAhBprC,EAAEuE,WAA4C,YAAjBvE,EAAEy5B,YAAmD,WAAvBz5B,EAAEgH,IAAIrO,KAAKyyC,QAP/C,SAAxBv4C,EAAQoB,QAAQ2M,IAAyC,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,YAAxB/N,EAAQoB,QAAQ2M,MACnFZ,EAAEyE,cAAcI,UAAW,GAUF,SAAxBhS,EAAQoB,QAAQ2M,IAAyC,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,YAAxB/N,EAAQoB,QAAQ2M,KACpE,YAAhBZ,EAAEuE,WAA4C,YAAjBvE,EAAEy5B,aAC/Bz5B,EAAEyE,cAAcI,UAAW,IA1NnCxS,KAAK+J,MAAQ,CACTO,OAAO,EACP0uC,8BAA8B,GAElCh5C,KAAKyM,MAAQ,KACbzM,KAAKi5C,YAAc,KACnBj5C,KAAKk5C,cAAgB,GACrBl5C,KAAKm5C,iBAAmB,GACxBn5C,KAAK8R,SAAW,CACZxG,GAAI,EACJooB,MAAO,CAAEpoB,GAAI,GACbygB,UAAW,CAAEzgB,GAAI,GACjBD,UAAW,CAAEC,GAAI,GACjBuE,IAAK,GACLupC,MAAO,GACPC,YAAY,EACZC,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAY,EACZ/mB,SAAS,EACTC,WAAY,EACZymB,iBAAkB,GAClBM,kBAAkB,EAClBC,KAAK,GAET15C,KAAKyoB,SAAW,KAChBzoB,KAAK25C,kBAAoB,KACzB35C,KAAK45C,uBAAyB,KAC9B55C,KAAKwhB,mBAAqB,KAC1BxhB,KAAKuhB,eAAiB,KACtBvhB,KAAK+Q,UAAY,KACjB/Q,KAAK65C,iBAAmB,KACxB75C,KAAK85C,qBAAuB,KAC5B95C,KAAK+5C,UAAY,KACjB/5C,KAAK+xB,sBAAwB/xB,KAAK+xB,sBAAsBnoB,KAAK5J,MAC7DA,KAAKg6C,oCAAsCh6C,KAAKg6C,oCAAoCpwC,KAAK5J,MACzFA,KAAKi6C,+BAAiCj6C,KAAKi6C,+BAA+BrwC,KAAK5J,MAC/EA,KAAK4hB,4BAA8B5hB,KAAK4hB,4BAA4BhY,KAAK5J,MACzEA,KAAK6hB,gCAAkC7hB,KAAK6hB,gCAAgCjY,KAAK5J,MACjFA,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAK84C,+BAAiC94C,KAAK84C,+BAA+BlvC,KAAK5J,MAC/EA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAK+1C,cAAgB/1C,KAAK+1C,cAAcnsC,KAAK5J,MAC7CA,KAAKwwB,aAAexwB,KAAKwwB,aAAa5mB,KAAK5J,MAC3CA,KAAKg2C,cAAgBh2C,KAAKg2C,cAAcpsC,KAAK5J,MAC7CA,KAAKi2C,cAAgBj2C,KAAKi2C,cAAcrsC,KAAK5J,MAC7CA,KAAKk2C,SAAWl2C,KAAKk2C,SAAStsC,KAAK5J,MACnCA,KAAKszB,IAAMtzB,KAAKszB,IAAI1pB,KAAK5J,MACzBA,KAAKk6C,aAAel6C,KAAKk6C,aAAatwC,KAAK5J,MAC3CA,KAAKuzB,SAAWvzB,KAAKuzB,SAAS3pB,KAAK5J,MACnCA,KAAKwzB,SAAWxzB,KAAKwzB,SAAS5pB,KAAK5J,MAEnCA,KAAK0wB,WAAa,KACd1wB,KAAKyN,SAAS,CAAEnD,OAAO,KAG3BtK,KAAKm6C,eAAiB,IAAI/xC,IACtB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,yBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK+hB,YAAc,CAAEC,QAAS,GAC9BhiB,KAAKiiB,oBAAsB,IAAI7Z,IAC3B,CACIC,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAK+hB,YACjB/Z,QAAS3D,EAAW,iCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKgmC,gBAAkB,CAAEha,YAAa,GACtChsB,KAAKo6C,6BAA+B,IAAIhyC,IACpC,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKgmC,gBACjBh+B,QAAS3D,EAAW,mCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKq6C,wBAA0B,IAAIjyC,IAAW,CAC1CC,MAAO,CACHnE,KAAM,QACN+B,IAAK,KACLK,KAAMtG,KAAKm5C,kBAEfhtC,UAAU,IAIlBoI,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACL+6B,YAAa,CACTv4B,GAAI,WAERjL,KAAM,UACN0I,KAAM,MACNyB,QAAiC,UAAxB7N,EAAQoB,QAAQ2M,KAA2C,mBAAxB/N,EAAQoB,QAAQ2M,KAAoD,SAAxB/N,EAAQoB,QAAQ2M,IACxGvB,QAAShN,KAAK+1C,cACdpO,eAAiBh6B,IACbA,EAAEi6B,QAAQC,iBAAiB,YAAa,KACpC7nC,KAAKi5C,YAAYn2C,SAAS+K,OAAO,WAAW,KAEhDF,EAAEi6B,QAAQC,iBAAiB,aAAc,KACrC7nC,KAAKi5C,YAAYn2C,SAAS+K,OAAO,WAAW,QAM5D,CACI3M,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,aACNF,KAAM,OACNI,QAAShN,KAAKwwB,eAGtB,CACItvB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,QACnCI,QAAShN,KAAKk2C,WAGtB,CACIh1C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,UAAWF,KAAM,cACvCI,QAAShN,KAAKk6C,eAGtB,CACIh5C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzCI,QAAShN,KAAKi2C,gBAGtB,CACI/0C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1CI,QAAShN,KAAKg2C,gBAGtB,CACI90C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAAS4M,aAInC,CACIxO,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrCE,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAoC5CyZ,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDk3B,gBACgC,SAAxBv1C,EAAQoB,QAAQ2M,IAAyC,YAAxB/N,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,UAAxB/N,EAAQoB,QAAQ2M,KACvHvO,KAAKyN,SAAS,CACVurC,8BAA8B,IAItCh5C,KAAK8R,SAAW,CACZxG,GAAI,EACJooB,MAAO,CAAEpoB,GAAI,GACbygB,UAAW,CAAEzgB,GAAI,GACjBD,UAAW,CAAEC,GAAI,GACjBuE,IAAK,GACLupC,MAAO,GACPC,YAAY,EACZC,gBAAgB,EAChBC,gBAAgB,EAChBC,YAAY,EACZ/mB,SAAS,EACTC,WAAY,EACZ4nB,iBAAkB,GAClBb,kBAAkB,EAClBC,KAAK,GAET15C,KAAKyN,SAAS,CACVnD,OAAO,IAMTkmB,aAAa7iB,GAAI,IAAD,2HAGJ,QADRlB,EAAQ,EAAKA,aACa5L,IAAV4L,EAHJ,uBAIdqG,YAAM,6BAAsB,cAJd,0CASRlR,IAAQ6F,IAAIpD,EAAW,0BAA4BoI,EAAMnB,GAC3D,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KALD,uCAKM,WAAO4zC,GAAP,SAAAh0C,EAAA,0DACAg0C,EAAQj0C,KAAKO,QADb,wBAEA,EAAKiL,SAAW,CACZxG,GAAIivC,EAAQj0C,KAAKiG,KAAKjB,GACtBooB,MAAO,CAAEpoB,GAAIivC,EAAQj0C,KAAKiG,KAAKmnB,MAAMpoB,IACrCygB,UAAW,CAAEzgB,GAAIivC,EAAQj0C,KAAKiG,KAAKwf,UAAUzgB,IAC7CmnB,QAAS8nB,EAAQj0C,KAAKiG,KAAKkmB,QAC3B5iB,IAAK0qC,EAAQj0C,KAAKiG,KAAKsD,IACvB2qC,QAASD,EAAQj0C,KAAKiG,KAAKiuC,QAC3Br6B,SAAUo6B,EAAQj0C,KAAKiG,KAAK4T,SAC5Bk5B,WAAYkB,EAAQj0C,KAAKiG,KAAK8sC,WAC9BC,eAAgBiB,EAAQj0C,KAAKiG,KAAK+sC,eAClCC,eAAgBgB,EAAQj0C,KAAKiG,KAAKgtC,eAClCC,WAAYe,EAAQj0C,KAAKiG,KAAKitC,WAC9BiB,cAAeF,EAAQj0C,KAAKiG,KAAKkuC,cACjCpvC,UAAW,CAAEC,GAAIivC,EAAQj0C,KAAKiG,KAAKlB,UAAUC,IAC7ConB,WAAY6nB,EAAQj0C,KAAKiG,KAAKmmB,WAC9B+mB,iBAAkBc,EAAQj0C,KAAKiG,KAAKktC,iBACpCC,IAAKa,EAAQj0C,KAAKiG,KAAKmtC,KAlB3B,SAqBM,EAAK53B,gBAAgBtZ,OArB3B,cAsBA,EAAK+Y,eAAeze,WAAW+K,OAAO,QAAS,EAAKiE,SAAS4hB,MAAMpoB,IACnE,EAAKyW,YAAYC,QAAU,EAAKlQ,SAAS4hB,MAAMpoB,GAvB/C,SAwBM,EAAK2W,oBAAoBzZ,OAxB/B,cAyBA,EAAKgZ,mBAAmB1e,WAAW+K,OAAO,QAAS,EAAKiE,SAASia,UAAUzgB,IAC3E,EAAK06B,gBAAgBha,YAAc,EAAKla,SAASia,UAAUzgB,GA1B3D,UA2BM,EAAK8uC,6BAA6B5xC,OA3BxC,eA4BA,EAAKoxC,uBAAuB92C,SAAS4M,UA5BrC,UA6BM9N,IAAQ6F,IAAIpD,EAAW,kCAAoC,EAAKyN,SAASxG,GAC3E,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KANC,uCAMI,WAAO6I,GAAP,SAAAjJ,EAAA,0DACEiJ,EAAQlJ,KAAKO,QADf,uBAEmB,EAAKwzC,wBAAwBhyC,QACnCoH,QAHb,SAIQ,EAAKkqC,kBAAkB72C,SAAS4M,UAAU/I,KAAK,KACjD6I,EAAQlJ,KAAKiG,KAAKlF,QAAQ,CAACoF,EAAOkD,KAC9B,EAAKupC,cAAgB,CACjBwB,UAAW,CAAEpvC,GAAImB,EAAMkuC,cACvB5B,QAAStsC,EAAMssC,QACfztC,GAAImB,EAAMnB,GACVsvC,UAAWnuC,EAAMmuC,UACjBC,QAASpuC,EAAMouC,QACfC,KAAMruC,EAAMquC,MAEJ,EAAKT,wBAAwBhyC,QACnCI,OAAO,EAAKywC,mBAf5B,uBAmBQ,EAAKS,kBAAkB72C,SAAS4M,UAnBxC,8BAsBE9H,YAAO4H,EAAQlJ,KAAKQ,aAAc,QAAS,KAtB7C,4CANJ,uDA7BN,gCA8DAc,YAAO2yC,EAAQj0C,KAAKQ,aAAc,QAAS,KA9D3C,4CALN,uDATQ,wBA+ER,EAAK2G,SAAS,CAChBnD,OAAO,IAhFG,8CAqFtB4rC,SAASvoC,GAEL,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKszB,IAAI7mB,UAPjBqG,YAAM,6BAAsB,cAapConC,aAAavsC,GAET,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,qEAAuD,kBACrEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAK+6C,QAAQtuC,UAPrBqG,YAAM,6BAAsB,cAapCkjC,cAAcroC,GAEV,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKuzB,SAAS9mB,UAPtBqG,YAAM,6BAAsB,cAapCmjC,cAActoC,GAEV,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKwzB,SAAS/mB,UAPtBqG,YAAM,6BAAsB,cAa9BwgB,IAAI7mB,GAAQ,IAAD,kHACb,EAAKgB,SAAS,CACVwmB,kBAAkB,IAEtBryB,IAAQ4E,KAAKnC,EAAW,0BAA4BoI,EAAMnB,GACtD,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD,EAAK6gB,SAAS3lB,SAAS4M,YAGvB,EAAKjC,SAAS,CACVwmB,kBAAkB,IAEtBrsB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAnBtC,6CAwBXi0C,QAAQtuC,GAAQ,IAAD,kHAEjB7K,IAAQ4E,KAAKnC,EAAW,qBAAuBoI,EAAMnB,GACjD,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,QACT,EAAK4hB,SAAS3lB,SAAS4M,UAGvB9H,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAMiH,IAELpG,YAAO,qEAA+DoG,EAAO,QAAS,OAjB7E,6CAsBfulB,SAAS9mB,GAAQ,IAAD,kHAElB7K,IAAQ4E,KAAKnC,EAAW,sBAAwBoI,EAAMnB,GAAI,KACtD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4hB,SAAS3lB,SAAS4M,UACvB9H,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAfjC,6CAoBhB0sB,SAAS/mB,GAAQ,IAAD,kHAClB7K,IAAQ4E,KAAKnC,EAAW,sBAAwBoI,EAAMnB,GAClD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4hB,SAAS3lB,SAAS4M,UACvB9H,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAfjC,6CAoBtBirB,sBAAsBpkB,GAClB3N,KAAKyoB,SAAW9a,EAAEC,UAGtBosC,oCAAoCrsC,GAChC3N,KAAK45C,uBAAyBjsC,EAAEC,UAGpCqsC,+BAA+BtsC,GAC3B3N,KAAK25C,kBAAoBhsC,EAAEC,UAG/BiU,gCAAgClU,GAC5B3N,KAAKwhB,mBAAqB7T,EAAEC,UAGhCgU,4BAA4BjU,GACxB3N,KAAKuhB,eAAiB5T,EAAEC,UAK5B7K,SACI,OACI,gBAAC,WAAD,KACI,gBAAC,WAAD,CACIyU,OAAO,WACPhH,SAAS,MACTlN,MAAO,IACPsN,WAAW,EACX9F,MAAO,4CACPlH,IAAMA,GAAQ5D,KAAKi5C,YAAcr1C,GANrC,qIAQ4F,4BAG5F,uBAAKqM,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKm6C,eACjB7lC,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRyM,cAAepQ,KAAK+xB,sBACpBxd,mBAAoBvU,KAAKuU,mBACzB3Q,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,EAC9BqY,mBAAoBjc,KAAKic,oBAEzB,gBAAC,SAAD,CAAQ/G,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,gBAAC,gBAAD,CAAezT,SAAS,IACxB,gBAAC,UAAD,CAASJ,KAAM,UACf,gBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,gBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,gBAAC,eAAD,CAAc5T,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,gBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,gBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,YACvD,gBAAC,SAAD,CAAQnD,UAAW,YAAaiD,QAAQ,eACxC,gBAAC,SAAD,CAAQjD,UAAW,gBAAiBiD,QAAQ,0BAC5C,gBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,eAClC,gBAAC,SAAD,CAAQjD,UAAW,eAAgBiD,QAAQ,mBAO3D,gBAAC,QAAD,CAAOvE,WAAW,EAAMC,SAAS,EAAOC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACtFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IACJ3N,KAAK8R,SAASwnC,iBACdt5C,KAAK8R,SAASunC,YAAa,GAE/Br5C,KAAK8R,SAASwoC,iBAAmBt6C,KAAKq6C,wBAAwBj3C,QAE9DxB,IAAQ4E,KAAKnC,EAAW,0BACpBrE,KAAK8R,SACL,CACIrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,QACT7G,KAAKyoB,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC3G,KAAKyN,SAAS,CAAEnD,OAAO,MAI3B1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,UAO3D,CACI5F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,gBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,gBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,uBAAKzB,UAAU,OACX,uBAAKA,UAAU,aACX,gBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,UACjB,gBAAC,YAAD,CAAWE,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,yBACnD,gBAAC,aAAD,CAAYjD,UAAW,WACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8hB,gBACjBte,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAK4hB,4BACpBhe,IAAMA,IAAU5D,KAAKuhB,eAAiB3d,GACtC0X,eAAiB3N,IACb3N,KAAK+hB,YAAYC,QAAUrU,EAAEpG,MAC7BvH,KAAKiiB,oBAAoBzZ,UAGjC,gBAAC,QAAD,CAAOgG,KAAK,gBAEhB,gBAAC,aAAD,CAAY0D,UAAW,eACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKiiB,oBACjBze,eAAe,EACfP,YAAa,eACbqP,UAAW,eACXlC,cAAepQ,KAAK6hB,gCACpBje,IAAMA,IAAU5D,KAAKwhB,mBAAqB5d,GAC1C0X,eAAiB3N,IACb3N,KAAKgmC,gBAAgBha,YAAcre,EAAEpG,MACrCvH,KAAKo6C,6BAA6B5xC,OAClCxI,KAAK45C,uBAAuB92C,SAAS4M,UACzB1P,KAAKq6C,wBAAwBhyC,QACnCoH,QACNzP,KAAK25C,kBAAkB72C,SAAS4M,aAGxC,gBAAC,QAAD,CAAOlB,KAAK,qBAEhB,gBAAC,aAAD,CAAY0D,UAAW,MAAOyc,YAAY,GACtC,gBAAC,QAAD,CAAOngB,KAAK,cAEhB,gBAAC,aAAD,CAAY0D,UAAW,YACnB,gBAAC,QAAD,CAAO1D,KAAK,sBAGhB,gBAAC,aAAD,CAAY0D,UAAW,aACnBC,WAAW,aAAaC,cAAe,CACnCI,YAAmC,SAAxBhS,EAAQoB,QAAQ2M,IAAyC,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,YAAxB/N,EAAQoB,QAAQ2M,KAC9F6B,cAAgBzC,IACZ3N,KAAK65C,iBAAmBlsC,EAAEC,WAE9B0N,eAAiB3N,IACTA,EAAEpG,OACFvH,KAAK85C,qBAAqBh3C,WAAW+K,OAAO,SAAS,IAG7DjK,IAAMA,IAAU5D,KAAK65C,iBAAmBj2C,KAE5C,gBAAC,QAAD,CAAO4K,KAAK,oBAGhB,gBAAC,aAAD,CAAY0D,UAAW,aAAcyc,YAAY,EAAMxc,WAAW,cAC9D,gBAAC,QAAD,CAAO3D,KAAK,4BAGhB,gBAAC,aAAD,CAAY0D,UAAW,iBAAkBC,WAAW,aAAaC,cAAe,CAC5EI,YAAmC,SAAxBhS,EAAQoB,QAAQ2M,IAAyC,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,YAAxB/N,EAAQoB,QAAQ2M,KAC9F6B,cAAgBzC,IACZ3N,KAAK85C,qBAAuBnsC,EAAEC,WAElC0N,eAAiB3N,IACTA,EAAEpG,OACFvH,KAAK65C,iBAAiB/2C,WAAW+K,OAAO,SAAS,IAGzDjK,IAAMA,IAAU5D,KAAK85C,qBAAuBl2C,KAE5C,gBAAC,QAAD,CAAO4K,KAAK,4BAEhB,gBAAC,aAAD,CAAY0D,UAAW,iBAAkByc,YAAY,EAAMxc,WAAW,aAAaC,cAAe,CAC9F/D,QAAiC,UAAxB7N,EAAQoB,QAAQ2M,MAEzB,gBAAC,QAAD,CAAOC,KAAK,2CAA0BH,QAAiC,UAAxB7N,EAAQoB,QAAQ2M,OAEnE,gBAAC,aAAD,CAAY2D,UAAW,mBAAoBC,WAAW,cAClD,gBAAC,QAAD,CAAO3D,KAAK,iCAEhB,gBAAC,aAAD,CAAY0D,UAAW,MAAOC,WAAW,aAAaC,cAAe,CACjEhC,cAAgBzC,IACZ3N,KAAK+5C,UAAYpsC,EAAEC,WAEvB0N,eAAiB3N,IACTA,EAAEpG,OACFvH,KAAK+5C,UAAUj3C,WAAW+K,OAAO,SAAS,IAGlDjK,IAAMA,IAAU5D,KAAK+5C,UAAYn2C,KAEjC,gBAAC,QAAD,CAAO4K,KAAK,qBAGpB,gBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,6BACnD,gBAAC,aAAD,KACI,gBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKo6C,6BACjB9lC,qBAAqB,EACrB3Q,QAAQ,KACRq3C,WAAartC,IAEL3N,KAAKq6C,wBAAwBj3C,QAAQ2L,OAAOJ,GAAKA,EAAEoqC,UAAYprC,EAAErH,KAAKooC,MAAMliC,OAAS,EACrF5E,YAAO+F,EAAErH,KAAKooC,KAAO,4BAAmB,UAAW,KAIvB,UAAxBluC,EAAQoB,QAAQ2M,KAA2C,mBAAxB/N,EAAQoB,QAAQ2M,KAAoD,SAAxB/N,EAAQoB,QAAQ2M,MAC/FvO,KAAKk5C,cAAgB,CACjBwB,UAAW,CAAEpvC,GAAI,GACjBytC,QAASprC,EAAErH,KAAKooC,KAChBpjC,GAAIqC,EAAErH,KAAKgF,GACXsvC,UAAW,EACXC,QAAS,EACTC,KAAMntC,EAAErH,KAAKw0C,MAEL96C,KAAKq6C,wBAAwBhyC,QAEnCI,OAAOzI,KAAKk5C,eAClBl5C,KAAK25C,kBAAkB72C,SAAS4M,YAI5CwM,OAAQ,CACJC,SAAU,IAEd/L,cAAepQ,KAAKg6C,oCACpBp2C,IAAMA,GAAQ5D,KAAK45C,uBAAyBh2C,GAE5C,gBAAC,UAAD,CAASkR,KAAM,WACf,gBAAC,eAAD,CAAcI,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,SAAD,CAAQhD,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,aAClC,gBAAC,SAAD,CAAQjD,UAAW,OAAQiD,QAAQ,WAG3C,gBAAC,aAAD,KACI,gBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKq6C,wBACjB/lC,qBAAqB,EACrB3Q,QAAQ,KACRC,IAAMA,GAAQ5D,KAAK25C,kBAAoB/1C,EACvCwM,cAAepQ,KAAKi6C,+BACpBla,kBAAmB//B,KAAK84C,gCAExB,gBAAC,UAAD,CAAShkC,KAAM,OAAQE,UAAU,EAAMC,eAAe,EAAM0iB,cAAuC,UAAxBn3B,EAAQoB,QAAQ2M,KAA2C,mBAAxB/N,EAAQoB,QAAQ2M,KAAoD,SAAxB/N,EAAQoB,QAAQ2M,MAC1K,gBAAC,YAAD,CAAW2G,SAAS,IACpB,gBAAC,SAAD,CAAQhD,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,OAAOC,cAAc,IAC3D,gBAAC,SAAD,CAAQlD,UAAW,YAAaiD,QAAQ,yBAAYE,SAAS,SAASD,cAAc,IACpF,gBAAC,SAAD,CAAQlD,UAAW,UAAWiD,QAAQ,UAAUE,SAAS,SAASjD,cAAe,CAC7EI,UAAU,eC3xB9D,MAAMhC,GAAW,CAAEc,GAAI,UAYvB,MAAM2pC,WAAoBh5C,IAAM0T,UAI5B5V,YAAYU,GAAQ,IAAD,EACfyB,MAAMzB,GADS,OAEfT,KAAK+J,MAAQ,CACTO,OAAO,EACP4wC,kBAAkB,EAClBC,iBAAiB,EACjB9rC,YAAa,GACb+rC,qBAAqB,EACrBC,uBAAuB,EACvBpnB,kBAAkB,EAClBzpB,iBAAiB,EACjBwiB,oBAAoB,EACpBsuB,iBAAiB,GAErBt7C,KAAK+Q,UAAY,KACjB/Q,KAAKu7C,WAAa,KAClBv7C,KAAKw7C,eAAiB,KACtBx7C,KAAKiL,gBAAkB,KACvBjL,KAAKyoB,SAAW,KAChBzoB,KAAKuhB,eAAiB,KACtBvhB,KAAKy7C,mBAAqB,KAC1Bz7C,KAAK07C,qBAAuB,KAC5B17C,KAAK27C,oBAAsB,KAC3B37C,KAAKwhB,mBAAqB,KAC1BxhB,KAAK47C,yBAA2B,KAChC57C,KAAK67C,wBAA0B,KAC/B77C,KAAK87C,4BAA8B,KACnC97C,KAAK+7C,mBAAqB,KAC1B/7C,KAAKg8C,qBAAuB,KAC5Bh8C,KAAKi8C,oBAAsB,KAC3Bj8C,KAAKyM,MAAQ,KACbzM,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKoQ,cAAgBpQ,KAAKoQ,cAAcxG,KAAK5J,MAC7CA,KAAK4hB,4BAA8B5hB,KAAK4hB,4BAA4BhY,KAAK5J,MACzEA,KAAKk8C,gCAAkCl8C,KAAKk8C,gCAAgCtyC,KAAK5J,MACjFA,KAAKm8C,kCAAoCn8C,KAAKm8C,kCAAkCvyC,KAAK5J,MACrFA,KAAKo8C,iCAAmCp8C,KAAKo8C,iCAAiCxyC,KAAK5J,MACnFA,KAAK6hB,gCAAkC7hB,KAAK6hB,gCAAgCjY,KAAK5J,MACjFA,KAAKq8C,sCAAwCr8C,KAAKq8C,sCAAsCzyC,KAAK5J,MAC7FA,KAAKs8C,qCAAuCt8C,KAAKs8C,qCAAqC1yC,KAAK5J,MAC3FA,KAAKu8C,gCAAkCv8C,KAAKu8C,gCAAgC3yC,KAAK5J,MACjFA,KAAKw8C,kCAAoCx8C,KAAKw8C,kCAAkC5yC,KAAK5J,MACrFA,KAAKy8C,iCAAmCz8C,KAAKy8C,iCAAiC7yC,KAAK5J,MACnFA,KAAK08C,8BAAgC18C,KAAK08C,8BAA8B9yC,KAAK5J,MAC7EA,KAAK28C,yCAA2C38C,KAAK28C,yCAAyC/yC,KAAK5J,MACnGA,KAAK48C,4BAA8B58C,KAAK48C,4BAA4BhzC,KAAK5J,MACzEA,KAAK6J,6BAA+B7J,KAAK6J,6BAA6BD,KAAK5J,MAC3EA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAKyzB,mBAAqBzzB,KAAKyzB,mBAAmB7pB,KAAK5J,MACvDA,KAAK4wB,YAAc5wB,KAAK4wB,YAAYhnB,KAAK5J,MACzCA,KAAK+1C,cAAgB/1C,KAAK+1C,cAAcnsC,KAAK5J,MAC7CA,KAAK68C,aAAe78C,KAAK68C,aAAajzC,KAAK5J,MAC3CA,KAAKg2C,cAAgBh2C,KAAKg2C,cAAcpsC,KAAK5J,MAC7CA,KAAKi2C,cAAgBj2C,KAAKi2C,cAAcrsC,KAAK5J,MAC7CA,KAAKk2C,SAAWl2C,KAAKk2C,SAAStsC,KAAK5J,MACnCA,KAAKszB,IAAMtzB,KAAKszB,IAAI1pB,KAAK5J,MACzBA,KAAKuzB,SAAWvzB,KAAKuzB,SAAS3pB,KAAK5J,MACnCA,KAAKwzB,SAAWxzB,KAAKwzB,SAAS5pB,KAAK5J,MACnCA,KAAK88C,cAAgB98C,KAAK88C,cAAclzC,KAAK5J,MAC7CA,KAAK+8C,cAAgB/8C,KAAK+8C,cAAcnzC,KAAK5J,MAC7CA,KAAKm6C,eAAiB,IAAI/xC,IACtB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,SAAUhI,KAAK+J,MAAMijB,mBAAqBxnB,EAAkB,SAAWnB,GAAY,wBACnFyE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKg9C,sBAAL,sBAA6B,sBAAAz2C,EAAA,sDACzB,EAAKkH,SAAS,CACVytC,kBAAkB,IAFG,2CAM7Bl7C,KAAKi9C,qBAAL,sBAA4B,sBAAA12C,EAAA,sDACxB,EAAKkH,SAAS,CACV0tC,iBAAiB,IAFG,2CAM5Bn7C,KAAK0wB,WAAL,sBAAkB,sBAAAnqB,EAAA,sEACR,EAAKktB,qBADG,uBAER,EAAKhmB,SACP,CACInD,OAAO,EACP4yC,mBAAmB,IALb,2CAUlBl9C,KAAK6wB,QAAU,KACX7wB,KAAKyN,SACD,CACInD,OAAO,EACP6lB,YAAa,GACbC,iBAAiB,KAI7BpwB,KAAKm9C,kBAAoB,KACrBn9C,KAAKyN,SACD,CACI0tC,iBAAiB,KAI7Bn7C,KAAKo9C,mBAAqB,KACtBp9C,KAAKyN,SAAS,CACVjD,iBAAiB,KAIzBxK,KAAKq9C,sBAAwB,KACzBr9C,KAAKyN,SAAS,CACVjD,iBAAiB,KAIzBxK,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKs9C,sBAAwB,IAAIl1C,IAC7B,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASxC,EAAkB,8BAC3BsD,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYzG,KAAKS,MAAM0J,aAAakF,kBAMzErP,KAAK+hB,YAAc,CAAEC,QAAS,GAC9BhiB,KAAKiiB,oBAAsB,IAAI7Z,IAC3B,CACIC,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAK+hB,YACjB/Z,QAAS3D,EAAW,iCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKu9C,kBAAoB,CAAEv7B,QAAS,GACpChiB,KAAKw9C,0BAA4B,IAAIp1C,IACjC,CACIC,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKu9C,kBACjBv1C,QAASxC,EAAkB,uCAC3BsD,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYzG,KAAKS,MAAM0J,aAAakF,kBAMzErP,KAAKgmC,gBAAkB,CACnBhkB,QAAS,EACTgK,YAAa,GAGjBhsB,KAAKy9C,oBAAsB,IAAIr1C,IAC3B,CACIC,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKgmC,gBACjBh+B,QAAS3D,EAAW,4BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK09C,sBAAwB,CACzB17B,QAAS,EACTgK,YAAa,EACb2xB,QAAS,GAGb39C,KAAK49C,6BAA+B,IAAIx1C,IACpC,CACI2G,OAAQ,CAAC,sBAAuB,KAAK,GACrC5C,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAK09C,sBACjB11C,QAASxC,EAAkB,wCAC3BsD,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYzG,KAAKS,MAAM0J,aAAakF,kBAMzErP,KAAKs1B,gBAAkB,IAAIltB,IACvB,CACI+D,UAAU,EACVgQ,SAAU,GACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,iBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAK69C,sBAAwB,IAAIz1C,IAC7B,CACI+D,UAAU,EACVgQ,SAAU,GACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASxC,EAAkB,uBAC3BsD,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYzG,KAAKS,MAAM0J,aAAakF,kBAMzErP,KAAK89C,qBAAuB,CACxBC,cAAe,KACfC,aAAc,KACdC,cAAe,KACfC,aAAc,KACdC,kBAAmB,KACnBC,iBAAkB,KAClBnyB,eAAgB,MAGpBjsB,KAAKq+C,mBAAqB,CACtBlzC,QAAS,KACTsD,QAAS,KACTrD,YAAa,KACbkzC,QAAS,MAGbt+C,KAAKkL,cAAgB,CACjBC,QAAS,MAGbnL,KAAK6L,gBAAkB,IAAIzD,IACvB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAShE,EAAU,uBAI/BhE,KAAK0L,sBAAwB,IAAItD,IAC7B,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASxC,EAAkB,4BAIvCxF,KAAKu+C,gBAAkB,CACnBpzC,QAAS,GAGbnL,KAAKqyB,oBAAsB,IAAIjqB,IAC3B,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKu+C,gBACjBv2C,QAAS3D,EAAW,kCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjEuF,QAAQC,IAAIlM,KAAKS,MAAM0J,aAAakF,aAMxCe,cAAczC,GACV3N,KAAKyoB,SAAW9a,EAAEC,UAGtB8uC,8BAA8B/uC,GAC1B3N,KAAKu7C,WAAa5tC,EAAEC,UAGxBgU,4BAA4BjU,GACxB3N,KAAKuhB,eAAiB5T,EAAEC,UAG5BuuC,kCAAkCxuC,GAC9B3N,KAAK07C,qBAAuB/tC,EAAEC,UAGlCwuC,iCAAiCzuC,GAC7B3N,KAAK27C,oBAAsBhuC,EAAEC,UAGjCiU,gCAAgClU,GAC5B3N,KAAKwhB,mBAAqB7T,EAAEC,UAGhCyuC,sCAAsC1uC,GAClC3N,KAAK47C,yBAA2BjuC,EAAEC,UAGtC0uC,qCAAqC3uC,GACjC3N,KAAK67C,wBAA0BluC,EAAEC,UAGrC+uC,yCAAyChvC,GACrC3N,KAAK87C,4BAA8BnuC,EAAEC,UAEzC2uC,gCAAgC5uC,GAC5B3N,KAAK+7C,mBAAqBpuC,EAAEC,UAGhCgvC,4BAA4BjvC,GACxB3N,KAAKw7C,eAAiB7tC,EAAEC,UAG5B/D,6BAA6B8D,GACzB3N,KAAKiL,gBAAkB0C,EAAEC,UAG7BsuC,gCAAgCvuC,GAC5B3N,KAAKy7C,mBAAqB9tC,EAAEC,UAGhC6uC,iCAAiC9uC,GAC7B3N,KAAKg8C,qBAAuBruC,EAAEC,UAGlC4uC,kCAAkC7uC,GAC9B3N,KAAKi8C,oBAAsBtuC,EAAEC,UAGjC2G,mBAAmB5G,GAAI,IAAD,OAClBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,mCACNxJ,MAAO,IACPkL,KAAMxO,KAAK+J,MAAMijB,mBAAqB,wBAAqB,sBAC3DhgB,QAAUW,IAED3N,KAAK+J,MAAMijB,oBAuBZhtB,KAAKm6C,eAAiB,IAAI/xC,IACtB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAKyoB,SAAS3lB,SAAS+K,OAAO,aAAc7N,KAAKm6C,gBACjDn6C,KAAKyoB,SAAS3lB,SAAS4M,YApCvB1P,KAAKm6C,eAAiB,IAAI/xC,IACtB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASxC,EAAkB,8BAC3BsD,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYzG,KAAKS,MAAM0J,aAAakF,kBAKzErP,KAAKyoB,SAAS3lB,SAAS+K,OAAO,aAAc7N,KAAKm6C,gBACjDn6C,KAAKyoB,SAAS3lB,SAAS4M,WAuB3B1P,KAAKyN,SAAS,CACVuf,oBAAqBhtB,KAAK+J,MAAMijB,wBAKhD,CACI9rB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,mCACNF,KAAM,iBACNI,QAAQ,WAAD,4BAAE,4BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAOD,EAAKqqC,oBAPJ,2CAAF,kDAAC,KAYhB,CACIj8C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,qBACNF,KAAM,cACNI,QAAQ,WAAD,4BAAE,4BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAOD,EAAKgqC,gBACLl7C,IAAQ6F,IAAIjD,EAAW,2BAA6BiI,EAAMnB,GAAI,CAC1DkzC,QAAS,KACT/3C,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIhDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,wDAAqDlM,EAAIN,KAAKiG,KAAO,sMAA+I,WAI1N,EAAKwwC,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAG9CC,MAAMC,IACH,EAAK+1C,gBACLn1C,YAAOZ,EAAK,QAAS,OA5B5B,2CAAF,kDAAC,KAkChB,CACI9F,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,+BACNF,KAAM,SACNI,QAAQ,WAAD,4BAAE,4BAAAzG,EAAA,yDAES,QADRkG,EAAQ,EAAKA,aACa5L,IAAV4L,EAFjB,uBAGDqG,YAAM,6BAAsB,cAH3B,0BAOD,EAAKgqC,gBACLl7C,IAAQ6F,IAAIpD,EAAW,sCAAwCoI,EAAMnB,GAAI,CACrEkzC,QAAS,KACT/3C,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIhDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAKk2C,gBACL97C,OAAOC,SAASC,KAAOyF,EAAIN,KAAKiG,OAGhC,EAAKwwC,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAG9CC,MAAMC,IACH,EAAK+1C,gBACLn1C,YAAOZ,EAAK,QAAS,OA3B5B,2CAAF,kDAAC,KAiChB,CACI9F,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,gCACNF,KAAM,WACNI,QAAQ,WAAD,4BAAE,sBAAAzG,EAAA,sDACL,EAAK62C,qBADA,2CAAF,kDAAC,KAMhB,CACIl8C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,OACNF,KAAM,MACNI,QAAShN,KAAK+1C,gBAGtB,CACI70C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,aACNF,KAAM,OACNI,QAAShN,KAAK68C,eAGtB,CACI37C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,QACnCI,QAAShN,KAAKk2C,WAGtB,CACIh1C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzCI,QAAShN,KAAKi2C,gBAGtB,CACI/0C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1CI,QAAShN,KAAKg2C,gBAGtB,CACI90C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAK4wB,iBAIjB,CACI1vB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrCE,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CyZ,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhD4U,qBACmC,OAA3BzzB,KAAKyoB,SAAS3lB,WACd9C,KAAKyoB,SAAS3lB,SAASyuB,iBACvBvxB,KAAKyoB,SAAS3lB,SAAS+K,OAAO,mBAAoB,IAMpD4wC,SAASC,GAAU,IAAD,2IACb,IAAI3jC,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,yBAA2Bq6C,EAC9C,CACIj4C,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACT,EAAKiL,SAAW,CACZxG,GAAI1E,EAAIN,KAAKiG,KAAKjB,GAClBooB,MAAO,CAAEpoB,GAAI1E,EAAIN,KAAKiG,KAAKmnB,MAAMpoB,IACjCygB,UAAW,CAAEzgB,GAAI1E,EAAIN,KAAKiG,KAAKwf,UAAUzgB,IACzCovC,UAAW,CAAEpvC,GAAI1E,EAAIN,KAAKiG,KAAKmuC,UAAUpvC,IACzCmnB,QAAS7rB,EAAIN,KAAKiG,KAAKkmB,QACvBC,WAAY9rB,EAAIN,KAAKiG,KAAKmmB,WAC1Bgc,KAAM9nC,EAAIN,KAAKiG,KAAKmiC,KACpB7+B,IAAKjJ,EAAIN,KAAKiG,KAAKsD,IACnBqQ,MAAOtZ,EAAIN,KAAKiG,KAAK2T,MACrByuB,KAAM/nC,EAAIN,KAAKiG,KAAKoiC,KACpBgQ,YAAa/3C,EAAIN,KAAKiG,KAAKoyC,YAC3BC,YAAah4C,EAAIN,KAAKiG,KAAKqyC,YAC3BC,oBAAqBj4C,EAAIN,KAAKiG,KAAKsyC,oBACnCC,eAAgBl4C,EAAIN,KAAKiG,KAAKuyC,eAC9BC,YAAan4C,EAAIN,KAAKiG,KAAKwyC,YAC3BC,WAAYp4C,EAAIN,KAAKiG,KAAKyyC,WAC1BtF,IAAK9yC,EAAIN,KAAKiG,KAAKmtC,KAGvB1+B,EAAQ,qCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOtV,EAAsBqI,EAAO,oBApC5B,6CA4ClB4iB,cAAe,IAAD,kHAChB,EAAKnI,SAAS3lB,SAAS4M,UAAU/I,KAAK,KAClC,EAAK8sB,uBAFO,6CAMdopB,aAAalvC,GAAI,IAAD,2HAEJ,QADRlB,EAAQ,EAAKA,aACa5L,IAAV4L,EAFJ,uBAGdqG,YAAM,6BAAsB,cAHd,iCAOd,EAAKhB,SAAW,KAPF,mBAUJ,EAAK2sC,SAAShyC,EAAMnB,IAAI3E,KAAK,QAAWI,MAAMiH,IAChD,MAAMA,IAXA,eAcV,EAAK+T,YAAYC,QAAU,EAAKlQ,SAAS4hB,MAAMpoB,GAC/C,EAAK06B,gBAAgBhkB,QAAU,EAAKlQ,SAAS4hB,MAAMpoB,GACnD,EAAK06B,gBAAgBha,YAAc,EAAKla,SAASia,UAAUzgB,GAhBjD,UAkBJ,EAAKwW,gBAAgBtZ,OAAOy2C,KAAKjxC,IACnC,MAAMA,IAnBA,yBAqBJ,EAAKiU,oBAAoBzZ,OAAOy2C,KAAKjxC,IACvC,MAAMA,IAtBA,yBAwBJ,EAAKyvC,oBAAoBj1C,OAAOy2C,KAAKjxC,IACvC,MAAMA,IAzBA,eA2BV,EAAKuT,eAAeze,WAAW+K,OAAO,QAAS,EAAKiE,SAAS4hB,MAAMpoB,IACnE,EAAKkW,mBAAmB1e,WAAW+K,OAAO,QAAS,EAAKiE,SAASia,UAAUzgB,IAC3E,EAAKywC,mBAAmBj5C,WAAW+K,OAAO,QAAS,EAAKiE,SAAS4oC,UAAUpvC,IAC3E,EAAKmC,SAAS,CACV6tC,iBAAiB,IA/BX,UAiCJ,EAAKzqB,UAjCD,iIAyCtBklB,gBACIn0C,IAAQ6F,IAAIpD,EAAW,2BACnB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKu4C,IACEA,EAAS54C,KAAKO,SACd7G,KAAKmZ,SAAW+lC,EAAS54C,KAAKiG,KAE9BvM,KAAK8R,SAAW,CACZxG,GAAI,EACJooB,MAAO,CAAEpoB,GAAI,GACbygB,UAAW,CAAEzgB,GAAI,GACjBovC,UAAW,CAAEpvC,GAAI,GACjBojC,KAAM,EACN7+B,IAAK,GACLqQ,MAAO,KACPyuB,KAAM,GACNgQ,YAAa,EACbC,aAAa,EACbC,qBAAqB,EACrBC,gBAAgB,EAChBC,aAAa,EACbC,YAAY,EACZtF,KAAK,GAET15C,KAAKyN,SAAS,CACV6tC,iBAAiB,EACjBhxC,OAAO,KAIX1C,YAAOs3C,EAAS54C,KAAKQ,aAAc,QAAS,OAK5DovC,SAASvoC,GAEL,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKszB,IAAI7mB,UAPjBqG,YAAM,6BAAsB,cAapCkjC,cAAcroC,GAEV,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKuzB,SAAS9mB,UAPtBqG,YAAM,6BAAsB,cAapCmjC,cAActoC,GAEV,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,oEAA2D,yBACzEvM,KAAMwM,KACY,IAAjBA,GACAnT,KAAKwzB,SAAS/mB,UAPtBqG,YAAM,6BAAsB,cAe9BwgB,IAAI7mB,GAAQ,IAAD,kHAEb7K,IAAQ4E,KAAKnC,EAAW,gCAAkCoI,EAAMnB,GAC5D,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD,EAAKgpB,eAGLhpB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAdtC,6CAmBXysB,SAAS9mB,GAAQ,IAAD,kHAElB7K,IAAQ4E,KAAKnC,EAAW,yBAA2BoI,EAAMnB,GAAI,KACzD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK+pB,cACLhpB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAfjC,6CAoBhB0sB,SAAS/mB,GAAQ,IAAD,kHAElB7K,IAAQ4E,KAAKnC,EAAW,yBAA2BoI,EAAMnB,GACrD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK+pB,cACLhpB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAhBjC,6CAqBtBi2C,gBACI/8C,KAAKyN,SAAS,CACVwmB,kBAAkB,IAI1B6oB,gBACI98C,KAAKyN,SAAS,CACVwmB,kBAAkB,IAG1BlxB,SAAU,IAAD,OACL,OACI,kBAAC,IAAM6U,SAAP,KACI,kBAAC,aAAD,CACIyc,aAAa,kBACb7jB,SAAUA,GACVqc,SAAU7sB,KAAK+8C,cACf1uC,QAASrO,KAAK+J,MAAMkqB,iBACpBK,eAAe,EACfzjB,SAAS,EACT0jB,UAAU,EACV5jB,qBAAqB,IAEzB,yBAAKV,UAAU,YAAYd,GAAG,SAC1B,yBAAKc,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,mDAGb,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKm6C,eACjB7lC,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACR4Q,mBAAoBvU,KAAKuU,mBACzBnE,cAAepQ,KAAKoQ,cACpB6L,mBAAoBjc,KAAKic,mBACzBrY,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,kBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,kBAAC,aAAD,CAAW5T,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,YACvD,kBAAC,SAAD,CAAQnD,UAAW,YAAaiD,QAAQ,eACxC,kBAAC,SAAD,CAAQjD,UAAW,gBAAiBiD,QAAQ,0BAC5C,kBAAC,SAAD,CAAQjD,UAAW,OAAQiD,QAAQ,oBACnC,kBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,wBAClC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,0BAMtD,kBAAC,QAAD,CAAOvE,WAAW,EAAMC,SAAS,EAAOC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACtFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,UAAWtK,KAAM,UAAW4I,KAAM,UAAWF,KAAM,QACzD4F,UAAUxS,KAAK+J,MAAMuxC,gBACnBtuC,QAAUW,IACR/L,IAAQ4E,KAAKnC,EAAW,wCACpBrE,KAAK8R,SACL,CACIrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,SAET7G,KAAK4wB,cACL5wB,KAAK0wB,cAGL9oB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAG5CC,MAAMC,IACL,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,aAS/B,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IACR/L,IAAQ4E,KAAKnC,EAAW,gCACpBrE,KAAK8R,SACL,CACIrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,SAET7G,KAAK4wB,cACL5wB,KAAK0wB,cAGL9oB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAG5CC,MAAMC,IACL,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,aAS/B,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,kBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,UACjB,kBAAC,YAAD,CAAWE,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,yBACnD,kBAAC,aAAD,CAAYjD,UAAW,WACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8hB,gBACjBte,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXiJ,iBAAiB,EACjBnL,cAAepQ,KAAK4hB,4BACpBhe,IAAMA,IAAU5D,KAAKuhB,eAAiB3d,GACtC0X,eAAe,WAAD,4BAAE,WAAO3N,GAAP,SAAApH,EAAA,sDAEZ,EAAKwb,YAAYC,QAAUrU,EAAEpG,MAC7B,EAAKy+B,gBAAgBhkB,QAAUrU,EAAEpG,MACjC,EAAK0a,oBAAoBzZ,OACzB,EAAKgZ,mBAAmB1e,WAAW+K,OAAO,QAAS,MACnD,EAAKkuC,mBAAmBj5C,WAAW+K,OAAO,QAAS,MANvC,2CAAF,mDAAC,KASnB,kBAAC,QAAD,CAAOW,KAAK,gBAEhB,kBAAC,aAAD,CAAY0D,UAAW,eACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKiiB,oBACjBze,eAAe,EACfP,YAAa,eACbqP,UAAW,eACXlC,cAAepQ,KAAK6hB,gCACpBje,IAAMA,IAAU5D,KAAKwhB,mBAAqB5d,GAC1C0X,eAAe,WAAD,4BAAE,WAAO3N,GAAP,SAAApH,EAAA,sDACZ,EAAKy/B,gBAAgBha,YAAcre,EAAEpG,MACrC,EAAKk2C,oBAAoBj1C,OACzB,EAAKuzC,mBAAmBj5C,WAAW+K,OAAO,QAAS,MAHvC,2CAAF,mDAAC,KAMnB,kBAAC,QAAD,CAAOW,KAAK,2BAEhB,kBAAC,aAAD,CAAY0D,UAAW,eACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKy9C,oBACjBj6C,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAKu8C,gCACpB34C,IAAMA,IAAU5D,KAAK+7C,mBAAqBn4C,KAE9C,kBAAC,QAAD,CAAO4K,KAAK,gBAEhB,kBAAC,aAAD,CAAY0D,UAAW,OAAQyc,YAAY,GACvC,kBAAC,QAAD,CAAOngB,KAAK,UAEhB,kBAAC,aAAD,CAAY0D,UAAW,MAAOyc,YAAY,GACtC,kBAAC,QAAD,CAAOngB,KAAK,cAEhB,kBAAC,aAAD,CAAY0D,UAAW,cAAeyc,YAAY,GAC9C,kBAAC,QAAD,CAAOngB,KAAK,iCAEhB,kBAAC,aAAD,CAAY0D,UAAW,QAASyc,YAAY,EAAMxc,WAAW,aACzD,kBAAC,QAAD,CAAO3D,KAAK,WAEhB,kBAAC,aAAD,CAAY0D,UAAW,OAAQyc,YAAY,EACvCxc,WAAW,cACXC,cACI,CACIC,WAAY,CACR,CAAEkN,KAAM,eAAgB3G,MAAO,WAC/B,CAAE2G,KAAM,eAAgB3G,MAAO,WAC/B,CAAE2G,KAAM,eAAgB3G,MAAO,WAC/B,CAAE2G,KAAM,kBAAgB3G,MAAO,WAC/B,CAAE2G,KAAM,yBAAgB3G,MAAO,WAC/B,CAAE2G,KAAM,oBAAgB3G,MAAO,WAC/B,CAAE2G,KAAM,oBAAgB3G,MAAO,WAC/B,CAAE2G,KAAM,eAAgB3G,MAAO,WAC/B,CAAE2G,KAAM,8BAAgB3G,MAAO,WAC/B,CAAE2G,KAAM,eAAgB3G,MAAO,WAC/B,CAAE2G,KAAM,kBAAgB3G,MAAO,WAC/B,CAAE2G,KAAM,8BAAgB3G,MAAO,YAEnC3V,YAAa,OACbqP,UAAW,QAGX8M,aAAc,CAAC/c,EAAUgd,EAAWC,IAEzB,kFAAoFjd,EAASuW,MAAQ,aAIxH,kBAAC,QAAD,CAAOpK,KAAK,UAEhB,kBAAC,aAAD,CAAY0D,UAAW,cAAeyc,YAAY,EAAMxc,WAAW,cAC/D,kBAAC,QAAD,CAAO3D,KAAK,qBAEhB,kBAAC,aAAD,CAAY0D,UAAW,sBAAuByc,YAAY,EAAMxc,WAAW,cACvE,kBAAC,QAAD,CAAO3D,KAAK,8BAEhB,kBAAC,aAAD,CAAY0D,UAAW,iBAAkByc,YAAY,EAAMxc,WAAW,cAClE,kBAAC,QAAD,CAAO3D,KAAK,oBAEhB,kBAAC,aAAD,CAAY0D,UAAW,cAAeyc,YAAY,EAAMxc,WAAW,cAC/D,kBAAC,QAAD,CAAO3D,KAAK,uBAEhB,kBAAC,aAAD,CAAY0D,UAAW,aAAcyc,YAAY,EAAMxc,WAAW,cAC9D,kBAAC,QAAD,CAAO3D,KAAK,iBAEhB,kBAAC,aAAD,CAAY0D,UAAW,aAAcyc,YAAY,EAAMxc,WAAW,cAC9D,kBAAC,QAAD,CAAO3D,KAAK,iBAEhB,kBAAC,aAAD,CAAY0D,UAAW,MAAOyc,YAAY,EAAMxc,WAAW,cACvD,kBAAC,QAAD,CAAO3D,KAAK,eAQxC,kBAAC,QAAD,CAAOoC,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMhG,MAAO,4CAC7DkG,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAKg9C,sBAAuB3uC,QAASrO,KAAK+J,MAAMmxC,iBAC1D9uC,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SACNtK,KAAM,UACN4I,KAAM,SACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAMqxC,oBACrBpuC,QAAUW,IAGN,GAFqB3N,KAAK67C,wBAAwB/4C,WAAW+K,OAAO,UAC9C7N,KAAK47C,yBAAyB94C,WAAW+K,OAAO,QACtE,CAKA,IAAIvH,EAAO,CACPI,MAAO1G,KAAKS,MAAM0J,aAAakF,YAC/B8vC,qBAAsBn/C,KAAK89C,qBAAqB7xB,eAChDgyB,cAAej+C,KAAK89C,qBAAqBG,cACzCE,kBAAmBn+C,KAAK89C,qBAAqBK,kBAC7CD,aAAcl+C,KAAK89C,qBAAqBI,aACxCE,iBAAkBp+C,KAAK89C,qBAAqBM,iBAC5CL,cAAe/9C,KAAK89C,qBAAqBC,cACzCC,aAAch+C,KAAK89C,qBAAqBE,cAE5Ch+C,KAAKyN,SAAS,CACV2tC,qBAAqB,IAEzBx5C,IAAQ4E,KAAK7B,EAAe,gCACxB2B,EACA,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAPF,uCAOO,WAAOC,GAAP,SAAAL,EAAA,0DACCK,EAAIN,KAAKO,QADV,gCAGO,EAAK4hB,SAAS3lB,SAAS4M,UAH9B,uBAIO,EAAKjC,SAAS,CAChB2tC,qBAAqB,IAL1B,uBAOO,EAAK4B,wBAPZ,8BAUC,EAAKvvC,SAAS,CACV2tC,qBAAqB,IAEzBxzC,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KAbxC,4CAPP,uDAuBGC,MAAMC,IAIL,GAHAhH,KAAKyN,SAAS,CACV2tC,qBAAqB,IAErBp0C,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,eAvDfzL,YAAO,6FAA2D,QAAS,QAgE3F,CACI1G,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAKg9C,6BAOxC,kBAAC,WAAD,CAAU5rC,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK89C,qBAAsB1tC,cAAepQ,KAAK08C,8BAA+B94C,IAAMA,GAAQ5D,KAAKu7C,WAAa33C,EAC1HmO,uBAAuB,GAEvB,kBAAC,YAAD,CAAWC,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,CAAYC,UAAU,gBAAgBC,WAAW,cAAcC,cAAe,CAC1EC,WAAYrS,KAAKs1B,gBACjBhjB,UAAW,KACXrP,YAAa,WACbmN,cAAepQ,KAAKy8C,iCACpB74C,IAAMA,IAAU5D,KAAKg8C,qBAAuBp4C,GAC5C0X,eAAe,WAAD,4BAAE,WAAO3N,GAAP,SAAApH,EAAA,sDACI,KAAZoH,EAAEpG,MAA2B,OAAZoG,EAAEpG,WAA6B1G,IAAZ8M,EAAEpG,QAItC,EAAKu2C,qBAAqBC,cAAgBpwC,EAAEpG,OALpC,2CAAF,mDAAC,KAUf,kBAAC,QAAD,CAAOiH,KAAK,iBACZ,kBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,kBAAC,aAAD,CAAYL,UAAU,eAAeC,WAAW,cAAcC,cAAe,CACzEC,WAAYrS,KAAK69C,sBACjBvrC,UAAW,KACXrP,YAAa,WACbO,eAAe,EACfgvC,WAAY,WACZ4M,WAAY,CAAC,YACb7jC,iBAAiB,EACjBnL,cAAepQ,KAAKw8C,kCACpB54C,IAAMA,IAAU5D,KAAKi8C,oBAAsBr4C,GAC3C0X,eAAe,WAAD,4BAAE,WAAO3N,GAAP,SAAApH,EAAA,sDACI,KAAZoH,EAAEpG,MAA2B,OAAZoG,EAAEpG,WAA6B1G,IAAZ8M,EAAEpG,QAItC,EAAKu2C,qBAAqBE,aAAerwC,EAAEpG,OALnC,2CAAF,mDAAC,KAUf,kBAAC,QAAD,CAAOiH,KAAK,gBACZ,kBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,kBAAC,aAAD,CAAYL,UAAW,gBAAiByc,YAAY,EAChDxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKs9C,sBACjB35C,QAAS,KACTH,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXiJ,iBAAiB,EACjBnL,cAAepQ,KAAKm8C,kCACpBv4C,IAAMA,IAAU5D,KAAK07C,qBAAuB93C,GAC5C0X,eAAe,WAAD,4BAAE,WAAO3N,GAAP,SAAApH,EAAA,2DACI,KAAZoH,EAAEpG,MAA2B,OAAZoG,EAAEpG,WAA6B1G,IAAZ8M,EAAEpG,OAD9B,6CAMR,EAAKg2C,kBAAkBv7B,QAAUrU,EAAEpG,MACnC,EAAKm2C,sBAAsB17B,QAAUrU,EAAEpG,MAP/B,SAQF,EAAKi2C,0BAA0Bh1C,OAR7B,OAYZ,EAAKozC,yBAAyB94C,WAAW+K,OAAO,QAAS,MACzD,EAAKiuC,4BAA4Bh5C,WAAW+K,OAAO,QAAS,MAbhD,2CAAF,mDAAC,KAkBnB,kBAAC,QAAD,CAAOW,KAAK,sBACZ,kBAAC,eAAD,CAAc+D,QAAQ,0CAE1B,kBAAC,aAAD,CAAYL,UAAW,eAAgByc,YAAY,EAC/Cxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8hB,gBACjBne,QAAS,KACTH,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXiJ,iBAAiB,EACjBnL,cAAepQ,KAAKo8C,iCACpBx4C,IAAMA,IAAU5D,KAAK27C,oBAAsB/3C,GAC3C0X,eAAiB3N,IACG,KAAZA,EAAEpG,MAA2B,OAAZoG,EAAEpG,WAA6B1G,IAAZ8M,EAAEpG,QAKtCvH,KAAK+hB,YAAYC,QAAUrU,EAAEpG,MAC7BvH,KAAKgmC,gBAAgBhkB,QAAUrU,EAAEpG,MACjCvH,KAAKiiB,oBAAoBzZ,QAI7BxI,KAAK67C,wBAAwB/4C,WAAW+K,OAAO,QAAS,SAKhE,kBAAC,QAAD,CAAOW,KAAK,qBACZ,kBAAC,eAAD,CAAc+D,QAAQ,yCAE1B,kBAAC,aAAD,CAAYL,UAAW,oBACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKw9C,0BACjBv6C,YAAa,eACbqP,UAAW,eACXlC,cAAepQ,KAAKq8C,sCACpBz4C,IAAMA,IAAU5D,KAAK47C,yBAA2Bh4C,GAChD0X,eAAiB3N,IACG,KAAZA,EAAEpG,MAA2B,OAAZoG,EAAEpG,QAInBvH,KAAK09C,sBAAsB1xB,YAAcre,EAAEpG,MAC3CvH,KAAK09C,sBAAsBC,QAAU39C,KAAKkL,cAAcC,QAShB,OAApCnL,KAAK89C,qBAAqBpqB,OAA0D,OAAxC1zB,KAAK89C,qBAAqB/xB,YAEtE/rB,KAAK49C,6BAA6Bp1C,OAClCxI,KAAK87C,4BAA4Bh5C,WAAW+K,OAAO,QAAS,WAK5E,kBAAC,QAAD,CAAOW,KAAK,iCACZ,kBAAC,eAAD,CAAc+D,QAAQ,qDAE1B,kBAAC,aAAD,CAAYL,UAAW,mBACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKiiB,oBACjBhf,YAAa,eACbqP,UAAW,eACXlC,cAAepQ,KAAKs8C,qCACpB14C,IAAMA,IAAU5D,KAAK67C,wBAA0Bj4C,GAC/C0X,eAAiB3N,IACG,KAAZA,EAAEpG,MAA2B,OAAZoG,EAAEpG,QAInBvH,KAAK09C,sBAAsB1xB,YAAcre,EAAEpG,MASH,OAApCvH,KAAK89C,qBAAqBpqB,OAA0D,OAAxC1zB,KAAK89C,qBAAqB/xB,YAEtE/rB,KAAK49C,6BAA6Bp1C,OAClCxI,KAAK87C,4BAA4Bh5C,WAAW+K,OAAO,QAAS,WAK5E,kBAAC,QAAD,CAAOW,KAAK,gCACZ,kBAAC,eAAD,CAAc+D,QAAQ,oDAE1B,kBAAC,aAAD,CAAYL,UAAW,iBACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK49C,6BACjB36C,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAK28C,yCACpB/4C,IAAMA,IAAU5D,KAAK87C,4BAA8Bl4C,KAEvD,kBAAC,QAAD,CAAO4K,KAAK,eACZ,kBAAC,eAAD,CAAc+D,QAAQ,gDAQlD,kBAAC,QAAD,CAAO3B,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMhG,MAAO,yCAC7DkG,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAKi9C,qBAAsB5uC,QAASrO,KAAK+J,MAAMoxC,gBACzD/uC,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SACNtK,KAAM,UACN4I,KAAM,SACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAMsxC,sBACrBruC,QAAUW,IACN,IAAIrH,EAAO,CACP6E,QAASnL,KAAKq+C,mBAAmBlzC,QACjCC,YAAapL,KAAKq+C,mBAAmBjzC,YACrCkzC,QAASt+C,KAAKyM,MAAMnB,IAExBtL,KAAKyN,SAAS,CACV4tC,uBAAuB,IAE3Bz5C,IAAQ4E,KAAKnC,EAAW,+BACpBiC,EACA,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAPF,uCAOO,WAAOC,GAAP,SAAAL,EAAA,0DACCK,EAAIN,KAAKO,QADV,gCAEO,EAAK4G,SAAS,CAChB4tC,uBAAuB,IAH5B,uBAKO,EAAK4B,uBALZ,6BAQC,EAAKxvC,SAAS,CACV4tC,uBAAuB,IAE3BzzC,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KAXxC,2CAPP,uDAqBGC,MAAMC,IAIL,GAHAhH,KAAKyN,SAAS,CACV4tC,uBAAuB,IAEvBr0C,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,aAS/B,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAKi9C,4BAOxC,kBAAC,WAAD,CAAU7rC,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAKq+C,mBAAoBjuC,cAAepQ,KAAK48C,4BAA6Bh5C,IAAMA,GAAQ5D,KAAKw7C,eAAiB53C,EAC1HmO,uBAAuB,GAEvB,kBAAC,YAAD,CAAWC,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,CAAYC,UAAU,UAAUC,WAAW,cAAcC,cAAe,CACpEC,WAAYrS,KAAK6L,gBACjByG,UAAW,KACXrP,YAAa,MACbqY,eAAiB3N,IACb3N,KAAKu+C,gBAAgBpzC,QAAUwC,EAAEpG,SAGrC,kBAAC,QAAD,CAAOiH,KAAK,wBACZ,kBAAC,eAAD,CAAc+D,QAAQ,oCAE1B,kBAAC,aAAD,CAAYL,UAAU,UAAUC,WAAW,cAAcC,cAAe,CACpEC,WAAYrS,KAAKs1B,gBACjBhjB,UAAW,KACXrP,YAAa,WACbqY,eAAiB3N,IACG,KAAZA,EAAEpG,MAA2B,OAAZoG,EAAEpG,WAA6B1G,IAAZ8M,EAAEpG,QAKtCvH,KAAKu+C,gBAAgB9vC,QAAUd,EAAEpG,MACjCvH,KAAKqyB,oBAAoB7pB,QAG7BxI,KAAKy7C,mBAAmB34C,WAAW+K,OAAO,QAAS,SAGvD,kBAAC,QAAD,CAAOW,KAAK,qBACZ,kBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,kBAAC,aAAD,CAAYL,UAAW,cAAeyc,YAAY,EAC9Cxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKqyB,oBACjB1uB,QAAS,KACTH,eAAe,EACfP,YAAa,UACbqP,UAAW,KACXiJ,iBAAiB,EACjBnL,cAAepQ,KAAKk8C,gCACpBt4C,IAAMA,IAAU5D,KAAKy7C,mBAAqB73C,KAE9C,kBAAC,QAAD,CAAO4K,KAAK,wBACZ,kBAAC,eAAD,CAAc+D,QAAQ,kDAQlD,kBAAC,QAAD,CAAO3B,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMhG,MAAO,iEAC7DkG,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF9C,QAASrO,KAAK+J,MAAMS,gBACpBlH,MAAM,MAAMoN,OAAQ,MACpBtE,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,gCACNtK,KAAM,UACN4I,KAAM,SACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAMsxC,sBACrBruC,QAAUW,IACN,IAAI0xC,EAA4Bz7B,YAAO,CACnC9Y,MAAO,iGACP+Y,YAAa,wUACbC,QAAS,CACL,CACItV,KAAM,WACNxB,QAAUW,IACN3N,KAAKq9C,wBACLz7C,IAAQ6F,IAAI9C,EAAe,4BAA8B3E,KAAKkL,cAAcC,QAAS,CACjF1E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAMC,GAAN,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,gCAEQ,EAAK4G,SAAS,CAChB4B,YAAazI,EAAIN,KAAKiG,OAH5B,uBAKQ,EAAK+wC,sBAAsB90C,OALnC,uBAMQ,EAAKiF,SAAS,CAChBytC,kBAAkB,IAPxB,8BAWEtzC,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KAXzC,4CALV,uDAmBKC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,SAIrC,CACIwH,KAAM,QACNxB,QAAUW,IACN0xC,EAA0BC,YAM1CD,EAA0Bt7B,UAItC,CACI7iB,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAKq9C,6BAOxC,kBAAC,WAAD,CAAUjsC,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAKkL,cAAekF,cAAepQ,KAAK6J,6BAA8BjG,IAAMA,GAAQ5D,KAAKiL,gBAAkBrH,EACvHmO,uBAAuB,GAEvB,kBAAC,YAAD,CAAWC,SAAS,cAAcC,SAAU,GACxC,kBAAC,aAAD,CAAYC,UAAU,UAAUC,WAAW,cAAcC,cAAe,CACpEC,WAAYrS,KAAK0L,sBACjB4G,UAAW,KACXrP,YAAa,QAEb,kBAAC,QAAD,CAAOuL,KAAK,wBACZ,kBAAC,eAAD,CAAc+D,QAAQ,4CAenD+C,mBA/oDSvL,IAAK,CACzBI,aAAcJ,EAAMI,aAAaf,KACjCG,WAAYQ,EAAMwL,WAAWhM,aATLiM,IACjB,CACHpG,gBAAkB9I,GAASkP,EAASrM,GAAoB7C,IACxD4G,cAAgB5G,GAASkP,EAASlM,GAAwBhD,IAC1DgJ,mBAAqBhJ,GAASkP,EAAShM,GAAwBlD,MAkpDxDgP,CAA6C2lC,IC1pD5D,MAAMzqC,GAAW,CAAEc,GAAI,2BAER,MAAMiuC,WAA4Bt9C,IAAM0T,UACnD5V,YAAYU,GACRyB,MAAMzB,GAENT,KAAK+J,MAAQ,CACToX,iBAAkB,GAClBhI,SAAU,GACVC,aAAc,GACdomC,gBAAiB,GACjBnmC,aAAc,KACdomC,iBAAkB,KAClBC,iBAAkB,KAClBC,oBAAqB,KACrBC,oBAAqB,KACrBC,2BAA2B,EAC3BC,+BAAgC,KAChC7rB,kBAAkB,EAClB8rB,qBAAsB,GACtBz1C,OAAO,EACP01C,iBAAkB,GAClBC,2BAA2B,EAC3B9vB,YAAa,GACb+vB,cAAc,EACdC,sBAAsB,GAG1BngD,KAAK+Q,UAAY,KACjB/Q,KAAKqwB,aAAe,KACpBrwB,KAAKyM,MAAQ,KACbzM,KAAKogD,sBAAwB,KAC7BpgD,KAAKuhB,eAAiB,KACtBvhB,KAAKitB,sBAAwB,KAC7BjtB,KAAKwhB,mBAAqB,KAC1BxhB,KAAK+1C,cAAgB/1C,KAAK+1C,cAAcnsC,KAAK5J,MAC7CA,KAAKwwB,aAAexwB,KAAKwwB,aAAa5mB,KAAK5J,MAC3CA,KAAKqgD,YAAcrgD,KAAKqgD,YAAYz2C,KAAK5J,MACzCA,KAAK4hB,4BAA8B5hB,KAAK4hB,4BAA4BhY,KAAK5J,MACzEA,KAAKyhC,mCAAqCzhC,KAAKyhC,mCAAmC73B,KAAK5J,MACvFA,KAAK6hB,gCAAkC7hB,KAAK6hB,gCAAgCjY,KAAK5J,MACjFA,KAAKyG,QAAU,CAAE,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAC9D1G,KAAK0wB,WAAa,KACd1wB,KAAKyN,SACD,CACInD,OAAO,EACP41C,cAAc,EACdC,sBAAsB,KAIlCngD,KAAKsgD,gBAAkB,CACnB,CAAEC,MAAO,KACT,CAAEA,MAAO,KACT,CAAEA,MAAO,KACT,CAAEA,MAAO,KACT,CAAEA,MAAO,MACT,CAAEA,MAAO,MACT,CAAEA,MAAO,MACT,CAAEA,MAAO,OAIbvgD,KAAKwgD,2BAA6B,CAC9B,CAAEC,QAAS,KACX,CAAEA,QAAS,KACX,CAAEA,QAAS,KACX,CAAEA,QAAS,KACX,CAAEA,QAAS,OACX,CAAEA,QAAS,OACX,CAAEA,QAAS,MACX,CAAEA,QAAS,MACX,CAAEA,QAAS,MACX,CAAEA,QAAS,OAGfzgD,KAAK8R,SAAW,CACZ4hB,MAAO,CAAEpoB,GAAI,MACbo1C,MAAO,CAAEp1C,GAAI,MACbygB,UAAW,CAAEzgB,GAAI,MACjBgiB,aAAc,KACdqzB,oBAAoB,EACpBC,wBAAyB,MAG7B5gD,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAKm6C,eAAiB,IAAI/xC,IACtB,CACIuD,SAAU,MACVQ,UAAU,EACVgQ,SAAU,GACV9T,MAAOuD,sBAAY,CACf3F,IAAK,WACL+B,QAAS3D,EAAW,iCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK+hB,YAAc,CAAEC,QAAS,GAC9BhiB,KAAKiiB,oBAAsB,IAAI7Z,IAC3B,CACIC,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAK+hB,YACjB/Z,QAAS3D,EAAW,iCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKgmC,gBAAkB,CACnBhkB,QAAS,EACTgK,YAAa,GAGjBhsB,KAAKguB,uBAAyB,IAAI5lB,IAC9B,CACIC,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKgmC,gBACjBh+B,QAAS3D,EAAW,kCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAOrEyrB,WAAWxkB,GACP,IAAI/G,EAAMvF,KAAKE,MAAMoM,EAAE0F,QAAQ3L,UAC1Bd,EAAIC,SAKLe,YAAO,iHAA8E,UAAW,KAChGkL,YAAM,kNAA0K,SAChL9S,KAAK4wB,cACLjjB,EAAEC,UAAUumB,UAPZvsB,YAAO,8CAAmChB,EAAIE,aAAc,QAAS,KACrE6G,EAAEC,UAAUumB,SAUpBvD,cACI5wB,KAAKqwB,aAAavtB,SAAS4M,UAG/BqmC,gBACIn0C,IAAQ6F,IAAIpD,EAAW,2BACnB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKu4C,IACEA,EAAS54C,KAAKO,UACd7G,KAAKyN,SAAS,CACV0L,SAAU+lC,EAAS54C,KAAKiG,OAE5BvM,KAAK8R,SAAW,CACZxG,GAAI,EACJ8nB,SAAU,EACVytB,aAAc,EACdlG,aAAc,GAElB36C,KAAKyN,SAAS,CACVnD,OAAO,EACPiP,iBAAkB,KAClBF,aAAc,KACdomC,iBAAkB,KAClBE,oBAAqB,KACrBC,oBAAqB,KACrBG,qBAAsB,QAOpCvvB,aAAa7iB,GAAI,IAAD,2HAGJ,QADRlB,EAAQ,EAAKA,aACa5L,IAAV4L,EAHJ,uBAIdqG,YAAM,6BAAsB,cAJd,iCAQd,EAAKiP,YAAYC,QAAUvV,EAAM2mB,SACjC,EAAK4S,gBAAgB5S,SAAW3mB,EAAM2mB,SACtC,EAAK4S,gBAAgBha,YAAcvf,EAAMo0C,aACzC,EAAK/+B,gBAAgBtZ,OAXP,UAYR,EAAKsZ,gBAAgBtZ,OAZb,yBAaR,EAAKyZ,oBAAoBzZ,OAbjB,yBAcR,EAAKwlB,uBAAuBxlB,OAdpB,yBAeR,EAAK+Y,eAAeze,WAAW+K,OAAO,QAASpB,EAAM2mB,UAf7C,yBAgBR,EAAK5R,mBAAmB1e,WAAW+K,OAAO,QAASpB,EAAMo0C,cAhBjD,yBAiBR,EAAK5zB,sBAAsBnqB,WAAW+K,OAAO,QAASpB,EAAMq0C,UAjBpD,yBAmBR,EAAKrzC,SAAS,CAChBkyC,oBAAqBlzC,EAAMq0C,SAC3BznC,aAAc5M,EAAM2mB,SACpBqsB,iBAAkBhzC,EAAMkuC,aACxBphC,iBAAkB9M,EAAMo0C,aACxBjB,oBAAqB,KACrBG,qBAAsB,GACtBE,0BAAkD,IAAvBxzC,EAAMo0C,cAA6C,IAAvBp0C,EAAMo0C,aAC7Dv2C,OAAO,EACP41C,gBAAoE,QAAtD,EAAK1+B,mBAAmB1e,WAAW+K,OAAO,QAA0E,QAAtD,EAAK2T,mBAAmB1e,WAAW+K,OAAO,WA5B5G,8CAiCtB0G,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,OACNF,KAAM,MACNI,QAAShN,KAAK+1C,gBAGtB,CACI70C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,aACNF,KAAM,OACNI,QAAShN,KAAKwwB,eAGtB,CACItvB,SAAU,QACVwL,OAAQ,mBACRC,QAAS,CACL1J,YAAa,OACbU,QAAS,KACTqL,gBAAiB,EACjBhM,YAAa,OACbiM,eAAe,EACfC,aAAa,EACbV,KAAM,4CACN5B,KAAM,SACNxJ,MAAO,CACH,CAAE,KAAQ,2CAAqB,GAAM,EAAG,KAAQ,UAChD,CAAE,KAAQ,2CAAqB,GAAM,EAAG,KAAQ,UAChD,CAAE,KAAQ,2CAAqB,GAAM,EAAG,KAAQ,UAChD,CAAE,KAAQ,2CAAqB,GAAM,EAAG,KAAQ,UAChD,CAAE,KAAQ,4CAAsB,GAAM,EAAG,KAAQ,UACjD,CAAE,KAAQ,4CAAsB,GAAM,EAAG,KAAQ,UACjD,CAAE,KAAQ,4CAAsB,GAAM,EAAG,KAAQ,UACjD,CAAE,KAAQ,4CAAsB,GAAM,EAAG,KAAQ,WAErD29C,cAAgBpzC,IACZ,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,qEAAuD,cACrEvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAKnC,EAAW,kDAAoDoI,EAAMq0C,SAC9E,KACA,CACIr6C,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAK4wB,cAGLhpB,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,cAnBtGgM,YAAM,6BAAsB,eAyBpC3P,YAAcwK,IACV,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAItB,OAAQkB,EAAEtL,SAAS8M,IACf,KAAK,EACDnP,KAAKqgD,YAAY5zC,EAAMq0C,SAAU,KACjC,MACJ,KAAK,EACD9gD,KAAKqgD,YAAY5zC,EAAMq0C,SAAU,KACjC,MACJ,KAAK,EACD9gD,KAAKqgD,YAAY5zC,EAAMq0C,SAAU,KACjC,MACJ,KAAK,EACD9gD,KAAKqgD,YAAY5zC,EAAMq0C,SAAU,KACjC,MACJ,KAAK,EACD9gD,KAAKqgD,YAAY5zC,EAAMq0C,SAAU,MACjC,MACJ,KAAK,EACD9gD,KAAKqgD,YAAY5zC,EAAMq0C,SAAU,MACjC,MACJ,KAAK,EACD9gD,KAAKqgD,YAAY5zC,EAAMq0C,SAAU,MACjC,MACJ,KAAK,EACD9gD,KAAKqgD,YAAY5zC,EAAMq0C,SAAU,WA1BrChuC,YAAM,6BAAsB,iBAkC5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAK4wB,iBAIjB,CACI1vB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrCE,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CyZ,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDwhC,YAAYp0B,EAAgBqB,GAEXpa,YAAQ,qEAAuD,cACrEvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAKnC,EAAW,gDAAkD4nB,EAAiB,IAAMqB,EAC7F,KACA,CACI7mB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAK4wB,cAGLhpB,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,SAM1G+a,gCAAgClU,GAC5B3N,KAAKwhB,mBAAqB7T,EAAEC,UAGhCgU,4BAA4BjU,GACxB3N,KAAKuhB,eAAiB5T,EAAEC,UAG5B6zB,mCAAmC9zB,GAC/B3N,KAAKitB,sBAAwBtf,EAAEC,UAEnC7K,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKd,GAAG,0BACJ,yBAAKc,UAAU,OACX,yBAAKA,UAAU,aACVjQ,KAAK+J,MAAMomB,cAGpB,yBAAKlgB,UAAU,OACX,yBAAKA,UAAU,aAEX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKm6C,eACjB7lC,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,WACR4Q,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzBrY,IAAMA,GAAQ5D,KAAKqwB,aAAezsB,GAElC,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,kBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,kBAAC,eAAD,CAAc5T,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,WAAYiD,QAAQ,gBAAW9G,SAAS,IAC3D,kBAAC,SAAD,CAAQ6D,UAAW,eAAgBiD,QAAQ,gBAAgB9G,SAAS,IACpE,kBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,gBAAW9G,SAAS,IAC3D,kBAAC,SAAD,CAAQ6D,UAAW,YAAaiD,QAAQ,eACxC,kBAAC,SAAD,CAAQjD,UAAW,eAAgBiD,QAAQ,0BAC3C,kBAAC,SAAD,CAAQjD,UAAW,gBAAiBiD,QAAQ,eAC5C,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,kBAKpD,kBAAC,QAAD,CAAOvE,WAAW,EAAMC,SAAS,EAAOC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACtFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,0BACNtK,KAAM,UACN4I,KAAM,0BACNF,KAAM,UACN4F,SAAUxS,KAAK+J,MAAMo2C,qBACrB9xC,QAASrO,KAAK+J,MAAMm2C,aACpBlzC,QAAS,KACLhN,KAAKyN,SAAS,CACV0yC,sBAAsB,IAE1B,MAAM75C,EAAO,CACTylB,UAAW/rB,KAAKwhB,mBAAmB1e,WAAW+K,OAAO,QACrDoe,eAAgBjsB,KAAK+J,MAAM41C,qBAE/B/9C,IAAQ4E,KAAKnC,EAAW,6BACpBiC,EACA,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACH5G,KAAKyN,SAAS,CACV0yC,sBAAsB,IAEtBv5C,EAAIN,KAAKO,SACT7G,KAAKyN,SAAS,CACVnD,OAAO,IAEXtK,KAAK4wB,eAGLhpB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAI1CC,MAAMiH,IACHhO,KAAKyN,SAAS,CACV0yC,sBAAsB,IAE1Bv4C,YAAOoG,EAAO,QAAS,UAM3C,CACI9M,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,kDACNtK,KAAM,UACN4I,KAAM,kDACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAMk2C,0BACnBjzC,QAAUW,IACR,GAAuC,OAAnC3N,KAAK+J,MAAM41C,oBAA8B,CAC5BzsC,YAAQ,oIAAyF,yBACvGvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAKnC,EAAW,2CAA6CrE,KAAK+J,MAAM41C,oBAC5E,KACA,CACIl5C,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,SACT7G,KAAKyN,SAAS,CACVnD,OAAO,IAEXtK,KAAK4wB,eAGLhpB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,cAQvDgM,YAAM,6CAA8B,aAMpD,CACI5R,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IAER/L,IAAQ4E,KAAKnC,EAAW,mCAAqCrE,KAAK+J,MAAM41C,oBAAsB,IAAM3/C,KAAK+J,MAAMsP,aAC3GrZ,KAAK+J,MAAMg2C,qBACX,CACIt5C,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,SACT7G,KAAKyN,SAAS,CACVnD,OAAO,IAEXtK,KAAK4wB,eAGLhpB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAG5CC,MAAMC,IACL,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,aAU/B,CACInS,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,QAAStK,KAAM,SAAU4I,KAAM,QAASF,KAAM,SAClDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,kBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,UACjB,kBAAC,YAAD,CAAWE,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,SACnD,kBAAC,aAAD,CAAYjD,UAAW,WACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8hB,gBACjBte,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAK4hB,4BACpBhe,IAAMA,IAAU5D,KAAKuhB,eAAiB3d,GACtC0X,eAAiB3N,IACb3N,KAAKyN,SAAS,CACV4L,aAAc1L,EAAEpG,QAEY,OAA5BvH,KAAK+J,MAAMsP,eACXrZ,KAAKwhB,mBAAmB1e,WAAW+K,OAAO,QAAS,MACnD7N,KAAKitB,sBAAsBnqB,WAAW+K,OAAO,QAAS,MACtD7N,KAAKgmC,gBAAgBhkB,QAAUrU,EAAEpG,MACjCvH,KAAK+hB,YAAYC,QAAUrU,EAAEpG,MAC7BvH,KAAKiiB,oBAAoBzZ,WAIrC,kBAAC,QAAD,CAAOgG,KAAK,gBAEhB,kBAAC,aAAD,CAAY0D,UAAW,eACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKiiB,oBACjBze,eAAe,EACfP,YAAa,eACbqP,UAAW,eACXlC,cAAepQ,KAAK6hB,gCACpBje,IAAMA,IAAU5D,KAAKwhB,mBAAqB5d,GAC1C0X,eAAiB3N,IACb,GAAgB,KAAZA,EAAEpG,OAA4B,OAAZoG,EAAEpG,MACpB,OAGJvH,KAAKitB,sBAAsBnqB,WAAW+K,OAAO,QAAS,MACtD,MAAMmzC,EAAgBhhD,KAAKwhB,mBAAmB1e,WAAW+K,OAAO,QAEhE7N,KAAKyN,SAAS,CACV8L,iBAAkB5L,EAAEpG,MACpB04C,0BAA6C,YAAlBe,IAIK,OAAhChhD,KAAK+J,MAAMwP,uBACqB1Y,IAAhCb,KAAK+J,MAAM21C,kBACiB,OAA5B1/C,KAAK+J,MAAMsP,mBACiBxY,IAA5Bb,KAAK+J,MAAMsP,eAEXrZ,KAAKgmC,gBAAgBha,YAAcre,EAAEpG,MACrCvH,KAAKguB,uBAAuBxlB,WAKxC,kBAAC,QAAD,CAAOgG,KAAK,2BAEhB,kBAAC,aAAD,CAAY0D,UAAW,WACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKguB,uBACjBxqB,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAKyhC,mCACpB79B,IAAMA,IAAU5D,KAAKitB,sBAAwBrpB,GAC7C0X,eAAiB3N,IACG,KAAZA,EAAEpG,OAA4B,OAAZoG,EAAEpG,OAIxBvH,KAAKyN,SAAS,CAAEkyC,oBAAqBhyC,EAAEpG,WAI/C,kBAAC,QAAD,CAAOiH,KAAK,gBAEhB,kBAAC,aAAD,CAAY0D,UAAW,eACnBC,WAAW,cACXC,cAAe,CACXhP,MAAOpD,KAAKsgD,gBACZ98C,eAAe,EACf+D,MAAOvH,KAAK+J,MAAM61C,oBAClB38C,YAAa,QACbqP,UAAW,QACXgJ,eAAiB3N,IACb,GAAgB,KAAZA,EAAEpG,OAA4B,OAAZoG,EAAEpG,QAIxBvH,KAAKyN,SAAS,CAAEmyC,oBAAqBjyC,EAAEpG,QAEA,OAAnCvH,KAAK+J,MAAM61C,qBAA8B,CACzC,MAAMx5C,EAAM/B,EAAW,kCAAoCrE,KAAK+J,MAAM61C,oBAAsB,IAAM5/C,KAAK+J,MAAM41C,oBAE7G/9C,IAAQ6F,IAAIrB,EAAK,CACbK,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CAAEsyC,qBAAsBn5C,EAAIN,KAAKiG,OAE/C3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,WAO/D,kBAAC,QAAD,CAAO0H,KAAK,kCAGpB,kBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,sDACnD,kBAAC,aAAD,CAAYjD,UAAW,qBAAsBC,WAAW,aAAaC,cAAe,CAChFkJ,eAAiB3N,IACb3N,KAAKyN,SAAS,CACVoyC,0BAA2BlyC,EAAEpG,WAIrC,kBAAC,QAAD,CAAOiH,KAAK,2CAEhB,kBAAC,aAAD,CAAY0D,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWvvB,EAAW,oDAAsDrE,KAAK+J,MAAM41C,oBAAsB,uBAAyB3/C,KAAK+J,MAAM81C,0BACjJhsB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpB2tB,OAAQ,IACRnQ,YAAa,IACbjB,KAAM,SACNmP,WAAYnyB,KAAKmyB,aAErB,kBAAC,QAAD,CAAO3jB,KAAK,2CAIpB,kBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,mDACnD,kBAAC,aAAD,CAAYjD,UAAW,0BACnBC,WAAW,cACXC,cAAe,CACXhP,MAAOpD,KAAKwgD,2BACZh9C,eAAe,EACf+D,MAAOvH,KAAK+J,MAAM+1C,+BAClB78C,YAAa,UACbqP,UAAW,UACXgJ,eAAiB3N,IACb3N,KAAKyN,SAAS,CACVqyC,+BAAgCnyC,EAAEpG,WAI9C,kBAAC,QAAD,CAAOiH,KAAK,iCAEhB,kBAAC,aAAD,CAAY2D,WAAW,WACnBC,cAAe,CACX5D,KAAM,mCACNtK,KAAM,UACN4I,KAAM,mCACNF,KAAM,aACNI,QAAS,KACL,MAAMszC,EAAkB,GAEIW,MAU5BX,EAAgB99C,SAVYy+C,EAUejhD,KAAK+J,MAAM+1C,+BAT7B,QAAjBmB,EACO,CAAC,CAAE3zB,aAAc,KAAO,CAAEA,aAAc,MACvB,QAAjB2zB,EACA,CAAC,CAAE3zB,aAAc,KAAO,CAAEA,aAAc,MAExC,CAAC,CAAEA,aAAc2zB,MAMhCr/C,IAAQ4E,KACJnC,EAAW,uCAAyCrE,KAAK+J,MAAM41C,oBAC/DW,EACA,CACI75C,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT5F,OAAOC,SAASC,KAAOgE,EAAeyB,EAAIN,KAAKiG,KAE/C3E,YAAO,GAAI,QAAS,YAShD,kBAAC,YAAD,CAAWoK,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,uBACnD,kBAAC,aAAD,KACI,kBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK+J,MAAMg2C,qBACvBzrC,qBAAqB,EACrB3Q,QAAQ,SACRL,MAAM,OACNy8B,kBAAoBpyB,IACK,YAAjBA,EAAEy5B,YAA4C,QAAhBz5B,EAAEuE,YAGhCvE,EAAEyE,cAAc4B,QAAW5R,IACC,MAApBA,EAAMA,MAAM6D,KAAmC,MAApB7D,EAAMA,MAAM6D,KAAmC,MAApB7D,EAAMA,MAAM6D,KAAmC,MAApB7D,EAAMA,MAAM6D,KAAmC,MAApB7D,EAAMA,MAAM6D,KAAmC,MAApB7D,EAAMA,MAAM6D,KAAmC,MAApB7D,EAAMA,MAAM6D,MAC9K0H,EAAEuzC,SAAS9+C,EAAMA,MAAM6D,KACvBiV,WAAW,KACP,MAAMimC,EAAYxzC,EAAEC,UAAUwzC,iBAAiBzzC,EAAEgH,IAAI1O,KAAO,EACtDo7C,EAAc1zC,EAAEC,UAAU0zC,sBAAsB,OAClDH,EAAYxzC,EAAEC,UAAUjG,eACxBgG,EAAEC,UAAU2zC,gBACZ5zC,EAAEC,UAAU4zC,SAASL,EAAWE,GAChC1zC,EAAEC,UAAU05B,UAAU6Z,EAAWE,EAAa,MAEnD,SA2DnB,kBAAC,UAAD,CAASvsC,KAAM,OAAQE,UAAU,EAAOC,eAAe,EAAM0iB,eAAe,IAC5E,kBAAC,qBAAD,CACIJ,gBAAgB,EAChBC,eAAe,YACfC,kBAAkB,WACtB,kBAAC,YAAD,CAAWviB,SAAS,IACpB,kBAAC,eAAD,CAAcA,SAAS,IACvB,kBAAC,SAAD,CAAQiH,SAAU,MAClB,kBAAC,SAAD,CAAQjK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,kBAAC,SAAD,CAAQ6D,UAAW,UAAWkD,cAAc,EAAOD,QAAQ,OAAO7R,MAAM,QACxE,kBAAC,SAAD,CAAQ4O,UAAW,YAAakD,cAAc,EAAOD,QAAQ,QAAQ9G,SAAS,IAC9E,kBAAC,SAAD,CAAQ6D,UAAW,eAAgBkD,cAAc,EAAO9R,MAAM,MAAM6R,QAAQ,qBAC5E,kBAAC,SAAD,CAAQjD,UAAW,SAAUkD,cAAc,EAAO9R,MAAM,MAAM6R,QAAQ,UAAUE,SAAS,WACzF,kBAAC,SAAD,CAAQnD,UAAW,MAAOiD,QAAQ,MAAM7R,MAAM,KAAK8R,cAAc,EAAMC,SAAS,WAChF,kBAAC,SAAD,CAAQnD,UAAW,MAAOiD,QAAQ,MAAM7R,MAAM,KAAK+R,SAAS,WAC5D,kBAAC,SAAD,CAAQnD,UAAW,MAAOiD,QAAQ,MAAM7R,MAAM,KAAK+R,SAAS,WAC5D,kBAAC,SAAD,CAAQnD,UAAW,qBAAsB5O,MAAM,MAAM6R,QAAQ,+BAAqBE,SAAS,WAC3F,kBAAC,SAAD,CAAQnD,UAAW,UAAWiD,QAAQ,OAAO7R,MAAM,MAAM+R,SAAS,mBASlG,kBAAC,aAAD,CACIgf,aAAa,kBACb7jB,SAAUA,GACVnC,QAASrO,KAAK+J,MAAMkqB,iBACpBK,eAAe,EACfzjB,SAAS,EACT0jB,UAAU,EACV5jB,qBAAqB,QC15BjD,MAAMH,GAAW,CAAEc,GAAI,UAgBvB,MAAMmwC,WAAuBx/C,IAAM0T,UAC/B5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTkqB,kBAAkB,EAClB3pB,OAAO,EACPo3C,YAAY,EACZC,YAAY,EACZC,mBAAmB,EACnBC,qBAAsB,wBACtBC,0BAA0B,EAC1BC,qBAAsB,cACtBC,0BAA0B,EAC1BC,0BAA2B,cAC3BC,+BAA+B,EAC/BC,eAAgB,iBAChBC,WAAY,UACZC,gBAAgB,EAChBC,oBAAoB,EACpBlyB,iBAAiB,EACjBmyB,sBAAuB,KACvBC,eAAgB,KAChBx1B,oBAAoB,GAExBhtB,KAAKqwB,aAAe,KACpBrwB,KAAKyiD,UAAY,KACjBziD,KAAK0iD,kBAAoB,KACzB1iD,KAAK2iD,YAAc,KACnB3iD,KAAK4iD,cAAgB,KACrB5iD,KAAKuhB,eAAiB,KACtBvhB,KAAK6iD,gBAAkB,KACvB7iD,KAAKitB,sBAAwB,KAC7BjtB,KAAK8iD,uBAAyB,KAC9B9iD,KAAK+iD,mBAAqB,KAC1B/iD,KAAKwhB,mBAAqB,KAC1BxhB,KAAKgjD,cAAgB,KACrBhjD,KAAKijD,mBAAqB,KAC1BjjD,KAAKkjD,iBAAmB,KACxBljD,KAAK8R,SAAW,CACZ4hB,MAAO,CAAEpoB,GAAI,GACb63C,OAAQ,CAAE73C,GAAI,GACd83C,aAAc,CAAE93C,GAAI,GACpB+3C,cAAe,CAAE/3C,GAAI,GACrBygB,UAAW,CAAEzgB,GAAI,GACjBovC,UAAW,CAAEpvC,GAAI,GACjBorB,MAAO,CAAEprB,GAAI,MACbg4C,gBAAiB,IACjBC,aAAc,EACd3uB,SAAU,GACV4uB,WAAW,GAEfxjD,KAAKyjD,mBAAqB,KAC1BzjD,KAAK0jD,aAAe,CAChB,CAAEp4C,GAAI,EAAGuE,IAAK,cACd,CAAEvE,GAAI,EAAGuE,IAAK,gBACd,CAAEvE,GAAI,EAAGuE,IAAK,YACd,CAAEvE,GAAI,EAAGuE,IAAK,QACd,CAAEvE,GAAI,EAAGuE,IAAK,mBACd,CAAEvE,GAAI,EAAGuE,IAAK,wCACd,CAAEvE,GAAI,EAAGuE,IAAK,4BACd,CAAEvE,GAAI,EAAGuE,IAAK,6DACd,CAAEvE,GAAI,EAAGuE,IAAK,wDACd,CAAEvE,GAAI,EAAGuE,IAAK,mCACd,CAAEvE,GAAI,GAAIuE,IAAK,eAGnB7P,KAAK2jD,cAAgB,CACjBr4C,GAAI,EACJ+sC,GAAI,CAAE/sC,GAAI,GACVitC,KAAM,CAAEjtC,GAAI,GACZmiB,UAAW,EACXm2B,WAAY,KACZl9B,SAAU,KACVsM,KAAM,KACN9Y,IAAK,MAITla,KAAK+Q,UAAY,KACjB/Q,KAAK6jD,eAAiB,KACtB7jD,KAAKyM,MAAQ,KACbzM,KAAK8jD,aAAe,EACpB9jD,KAAK+jD,gBAAkB,GACvB/jD,KAAKgkD,SAAW,GAChBhkD,KAAKmZ,SAAW,GAChBnZ,KAAKyG,QAAU,CAAE,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAE9D1G,KAAK0wB,WAAa,KACd1wB,KAAKyN,SAAS,CAAEnD,OAAO,EAAO8lB,iBAAiB,KAGnDpwB,KAAKikD,gBAAkB,KACnBjkD,KAAKyN,SAAS,CAAEi0C,YAAY,EAAOtxB,iBAAiB,KAGxDpwB,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAKkkD,gBAAkBlkD,KAAKkkD,gBAAgBt6C,KAAK5J,MACjDA,KAAKmkD,kBAAoBnkD,KAAKmkD,kBAAkBv6C,KAAK5J,MACrDA,KAAKokD,YAAcpkD,KAAKokD,YAAYx6C,KAAK5J,MACzCA,KAAKqkD,WAAarkD,KAAKqkD,WAAWz6C,KAAK5J,MACvCA,KAAKskD,gBAAkBtkD,KAAKskD,gBAAgB16C,KAAK5J,MACjDA,KAAKukD,gBAAkBvkD,KAAKukD,gBAAgB36C,KAAK5J,MACjDA,KAAKwkD,SAAWxkD,KAAKwkD,SAAS56C,KAAK5J,MACnCA,KAAKykD,aAAezkD,KAAKykD,aAAa76C,KAAK5J,MAC3CA,KAAK0kD,mBAAqB1kD,KAAK0kD,mBAAmB96C,KAAK5J,MACvDA,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAK2kD,oBAAsB3kD,KAAK2kD,oBAAoB/6C,KAAK5J,MACzDA,KAAK4kD,WAAa5kD,KAAK4kD,WAAWh7C,KAAK5J,MACvCA,KAAKoQ,cAAgBpQ,KAAKoQ,cAAcxG,KAAK5J,MAC7CA,KAAK6kD,yBAA2B7kD,KAAK6kD,yBAAyBj7C,KAAK5J,MACnEA,KAAK8kD,2BAA6B9kD,KAAK8kD,2BAA2Bl7C,KAAK5J,MACvEA,KAAKyhC,mCAAqCzhC,KAAKyhC,mCAAmC73B,KAAK5J,MACvFA,KAAK+kD,oCAAsC/kD,KAAK+kD,oCAAoCn7C,KAAK5J,MACzFA,KAAK4hB,4BAA8B5hB,KAAK4hB,4BAA4BhY,KAAK5J,MACzEA,KAAKglD,6BAA+BhlD,KAAKglD,6BAA6Bp7C,KAAK5J,MAC3EA,KAAK6hB,gCAAkC7hB,KAAK6hB,gCAAgCjY,KAAK5J,MACjFA,KAAKilD,gCAAkCjlD,KAAKilD,gCAAgCr7C,KAAK5J,MACjFA,KAAKklD,uBAAyBllD,KAAKklD,uBAAuBt7C,KAAK5J,MAC/DA,KAAKmlD,gCAAkCnlD,KAAKmlD,gCAAgCv7C,KAAK5J,MACjFA,KAAKolD,8BAAgCplD,KAAKolD,8BAA8Bx7C,KAAK5J,MAC7EA,KAAKqlD,gCAAkCrlD,KAAKqlD,gCAAgCz7C,KAAK5J,MACjFA,KAAKslD,2BAA6BtlD,KAAKslD,2BAA2B17C,KAAK5J,MACvEA,KAAKulD,eAAiBvlD,KAAKulD,eAAe37C,KAAK5J,MAC/CA,KAAKwlD,+BAAiCxlD,KAAKwlD,+BAA+B57C,KAAK5J,MAC/EA,KAAKyzB,mBAAqBzzB,KAAKyzB,mBAAmB7pB,KAAK5J,MACvDA,KAAK88C,cAAgB98C,KAAK88C,cAAclzC,KAAK5J,MAC7CA,KAAK+8C,cAAgB/8C,KAAK+8C,cAAcnzC,KAAK5J,MAE7CA,KAAKs1B,gBAAkB,IAAIltB,IACvB,CACI+T,SAAU,IACVhQ,UAAU,EACV9D,MAAOuD,sBAAY,CACf5D,QAAS3D,EAAW,iBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKylD,aAAe,IAAIr9C,IACpB,CACIG,cAAc,EACd4D,UAAU,EACV9D,MAAOuD,sBAAY,CACf5D,QAAS3D,EAAW,cACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK0lD,SAAW,CAAEC,KAAM,GACxB3lD,KAAK4lD,eAAiB,IAAIx9C,IACtB,CACIG,cAAc,EACd4D,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAK0lD,SACjB19C,QAAS3D,EAAW,gBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf5D,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK+hB,YAAc,CAAEC,QAAS,GAC9BhiB,KAAKiiB,oBAAsB,IAAI7Z,IAC3B,CACIC,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAK+hB,YACjB/Z,QAAS3D,EAAW,iCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKgmC,gBAAkB,CACnBhkB,QAAS,EACTgK,YAAa,EACbC,eAAgB,GAGpBjsB,KAAKguB,uBAAyB,IAAI5lB,IAC9B,CACI2G,OAAQ,CAAC,sBAAuB,KAAK,GACrC5C,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAKgmC,gBACjBh+B,QAAS3D,EAAW,kCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK6lD,aAAe,CAAE7jC,QAAS,GAE/BhiB,KAAK8lD,0BAA4B,IAAI19C,IACjC,CACI2G,OAAQ,CAAC,sBAAuB,KAAK,GACrC5C,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAK6lD,aACjB79C,QAAS3D,EAAW,qCACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKy9C,oBAAsB,IAAIr1C,IAC3B,CACI+D,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAKgmC,gBACjBh+B,QAAS3D,EAAW,4BACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKkuB,eAAiB,EAEtBluB,KAAK+lD,kCAAoC,IAAI39C,IACzC,CACIC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,0CACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAOrEq2C,gBACI/8C,KAAKyN,SAAS,CACVwmB,kBAAkB,IAI1B6oB,gBACI98C,KAAKyN,SAAS,CACVwmB,kBAAkB,IAK1B1f,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,SAAU0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CACnEzI,KAAM,UACN4I,KAAM,sBACNF,KAAM,SACN4B,KAAM,sBACNH,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzBiE,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKkkD,kBAGtB,CACIhjD,SAAU,SAAU0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CACnEzI,KAAM,UAAW4I,KAAM9M,KAAK+J,MAAMo4C,eAAgBv1C,KAAM,YACxD4B,KAAMxO,KAAK+J,MAAMo4C,eACjB3vC,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKmkD,oBAGtB,CACIjjD,SAAU,SAAU0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CACnEzI,KAAM,UAAW4I,KAAM9M,KAAK+J,MAAMq4C,WAAYx1C,KAAM,YACpD4B,KAAMxO,KAAK+J,MAAMq4C,WACjB5vC,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKokD,cAGtB,CACIljD,SAAU,SACVwL,OAAQ,mBACRkC,aAAc,OACdjC,QAAS,CACL1J,YAAa,OACbU,QAAS,QACT2O,UAAW,QAEXrD,eAAe,EACf3L,MAAO,IACPkL,KAAM,WACNpL,MAAO,CACH,CAAE4f,KAAM,wBAAezb,MAAO,GAC9B,CAAEyb,KAAM,cAAezb,MAAO,GAC9B,CAAEyb,KAAM,cAAezb,MAAO,GAC9B,CAAEyb,KAAM,gBAAiBzb,MAAO,IAEpCpE,YAAcwK,IACV,OAAQA,EAAEtL,SAASkF,OACf,KAAK,EACDvH,KAAKqkD,aACL,MACJ,KAAK,EACDrkD,KAAKskD,kBACL,MACJ,KAAK,EACDtkD,KAAKukD,kBACL,MACJ,KAAK,EACDvkD,KAAKgmD,mBACL,MACJ,QACIp+C,YAAO,4CAAgC,UAAW,SAMtE,CACI1G,SAAU,SAAU0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CACnEzI,KAAM,UACN4I,KAAM,iBACN0B,KAAM,MACN5B,KAAM,WAEN4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAK4kD,aAGtB,CACI1jD,SAAU,SAAU0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CACnEzI,KAAM,SACN4I,KAAM,MACNF,KAAM,QACN4B,KAAM,MACNH,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzBiE,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKwkD,WAGtB,CACItjD,SAAU,SAAU0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CACnEzI,KAAM,UACN4I,KAAM,SACNF,KAAM,UAEN4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAUW,IACN3N,KAAKqwB,aAAavtB,SAAS4M,aAIvC,CACIxO,SAAU,SAAU0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CACnEzI,KAAM,UACN4I,KAAM,WACNF,KAAM,QACN4F,SAAUxS,KAAK+J,MAAMqmB,gBACrB/hB,QAAkC,iBAAxB7N,EAAQoB,QAAQ2M,KAAuD,cAA7BtN,OAAOgD,QAAQqI,UACnEU,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACDzM,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErB,MAAM61B,EAAW,CACbx3C,QAAShC,EAAMy5C,SACf5H,QAAS7xC,EAAMq0C,SACfqF,SAAU15C,EAAM05C,UAEpBvkD,IAAQ4E,KAAK7B,EAAe,gCAAiCshD,EAAU,CACnEx/C,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACT7G,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBxoB,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,OAGjCvM,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBxoB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAE5CC,MAAOC,IACNhH,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBxoB,YAAOZ,EAAK,QAAS,YAjCzB8L,YAAM,6BAAsB,iBAuC5C,CACI5R,SAAU,SAAU0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CACnEzI,KAAM,UACN4I,KAAM,sBACNF,KAAM,QACNyB,QAAuC,cAA7BpN,OAAOgD,QAAQqI,UACzBkG,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CAED,MAAMw5C,EAAW,CACbx3C,QAAShC,EAAMy5C,SACf5H,QAAS7xC,EAAMq0C,SACfqF,SAAU15C,EAAM05C,UAEpBnmD,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBxuB,IAAQ4E,KAAK7B,EAAe,mCAAoCshD,EAAU,CACtEx/C,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACT7G,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBxoB,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,OAGjCvM,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBxoB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAE5CC,MAAOC,IACNhH,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBxoB,YAAOZ,EAAK,QAAS,YAlCzB8L,YAAM,6BAAsB,iBAwC5C,CACI5R,SAAU,SACVwL,OAAQ,mBACRkC,aAAc,OACdjC,QAAS,CACL1J,YAAa,OACbU,QAAS,QACT2O,UAAW,QACXtP,YAAa,UACbiM,eAAe,EACf3L,MAAO,IACPkL,KAAM,eACNpL,MAAO,CACH,CAAE4f,KAAM,iBAAkBzb,MAAO,GACjC,CAAEyb,KAAM,mBAAezb,MAAO,GAC9B,CAAEyb,KAAM,wBAAiBzb,MAAO,GAChC,CAAEyb,KAAM,2BAAkBzb,MAAO,GACjC,CAAEyb,KAAM,wBAAiBzb,MAAO,GAChC,CAAEyb,KAAM,0BAAczb,MAAO,GAC7B,CAAEyb,KAAM,+BAAgBzb,MAAO,IAEnCpE,YAAcwK,IACV,OAAQA,EAAEtL,SAASkF,OACf,KAAK,EACDvH,KAAKomD,wBACL,MACJ,KAAK,EACDpmD,KAAKqmD,0BACL,MACJ,KAAK,EACDrmD,KAAKsmD,4BACL,MACJ,KAAK,EACDtmD,KAAKumD,6BACL,MACJ,KAAK,EACDvmD,KAAKwmD,yBACL,MACJ,KAAK,EACDxmD,KAAKymD,sBACL,MACJ,KAAK,EACDzmD,KAAK0mD,wBACL,MACJ,QACI9+C,YAAO,4CAAgC,UAAW,SAYtE,CACI1G,SAAU,SACVwL,OAAQ,mBACRkC,aAAc,OACdjC,QAAS,CACL1J,YAAa,OACbU,QAAS,QACT2O,UAAW,QAEXtP,YAAa,UACbiM,eAAe,EACf3L,MAAO,IACPkL,KAAM,oBACNpL,MAAO,CACH,CAAE4f,KAAM,wBAAoBzb,MAAO,GACnC,CAAEyb,KAAM,wBAAoBzb,MAAO,GACnC,CAAEyb,KAAM,kCAAoBzb,MAAO,GACnC,CAAEyb,KAAM,kCAAoBzb,MAAO,IAEvCpE,YAAcwK,IACV,OAAQA,EAAEtL,SAASkF,OACf,KAAK,EACDvH,KAAK2mD,wBACL,MACJ,KAAK,EACD3mD,KAAK4mD,wBACL,MACJ,KAAK,EACD5mD,KAAK6mD,wBACL,MACJ,KAAK,EACD7mD,KAAK8mD,wBACL,MACJ,QACIl/C,YAAO,4CAAgC,UAAW,SAMtE,CACI1G,SAAU,SACVwL,OAAQ,mBACRkC,aAAc,OACdjC,QAAS,CACL1J,YAAa,OACbU,QAAS,QACT2O,UAAW,QAEXtP,YAAa,UACbiM,eAAe,EACf3L,MAAO,IACPkL,KAAM,cACNpL,MAAO,CACH,CAAE4f,KAAM,mBAAezb,MAAO,GAC9B,CAAEyb,KAAM,wBAAiBzb,MAAO,GAChC,CAAEyb,KAAM,2BAAkBzb,MAAO,GACjC,CAAEyb,KAAM,2BAAoBzb,MAAO,IAEvCpE,YAAcwK,IACV,OAAQA,EAAEtL,SAASkF,OACf,KAAK,EACDvH,KAAK+mD,yBACL,MACJ,KAAK,EACD/mD,KAAKgnD,2BACL,MACJ,KAAK,EACDhnD,KAAKinD,4BACL,MACJ,KAAK,EACDjnD,KAAKknD,2BACL,MACJ,QACIt/C,YAAO,4CAAgC,UAAW,UAS9Eu/C,cACI,IAAI34B,EAAW,GAEf,OADAA,EAAYxuB,KAAKS,MAAM0J,aAAaC,iBAAmBpK,KAAK+J,MAAMijB,mBAAsBtnB,EAAgBlB,EACjGgqB,EAEXD,cACI,IAAIC,EAAW,GAEf,OADAA,EAAYxuB,KAAKS,MAAM0J,aAAaC,iBAAmBpK,KAAK+J,MAAMijB,mBAAsBvnB,EAAgBpB,EACjGmqB,EAGXC,aACI,MAAO,CACH,cAAkBzuB,KAAKS,MAAM0J,aAAaC,iBAAmBpK,KAAK+J,MAAMijB,mBAClE,UAAYhtB,KAAKS,MAAM0J,aAAakF,YACpC,UAAY7O,EAAQoB,QAAQ8E,OAG1CqgD,yBAA0B,IAAD,OACrB,MAAMt6C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,yCAA2C16C,EAAMsf,UAAY,MAAQtf,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAU,CACzIz/C,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,6DAA0DlM,EAAIN,KAAKiG,KAAO,wFAAkE,SAClJ,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpCk0C,2BAA4B,IAAD,OACvB,MAAMv6C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,yCAA2C16C,EAAMsf,UAAY,MAAQtf,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAU,CACzIz/C,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,6DAA0DlM,EAAIN,KAAKiG,KAAO,wFAAkE,SAClJ,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpCm0C,4BAA6B,IAAD,OACxB,MAAMx6C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,yCAA2C16C,EAAMsf,UAAY,MAAQtf,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAU,CACzIz/C,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,6DAA0DlM,EAAIN,KAAKiG,KAAO,wFAAkE,SAClJ,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpCo0C,2BAA4B,IAAD,OACvB,MAAMz6C,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACDzM,KAAK88C,gBACL,IAAIx2C,EAAO,CACPylB,UAAWtf,EAAMsf,UACjBtd,QAAShC,EAAMy5C,UAEnBtkD,IAAQ4E,KAAKxG,KAAKmnD,cAAgB,6BAA8B7gD,EAAM,CAClEG,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,wEAA6DlM,EAAIN,KAAKiG,KAAO,wFAAkE,SACrJ,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,YAxB7B8L,YAAM,6BAAsB,cA6BpC+zC,wBAAyB,IAAD,OACpB,MAAMp6C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,2BAA6B16C,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAU,CACjGz/C,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,kEAAqDlM,EAAIN,KAAKiG,KAAO,wFAAkE,SAC7I,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpCg0C,wBAAyB,IAAD,OACpB,MAAMr6C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,2BAA6B16C,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAW,IAAMz5C,EAAM2mB,SAAU,CACxH3sB,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,kEAAqDlM,EAAIN,KAAKiG,KAAO,wFAAkE,SAC7I,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpC8zC,wBAAyB,IAAD,OACpB,MAAMn6C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,2BAA6B16C,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAW,IAAMz5C,EAAM2mB,SAAU,CACxH3sB,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,wDAAqDlM,EAAIN,KAAKiG,KAAO,wFAAkE,SAC7I,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpC6zC,wBAAyB,IAAD,OACpB,MAAMl6C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,2BAA6B16C,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAU,CACjGz/C,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,wDAAqDlM,EAAIN,KAAKiG,KAAO,wFAAkE,SAC7I,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpCszC,wBAAyB,IAAD,OACpB,MAAM35C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,0CAA4C16C,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAU,CAChHz/C,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,oEAA4DlM,EAAIN,KAAKiG,KAAO,wFAAkE,SACpJ,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpCyzC,6BAA8B,IAAD,OACzB,MAAM95C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,0CAA4C16C,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAU,CAChHz/C,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,oFAAkElM,EAAIN,KAAKiG,KAAO,wFAAkE,SAC1J,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpC0zC,yBAA0B,IAAD,OACrB,MAAM/5C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,sCAAwC16C,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAU,CAC5Gz/C,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,2FAAwElM,EAAIN,KAAKiG,KAAO,wFAAkE,SAChK,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpC2zC,sBAAuB,IAAD,OAClB,MAAMh6C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,mCAAqC16C,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAW,IAAMz5C,EAAM6rC,MAAO,CAC7H7xC,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,gEAAqDlM,EAAIN,KAAKiG,KAAO,wFAAkE,SAC7I,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpC4zC,wBAAyB,IAAD,OACpB,MAAMj6C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,qCAAuC16C,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAW,IAAMz5C,EAAMgrC,QAAS,CACjIhxC,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,qEAAuDlM,EAAIN,KAAKiG,KAAO,wFAAkE,SAC/I,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpCuzC,0BAA2B,IAAD,OACtB,MAAM55C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,uCAAyC16C,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAW,IAAMz5C,EAAM6rC,MAAO,CACjI7xC,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,iEAAyDlM,EAAIN,KAAKiG,KAAO,wFAAkE,SACjJ,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpCwzC,4BAA6B,IAAD,OACxB,MAAM75C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,yCAA2C16C,EAAMq0C,SAAW,IAAMr0C,EAAMy5C,SAAW,IAAMz5C,EAAMgrC,QAAS,CACrIhxC,QAASzG,KAAKyuB,eACf9nB,KAFH,uCAEQ,WAAOC,GAAP,SAAAL,EAAA,sDACAK,EAAIN,KAAKO,SACT,EAAKk2C,gBACLjqC,YAAM,sEAA2DlM,EAAIN,KAAKiG,KAAO,wFAAkE,SACnJ,EAAKknB,uBAGL,EAAKspB,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,MARvC,2CAFR,uDAaKC,MAAMC,IACHhH,KAAK+8C,gBACLn1C,YAAOZ,EAAK,QAAS,QApB7B8L,YAAM,6BAAsB,cAyBpCmJ,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDgmC,yBAAyBl3C,GACrB3N,KAAK2iD,YAAch1C,EAAEC,UAGzBk3C,2BAA2Bn3C,GACvB3N,KAAK4iD,cAAgBj1C,EAAEC,UAG3Bs3C,uBAAuBv3C,GACnB3N,KAAKyiD,UAAY90C,EAAEC,UAGvBu3C,gCAAgCx3C,GAC5B3N,KAAKijD,mBAAqBt1C,EAAEC,UAGhCw3C,8BAA8Bz3C,GAC1B3N,KAAKkjD,iBAAmBv1C,EAAEC,UAG9By3C,gCAAgC13C,GAC5B3N,KAAKyjD,mBAAqB91C,EAAEC,UAGhC03C,2BAA2B33C,GACvB3N,KAAKgjD,cAAgBr1C,EAAEC,UAG3B6zB,mCAAmC9zB,GAC/B3N,KAAKitB,sBAAwBtf,EAAEC,UAGnCm3C,oCAAoCp3C,GAChC3N,KAAK8iD,uBAAyBn1C,EAAEC,UAGpCiU,gCAAgClU,GAC5B3N,KAAKwhB,mBAAqB7T,EAAEC,UAGhCgU,4BAA4BjU,GACxB3N,KAAKuhB,eAAiB5T,EAAEC,UAG5Bo3C,6BAA6Br3C,GACzB3N,KAAK6iD,gBAAkBl1C,EAAEC,UAG7Bq3C,gCAAgCt3C,GAC5B3N,KAAK+iD,mBAAqBp1C,EAAEC,UAGhCwC,cAAczC,GACV3N,KAAKqwB,aAAe1iB,EAAEC,UAG1B43C,+BAA+B73C,GAC3B3N,KAAK0iD,kBAAoB/0C,EAAEC,UAG/Bg3C,WAAWj3C,GACP,MAAMlB,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAAtB,CAKI,IAAIlG,EAAIsE,SAASu8C,cAAc,KAC/B7gD,EAAEiR,OAAS,SACXjR,EAAEpF,KAAOsL,EAAM46C,SACf9gD,EAAE+gD,aAPFx0C,YAAM,6BAAsB,cAWpCqf,WAAWxkB,GACP,MAAMjG,EAAWrG,KAAKE,MAAMoM,EAAE0F,QAAQ3L,UAClCA,EAASb,SACT7G,KAAKgkD,SAAWt8C,EAAS6E,KACzBoB,EAAEC,UAAUumB,QACZvsB,YAAO,gCAAyB,UAAW,MAG3CA,YAAO,8DAA4CF,EAASZ,aAAc,QAAS,KAI3Fy+C,eAAe53C,GACX,GAAIA,EAAEpG,MAAMiF,OAAS,EAAG,CACpB,IAAImW,EAAQhV,EAAEpG,MAAM,GACpBggD,KAAE,qBAAqBC,KAAK,oBAAmB7kC,EAAMK,OAK7D2hC,oBAAoBh3C,GAChB,IAAI/G,EAAMvF,KAAKE,MAAMoM,EAAE0F,QAAQ3L,UAC1Bd,EAAIstB,OAAOtb,MAAM/R,SAKlBe,YAAO,sBAAoB,UAAW,KACtC5H,KAAK2jD,cAAc3wB,KAAOpsB,EAAIstB,OAAOtb,MAAMrM,KAC3CoB,EAAEC,UAAUumB,UANZvsB,YAAO,0BAAyBhB,EAAIstB,OAAOtb,MAAM9R,aAAc,QAAS,KACxE6G,EAAEC,UAAUumB,SASpBqwB,WAEI,MAAM/3C,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,kEAA8D,cAC5EvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAKxG,KAAKuuB,cAAgB,6CAA+C9hB,EAAMnB,GACnF,KACA,CACI7E,QAASzG,KAAKyuB,eAEjB9nB,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKqwB,aAAavtB,SAAS4M,UAC3B1P,KAAKyzB,sBAGL7rB,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,cAlBtGgM,YAAM,6BAAsB,cAyBpCoxC,kBACIlkD,KAAK8R,SAAW,CACZ4hB,MAAO,CAAEpoB,GAAI,MACb63C,OAAQ,CAAE73C,GAAI,MACd83C,aAAc,CAAE93C,GAAI,MACpB+3C,cAAe,CAAE/3C,GAAI,MACrBygB,UAAW,CAAEzgB,GAAI,MACjBovC,UAAW,CAAEpvC,GAAI,MACjBorB,MAAO,CAAEprB,GAAI,MACbg4C,gBAAiB,IACjBC,aAAc,EACd3uB,SAAU,IAEd50B,KAAK+jD,gBAAkB,KACvB/jD,KAAK8jD,aAAe,EACpB9jD,KAAKyN,SAAS,CACVnD,OAAO,IAKfm6C,eAC0C,OAAlCzkD,KAAK8R,SAASsxC,aAAa93C,IAC/BtL,KAAKguB,uBAAuBxlB,OAAO6qB,KAAK,KACpC,MAAMo0B,EAAYznD,KAAKguB,uBAAuB5qB,QAAQmT,KAAK5H,GAAKA,EAAErD,KAAOtL,KAAK8R,SAASsxC,aAAa93C,IAAIojC,KACxG,IAAIgZ,EAAgBD,EAAU/zC,WAAW2C,UAA0C,IAAhCoxC,EAAU/zC,WAAWlH,OAAe,EAAIi7C,EAAU/zC,WAAWlH,OAAQ,GACxHxM,KAAK8jD,aAAiC,MAAlB4D,EAAwB,QAAUA,EAAgB,SAK9EhD,qBAC0C,OAAlC1kD,KAAK8R,SAASsxC,aAAa93C,IAC/B1J,IAAQ6F,IAAIzH,KAAKuuB,cAAgB,oCAAsCvuB,KAAK8R,SAASsxC,aAAa93C,GAC9F,CACI7E,QAASzG,KAAKyuB,eAEjB9nB,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAK+jD,gBAAkBn9C,EAAIN,KAAKiG,KAGhC3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAIjDq9C,oBAAqB,IAAD,2HAER,QADR13C,EAAQ,EAAKA,aACa5L,IAAV4L,EAFA,uBAGlBqG,YAAM,6BAAsB,cAHV,iCAOlB,EAAKrF,SAAS,CACV00C,eAAgB,cAChBG,oBAAoB,EACpBlyB,iBAAiB,IAVH,SAYZxuB,IAAQ6F,IAAI,EAAK0/C,cAAgB,uBAAyB16C,EAAMnB,GAClE,CACIkzC,QAAS,KACT/3C,QAAS,EAAKgoB,eAEjB9nB,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACV00C,eAAgB,iBAChB/xB,iBAAiB,IAErB,EAAKC,aAAavtB,SAAS4M,UAAU/I,KAAK,KACtC,EAAK8sB,qBACL7rB,YAAO,qCAAiC,UAAW,SAIvD,EAAK6F,SAAS,CACV00C,eAAgB,iBAChB/xB,iBAAiB,IAErBxoB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAE5CC,MAAMiH,IACL,EAAKP,SAAS,CACV00C,eAAgB,iBAChB/xB,iBAAiB,IAErBxoB,YAAO,qEAA+DoG,EAAO,QAAS,OAxC5E,6CA6CpBo2C,cAAe,IAAD,6HAEF,QADR33C,EAAQ,EAAKA,aACa5L,IAAV4L,EAFN,uBAGZqG,YAAM,6BAAsB,cAHhB,iCAOZ,EAAKrF,SAAS,CACV20C,WAAY,cACZhyB,iBAAiB,IAEjBu3B,EAAa,CACbnJ,QAAS,KACT/3C,QAAS,EAAKgoB,cAbN,UAeN7sB,IAAQ6F,IAAI,EAAK0/C,cAAgB,sCAAwC16C,EAAMnB,GACjFq8C,GACChhD,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACV20C,WAAY,UACZhyB,iBAAiB,IAErB,EAAKC,aAAavtB,SAAS4M,UAAU/I,KAAK,KACtC,EAAK8sB,qBACL7rB,YAAO,2BAAuB,UAAW,SAI7C,EAAK6F,SAAS,CACV20C,WAAY,UACZhyB,iBAAiB,IAErBxoB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAE5CC,MAAMiH,IACL,EAAKP,SAAS,CACV20C,WAAY,UACZhyB,iBAAiB,IAErBxoB,YAAO,qEAA+DoG,EAAO,QAAS,OAxClF,8CA6CpBq2C,aACI,MAAM53C,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAAtB,CAKIzM,KAAK88C,gBACL,IAAI6K,EAAa,CACbnJ,QAAS,KACT/3C,QAASzG,KAAKyuB,cAElB7sB,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,uBAAyB16C,EAAMnB,GAC5Dq8C,GACChhD,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAK+8C,gBACL/8C,KAAKqwB,aAAavtB,SAAS4M,UAAU/I,KAAK,KACtCiB,YAAO,6DAAqC,UAAW,KACvD5H,KAAKyzB,yBAKTzzB,KAAK+8C,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAG9CC,MAAMiH,IACHhO,KAAK+8C,gBACLn1C,YAAO,qEAA+DoG,EAAO,QAAS,YA3B9F8E,YAAM,6BAAsB,cAgCpCwxC,kBACI,MAAM73C,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAAtB,CAKIzM,KAAK88C,gBACL,IAAI6K,EAAa,CACbnJ,QAAS,KACT/3C,QAASzG,KAAKyuB,cAElB7sB,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,4BAA8B16C,EAAMnB,GACjEq8C,GACChhD,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAK+8C,gBACL/8C,KAAKqwB,aAAavtB,SAAS4M,UAAU/I,KAAK,KACtC3G,KAAKyzB,qBACL7rB,YAAO,mDAAqC,UAAW,SAI3D5H,KAAK+8C,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAG9CC,MAAMiH,IACHhO,KAAK+8C,gBACLn1C,YAAO,+DAAyDoG,EAAO,QAAS,YA1BxF8E,YAAM,6BAAsB,cA+BpCyxC,kBACI,MAAM93C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,4BAA8B16C,EAAMnB,GAAI,CACrEkzC,QAAS,KACT/3C,QAASzG,KAAKyuB,eAGb9nB,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAK+8C,gBACL/8C,KAAKqwB,aAAavtB,SAAS4M,UAAU/I,KAAK,KACtC3G,KAAKyzB,qBACL7rB,YAAO,kDAAyC,UAAW,SAI/D5H,KAAK+8C,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAE5CC,MAAMiH,IACLpG,YAAO,qEAA+DoG,EAAO,QAAS,KACtFhO,KAAK+8C,mBAxBbjqC,YAAM,6BAAsB,cA6BpCkzC,mBACI,MAAMv5C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,EAKW,QAAzBzM,KAAKyM,MAAMsf,UACXjZ,YAAM,iEAEN9S,KAAK88C,gBACLl7C,IAAQ6F,IAAIzH,KAAKmnD,cAAgB,6BAA+B16C,EAAMnB,GAAI,CACtEkzC,QAAS,KACT/3C,QAASzG,KAAKyuB,eAGb9nB,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAK+8C,gBACL/8C,KAAKqwB,aAAavtB,SAAS4M,UAAU/I,KAAK,KACtC3G,KAAKyzB,qBACL7rB,YAAO,kDAAyC,UAAW,SAI/D5H,KAAK+8C,gBACLn1C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAE5CC,MAAMiH,IACLpG,YAAO,qEAA+DoG,EAAO,QAAS,KACtFhO,KAAK+8C,mBA3BjBjqC,YAAM,6BAAsB,cAkCpC2gB,qBACuC,OAA/BzzB,KAAKqwB,aAAavtB,WAClB9C,KAAKqwB,aAAavtB,SAASyuB,iBAC3BvxB,KAAKqwB,aAAavtB,SAAS+K,OAAO,mBAAoB,IAI9D9K,SAAU,IAAD,OACL,OACI,kBAAC,IAAM6U,SAAP,KACI,kBAAC,aAAD,CACIyc,aAAa,kBACb7jB,SAAUA,GACVqc,SAAU7sB,KAAK+8C,cACf1uC,QAASrO,KAAK+J,MAAMkqB,iBACpBK,eAAe,EACfzjB,SAAS,EACT0jB,UAAU,EACV5jB,qBAAqB,IAEzB,yBAAKT,MAAO,CAAE6W,QAAS,QAAU5X,GAAG,SAChC,yBAAKc,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,yDAGb,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,mLAA+G,+BAGvH,yBAAKA,UAAU,MAAMC,MAAO,CAAE0P,QAAsC,cAA7B3e,OAAOgD,QAAQqI,UAA4B,GAAK,SACnF,yBAAK2D,UAAU,aACX,4MAAsI,6BAAS,6BAAS,+BAGhK,yBAAKA,UAAU,YACX,yBAAKA,UAAU,uBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,iBACNxB,QAAUW,IACN3N,KAAKmkD,wBAIjB,yBAAKl0C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,UACNxB,QAAUW,IACN3N,KAAKokD,kBAIjB,yBAAKn0C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,wBACNxB,QAAUW,IACN3N,KAAKqkD,iBAIjB,yBAAKp0C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,cACNxB,QAAUW,IACN3N,KAAKskD,sBAIjB,yBAAKr0C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,cACNxB,QAAUW,IACN3N,KAAKukD,sBAIjB,yBAAKt0C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,gBACNxB,QAAUW,IACN3N,KAAKgmD,wBAOrB,yBAAK/1C,UAAU,SACf,yBAAKA,UAAU,YACX,yBAAKA,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,wBACNxB,QAAUW,IACN3N,KAAKomD,4BAIjB,yBAAKn2C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,0BACNxB,QAAUW,IACN3N,KAAK+mD,6BAKjB,yBAAK92C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,+BACNxB,QAAUW,IACN3N,KAAKsmD,gCAIjB,yBAAKr2C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,kCACNxB,QAAUW,IACN3N,KAAKumD,iCAIjB,yBAAKt2C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,+BACNxB,QAAUW,IACN3N,KAAKwmD,6BAIjB,yBAAKv2C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,iCACNxB,QAAUW,IACN3N,KAAKymD,0BAIjB,yBAAKx2C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,sCACNxB,QAAUW,IACN3N,KAAK0mD,6BAMrB,yBAAKz2C,UAAU,SAEf,yBAAKA,UAAU,OACX,yBAAKA,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,+BACNxB,QAAUW,IACN3N,KAAKinD,gCAIjB,yBAAKh3C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,+BACNxB,QAAUW,IACN3N,KAAK4mD,4BAIjB,yBAAK32C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,yCACNxB,QAAUW,IACN3N,KAAK6mD,4BAIjB,yBAAK52C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,yCACNxB,QAAUW,IACN3N,KAAK8mD,6BAKrB,yBAAK72C,UAAU,SACf,yBAAKA,UAAU,OACX,yBAAKA,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,8BACNxB,QAAUW,IACN3N,KAAK8mD,4BAIjB,yBAAK72C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,mCACNxB,QAAUW,IACN3N,KAAKgnD,+BAIjB,yBAAK/2C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,sCACNxB,QAAUW,IACN3N,KAAKinD,gCAIjB,yBAAKh3C,UAAU,wBACX,kBAAC,SAAD,CACI/L,KAAM,UACNsK,KAAM,sCACNxB,QAAUW,IACN3N,KAAKknD,gCAKrB,yBAAKj3C,UAAU,SACf,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,SAAD,CACI5B,QAAsC,cAA7BpN,OAAOgD,QAAQqI,UACxBpI,KAAMlE,KAAK+J,MAAMijB,mBAAqB,UAAY,UAClDxe,KAAMxO,KAAK+J,MAAMijB,mBAAqB,kEAAgD,gEACtFhgB,QAAUW,IACD3N,KAAK+J,MAAMijB,oBAyBZhtB,KAAK+lD,kCAAoC,IAAI39C,IACzC,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,0CACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAKqwB,aAAavtB,SAAS+K,OAAO,aAAc7N,KAAK+lD,mCACrD/lD,KAAKqwB,aAAavtB,SAAS4M,YAtC3B1P,KAAK+lD,kCAAoC,IAAI39C,IACzC,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASvC,EAAgB,0CACzBqD,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYzG,KAAKS,MAAM0J,aAAakF,kBAOzErP,KAAKqwB,aAAavtB,SAAS+K,OAAO,aAAc7N,KAAK+lD,mCACrD/lD,KAAKqwB,aAAavtB,SAAS4M,WAwB/B1P,KAAKyN,SAAS,CACVuf,oBAAqBhtB,KAAK+J,MAAMijB,qBAGpChtB,KAAKylD,aAAe,IAAIr9C,IACpB,CACIG,cAAc,EACd4D,UAAU,EACV9D,MAAOuD,sBAAY,CACf5D,QAAShI,KAAKuuB,cAAgB,cAC9BzlB,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAUzG,KAAKyuB,kBAK3CzuB,KAAK4lD,eAAiB,IAAIx9C,IACtB,CACIG,cAAc,EACd4D,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAK0lD,SACjB19C,QAAShI,KAAKuuB,cAAgB,gBAC9BzlB,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAUzG,KAAKyuB,kBAK3CzuB,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf5D,QAAShI,KAAKuuB,cAAgB,wBAC9BzlB,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAUzG,KAAKyuB,kBAM3CzuB,KAAKiiB,oBAAsB,IAAI7Z,IAC3B,CACIC,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAK+hB,YACjB/Z,QAAShI,KAAKuuB,cAAgB,iCAC9BzlB,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAUzG,KAAKyuB,kBAK3CzuB,KAAKguB,uBAAyB,IAAI5lB,IAC9B,CACI2G,OAAQ,CAAC,sBAAuB,KAAK,GACrC5C,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAKgmC,gBACjBh+B,QAAShI,KAAKuuB,cAAgB,kCAC9BzlB,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAUzG,KAAKyuB,kBAK3CzuB,KAAK8lD,0BAA4B,IAAI19C,IACjC,CACI2G,OAAQ,CAAC,sBAAuB,KAAK,GACrC5C,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAK6lD,aACjB79C,QAAShI,KAAKuuB,cAAgB,qCAC9BzlB,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAUzG,KAAKyuB,kBAK3CzuB,KAAKy9C,oBAAsB,IAAIr1C,IAC3B,CACI+D,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAKgmC,gBACjBh+B,QAAShI,KAAKuuB,cAAgB,4BAC9BzlB,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAUzG,KAAKyuB,kBAI3CzuB,KAAKs1B,gBAAkB,IAAIltB,IACvB,CACI+T,SAAU,IACVhQ,UAAU,EACV9D,MAAOuD,sBAAY,CACf5D,QAAShI,KAAKuuB,cAAgB,iBAC9BzlB,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAUzG,KAAKyuB,qBAInC,6BAAS,6BAAS,+BAG1C,yBAAKxe,UAAU,OACX,yBAAKA,UAAU,aACX,yBAAKd,GAAG,2BACJ,kBAAC,IAAD,CACIiF,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAK+lD,kCACjBzxC,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRyM,cAAepQ,KAAKoQ,cACpBmE,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzBrY,IAAMA,GAAQ5D,KAAKqwB,aAAezsB,GAElC,kBAAC,UAAD,CAASkR,KAAM,UACf,kBAAC,aAAD,CAAWI,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,eAAgBiD,QAAQ,eAAe9G,SAAS,IACnE,kBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,gBAAW9G,SAAS,IAC3D,kBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,WAAW9G,SAAS,IAC3D,kBAAC,SAAD,CAAQ6D,UAAU,YAAYiD,QAAQ,GAClC7R,MAAO,GACP6qC,gBAAgB,EAChB/hB,cAAc,EACdC,WAAYC,KAEhB,kBAAC,SAAD,CAAQpa,UAAU,YAAYiD,QAAQ,GAClC7R,MAAO,GACP8oB,cAAc,EACd+hB,gBAAgB,EAChB9hB,WAAYslB,KAEhB,kBAAC,SAAD,CAAQz/B,UAAU,YAAYiD,QAAQ,GAClC7R,MAAO,GACP6qC,gBAAgB,EAChB/hB,cAAc,EACdC,WAAYu7B,KAEhB,kBAAC,SAAD,CAAQ11C,UAAU,YAAYiD,QAAQ,GAClC7R,MAAO,GACP6qC,gBAAgB,EAChB/hB,cAAc,EACd/d,QAAuC,cAA7BpN,OAAOgD,QAAQqI,UACzB+f,WAAYw7B,KAEhB,kBAAC,SAAD,CAAQ31C,UAAW,YAAaiD,QAAQ,eACxC,kBAAC,SAAD,CAAQjD,UAAW,gBAAiBiD,QAAQ,0BAC5C,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,oBACxC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,wBACvC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,YACrC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,iBACvC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,UACxC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,oBAAUE,SAAS,WAEzD,kBAAC,SAAD,CAAQnD,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,OAAOyyC,UAAW,OAAQ7nC,OAC7E,wBAEJ,kBAAC,SAAD,CAAQ/N,UAAW,WAAYiD,QAAQ,QAAQE,SAAS,SAAShH,SAAS,KAE9E,kBAAC,QAAD,CAAOuC,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACrFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,oCACNtK,KAAM,UACN4I,KAAM,oCACNF,KAAM,QACNhJ,IAAMA,IAAU5D,KAAK0iD,kBAAoB9+C,GACzCwM,cAAepQ,KAAKwlD,gCAExBx4C,QAAUW,IACiB3N,KAAKyjD,mBAAmB3gD,SAASgc,WACpCC,UAIhB/e,KAAK0iD,kBAAkB5/C,WAAW+K,OAAO,YAAY,GACrD7N,KAAK8R,SAASyxC,aAAevjD,KAAK8jD,aAClC9jD,KAAK8R,SAASwxC,gBAAkBtjD,KAAK+jD,gBACrC/jD,KAAK8R,SAAS8iB,SAAW50B,KAAKgkD,SAC9BhkD,KAAK8R,SAASrD,QAAUzO,KAAK8R,SAAS4kB,MAAMprB,GACL,OAAnCtL,KAAK8R,SAASuxC,cAAc/3C,SAAkDzK,IAAnCb,KAAK8R,SAASuxC,cAAc/3C,KACvEtL,KAAK8R,SAASuxC,cAAc/3C,GAAK,GAEL,OAA5BtL,KAAK8R,SAASqxC,OAAO73C,SAAkDzK,IAAnCb,KAAK8R,SAASuxC,cAAc/3C,KAChEtL,KAAK8R,SAASqxC,OAAO73C,GAAK,GAE9B1J,IAAQ4E,KAAKxG,KAAKuuB,cAAgB,6BAC9BvuB,KAAK8R,SACL,CACIrL,QAASzG,KAAKyuB,eAEjB9nB,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,0DACEK,EAAIN,KAAKO,QADX,wBAEEe,YAAO,iDAA8B,UAAW,KAChD,EAAK86C,kBAAkB5/C,WAAW+K,OAAO,YAAY,GAHvD,SAIQ,EAAKwiB,aAAavtB,SAAS4M,UAJnC,uBAKQ,EAAK+jB,qBALb,uBAMQ,EAAKhmB,SAAS,CAChBnD,OAAO,IAPb,+BAYE,EAAKo4C,kBAAkB5/C,WAAW+K,OAAO,YAAY,GACrDjG,YAAO,+BAA4BhB,EAAIN,KAAKQ,aAAc,QAAS,KAbrE,4CALV,uDAoBOC,MAAMC,IAEL,GADAhH,KAAK0iD,kBAAkB5/C,WAAW+K,OAAO,YAAY,GACjD7G,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAEN1L,YAAOZ,EAAK,QAAS,UAQ7C,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,kBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,YACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAKqlD,gCAAiCzhD,IAAMA,GAAQ5D,KAAKyjD,mBAAqB7/C,EACxHmO,uBAAuB,GAEvB,kBAAC,YAAD,CAAWC,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,oCACnD,kBAAC,aAAD,CAAYjD,UAAW,WAAYyc,YAAY,EAC3Cxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8hB,gBACjBne,QAAS,KACTH,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXiJ,iBAAiB,EACjBnL,cAAepQ,KAAK4hB,4BACpBhe,IAAMA,IAAU5D,KAAKuhB,eAAiB3d,GACtC0X,eAAiB3N,IACG,KAAZA,EAAEpG,MAA2B,OAAZoG,EAAEpG,WAA6B1G,IAAZ8M,EAAEpG,QAItCvH,KAAK+hB,YAAYC,QAAUrU,EAAEpG,MAC7BvH,KAAKgmC,gBAAgBhkB,QAAUrU,EAAEpG,MACjCvH,KAAKiiB,oBAAoBzZ,QAG7BxI,KAAKs1B,gBAAgBvmB,OAAO,MAC5B/O,KAAKs1B,gBAAgB9sB,OACrBxI,KAAK6iD,gBAAgB//C,WAAW+K,OAAO,QAAS,MAChD7N,KAAKwhB,mBAAmB1e,WAAW+K,OAAO,QAAS,MACnD7N,KAAKitB,sBAAsBnqB,WAAW+K,OAAO,QAAS,MACtD7N,KAAK8iD,uBAAuBhgD,WAAW+K,OAAO,QAAS,SAI/D,kBAAC,QAAD,CAAOW,KAAK,eACZ,kBAAC,eAAD,CAAc+D,QAAQ,mCAE1B,kBAAC,aAAD,CAAYL,UAAW,eACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKiiB,oBACjBhf,YAAa,eACbqP,UAAW,eACXlC,cAAepQ,KAAK6hB,gCACpBje,IAAMA,IAAU5D,KAAKwhB,mBAAqB5d,GAC1C0X,eAAiB3N,IACG,KAAZA,EAAEpG,MAA2B,OAAZoG,EAAEpG,QAInBvH,KAAKgmC,gBAAgBha,YAAcre,EAAEpG,MACrB,KAAZoG,EAAEpG,OACFvH,KAAK8iD,uBAAuBhgD,WAAW+K,OAAO,YAAY,GAC1D7N,KAAK6iD,gBAAgB//C,WAAW+K,OAAO,YAAY,KAGnD7N,KAAK8iD,uBAAuBhgD,WAAW+K,OAAO,YAAY,GAC1D7N,KAAK6iD,gBAAgB//C,WAAW+K,OAAO,YAAY,IAE3B,OAAxB7N,KAAK8R,SAAS4hB,OAA8C,OAA5B1zB,KAAK8R,SAASia,YAC9C/rB,KAAKguB,uBAAuBxlB,OAC5BxI,KAAK6iD,gBAAgB//C,WAAW+K,OAAO,QAAS,MAChD7N,KAAKitB,sBAAsBnqB,WAAW+K,OAAO,QAAS,MACtD7N,KAAK8iD,uBAAuBhgD,WAAW+K,OAAO,QAAS,OAG3D7N,KAAKs1B,gBAAgBvmB,OAAO,MAC5B/O,KAAKs1B,gBAAgB9sB,WAIjC,kBAAC,QAAD,CAAOgG,KAAK,0BACZ,kBAAC,eAAD,CAAc+D,QAAQ,8CAE1B,kBAAC,aAAD,CAAYL,UAAW,kBACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKguB,uBACjBzS,iBAAiB,EACjB/X,eAAe,EACfgvC,WAAY,WACZ4M,WAAY,CAAC,OAAQ,OACrBn8C,YAAc2d,GACLA,EAIMA,EAAK8tB,KAAO,MAAQ9tB,EAAK/Q,IAHzB,GAMfyC,UAAW,KACX8M,aAAc,CAAC/c,EAAUgd,EAAWC,IACzB,qBAAuBjd,EAASssC,KAAO,KAAOtsC,EAASqsC,KAAO,IAAMrsC,EAASwN,IAAM,SAE9FO,cAAepQ,KAAKyhC,mCACpB79B,IAAMA,IAAU5D,KAAKitB,sBAAwBrpB,GAC7C0X,eAAiB3N,IACb3N,KAAKs1B,gBAAgBvmB,OAAO,MAC5B/O,KAAKs1B,gBAAgB9sB,OACrBxI,KAAKykD,eACLzkD,KAAK0kD,qBACL1kD,KAAKkuB,eAAiBvgB,EAAEpG,MAExBvH,KAAKgjD,cAAclgD,WAAW+K,OAAO,YAAa7N,KAAKuuB,cAAgB,2CAA6CvuB,KAAKkuB,eAAiB,YAAcvgB,EAAEpG,OAE9H,OAAxBvH,KAAK8R,SAAS4hB,OAA8C,OAA5B1zB,KAAK8R,SAASia,YAC9C/rB,KAAKgmC,gBAAgB/Z,eAAiBhZ,MAAMjT,KAAKkuB,gBAAkB,EAAIjL,SAASjjB,KAAKkuB,gBACrFluB,KAAKguB,uBAAuBxlB,OAC5BxI,KAAKy9C,oBAAoBj1C,OACzBxI,KAAK6iD,gBAAgB//C,WAAW+K,OAAO,QAAS,MAChD7N,KAAK8iD,uBAAuBhgD,WAAW+K,OAAO,QAAS,MACvD7N,KAAK+iD,mBAAmBjgD,WAAW+K,OAAO,QAAS,UAI/D,kBAAC,QAAD,CAAOW,KAAK,eACZ,kBAAC,eAAD,CAAc+D,QAAQ,0CAE1B,kBAAC,aAAD,CAAYL,UAAW,eACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKy9C,oBACjBx6C,YAAa,MACbqP,UAAW,KACX9O,eAAe,EACf+X,iBAAiB,EACjBnL,cAAepQ,KAAKilD,gCACpBrhD,IAAMA,IAAU5D,KAAK+iD,mBAAqBn/C,GAC1C0X,eAAiB3N,IACG,KAAZA,EAAEpG,MAA2B,OAAZoG,EAAEpG,QAGnBvH,KAAKypB,UAAY9b,EAAEC,UAAUC,OAAO,oBAIhD,kBAAC,QAAD,CAAOW,KAAK,eACZ,kBAAC,eAAD,CAAc+D,QAAQ,mCAE1B,kBAAC,aAAD,CAAYL,UAAW,YACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8hB,gBACjBqG,kBAAkB,EAClB3kB,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXE,UAAU,EACVpC,cAAepQ,KAAKglD,6BACpBphD,IAAMA,IAAU5D,KAAK6iD,gBAAkBj/C,GACvC0X,eAAiB3N,IACG,OAAZA,EAAEpG,QACFvH,KAAK6lD,aAAa7jC,QAAUrU,EAAEpG,MAC9BvH,KAAK8lD,0BAA0Bt9C,WAI3C,kBAAC,QAAD,CAAOgG,KAAK,gBAEhB,kBAAC,aAAD,CAAY0D,UAAW,mBACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8lD,0BACjB39B,kBAAkB,EAClB3kB,eAAe,EACfgvC,WAAY,WACZ4M,WAAY,CAAC,OAAQ,OACrBn8C,YAAc2d,GACLA,EAIMA,EAAK8tB,KAAO,MAAQ9tB,EAAK/Q,IAHzB,GAMfuP,aAAc,CAAC/c,EAAUgd,EAAWC,IACzB,qBAAuBjd,EAASssC,KAAO,KAAOtsC,EAASqsC,KAAO,IAAMrsC,EAASwN,IAAM,SAE9F2C,UAAU,EACVF,UAAW,KACXlC,cAAepQ,KAAK+kD,oCACpBnhD,IAAMA,IAAU5D,KAAK8iD,uBAAyBl/C,KAElD,kBAAC,QAAD,CAAO4K,KAAK,oBAEhB,kBAAC,aAAD,CAAY0D,UAAW,WACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKs1B,gBACjBnZ,SAAU,IACVgM,kBAAkB,EAClBqqB,WAAY,WACZ4M,WAAY,CAAC,WAAY,aAAc,aACvC57C,eAAe,EACfP,YAAc2d,GACLA,EAIMA,EAAK8F,SAAW,MAAQ9F,EAAKmnC,MAAQ,MAAQnnC,EAAKonC,QAHlD,GAMfzsC,iBAAiB,EACjBjJ,UAAW,KACXgJ,eAAiB3N,IACG,IAAZA,EAAEpG,OACFvH,KAAK2jD,cAAgB,CACjBr4C,GAAI,EACJ+sC,GAAI,CAAE/sC,GAAI,GACVitC,KAAM,CAAEjtC,GAAI,GACZmiB,UAAW,EACXm2B,WAAY,KACZl9B,SAAU,KACVsM,KAAM,KACN9Y,IAAK,MAETla,KAAKyN,SAAS,CACV80C,sBAAuBviD,KAAKkuB,eAC5BwzB,YAAY,KAIhB1hD,KAAKgjD,cAAclgD,WAAW+K,OAAO,YAAa7N,KAAKuuB,cAAgB,2CAA6CvuB,KAAKkuB,eAAiB,YAAcvgB,EAAEpG,QAIlK6I,cAAepQ,KAAKolD,8BACpBxhD,IAAMA,IAAU5D,KAAKkjD,iBAAmBt/C,IACzC+qB,YAAY,GACf,kBAAC,QAAD,CAAOngB,KAAK,qBACZ,kBAAC,eAAD,CAAc+D,QAAQ,8BAE1B,kBAAC,aAAD,CAAYL,UAAW,YACnBC,WAAW,cACX,kBAAC,QAAD,CAAO3D,KAAK,6CAEhB,kBAAC,aAAD,CAAY0D,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAW5zB,KAAKuuB,cAAgB,2CAA6CvuB,KAAK+J,MAAMw4C,sBAAwB,YAAcviD,KAAK+J,MAAMy4C,eACzI3uB,WAAY,YACZC,cAAe9zB,KAAKyuB,aACpB2F,OAAQ,IACRnQ,YAAa,IACbjB,KAAM,SACN1H,eAAgBtb,KAAKulD,eACrBpzB,WAAYnyB,KAAKmyB,WACjB/hB,cAAepQ,KAAKslD,2BACpB1hD,IAAMA,IAAU5D,KAAKgjD,cAAgBp/C,KAEzC,kBAAC,QAAD,CAAO4K,KAAK,wCAEhB,kBAAC,aAAD,KACI,yBAAKW,GAAG,mBAAmBc,UAAU,eAK7C,kBAAC,YAAD,CAAW+B,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,wCACnD,uBAAGjF,MAAO,CAAE+3C,WAAY,SAAxB,sGAGA,uBAAG/3C,MAAO,CAAE+3C,WAAY,SAAxB,iIAGA,uBAAG/3C,MAAO,CAAE+3C,WAAY,SAAxB,gIAGA,uBAAG/3C,MAAO,CAAE+3C,WAAY,SAAxB,oKAWxB,kBAAC,QAAD,CAAOr3C,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK6jD,eAAiBjgD,EAC1FoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAKikD,gBAAiB51C,QAASrO,KAAK+J,MAAM23C,WAAYhxC,OAAQ,WACpE,OAAOzP,OAAOinD,YAAc,GAC7B5kD,MAAO,WACN,OAAOrC,OAAOknD,WAAa,GAG/B/7C,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,qBAAsBtK,KAAM,UAAW4I,KAAM,qBAAsBF,KAAM,QAC7EI,QAAUW,IACe3N,KAAKyiD,UAAU3/C,SAASgc,WAC3BC,SAIhBnd,IAAQ4E,KAAKnC,EAAW,oBACpBrE,KAAK2jD,cACL,CACIl9C,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,QACT7G,KAAKs1B,gBAAgB9sB,OAAO6qB,KAAK,KAC7BrzB,KAAKs1B,gBAAgBvmB,OAAO,KAAM,IAAKnI,EAAIN,KAAKiG,KAAKjB,IACrDtL,KAAKs1B,gBAAgB9sB,OAAO6qB,KAAK,KAC7BrzB,KAAKkjD,iBAAiBpgD,WAAW+K,OAAO,QAASjH,EAAIN,KAAKiG,KAAKjB,IAC/DtL,KAAKgjD,cAAclgD,WAAW+K,OAAO,YAAa7N,KAAKuuB,cAAgB,2CAA6CvuB,KAAKkuB,eAAiB,YAActnB,EAAIN,KAAKiG,KAAKjB,IACtKtL,KAAKs1B,gBAAgBvmB,OAAO,MAC5B/O,KAAKkjD,iBAAiBpgD,WAAW+K,OAAO,aAAc7N,KAAKs1B,iBAC3Dt1B,KAAKyN,SAAS,CACV80C,sBAAuBviD,KAAKkuB,eAC5Bs0B,eAAgB57C,EAAIN,KAAKiG,KAAKjB,GAC9Bo2C,YAAY,QASxB95C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAG5CC,MAAMC,IACLY,YAAOZ,EAAK,QAAS,UAMzC,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAKikD,uBAOxC,kBAAC,WAAD,CAAU7yC,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK2jD,cAAevzC,cAAepQ,KAAKklD,uBAAwBthD,IAAMA,GAAQ5D,KAAKyiD,UAAY7+C,GAC3G,kBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,oBACnD,kBAAC,aAAD,CAAYjD,UAAW,cACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK0jD,aACjBlgD,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXgJ,eAAiB3N,IACb3N,KAAK2jD,cAAcyE,YAAcz6C,EAAEpG,SAG3C,kBAAC,QAAD,CAAOiH,KAAK,YAEhB,kBAAC,aAAD,CAAY0D,UAAW,QAASyc,YAAY,EACxCxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKylD,aACjBjiD,eAAe,EACf2kB,iBAAkB,CAAE8jB,WAAW,GAC/Bz5B,SAAUxS,KAAK+J,MAAMyI,SACrBvP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAK6kD,yBACpBjhD,IAAMA,IAAU5D,KAAK2iD,YAAc/+C,GACnC0X,eAAiB3N,IACb3N,KAAK0lD,SAASC,KAAOh4C,EAAEpG,MACvBvH,KAAK4lD,eAAep9C,OACpBxI,KAAK4iD,cAAc9/C,WAAW+K,OAAO,QAAS,SAGtD,kBAAC,eAAD,CAAc0E,QAAQ,+BACtB,kBAAC,QAAD,CAAO/D,KAAK,aAEhB,kBAAC,aAAD,CAAY0D,UAAW,UAAWyc,YAAY,EAC1Cxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK4lD,eACjBz9B,iBAAkB,CAAE8jB,WAAW,GAC/BzoC,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAK8kD,2BACpBlhD,IAAMA,IAAU5D,KAAK4iD,cAAgBh/C,GACrC0X,eAAiB3N,QAKrB,kBAAC,eAAD,CAAc4E,QAAQ,oCACtB,kBAAC,QAAD,CAAO/D,KAAK,kBAEhB,kBAAC,aAAD,CAAY0D,UAAW,WAAYyc,YAAY,GAC3C,kBAAC,QAAD,CAAOngB,KAAK,cAEhB,kBAAC,aAAD,CAAY0D,UAAW,aAAcyc,YAAY,GAC7C,kBAAC,QAAD,CAAOngB,KAAK,WAEhB,kBAAC,aAAD,CAAY0D,UAAW,MAAOyc,YAAY,EACtCxc,WAAW,YACXC,cAAe,CACX+I,KAAM,mBAEV,kBAAC,QAAD,CAAO3M,KAAK,UAGpB,kBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,wBACnD,kBAAC,aAAD,CAAYjD,UAAW,YAAayc,YAAY,EAC5Cxc,WAAW,cACXC,cAAe,CACXhC,cAAepQ,KAAKmlD,gCACpBvhD,IAAMA,IAAU5D,KAAKijD,mBAAqBr/C,GAC1C4O,UAAU,IAEd,kBAAC,QAAD,CAAOhE,KAAK,UAEhB,kBAAC,aAAD,CAAY2D,WAAW,WACnBC,cAAe,CACXlR,SAAU,QACV8hB,KAAM,eACNpW,KAAM,QACN1I,KAAM,UACNsK,KAAM,iBACNgE,UAAU,EACVxF,QAAS,KACLpL,IAAQ6F,IAAIpD,EAAW,sBAAuB,CAC1CoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACT7G,KAAKijD,mBAAmBngD,WAAW+K,OAAO,QAASjH,EAAIN,KAAKiG,MAC5DvM,KAAK2jD,cAAcl2B,UAAY7mB,EAAIN,KAAKiG,MAGxC3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,YAQ/D,kBAAC,YAAD,CAAWkL,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,gDACnD,kBAAC,aAAD,CAAYjD,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAW5zB,KAAKuuB,cAAgB,wBAChCsF,WAAY,YACZC,cAAe9zB,KAAKyuB,aACpB2F,OAAQ,IACRnQ,YAAa,IACbjB,KAAM,SACNmP,WAAYnyB,KAAK2kD,sBAGrB,kBAAC,QAAD,CAAOn2C,KAAK,iCAkBzD8G,mBA99ESvL,IAAK,CACzBI,aAAcJ,EAAMI,aAAaf,OANToM,IACjB,CACHpG,gBAAkB9I,GAASkP,EAASrM,GAAoB7C,MAi+EjDgP,CAA6CmsC,IAE5D,SAASn1B,GAAWhmB,GAChB,OAAa,OAATA,QAEyBzF,IAApByF,EAAKA,KAAKua,OAA2C,OAApBva,EAAKA,KAAKua,OAAsC,KAApBva,EAAKA,KAAKua,MADrE,4BAKA,uBAAGhJ,IAAI,sBAAsB1W,KAAMmF,EAAKA,KAAKua,MAAOrJ,OAAO,UAC9D,yBAAKM,IAAI,sBAAsBC,IAAI,kCAI/C,SAAS6vC,GAAethD,GACpB,OAAa,OAATA,EACO,iCACuBzF,IAAzByF,EAAKA,KAAKs9C,YAAqD,OAAzBt9C,EAAKA,KAAKs9C,YAAgD,KAAzBt9C,EAAKA,KAAKs9C,WAC/E,yBAAK9rC,IAAI,qBAAqBC,IAAI,iBAAc7H,MAAO,CAAEm4C,OAAQ,WAAar7C,QAAS,KAC1F8F,YAAM,4MAIH,yBAAKgF,IAAI,qBAAqBC,IAAI,iBAAc7H,MAAO,CAAEm4C,OAAQ,WAAar7C,QAAS,KAC1FpL,IAAQ6F,IAAIjD,EAAW,yBAA2B8B,EAAKA,KAAKgiD,aACxD,CACI7hD,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACTe,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,KAGjC3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE9CC,MAAMiH,IACHpG,YAAO,gFAA+D,QAAS,UAMnG,SAAS+pC,GAAmBrrC,GACxB,OAAa,OAATA,EACO,iCACgBzF,IAAlByF,EAAKA,KAAK4T,KAAuC,OAAlB5T,EAAKA,KAAK4T,KAAkC,KAAlB5T,EAAKA,KAAK4T,IACjE,yBAAKpC,IAAI,sBAAsBC,IAAI,yBAAoB/K,QAAS,KACnE8F,YAAM,uLAIH,uBAAG+E,IAAI,sBACV1W,KAAM,2CAA6CmF,EAAKA,KAAK4T,IAAM,SAAW5T,EAAKA,KAAK6/C,SAAW,KAAO7/C,EAAKA,KAAKua,MACpHrJ,OAAO,SACPy6B,cAAY,uBAAuB/hC,MAAO,CAAEm4C,OAAQ,YACpD,yBAAKvwC,IAAI,sBAAsBC,IAAI,kCAI/C,SAAS8vC,GAA2BvhD,GAChC,OAAa,OAATA,EACO,4BAEA,yBAAKwR,IAAI,mBAAmBC,IAAI,8DAAkC7H,MAAO,CAAEm4C,OAAQ,WAAar7C,QACnG,KACI,IAAIi5C,EAAW,CACX3H,QAASh4C,EAAKqO,IAAIrO,KAAKw6C,SACvBryC,QAASnI,EAAKqO,IAAIrO,KAAK4/C,UAE3BtkD,IAAQ4E,KAAK7B,EAAe,8BAA+BshD,EACvD,CACIx/C,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACTe,YAAO,mDAAkC,UAAW,KAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE9CC,MAAMiH,IACHpG,YAAO,kGAAyE,QAAS,UC9jFlG,MAAM2gD,WAAkBtmD,IAAM0T,UACzC5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTO,OAAO,EACPkI,UAAU,EACVg2C,gBAAgB,GAEpBxoD,KAAKyoB,SAAW,KAChBzoB,KAAK2iD,YAAc,KACnB3iD,KAAK4iD,cAAgB,KACrB5iD,KAAKijD,mBAAqB,KAC1BjjD,KAAKyiD,UAAY,KACjBziD,KAAK+Q,UAAY,KACjB/Q,KAAKyM,MAAQ,KAEbzM,KAAK0jD,aAAe,CAChB,CAAEp4C,GAAI,EAAGuE,IAAK,cACd,CAAEvE,GAAI,EAAGuE,IAAK,gBACd,CAAEvE,GAAI,EAAGuE,IAAK,YACd,CAAEvE,GAAI,EAAGuE,IAAK,QACd,CAAEvE,GAAI,EAAGuE,IAAK,mBACd,CAAEvE,GAAI,EAAGuE,IAAK,wCACd,CAAEvE,GAAI,EAAGuE,IAAK,4BACd,CAAEvE,GAAI,EAAGuE,IAAK,6DACd,CAAEvE,GAAI,EAAGuE,IAAK,wDACd,CAAEvE,GAAI,EAAGuE,IAAK,mCACd,CAAEvE,GAAI,GAAIuE,IAAK,eAEnB7P,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAK+xB,sBAAwB/xB,KAAK+xB,sBAAsBnoB,KAAK5J,MAC7DA,KAAK6kD,yBAA2B7kD,KAAK6kD,yBAAyBj7C,KAAK5J,MACnEA,KAAK8kD,2BAA6B9kD,KAAK8kD,2BAA2Bl7C,KAAK5J,MACvEA,KAAKklD,uBAAyBllD,KAAKklD,uBAAuBt7C,KAAK5J,MAC/DA,KAAKmlD,gCAAkCnlD,KAAKmlD,gCAAgCv7C,KAAK5J,MACjFA,KAAKyoD,mBAAqBzoD,KAAKyoD,mBAAmB7+C,KAAK5J,MACvDA,KAAK+1C,cAAgB/1C,KAAK+1C,cAAcnsC,KAAK5J,MAC7CA,KAAKwwB,aAAexwB,KAAKwwB,aAAa5mB,KAAK5J,MAC3CA,KAAKg2C,cAAgBh2C,KAAKg2C,cAAcpsC,KAAK5J,MAC7CA,KAAKi2C,cAAgBj2C,KAAKi2C,cAAcrsC,KAAK5J,MAC7CA,KAAKk2C,SAAWl2C,KAAKk2C,SAAStsC,KAAK5J,MACnCA,KAAKyG,QAAU,CAAE,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAC9D1G,KAAK0wB,WAAa,KAEd1wB,KAAKyzB,qBACLzzB,KAAKyN,SAAS,CAAEnD,OAAO,EAAOk+C,gBAAgB,KAGlDxoD,KAAK8R,SAAW,CACZumC,GAAI,CAAE/sC,GAAI,GACVitC,KAAM,CAAEjtC,GAAI,GACZmiB,UAAW,EACXm2B,WAAY,KACZl9B,SAAU,KACVsM,KAAM,KACN9Y,IAAK,MAETla,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAKs1B,gBAAkB,IAAIltB,IACvB,CACI+D,UAAU,EACVgQ,SAAU,GACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,iBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKylD,aAAe,IAAIr9C,IACpB,CACIG,cAAc,EACd4D,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,cACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAK0lD,SAAW,CAAEC,KAAM,GACxB3lD,KAAK4lD,eAAiB,IAAIx9C,IACtB,CACIG,cAAc,EACd4D,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAK0lD,SACjB19C,QAAS3D,EAAW,gBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YASrEqrB,sBAAsBpkB,GAClB3N,KAAKyoB,SAAW9a,EAAEC,UAGtBi3C,yBAAyBl3C,GACrB3N,KAAK2iD,YAAch1C,EAAEC,UAGzBk3C,2BAA2Bn3C,GACvB3N,KAAK4iD,cAAgBj1C,EAAEC,UAG3Bu3C,gCAAgCx3C,GAC5B3N,KAAKijD,mBAAqBt1C,EAAEC,UAGhCs3C,uBAAuBv3C,GACnB3N,KAAKyiD,UAAY90C,EAAEC,UAGvB66C,mBAAmB96C,GACf3N,KAAK+Q,UAAYpD,EAAEC,UAGvBukB,WAAWxkB,GACP,IAAI/G,EAAMvF,KAAKE,MAAMoM,EAAE0F,QAAQ3L,UAC1Bd,EAAIstB,OAAOtb,MAAM/R,SAKlBe,YAAO,sBAAoB,UAAW,KACtC5H,KAAK8R,SAASkhB,KAAOpsB,EAAIstB,OAAOtb,MAAMrM,KACtCoB,EAAEC,UAAUumB,UANZvsB,YAAO,0BAAyBhB,EAAIstB,OAAOtb,MAAM9R,aAAc,QAAS,KACxE6G,EAAEC,UAAUumB,SASpB5f,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,OACNF,KAAM,MACNI,QAAShN,KAAK+1C,gBAGtB,CACI70C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,aACNF,KAAM,OACNI,QAAShN,KAAKwwB,eAGtB,CACItvB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SACN4I,KAAM,mBACNF,KAAM,QACNI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,UAAxBjM,EAAQoB,QAAQ2M,IAA0C,eAAxB/N,EAAQoB,QAAQ2M,IAA4C,SAAxB/N,EAAQoB,QAAQ2M,IAAyC,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,YAAxB/N,EAAQoB,QAAQ2M,IACzJuE,YAAM,0CAEL,CACYI,YAAQ,2DAA4D,cAC1EvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAKnC,EAAW,sBAAwBrE,KAAKyM,MAAMnB,GACvD,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD5H,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,sBAIL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,cAzB/DgM,YAAM,6BAAsB,iBAmC5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SACN4I,KAAM,MACNF,KAAM,QACNI,QAAShN,KAAKk2C,WAGtB,CACIh1C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzCI,QAAShN,KAAKi2C,gBAGtB,CACI/0C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1CI,QAAShN,KAAKg2C,gBAGtB,CACI90C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKs1B,gBAAgB9sB,OAAO6qB,KAAK,KAC7BrzB,KAAKyoB,SAAS3lB,SAAS4M,eAKvC,CACIxO,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrCE,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CyZ,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhD4U,qBACmC,OAA3BzzB,KAAKyoB,SAAS3lB,WACd9C,KAAKyoB,SAAS3lB,SAASyuB,iBACvBvxB,KAAKyoB,SAAS3lB,SAAS+K,OAAO,mBAAoB,IAO1DkoC,gBAEI/1C,KAAK8R,SAAW,CACZumC,GAAI,CAAE/sC,GAAI,GACVitC,KAAM,CAAEjtC,GAAI,GACZmiB,UAAW,EACXm2B,WAAY,KACZl9B,SAAU,KACVsM,KAAM,KACN9Y,IAAK,MAGTla,KAAKyN,SAAS,CACV+E,UAAU,EACVlI,OAAO,IAKfkmB,eACI,MAAM/jB,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK8R,SAAW,CACZxG,GAAImB,EAAMnB,GACV+sC,GAAI,CAAE/sC,GAAImB,EAAM4rC,GAAG/sC,IACnBitC,KAAM,CAAEjtC,GAAImB,EAAM8rC,KAAKjtC,IACvB88C,YAAa37C,EAAM27C,YACnB36B,UAAWhhB,EAAMghB,UACjBm2B,WAAYn3C,EAAMm3C,WAClBl9B,SAAUja,EAAMia,SAChBsM,KAAMvmB,EAAMumB,KACZ9Y,IAAKzN,EAAMyN,IACXwY,WAAYjmB,EAAMimB,WAClBD,QAAShmB,EAAMgmB,SAEnBzyB,KAAK2iD,YAAY7/C,WAAW+K,OAAO,QAASpB,EAAM4rC,GAAG/sC,IACrDtL,KAAK0lD,SAASC,KAAOl5C,EAAM4rC,GAAG/sC,GAC9BtL,KAAK4lD,eAAep9C,OAAO6qB,KAAK,KAC5BrzB,KAAK4iD,cAAc9/C,WAAW+K,OAAO,QAASpB,EAAM8rC,KAAKjtC,MAE7DtL,KAAKyN,SAAS,CACV+E,UAAU,EACVg2C,gBAAgB,EAChBl+C,OAAO,KAzBXwI,YAAM,6BAAsB,cA8BpCkjC,gBACI,MAAMvpC,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,EAKU,UAAxBjM,EAAQoB,QAAQ2M,IAA0C,eAAxB/N,EAAQoB,QAAQ2M,IAA4C,SAAxB/N,EAAQoB,QAAQ2M,IAAyC,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,YAAxB/N,EAAQoB,QAAQ2M,IACzJuE,YAAM,uCAGN9S,KAAKyN,SAAS,CACV+6C,gBAAgB,IAEpB5mD,IAAQ4E,KAAKnC,EAAW,kBAAoBoI,EAAMnB,GAAI,KAClD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,qBACL7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAzBvDgM,YAAM,6BAAsB,cAgCpCmjC,gBACI,MAAMxpC,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,EAKU,UAAxBjM,EAAQoB,QAAQ2M,IAA0C,eAAxB/N,EAAQoB,QAAQ2M,IAA4C,SAAxB/N,EAAQoB,QAAQ2M,IAAyC,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,YAAxB/N,EAAQoB,QAAQ2M,IACzJuE,YAAM,sCAGNlR,IAAQ4E,KAAKnC,EAAW,kBAAoBoI,EAAMnB,GAC9C,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,qBACL7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAvBvDgM,YAAM,6BAAsB,cA8BpCojC,WAEI,MAAMzpC,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAKlB,GAA4B,UAAxBjM,EAAQoB,QAAQ2M,IAA0C,eAAxB/N,EAAQoB,QAAQ2M,IAA4C,UAAxB/N,EAAQoB,QAAQ2M,IAA0C,YAAxB/N,EAAQoB,QAAQ2M,IACxHuE,YAAM,0CAEL,CACYI,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAKnC,EAAW,kBAAoBoI,EAAMnB,GAC9C,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD5H,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,sBAGL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,cAxB/DgM,YAAM,6BAAsB,cAoCpC/P,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,8CAGb,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKs1B,gBACjBhhB,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRyM,cAAepQ,KAAK+xB,sBACpBxd,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzBrY,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,kBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,kBAAC,eAAD,CAAc5T,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,UAAUhH,SAAS,IAC1E,kBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,UAAKE,SAAS,WAClD,kBAAC,SAAD,CAAQnD,UAAW,UAAWiD,QAAQ,eAAOE,SAAS,WACtD,kBAAC,SAAD,CAAQnD,UAAW,YAAaiD,QAAQ,OAAOuzC,aAAa,IAC5D,kBAAC,SAAD,CAAQx2C,UAAW,WAAYiD,QAAQ,WAAME,SAAS,SAASqzC,aAAa,QAO5F,kBAAC,QAAD,CAAO93C,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EAAKwM,cAAepQ,KAAKyoD,mBAC9Gz3C,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IACe3N,KAAKyiD,UAAU3/C,SAASgc,WAC3BC,SAKhBnd,IAAQ4E,KAAKnC,EAAW,oBACpBrE,KAAK8R,SACL,CACIrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAK0wB,cAGL9oB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAI1CC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,UAM7C,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,kBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAKklD,uBAAwBthD,IAAMA,GAAQ5D,KAAKyiD,UAAY7+C,EACtGmO,uBAAuB,GAEvB,kBAAC,YAAD,CAAWC,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,oBACnD,kBAAC,aAAD,CAAYjD,UAAW,cACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK0jD,aACjBlgD,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXgJ,eAAiB3N,IACb3N,KAAK8R,SAASs2C,YAAcz6C,EAAEpG,SAGtC,kBAAC,QAAD,CAAOiH,KAAK,YAEhB,kBAAC,aAAD,CAAY0D,UAAW,QAASyc,YAAY,EACxCxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKylD,aACjBjiD,eAAe,EACf2kB,iBAAkB,CAAE8jB,WAAW,GAC/Bz5B,SAAUxS,KAAK+J,MAAMyI,SACrBvP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAK6kD,yBACpBjhD,IAAMA,IAAU5D,KAAK2iD,YAAc/+C,GACnC0X,eAAiB3N,IACb3N,KAAK0lD,SAASC,KAAOh4C,EAAEpG,MACvBvH,KAAK4lD,eAAep9C,OACpBxI,KAAK4iD,cAAc9/C,WAAW+K,OAAO,QAAS,SAGtD,kBAAC,eAAD,CAAc0E,QAAQ,+BACtB,kBAAC,QAAD,CAAO/D,KAAK,aAEhB,kBAAC,aAAD,CAAY0D,UAAW,UAAWyc,YAAY,EAC1Cxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK4lD,eACjBz9B,iBAAkB,CAAE8jB,WAAW,GAC/Bz5B,SAAUxS,KAAK+J,MAAMyI,SACrBhP,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAK8kD,2BACpBlhD,IAAMA,IAAU5D,KAAK4iD,cAAgBh/C,GACrC0X,eAAiB3N,QAKrB,kBAAC,eAAD,CAAc4E,QAAQ,oCACtB,kBAAC,QAAD,CAAO/D,KAAK,kBAEhB,kBAAC,aAAD,CAAY0D,UAAW,WAAYyc,YAAY,EAC3Cxc,WAAW,aAEX,kBAAC,QAAD,CAAO3D,KAAK,aACZ,kBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,kBAAC,aAAD,CAAYL,UAAW,aAAcyc,YAAY,GAC7C,kBAAC,QAAD,CAAOngB,KAAK,UACZ,kBAAC,eAAD,CAAc+D,QAAQ,8BAE1B,kBAAC,aAAD,CAAYL,UAAW,MAAOyc,YAAY,EACtCxc,WAAW,YACXC,cAAe,CACX+I,KAAM,mBAEV,kBAAC,QAAD,CAAO3M,KAAK,QACZ,kBAAC,eAAD,CAAc+D,QAAQ,6BAG9B,kBAAC,YAAD,CAAWP,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,wBACnD,kBAAC,aAAD,CAAYjD,UAAW,YAAayc,YAAY,EAC5Cxc,WAAW,cACXC,cAAe,CACXI,SAAUxS,KAAK+J,MAAMyI,SACrBpC,cAAepQ,KAAKmlD,gCACpBvhD,IAAMA,IAAU5D,KAAKijD,mBAAqBr/C,KAE9C,kBAAC,QAAD,CAAO4K,KAAK,UAGhB,kBAAC,aAAD,CAAY2D,WAAW,WACnBC,cAAe,CACXlR,SAAU,QACV8hB,KAAM,eACNpW,KAAM,QACN1I,KAAM,UACNsK,KAAM,iBACNgE,SAAUxS,KAAK+J,MAAMy+C,eACrBx7C,QAAS,KACLpL,IAAQ6F,IAAIpD,EAAW,sBAAuB,CAC1CoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACT7G,KAAKijD,mBAAmBngD,WAAW+K,OAAO,QAASjH,EAAIN,KAAKiG,MAC5DvM,KAAK8R,SAAS2b,UAAY7mB,EAAIN,KAAKiG,MAGnC3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,YAS/D,kBAAC,YAAD,CAAWkL,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,gDACnD,kBAAC,aAAD,CAAYjD,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWvvB,EAAW,wBACtBwvB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpB2tB,OAAQ,IACRnQ,YAAa,IACbjB,KAAM,SACNmP,WAAYnyB,KAAKmyB,aAErB,kBAAC,QAAD,CAAO3jB,KAAK,6BChpBzC,MAAMm6C,WAAyBhzC,YAC1C5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTO,OAAO,EACP+O,aAAc,KACduvC,eAAgB,KAChBC,mBAAoB,KACpBtvC,iBAAkB,KAClBomC,oBAAqB,KACrBxmC,SAAU,GACVC,aAAc,GACdomC,gBAAiB,GACjBt+B,WAAY,GACZ1O,UAAU,EACV2d,YAAa,oCACbC,iBAAiB,GAErBpwB,KAAKyM,MAAQ,KACbzM,KAAKqwB,aAAe,KACpBrwB,KAAK8oD,eAAiB,CAClB,CAAEx9C,GAAI,EAAGuE,IAAK,OACd,CAAEvE,GAAI,EAAGuE,IAAK,kBACd,CAAEvE,GAAI,EAAGuE,IAAK,UAElB7P,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAKoQ,cAAgBpQ,KAAKoQ,cAAcxG,KAAK5J,MAC7CA,KAAK+oD,YAAc/oD,KAAK+oD,YAAYn/C,KAAK5J,MACzCA,KAAKgpD,cAAgBhpD,KAAKgpD,cAAcp/C,KAAK5J,MAC7CA,KAAKipD,cAAgBjpD,KAAKipD,cAAcr/C,KAAK5J,MAC7CA,KAAKkpD,UAAYlpD,KAAKkpD,UAAUt/C,KAAK5J,MACrCA,KAAK68C,aAAe78C,KAAK68C,aAAajzC,KAAK5J,MAC3CA,KAAKmpD,SAAWnpD,KAAKmpD,SAASv/C,KAAK5J,MACnCA,KAAKyG,QAAU,CAAE,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAC9D1G,KAAK0wB,WAAa,KACd1wB,KAAKyN,SAAS,CAAEnD,OAAO,EAAO8lB,iBAAiB,IAC/CpwB,KAAK2wB,cAET3wB,KAAK6wB,QAAU,KACX7wB,KAAKyN,SAAS,CACVnD,OAAO,EACP8lB,iBAAiB,KAGzBpwB,KAAK8R,SAAW,CACZkQ,QAAS,EACTgK,YAAa,EACbC,eAAgB,EAChBnJ,YAAa,EACbjT,IAAK,GACL4iB,SAAS,EACTC,WAAY,GAEhB1yB,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAK+oD,cAKT52B,WAAWxkB,GACP,IAAI/G,EAAMvF,KAAKE,MAAMoM,EAAE0F,QAAQ3L,UAC1Bd,EAAIC,SAKLe,YAAO,0CAAwB,UAAW,KAC1C5H,KAAKyN,SAAS,CACVm7C,eAAgBhiD,EAAI2F,OAExBoB,EAAEC,UAAUumB,UARZvsB,YAAO,8CAA6BhB,EAAIE,aAAc,QAAS,KAC/D6G,EAAEC,UAAUumB,SAcdi1B,WAAWj6C,GAAK,IAAD,2IACV,IAAI4L,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,sBAAwB8K,EAC3C,CACI1I,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACVm7C,eAAgBhiD,EAAIN,KAAKiG,KAAKsU,MAC9BgoC,mBAAoBjiD,EAAIN,KAAKiG,KAAKuW,cAEtC9H,EAAQ,8EAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOtV,EAAsBqI,EAAO,wCArB/B,6CA0Bfq7C,qBAAsB,IAAD,2IAChB,IAAItuC,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,2BACnB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACV0L,SAAUvS,EAAIN,KAAKiG,OAEvByO,EAAQ,qCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOtV,EAAsBqI,EAAO,sCApBzB,6CAyBrBs7C,gBAAgBz7B,GAAU,IAAD,2IACpB,IAAI9S,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,oCAAsCwpB,EAAS,CAClEpnB,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACV2L,aAAcxS,EAAIN,KAAKiG,OAE3ByO,EAAQ,kDAERpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAGvBC,MAAMiH,IACHiN,EAAOtV,EAAsBqI,EAAO,+BAnBrB,6CAwBzBu7C,mBAAmB17B,EAAS27B,GAAc,IAAD,2IACpC,IAAIzuC,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,8BAAgCwpB,EAAU,IAAM27B,EACnE,CACI/iD,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACV+xC,gBAAiB54C,EAAIN,KAAKiG,OAE9ByO,EAAQ,oCAERpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAGvBC,MAAMiH,IACHiN,EAAOtV,EAAsBqI,EAAO,+BApBL,6CA2BzCk7C,YAAa,IAAD,kIACD,IAAInuC,QAAQ,CAACC,EAASC,KAC/BrZ,IAAQ6F,IAAIpD,EAAW,2BACnB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKu4C,IACEA,EAAS54C,KAAKO,SACd,EAAKiL,SAAW,CACZkQ,QAAS,EACTiK,eAAgB,EAChBD,YAAa,EACbnc,IAAK,GACLgR,MAAO,KACPiC,YAAa,KACb2P,SAAS,EACTC,WAAY,GAEhB,EAAKjlB,SAAS,CACV0L,SAAU+lC,EAAS54C,KAAKiG,KACxBs8C,mBAAoB,KACpBD,eAAgB,KAChBrvC,iBAAkB,KAClBF,aAAc,KACdsmC,oBAAqB,OAEzB3kC,EAAQ,uDAGRpT,YAAOs3C,EAAS54C,KAAKQ,aAAc,QAAS,KAC5CmU,EAAOikC,EAAS54C,KAAKQ,iBAE1BC,MAAMiH,IACLiN,EAAOtV,EAAsBqI,EAAO,2BAE7CrH,KAAK,KAAQ,EAAKkqB,YAChB9pB,MAAMiH,IAAW8E,YAAM9E,KAtCd,qFAyCZ6uC,eAAgB,IAAD,+HAEH,QADRpwC,EAAQ,EAAKA,aACa5L,IAAV4L,EAFL,uBAGbqG,YAAM,6BAAsB,cAHf,iCAOTge,EAAgB,GAChBC,GAAU,EARD,UASP,EAAKq4B,WAAW38C,EAAMnB,IAAI3E,KAAKC,OAEhCG,MAAMiH,IACH8iB,GAAiB9iB,EAAQ,QACzB+iB,GAAU,IAbL,yBAiBP,EAAKs4B,qBAAqB1iD,KAAKC,OAClCG,MAAMiH,IACL8iB,GAAiB9iB,EAAQ,QACzB+iB,GAAU,IApBD,yBAwBP,EAAKu4B,gBAAgB78C,EAAMuV,SAASrb,KAAKC,OAC5CG,MAAMiH,IACL8iB,GAAiB9iB,EAAQ,QACzB+iB,GAAU,IA3BD,yBA8BP,EAAKw4B,mBAAmB98C,EAAMuV,QAASvV,EAAMuf,aAAarlB,KAAKC,OAClEG,MAAMiH,IACL8iB,GAAiB9iB,EAAQ,QACzB+iB,GAAU,IAjCD,QAoCb,EAAKtjB,SAAS,CACV0iB,YAAa,GACbC,iBAAiB,EACjBw4B,eAAgBn8C,EAAMoU,MACtBgoC,mBAAoBp8C,EAAMqW,YAC1B68B,oBAAqBlzC,EAAMwf,eAC3B5S,aAAc5M,EAAMuV,QACpBzI,iBAAkB9M,EAAMuf,cAG5B,EAAKla,SAAWrF,EAEZskB,EACAje,YAAMge,GAGN,EAAKD,UApDI,8CAwDfk4B,cAAe,IAAD,kIAEH,IAAIhuC,QAAQ,CAACC,EAASC,KAC/B,EAAKxN,SACD,CACI0iB,YAAa,oCACbC,iBAAiB,IAEzBxuB,IAAQ6F,IAAIpD,EAAW,wBACnB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACVyT,WAAYta,EAAIN,KAAKiG,KACrB4jB,YAAa,GACbC,iBAAiB,IAErBpV,EAAQ,mCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLpG,YAAO,+DAAkD,QAAS,KAClEqT,EAAOtV,EAAsBqI,EAAO,gCAE7CrH,KAAKC,IACJ,EAAK6G,SAAS,CACV0iB,YAAa,GACbC,iBAAiB,IAErB,EAAKO,eACN5pB,MAAMiH,IACL8E,YAAM9E,GACN,EAAKP,SAAS,CACV0iB,YAAa,GACbC,iBAAiB,MAzCT,qFA8Cd44B,gBAAiB,IAAD,2HAEJ,QADRv8C,EAAQ,EAAKA,aACa5L,IAAV4L,EAFJ,uBAGdqG,YAAM,6BAAsB,cAHd,0CAOD,IAAIiI,QAAQ,CAACC,EAASC,KAC/B,EAAKxN,SAAS,CAAE2iB,iBAAiB,EAAMD,YAAa,iDACpDvuB,IAAQ4E,KAAKnC,EAAW,oBAAsBoI,EAAMnB,GAAI,KACpD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,SACTe,YAAO,2CAAkC,UAAW,KACpDoT,EAAQ,8CAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOnV,EAAakI,QAEzBrH,KAAKC,IACJ,EAAKmiD,gBACNhiD,MAAMiH,IACL8E,YAAM9E,KA9BI,qFAmChBi7C,gBAAiB,IAAD,2HAEJ,QADRx8C,EAAQ,EAAKA,aACa5L,IAAV4L,EAFJ,uBAGdqG,YAAM,6BAAsB,cAHd,iCAOd,EAAKrF,SAAS,CAAE2iB,iBAAiB,EAAMD,YAAa,iDAPtC,SAQD,IAAIpV,QAAQ,CAACC,EAASC,KAC/BrZ,IAAQ4E,KAAKnC,EAAW,oBAAsBoI,EAAMnB,GAChD,KACA,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,SACTe,YAAO,2CAAkC,UAAW,KACpDoT,EAAQ,8CAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOnV,EAAakI,QAEzBrH,KAAKC,IACJ,EAAKmiD,gBACNhiD,MAAMiH,IACL8E,YAAM9E,KA/BI,sFAsChBslB,IAAInkB,GAAK,IAAD,kIACG,IAAI4L,QAAQ,CAACC,EAASC,KAC/BrZ,IAAQ4E,KAAKnC,EAAW,sBAAwB8K,EAC5C,KAAM,CACN1I,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACTe,YAAO,8BAAqB,UAAW,KACvCoT,EAAQ,iCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOnV,EAAakI,QAEzBrH,KAAKC,IACJ,EAAKmiD,gBACNhiD,MAAMiH,IACL8E,YAAM9E,KAtBA,qFAyBRm7C,WAAY,IAAD,2HAEC,QADR18C,EAAQ,EAAKA,aACa5L,IAAV4L,EAFT,uBAGTqG,YAAM,6BAAsB,cAHnB,0BAOII,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACA,EAAK1F,SAAS,CAAE2iB,iBAAiB,EAAMD,YAAa,oCACpD,EAAKmD,IAAI7mB,EAAMnB,KAIf,EAAKqlB,eAfJ,6CAyBjBpc,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,OACNF,KAAM,MACN4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKkpD,YAGtB,CACIhoD,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,aACNF,KAAM,OACN4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAK68C,eAGtB,CACI37C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,SACnC4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKmpD,WAGtB,CACIjoD,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzC4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKipD,gBAGtB,CACI/nD,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1C4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKgpD,gBAGtB,CACI9nD,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvC4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAK+oD,cAGtB,CACI7nD,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrC0F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CyZ,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDzO,cAAczC,GACV3N,KAAKqwB,aAAe1iB,EAAEC,UAIpB+iB,aAAc,IAAD,kHACf,EAAKN,aAAavtB,SAASyuB,iBAC3B,EAAKlB,aAAavtB,SAAS+K,OAAO,mBAAoB,GAFvC,6CAQnB9K,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACVjQ,KAAK+J,MAAMomB,cAGpB,yBAAKlgB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK+J,MAAMmX,WACvB5M,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzB7L,cAAepQ,KAAKoQ,cACpBxM,IAAMA,GAAQ5D,KAAKqwB,aAAezsB,GAElC,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,mBAAcC,yBAAyB,IACxE,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,kBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,kBAAC,eAAD,CAAc5T,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,eAAU9G,SAAS,IACzD,kBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,cAAc9G,SAAS,IACjE,kBAAC,SAAD,CAAQ6D,UAAW,iBAAkBiD,QAAQ,iBAAiB9G,SAAS,IACvE,kBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,gBAAa9G,SAAS,IAChE,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,YACvD,kBAAC,SAAD,CAAQnD,UAAW,WAAYiD,QAAQ,eACvC,kBAAC,SAAD,CAAQjD,UAAW,eAAgBiD,QAAQ,oBAC3C,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,eACvC,kBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,0BAClC,kBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,sBAQlD,kBAAC,QAAD,CAAOvE,WAAW,EAAMC,SAAS,EAAOC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACtFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IAER3N,KAAK8R,SAAS4hB,MAAQ,CAAEpoB,GAAItL,KAAK+J,MAAMsP,cACvCrZ,KAAK8R,SAASia,UAAY,CAAEzgB,GAAItL,KAAK+J,MAAMwP,kBAC3CvZ,KAAK8R,SAASsxC,aAAe,CAAE93C,GAAItL,KAAK+J,MAAM41C,qBAC9C3/C,KAAK8R,SAASgR,YAAc9iB,KAAK+J,MAAM8+C,mBACvC7oD,KAAK8R,SAAS+O,MAAQ7gB,KAAK+J,MAAM6+C,eACjChnD,IAAQ4E,KAAKnC,EAAW,sBACpBrE,KAAK8R,SACL,CACIrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACT7G,KAAKyN,SAAS,CACVnD,OAAO,IAEXtK,KAAK+oD,eAGLnhD,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,UAM/D,CACI5F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,kBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,UACjB,kBAAC,YAAD,CAAWE,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,yBACnD,kBAAC,aAAD,CAAYjD,UAAW,cACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8oD,eACjBtlD,eAAe,EACf+D,MAAOvH,KAAK+J,MAAM8+C,mBAClB5lD,YAAa,MACbqP,UAAW,KACXgJ,eAAiB3N,IACb3N,KAAKyN,SAAS,CACVo7C,mBAAoBl7C,EAAEpG,QAEY,IAAlCvH,KAAK+J,MAAM8+C,mBACX7oD,KAAKyN,SAAS,CAAE+E,UAAU,IAE1BxS,KAAKyN,SAAS,CAAE+E,UAAU,OAGtC,kBAAC,QAAD,CAAOhE,KAAK,8BAEhB,kBAAC,aAAD,CAAY0D,UAAW,OACnB,kBAAC,QAAD,CAAO1D,KAAK,cAEhB,kBAAC,aAAD,CAAY0D,UAAW,UACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK+J,MAAMoP,SACvB3V,eAAe,EACf+D,MAAOvH,KAAK+J,MAAMsP,aAClBpW,YAAa,MACbqP,UAAW,KACXgJ,eAAiB3N,IACb3N,KAAKyN,SAAS,CACV4L,aAAc1L,EAAEpG,QAEpB3F,IAAQ6F,IAAIpD,EAAW,oCAAsCsJ,EAAEpG,MAC3D,CACId,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACV4L,aAAc1L,EAAEpG,MAChB6R,aAAcxS,EAAIN,KAAKiG,OAK3B3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,UAI3D,kBAAC,QAAD,CAAO0H,KAAK,iBAGpB,kBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,iCAEnD,kBAAC,aAAD,CAAYjD,UAAW,cACnBC,WAAW,cACXC,cAAe,CACXhP,MAAOpD,KAAK+J,MAAMqP,aAClB5V,eAAe,EACf+D,MAAOvH,KAAK+J,MAAMwP,iBAClBtW,YAAa,eACbuP,SAAUxS,KAAK+J,MAAMyI,SACrBF,UAAW,eACXgJ,eAAiB3N,IACG,KAAZA,EAAEpG,MAA2B,OAAZoG,EAAEpG,QAGnBvH,KAAKyN,SAAS,CACV8L,iBAAkB5L,EAAEpG,QAGQ,OAA5BvH,KAAK+J,MAAMsP,cAAyD,OAAhCrZ,KAAK+J,MAAMwP,kBAC/C3X,IAAQ6F,IAAIpD,EAAW,8BAAgCrE,KAAK+J,MAAMsP,aAAe,IAAMrZ,KAAK+J,MAAMwP,iBAC9F,CACI9S,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACV+xC,gBAAiB54C,EAAIN,KAAKiG,OAI9B3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,WAOnE,kBAAC,QAAD,CAAO0H,KAAK,2BAEhB,kBAAC,aAAD,CAAY0D,UAAW,iBACnBC,WAAW,cACXC,cAAe,CACXhP,MAAOpD,KAAK+J,MAAMy1C,gBAClBh8C,eAAe,EACf+D,MAAOvH,KAAK+J,MAAM41C,oBAClB18C,YAAa,MACbqP,UAAW,KACXE,SAAUxS,KAAK+J,MAAMyI,SACrB8I,eAAiB3N,IACb3N,KAAKyN,SAAS,CACVkyC,oBAAqBhyC,EAAEpG,WAInC,kBAAC,QAAD,CAAOiH,KAAK,iBAGpB,kBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,mBACnD,kBAAC,aAAD,CAAYjD,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWvvB,EAAW,qCAAuCrE,KAAK+J,MAAM8+C,mBACxEh1B,WAAY,YACZC,cAAe9zB,KAAKyG,QACpB2tB,OAAQ,IACR/Q,UAAU,EACVY,YAAa,IACbjB,KAAM,SACNmP,WAAYnyB,KAAKmyB,aAErB,kBAAC,QAAD,CAAO3jB,KAAK,0DCjwBzC,MAAMi7C,WAAwBxnD,IAAM0T,UAC/C5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTO,OAAO,EACP2W,UAAW,GACX9H,SAAU,GACV3G,UAAU,EACV6G,aAAc,KACd8W,YAAa,GACbC,iBAAiB,GAErBpwB,KAAKyM,MAAQ,KACbzM,KAAKqwB,aAAe,KAEpBrwB,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAKoQ,cAAgBpQ,KAAKoQ,cAAcxG,KAAK5J,MAC7CA,KAAKkpD,UAAYlpD,KAAKkpD,UAAUt/C,KAAK5J,MACrCA,KAAK68C,aAAe78C,KAAK68C,aAAajzC,KAAK5J,MAC3CA,KAAKgpD,cAAgBhpD,KAAKgpD,cAAcp/C,KAAK5J,MAC7CA,KAAKipD,cAAgBjpD,KAAKipD,cAAcr/C,KAAK5J,MAC7CA,KAAKmpD,SAAWnpD,KAAKmpD,SAASv/C,KAAK5J,MACnCA,KAAK+oD,YAAc/oD,KAAK+oD,YAAYn/C,KAAK5J,MACzCA,KAAKyG,QAAU,CAAE,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAC9D1G,KAAK0wB,WAAa,KACd1wB,KAAKyN,SAAS,CAAEnD,OAAO,EAAO8lB,iBAAiB,IAC/CpwB,KAAK2wB,cAGT3wB,KAAK6wB,QAAU,KACX7wB,KAAKyN,SAAS,CAAEnD,OAAO,EAAM8lB,iBAAiB,KAElDpwB,KAAK8R,SAAW,CACZxG,GAAI,EACJooB,MAAO,CAAEpoB,GAAI,GACb4U,MAAO,IAAIqI,KACXzI,OAAQ,GACRK,SAAU,GACVuS,WAAY,EACZD,SAAS,GAEbzyB,KAAK+oD,cAQTW,qBACI,OAAO,IAAI3uC,QAAQ,CAACC,EAASC,KAEzBrZ,IAAQ6F,IAAIpD,EAAW,2BACnB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACT7G,KAAKyN,SAAS,CACV0L,SAAUvS,EAAIN,KAAKiG,OAEvByO,EAAQ,uCAERpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOtV,EAAsBqI,EAAO,6BAKpDywC,SAAStvC,GACL,OAAO,IAAI4L,QAAQ,CAACC,EAASC,KACzBrZ,IAAQ6F,IAAIpD,EAAW,oBAAsB8K,EACzC,CACI1I,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACT7G,KAAK8R,SAAW,CACZxG,GAAI1E,EAAIN,KAAKiG,KAAKjB,GAClBooB,MAAO,CAAEpoB,GAAI1E,EAAIN,KAAKiG,KAAKmnB,MAAMpoB,IACjC4U,MAAOtZ,EAAIN,KAAKiG,KAAK2T,MACrBJ,OAAQlZ,EAAIN,KAAKiG,KAAKuT,OACtBK,SAAUvZ,EAAIN,KAAKiG,KAAK4T,SACxBuS,WAAY9rB,EAAIN,KAAKiG,KAAKmmB,WAC1BD,QAAS7rB,EAAIN,KAAKiG,KAAKkmB,SAE3BzX,EAAQ,qCAERpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOtV,EAAsBqI,EAAO,2BAQ9C+6C,cAAe,IAAD,yHAChB,EAAKt7C,SAAS,CAAE0iB,YAAa,+BADb,SAEH,IAAIpV,QAAQ,CAACC,EAASC,KAE/BrZ,IAAQ6F,IAAIpD,EAAW,mBACnB,CACIoC,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT,EAAK4G,SAAS,CACVwT,UAAWra,EAAIN,KAAKiG,KACpB4jB,YAAa,KAEjBnV,EAAQ,4BAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOtV,EAAsBqI,EAAO,yBAE7CrH,KAAKC,IACJ,EAAK6G,SAAS,CACV0iB,YAAa,GACbC,iBAAiB,IAErB,EAAKO,eAEJ5pB,MAAMiH,IACH8E,YAAM9E,KAjCE,qFAsCdk7C,YAAa,IAAD,kIACR,EAAKQ,qBAAqB/iD,KAAKC,OAClCG,MAAMiH,IACL8E,YAAM9E,KAHI,uBAMD,IAAI+M,QAAQ,CAACC,EAASC,KAC/B,IACI,EAAKnJ,SAAW,CACZxG,GAAI,EACJooB,MAAO,CAAEpoB,GAAI,GACb4U,MAAO,IAAIqI,KACXzI,OAAQ,GACRK,SAAU,GACVuS,WAAY,EACZD,SAAS,GAEbzX,EAAQ,gDACV,MAAOhN,GACLiN,EAAOtV,EAAsBqI,EAAO,mCAEzCrH,KAAKC,IACJ,EAAKiqB,YAEN9pB,MAAMiH,IACL8E,YAAM9E,KAzBI,qFA8BZ6uC,eAAgB,IAAD,+HAEH,QADRpwC,EAAQ,EAAKA,aACa5L,IAAV4L,EAFL,uBAGbqG,YAAM,6BAAsB,cAHf,iCAOTge,EAAgB,GAChBC,GAAU,EARD,UAUP,EAAK0tB,SAAShyC,EAAMnB,IAAI3E,KAAKC,OAChCG,MAAMiH,IACL8iB,GAAiB9iB,EAAQ,QACzB+iB,GAAU,IAbD,yBAgBP,EAAK24B,qBAAqB/iD,KAAKC,OAClCG,MAAMiH,IACL8iB,GAAiB9iB,EAAQ,QACzB+iB,GAAU,IAnBD,QAsBTA,EACAje,YAAMge,GAEN,EAAKD,UAzBI,8CA8Bfm4B,gBAAiB,IAAD,2HAEJ,QADRv8C,EAAQ,EAAKA,aACa5L,IAAV4L,EAFJ,uBAGdqG,YAAM,6BAAsB,cAHd,iCAOd,EAAKrF,SAAS,CAAE2iB,iBAAiB,EAAMD,YAAa,iDAPtC,SAQD,IAAIpV,QAAQ,CAACC,EAASC,KAC/BrZ,IAAQ4E,KAAKnC,EAAW,mBAAqBoI,EAAMnB,GAAI,KACnD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,SACTe,YAAO,2CAAkC,UAAW,KACpDoT,EAAQ,8CAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOnV,EAAakI,QAEzBrH,KAAKC,IACJ,EAAKmiD,gBACNhiD,MAAMiH,IACL8E,YAAM9E,KA9BI,sFAmChBi7C,gBAAiB,IAAD,2HAEJ,QADRx8C,EAAQ,EAAKA,aACa5L,IAAV4L,EAFJ,uBAGdqG,YAAM,6BAAsB,cAHd,iCAOd,EAAKrF,SAAS,CAAE2iB,iBAAiB,EAAMD,YAAa,iDAPtC,SAQD,IAAIpV,QAAQ,CAACC,EAASC,KAC/BrZ,IAAQ4E,KAAKnC,EAAW,mBAAqBoI,EAAMnB,GAAI,KACnD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,SACTe,YAAO,2CAAkC,UAAW,KACpDoT,EAAQ,8CAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOnV,EAAakI,QAEzBrH,KAAKC,IACJ,EAAKmiD,gBACNhiD,MAAMiH,IACL8E,YAAM9E,KA9BI,sFAoChBslB,IAAInkB,GAAK,IAAD,kIACG,IAAI4L,QAAQ,CAACC,EAASC,KAC/BrZ,IAAQ4E,KAAKnC,EAAW,oBAAsB8K,EAC1C,KAAM,CACN1I,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACTe,YAAO,8BAAqB,UAAW,KACvCoT,EAAQ,iCAGRpT,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KACvCmU,EAAOrU,EAAIN,KAAKQ,iBAErBC,MAAMiH,IACLiN,EAAOnV,EAAakI,QAEzBrH,KAAKC,IACJ,EAAKmiD,gBACNhiD,MAAMiH,IACL8E,YAAM9E,KAtBA,qFA0BRm7C,WAAY,IAAD,2HAEC,QADR18C,EAAQ,EAAKA,aACa5L,IAAV4L,EAFT,uBAGTqG,YAAM,6BAAsB,cAHnB,0BAOII,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACA,EAAK1F,SAAS,CAAE2iB,iBAAiB,EAAMD,YAAa,oCACpD,EAAKmD,IAAI7mB,EAAMnB,KAGf,EAAKqlB,eAdJ,6CAwBjBpc,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,OACNF,KAAM,MACN4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKkpD,YAGtB,CACIhoD,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,aACNF,KAAM,OACN4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAK68C,eAGtB,CACI37C,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,MAAOF,KAAM,SACnC4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKmpD,WAGtB,CACIjoD,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzC4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKipD,gBAGtB,CACI/nD,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1C4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAKgpD,gBAGtB,CACI9nD,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvC4F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAShN,KAAK+oD,cAGtB,CACI7nD,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrC0F,SAAUxS,KAAK+J,MAAMqmB,gBACrBpjB,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CyZ,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDzO,cAAczC,GACV3N,KAAKqwB,aAAe1iB,EAAEC,UAIpB+iB,aAAc,IAAD,kHACf,EAAKN,aAAavtB,SAASyuB,iBAC3B,EAAKlB,aAAavtB,SAAS+K,OAAO,mBAAoB,GAFvC,6CAQnB9K,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACVjQ,KAAK+J,MAAMomB,cAGpB,yBAAKlgB,UAAU,OACX,yBAAKA,UAAU,aAEX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK+J,MAAMkX,UACvB3M,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzB7L,cAAepQ,KAAKoQ,cACpBxM,IAAMA,GAAQ5D,KAAKqwB,aAAezsB,GAElC,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,mBAAcC,yBAAyB,IACxE,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,kBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,kBAAC,eAAD,CAAc5T,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,YACvD,kBAAC,SAAD,CAAQnD,UAAW,WAAYiD,QAAQ,gBAAW9G,SAAS,IAC3D,kBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,QAAQ9G,SAAS,EAAMgH,SAAS,SACpE,kBAAC,SAAD,CAAQnD,UAAW,WAAYiD,QAAQ,aAAQ9G,SAAS,IACxD,kBAAC,SAAD,CAAQ6D,UAAW,SAAUiD,QAAQ,SAAS9G,SAAS,QAQvE,kBAAC,QAAD,CAAOuC,WAAW,EAAMC,SAAS,EAAOC,aAAa,EAAMlN,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EACtFoN,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EACtF0b,SAAU7sB,KAAK0wB,WAAYriB,QAASrO,KAAK+J,MAAMO,MAC/C8B,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IACR3N,KAAK8R,SAAS4hB,MAAQ,CAAEpoB,GAAItL,KAAK+J,MAAMsP,cACvCzX,IAAQ4E,KAAKnC,EAAW,sBACpBrE,KAAK8R,SACL,CACIrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,SACT7G,KAAK+oD,cACL/oD,KAAK0wB,cAGL9oB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAMiH,IACL8E,YAAM9E,QAK1B,CACI9M,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAK0wB,kBAOxC,kBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,UACjB,kBAAC,YAAD,CAAWE,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,qBACnD,kBAAC,aAAD,CAAYjD,UAAW,WACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK+J,MAAMoP,SACvB3V,eAAe,EACf+D,MAAOvH,KAAK+J,MAAMsP,aAClBpW,YAAa,MACbqP,UAAW,KACXgJ,eAAiB3N,IACb3N,KAAKyN,SAAS,CACV4L,aAAc1L,EAAEpG,WAI5B,kBAAC,QAAD,CAAOiH,KAAK,gBAEhB,kBAAC,aAAD,CAAY0D,UAAW,UACnB,kBAAC,QAAD,CAAO1D,KAAK,YAEhB,kBAAC,aAAD,CAAY0D,UAAW,SACnB,kBAAC,QAAD,CAAO1D,KAAK,WAGhB,kBAAC,aAAD,CAAY0D,UAAW,WAAYC,WAAW,eAAeC,cAAe,CACxEpH,QAAS,CACL5H,MAAO,CACH,OACA,SACA,QACA,aACA,OACA,CACI,WAAc,SACd,aAAgB,CACZ,EACA,EACA,GACA,IAGR,WACA,SACA,QACA,YACA,cACA,YACA,aACA,iBACA,iBACA,cACA,aACA,YACA,cACA,aACA,eACA,YACA,OACA,OACA,QACA,aAEJ0pC,WAAW,GAEfp8B,OAAQ,MACRnJ,MAAOvH,KAAK8R,SAASqO,WAGrB,kBAAC,QAAD,CAAO3R,KAAK,4BC5jBxD,MAAMsT,GAAkB,IAAI1Z,IACxB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,wBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM3Dub,GAAsB,IAAI7Z,IAC5B,CACIC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,qBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKlD,MAAMijD,WAAuB1nD,YACxClC,YAAYU,GACRyB,MAAMzB,GAENT,KAAK8R,SAAW,CACZrD,QAAS,EACT4L,QAAS,EACTK,gBAAiB,GACjBka,SAAU,IAEd50B,KAAKmyB,WAAanyB,KAAKmyB,WAAWvoB,KAAK5J,MACvCA,KAAK+Z,mBAAqB/Z,KAAK+Z,mBAAmBnQ,KAAK5J,MACvDA,KAAK4pD,uBAAyB5pD,KAAK4pD,uBAAuBhgD,KAAK5J,MAC/DA,KAAKyG,QAAU,CACX,cAAiB,UAAYjG,EAAQoB,QAAQ8E,OAEjD1G,KAAKg1B,kBAAoB,CACrBxmB,KAAM,yCACN5B,KAAM,QACNE,KAAM,yCACN5I,KAAM,UACN8I,QAAS,KACLpL,IAAQ4E,KAAKnC,EAAW,sCAAuCrE,KAAK8R,SAChE,CACIrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,QACTiM,YAAMlM,EAAIN,KAAKiG,KAAM,SAGrB3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE1CC,MAAOiH,IAEJpG,YAAO,yGAAsFoG,EAAO,QAAS,SAI7HhO,KAAKs1B,gBAAkB,IAAIltB,IACvB,CACIuD,SAAU,MACVQ,UAAU,EACVgQ,SAAU,GACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,iBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAOrEyrB,WAAWxkB,GACP,IAAI/G,EAAMvF,KAAKE,MAAMoM,EAAE0F,QAAQ3L,UAC1Bd,EAAIC,SAKL7G,KAAK8R,SAAS8iB,SAAWhuB,EAAI2F,KAC7B3E,YAAO,uCAA2B,UAAW,KAC7C+F,EAAEC,UAAUumB,UANZvsB,YAAO,2CAAgChB,EAAIE,aAAc,QAAS,KAClE6G,EAAEC,UAAUumB,SASpBpa,qBACI/Z,KAAK8R,SAAS4I,gBAAkB1a,KAAK6Z,cAAc/W,SAAS4R,sBAGhEk1C,uBAAuBj8C,GACnB3N,KAAK6Z,cAAgBlM,EAAEC,UAG3B7K,SACI,OACI,gBAAC,WAAD,KACI,uBAAKkN,UAAU,aACX,uBAAKA,UAAU,aACX,uBAAKA,UAAU,OACX,gBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,UACjB,gBAAC,YAAD,CAAWE,SAAS,cAAcC,SAAU,GACxC,gBAAC,aAAD,CAAYC,UAAW,UACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKs1B,gBACjBnN,kBAAkB,EAClB3kB,eAAe,EACfP,YAAa,WACbsY,iBAAiB,EACjBjJ,UAAW,OAEf,gBAAC,QAAD,CAAO9D,KAAK,sBAEhB,gBAAC,aAAD,CAAY0D,UAAW,UACnBC,WAAW,cACXC,cAAe,CACXC,WAAY4P,GACZze,eAAe,EACfP,YAAa,MACbqP,UAAW,OAEf,gBAAC,QAAD,CAAO9D,KAAK,4BAGpB,gBAAC,YAAD,CAAW2G,QAAQ,8HAAkFlD,SAAU,GAC3G,gBAAC,aAAD,KACI,gBAAC,IAAD,CACImC,aAAa,EACbC,cAAc,EACdhC,WAAYyP,GACZnG,oBAAoB,EACpBrH,qBAAqB,EACrBsH,iBAAiB,EACjBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBC,uBAAuB,EACvB5L,cAAepQ,KAAK4pD,uBACpB3tC,mBAAoBjc,KAAK+Z,mBACzBpW,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEd3Y,IAAMA,GAAQ5D,KAAK6Z,cAAgBjW,GAEnC,gBAAC,SAAD,CAAQ4Y,gBAAiB,KACzB,gBAAC,YAAD,CAAW1H,KAAK,WACZ2H,cAAc,WACd1H,mBAAmB,YACvB,gBAAC,QAAD,CAAOsH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,KAAK9G,SAAS,IAC/C,gBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,kBAK9C,gBAAC,YAAD,CAAWnD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,yGACnD,gBAAC,aAAD,CAAYjD,UAAW,OACnBC,WAAW,iBACXC,cAAe,CACXwhB,UAAWvvB,EAAW,oDACtBwvB,WAAY,YACZC,cAAe9zB,KAAKyG,QACpB2tB,OAAQ,IACRnQ,YAAa,IACbjB,KAAM,SACNmP,WAAYnyB,KAAKmyB,aAErB,gBAAC,QAAD,CAAO3jB,KAAK,8BAIxB,gBAAC,KAAD,KACI,gBAAC,QAAD,CAAMtN,SAAS,QACXwL,OAAO,WACPC,QAAS3M,KAAKg1B,0BCxMlD,MAAM60B,WAA8B5nD,IAAM0T,UACtC5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACT+/C,SAAU,GACV3H,eAAgB,qBAChBG,oBAAoB,GAExBtiD,KAAKyM,MAAQ,KACbzM,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAKmkD,kBAAoBnkD,KAAKmkD,kBAAkBv6C,KAAK5J,MAIzDuU,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QAEnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM9M,KAAK+J,MAAMo4C,eAAgBv1C,KAAM,YACxD4B,KAAMxO,KAAK+J,MAAMo4C,eACjB3vC,SAAUxS,KAAK+J,MAAMu4C,mBACrBt1C,QAAShN,KAAKmkD,oBAGtB,CACIjjD,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvC4B,KAAM,SACNxB,QAAUW,IACN3N,KAAK4wB,iBAIjB,CACI1vB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrCE,QAAUW,IACN3N,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CyZ,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDslC,oBACI,MAAM13C,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAKyN,SAAS,CACV00C,eAAgB,cAChBG,oBAAoB,IAExB1gD,IAAQ6F,IAAIjD,EAAW,oBAAsBiI,EAAMrB,YAAc,IAAMqB,EAAMnB,IACxE3E,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyN,SAAS,CACV00C,eAAgB,qBAChBG,oBAAoB,IAExBtiD,KAAK4wB,gBAGL5wB,KAAKyN,SAAS,CACV00C,eAAgB,qBAChBG,oBAAoB,IAExB16C,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,QAE5CC,MAAMiH,IACLhO,KAAKyN,SAAS,CACV00C,eAAgB,qBAChBG,oBAAoB,IAExB16C,YAAO,oEAA6D,QAAS,QA7BrFkL,YAAM,6BAAsB,cAkCpC0xC,WACI,MAAM/3C,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,kEAA8D,cAC5EvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAKhC,EAAW,2BAA6BiI,EAAM67C,aACvD,KACA,CACI7hD,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QACT7G,KAAK4wB,cAGLhpB,YAAO,6DAA2ChB,EAAIN,KAAKQ,aAAc,QAAS,cAnBtGgM,YAAM,6BAAsB,cA0B9B8d,cAAe,IAAD,kHAChBhvB,IAAQ6F,IAAIjD,EAAW,uBAAyBhE,EAAQoB,QAAQ0J,GAAI,MAC/D3E,KAAKC,IACEA,EAAIN,KAAKO,QACT,EAAK4G,SAAS,CACVq8C,SAAUljD,EAAIN,KAAKiG,OAIvB3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OATnC,6CAad6T,oBAAqB,IAAD,kHACtB,EAAKiW,cADiB,6CAI1B7tB,SACI,OACI,yBAAKkN,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAK+J,MAAM+/C,SACvBx1C,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRuY,OAAQ,CACJC,SAAU,IAEdC,MAAO,CACHC,sBAAsB,EACtBC,iBAAkB,CAAC,EAAG,GAAI,GAAI,GAAI,KAClCC,UAAU,GAEdhI,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzBrY,IAAMA,GAAQ5D,KAAKqwB,aAAezsB,GAElC,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,WAAYC,yBAAyB,IACtE,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,kBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,kBAAC,eAAD,CAAc5T,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,KACzB,kBAAC,QAAD,CAAOH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAU,YAAYiD,QAAQ,GAClC7R,MAAO,GACP8oB,cAAc,EACdC,WAAYC,KAEhB,kBAAC,SAAD,CAAQpa,UAAW,cAAeiD,QAAQ,cAAc9G,SAAS,IACjE,kBAAC,SAAD,CAAQ6D,UAAW,eAAgBiD,QAAQ,eAAe9G,SAAS,IACnE,kBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,UAAU9G,SAAS,IAC1D,kBAAC,SAAD,CAAQ6D,UAAW,YAAaiD,QAAQ,eACxC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,0BACxC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,oBACxC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,wBACvC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,YACrC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,iBACvC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,UACxC,kBAAC,SAAD,CAAQjD,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,OAAO4K,OAC1D,wBAEJ,kBAAC,SAAD,CAAQ/N,UAAW,YAAaiD,QAAQ,YAAY9G,SAAS,IAC7D,kBAAC,SAAD,CAAQ6D,UAAW,QAASiD,QAAQ,QAAQ9G,SAAS,SAUjF,SAASie,GAAWhmB,GAChB,OAAa,OAATA,QAEyBzF,IAApByF,EAAKA,KAAKua,OAA2C,OAApBva,EAAKA,KAAKua,OAAsC,KAApBva,EAAKA,KAAKua,MADrE,4BAKA,uBAAGhJ,IAAI,sBAAsB1W,KAAMmF,EAAKA,KAAKua,MAAOrJ,OAAO,UAC9D,yBAAKM,IAAI,sBAAsBC,IAAI,kCAGhChU,mBAAW8lD,ICvNX,MAAME,WAAgC9nD,IAAM0T,UACvD5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAKm6C,eAAiB,IAAI/xC,IACtB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,gDACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMrE3D,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,wFACL,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKm6C,eACjB7lC,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACR4Q,mBAAoBvU,KAAKuU,mBACzBnE,cAAepQ,KAAKoQ,cACpB6L,mBAAoBjc,KAAKic,mBACzBrY,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,kCAAmCC,yBAAyB,IAC7F,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,eAAD,CAAcI,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,UACvC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,uBACxC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,yBACxC,kBAAC,SAAD,CAAQjD,UAAW,cAAeiD,QAAQ,WAC1C,kBAAC,SAAD,CAAQjD,UAAW,kBAAmBiD,QAAQ,oBAC9C,kBAAC,SAAD,CAAQjD,UAAW,cAAeiD,QAAQ,iBAC1C,kBAAC,SAAD,CAAQjD,UAAW,iBAAkBiD,QAAQ,iBAAcE,SAAS,SAAS4K,OAAQ,aACrF,kBAAC,SAAD,CAAQ/N,UAAW,eAAgBiD,QAAQ,eAAYE,SAAS,SAAS4K,OAAQ,aACjF,kBAAC,SAAD,CAAQ/N,UAAW,cAAeiD,QAAQ,WAAWE,SAAS,SAAS4K,OAAQ,mB,yBCzDhG,MAAM+pC,WAAkC/nD,IAAM0T,UACzD5V,YAAYU,GACRyB,MAAMzB,GAENT,KAAK+J,MAAQ,CACTqmB,iBAAiB,EACjB65B,gBAAiB,IAAI1hC,MAAK,IAAIA,MAAOgf,eAAe,IAAIhf,MAAO2hC,YAAY,IAAI3hC,MAAO4hC,SAAU,EAAG,EAAG,EAAG,GACzGC,YAAa,IAAI7hC,MAAK,IAAIA,MAAOgf,eAAe,IAAIhf,MAAO2hC,WAAa,GAAG,IAAI3hC,MAAO4hC,SAAW,EAAG,GAAI,GAAI,GAAI,IAEpHnqD,KAAKm6C,eAAiB,IAAI/xC,IACtB,CACI2G,OAAQ,CAAC,CAAC,QAAS,KAAM/O,KAAK+J,MAAMkgD,iBAAkB,MAAO,CAAC,QAAS,KAAMjqD,KAAK+J,MAAMqgD,cACxFj+C,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,0CACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMrE3D,SACI,OAEI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,4FAGb,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aAAf,kCAIJ,yBAAKA,UAAU,MAAMC,MAAO,CAAEG,UAAW,SAGzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,YACX,kBAAC,KAAD,CAASgP,aAAcjf,KAAK+J,MAAMkgD,gBAC9B/lD,KAAK,WACLoX,eAAiB3N,IACb3N,KAAKyN,SAAS,CACVw8C,gBAAiBt8C,EAAEpG,aAKvC,yBAAK0I,UAAU,MAAMC,MAAO,CAAEG,UAAW,SAGzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,aAAf,sBAIJ,yBAAKA,UAAU,MAAMC,MAAO,CAAEG,UAAW,SAGzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,YACX,kBAAC,KAAD,CAASgP,aAAcjf,KAAK+J,MAAMqgD,YAC9BlmD,KAAK,WACLoX,eAAiB3N,IACb3N,KAAKyN,SAAS,CACV28C,YAAaz8C,EAAEpG,QAEnBvH,KAAKm6C,eAAeprC,OAAO,CAAC,CAAC,QAAS,KAAM/O,KAAK+J,MAAMkgD,iBAAkB,MAAO,CAAC,QAAS,KAAMjqD,KAAK+J,MAAMqgD,eAC3GpqD,KAAKm6C,eAAe3xC,OACpBxI,KAAKyoB,SAAS3lB,SAAS4M,eAIvC,yBAAKO,UAAU,OACX,yBAAKA,UAAU,aAGX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKm6C,eACjBhyB,kBAAkB,EAClB7T,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACR4Q,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzBiE,SAAUxS,KAAK+J,MAAMqmB,gBACrBzjB,QAAS,CACLC,KAAM,QACN1I,KAAM,UACNsK,KAAM,uBACNxB,QAAS,KACLhN,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErB,IAAIi6B,EAAW,IAAI9hC,KAAKvoB,KAAK+J,MAAMkgD,iBACnCI,EAAS/b,SAAS+b,EAAS9b,WAAa,GACxC,IAAI+b,EAAW,IAAI/hC,KAAKvoB,KAAK+J,MAAMqgD,aACnCE,EAAShc,SAASgc,EAAS/b,WAAa,GACxCvuC,KAAKuqD,WAAa,CACdC,OAAQH,EACRI,OAAQH,GAEZ1oD,IAAQ4E,KAAK7B,EAAe,oCAAqC3E,KAAKuqD,WAClE,CACI9jD,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBxoB,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,OAGjCvM,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBtd,MAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,WAG/EC,MAAMC,IACHhH,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBtd,MAAM,6DAA2C9L,EAAK,aAK1E,CACI9F,SAAU,QACVwL,OAAQ,WACR2B,QAAiC,iBAAxB7N,EAAQoB,QAAQ2M,IACzBiE,SAAUxS,KAAK+J,MAAMqmB,gBACrBzjB,QAAS,CACLC,KAAM,QACN1I,KAAM,UACNsK,KAAM,yCACNxB,QAAS,KACLhN,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErB,IAAIi6B,EAAW,IAAI9hC,KAAKvoB,KAAK+J,MAAMkgD,iBACnCI,EAAS/b,SAAS+b,EAAS9b,WAAa,GACxC,IAAI+b,EAAW,IAAI/hC,KAAKvoB,KAAK+J,MAAMqgD,aACnCE,EAAShc,SAASgc,EAAS/b,WAAa,GACxCvuC,KAAKuqD,WAAa,CACdC,OAAQH,EACRI,OAAQH,GAEZ1oD,IAAQ4E,KAAK7B,EAAe,iCAAkC3E,KAAKuqD,WAC/D,CACI9jD,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBxoB,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,OAGjCvM,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBtd,MAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,WAG/EC,MAAMC,IACHhH,KAAKyN,SAAS,CACV2iB,iBAAiB,IAErBtd,MAAM,6DAA2C9L,EAAK,aAK1E,CACI9F,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,YACN1I,KAAM,UACNsK,KAAM,uBACNxB,QAAS,KACLhN,KAAKm6C,eAAeprC,OAAO,MAC3B/O,KAAKyoB,SAAS3lB,SAAS4M,eAM3CU,cAAepQ,KAAKoQ,cACpB6L,mBAAoBjc,KAAKic,mBAEzBrY,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,4BAA6BC,yBAAyB,IACvF,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,YAAD,CAAWI,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAOC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC9E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAU,KAAKiD,QAAQ,GAC3B7R,MAAO,GACP+oB,WAAYslB,GACZjlB,gBAAgB,IAEpB,kBAAC,SAAD,CAAQxa,UAAW,WAAYiD,QAAQ,UACvC,kBAAC,SAAD,CAAQjD,UAAW,gBAAiBiD,QAAQ,mBAC5C,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,uBACxC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,yBACxC,kBAAC,SAAD,CAAQjD,UAAW,cAAeiD,QAAQ,WAC1C,kBAAC,SAAD,CAAQjD,UAAW,kBAAmBiD,QAAQ,oBAC9C,kBAAC,SAAD,CAAQjD,UAAW,cAAeiD,QAAQ,eAAe9G,SAAS,EAAO6+B,qBAAqB,IAC9F,kBAAC,SAAD,CAAQh7B,UAAW,QAASiD,QAAQ,QAAQE,SAAS,OAAO+W,cAAc,IAC1E,kBAAC,SAAD,CAAQla,UAAW,QAASiD,QAAQ,QAAQE,SAAS,SAAS+W,cAAc,EAAMnM,OAAQ,aAC1F,kBAAC,SAAD,CAAQ/N,UAAW,WAAYiD,QAAQ,WAAWE,SAAS,SAAS4K,OAAQ,aAC5E,kBAAC,SAAD,CAAQ/N,UAAW,eAAgBiD,QAAQ,oBAC3C,kBAAC,UAAD,CAASL,KAAK,aAhKlB,UA0K5B,SAAS68B,GAAmBrrC,GACxB,GAAa,OAATA,EACA,OAAO,4BACN,QAAkCzF,IAA9ByF,EAAKA,KAAKyhC,iBAA+D,OAA9BzhC,EAAKA,KAAKyhC,iBAA0D,KAA9BzhC,EAAKA,KAAKyhC,gBAChG,OAAO,yBAAKjwB,IAAI,sBAAsBC,IAAI,yBAAoB/K,QAAS,KACnE8F,MAAM,kNAIV,IAAI43C,EAAO,IAAIniC,KAAKjiB,EAAKA,KAAK4Z,OAC9B,MAAgC,yBAA5B5Z,EAAKA,KAAKqkD,cACH,uBAAG9yC,IAAI,sBACV1W,KAAM,0CAA4CmF,EAAKA,KAAKyhC,gBAAkB,oBAAiBzhC,EAAKA,KAAKurC,YAAc,MAAQvrC,EAAKA,KAAKskD,UAAY,gCAA0BF,EAAK5Y,qBAAuB,sEAC3Mt6B,OAAO,SACPy6B,cAAY,wBACZ,yBAAKn6B,IAAI,sBAAsBC,IAAI,8BAEN,gCAA5BzR,EAAKA,KAAKqkD,cACR,uBAAG9yC,IAAI,sBACV1W,KAAM,0CAA4CmF,EAAKA,KAAKyhC,gBAAkB,oBAAiBzhC,EAAKA,KAAKurC,YAAc,MAAQvrC,EAAKA,KAAKskD,UAAY,gCAA0BF,EAAK5Y,qBAAuB,wDAC3Mt6B,OAAO,SACPy6B,cAAY,wBACZ,yBAAKn6B,IAAI,sBAAsBC,IAAI,8BAGhC,GCtRJ,MAAM8yC,WAAuC5oD,IAAM0T,UAC9D5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK28B,SAAW,KAChB38B,KAAKihC,sBAAwBjhC,KAAKihC,sBAAsBr3B,KAAK5J,MAC7DA,KAAK8R,SAAW,CACZqyB,cAAe,EACf2mB,eAAgB,EAChBC,eAAgB,EAChBC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbC,YAAa,EACbC,aAAc,GAElBprD,KAAKm6C,eAAiB,IAAI/xC,IACtB,CACIC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,kDACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE9E,IAAQ6F,IAAI9C,EAAe,kDAAmD,CAC1E8B,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACJ,GAAIA,EAAIN,KAAKO,QAAS,CAClB,IAAI8e,EAAS/e,EAAIN,KAAKiG,KACtBvM,KAAK8R,SAASqyB,cAAgBxe,EAAOwe,cACrCnkC,KAAK8R,SAASg5C,eAAiBnlC,EAAOmlC,eACtC9qD,KAAK8R,SAASi5C,eAAiBplC,EAAOolC,eACtC/qD,KAAK8R,SAASk5C,aAAerlC,EAAOqlC,aACpChrD,KAAK8R,SAASm5C,gBAAkBtlC,EAAOslC,gBACvCjrD,KAAK8R,SAASo5C,YAAcvlC,EAAOulC,YACnClrD,KAAK8R,SAASq5C,YAAcxlC,EAAOwlC,YACnCnrD,KAAK8R,SAASs5C,aAAezlC,EAAOylC,aACpCprD,KAAK28B,SAAS75B,SAAS4pC,eAEvB9kC,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,OAGtFC,MAAMC,IACHY,YAAO,8DAA4CZ,EAAK,QAAS,OAG7Ei6B,sBAAsBtzB,GAClB3N,KAAK28B,SAAWhvB,EAAEC,UAGtB7K,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,kGAGb,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAKihC,sBAAuBr9B,IAAMA,GAAQ5D,KAAK28B,SAAW/4B,GACpG,kBAAC,YAAD,CAAWoO,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,iBACnD,kBAAC,aAAD,CAAYjD,UAAW,gBAAiBC,WAAY,cAAeC,cAAe,CAC9EsG,UAAU,EACVuH,OAAQ,aAER,kBAAC,QAAD,CAAOzR,KAAK,yBAEhB,kBAAC,aAAD,CAAY0D,UAAW,iBAAkBC,WAAY,cAAeC,cAAe,CAC/EsG,UAAU,EACVuH,OAAQ,aAER,kBAAC,QAAD,CAAOzR,KAAK,+BAEhB,kBAAC,aAAD,CAAY0D,UAAW,iBAAkBC,WAAY,cAAeC,cAAe,CAC/EsG,UAAU,EACVuH,OAAQ,aAER,kBAAC,QAAD,CAAOzR,KAAK,+BAEhB,kBAAC,aAAD,CAAY0D,UAAW,eAAgBC,WAAY,cAAeC,cAAe,CAC7EsG,UAAU,EACVuH,OAAQ,aAER,kBAAC,QAAD,CAAOzR,KAAK,mBAEhB,kBAAC,aAAD,CAAY0D,UAAW,kBAAmBC,WAAY,cAAeC,cAAe,CAChFsG,UAAU,EACVuH,OAAQ,aAER,kBAAC,QAAD,CAAOzR,KAAK,2BAEhB,kBAAC,aAAD,CAAY0D,UAAW,cAAeC,WAAY,cAAeC,cAAe,CAC5EsG,UAAU,EACVuH,OAAQ,aAER,kBAAC,QAAD,CAAOzR,KAAK,kBAEhB,kBAAC,aAAD,CAAY0D,UAAW,cAAeC,WAAY,cAAeC,cAAe,CAC5EsG,UAAU,EACVuH,OAAQ,aAER,kBAAC,QAAD,CAAOzR,KAAK,uBAEhB,kBAAC,aAAD,CAAY0D,UAAW,eAAgBC,WAAY,cAAeC,cAAe,CAC7EsG,UAAU,EACVuH,OAAQ,aAER,kBAAC,QAAD,CAAOzR,KAAK,yBAGpB,kBAAC,YAAD,CAAWwD,SAAS,cAAcmD,QAAQ,6CACtC,kBAAC,aAAD,KACI,kBAAC,IAAD,CACIf,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKm6C,eACjB7lC,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACR4Q,mBAAoBvU,KAAKuU,mBACzBnE,cAAepQ,KAAKoQ,cACpB6L,mBAAoBjc,KAAKic,mBACzBrY,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,2BAA4BC,yBAAyB,IACtF,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,YAAD,CAAWI,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,MAAOiD,QAAQ,aAClC,kBAAC,SAAD,CAAQjD,UAAW,KAAMiD,QAAQ,OACjC,kBAAC,SAAD,CAAQjD,UAAW,gBAAiBiD,QAAQ,sBAAiB8K,OAAQ,aACrE,kBAAC,SAAD,CAAQ/N,UAAW,kBAAmBiD,QAAQ,wBAAmB8K,OAAQ,aACzE,kBAAC,SAAD,CAAQ/N,UAAW,cAAeiD,QAAQ,eAAeE,SAAU,SAAU4K,OAAQ,aACrF,kBAAC,SAAD,CAAQ/N,UAAW,eAAgBiD,QAAQ,qBAAgBE,SAAU,SAAU4K,OAAQ,aACvF,kBAAC,UAAD,KACI,kBAAC,YAAD,CACI6P,OAAO,gBACPC,YAAY,MACZs7B,YAAY,aAEhB,kBAAC,YAAD,CACIv7B,OAAO,kBACPC,YAAY,MACZs7B,YAAY,aAEhB,kBAAC,YAAD,CACIv7B,OAAO,cACPC,YAAY,MACZs7B,YAAY,aAEhB,kBAAC,YAAD,CACIv7B,OAAO,eACPC,YAAY,MACZs7B,YAAY,uBC3KjD,MAAMC,WAA4BrpD,IAAM0T,UACnD5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTqmB,iBAAiB,EACjB65B,gBAAiB,IAAI1hC,MAAK,IAAIA,MAAOgf,eAAe,IAAIhf,MAAO2hC,YAAY,IAAI3hC,MAAO4hC,SAAU,EAAG,EAAG,EAAG,GACzGC,YAAa,IAAI7hC,MAAK,IAAIA,MAAOgf,eAAe,IAAIhf,MAAO2hC,WAAa,GAAG,IAAI3hC,MAAO4hC,SAAW,EAAG,GAAI,GAAI,GAAI,IAEpHnqD,KAAKm6C,eAAiB,IAAI/xC,IACtB,CACI2G,OAAQ,CAAC,CAAC,iBAAkB,KAAM/O,KAAK+J,MAAMkgD,iBAAkB,MAAO,CAAC,iBAAkB,KAAMjqD,KAAK+J,MAAMqgD,cAC1G/hD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,oCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMrE3D,SACI,OAEI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,qFAGb,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aAAf,kCAIJ,yBAAKA,UAAU,MAAMC,MAAO,CAAEG,UAAW,SAGzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,YACX,kBAAC,KAAD,CAASgP,aAAcjf,KAAK+J,MAAMkgD,gBAC9B/lD,KAAK,WACLoX,eAAiB3N,IACb3N,KAAKyN,SAAS,CACVw8C,gBAAiBt8C,EAAEpG,aAKvC,yBAAK0I,UAAU,MAAMC,MAAO,CAAEG,UAAW,SAGzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,aAAf,sBAIJ,yBAAKA,UAAU,MAAMC,MAAO,CAAEG,UAAW,SAGzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,YACX,kBAAC,KAAD,CAASgP,aAAcjf,KAAK+J,MAAMqgD,YAC9BlmD,KAAK,WACLoX,eAAiB3N,IACb3N,KAAKyN,SAAS,CACV28C,YAAaz8C,EAAEpG,QAEnBvH,KAAKm6C,eAAeprC,OAAO,CAAC,CAAC,iBAAkB,KAAM/O,KAAK+J,MAAMkgD,iBAAkB,MAAO,CAAC,iBAAkB,KAAMjqD,KAAK+J,MAAMqgD,eAC7HpqD,KAAKm6C,eAAe3xC,OACpBxI,KAAKyoB,SAAS3lB,SAAS4M,eAIvC,yBAAKO,UAAU,OACX,yBAAKA,UAAU,YAAYC,MAAO,CAAEG,UAAW,WAInD,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,aAGX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKm6C,eACjBhyB,kBAAkB,EAClB7T,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACR4Q,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QAAQ,CAC3BvT,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,YACN1I,KAAM,UACNsK,KAAM,qBACNxB,QAAS,KACLhN,KAAKm6C,eAAeprC,OAAO,MAC3B/O,KAAKyoB,SAAS3lB,SAAS4M,eAKvCU,cAAepQ,KAAKoQ,cACpB6L,mBAAoBjc,KAAKic,mBACzBrY,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,kBAAC,WAAD,CAAUglB,oBAAoB,IAC9B,kBAAC,aAAD,CAAYva,SAAS,IAlCzB,IAmCI,kBAAC,SAAD,CAAQ6G,SAAS,EAAMwT,SAAU,sBAAuBC,yBAAyB,IACjF,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,YAAD,CAAWI,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAOC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC9E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,UACvC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,qBAAao2C,eAAe,IACpE,kBAAC,SAAD,CAAQr5C,UAAW,MAAOiD,QAAQ,aAClC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,gBACrC,kBAAC,SAAD,CAAQjD,UAAW,cAAeiD,QAAQ,WAC1C,kBAAC,SAAD,CAAQjD,UAAW,kBAAmBiD,QAAQ,oBAC9C,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,cACvC,kBAAC,SAAD,CAAQjD,UAAW,iBAAkBiD,QAAQ,kBAAkBE,SAAU,SACzE,kBAAC,SAAD,CAAQnD,UAAW,WAAYiD,QAAQ,WAAWE,SAAS,SAAS4K,OAAQ,aAC5E,kBAAC,SAAD,CAAQ/N,UAAW,eAAgBiD,QAAQ,wBAC3C,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,YACrC,kBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,UACvC,kBAAC,UAAD,KACI,kBAAC,YAAD,CACI2a,OAAO,WACPC,YAAY,MACZs7B,YAAY,WACZG,cAAc,uBACdC,mBAAmB,WClJ5C,MAAMC,WAA2BzpD,IAAM0T,UAClD5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTkgD,gBAAiB,IAAI1hC,MAAK,IAAIA,MAAOgf,eAAe,IAAIhf,MAAO2hC,YAAY,IAAI3hC,MAAO4hC,UACtFC,YAAa,IAAI7hC,MAAK,IAAIA,MAAOgf,eAAe,IAAIhf,MAAO2hC,WAAa,GAAG,IAAI3hC,MAAO4hC,SAAW,IAErGnqD,KAAKm6C,eAAiB,IAAI/xC,IACtB,CACI2G,OAAQ,CAAC,CAAC,gBAAiB,KAAM/O,KAAK+J,MAAMkgD,iBAAkB,MAAO,CAAC,gBAAiB,KAAMjqD,KAAK+J,MAAMqgD,cACxG/hD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,mCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMrE3D,SACI,OAEI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,yFAGb,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aAAf,kCAIJ,yBAAKA,UAAU,MAAMC,MAAO,CAAEG,UAAW,SAGzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,YACX,kBAAC,KAAD,CAASgP,aAAcjf,KAAK+J,MAAMkgD,gBAC9B/lD,KAAK,OACLoX,eAAiB3N,IACb3N,KAAKyN,SAAS,CACVw8C,gBAAiBt8C,EAAEpG,aAKvC,yBAAK0I,UAAU,MAAMC,MAAO,CAAEG,UAAW,SAGzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,aAAf,sBAIJ,yBAAKA,UAAU,MAAMC,MAAO,CAAEG,UAAW,SAGzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,YACX,kBAAC,KAAD,CAASgP,aAAcjf,KAAK+J,MAAMqgD,YAC9BlmD,KAAK,OACLoX,eAAiB3N,IACb3N,KAAKyN,SAAS,CACV28C,YAAaz8C,EAAEpG,QAEnBvH,KAAKm6C,eAAeprC,OAAO,CAAC,CAAC,gBAAiB,KAAM/O,KAAK+J,MAAMkgD,iBAAkB,MAAO,CAAC,gBAAiB,KAAMjqD,KAAK+J,MAAMqgD,eAC3HpqD,KAAKm6C,eAAe3xC,OACpBxI,KAAKyoB,SAAS3lB,SAAS4M,eAIvC,yBAAKO,UAAU,OACX,yBAAKA,UAAU,aAGX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACdhC,WAAYrS,KAAKm6C,eACjBhyB,kBAAkB,EAClB7T,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACR4Q,mBAAqB5G,IACjBA,EAAE6G,eAAepR,MAAMqR,QAAQ,CAC3BvT,SAAU,QACVwL,OAAQ,WACRC,QAAS,CACLC,KAAM,YACN1I,KAAM,UACNsK,KAAM,yBACNxB,QAAS,KACLhN,KAAKm6C,eAAeprC,OAAO,MAC3B/O,KAAKyoB,SAAS3lB,SAAS4M,eAKvCU,cAAepQ,KAAKoQ,cACpB6L,mBAAoBjc,KAAKic,mBACzBrY,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,qBAAsBC,yBAAyB,IAChF,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,eAAD,CAAcI,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,EAAO0a,YAAa,SACxC,kBAAC,SAAD,CAAQvM,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAOC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC9E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,WAAYiD,QAAQ,UACvC,kBAAC,SAAD,CAAQjD,UAAW,YAAaiD,QAAQ,uBACxC,kBAAC,SAAD,CAAQjD,UAAW,MAAOiD,QAAQ,aAClC,kBAAC,SAAD,CAAQjD,UAAW,SAAUiD,QAAQ,gBACrC,kBAAC,SAAD,CAAQjD,UAAW,cAAeiD,QAAQ,WAC1C,kBAAC,SAAD,CAAQjD,UAAW,kBAAmBiD,QAAQ,oBAC9C,kBAAC,SAAD,CAAQjD,UAAW,gBAAiBiD,QAAQ,sBAAiBE,SAAU,SACvE,kBAAC,SAAD,CAAQnD,UAAW,UAAWiD,QAAQ,eAAUE,SAAS,SAAS4K,OAAQ,mBC3H1G,MAAM0rC,WAA8B1pD,IAAM0T,UACtC5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK4rD,MAAQ,EAIb5rD,KAAK6L,gBAAkB,IAAIzD,IACvB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAShE,EAAU,uBAIzBvD,EAAMorD,MAAMzkD,OAAO0kD,WACrB9rD,KAAK4rD,MAAQnrD,EAAMorD,MAAMzkD,OAAO0kD,WAGhC9rD,KAAK4rD,MAAQ,EAGjB5rD,KAAK+hB,YAAc,CAAEC,QAAShiB,KAAK4rD,OACnC5rD,KAAKiiB,oBAAsB,IAAI7Z,IAC3B,CACIC,MAAOuD,sBAAY,CACf3F,IAAK,eACLic,WAAYliB,KAAK+hB,YACjB/Z,QAAS3D,EAAW,8CAIhCrE,KAAKgmC,gBAAkB,CACnBhkB,QAAS,EACTgK,YAAa,EACb7gB,QAAS,GAIbnL,KAAKguB,uBAAyB,IAAI5lB,IAC9B,CACI2G,OAAQ,CAAC,sBAAuB,KAAK,GACrC5C,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAKgmC,gBACjBh+B,QAAS3D,EAAW,wCAIhCrE,KAAK+rD,SAAW,CACZzN,QAAS,GAGbt+C,KAAKylD,aAAe,IAAIr9C,IACpB,CACI+D,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAK+rD,SACjB/jD,QAAS3D,EAAW,8BAIhCrE,KAAKgsD,WAAa,CACdrG,KAAM,EACNrH,QAAS,GAGbt+C,KAAK4lD,eAAiB,IAAIx9C,IACtB,CACI+D,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAKgsD,WACjBhkD,QAAS3D,EAAW,gCAIhCrE,KAAKw4B,YAAc,CACfmtB,KAAM,EACNsG,OAAQ,EACRhgC,eAAgB,GAGpBjsB,KAAKs1B,gBAAkB,IAAIltB,IACvB,CACI+D,UAAU,EACV9D,MAAOuD,sBAAY,CACfsW,WAAYliB,KAAKw4B,YACjBxwB,QAAS3D,EAAW,iCAIhCrE,KAAKitB,sBAAwB,KAC7BjtB,KAAK2iD,YAAc,KACnB3iD,KAAK4iD,cAAgB,KACrB5iD,KAAKksD,eAAiB,KACtBlsD,KAAKyhC,mCAAqCzhC,KAAKyhC,mCAAmC73B,KAAK5J,MACvFA,KAAK6kD,yBAA2B7kD,KAAK6kD,yBAAyBj7C,KAAK5J,MACnEA,KAAK8kD,2BAA6B9kD,KAAK8kD,2BAA2Bl7C,KAAK5J,MACvEA,KAAKmsD,4BAA8BnsD,KAAKmsD,4BAA4BviD,KAAK5J,MACzEA,KAAK6W,aAAe7W,KAAK6W,aAAajN,KAAK5J,MAC3CA,KAAKkX,cAAgB,CACjB1I,KAAM,qBACNtK,KAAM,UACNiT,mBAAmB,GAEvBnX,KAAK8R,SAAW,CACZka,YAAa,KACbhK,QAAS,KACTiK,eAAgB,KAChB05B,KAAM,KACNsG,OAAQ,KACRx9C,QAAS,KACTuL,UAAW,MAInBnD,aAAalJ,GACT/L,IAAQ4E,KAAKhC,EAAW,uBACpB,CACIwV,UAAWha,KAAK8R,SAASkI,UACzBvL,QAASzO,KAAK8R,SAASrD,QACvBud,YAAahsB,KAAK8R,SAASka,YAC3BC,eAAgBjsB,KAAK8R,SAASma,iBAEjCtlB,KAAKC,IACEA,EAAIN,KAAKO,QACTiM,YAAM,2CAAwClM,EAAIN,KAAKiG,KAAO,2LAAoI,SAGlM3E,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAE5CC,MAAMiH,IACLpG,YAAO,oEAA6D,QAAS,OAErF+F,EAAE0J,iBAGNoqB,mCAAmC9zB,GAC/B3N,KAAKitB,sBAAwBtf,EAAEC,UAGnCi3C,yBAAyBl3C,GACrB3N,KAAK2iD,YAAch1C,EAAEC,UAGzBk3C,2BAA2Bn3C,GACvB3N,KAAK4iD,cAAgBj1C,EAAEC,UAG3Bu+C,4BAA4Bx+C,GACxB3N,KAAKksD,eAAiBv+C,EAAEC,UAG5B7K,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAKzI,GAAG,aACJ,yBAAKc,UAAU,OACX,yBAAKA,UAAU,aACX,0BAAMd,GAAG,OAAOoJ,SAAUvY,KAAK6W,cAC3B,kBAAC,IAAD,CACI/E,SAAU9R,KAAK8R,SACf4G,UAAU,EACVC,qBAAqB,EACrB5G,uBAAuB,GAEvB,kBAAC,YAAD,CAAWoD,QAAQ,uBAAkBlD,SAAU,GAC3C,kBAAC,aAAD,CAAYC,UAAW,UACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK6L,gBACjBrI,eAAe,EACfP,YAAa,MACbqP,UAAW,KACX+I,WAAW,EACXC,eAAiB3N,IACPA,EAAEpG,QACJvH,KAAKgmC,gBAAgB76B,QAAUwC,EAAEpG,UAI7C,kBAAC,eAAD,CAAcgL,QAAQ,gDACtB,kBAAC,QAAD,CAAO/D,KAAK,cAEhB,kBAAC,aAAD,CAAY0D,UAAW,cACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKiiB,oBACjBze,eAAe,EACfP,YAAa,eACbqP,UAAW,eACX+I,WAAW,EACXC,eAAiB3N,IACPA,EAAEpG,QACJvH,KAAKgmC,gBAAgBha,YAAcre,EAAEpG,MACrCvH,KAAKgmC,gBAAgBhkB,QAAUhiB,KAAK4rD,MACpC5rD,KAAKguB,uBAAuBxlB,OAC5BxI,KAAKitB,sBAAsBnqB,WAAW+K,OAAO,QAAS,UAIlE,kBAAC,eAAD,CAAc0E,QAAQ,gDACtB,kBAAC,QAAD,CAAO/D,KAAK,2BAEhB,kBAAC,aAAD,CAAY0D,UAAW,iBACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKguB,uBACjB/qB,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAKyhC,mCACpB79B,IAAMA,IAAU5D,KAAKitB,sBAAwBrpB,GAC7C0X,eAAiB3N,IACPA,EAAEpG,QACJvH,KAAKw4B,YAAYvM,eAAiBte,EAAEpG,MACpCvH,KAAK+rD,SAASzN,QAAU3wC,EAAEpG,MAC1BvH,KAAKgsD,WAAW1N,QAAU3wC,EAAEpG,MAC5BvH,KAAKylD,aAAaj9C,OAClBxI,KAAK2iD,YAAY7/C,WAAW+K,OAAO,QAAS,MAC5C7N,KAAK4iD,cAAc9/C,WAAW+K,OAAO,QAAS,MAC9C7N,KAAKksD,eAAeppD,WAAW+K,OAAO,QAAS,UAK3D,kBAAC,QAAD,CAAOW,KAAK,eACZ,kBAAC,eAAD,CAAc+D,QAAQ,0CAE1B,kBAAC,aAAD,CAAYL,UAAW,OACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKylD,aACjBxiD,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAK6kD,yBACpBjhD,IAAMA,IAAU5D,KAAK2iD,YAAc/+C,GACnC0X,eAAiB3N,IACPA,EAAEpG,QACJvH,KAAKgsD,WAAWrG,KAAOh4C,EAAEpG,MACzBvH,KAAKw4B,YAAYmtB,KAAO3lD,KAAK2iD,YAAY7/C,WAAW+K,OAAO,SAC3D7N,KAAK4lD,eAAep9C,OACpBxI,KAAK4iD,cAAc9/C,WAAW+K,OAAO,QAAS,UAI1D,kBAAC,QAAD,CAAOW,KAAK,aAEhB,kBAAC,aAAD,CAAY0D,UAAW,SACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK4lD,eACjB3iD,YAAa,MACbqP,UAAW,KACXlC,cAAepQ,KAAK8kD,2BACpBlhD,IAAMA,IAAU5D,KAAK4iD,cAAgBh/C,GACrC0X,eAAiB3N,IACPA,EAAEpG,QAEJvH,KAAKw4B,YAAYyzB,OAASjsD,KAAK4iD,cAAc9/C,WAAW+K,OAAO,SAC/D7N,KAAKs1B,gBAAgB9sB,WAIjC,kBAAC,QAAD,CAAOgG,KAAK,kBAEhB,kBAAC,aAAD,CAAY0D,UAAW,UACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKs1B,gBACjBryB,YAAa,WACbqP,UAAW,KACXlC,cAAepQ,KAAKmsD,4BACpBvoD,IAAMA,IAAU5D,KAAKksD,eAAiBtoD,KAE1C,kBAAC,eAAD,CAAc2O,QAAQ,gCACtB,kBAAC,QAAD,CAAO/D,KAAK,WAEhB,kBAAC,aAAD,CAAY0D,UAAW,YAAaE,cAAe,CAAE0B,YAAa,yDAC9D3B,WAAW,eACX,kBAAC,eAAD,CAAcI,QAAQ,6CACtB,kBAAC,QAAD,CAAO/D,KAAK,yBAGpB,kBAAC,aAAD,CAAYqK,oBAAoB,OAC5B3B,cAAelX,KAAKkX,uBAW7Cy0C,UCjTf,MAAMS,WAAiCnqD,IAAM0T,UACzC5V,YAAYU,GACRyB,MAAMzB,GAEN,MAAMg4B,EAAUh4B,EAAMorD,MAAMzkD,OAAOqH,QAC7B0kB,EAAc1yB,EAAMorD,MAAMzkD,OAAOgE,YAEvC,IACIzK,aAAaoN,WAAW,UACxBpN,aAAaoN,WAAW,WACxBpN,aAAaoN,WAAW,eAC1B,MAAOC,IAET,MAAM2I,EAAOhW,aAAaC,QAAQ,QACtB,MAAR+V,GACAC,KAAO/T,QAAQ8T,GAEnB9L,SAASC,MAAQ7J,OAAOgD,QAAQ8G,UAChC/K,KAAK8R,SAAW,CACZgF,aAAc2hB,EAAU,IAAMtF,EAAc,WAC5Cpc,MAAOtW,EAAMorD,MAAMzkD,OAAO2P,OAdhB,iGAiBAtW,EAAMorD,MAAMzkD,OAAO2P,MAC7BnP,YAAO,4DAGPhG,IAAQ4E,KAAKxC,EAAU,oBACjBhE,KAAK8R,UACNnL,KAAKC,IACFkH,EAAK1N,MAAM,KAGPwG,EAAIN,KAAKnG,QAAUyG,EAAIN,KAAK+E,UAAUwE,IAAM,IAAMjJ,EAAIN,KAAK+E,UAAUyE,OACrElJ,EAAIN,KAAKjD,KAAOuD,EAAIN,KAAK+E,UAAUoH,iBACnC7L,EAAIN,KAAKiI,IAAM3H,EAAIN,KAAK+E,UAAUkD,IAClC3H,EAAIN,KAAKgF,GAAK1E,EAAIN,KAAK+E,UAAUC,GACjC3K,aAAaG,QAAQ,SAAUO,KAAKC,UAAUsF,EAAIN,OAGlD9F,EAAQoB,QARe,GAWK,mBAAxBpB,EAAQoB,QAAQ2M,KAGa,iBAAxB/N,EAAQoB,QAAQ2M,KAGQ,sBAAxB/N,EAAQoB,QAAQ2M,KAGQ,SAAxB/N,EAAQoB,QAAQ2M,KAGQ,gBAAxB/N,EAAQoB,QAAQ2M,IAXrBvO,KAAKS,MAAM8B,QAAQC,KAAK,wBAcK,aAAxBhC,EAAQoB,QAAQ2M,IACrBvO,KAAKS,MAAM8B,QAAQC,KAAK,kBAEK,gBAAxBhC,EAAQoB,QAAQ2M,IACrBvO,KAAKS,MAAM8B,QAAQC,KAAK,qBAGxBxC,KAAKS,MAAM8B,QAAQC,KAAK,aAKnCuE,MAAOiH,IAEAA,EAAMtG,SACNE,YAAOoG,EAAMtG,SAASpB,KAAKiM,QAAS,QAAS,KACtCvE,EAAMqF,QACbzL,YAAOoG,EAAMqF,QAAS,QAAS,KAE/BzL,YAAO,6BAAyB,QAAS,OAM7D7E,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,2EAKDw0C,UC3Ff,MAAMC,WAA8BpqD,IAAM0T,UACtC5V,YAAYU,GACRyB,MAAMzB,GAEN,MAAMg4B,EAAUh4B,EAAMorD,MAAMzkD,OAAOqH,QAC7B69C,EAAqB7rD,EAAMorD,MAAMzkD,OAAOmlD,mBACxCp5B,EAAc1yB,EAAMorD,MAAMzkD,OAAOgE,YACjCohD,EAAQ,+FACd,GAAIA,IAAU/rD,EAAMorD,MAAMzkD,OAAO2P,MAC7BnP,YAAO,gEAEN,CACD,IACIjH,aAAaoN,WAAW,UACxBpN,aAAaoN,WAAW,WACxBpN,aAAaoN,WAAW,eAC1B,MAAOC,IAET,MAAM2I,EAAOhW,aAAaC,QAAQ,QACtB,MAAR+V,GACAC,KAAO/T,QAAQ8T,GAEnB9L,SAASC,MAAQ7J,OAAOgD,QAAQ8G,UAChC/K,KAAK8R,SAAW,CACZgF,aAAc2hB,EAAU,IAAM6zB,EAAqB,IAAMn5B,EAAc,QACvEpc,MAAOtW,EAAMorD,MAAMzkD,OAAO2P,OAE1By1C,IAAU/rD,EAAMorD,MAAMzkD,OAAO2P,MAC7BnP,YAAO,4DAGPhG,IAAQ4E,KAAKxC,EAAU,oBACjBhE,KAAK8R,UACNnL,KAAKC,IACFkH,EAAK1N,MAAM,KAGPwG,EAAIN,KAAKnG,QAAUyG,EAAIN,KAAK+E,UAAUwE,IAAM,IAAMjJ,EAAIN,KAAK+E,UAAUyE,OACrElJ,EAAIN,KAAKjD,KAAOuD,EAAIN,KAAK+E,UAAUoH,iBACnC7L,EAAIN,KAAKiI,IAAM3H,EAAIN,KAAK+E,UAAUkD,IAClC3H,EAAIN,KAAKgF,GAAK1E,EAAIN,KAAK+E,UAAUC,GACjC3K,aAAaG,QAAQ,SAAUO,KAAKC,UAAUsF,EAAIN,OAGlD9F,EAAQoB,QARe,GAWK,mBAAxBpB,EAAQoB,QAAQ2M,KAGa,iBAAxB/N,EAAQoB,QAAQ2M,KAGQ,sBAAxB/N,EAAQoB,QAAQ2M,KAGQ,SAAxB/N,EAAQoB,QAAQ2M,KAGQ,gBAAxB/N,EAAQoB,QAAQ2M,IAXrBvO,KAAKS,MAAM8B,QAAQC,KAAK,wBAcK,aAAxBhC,EAAQoB,QAAQ2M,IACrBvO,KAAKS,MAAM8B,QAAQC,KAAK,kBAEK,gBAAxBhC,EAAQoB,QAAQ2M,IACrBvO,KAAKS,MAAM8B,QAAQC,KAAK,qBAGxBxC,KAAKS,MAAM8B,QAAQC,KAAK,aAKnCuE,MAAOiH,IAEAA,EAAMtG,SACNE,YAAOoG,EAAMtG,SAASpB,KAAKiM,QAAS,QAAS,KACtCvE,EAAMqF,QACbzL,YAAOoG,EAAMqF,QAAS,QAAS,KAE/BzL,YAAO,6BAAyB,QAAS,QAOjE7E,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,2EAKDy0C,UC9FA,MAAMI,WAAuBxqD,IAAM0T,UAC9C5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACT2W,SAAU,IAEd1gB,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf5D,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAK0sD,mBAAqB,KAC1B1sD,KAAK8R,SAAW,CACZ4hB,MAAO,CAAEpoB,GAAI,OAIrBqhD,WAAWrmD,GACP,OAAMA,EAAKuG,KAEH,kBAAC,IAAM+K,SAAP,KACI,uBAAGzW,KAAMmF,EAAKua,OAAO,yBAAK/I,IAAKxR,EAAKuG,KAAMkL,IAAKzR,EAAKsmD,MAAO18C,MAAO,CAAE5M,MAAO,QAASoN,OAAQ,OAAQP,SAAU,QAASE,UAAW,OAAQw8C,SAAU,QAASC,UAAW,YAIzKxmD,EAAKua,OAAwB,OAAdva,EAAKuG,UAA8BhM,IAAdyF,EAAKuG,KAE5C,kBAAC,IAAM+K,SAAP,KACI,uBAAGzW,KAAMmF,EAAKua,MAAO9I,IAAKzR,EAAKsmD,MAAOp1C,OAAO,SAASK,IAAI,uBAAuBvR,EAAKsmD,QAM1F,kBAAC,IAAMh1C,SAAP,KACKtR,EAAKsmD,OAKtB7pD,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,8FAGb,yBAAKA,UAAU,MAAMC,MAAO,CAAEmnB,WAAY,SACtC,yBAAKpnB,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAUlO,IAAMA,GAAQ5D,KAAK0sD,mBAAqB9oD,EACnEmO,uBAAuB,GAEvB,kBAAC,aAAD,CAAYG,UAAW,WAAYyc,YAAY,EAC3Cxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8hB,gBACjBne,QAAS,KACTH,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXiJ,iBAAiB,EACjBnL,cAAepQ,KAAK4hB,4BACpBhe,IAAMA,IAAU5D,KAAKuhB,eAAiB3d,GACtC0X,eAAiB3N,IACb/L,IAAQ6F,IAAI9C,EAAe,6BAA+BgJ,EAAEpG,MAAO,CAC/Dd,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACViT,SAAU9Z,EAAIN,KAAKiG,OAGvB3E,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,OAGtFC,MAAMC,IACHY,YAAO,8DAA4CZ,EAAK,QAAS,UAIjF,kBAAC,QAAD,CAAOwH,KAAK,mBAM5B,yBAAKyB,UAAU,OACX,yBAAKA,UAAU,aAEPjQ,KAAK+J,MAAM2W,SAASC,IAAI,CAACgC,EAAOhT,IAExB,yBAAKM,UAAU,MAAMhK,IAAK0J,GAElB3P,KAAK2sD,WAAWhqC,UCzGjD,MAAMoqC,WAAoB9qD,IAAM0T,UAC3C5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACT2W,SAAU,IAEd1gB,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf5D,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAK0sD,mBAAqB,KAC1B1sD,KAAK8R,SAAW,CACZ4hB,MAAO,CAAEpoB,GAAI,OAIrBqhD,WAAWrmD,GACP,OAAMA,EAAKuG,KAEH,kBAAC,IAAM+K,SAAP,KACI,uBAAGzW,KAAMmF,EAAKua,OAAO,yBAAK/I,IAAKxR,EAAKuG,KAAMkL,IAAKzR,EAAKsmD,MAAO18C,MAAO,CAAE5M,MAAO,QAASoN,OAAQ,OAAQP,SAAU,QAASE,UAAW,OAAQw8C,SAAU,QAASC,UAAW,YAIzKxmD,EAAKua,OAAwB,OAAdva,EAAKuG,UAA8BhM,IAAdyF,EAAKuG,KAE5C,kBAAC,IAAM+K,SAAP,KACI,uBAAGzW,KAAMmF,EAAKua,MAAO9I,IAAKzR,EAAKsmD,MAAOp1C,OAAO,SAASK,IAAI,uBAAuBvR,EAAKsmD,QAM1F,kBAAC,IAAMh1C,SAAP,KACKtR,EAAKsmD,OAKtB7pD,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,iHAGb,yBAAKA,UAAU,MAAMC,MAAO,CAAEmnB,WAAY,SACtC,yBAAKpnB,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAUlO,IAAMA,GAAQ5D,KAAK0sD,mBAAqB9oD,EACnEmO,uBAAuB,GAEvB,kBAAC,aAAD,CAAYG,UAAW,WAAYyc,YAAY,EAC3Cxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8hB,gBACjBne,QAAS,KACTH,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXiJ,iBAAiB,EACjBnL,cAAepQ,KAAK4hB,4BACpBhe,IAAMA,IAAU5D,KAAKuhB,eAAiB3d,GACtC0X,eAAiB3N,IACb/L,IAAQ6F,IAAI9C,EAAe,0BAA4BgJ,EAAEpG,MAAO,CAC5Dd,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACViT,SAAU9Z,EAAIN,KAAKiG,OAGvB3E,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,OAGtFC,MAAMC,IACHY,YAAO,8DAA4CZ,EAAK,QAAS,UAIjF,kBAAC,QAAD,CAAOwH,KAAK,mBAM5B,yBAAKyB,UAAU,OACX,yBAAKA,UAAU,aAEPjQ,KAAK+J,MAAM2W,SAASC,IAAI,CAACgC,EAAOhT,IAExB,yBAAKM,UAAU,MAAMhK,IAAK0J,GAElB3P,KAAK2sD,WAAWhqC,UCzGjD,MAAMqqC,WAAmB/qD,IAAM0T,UAC1C5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACT2W,SAAU,IAEd1gB,KAAK8hB,gBAAkB,IAAI1Z,IACvB,CACI+D,UAAU,EACVgQ,SAAU,IACV9T,MAAOuD,sBAAY,CACf5D,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAK0sD,mBAAqB,KAC1B1sD,KAAK8R,SAAW,CACZ4hB,MAAO,CAAEpoB,GAAI,OAIrBqhD,WAAWrmD,GACP,OAAMA,EAAKuG,KAEH,kBAAC,IAAM+K,SAAP,KACI,uBAAGzW,KAAMmF,EAAKua,OAAO,yBAAK/I,IAAKxR,EAAKuG,KAAMkL,IAAKzR,EAAKsmD,MAAO18C,MAAO,CAAE5M,MAAO,QAASoN,OAAQ,OAAQP,SAAU,QAASE,UAAW,OAAQw8C,SAAU,QAASC,UAAW,YAIzKxmD,EAAKua,OAAwB,OAAdva,EAAKuG,UAA8BhM,IAAdyF,EAAKuG,KAE5C,kBAAC,IAAM+K,SAAP,KACI,uBAAGzW,KAAMmF,EAAKua,MAAO9I,IAAKzR,EAAKsmD,MAAOp1C,OAAO,SAASK,IAAI,uBAAuBvR,EAAKsmD,QAM1F,kBAAC,IAAMh1C,SAAP,KACKtR,EAAKsmD,OAKtB7pD,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,uGAGb,yBAAKA,UAAU,MAAMC,MAAO,CAAEmnB,WAAY,SACtC,yBAAKpnB,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAUlO,IAAMA,GAAQ5D,KAAK0sD,mBAAqB9oD,EACnEmO,uBAAuB,GAEvB,kBAAC,aAAD,CAAYG,UAAW,WAAYyc,YAAY,EAC3Cxc,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAK8hB,gBACjBne,QAAS,KACTH,eAAe,EACfP,YAAa,MACbqP,UAAW,KACXiJ,iBAAiB,EACjBnL,cAAepQ,KAAK4hB,4BACpBhe,IAAMA,IAAU5D,KAAKuhB,eAAiB3d,GACtC0X,eAAiB3N,IACb/L,IAAQ6F,IAAI9C,EAAe,yBAA2BgJ,EAAEpG,MAAO,CAC3Dd,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAElDC,KAAKC,IACAA,EAAIN,KAAKO,QACT7G,KAAKyN,SAAS,CACViT,SAAU9Z,EAAIN,KAAKiG,OAGvB3E,YAAO,8DAA4ChB,EAAIN,KAAKQ,aAAc,QAAS,OAGtFC,MAAMC,IACHY,YAAO,8DAA4CZ,EAAK,QAAS,UAIjF,kBAAC,QAAD,CAAOwH,KAAK,mBAM5B,yBAAKyB,UAAU,OACX,yBAAKA,UAAU,aAEPjQ,KAAK+J,MAAM2W,SAASC,IAAI,CAACgC,EAAOhT,IAExB,yBAAKM,UAAU,MAAMhK,IAAK0J,GAElB3P,KAAK2sD,WAAWhqC,UCjGjD,MAAMsqC,WAAqBhrD,IAAM0T,UAC5C5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACTmjD,WAAW,GAEfltD,KAAK8R,SAAW,CACZxG,GAAI,EACJorB,MAAO,CAAEprB,GAAI,GACbuE,IAAK,GACL6iB,WAAY,GAEhB1yB,KAAKyoB,SAAW,KAChBzoB,KAAKyM,MAAQ,KACbzM,KAAKmtD,iBAAmB,KACxBntD,KAAK+Q,UAAY,KACjB/Q,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAK+xB,sBAAwB/xB,KAAK+xB,sBAAsBnoB,KAAK5J,MAC7DA,KAAKotD,8BAAgCptD,KAAKotD,8BAA8BxjD,KAAK5J,MAC7EA,KAAKotD,8BAAgCptD,KAAKotD,8BAA8BxjD,KAAK5J,MAC7EA,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKyoD,mBAAqBzoD,KAAKyoD,mBAAmB7+C,KAAK5J,MACvDA,KAAKs1B,gBAAkB,IAAIltB,IACvB,CACI+D,UAAU,EACVgQ,SAAU,GACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAAS3D,EAAW,iBACpByE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAMjE1G,KAAKqtD,uBAAyB,IAAIjlD,IAAW,CACzC+D,UAAU,EACVgQ,SAAU,GACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASlD,EAAS,4BAClBgE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YASjEuV,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhDkT,sBAAsBpkB,GAClB3N,KAAKyoB,SAAW9a,EAAEC,UAGtB6lB,qBACmC,OAA3BzzB,KAAKyoB,SAAS3lB,WACd9C,KAAKyoB,SAAS3lB,SAASyuB,iBACvBvxB,KAAKyoB,SAAS3lB,SAAS+K,OAAO,mBAAoB,IAI1Du/C,8BAA8Bz/C,GAC1B3N,KAAKmtD,iBAAmBx/C,EAAEC,UAG9B66C,mBAAmB96C,GACf3N,KAAK+Q,UAAYpD,EAAEC,UAGvB2G,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,OACNF,KAAM,MACNI,QAAS,KACLhN,KAAK8R,SAAW,CACZxG,GAAI,EACJorB,MAAO,CAAEprB,GAAI,MACbuE,IAAK,GACL6iB,WAAY,EACZD,SAAS,GAEbzyB,KAAK6wB,aAIjB,CACI3vB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,aACNF,KAAM,OACNI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,GAKlBzM,KAAK8R,SAAW,CACZxG,GAAImB,EAAMnB,GACVorB,MAAO,CAAEprB,GAAImB,EAAMiqB,MAAMprB,IACzBuE,IAAKpD,EAAMoD,IACX4iB,QAAShmB,EAAMgmB,QACfC,WAAYjmB,EAAMimB,YAEtB1yB,KAAK6wB,WAXL/d,YAAM,6BAAsB,iBAiB5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SACN4I,KAAM,MACNF,KAAM,QACNI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACnB,GAAc,OAAVA,QAA4B5L,IAAV4L,EAIjB,CACYyG,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK1B,EAAS,oBAAsB2H,EAAMnB,GAC9C,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD5H,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,sBAGL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,cApB3DgM,YAAM,6BAAsB,iBA6B5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzCI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,EAMlB7K,IAAQ4E,KAAK1B,EAAS,yBAA2B2H,EAAMnB,GAAI,KACvD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,qBACL7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAnBnDgM,YAAM,6BAAsB,iBA0B5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1CI,QAAS,KACL,MAAMP,EAAQzM,KAAKyM,MACL,OAAVA,QAA4B5L,IAAV4L,EAMlB7K,IAAQ4E,KAAK1B,EAAS,yBAA2B2H,EAAMnB,GAAI,KACvD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,qBACL7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAnBnDgM,YAAM,6BAAsB,iBA0B5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAAS4M,aAInC,CACIxO,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrCE,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CkuB,aACI1wB,KAAKyN,SAAS,CACVy/C,WAAW,IAEfltD,KAAKyzB,qBAGT5C,UACI7wB,KAAKyN,SAAS,CACVy/C,WAAW,IAGnBnqD,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,8BAGb,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKqtD,uBACjB/4C,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRyM,cAAepQ,KAAK+xB,sBACpBxd,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzBrY,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,kBAAmBC,yBAAyB,IAC7E,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,kBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,kBAAC,eAAD,CAAc5T,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,UAAUhH,SAAS,IAC1E,kBAAC,SAAD,CAAQ6D,UAAW,MAAOiD,QAAQ,WAAME,SAAS,eAMjE,kBAAC,QAAD,CAAOzE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAME,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EAC5I9C,QAASrO,KAAK+J,MAAMmjD,UACpB9gD,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IACe3N,KAAKmtD,iBAAiBrqD,SAASgc,WAClCC,SAKhBnd,IAAQ4E,KAAK1B,EAAS,+BAClB9E,KAAK8R,SACL,CACIrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAK0wB,cAGL9oB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAI1CC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,UAM7C,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAK0wB,iBAMxC9sB,IAAMA,GAAQ5D,KAAK+Q,UAAYnN,EAAKwM,cAAepQ,KAAKyoD,oBAExD,kBAAC,WAAD,CAAUr3C,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAKotD,8BAA+BxpD,IAAMA,GAAQ5D,KAAKmtD,iBAAmBvpD,EACpHmO,uBAAuB,GAEvB,kBAAC,YAAD,CAAWC,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,oBACnD,kBAAC,aAAD,CAAYjD,UAAW,WACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKs1B,gBACjB9xB,eAAe,EACfP,YAAa,WACbqP,UAAW,OAEf,kBAAC,QAAD,CAAO9D,KAAK,YAGhB,kBAAC,aAAD,CAAY0D,UAAW,MAAOyc,YAAY,EACtCxc,WAAW,aAEX,kBAAC,QAAD,CAAO3D,KAAK,aACZ,kBAAC,eAAD,CAAc+D,QAAQ,yCCrXnD,MAAM+6C,WAAYrrD,IAAM0T,UACnC5V,YAAYU,GACRyB,MAAMzB,GADS,KAyEnBiwB,WAAa,KACT1wB,KAAKyN,SAAS,CACV8/C,YAAY,IAEhBvtD,KAAKyzB,sBA1ELzzB,KAAK+J,MAAQ,CACTwjD,YAAY,GAEhBvtD,KAAKwtD,mBAAqB,IAAIplD,IAAW,CACrC+D,UAAU,EACVgQ,SAAU,GACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASlD,EAAS,eAClBgE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D1G,KAAKytD,uBAAyB,IAAIrlD,IAC9B,CACI+D,UAAU,EACV9D,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASlD,EAAS,+BAClBgE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAKjE1G,KAAKqtD,uBAAyB,IAAIjlD,IAAW,CACzC+D,UAAU,EACVgQ,SAAU,GACV9T,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASlD,EAAS,4BAClBgE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D1G,KAAK+xB,sBAAwB/xB,KAAK+xB,sBAAsBnoB,KAAK5J,MAC7DA,KAAK0tD,qBAAuB1tD,KAAK0tD,qBAAqB9jD,KAAK5J,MAC3DA,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MACvDA,KAAKic,mBAAqBjc,KAAKic,mBAAmBrS,KAAK5J,MACvDA,KAAKyoB,SAAW,KAChBzoB,KAAK2tD,QAAU,KACf3tD,KAAKyM,MAAQ,KACbzM,KAAK8R,SAAW,CACZxG,GAAI,EACJsiD,OAAQ,CAAEtiD,GAAI,GACduiD,OAAQ,CAAEviD,GAAI9K,EAAQoB,QAAQ0J,IAC9BwiD,UAAW,CAAExiD,GAAI,GACjBmnB,SAAS,EACTC,WAAY,EACZ2iB,gBAAiB,IAAI9sB,KACrB+sB,YAAa,IAAI/sB,KACjBpI,SAAU,GACV4tC,gBAAiB,GACjB7f,MAAO,GAIfrd,UACI7wB,KAAKyN,SAAS,CACV8/C,YAAY,IAWpBx7B,sBAAsBpkB,GAClB3N,KAAKyoB,SAAW9a,EAAEC,UAGtBqO,mBAAmB2C,GACf5e,KAAKyM,MAAQmS,EAAcC,iBAAiB,GAGhD6uC,qBAAqB//C,GACjB3N,KAAK2tD,QAAUhgD,EAAEC,UAGrB6lB,qBACmC,OAA3BzzB,KAAKyoB,SAAS3lB,WACd9C,KAAKyoB,SAAS3lB,SAASyuB,iBACvBvxB,KAAKyoB,SAAS3lB,SAAS+K,OAAO,mBAAoB,IAI1D0G,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,OACNF,KAAM,MACNI,QAAS,KACLhN,KAAK8R,SAAW,CACZxG,GAAI,EACJsiD,OAAQ,CAAEtiD,GAAI,GACduiD,OAAQ,CAAEviD,GAAI9K,EAAQoB,QAAQ0J,IAC9BwiD,UAAW,CAAExiD,GAAI,GACjBmnB,SAAS,EACTC,WAAY,EACZ2iB,gBAAiB,IAAI9sB,KACrB+sB,YAAa,IAAI/sB,KACjBpI,SAAU,GACV4tC,gBAAiB,GACjB7f,MAAO,GAEXluC,KAAK6wB,aAIjB,CACI3vB,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UACN4I,KAAM,aACNF,KAAM,OACNI,QAAS,KACL,MAAMghD,EAAehuD,KAAKyM,MACL,OAAjBuhD,QAA0CntD,IAAjBmtD,EAIzBA,EAAaH,OAAOviD,KAAO9K,EAAQoB,QAAQ0J,IAK3CtL,KAAK8R,SAAW,CACZxG,GAAI0iD,EAAa1iD,GACjBuE,IAAKm+C,EAAan+C,IAClB4iB,QAASu7B,EAAav7B,QACtBC,WAAYs7B,EAAat7B,WACzBk7B,OAAQ,CAAEtiD,GAAI0iD,EAAaJ,OAAOtiD,IAClCuiD,OAAQ,CAAEviD,GAAI9K,EAAQoB,QAAQ0J,IAC9BwiD,UAAW,CAAExiD,GAAI0iD,EAAaF,UAAUxiD,IACxC+pC,gBAAiB2Y,EAAa3Y,gBAC9BC,YAAa0Y,EAAa1Y,YAC1Bn1B,SAAU6tC,EAAa7tC,SACvB4tC,gBAAiBC,EAAaD,gBAC9B7f,MAAO8f,EAAa9f,OAExBluC,KAAK6wB,WAlBL/d,YAAM,uGAA6D,cAJnEA,YAAM,6BAAsB,iBA4B5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SACN4I,KAAM,MACNF,KAAM,QACNI,QAAS,KACL,GAAmB,OAAfhN,KAAKyM,YAAiC5L,IAAfb,KAAKyM,MAI3B,CACYyG,YAAQ,8IAA6H,cAC3IvM,KAAMwM,KACY,IAAjBA,GACAvR,IAAQ4E,KAAK1B,EAAS,WAAa9E,KAAKyM,MAAMnB,GAC1C,KAAM,CACN7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KAAKC,IACEA,EAAIN,KAAKO,SACTe,YAAO,iDAAqC,UAAW,KACvD5H,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,sBAGL7rB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,cApB3DgM,YAAM,6BAAsB,iBA6B5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,SAAU4I,KAAM,YAAaF,KAAM,UACzCI,QAAS,KACc,OAAfhN,KAAKyM,YAAiC5L,IAAfb,KAAKyM,MAM5B7K,IAAQ4E,KAAK1B,EAAS,gBAAkB9E,KAAKyM,MAAMnB,GAAI,KACnD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,qBACL7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAnBnDgM,YAAM,6BAAsB,iBA0B5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,YAAaF,KAAM,aAC1CI,QAAS,KACc,OAAfhN,KAAKyM,YAAiC5L,IAAfb,KAAKyM,MAM5B7K,IAAQ4E,KAAK1B,EAAS,gBAAkB9E,KAAKyM,MAAMnB,GAAI,KACnD,CACI7E,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAIpDC,KAAKC,IACEA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAKyzB,qBACL7rB,YAAO,2CAAkC,UAAW,MAGpDA,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAnBnDgM,YAAM,6BAAsB,iBA0B5C,CACI5R,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKyoB,SAAS3lB,SAAS4M,aAInC,CACIxO,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW0I,KAAM,OAAQE,KAAM,YACrCE,QAAS,KACLhN,KAAKS,MAAM8B,QAAQC,KAAK,aAO5CO,SACI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,4BAAK,4BAGb,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CACImE,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAKwtD,mBACjBl5C,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB/G,UAAW,CAAEC,KAAM,UACnB+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRyM,cAAepQ,KAAK+xB,sBACpBxd,mBAAoBvU,KAAKuU,mBACzB0H,mBAAoBjc,KAAKic,mBACzBrY,IAAMA,GAAQ5D,KAAKyoB,SAAW7kB,GAE9B,kBAAC,SAAD,CAAQsR,SAAS,EAAMwT,SAAU,iBAAkBC,yBAAyB,IAC5E,kBAAC,gBAAD,CAAezT,SAAS,IACxB,kBAAC,UAAD,CAASJ,KAAM,UACf,kBAAC,WAAD,CAAU8T,oBAAoB,EAAMC,WAAW,aAC/C,kBAAC,aAAD,CAAYxa,SAAS,EAAMya,eAAe,8FAC1C,kBAAC,eAAD,CAAc5T,SAAS,IACvB,kBAAC,YAAD,CAAWA,SAAS,IACpB,kBAAC,YAAD,CAAW7G,SAAS,IACpB,kBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,kBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,kBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,IACrD,kBAAC,SAAD,CAAQ6D,UAAW,UAAWiD,QAAQ,QAAQE,SAAS,UAAUhH,SAAS,IAC1E,kBAAC,SAAD,CAAQ6D,UAAW,cAAeiD,QAAQ,kBAAeE,SAAS,WAClE,kBAAC,SAAD,CAAQnD,UAAW,MAAOiD,QAAQ,WAAME,SAAS,WACjD,kBAAC,SAAD,CAAQnD,UAAW,aAAciD,QAAQ,SAASE,SAAS,WAC3D,kBAAC,SAAD,CAAQnD,UAAW,aAAciD,QAAQ,SAASE,SAAS,eAK3E,kBAAC,QAAD,CAAOzE,WAAW,EAAMC,SAAS,EAAMC,aAAa,EAAME,2BAA2B,EAAOC,aAAc,CAAEC,UAAW,MAAQC,iBAAiB,EAC5I9C,QAASrO,KAAK+J,MAAMwjD,WACpBnhD,aACI,CACI,CACIlL,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,SAAUtK,KAAM,UAAW4I,KAAM,SAAUF,KAAM,QACrDI,QAAUW,IAER,GADuB3N,KAAK2tD,QAAQ7qD,SAASgc,WACzBC,QAGf,CACD,IAAIsrC,EAAW,IAAI9hC,KAAKvoB,KAAK8R,SAASujC,iBACtCgV,EAAS/b,SAAS+b,EAAS9b,WAAa,GACxCvuC,KAAK8R,SAASujC,gBAAkBgV,EAChC,IAAIC,EAAW,IAAI/hC,KAAKvoB,KAAK8R,SAASwjC,aACtCgV,EAAShc,SAASgc,EAAS/b,WAAa,GACxCvuC,KAAK8R,SAASwjC,YAAcgV,EAC5B1oD,IAAQ4E,KAAK1B,EAAS,kBAClB9E,KAAK8R,SACL,CACIrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGvDC,KAAKC,IACCA,EAAIN,KAAKO,SACT7G,KAAKyoB,SAAS3lB,SAAS4M,UACvB1P,KAAK0wB,cAGL9oB,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,OAI1CC,MAAMC,IACHY,YAAOZ,EAAK,QAAS,WAM7C,CACI9F,SAAU,QAASwL,OAAQ,WAAYC,QAAS,CAC5C6B,KAAM,YAAUtK,KAAM,SAAU4I,KAAM,0BAASF,KAAM,SACnDI,QAAS,KAAQhN,KAAK0wB,kBAMxC,kBAAC,WAAD,CAAUtf,GAAI,SAAUC,GAAI,SAAUC,GAAIrQ,SAC1C,kBAAC,IAAD,CAAYkO,GAAI,aAAcoC,kBAAkB,WAAWC,iBAAiB,EAAMC,eAAe,EAAMC,eAAe,GAClH,yBAAKzB,UAAU,OACX,yBAAKA,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAK0tD,qBAAsB9pD,IAAMA,GAAQ5D,KAAK2tD,QAAU/pD,EAClGmO,uBAAuB,GAEvB,kBAAC,YAAD,CAAWC,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,sBACnD,kBAAC,aAAD,CAAYjD,UAAW,eACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKqtD,uBACjB7pD,eAAe,EACfP,YAAa,MACbqP,UAAW,OAEf,kBAAC,QAAD,CAAO9D,KAAK,yBAEhB,kBAAC,aAAD,CAAY0D,UAAW,YACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKytD,uBACjBjqD,eAAe,EACfP,YAAa,UACbqP,UAAW,OAEf,kBAAC,QAAD,CAAO9D,KAAK,YAEhB,kBAAC,aAAD,CAAY0D,UAAW,YACnBC,WAAW,cACXC,cAAe,CACXC,WAAYrS,KAAKytD,uBACjBjqD,eAAe,EACfP,YAAa,UACbqP,UAAW,OAEf,kBAAC,QAAD,CAAO9D,KAAK,YAEhB,kBAAC,aAAD,CAAY0D,UAAW,QACnBC,WAAW,cACXC,cAAe,CACXC,WAAYpR,OAAOgD,QAAQgqD,SAC3BzqD,eAAe,EACfP,YAAa,OACbqP,UAAW,UAEf,kBAAC,QAAD,CAAO9D,KAAK,WAEhB,kBAAC,aAAD,CAAY0D,UAAW,MAAOyc,YAAY,EACtCxc,WAAW,aAEX,kBAAC,QAAD,CAAO3D,KAAK,aACZ,kBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,kBAAC,aAAD,CAAYL,UAAW,kBAAmBC,WAAY,YAAaC,cAAe,CAC9ElO,KAAM,YACPyqB,YAAY,GAEX,kBAAC,QAAD,CAAOngB,KAAK,kCACZ,kBAAC,eAAD,CAAc+D,QAAQ,sDAE1B,kBAAC,aAAD,CAAYL,UAAW,cAAeC,WAAY,YAAaC,cAAe,CAC1ElO,KAAM,YACPyqB,YAAY,GAEX,kBAAC,QAAD,CAAOngB,KAAK,sBACZ,kBAAC,eAAD,CAAc+D,QAAQ,0CAE1B,kBAAC,aAAD,CAAYL,UAAW,kBAAmByc,YAAY,EAClDxc,WAAW,aAEX,kBAAC,QAAD,CAAO3D,KAAK,+CAGpB,kBAAC,YAAD,CAAWwD,SAAS,cAAcC,SAAU,EAAGkD,QAAQ,IACnD,kBAAC,aAAD,CAAYjD,UAAW,WAAYC,WAAY,eAAgBC,cAAe,CAC1E1B,OAAQ,IACR1F,QAAS,CACL5H,MAAO,CACH,OACA,SACA,QACA,aACA,OACA,CACI,WAAc,SACd,aAAgB,CACZ,EACA,EACA,GACA,IAGR,WACA,SACA,QACA,YACA,cACA,YACA,aACA,iBACA,iBACA,cACA,aACA,YACA,cACA,aACA,eACA,YACA,OACA,OACA,QACA,aAEJ0pC,WAAW,KAIf,kBAAC,QAAD,CAAOt+B,KAAK,8B,kCCxfxD,IAAI0/C,GAAc,GACdC,GAAO,GACPC,GAAO,EACPC,GAAS,EACTC,GAAS,EAETC,IAAc,EACdC,IAAqB,EAkaVC,OAhaQ,KACnB,MAAMC,EAAgBC,YAAY5kD,GAASA,EAAMI,aAAaf,MACxDwlD,EAAaD,YAAY5kD,GAASA,EAAM8kD,iBAAiBzlD,MAFtC,EAGK0lD,mBAAS,IAHd,oBAGlBC,EAHkB,KAGTC,EAHS,OAI6BF,mBAAS,IAJtC,oBAIlBG,EAJkB,KAIIC,EAJJ,OAKSJ,mBAAS,IALlB,oBAKlBK,EALkB,KAKPC,EALO,OAMIN,mBAAS,IANb,oBAMlBO,EANkB,KAMRC,EANQ,OAOmBR,oBAAS,GAP5B,oBAOlBS,EAPkB,KAOFC,EAPE,OAQaV,oBAAS,GARtB,oBAQlBW,EARkB,KAQLC,EARK,OASKZ,oBAAS,GATd,oBASlBa,EATkB,KAUnBn6C,GAVmB,KAURo6C,eACXrhC,EAAcshC,sBAAY,KAC5B,IAAIrhC,EAAW,GAEf,OADAA,EAAYkgC,EAActkD,iBAAmBwkD,EAAW//B,cAAiBppB,EAAgBpB,EAClFmqB,GACR,CAACkgC,EAActkD,gBAAiBwkD,EAAW//B,gBAExCJ,EAAaohC,sBAAY,KACpB,CACH,cAAmBnB,EAActkD,iBAAmBwkD,EAAW//B,cACzD,UAAY6/B,EAAcr/C,YAC1B,UAAY7O,EAAQoB,QAAQ8E,QAEvC,CAACgoD,EAActkD,gBAAiBskD,EAAcr/C,YAAau/C,EAAW//B,gBAEzEihC,oBAAU,KACNluD,IAAQ6F,IAAI8mB,IAAgB,qEAAqEwhC,QAAQ,mBAAoBnB,EAAW3iC,gBAAgB8jC,QAAQ,iBAAkBnB,EAAWthC,cACzL,CACI7mB,QAASgoB,MACV9nB,KAAKC,IACJooD,EAAWpoD,EAAIN,KAAKiG,SAE7B,CAACkiB,EAAYF,EAAaqgC,EAAWthC,aAAcshC,EAAW3iC,iBAEjE6jC,oBAAU,KACNluD,IAAQ6F,IAAI8mB,IAAgB,uCAAuCwhC,QAAQ,iBAAkBnB,EAAWhgC,cACpG,CACInoB,QAASgoB,MACV9nB,KAAKC,IACJ0oD,EAAS1oD,EAAIN,KAAKiG,SAE3B,CAACkiB,EAAYF,EAAaqgC,EAAWhgC,eAExCkhC,oBAAU,KACN,IAAIE,EAAgB,GACpBjB,EAAQ1nD,QAAQ,CAAC8mD,EAAMx+C,KACkD,IAAjEqgD,EAAcjhD,OAAOJ,GAAKA,EAAE2a,UAAY6kC,EAAK7kC,SAAS9c,QACtDwjD,EAAcxtD,KAAK2rD,KAG3BiB,EAAaY,IACd,CAACjB,IAEJe,oBAAU,KACN7jD,QAAQC,IAAI,6BACZgiD,GAAcmB,EAASx8C,MAAM,IAC7B,IAAK,IAAIvL,EAAI,EAAGA,EAAIynD,EAAQviD,OAAQlF,IACT,MAAnB4mD,GAAY5mD,KACW,MAAnB4mD,GAAY5mD,GACZynD,EAAQznD,GAAG2oD,aAAe,MAE1BlB,EAAQznD,GAAG2oD,aAAe/B,GAAY5mD,IAGlD,IAAI4oD,EAAWnB,EACfC,EAAWr9C,OAAOC,OAAO,GAAIs+C,KAC9B,CAACb,EAAUN,IAEde,oBAAU,KACuB,QAAzBlB,EAAW7iC,UAA+C,QAAzB6iC,EAAW7iC,UAA+C,YAAzB6iC,EAAW7iC,UAAmD,aAAzB6iC,EAAW7iC,UAAoD,aAAzB6iC,EAAW7iC,WACxJ2jC,GAAe,GACfF,GAAkB,IAEY,YAAzBZ,EAAW7iC,UAAmD,YAAzB6iC,EAAW7iC,UAAmD,YAAzB6iC,EAAW7iC,UAAmD,YAAzB6iC,EAAW7iC,UAAmD,YAAzB6iC,EAAW7iC,WACpK2jC,GAAe,GACfF,GAAkB,IAEY,YAAzBZ,EAAW7iC,UAAmD,YAAzB6iC,EAAW7iC,YACrD2jC,GAAe,GACfF,GAAkB,KAEvB,CAACZ,EAAW7iC,YAEf,MAAMokC,EAAalB,EAAqBtuC,IAAI,CAACwtC,EAAMx+C,IAE3C,kBAAC,IAAMiI,SAAP,KAEI,yBAAK3H,UAAU,uBACX,4BAAQA,UAAU,iCAAlB,OAAyDk+C,EAAKiC,OAA9D,cACA,4BAAQngD,UAAU,mCAAmCC,MAAO,CAAE0+B,gBAAuC,MAAtBuf,EAAK8B,aAAuB,MAAQ,SAAWjjD,QAAO,sBAAE,sBAAAzG,EAAA,sEAAkB8pD,EAAalC,EAAM,KAArC,oFAAvI,aACA,4BAAQl+C,UAAU,mCAAmCC,MAAO,CAAE0+B,gBAAuC,MAAtBuf,EAAK8B,aAAuB,MAAQ,SAAWjjD,QAAS,IAAMqjD,EAAalC,EAAM,MAAhK,aACA,4BAAQl+C,UAAU,mCAAmCC,MAAO,CAAE0+B,gBAAuC,MAAtBuf,EAAK8B,aAAuB,MAAQ,SAAWjjD,QAAS,IAAMqjD,EAAalC,EAAM,MAAhK,aACA,4BAAQl+C,UAAU,mCAAmCC,MAAO,CAAE0+B,gBAAuC,MAAtBuf,EAAK8B,aAAuB,MAAQ,QAASK,WAAYf,EAAiB,UAAY,UAAYviD,QAAS,IAAMqjD,EAAalC,EAAM,MAAnN,aACA,4BAAQl+C,UAAU,mCAAmCC,MAAO,CAAE0+B,gBAAuC,MAAtBuf,EAAK8B,aAAuB,MAAQ,QAASK,WAAYb,EAAc,UAAY,UAAYziD,QAAS,IAAMqjD,EAAalC,EAAM,MAAhN,aACA,4BAAQl+C,UAAU,mCAAmCC,MAAO,CAAE0+B,gBAAuC,QAAtBuf,EAAK8B,aAAyB,MAAQ,SAAWjjD,QAAS,IAAMqjD,EAAalC,EAAM,QAAlK,uBAQVoC,EAAepB,EAAUxuC,IAAI,CAAC6vC,EAAQ7gD,IAEpC,kBAAC,IAAMiI,SAAP,KACI,4BAAQ3H,UAAU,uBACdC,MAAO,CAAE8H,OAAQ,qBAAsB4P,MAAO,QAASgnB,gBAAiB,YAAc5hC,QAAS,KAC3FyjD,EAASD,KACTA,EAAOlnC,SAJnB,aASFmnC,EAAWZ,sBAAaW,SACX3vD,IAAX2vD,IACArC,GAAK7kC,QAAUknC,EAAOlnC,QACtBze,SAASoJ,eAAe,aAAaC,UAAYs8C,EAAOlnC,QAAQonC,cAChExB,EAAsBH,EAAQhgD,OAAOJ,GAAKA,EAAE2a,UAAYknC,EAAOlnC,SAASqnC,KAAK,CAACpqD,EAAGqqD,IAAOrqD,EAAEsqD,OAASD,EAAEC,OAAS,GAAK,MAExH,CAAC9B,IAEJe,oBAAU,MACDvB,IAAeQ,EAAQviD,OAAS,IACjCikD,EAAS1B,EAAQ4B,KAAK,CAACpqD,EAAGqqD,IAAOrqD,EAAEsqD,OAASD,EAAEC,OAAS,GAAK,GAAI,IAChEtC,IAAc,IAGnB,CAACkC,EAAU1B,IAEd,MAAMsB,EAAY,uCAAG,WAAOlC,EAAM2C,GAAb,uBAAAvqD,EAAA,sDAEjB,IADIwqD,EAAsBp/C,OAAOC,OAAO,GAAIq9C,GACnC3nD,EAAI,EAAGA,EAAIypD,EAAoBvkD,OAAQlF,IACxC6mD,EAAK0C,SAAWE,EAAoBzpD,GAAGupD,SACvCE,EAAoBzpD,GAAG2oD,aAAea,GAK9C,IADIZ,EAAWv+C,OAAOC,OAAO,GAAIm9C,GACxBlsC,EAAI,EAAGA,EAAIqtC,EAAS1jD,OAAQqW,IAC7BsrC,EAAK0C,SAAWX,EAASrtC,GAAGguC,SAC5BX,EAASrtC,GAAGotC,aAAea,GAG7BxqD,EAAO,CACTsoB,aAAcggC,EAAWhgC,aACzBoiC,MAAOF,EACPD,OAAQ1C,EAAK0C,OACb9hC,UAAoB,GAAPq/B,GAAcC,IAE/BzmD,YAAO,wBAAyB,OAAQ,KACxChG,IAAQ4E,KAAK+nB,IAAgB,qCAAsCjoB,EAC/D,CACIG,QAASgoB,MACV9nB,KAHP,sBAGY,4BAAAJ,EAAA,6DACJqB,YAAO,mBAAoB,UAAW,KADlC,SAGEsnD,EAAsB6B,GAHxB,uBAIE/B,EAAWD,GAJb,QAKAkC,EAAiBrC,GACN7/B,UAAqB,GAAPq/B,GAAcC,GAC3C74C,EAAShM,GAAwBynD,IAP7B,4CASPlqD,MAAOC,IACJY,YAAO,+BAA4BZ,EAAK,QAAS,OAlCxC,2CAAH,wDAuCZkqD,EAAYrB,sBAAY,KAC1B,IAAIsB,EAAS,EACb,IAAK,IAAI7pD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,UAAhBA,EAAEya,WAAuB5c,OAAQlF,IACrEynD,EAAQhgD,OAAOJ,GAAqB,UAAhBA,EAAEya,WAAuB9hB,GAAG8oD,OAASe,EACzDA,IAEJ,IAAS7pD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,SAAhBA,EAAEya,WAAsB5c,OAAQlF,IACpEynD,EAAQhgD,OAAOJ,GAAqB,SAAhBA,EAAEya,WAAsB9hB,GAAG8oD,OAASe,EACxDA,IAEJ,IAAS7pD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,SAAhBA,EAAEya,WAAsB5c,OAAQlF,IACpEynD,EAAQhgD,OAAOJ,GAAqB,SAAhBA,EAAEya,WAAsB9hB,GAAG8oD,OAASe,EACxDA,IAEJ,IAAS7pD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,SAAhBA,EAAEya,WAAsB5c,OAAQlF,IACpEynD,EAAQhgD,OAAOJ,GAAqB,SAAhBA,EAAEya,WAAsB9hB,GAAG8oD,OAASe,EACxDA,IAEJ,IAAS7pD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,UAAhBA,EAAEya,WAAuB5c,OAAQlF,IACrEynD,EAAQhgD,OAAOJ,GAAqB,UAAhBA,EAAEya,WAAuB9hB,GAAG8oD,OAASe,EACzDA,IAEJ,IAAIC,EAAM,EACV,IAAS9pD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,UAAhBA,EAAEya,WAAuB5c,OAAQlF,IACrEynD,EAAQhgD,OAAOJ,GAAqB,UAAhBA,EAAEya,WAAuB9hB,GAAG8oD,OAASgB,EACzDA,IAEJ,IAAS9pD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,UAAhBA,EAAEya,WAAuB5c,OAAQlF,IACrEynD,EAAQhgD,OAAOJ,GAAqB,UAAhBA,EAAEya,WAAuB9hB,GAAG8oD,OAASgB,EACzDA,IAEJ,IAAS9pD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,SAAhBA,EAAEya,WAAsB5c,OAAQlF,IACpEynD,EAAQhgD,OAAOJ,GAAqB,SAAhBA,EAAEya,WAAsB9hB,GAAG8oD,OAASgB,EACxDA,IAEJpC,EAAWD,IACZ,CAACA,IAEEsC,EAAYxB,sBAAY,KAC1B,IAAIyB,EAAW,EACf,IAAK,IAAIhqD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB5c,OAAQlF,IACnEynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB9hB,GAAG8oD,OAASkB,EACvDA,IAEJ,IAAShqD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB5c,OAAQlF,IACnEynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB9hB,GAAG8oD,OAASkB,EACvDA,IAEJ,IAAShqD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB5c,OAAQlF,IACnEynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB9hB,GAAG8oD,OAASkB,EACvDA,IAEJ,IAAIC,EAAU,EACd,IAASjqD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB5c,OAAQlF,IACnEynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB9hB,GAAG8oD,OAASmB,EACvDA,IAEJ,IAASjqD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB5c,OAAQlF,IACnEynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB9hB,GAAG8oD,OAASmB,EACvDA,IAEJ,IAASjqD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB5c,OAAQlF,IACnEynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB9hB,GAAG8oD,OAASmB,EACvDA,IAEJ,IAASjqD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB5c,OAAQlF,IACnEynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB9hB,GAAG8oD,OAASmB,EACvDA,IAEJ,IAASjqD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB5c,OAAQlF,IACnEynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB9hB,GAAG8oD,OAASmB,EACvDA,IAEJ,IAAIH,EAAM,EACV,IAAS9pD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB5c,OAAQlF,IACnEynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB9hB,GAAG8oD,OAASgB,EACvDA,IAEJ,IAAS9pD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB5c,OAAQlF,IACnEynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB9hB,GAAG8oD,OAASgB,EACvDA,IAEJ,IAAS9pD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB5c,OAAQlF,IACnEynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB9hB,GAAG8oD,OAASgB,EACvDA,IAEJpC,EAAWD,IACZ,CAACA,IAEEyC,EAAY3B,sBAAY,KAC1B,IAAI4B,EAAM,EACV,IAAK,IAAInqD,EAAI,EAAGA,EAAIynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB5c,OAAQlF,IACnEynD,EAAQhgD,OAAOJ,GAAqB,QAAhBA,EAAEya,WAAqB9hB,GAAG8oD,OAASqB,EACvDA,IAEJzC,EAAWD,IACZ,CAACA,IAEJe,oBAAU,KACuB,QAAzBlB,EAAW7iC,WACXmlC,IAEyB,QAAzBtC,EAAW7iC,UAA+C,YAAzB6iC,EAAW7iC,UAAmD,aAAzB6iC,EAAW7iC,UAAoD,aAAzB6iC,EAAW7iC,WACvHslC,IAEJG,KACD,CAAC5C,EAAW7iC,UAAWmlC,EAAWG,EAAWG,IAEhD,MAAME,EAAQ7B,sBAAY,KACtB,MAAM8B,EAAS,IAAIppC,KACnBopC,EAAOC,WAAWD,EAAOE,aAAejD,EAAW7/B,WACnD,IAAI+iC,EAAgBH,EAEfnD,KACDvtD,OAAO0N,EAAIojD,aAAY,WAGnB,IAAIC,GAAM,IAAIzpC,MAAO0pC,UAGjBC,EAAWJ,EAAgBE,EAY/B,GATA5D,GAAO+D,KAAKC,MAAOF,EAAQ,MAAT,MAClB7D,GAAS8D,KAAKC,MAAOF,EAAQ,KAAT,KACpB5D,GAAS6D,KAAKC,MAAOF,EAAQ,IAAkB,KAG/CrnD,SAASoJ,eAAe,SAASo+C,UAAYjE,GAAO,SAC9CC,GAAS,WAAaC,GAAS,WAGjC4D,EAAW,EAAG,CACdxjD,cAAczN,OAAO0N,GACrB9D,SAASoJ,eAAe,SAASo+C,UAAY,mBAE7C,MAAM/rD,EAAO,CACTsoB,aAAcggC,EAAWhgC,aACzBtB,aAAcshC,EAAWthC,aACzBG,UAAWmhC,EAAWnhC,UACtBzT,UAAW40C,EAAW50C,UACtBiS,eAAgB2iC,EAAW3iC,eAC3BF,UAAW6iC,EAAW7iC,UACtB/J,QAAS4sC,EAAW5sC,QACpBswC,GAAI9xD,EAAQoB,QAAQyJ,UAAUwE,IAC9B0iD,MAAO/xD,EAAQoB,QAAQyJ,UAAUyE,OACjCtE,QAAShL,EAAQoB,QAAQyJ,UAAU4O,KAGvCrY,IAAQ4E,KAAK+nB,IAAgB,gCAAiCjoB,EAC1D,CACIG,QAASgoB,MACV9nB,KAHP,sBAGY,sBAAAJ,EAAA,sDACJqB,YAAO,gDAA6B,UAAW,KAD3C,4CAGPb,MAAOC,IACJY,YAAO,+BAA4BZ,EAAK,QAAS,OAI7DwnD,IAAqB,IACtB,OAIR,CAACI,EAAW7/B,UACf6/B,EAAWhgC,aACXggC,EAAWthC,aACXshC,EAAWnhC,UACXmhC,EAAW50C,UACX40C,EAAW3iC,eACX2iC,EAAW7iC,UACX6iC,EAAW5sC,QACPyM,EACAF,IAKJ,OAHAuhC,oBAAU,KACN4B,KACD,CAACA,IAEA,kBAAC,IAAM95C,SAAP,KACI,yBAAK3H,UAAU,2BACX,yBAAKA,UAAU,gBACX,yBAAKA,UAAU,kBACX,yBAAKA,UAAU,6CACX,yBAAKA,UAAU,aACX,yBAAKA,UAAU,aACX,yBAAKA,UAAU,iDACX,wBAAIA,UAAU,cACV,wBAAIA,UAAU,mBAAkB,uBAAG9O,KAAK,MAAK,uBAAG8O,UAAU,yBAC1D,wBAAIA,UAAU,mBAAkB,uBAAG9O,KAAK,MAAK,0BAAMgO,GAAG,YACtD,wBAAIc,UAAU,mBAAkB,uBAAG9O,KAAK,MAAR,SAChC,4BACI,4BAAQ8O,UAAU,mCAAmCjD,QAAS,KAC1D,MAAM1G,EAAO,CACTsoB,aAAcggC,EAAWhgC,aACzBtB,aAAcshC,EAAWthC,aACzBG,UAAWmhC,EAAWnhC,UACtBzT,UAAW40C,EAAW50C,UACtBiS,eAAgB2iC,EAAW3iC,eAC3BF,UAAW6iC,EAAW7iC,UACtB/J,QAAS4sC,EAAW5sC,QACpBswC,GAAI9xD,EAAQoB,QAAQyJ,UAAUwE,IAC9B0iD,MAAO/xD,EAAQoB,QAAQyJ,UAAUyE,OACjCtE,QAAShL,EAAQoB,QAAQyJ,UAAU4O,KAGvCrY,IAAQ4E,KAAK+nB,IAAgB,gCAAiCjoB,EAC1D,CACIG,QAASgoB,MACV9nB,KAHP,sBAGY,sBAAAJ,EAAA,sDACJqB,YAAO,gDAA6B,UAAW,KAD3C,4CAGPb,MAAOC,IACJY,YAAO,+BAA4BZ,EAAK,QAAS,SArB7D,kCAyBJ,wBAAIkJ,MAAO,CAAE0P,SAAqB,IAAZ+vC,EAAoB,OAAS,KAAM,yBAAK73C,IAAI,mBAAmB5H,MAAO,CAAE28C,SAAU,OAAQx8C,UAAW,QAAU0H,IAAI,YAAzI,2CAGR,yBAAK9H,UAAU,iDACX,wBAAIA,UAAU,cACV,wBAAIA,UAAU,mBAAkB,uBAAG9O,KAAK,MAAK,qDAA0B,0BAAM+O,MAAO,CAAE+3C,WAAY,UAAY94C,GAAG,kBAIzH,yBAAKc,UAAU,uBACVsgD,GAGL,yBAAKtgD,UAAU,MAAMC,MAAO,CAAEG,UAAW,oBAGzC,yBAAKJ,UAAU,OACX,yBAAKA,UAAU,aACVkgD,Y,qBCja7C,MAAMqC,GAAmB,CACrB,CAAErjD,GAAI,EAAGX,KAAM,gBAAiBpI,IAAK,IACrC,CAAE+I,GAAI,EAAGX,KAAM,oCAAsBpI,IAAK,8BAE/B,MAAMqsD,WAAqBxwD,IAAM0T,UAE5C5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAK+J,MAAQ,CACT2oD,sBAAsB,EACtB9hD,WAAW,EACX+hD,kBAAkB,GAGtB3yD,KAAK4yD,gBAAkB5yD,KAAK4yD,gBAAgBhpD,KAAK5J,MACjDA,KAAK6yD,uBAAyB7yD,KAAK6yD,uBAAuBjpD,KAAK5J,MAC/DA,KAAK8yD,yBAA2B9yD,KAAK8yD,yBAAyBlpD,KAAK5J,MACnEA,KAAK+yD,yBAA2B/yD,KAAK+yD,yBAAyBnpD,KAAK5J,MACnEA,KAAKgzD,YAAchzD,KAAKgzD,YAAYppD,KAAK5J,MACzCA,KAAKizD,mBAAqBjzD,KAAKizD,mBAAmBrpD,KAAK5J,MACvDmN,YAAaC,GACbC,YAAOC,UAAUC,UAErBxK,SAEI,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,OACX,yBAAKA,UAAU,aACVjQ,KAAKS,MAAMwN,WAGpB,yBAAKgC,UAAU,OACX,yBAAKA,UAAU,aACX,6BACI,kBAAC,KAAD,CACIoC,WAAYmgD,GACZ1nD,MAAM,qBACNooD,WAAW,gBACXtiD,UAAW5Q,KAAK+J,MAAM6G,UACtB+hD,iBAAkB3yD,KAAK+J,MAAM4oD,iBAC7BtkD,QAASrO,KAAK+J,MAAM2oD,qBACpBvvD,YAAanD,KAAK6yD,uBAClBM,cAAenzD,KAAK8yD,8BAKpC,yBAAK7iD,UAAU,MAAMC,MAAO,CAAEiT,UAAW,UACrC,yBAAKlT,UAAU,aACX,kBAAC,KAAD,CAAQ3M,MAAO,OAAQkL,KAAK,oBAAcxB,QAAShN,KAAK4yD,sBAOhFA,kBACI5yD,KAAKyN,SAAS,CACVilD,sBAAsB,IAI9BG,uBAAuBllD,GACa,IAA5BsV,SAAStV,EAAEtL,SAAS8M,KACpBrB,EAAKxN,OAAO,KACR,IACIK,aAAaoN,WAAW,UACxBpN,aAAaoN,WAAW,WACxBpN,aAAaoN,WAAW,eAC1B,MAAOC,OAIbhO,KAAKS,MAAMwN,SAASxN,MAAM8B,QAAQC,KAAK,WAEN,IAA5BygB,SAAStV,EAAEtL,SAAS8M,MACzBlO,OAAOC,SAASC,KAAO,6BAK/B2xD,2BACI9yD,KAAKyN,SAAS,CACVilD,sBAAsB,IAI9BK,yBAAyBK,GACrBpzD,KAAKyN,SAAS,CACVilD,sBAAsB,IAE1B9qD,YAAO,QAAD,OAASwrD,EAAT,yBAGVJ,YAAYrlD,GACR3N,KAAKyN,SAAS,CACVmD,UAAWjD,EAAEpG,QAIrB0rD,mBAAmBtlD,GACf3N,KAAKyN,SAAS,CACVklD,iBAAkBhlD,EAAEpG,SC9GjB,MAAM8rD,WAAcpxD,IAAM0T,UACrC5S,SACI,OACI,kBAAC,IAAM6U,SAAP,0BCeG,MAAM07C,WAA8BrxD,IAAM0T,UAErD5V,YAAYU,GACRyB,MAAMzB,GACNT,KAAKkX,cAAgB,CACjB1I,KAAM,4BACNtK,KAAM,UACNZ,MAAO,OACP6T,mBAAmB,EACnBnK,QAAS,KACLhN,KAAKyN,SAAS,CACVsB,QAAQ,EACRmR,MAAOlgB,KAAK8R,SAASoO,UAIjClgB,KAAK+J,MAAQ,CACTgF,QAAQ,EACRixC,iBAAkB,GAClB9/B,MAAO,IAAIqI,MAEfvoB,KAAK2vC,mBAAqB3vC,KAAK2vC,mBAAmB/lC,KAAK5J,MACvDA,KAAK4vC,6BAA+B5vC,KAAK4vC,6BAA6BhmC,KAAK5J,MAC3EA,KAAK8vC,6BAA+B9vC,KAAK8vC,6BAA6BlmC,KAAK5J,MAC3EA,KAAKgwC,sBAAwBhwC,KAAKgwC,sBAAsBpmC,KAAK5J,MAC7DA,KAAK6gC,gCAAkC7gC,KAAK6gC,gCAAgCj3B,KAAK5J,MACjFA,KAAK8gC,kCAAoC9gC,KAAK8gC,kCAAkCl3B,KAAK5J,MACrFA,KAAKkwC,+BAAiClwC,KAAKkwC,+BAA+BtmC,KAAK5J,MAC/EA,KAAKmwC,8BAAgCnwC,KAAKmwC,8BAA8BvmC,KAAK5J,MAC7EA,KAAKuzD,yBAA2BvzD,KAAKuzD,yBAAyB3pD,KAAK5J,MACnEA,KAAKwzD,yBAA2BxzD,KAAKwzD,yBAAyB5pD,KAAK5J,MACnEA,KAAKivC,gBAAkB,KACvBjvC,KAAKqvC,SAAW,KAChBrvC,KAAKs8B,qBAAuB,KAC5Bt8B,KAAKq8B,mBAAqB,KAC1Br8B,KAAKyzD,YAAc,KACnB,IAAIljB,EAAK,IAAIhoB,KACbgoB,EAAGjC,SAASiC,EAAGhC,WAAa,GAqC5BvuC,KAAKiqB,QAAU,IAAIylB,KAAW,CAC1BzpC,IAAK,KACLK,KArCa,CACb,CACIgF,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,WAET,CACIvE,GAAI,EACJuE,IAAK,cAUb7P,KAAK8R,SAAW,CACZmX,QAAS,GACT8E,YAAa,CAAEziB,GAAI,MACnB+5B,OAAQ,KACRqL,QAAS,GACTC,IAAK,KACLrwB,IAAK,KACLswB,OAAQ,KACR1wB,MAAOqwB,EAAGE,SACV7K,WAAY,IAGhB5lC,KAAKm3B,sBAAwB,IAAI/uB,IAAW,CACxCuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,6BACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM7D1G,KAAKs5B,oBAAsB,IAAIlxB,IAAW,CACtCuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,sCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAM7D1G,KAAKowC,aAAe,CAChBC,SAAU,GAGdrwC,KAAKkrB,cAAgB,CACjBolB,OAAQ,EACRD,SAAU,GAGdrwC,KAAK8qB,kBAAoB,IAAI1iB,IACzB,CACIuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,KACLic,WAAYliB,KAAKkrB,cACjBljB,QAASrD,EAAe,8CACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAOrEkpC,6BAA6BjiC,GACzB3N,KAAKivC,gBAAkBthC,EAAEC,UAG7BkiC,6BAA6BniC,GACzB3N,KAAKwvC,gBAAkB7hC,EAAEC,UAE7BoiC,sBAAsBriC,GAClB3N,KAAKqvC,SAAW1hC,EAAEC,UAGtBizB,gCAAgClzB,GAC5B3N,KAAKq8B,mBAAqB1uB,EAAEC,UAGhCkzB,kCAAkCnzB,GAC9B3N,KAAKs8B,qBAAuB3uB,EAAEC,UAGlCsiC,+BAA+BviC,GACM,IAA7BA,EAAE67B,gBAAgBh9B,OAClBxM,KAAK8wC,iBAAmB,GAGxB9wC,KAAK8wC,iBAAmBnjC,EAAE67B,gBAE9BxpC,KAAKwvC,gBAAgB1sC,SAAS+K,OAAO,QAAS7N,KAAK8wC,kBAGvDX,8BAA8BxiC,GACtB3N,KAAK8wC,mBAAqBnjC,EAAEpG,QAI5BvH,KAAK8wC,iBAAmBnjC,EAAEpG,OAAS,GACnCvH,KAAKwvC,gBAAgB1sC,SAAS+K,OAAO,QAAS7N,KAAK8wC,mBAI3DnB,qBACI,OACI,kBAAC,IAAD,CACIt9B,WAAYrS,KAAKiqB,QACjBlO,mBAAmB,EACnBE,mBAAoBjc,KAAKkwC,+BACzBwB,QAAS,CAAC,OACVthC,cAAepQ,KAAKgwC,sBACpBpsC,IAAMA,IAAU5D,KAAKqvC,SAAWzrC,IAEhC,kBAAC,YAAD,CAAWkR,KAAK,aAChB,kBAAC,YAAD,CAAWA,KAAK,YAChB,kBAAC,SAAD,CAAQI,SAAS,EAAMiH,SAAU,KACjC,kBAAC,YAAD,CAAW9N,SAAS,KAKhCklD,yBAAyB5lD,GACrB3N,KAAKyzD,YAAc9lD,EAAEC,UAGzB4lD,yBAAyBzwC,GACH,qBAAdA,EAAKC,MACLhjB,KAAKyN,SAAS,CACVuyC,iBAAkBj9B,EAAKxb,QAInCxE,SAAU,IAAD,OACL,OACI,kBAAC,IAAM6U,SAAP,KACI,yBAAK3H,UAAU,aACX,yBAAKA,UAAU,MAAMC,MAAO,CAAEiT,UAAW,OAAQvD,QAAS5f,KAAK+J,MAAMgF,OAAS,GAAK,SAC/E,yBAAKkB,UAAU,aACX,kBAAC,IAAD,CAAM6B,SAAU9R,KAAK8R,SAAU1B,cAAepQ,KAAK4vC,6BAA8BhsC,IAAMA,GAAQ5D,KAAKivC,gBAAkBrrC,GAClH,kBAAC,aAAD,CAAYsO,UAAW,WACnB,kBAAC,KAAD,CACII,UAAU,KACVsZ,gBAAgB,EAChB3oB,YAAY,MACZsY,iBAAiB,EACjBlJ,WAAYrS,KAAKiqB,QACjBsnB,cAAevxC,KAAK2vC,mBACpBr0B,eAAgBtb,KAAKmwC,8BACrB//B,cAAepQ,KAAK8vC,6BACpBlsC,IAAMA,IAAU5D,KAAKwvC,gBAAkB5rC,KAE3C,kBAAC,QAAD,CAAO4K,KAAK,SACZ,kBAAC,eAAD,CAAc+D,QAAQ,gCAE1B,kBAAC,aAAD,CAAYL,UAAW,iBAAkBC,WAAY,cAAeC,cAAe,CAC/EC,WAAYrS,KAAKm3B,sBACjB7kB,UAAW,KACXrP,YAAa,MACbmN,cAAepQ,KAAK8gC,kCACpBl9B,IAAMA,GAAQ5D,KAAKs8B,qBAAuB14B,EAC1C0X,eAAe,WAAD,4BAAE,WAAO3N,GAAP,eAAApH,EAAA,6DACZ,EAAK81B,mBAAmBv5B,WAAW+K,OAAO,QAAS,OAC/CwE,EAAa,EAAKgqB,mBAAmBv5B,WAAW+K,OAAO,eAChDkB,OAAO,CAAC,WAAY,IAAKpB,EAAEpG,QAH1B,SAIN8K,EAAW7J,OAAO6qB,KAAK,KACzB,EAAKgJ,mBAAmBv5B,WAAW+K,OAAO,aAAcwE,KALhD,OAOZ,EAAK+9B,aAAaC,SAAW1iC,EAAEpG,MAC/B,EAAK2jB,cAAcmlB,SAAW1iC,EAAEpG,MAChC,EAAK2jB,cAAcolB,OAAS,EAThB,2CAAF,mDAAC,KAYf,kBAAC,QAAD,CAAO9hC,KAAK,WACZ,kBAAC,eAAD,CAAc+D,QAAQ,kCAE1B,kBAAC,aAAD,CAAYL,UAAW,SAAUC,WAAY,cAAeC,cAAe,CACvEC,WAAYrS,KAAKs5B,oBACjBhnB,UAAW,KACXrP,YAAa,MACbmN,cAAepQ,KAAK6gC,gCACpBj9B,IAAMA,GAAQ5D,KAAKq8B,mBAAqBz4B,EACxC0X,eAAe,WAAD,4BAAE,WAAO3N,GAAP,SAAApH,EAAA,6DACZ,EAAK2kB,cAAcolB,OAAS3iC,EAAEpG,MADlB,SAEN,EAAKujB,kBAAkBtiB,OAAO7B,KAAMC,IACtC,EAAK6sD,YAAY3wD,SAAS+K,OAAO,aAAc,EAAKid,qBAH5C,2CAAF,mDAAC,KAUf,kBAAC,QAAD,CAAOtc,KAAK,cACZ,kBAAC,eAAD,CAAc+D,QAAQ,qCAE1B,kBAAC,aAAD,CAAYL,UAAW,MAAOC,WAAY,cACtCC,cAAe,CACXmJ,iBAAiB,EACjBlJ,WAAY,IAAIjK,IAAW,CACvBuD,SAAU,MACVtD,MAAOuD,sBAAY,CACf3F,IAAK,QACLic,WAAY,CACRmkB,SAAU,mBAEdr+B,QAASrD,EAAe,kBACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YAK7D4L,UAAW,QACXrP,YAAa,SAGjB,kBAAC,QAAD,CAAOuL,KAAK,UACZ,kBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,kBAAC,aAAD,CAAYL,UAAW,QAASC,WAAY,YACxCC,cAAe,CACX7K,MAAO,IAAIghB,KACXjN,eAAiB3N,IACb,IAAI0gC,EAAI,IAAI9lB,KAAK5a,EAAEpG,OACnB8mC,EAAEC,SAASD,EAAEE,WAAa,GAC1BvuC,KAAK8R,SAASoO,MAAQmuB,KAK9B,kBAAC,QAAD,CAAO7/B,KAAK,UACZ,kBAAC,eAAD,CAAc+D,QAAQ,iCAE1B,kBAAC,aAAD,CAAYsG,oBAAoB,OAC5B3B,cAAelX,KAAKkX,mBAKpC,yBAAKjH,UAAU,MAAMC,MAAO,CAAEiT,UAAW,OAAQvD,QAAU5f,KAAK+J,MAAMgF,OAAc,OAAL,KAC3E,yBAAKkB,UAAU,aACX,kBAAC,UAAD,CACIzB,KAAK,OACL5B,KAAK,OACL1I,KAAK,UACLZ,MAAO,OACP0J,QAAS,KACLhN,KAAKyN,SAAS,CACVsB,QAAQ,SAM5B,yBAAKkB,UAAU,MAAMC,MAAO,CAAEiT,UAAW,OAAQvD,QAAU5f,KAAK+J,MAAMgF,OAAc,OAAL,KAC3E,yBAAKkB,UAAU,aACX,kBAAC,KAAD,CACIoC,WAAYrS,KAAK8qB,kBACjBrnB,cAAc,WACdiwD,uBAAuB,EACvBtjD,cAAepQ,KAAKuzD,yBACpB3vD,IAAMA,GAAQ5D,KAAKyzD,YAAc7vD,EACjC4f,WAAYmwC,GACZvU,WAAW,MACX57C,eAAe,EACfgvC,WAAY,aACZohB,iBAAiB,EACjBC,aAAc,eACdC,gBAAgB,uBAGhB9T,iBAAkBhgD,KAAK+J,MAAMi2C,iBAC7Br7B,gBAAiB3kB,KAAKwzD,6BAKlC,yBAAKvjD,UAAU,MAAMC,MAAO,CAAEiT,UAAW,OAAQvD,QAAU5f,KAAK+J,MAAMgF,OAAc,OAAL,KAC3E,yBAAKkB,UAAU,aACX,kBAAC,UAAD,CACI3M,MAAO,OACPkL,KAAK,OACLtK,KAAK,UACL8I,QAAS,KAEL,GADuBhN,KAAKivC,gBAAgBnsC,SAASgc,WACjCC,QAGf,CAID,IAAIkL,EAAU,GACdjqB,KAAK8wC,iBAAiBzpC,QAASoF,IAC3Bwd,EAAQznB,KAAK,CACT8I,GAAImB,MAIZ,IAAI+kC,EAAa,GACjBxxC,KAAK+J,MAAMi2C,iBAAiB34C,QAASoF,IACjC+kC,EAAWhvC,KAAK,CACZ8I,GAAI2X,SAASxW,OAGrBzM,KAAK8R,SAAS8zB,WAAa4L,EAC3BxxC,KAAK8R,SAASmX,QAAUgB,EACxBjqB,KAAK8R,SAASoO,MAAQlgB,KAAK+J,MAAMmW,MACjCte,IAAQ4E,KAAK7B,EAAe,mBAAoB3E,KAAK8R,SAAU,CAC3DrL,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGhDC,KALL,uCAKU,WAAOC,GAAP,SAAAL,EAAA,sDACEK,EAAIN,KAAKO,SACTe,YAAO,gCAAuB,UAAW,KACzC,EAAKsnC,gBAAgBpsC,SAAS4M,WAG9B9H,YAAOhB,EAAIN,KAAKQ,aAAc,QAAS,KANzC,2CALV,uDAcKC,MAAMC,IACH,GAAIA,EAAIU,SAAU,CACd,IAAI0L,EAAW/R,KAAKE,MAAMyF,EAAIU,SAAS2L,QAAQ3L,UAC3C4L,EAAQ,mCAAqCF,EAASG,OAAS,QAClD5B,OAAO6B,KAAKJ,EAASK,QAC3BpM,QAAQ,CAACoF,EAAOkD,KACvB2D,GAAS,qBAAuB7G,EAAQ,WAAa2G,EAASK,OAAOhH,EAAMiH,YAAY,GAAK,UAEhGJ,GAAS,kCAAoCF,EAAStI,MAAQ,QAC9DwI,GAAS,oCAAsCF,EAASO,QAAU,QAClEL,GAAS,iCAAmCF,EAASlP,KAAO,QAC5D4O,YAAMQ,QAECtM,EAAIqM,gBAW3C,yBAAKpD,UAAU,MAAMC,MAAO,CAAEiT,UAAW,OAAQvD,QAAU5f,KAAK+J,MAAMgF,OAAc,OAAL,KAC3E,yBAAKkB,UAAU,aACX,kBAAC,UAAD,CACIzB,KAAK,qBACL5B,KAAK,QACL1I,KAAK,UACLZ,MAAO,OACP0J,QAAS,KACL,IAAIid,EAAU,GACdjqB,KAAK8wC,iBAAiBzpC,QAASoF,IAC3Bwd,EAAQznB,KAAK,CACT8I,GAAImB,MAGZ,MAAMnG,EAAO,CACT4Z,MAAOlgB,KAAK+J,MAAMmW,MAClBkxB,OAAQnnB,GAKZroB,IAAQ4E,KAAK7B,EAAe,+BAAgC2B,EACxD,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QAITe,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,KAMjCuG,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IAIH8L,YAAM,6DAA2C9L,EAAK,eAM9E,yBAAKiJ,UAAU,MAAMC,MAAO,CAAEiT,UAAW,OAAQvD,QAAU5f,KAAK+J,MAAMgF,OAAc,OAAL,KAC3E,yBAAKkB,UAAU,aACX,kBAAC,UAAD,CACIzB,KAAK,6BACL5B,KAAK,QACL1I,KAAK,UACLZ,MAAO,OACP0J,QAAS,KACL,MAAM1G,EAAO,CACT4Z,MAAOlgB,KAAK+J,MAAMmW,MAClBkxB,OAAQpxC,KAAK8R,SAASmX,SAK1BrnB,IAAQ4E,KAAK7B,EAAe,qCAAsC2B,EAC9D,CACIG,QAAS,CACL,cAAiB,UAAYjG,EAAQoB,QAAQ8E,SAGpDC,KAAKC,IACEA,EAAIN,KAAKO,QAITe,YAAOhB,EAAIN,KAAKiG,KAAM,UAAW,KAMjCuG,YAAM,6DAA2ClM,EAAIN,KAAKQ,aAAc,UAG/EC,MAAMC,IAIH8L,YAAM,6DAA2C9L,EAAK,kBAWlG,SAAS2sD,GAAY/yC,GACjB,OACI,kBAAC,IAAMhJ,SAAP,KACI,6BAAMgJ,EAAK/Q,IAAX,IAAiB+Q,EAAK9Q,SC1hBnB,MAAMikD,WAAyB9xD,YAC1ClC,YAAYU,GACRyB,MAAMzB,GACNT,KAAKoyC,eAAiB,KACtBpyC,KAAKyM,MAAQ,KACbzM,KAAKsyC,4BAA8BtyC,KAAKsyC,4BAA4B1oC,KAAK5J,MACzEA,KAAKuU,mBAAqBvU,KAAKuU,mBAAmB3K,KAAK5J,MAEvDA,KAAK45B,gBAAkB,IAAIxxB,IACvB,CACIuD,SAAU,MACV1F,IAAK,KACLoC,MAAOuD,sBAAY,CACf3F,IAAK,KACL+B,QAASrD,EAAe,iCACxBmE,aAAc,CAACzC,EAAQ0C,KACnBA,EAAYtC,QAAU,CAClB,cAAiB,UAAYjG,EAAQoB,QAAQ8E,YASrE6N,mBAAmB5G,GACfA,EAAE6G,eAAepR,MAAMqR,QACnB,CACIvT,SAAU,QAAS0N,aAAc,OAAQlC,OAAQ,WAAYC,QAAS,CAClEzI,KAAM,UAAW4I,KAAM,SAAUF,KAAM,UACvCI,QAAS,KACLhN,KAAKoyC,eAAetvC,SAAS4M,cAOjD4iC,4BAA4B3kC,GACxB3N,KAAKoyC,eAAiBzkC,EAAEC,UAG5B7K,SACI,OACI,gBAAC,WAAD,KACI,uBAAKkN,UAAU,aACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,aACX,0BAAK,gFAEL,gBAAC,IAAD,CACId,GAAG,gBACHiF,aAAa,EACbC,cAAc,EACd8T,kBAAkB,EAClB9V,WAAYrS,KAAK45B,gBACjBrlB,mBAAoBvU,KAAKuU,mBACzBnE,cAAepQ,KAAKsyC,4BACpBh+B,qBAAqB,EACrBkL,YAAa,CAAEnR,SAAS,GACxBoR,UAAW,CAAEpR,SAAS,GACtBuN,iBAAiB,EACjB3V,IAAK,KACL4O,UACI,CACIC,KAAM,UAEd+G,0BAA0B,EAC1BC,mBAAmB,EACnBC,mBAAmB,EACnBpY,QAAQ,KACRqwD,YAAY,EACZpwD,IAAMA,GAAQ5D,KAAKoyC,eAAiBxuC,GAEpC,gBAAC,SAAD,CACIsR,SAAS,EACTwT,SAAU,gBACVC,yBAAyB,EACzB6D,MACI,CAAEC,UAAW,8BAGrB,gBAAC,eAAD,CAAcvX,SAAS,IACvB,gBAAC,YAAD,CAAWA,SAAS,IACpB,gBAAC,YAAD,CAAW7G,SAAS,IACpB,gBAAC,cAAD,CAAaA,SAAS,IACtB,gBAAC,eAAD,CAAcA,SAAS,IACvB,gBAAC,SAAD,CAAQmO,gBAAiB,GAAItH,SAAS,IACtC,gBAAC,QAAD,CAAOmH,sBAAsB,EAAMC,iBAAkB,CAAC,GAAI,GAAI,IAAKC,UAAU,IAC7E,gBAAC,SAAD,CAAQrK,UAAW,KAAMiD,QAAQ,gBAAW9G,SAAS,EAAOqe,gBAAgB,IAC5E,gBAAC,SAAD,CAAQxa,UAAW,MAAOiD,QAAQ,WAAMya,WAAY,IACpD,gBAAC,SAAD,CAAQ1d,UAAW,KAAMiD,QAAQ,KAAKya,WAAY,IAClD,gBAAC,SAAD,CAAQ1d,UAAW,MAAOiD,QAAQ,WAClC,gBAAC,SAAD,CAAQjD,UAAW,iBAAkBiD,QAAQ,2BAC7C,gBAAC,SAAD,CAAQjD,UAAW,WAAYiD,QAAQ,qBACvC,gBAAC,SAAD,CAAQjD,UAAW,QAASiD,QAAQ,QAAQE,SAAU,SAAU4K,OAAQ,aACxE,gBAAC,UAAD,KACI,gBAAC,YAAD,CACI6P,OAAO,QACPC,YAAY,eCpD7C,MAAMkkC,GAAS,kBAAC,IAAD,KAClB,kBAAC,GAAD,CAAUp+C,OAAQJ,GAAay+C,OAAK,EAACn+C,KAAK,IAAInI,UAAW4I,KACzD,kBAAC,GAAD,CAAUX,OAAQJ,GAAay+C,OAAK,EAACn+C,KAAK,YAAYnI,UAAWmL,KACjE,kBAAC,GAAD,CAAUlD,OAAQJ,GAAay+C,OAAK,EAACn+C,KAAK,SAASnI,UAAW4I,KAC9D,kBAAC,GAAD,CAAUX,OAAQJ,GAAay+C,OAAK,EAACn+C,KAAK,+CAA+CnI,UAAWw+C,KACpG,kBAAC,GAAD,CAAUv2C,OAAQJ,GAAay+C,OAAK,EAACn+C,KAAK,gEAAgEnI,UAAWy+C,KACrH,kBAAC,GAAD,CAAUx2C,OAAQJ,GAAay+C,OAAK,EAACn+C,KAAK,2BAA2BnI,UAAW+9C,KAChF,kBAAC,GAAD,CAAU91C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,WAAWnI,UAAW+O,KACrE,kBAAC,GAAD,CAAU9G,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,QAAQnI,UAAWmT,KAClE,kBAAC,GAAD,CAAUlL,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,uBAAuBnI,UAAWumD,KACjF,kBAAC,GAAD,CAAUt+C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,iBAAiBnI,UAAW8b,KAC3E,kBAAC,GAAD,CAAU7T,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,oBAAoBnI,UAAWwmD,KAC9E,kBAAC,GAAD,CAAUv+C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,sBAAsBnI,UAAWymD,KAChF,kBAAC,GAAD,CAAUx+C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,sBAAsBnI,UAAW6jB,KAChF,kBAAC,GAAD,CAAU5b,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,gBAAgBnI,UAAWoiB,KAC1E,kBAAC,GAAD,CAAUna,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,qBAAqBnI,UAAWmmB,KAC/E,kBAAC,GAAD,CAAUle,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,kBAAkBnI,UAAW6nC,KAC5E,kBAAC,GAAD,CAAU5/B,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,uBAAuBnI,UAAW4mB,KACjF,kBAAC,GAAD,CAAU3e,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,yBAAyBnI,UAAWomB,KACnF,kBAAC,GAAD,CAAUne,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,0BAA0BnI,UAAW2nB,KACpF,kBAAC,GAAD,CAAU1f,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,2BAA2BnI,UAAWmpB,KACrF,kBAAC,GAAD,CAAUlhB,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,wBAAwBnI,UAAW0mD,KAClF,kBAAC,GAAD,CAAUz+C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,2BAA2BnI,UAAW2mD,KACrF,kBAAC,GAAD,CAAU1+C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,uBAAuBnI,UAAW4mD,KACjF,kBAAC,GAAD,CAAU3+C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,2CAA2CnI,UAAW6mD,KACrG,kBAAC,GAAD,CAAU5+C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,mDAAmDnI,UAAW8mD,KAC7G,kBAAC,GAAD,CAAU7+C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,uCAAuCnI,UAAW+mD,KACjG,kBAAC,GAAD,CAAU9+C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,8BAA8BnI,UAAW0oC,KACxF,kBAAC,GAAD,CAAUzgC,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,mCAAmCnI,UAAW+6C,KAC7F,kBAAC,GAAD,CAAU9yC,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,kCAAkCnI,UAAW67C,KAC5F,kBAAC,GAAD,CAAU5zC,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,kCAAkCnI,UAAWirC,KAC5F,kBAAC,GAAD,CAAUhjC,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,8BAA8BnI,UAAWqtC,KACxF,kBAAC,GAAD,CAAUplC,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,sCAAsCnI,UAAW2xC,KAChG,kBAAC,GAAD,CAAU1pC,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,iCAAiCnI,UAAW6zC,KAC3F,kBAAC,GAAD,CAAU5rC,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,4BAA4BnI,UAAW26C,KACtF,kBAAC,GAAD,CAAU1yC,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,qCAAqCnI,UAAWgnD,KAC/F,kBAAC,GAAD,CAAU/+C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,mCAAmCnI,UAAWi8C,KAC7F,kBAAC,GAAD,CAAUh0C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,oDAAoDnI,UAAWm8C,KAC9G,kBAAC,GAAD,CAAUl0C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,sDAAsDnI,UAAWo8C,KAChH,kBAAC,GAAD,CAAUn0C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,2DAA2DnI,UAAWi9C,KACrH,kBAAC,GAAD,CAAUh1C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,gDAAgDnI,UAAW09C,KAC1G,kBAAC,GAAD,CAAUz1C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,+CAA+CnI,UAAW89C,KACzG,kBAAC,GAAD,CAAU71C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,2CAA2CnI,UAAW6kC,KACrG,kBAAC,GAAD,CAAU58B,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,2CAA2CnI,UAAW2mC,KACrG,kBAAC,GAAD,CAAU1+B,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,iCAAiCnI,UAAWinD,KAC3F,kBAAC,GAAD,CAAUh/C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,+CAA+CnI,UAAW6+C,KACzG,kBAAC,GAAD,CAAU52C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,4CAA4CnI,UAAWm/C,KACtG,kBAAC,GAAD,CAAUl3C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,2CAA2CnI,UAAWo/C,KACrG,kBAAC,GAAD,CAAUn3C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,uBAAuBnI,UAAWq/C,KACjF,kBAAC,GAAD,CAAUp3C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,WAAWnI,UAAW0/C,KACrE,kBAAC,GAAD,CAAUz3C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,8BAA8BnI,UAAW6gD,KACxF,kBAAC,GAAD,CAAU54C,OAAQ48C,GAAcyB,OAAK,EAACn+C,KAAK,gBAAgBnI,UAAWylD,KACtE,kBAAC,GAAD,CAAUx9C,OAAQ48C,GAAcyB,OAAK,EAACn+C,KAAK,4BAA4BnI,UAAW0lD,KAClF,kBAAC,GAAD,CAAUz9C,OAAQnM,GAAkBwqD,OAAK,EAACn+C,KAAK,6CAA6CnI,UAAWmmD,M,uDC7G3G,MAAMe,GAAe,CACjB1rD,KAAM,CACFgB,iBAAiB,EACjBiF,YAAa,OCHfylD,GAAe,CACjBvrD,WAAY,ICDVurD,GAAe,CACjB1rD,KAAM,ICMK2rD,OALEC,aAAgB,CAC7B7qD,aHGiC,CAACJ,EAAQ+qD,GAAcG,KACxD,OAAQA,EAAO/wD,MACX,KAAK8E,EACD,OAAO,eAAKe,EAAZ,CAAmBX,KAAM6rD,EAAO5rD,UACpC,QACI,OAAOU,IGPfwL,WFD6B,CAACxL,EAAQ+qD,GAAcG,KACpD,OAAQA,EAAO/wD,MAEX,KAAK+E,GACD,OAAO,eAAKc,EAAZ,CAAmBR,WAAYoI,OAAOC,OAAO,GAAIqjD,EAAO5rD,WAC5D,QACI,OAAOU,IEJf8kD,iBDDmC,CAAC9kD,EAAQ+qD,GAAcG,KAC1D,OAAQA,EAAO/wD,MACX,KAAKgF,GACD,OAAO,eAAKa,EAAZ,CAAmBX,KAAM6rD,EAAO5rD,UACpC,QACI,OAAOU,MEAnB,MAAMmrD,GAAgB,CACpBjvD,IAAK,OACLkvD,aACAC,UAAW,CAAC,eAAgB,aAAc,qBAGtCC,GAAmBC,aAAeJ,GAAeH,IAQ1C1sD,GAAQuD,aACnBypD,GACAp0D,OAAOs0D,8BAAgCt0D,OAAOs0D,gCAIhD,IAAIC,GAAYC,aAAaptD,IAE7B,SAASqtD,KAEP,OADAl1D,EAAQm1D,OACD1B,GAET2B,IAAS7yD,OACP,kBAAC,IAAD,CAAUsF,MAAOA,IACf,kBAAC,IAAD,KACE,kBAAC,KAAD,CAAawtD,QAAS,KAAML,UAAWA,IACrC,kBAACE,GAAD,SAKN7qD,SAASoJ,eAAe,W","file":"static/js/main.812f62de.chunk.js","sourcesContent":["class Auth {\r\n constructor() {\r\n this.authenticated = false;\r\n this.menuler=[];\r\n this.AdSoyad=\"\";\r\n }\r\n \r\n login(cb) {\r\n this.authenticated = true;\r\n cb();\r\n }\r\n \r\n logout(cb) {\r\n this.authenticated = false;\r\n cb();\r\n }\r\n \r\n isAuthenticated() {\r\n return this.authenticated;\r\n }\r\n }\r\n \r\n export default new Auth();","/**\r\n * Contains global isomorphic session.\r\n */\r\nexport default class Globals {\r\n\r\n static isInitialized = false;\r\n constructor(props) {\r\n var isInitilazedLocalStorege = localStorage.getItem(\"initialized\");\r\n if (isInitilazedLocalStorege === null | isInitilazedLocalStorege === undefined | isInitilazedLocalStorege === \"{}\") {\r\n localStorage.setItem(\"initialized\", false);\r\n }\r\n\r\n }\r\n\r\n static isInitialized = localStorage.getItem(\"initialized\");\r\n\r\n static session = {};\r\n\r\n static reset() {\r\n this.isInitialized = false;\r\n this.session = {};\r\n }\r\n\r\n static init(session) {\r\n // if (this.isInitialized) {\r\n // throw Error(\"Globals is already initialized.\");\r\n // }\r\n\r\n // this.session = (session || {\r\n // public: {}, private: {}\r\n // });\r\n localStorage.setItem(\"initialized\", true);\r\n this.isInitialized = localStorage.getItem(\"initialized\");\r\n }\r\n\r\n static throwIfNotInitialized() {\r\n if (!this.isInitialized) {\r\n window.location.href = \"/login\";\r\n // throw Error(\"'Globals' is not initialized. You have to call 'Globals.init' before.\");\r\n }\r\n }\r\n\r\n static getSession() {\r\n this.throwIfNotInitialized();\r\n var session = localStorage.getItem(\"session\");\r\n if (session == null | session === undefined | session === \"{}\") {\r\n localStorage.setItem(\"session\", JSON.stringify(this.session));\r\n }\r\n else {\r\n this.session = JSON.parse(localStorage.getItem(\"session\"));\r\n }\r\n return this.session;\r\n }\r\n\r\n static setSession(session) {\r\n this.throwIfNotInitialized();\r\n // Update session object by the new data.\r\n this.session = { ...this.session, ...session };\r\n }\r\n\r\n static get service() {\r\n let currentSession = this.getSession();\r\n if (currentSession) {\r\n let publicSession = currentSession.public;\r\n if (publicSession) {\r\n return publicSession.service;\r\n } else {\r\n window.location.href = \"/login\"\r\n //throw Error(\"Globals: public session was not initialized.\")\r\n }\r\n }\r\n throw Error(\"Globals: current session was not initialized.\")\r\n }\r\n\r\n static set service(service) {\r\n var localStoregeData = localStorage.getItem(\"oturum\");\r\n if (localStoregeData !== null | localStoregeData !== undefined | localStoregeData !== \"{}\") {\r\n service = JSON.parse(localStoregeData);\r\n this.setSession({ public: { service } });\r\n }\r\n else {\r\n this.setSession({ public: { service } });\r\n }\r\n\r\n }\r\n\r\n static get isAuthenticated() {\r\n var localStoregeData = localStorage.getItem(\"oturum\");\r\n if (localStoregeData !== null | localStoregeData !== undefined | localStoregeData !== \"{}\") {\r\n return true\r\n }\r\n else {\r\n return false;\r\n }\r\n\r\n }\r\n}","import * as React from \"react\";\r\nimport { withRouter } from \"react-router\";\r\nimport TreeView from 'devextreme-react/tree-view';\r\nimport Globals from \"../../Globals\";\r\nclass LeftMenu extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.treeViewRef = React.createRef();\r\n this.selectedNodes = [];\r\n this.getSelectedNodes = () => {\r\n this.selectedNodes = this.treeView.getSelectedNodes();\r\n }\r\n }\r\n get treeView() {\r\n return this.treeViewRef.current.instance;\r\n }\r\n menuClick = (event) => {\r\n localStorage.setItem(\"menuItem\", JSON.stringify(event.itemData));\r\n if (event.itemData.Href != null) {\r\n this.props.history.push('/' + event.itemData.Href);\r\n\r\n }\r\n }\r\n render() {\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withRouter(LeftMenu);","import Globals from './Globals';\r\nimport notify from 'devextreme/ui/notify';\r\nimport 'devextreme/data/odata/store';\r\nimport CustomStore from 'devextreme/data/custom_store';\r\nimport service from 'axios';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport axios from 'axios';\r\nconst isNotEmpty = (value) => value !== undefined && value !== null && value !== '';\r\nexport const authApi = window.ayarlar.type === \"developer\" ? window.ayarlar.localauth : window.ayarlar.prodauth;\r\nexport const sinavApi = window.ayarlar.type === \"developer\" ? window.ayarlar.localsinav : window.ayarlar.prodsinav;\r\nexport const karneApi = window.ayarlar.type === \"developer\" ? window.ayarlar.localkarne : window.ayarlar.prodkarne;\r\nexport const otomasyonApi = window.ayarlar.type === \"developer\" ? window.ayarlar.localotomasyon : window.ayarlar.prodotomasyon;\r\nexport const cacheApi = window.ayarlar.type === \"developer\" ? window.ayarlar.localcache : window.ayarlar.prodcache;\r\nexport const crmApi = window.ayarlar.type === \"developer\" ? window.ayarlar.localcrm : window.ayarlar.prodcrm;\r\nexport const olusturulanListeKarneDosyasi = window.ayarlar.type === \"developer\" ? window.ayarlar.localOlusturulanListeKarneDosyasi : window.ayarlar.prodOlusturulanListeKarneDosyasi;\r\nexport const dokumanUrl = window.ayarlar.type === \"developer\" ? window.ayarlar.localDokumanUrl : window.ayarlar.prodDokumanUrl;\r\nexport const sinavRealApi = window.ayarlar.sinavRealApi;\r\nexport const yayinGatewayUrl = window.ayarlar.yayinGatewayUrl;\r\nexport const yayinSinavApi = window.ayarlar.yayinSinavApi;\r\nexport const yayinKarneApi = window.ayarlar.yayinKarneApi;\r\n//#region consts\r\nexport const selectedStudentRows = \"selectedStudentRows\";\r\n//#endregion\r\nexport function errorMessageWithKonum(msg, konum) {\r\n return \"Teknik bir hata oluştu, \" + konum + \"getirilemedi.Hata Detayı:\" + msg + \"\";\r\n}\r\n\r\nexport function errorMessage(msg) {\r\n return \"Teknik bir hata oluştu, hata Detayı:\" + msg + \"\";\r\n}\r\n\r\nexport function isEmpty(obj) {\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key))\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nexport async function sendRequest(url, method, data) {\r\n var a = await service.post(url, data, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n }\r\n else {\r\n throw res.data.ErrorMessage;\r\n }\r\n })\r\n .catch(err => {\r\n throw err;\r\n })\r\n return a;\r\n}\r\n\r\nvar parameters = null;\r\nfunction loadx(loadOptions, url) {\r\n let params = '?';\r\n [\r\n 'filter',\r\n 'group',\r\n 'groupSummary',\r\n 'parentIds',\r\n 'requireTotalCount',\r\n 'searchExpr',\r\n 'searchOperation',\r\n 'searchValue',\r\n 'select',\r\n 'sort',\r\n 'skip',\r\n 'take',\r\n ].forEach(function (i) {\r\n if (i in loadOptions && isNotEmpty(loadOptions[i])) {\r\n params += `${i}=${JSON.stringify(loadOptions[i])}&`;\r\n }\r\n });\r\n params = params.slice(0, -1);\r\n parameters = params;\r\n return service.get(url + parameters,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(response => {\r\n return {\r\n data: response.data.data,\r\n totalCount: response.data.totalCount\r\n };\r\n })\r\n .catch((err) => { notify(err, \"error\", 5000) });\r\n}\r\n\r\nexport function GetStore(primaryKey\r\n , tabloAdi\r\n , loadUrl\r\n , insertUrl\r\n , updateUrl\r\n , deleteUrl) {\r\n return new DataSource({\r\n store: new CustomStore({\r\n key: primaryKey,\r\n cacheRawData: false,\r\n load: async (loadOptions) => {\r\n return loadx(loadOptions, loadUrl);\r\n },\r\n insert: async (values) => {\r\n return await sendRequest(insertUrl, \"POST\", {\r\n values: JSON.stringify(values),\r\n tablo: tabloAdi\r\n })\r\n .then(() => {\r\n notify(\"İşleminiz gerçekleşti\", \"success\", 3000);\r\n })\r\n .catch(err => {\r\n notify(\"İşleminiz gerçekleşmedi,hata ayrıntısı:\" + err, \"error\", 3000);\r\n throw err;\r\n });\r\n },\r\n update: async (key, values) => {\r\n return await sendRequest(updateUrl, \"POST\", {\r\n key: key,\r\n values: JSON.stringify(values),\r\n tablo: tabloAdi\r\n }).then((res) => {\r\n notify(\"İşleminiz gerçekleşti\", \"success\", 3000);\r\n })\r\n .catch(err => {\r\n notify(\"İşleminiz gerçekleşmedi,hata ayrıntısı:\" + err, \"error\", 3000);\r\n throw err;\r\n });\r\n },\r\n remove: async (key) => {\r\n return sendRequest(deleteUrl, \"POST\", {\r\n key: key,\r\n tablo: tabloAdi\r\n }).then((res) => {\r\n notify(\"İşleminiz gerçekleşti\", \"success\", 3000);\r\n })\r\n .catch(err => {\r\n notify(\"İşleminiz gerçekleşmedi,hata ayrıntısı:\" + err, \"error\", 3000);\r\n throw err;\r\n });\r\n },\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n })\r\n};\r\n\r\nexport function onlyUnique(value, index, self) {\r\n return self.indexOf(value) === index;\r\n}\r\n\r\n// async function refreshAccessToken() {\r\n// try {\r\n// debugger;\r\n// let oturum = JSON.parse(localStorage.getItem(\"oturum\"));\r\n// const response = await axios.post(authApi + \"auth/refresh\", {\r\n// RefreshToken: oturum.RefreshToken,\r\n// AccessToken: oturum.Token\r\n// });\r\n// Auth.login(() => {\r\n// var localStoregeData = {};\r\n// response.data.AdSoyad = response.data.Kullanici.Adi + \" \" + response.data.Kullanici.Soyadi;\r\n// response.data.Menu = response.data.Kullanici.KullaniciMenuler;\r\n// response.data.Rol = response.data.Kullanici.Rol;\r\n// response.data.Id = response.data.Kullanici.Id;\r\n// response.data.DonemId = response.data.Kullanici.Donem.Id;\r\n// response.data.DonemAdi = response.data.Kullanici.DonemAdi;\r\n// localStorage.setItem(\"oturum\", JSON.stringify(response.data));\r\n// // Globals.AdSoyad = localStoregeData.Kullanici.Adi + \" \" + localStoregeData.Kullanici.Soyadi;\r\n// // Globals.menuler = localStoregeData.Kullanici.KullaniciMenuler;\r\n// Globals.service = localStoregeData;\r\n// accessToken = response.data.Token;\r\n// });\r\n\r\n// } catch (err) {\r\n// console.error(err);\r\n// throw err;\r\n// }\r\n// }\r\n\r\n// axios.interceptors.response.use(\r\n// (response) => response,\r\n// (error) => {\r\n// debugger;\r\n// const originalRequest = error.config;\r\n\r\n// if (error.response.status === 401) {\r\n// alert(\"Oturum süreniz dolmuş, tekrar giriş yapmak zorundasınız. Giriş sayfasına yönlendiriliyorsunuz...\")\r\n// window.location.href = \"/login\";\r\n// // originalRequest._retry = true;\r\n// // return refreshAccessToken().then(() => {\r\n// // let oturum = JSON.parse(localStorage.getItem(\"oturum\"));\r\n// // originalRequest.headers.Authorization = `Bearer ${oturum.Token}`;\r\n// // return axios(originalRequest);\r\n// // });\r\n// }\r\n\r\n// return Promise.reject(error);\r\n// }\r\n// );\r\n\r\n","export const MainSystemActionTypes = {\r\n SET_REMOTE_SYSTEM_INFO: \"SET_REMOTE_SYSTEM_INFO\",\r\n}\r\n\r\nexport const KepsSystemActionTypes = {\r\n SET_SHORT_CODES: \"SET_SHORT_CODES\"\r\n}\r\n\r\nexport const SanalSinavSystemActionTypes = {\r\n SET_SANAL_SINAV_BILGISI: \"SET_SANAL_SINAV_BILGISI\"\r\n}","import { MainSystemActionTypes } from \"../constants/action-types\";\r\nexport const setRemoteSystemInfo = (info) => {\r\n return {\r\n type: MainSystemActionTypes.SET_REMOTE_SYSTEM_INFO,\r\n payload: info\r\n }\r\n}","import { KepsSystemActionTypes } from \"../constants/action-types\";\r\nexport const setKepsSystemShortCodes = (shortCodes) => {\r\n return {\r\n type: KepsSystemActionTypes.SET_SHORT_CODES,\r\n payload: shortCodes\r\n }\r\n}","import { SanalSinavSystemActionTypes } from \"../constants/action-types\";\r\nexport const setSanalSinavSystemInfo = (info) => {\r\n return {\r\n type: SanalSinavSystemActionTypes.SET_SANAL_SINAV_BILGISI,\r\n payload: info\r\n }\r\n}","\r\nimport * as React from \"react\";\r\nimport notify from 'devextreme/ui/notify';\r\nimport { Drawer, Toolbar } from 'devextreme-react';\r\nimport auth from '../Auth';\r\nimport LeftMenu from '../components/shared/LeftMenu';\r\nimport Globals from '../Globals';\r\nimport trMessages from \"devextreme/localization/messages/tr.json\";\r\nimport { locale, loadMessages } from \"devextreme/localization\";\r\nimport 'devextreme/dist/css/dx.common.css';\r\nimport 'devextreme/dist/css/dx.carmine.compact.css';\r\nimport { Popup } from 'devextreme-react';\r\nimport service from 'axios';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport { authApi, otomasyonApi, sinavApi, yayinGatewayUrl } from \"../Util\";\r\nimport { connect } from 'react-redux';\r\nimport Form, { SimpleItem, GroupItem, Label, RequiredRule } from 'devextreme-react/form';\r\nimport { confirm, alert, custom } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { setRemoteSystemInfo } from \"../redux/actions/mainSystemAction\";\r\nimport { setKepsSystemShortCodes } from \"../redux/actions/kepsSystemAction\";\r\nimport { setSanalSinavSystemInfo } from '../redux/actions/sanalSinavSystemAction';\r\nimport DataGrid, { Column, Editing, LoadPanel } from 'devextreme-react/data-grid';\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n setRemoteSystem: (data) => dispatch(setRemoteSystemInfo(data)),\r\n setShortCodes: (data) => dispatch(setKepsSystemShortCodes(data)),\r\n setSanalSystemInfo: (data) => dispatch(setSanalSinavSystemInfo(data)),\r\n }\r\n}\r\nconst mapStateToProps = state => ({\r\n remoteSystem: state.remoteSystem.info,\r\n shortCodes: state.kepsSystem.shortCodes\r\n});\r\nlet kisaYollar = [];\r\nclass AuthorizedLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onInitializedToolbar = this.onInitializedToolbar.bind(this);\r\n this.onInitializedFormDonemSecimi = this.onInitializedFormDonemSecimi.bind(this);\r\n this.gridSinavaKatilanOgrenciler = null;\r\n this.state = {\r\n onOpen: true,\r\n vposition: \"left\",\r\n mainConnected: this.props.remoteSystem.connectionState,\r\n //seciliTabId: 0,\r\n actionType: 0,\r\n popup: false,\r\n acikRizaBeyaniPopup: false,\r\n popupDonemSecim: false,\r\n popupSms: false,\r\n popupDonemArasi: false,\r\n donemGecisDisabled: false,\r\n telefon: \"\"\r\n };\r\n\r\n document.title = window.ayarlar.sistemAdi;\r\n this.toolbar = null;\r\n this.formDonemSecimi = null;\r\n this.formDonemData = {\r\n DonemId: null,\r\n KullaniciId: Globals.service.Kullanici.Id\r\n }\r\n this.formSmsData = {\r\n Telefon: \"\",\r\n Mesaj: \"\"\r\n };\r\n this.remoteDonemDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: yayinGatewayUrl + 'auth/auth/getdonemler',\r\n })\r\n });\r\n this.donemDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: authApi + 'auth/getdonemler',\r\n })\r\n });\r\n this.sinavaKatilanOgrenciler = [];\r\n this.sinavaKatilanOgrenciDataSource = new DataSource({\r\n onUpdated: function (key, values) {\r\n console.log(key);\r\n console.log(values);\r\n // var item = myArray.find(i => i.id === key);\r\n // Object.assign(item, values);\r\n // localStorage.setItem('myArray', JSON.stringify(myArray));\r\n },\r\n store: {\r\n type: 'array',\r\n key: 'Id',\r\n data: this.sinavaKatilanOgrenciler\r\n },\r\n paginate: false\r\n });\r\n this.toolbarItems = [\r\n\r\n ];\r\n\r\n this.profilMenu = [];\r\n if (window.ayarlar.projeturu === \"otomasyon\") {\r\n this.profilMenu = [\r\n { 'name': 'Ayarlar', 'id': 1 },\r\n { 'name': this.props.remoteSystem.connectionState ? \"M.S.S Bağlanıldı\" : \"M.S.S Bağlanılamadı\", 'id': 2 },\r\n { 'name': 'Sms Gönder', 'id': 4 },\r\n { 'name': 'Oturumu Kapat', 'id': 3 }\r\n ];\r\n }\r\n else {\r\n this.profilMenu = [\r\n { 'name': 'Ayarlar', 'id': 1 },\r\n { 'name': 'Oturumu Kapat', 'id': 3 }\r\n ];\r\n }\r\n service.get(sinavApi + \"kullanici/getfavoriler\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n kisaYollar = [];\r\n if (res.data.Data.length > 0) {\r\n res.data.Data.forEach((satir) => {\r\n kisaYollar.push({\r\n widget: 'dxButton', location: 'before',\r\n options: {\r\n icon: satir.Icon,\r\n hint: satir.Hint,\r\n onClick: () => {\r\n window.location.href = \"/\" + satir.Url;\r\n }\r\n }\r\n });\r\n });\r\n this.props.setShortCodes(kisaYollar);\r\n }\r\n }\r\n }).catch(err => {\r\n notify(\"Teknik bir hata oluştu,hata ayrıntısı:\" + err.ErrorMessage, 5000);\r\n })\r\n loadMessages(trMessages);\r\n locale(navigator.language);\r\n if (window.ayarlar.rizaBeyanFormuGoster) {\r\n service.get(otomasyonApi + \"common/getBeyanKontrol\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success && res.data.Data !== true) {\r\n this.setState({\r\n popup: true,\r\n acikRizaBeyaniPopup: false\r\n });\r\n }\r\n else if (!res.data.Success) {\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, 'error', 5000);\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n async onClickSignOut(e) {\r\n notify(`${e.component.option('text')} ile portaldan çıkıyorsunuz.`, 'success', 500);\r\n\r\n auth.logout(() => {\r\n try {\r\n localStorage.removeItem(\"oturum\");\r\n localStorage.removeItem(\"session\");\r\n localStorage.removeItem(\"initialized\");\r\n } catch (error) {\r\n }\r\n\r\n });\r\n this.props.children.props.history.push(\"/login\")\r\n }\r\n\r\n async aydinlatmaMetniGizle(e) {\r\n this.setState({\r\n popup: false,\r\n acikRizaBeyaniPopup: true\r\n });\r\n }\r\n\r\n async onClickProfile(e) {\r\n notify(`${e.component.option('text')} ile portalınızı kişiselleştirebilirsiniz.`, 'success', 500);\r\n this.setState({ actionType: 2 });\r\n }\r\n\r\n onInitializedToolbar(e) {\r\n this.toolbar = e.component;\r\n }\r\n onInitializedFormDonemSecimi(e) {\r\n this.formDonemSecimi = e.component;\r\n }\r\n\r\n getItems() {\r\n let items = [];\r\n items = [{ widget: 'dxButton', location: 'before', options: { icon: 'menu', onClick: () => (this.setState({ onOpen: !this.state.onOpen })) } },\r\n { widget: 'dxButton', location: 'before', options: { icon: 'codeblock', onClick: () => (this.setState({ vposition: this.state.vposition === \"left\" ? \"right\" : \"left\" })) } },\r\n {\r\n widget: 'dxButton', location: 'before', options: {\r\n visible: [\"SubeOgretmen\", \"SubeOgrenci\", \"GenelMerkez\"].includes(Globals.service.Rol), text: \"Tekno Öğretim\", icon: 'user', onClick: () => {\r\n window.location.href = \"https://sinav.mobilogretim.com/keps.php?token=Y2F0Y2hlciUyMHdvbmclMjBsb3ZlJTIGHTYSHAMCVmslspip%C4%9Ft%C3%BCx%C4%9F%C3%BCi%C3%A7ci&k_uid=\" + Globals.service.Kullanici.KurumId + \"-\" + Globals.service.Kullanici.Id;\r\n }\r\n }\r\n },\r\n {\r\n widget: 'dxButton', location: 'before', options: {\r\n icon: 'home', onClick: () => {\r\n if (Globals.service.Rol === \"SubeKayitKabul\") {\r\n this.props.children.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeMuhasebe\") {\r\n this.props.children.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"Sube\") {\r\n this.props.children.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"GenelMerkez\") {\r\n this.props.children.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeKayitMuhasebe\") {\r\n this.props.children.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeVeli\") {\r\n this.props.children.props.history.push(\"/velidashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeOgrenci\") {\r\n window.clearInterval(window.x);\r\n this.props.children.props.history.push(\"/ogrencidashboard\");\r\n }\r\n else {\r\n this.props.children.props.history.push(\"/home\");\r\n }\r\n\r\n }\r\n }\r\n },\r\n // {\r\n // location: 'after',\r\n // locateInMenu: 'never',\r\n // widget: 'dxButton',\r\n // options: {\r\n // visible: window.ayarlar.projeturu === \"otomasyon\" & (Globals.service.Rol !== \"SubeVeli\") ? true : false,\r\n // icon: 'globe',\r\n // text: this.props.remoteSystem.connectionState ? \"Merkezi Sınav Sistemine Bağlanıldı\" : \"Merkezi Sınav Sistemine Bağlanılamadı\",\r\n // type: this.props.remoteSystem.connectionState ? \"success\" : \"danger\",\r\n // onClick: () => {\r\n // this.setState({\r\n // popupDonemSecim: true\r\n // })\r\n // }\r\n // }\r\n // },\r\n\r\n { location: 'center', locateInMenu: 'never', template: () => { return '
' + window.ayarlar.sistemAdi + '(' + Globals.service.DonemAdi + ' - Aktif Dönemi)
'; } },\r\n {\r\n location: 'center',\r\n widget: 'dxButton',\r\n options: {\r\n text: \"Dönemler Arası Geçiş\",\r\n type: \"success\",\r\n icon: \"export\",\r\n onClick: async () => {\r\n this.donemDataSource.filter([\"Id\", \"<>\", Globals.service.DonemId]);\r\n await this.donemDataSource.load().then(() => {\r\n this.setState({\r\n popupDonemArasi: true\r\n });\r\n });\r\n\r\n }\r\n }\r\n },\r\n {\r\n location: 'after',\r\n widget: 'dxDropDownButton',\r\n options: {\r\n displayExpr: 'name',\r\n keyExpr: 'id',\r\n selectedItemKey: 1,\r\n stylingMode: 'text',\r\n useSelectMode: false,\r\n splitButton: true,\r\n text: Globals.service.AdSoyad,\r\n items: this.profilMenu,\r\n width: 150,\r\n onItemClick: (e) => {\r\n if (e.itemData.id === 1) {\r\n this.props.children.props.history.push(\"/ayarlar\");\r\n }\r\n else if (e.itemData.id === 2) {\r\n this.setState({\r\n popupDonemSecim: true\r\n })\r\n }\r\n else if (e.itemData.id === 3) {\r\n this.props.setRemoteSystem({\r\n connectionState: false,\r\n remoteToken: \"\"\r\n });\r\n this.props.setShortCodes([]);\r\n this.props.setSanalSystemInfo({});\r\n this.onClickSignOut(e);\r\n }\r\n else if (e.itemData.id === 4) {\r\n this.setState({\r\n popupSms: true\r\n }, () => {\r\n this.getSinavaKatilanOgrenciler();\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n ];\r\n\r\n this.props.shortCodes.forEach((x, i) => {\r\n items.push(x);\r\n });\r\n return items;\r\n }\r\n\r\n async getSinavaKatilanOgrenciler() {\r\n await service.get(sinavApi + \"ortak/sinavakatilanogrenciler\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (resAlan) => {\r\n if (resAlan.data.Success) {\r\n var existStore = this.sinavaKatilanOgrenciDataSource.store();\r\n existStore.clear();\r\n await this.gridSinavaKatilanOgrenciler.instance.refresh().then(() => {\r\n resAlan.data.Data.forEach((satir, index) => {\r\n this.sinavaKatilanOgrenci = {\r\n Id: satir.Id,\r\n Adi: satir.Adi,\r\n Soyadi: satir.Soyadi,\r\n SinifKodu: satir.SinifKodu,\r\n OgrenciCepTel: satir.OgrenciCepTel\r\n };\r\n var store = this.sinavaKatilanOgrenciDataSource.store();\r\n store.insert(this.sinavaKatilanOgrenci);\r\n });\r\n\r\n })\r\n await this.gridSinavaKatilanOgrenciler.instance.refresh();\r\n }\r\n else {\r\n notify(resAlan.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n this.toolbar = ref} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {this.props.children}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n visible={this.state.popup} width={\"100%\"} height={\"100%\"}\r\n title=\"ARK YAZILIM KİŞİSEL VERİLERİN KORUNMASI VE İŞLENMESİ AYDINLATMA METNİ\"\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after', widget: 'dxButton',\r\n toolbar: \"bottom\",\r\n options: {\r\n text: 'Aydınlatma metnini okudum,kendi rızamla onayladım', type: 'success', hint: 'Aydınlatma metnini okudum,kendi rızamla onayladım', icon: 'check'\r\n , onClick: (e) => {\r\n this.aydinlatmaMetniGizle();\r\n\r\n }\r\n }\r\n\r\n }\r\n ]\r\n }\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n

Kişisel verileriniz bizim için önemlidir!

\r\n

Kişisel verilerin işlenmesinde başta özel hayatın gizliliği olmak üzere kişilerin temel hak ve özgürlüklerinin korunmasını amaçlayan 7 Nisan 2016 tarih ve 29677 Sayılı Resmî Gazete’de yayımlanan 6698 sayılı Kişisel Verilerin Korunması Kanunu (\"KVKK\" veya \"Kanun\")’nun \"Veri Sorumlusunun Aydınlatma Yükümlülüğü\" başlıklı 10. maddesi ile 10 Mart 2018 tarih ve 30356 sayılı Resmî Gazete’de yayımlanan Aydınlatma Yükümlülüğünün Yerine Getirilmesinde Uyulacak Usul ve Esaslar Hakkında Tebliğ uyarınca işbu Aydınlatma Metni veri sorumlusu sıfatıyla ARK YAZILIM tarafından hazırlanmıştır. Bu aydınlatma metni ile işlenen kişisel verileriniz hakkında sizi bilgilendirmeyi ve 6698 sayılı Kişisel Verilerin Korunması Kanunu kapsamında veri sorumlusu sıfatının gerektirdiği aydınlatma yükümlülüğünü yerine getirmeyi hedeflemekteyiz.

\r\n

 

\r\n

1.VERİ SORUMLUSU

\r\n

ARK YAZILIM; toplumun her kesiminde yazılım hizmeti sunmayı misyon edinen, çağdaş yenilikleri takip eden ve bu yeniliklere öncülük etmeyi hedefleyen, eğitim konusunda “Orion” sınav değerlendirme sistemini geliştiren 2016 tarihinde kurulmuş bir yazılım firmasıdır.

\r\n

Açıklanan hizmetin yerine getirilmesi esnasında işlenen kişisel verileriniz bakımından, ARK YAZILIM, Kanun uyarınca \"Veri Sorumlusu\" sıfatını haiz olup tarafımıza aşağıda yer verilen iletişim bilgileri aracılığıyla ulaşmanız mümkündür.

\r\n

Adres: Tatlıkuyu Mahallesi 1317. Sokak No 10 Kat 2   41400 Gebze / KOCAELİ

\r\n

Telefon: 0262 642 00 02

\r\n

İnternet Adresi: http://www.arkyazilim.com

\r\n

E-posta Adresi: info@arkyazilim.com

\r\n

 

\r\n

2.İŞLENEN KİŞİSEL VERİLER

\r\n

Kimlik Bilgileriniz: Adı-soyadı, T.C. kimlik numarası, cinsiyeti, doğum yeri, doğum tarihi;

\r\n

Öğrenci Kimlik Bilgileriniz: Okul numarası, velisinin adı-soyadı, veli yakınlık derecesi;

\r\n

İletişim Bilgileriniz: Telefon numarası, e-posta adresi, veli telefon numarası, adres;

\r\n

İletişim Kayıtlarınız: Şikâyet, öneri ve taleplere ilişkin yazılı ve elektronik mesaj içeriğiniz, şikâyet başvurusunda bulunmanız halinde şikâyete konu ettiğiniz ticari elektronik iletinin görsel örneği;

\r\n

Kanun hükmü gereği gerçek kişilerin bilgilerinin doğru ve güncel tutulması esastır. Ark Yazılım, hiçbir koşulda sunulan yanlış bilgiden sorumlu tutulamaz.

\r\n

 

\r\n

3.KİŞİSEL VERİLERİN İŞLENME AMAÇLARI

\r\n

Paylaştığınız kişisel veriler;

\r\n

3.1-Müşteri öğrenciler hakkında yapılan devamsızlık durumunun ve sınav sonuçlarının veliye aktarılması için,

\r\n

3.2-Müşteri ile akdedilen sözleşme kapsamında uyuşmazlık çıkması halinde hukuki yollara ve senede dayalı icra yoluna başvurabilmek ve doğabilecek uyuşmazlıklarda delili olarak kullanılabilmesi için;

\r\n

3.3-Müşterilerimize verdiğimiz hizmetlerin gereklerini, sözleşmenin ve teknolojinin gereklerine uygun şekilde yapabilmek, sunulan ürün ve hizmetlerimizi geliştirebilmek için,

\r\n

3.4- Sözleşmesel ve yasal yükümlülüklerimizin tam ve gereği gibi ifa edilebilmesi için,

\r\n

3.5- Kamu güvenliğine ilişkin hususlarda ve hukuki uyuşmazlıklarda, talep halinde ve mevzuat gereği savcılıklara, mahkemelere ve ilgili kamu görevlilerine bilgi verebilmek için;

\r\n

3.6- Şikâyet, öneri ve taleplerin yönetiminin sağlanması ve ilgililerine işlem sonucu hakkında tarafınıza bilgi verilmesi için,

\r\n

6698 sayılı KVKK ve ilgili ikincil düzenlemelere uygun olarak işlenecektir.

\r\n

 

\r\n

4.İŞLENEN KİŞİSEL VERİLERİN AKTARIMI

\r\n

Kişisel verileriniz; Kanun’un kişisel verilerin aktarılması hükümleri kapsamında işbu Aydınlatma Metni’nin 3. maddesinde yer alan amaçlarla yurt içindeki kanunen yetkili kamu resmi kurum ve kuruluşlar, kolluk kuvvetleri, mahkemeler ve icra müdürlükleri ile paylaşılabilecektir.

\r\n

 

\r\n

5.KİŞİSEL VERİLERİN TOPLANMA YÖNTEMLERİ VE HUKUKİ SEBEPLERİ

\r\n

Bu kişisel veriler, Kanun’un 5. Maddesinde belirtilen “veri sorumlusunun hukuki yükümlülüğünü yerine getirebilmesi için zorunlu olması; bir hakkın tesisi, kullanılması veya korunması için veri işlemenin zorunlu olması; ilgili kişinin temel hak ve özgürlüklerine zarar vermemek kaydıyla veri sorumlusunun meşru menfaati için zorunlu olması” hukuki sebeplerine dayalı olarak veri entegrasyonu yoluyla otomatik olarak işlenmektedir.

\r\n

 

\r\n

6.KİŞİSEL VERİLERİ İŞLENEN İLGİLİ KİŞİNİN HAKLARI

\r\n

Kanun’un “ilgili kişinin haklarını düzenleyen” 11. Maddesi kapsamında kişisel veri sahibi Firmamıza(veri sorumlusu) kendisiyle ilgili;

\r\n
    \r\n
  • a) Kişisel verinin işlenip işlenmediğini öğrenme,
  • \r\n
  • b) Kişisel verileri işlenmişse; buna ilişkin bilgi talep etme,
  • \r\n
  • c) Kişisel verilerin işlenme amacını ve bunların amacına uygun kullanılıp kullanılmadığını öğrenme,
  • \r\n
  • ç) Yurt içinde veya yurt dışında kişisel verilerin aktarıldığı üçüncü kişileri bilme,
  • \r\n
  • d) Kişisel verilerin eksik veya yanlış işlenmiş olması hâlinde bunların düzeltilmesini isteme,
  • \r\n
  • e) Kişisel verinizin işlenmesini gerektiren sebeplerin ortadan kalkması hâlinde, verilerin silinmesini veya yok edilmesini isteme,
  • \r\n
  • f) Kişisel verilerin düzeltilmesi, silinmesi ya da yok edilmesi halinde bu işlemlerin kişisel verilerin aktarıldığı üçüncü kişilere bildirilmesini isteme,
  • \r\n
  • g) İşlenen kişisel verilerin münhasıran otomatik sistemler vasıtasıyla analiz edilmesi suretiyle veri sahibinin aleyhine bir sonucun ortaya çıkmasına itiraz etme,
  • \r\n
  • ğ) Kişisel verilerin kanuna aykırı olarak işlenmesi sebebiyle zarara uğraması hâlinde zararın giderilmesini talep etme haklarına sahiptir.
  • \r\n
\r\n

 

\r\n

7.HAK VE TALEPLERİNİZ İÇİN BİZİMLE İLETİŞİME GEÇMEK İSTERSENİZ:

\r\n

Yukarıda belirtilen haklar kapsamında ilgili taleplerinizi, \"Veri Sorumlusuna Başvuru Usul ve Esasları Hakkında Tebliğe\" göre dilekçe veya noter kanalı ile \" Tatlıkuyu Mah. 1317. Sokak No 10 Kat 2 Gebze / KOCAELİ \" adresinde yer alan firmamıza yazılı olarak veya firmamıza daha önce bildirilen ve sistemlerimizde kayıtlı bulunan elektronik posta adresinizi kullanmak suretiyle info@arkyazilim.com e-posta adresi aracılığıyla tarafımıza iletebilirsiniz.

\r\n

 

\r\n

VERİ SORUMLUSU

\r\n

ARK YAZILIM

\r\n

 

\r\n

 

\r\n

 

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n visible={this.state.acikRizaBeyaniPopup} width={\"100%\"} height={\"100%\"}\r\n title=\"VERİ SAHİBİNİN AÇIK RIZA BEYAN FORMU\"\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after', widget: 'dxButton',\r\n toolbar: \"bottom\",\r\n options: {\r\n text: 'Muvafakat ettiğimi kabul, beyan ve taahhüt ederim', type: 'success', hint: 'Muvafakat ettiğimi kabul, beyan ve taahhüt ederim', icon: 'check'\r\n , onClick: (e) => {\r\n service.post(otomasyonApi + \"common/beyanver\",\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n popup: false,\r\n acikRizaBeyaniPopup: false\r\n });\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n })\r\n\r\n }\r\n }\r\n\r\n }\r\n ]\r\n }\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n

Bu açık rıza metni size, tarafınıza aydınlatma yapıldıktan sonra sunulmuştur. Lütfen önce aydınlatma metnini okuduğunuzdan ve bu metne özgür iradenizle onay verdiğinizden emin olunuz. Bu metne konu kişisel verilerin işlenmesine açık rıza verdikten sonra, dilediğiniz zaman açık rızanızı geri alabilirsiniz. Kişisel verilerinizi önemsiyor ve koruyoruz.

\r\n

İşbu Bilgilendirme Yazısını okuduğumu ve 6698 sayılı Kişisel Verilerin Korunması Kanunu kapsamında, kendimin, velimin ve/veya velisi olduğum çocuğumun kişisel verilerinin ARK YAZILIM ile tüm iştirakleri tarafından yasadaki esaslar çerçevesinde toplanmasına, kaydedilmesine, işlenmesine, saklanmasına peşinen muvafakat ettiğimi kabul, beyan ve taahhüt ederim.

\r\n

6698 sayılı “Kişisel Verilerin Korunması Kanunu” gereğince, kişisel verilerimin, özel nitelikli kişisel verilerimin işlenmesine, tarafımca sözlü/yazılı ve/veya elektronik ortamda verilen kimliğimi belirleyen veya belirlemeye yarayanlar da dahil olmak üzere her türlü kişisel verimin, ARK YAZILIM ile tüm iştirakleri tarafından işlenmesine, kayıt sözleşmesinin imzalanması amacıyla yazılı bilgilerimin, ilgili mevzuatlar kapsamında paylaşımın gerekli olduğu diğer kişi ve kuruluşlar ile paylaşılmasına; kişisel veriler, özel nitelikli kişisel verilerin, 6698 sayılı “Kişisel Verilerin Korunması Kanunu’ nda tanımlanan kapsamlar ile aşağıda detayları verilen kişisel ve özel nitelikli kişisel verilerin işlenmesine ve kullanılmasına kendim, velim ve/veya velisi olduğum çocuğum adına muvafakat ettiğimi kabul, beyan ve taahhüt ederim.

\r\n
    \r\n
  • Kimliği belirli veya belirlenebilir bir gerçek kişiye ait olduğu açık olan; kısmen veya tamamen otomatik şekilde veya veri kayıt sisteminin bir parçası olarak otomatik olmayan şekilde işlenen; kişinin kimliğine dair bilgilerin bulunduğu verilerdir; ad-soyad, T.C. Kimlik numarası, anne adı-baba adı, doğum yeri, doğum tarihi, cinsiyet, okul numarası, veli yakınlık derecesi gibi bilgileri içeren ehliyet, nüfus cüzdanı ve pasaport gibi belgeler ile imza bilgisi vb. bilgiler,
  • \r\n
  • Kimliği belirli veya belirlenebilir bir gerçek kişiye ait olduğu açık olan; kısmen veya tamamen otomatik şekilde veya veri kayıt sisteminin bir parçası olarak otomatik olmayan şekilde işlenen; telefon numarası, adres, e-mail adresi, veli telefon numarası gibi bilgiler,
  • \r\n
  • ARK YAZILIM’ın geliştirdiği sınav değerlendirme sistemi olan “Orion” sistemindeki sınav sonuçları- devamsızlık- iletişim bilgileri-ölçme değerlendirme-öğrenci işlemleri ile ilgili veri ve bilgiler,
  • \r\n
  • Kimliği belirli veya belirlenebilir bir gerçek kişiye ait olduğu açık olan; kısmen veya tamamen otomatik şekilde veya veri kayıt sisteminin bir parçası olarak otomatik olmayan şekilde işlenen; ARK YAZILIM firmasına yöneltilmiş olan her türlü talep veya şikayetin alınması ve değerlendirilmesine ilişkin kişisel veriler,
  • \r\n
\r\n

ARK YAZILIM ile tüm iştirakleri tarafından Kişisel Verilerin Korunması ve İşlenmesi Hakkında Bilgilendirme metnini ve haklarımı okudum ve kendim, velim ve/veya velisi olduğum çocuğum adına kabul ediyorum.

\r\n

Kişisel verilerinizin işlenmesine yönelik tercihinizi belirtiniz.

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {\r\n service.get(Globals.service.Rol === 'SubeOgrenci' ? otomasyonApi + \"entegrasyon/authenticateogrenci/\" + this.formDonemData.DonemId : otomasyonApi + \"entegrasyon/authenticate/\" + this.formDonemData.DonemId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async res => {\r\n if (res.data.Success) {\r\n this.props.setRemoteSystem(Object.assign({}, {\r\n connectionState: true,\r\n remoteToken: res.data.Data\r\n }));\r\n window.location.href = window.location.pathname;\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'runner'\r\n , onClick: () => {\r\n this.setState({\r\n popupDonemSecim: false\r\n });\r\n }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n
this.formDonemSecimi = ref}\r\n showValidationSummary={true}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n this.setState({\r\n donemGecisDisabled: true\r\n });\r\n service.post(authApi + \"Auth/termauthenticate\"\r\n , this.formDonemData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n auth.login(() => {\r\n localStorage.removeItem(\"oturum\");\r\n localStorage.removeItem(\"session\");\r\n localStorage.removeItem(\"initialized\");\r\n var localStoregeData = {};\r\n res.data.AdSoyad = res.data.Kullanici.Adi + \" \" + res.data.Kullanici.Soyadi;\r\n res.data.Menu = res.data.Kullanici.KullaniciMenuler;\r\n res.data.Rol = res.data.Kullanici.Rol;\r\n res.data.Id = res.data.Kullanici.Id;\r\n res.data.DonemId = this.formDonemData.DonemId;\r\n res.data.DonemAdi = res.data.Kullanici.DonemAdi;\r\n localStorage.setItem(\"oturum\", JSON.stringify(res.data));\r\n Globals.service = localStoregeData;\r\n this.props.setRemoteSystem({\r\n connectionState: false,\r\n remoteToken: \"\"\r\n });\r\n if (Globals.service.Rol === \"SubeKayitKabul\") {\r\n window.location.href = \"/kayitkabuldashboard\";\r\n }\r\n else if (Globals.service.Rol === \"SubeMuhasebe\") {\r\n window.location.href = \"/kayitkabuldashboard\";\r\n }\r\n else if (Globals.service.Rol === \"SubeKayitMuhasebe\") {\r\n window.location.href = \"/kayitkabuldashboard\";\r\n }\r\n else if (Globals.service.Rol === \"Sube\") {\r\n window.location.href = \"/kayitkabuldashboard\";\r\n }\r\n else if (Globals.service.Rol === \"GenelMerkez\") {\r\n window.location.href = \"/kayitkabuldashboard\";\r\n }\r\n else if (Globals.service.Rol === \"SubeVeli\") {\r\n window.location.href = \"/velidashboard\";\r\n }\r\n else if (Globals.service.Rol === \"SubeOgrenci\") {\r\n window.location.href = \"/ogrencidashboard\";\r\n }\r\n\r\n else if (Globals.service.Rol === \"AdminOtomasyon\") {\r\n window.location.href = \"/otomasyondashboard\";\r\n }\r\n else {\r\n window.location.href = \"/home\";\r\n }\r\n });\r\n\r\n\r\n })\r\n .catch((error) => {\r\n // Error 😨\r\n this.setState({\r\n donemGecisDisabled: false,\r\n popupDonemArasi: false\r\n });\r\n notify(\"Geçiş yapacağınız dönemde aynı kullanıcı bilgileriniz olmalıdır.\", \"error\");\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'runner'\r\n , onClick: () => {\r\n this.setState({\r\n popupDonemArasi: false\r\n });\r\n }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n
this.formDonemSecimi = ref}\r\n showValidationSummary={true}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {\r\n let numbers = this.formSmsData.TelefonNo.split(',');\r\n console.log(numbers)\r\n if (numbers === undefined) {\r\n alert(\"Girdiğiniz telefon numarası alanında problem var\");\r\n }\r\n else {\r\n var errorMessages = \"\";\r\n numbers.forEach((number) => {\r\n if (number.length > 10) {\r\n errorMessages += \"Girmiş olduğunuz, \" + number + \" 10 karekterden büyük olamaz
\";\r\n }\r\n else if (number.length < 10) {\r\n errorMessages += \"Girmiş olduğunuz, \" + number + \" 10 karekterden olamaz
\";\r\n }\r\n else if (isNaN(number)) {\r\n errorMessages += \"Girmiş olduğunuz, \" + number + \" bir telefon numarası değil
\";\r\n }\r\n });\r\n if (errorMessages !== \"\") {\r\n alert(\"
\" + errorMessages + \"
\")\r\n } else {\r\n let messageInfo = \"Girdiğiniz bilgilere göre telefon numaralarına sms gönderilecektir.
\";\r\n let result = confirm(messageInfo, \"Sms gönderim onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(otomasyonApi + \"sms/postserbestsmsgonder\", this.formSmsData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n await this.setState({\r\n popupSms: false\r\n });\r\n notify(\"Gönderim işleminiz gerçekleşti\", \"success\", 5000);\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"status:\" + resError.status + \"
\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"\" + satir + \":\" + resError.errors[satir.toString()][0] + \"
\";\r\n });\r\n mesaj += \"title:\" + resError.title + \"
\";\r\n mesaj += \"traceId:\" + resError.traceId + \"
\";\r\n mesaj += \"type:\" + resError.type + \"
\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n this.setState({\r\n popupSms: false\r\n })\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n \r\n \r\n
\r\n
\r\n
this.formNormalSms = ref}>\r\n \r\n \r\n \r\n \r\n {\r\n this.normalSmsSecilenOgrenciMesajTextBox = e.component;\r\n },\r\n ref: (ref) => { this.normalSmsSecilenOgrenciMesajTextBox = ref },\r\n onKeyUp: (e) => {\r\n document.getElementById(\"divKarekterSayisiNormalSms\").innerText = this.normalSmsSecilenOgrenciMesajTextBox.instance().option(\"text\").length;\r\n }\r\n }}>\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n this.gridSinavaKatilanOgrenciler = ref}\r\n onInitialized={(e) => {\r\n this.gridSinavaKatilanOgrenciler = e.component;\r\n }}\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"plus\",\r\n type: \"default\",\r\n onClick: async () => {\r\n this.formSmsData.Telefon = \"\";\r\n let data = this.gridSinavaKatilanOgrenciler.instance.getSelectedRowsData();\r\n if (data.length > 0) {\r\n\r\n data.forEach((row) => {\r\n if (!this.formSmsData.Telefon.includes(row.OgrenciCepTel)) {\r\n if (row.OgrenciCepTel.startsWith('0')) {\r\n row.OgrenciCepTel = row.OgrenciCepTel.slice(1);\r\n }\r\n\r\n this.formSmsData.Telefon += row.OgrenciCepTel + \",\";\r\n }\r\n });\r\n }\r\n if (this.formSmsData.Telefon.slice(-1) === \",\") {\r\n this.formSmsData.Telefon = this.formSmsData.Telefon.slice(0, -1);//son karekteri temizler\r\n }\r\n this.setState({ \"telefon\": this.formSmsData.Telefon });\r\n }\r\n }\r\n },\r\n )\r\n }}\r\n selection={{ mode: 'multiple' }}\r\n showCheckBoxesMode={true}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n


\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AuthorizedLayout);","import * as React from \"react\";\r\nimport { ToastContainer } from \"react-toastify\";\r\n\r\nexport default class GuestLayout extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n document.title = window.ayarlar.sistemAdi;\r\n }\r\n render() {\r\n return
\r\n
\r\n {this.props.children}\r\n
\r\n \r\n
;\r\n }\r\n}","import { Route, Redirect } from \"react-router\";\r\nimport * as React from \"react\";\r\nimport Globals from \"../../Globals\";\r\nconst AppRoute = ({ component: Component, layout: Layout, path: Path, ...rest }) => {\r\n\r\n var isLoginPath = Path === \"/login\";\r\n var isRegisterPath = Path === \"/register\";\r\n if (Globals.isAuthenticated && isLoginPath) {\r\n return ;\r\n }\r\n else if (!Globals.isAuthenticated && !isLoginPath && !isRegisterPath) {\r\n return ;\r\n }\r\n else if (!Globals.isAuthenticated && isRegisterPath) {\r\n return ;\r\n }\r\n var c = Path.substring(1);\r\n if (c) {\r\n if (c === \"register\") {\r\n return (\r\n \r\n \r\n \r\n )} />;\r\n }\r\n else if (c === \"ogrencidashboard\") {\r\n return (\r\n \r\n \r\n \r\n )} />;\r\n }\r\n else if (c === \"home\") {\r\n return (\r\n \r\n \r\n \r\n )} />;\r\n }\r\n else if (c === \"sinavsonucu/:yayinParam\") {\r\n return (\r\n \r\n \r\n \r\n )} />;\r\n }\r\n else if (c === \"eaogrencilogin/:KurumId/:KullaniciId/:Sifre\") {\r\n return (\r\n \r\n \r\n \r\n )} />;\r\n }\r\n else if (c === \"eavelilogin/:KurumId/:OgrenciKullaniciId/:KullaniciId/:Sifre\") {\r\n return (\r\n \r\n \r\n \r\n )} />;\r\n }\r\n else if (c === \"SanalSinif/SanalOptikSinav\") {\r\n return (\r\n \r\n \r\n \r\n )} />;\r\n }\r\n\r\n var myMenu = Globals.service.Menu.find(x => x.Href === c);\r\n\r\n if (myMenu === null | myMenu === undefined) {\r\n if (Path === \"/\" |\r\n Path === \"/login\" |\r\n Path === \"/sinavsonucu/:yayinParam\" |\r\n Path === \"/register\" |\r\n Path === \"/kayitkabuldashboard\" |\r\n Path === \"/otomasyondashboard\" |\r\n Path === \"/velidashboard\" |\r\n Path === \"/ogrencidashboard\" |\r\n Path === \"/home\" |\r\n Path === \"/ayarlar\" |\r\n Path === \"/eaogrencilogin/:KurumId/:KullaniciId/:Sifre\" |\r\n Path === \"/eavelilogin/:KurumId/:OgrenciKullaniciId/:KullaniciId/:Sifre\") {\r\n\r\n }\r\n else {\r\n return ;\r\n\r\n }\r\n }\r\n }\r\n //console.log(Globals.service.Menu.filter(x => x.Href === Path.substring(1)));\r\n // else if (Globals.service.Menu.filter(x => x.Href === Path.substring(1)).length === 0 && Path !== \"/login\" && Path !== \"/\") {\r\n // alert(\"bu sayfayı görme yetkiniz yok\");\r\n // return ;\r\n // }\r\n return (\r\n \r\n \r\n \r\n )} />;\r\n}\r\n\r\nexport default AppRoute;","import React from 'react';\r\nimport service from 'axios';\r\nimport Globals from '../Globals.js';\r\nimport auth from \"../Auth\";\r\nimport themes from 'devextreme/ui/themes';\r\nimport { Link } from 'react-router-dom';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport Form, {\r\n ButtonItem,\r\n GroupItem,\r\n SimpleItem,\r\n Label,\r\n RequiredRule\r\n} from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { authApi } from '../Util';\r\nclass LoginPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onInitializedSelectBoxDonem = this.onInitializedSelectBoxDonem.bind(this);\r\n this.selectBoxDonem = null;\r\n this.donemDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: authApi + 'auth/getdonemler',\r\n })\r\n });\r\n try {\r\n localStorage.removeItem(\"oturum\");\r\n localStorage.removeItem(\"session\");\r\n localStorage.removeItem(\"initialized\");\r\n } catch (error) {\r\n }\r\n const tema = localStorage.getItem(\"tema\");//kullanıcı teması\r\n if (tema != null)\r\n themes.current(tema);\r\n\r\n document.title = window.ayarlar.sistemAdi;\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.formData = {\r\n KullaniciAdi: \"\",\r\n Sifre: \"\",\r\n Donem: { Id: null },\r\n GirisTuru: \"Web\"\r\n };\r\n\r\n this.buttonOptions = {\r\n text: 'Giriş',\r\n type: 'success',\r\n useSubmitBehavior: true\r\n };\r\n\r\n this.passwordOptions = {\r\n mode: 'password'\r\n };\r\n\r\n this.donemDataSource.load().then(res => {\r\n if (res.length > 0) {\r\n this.selectBoxDonem.instance().option(\"value\", res[0].Id);\r\n }\r\n })\r\n\r\n }\r\n\r\n onInitializedSelectBoxDonem(e) {\r\n this.selectBoxDonem = e.component;\r\n }\r\n handleSubmit(e) {\r\n service.post(authApi + \"Auth/authenticate\"\r\n , this.formData)\r\n .then(res => {\r\n auth.login(() => {\r\n var localStoregeData = {};\r\n res.data.AdSoyad = res.data.Kullanici.Adi + \" \" + res.data.Kullanici.Soyadi;\r\n res.data.Menu = res.data.Kullanici.KullaniciMenuler;\r\n res.data.Rol = res.data.Kullanici.Rol;\r\n res.data.Id = res.data.Kullanici.Id;\r\n res.data.DonemId = this.formData.Donem.Id;\r\n res.data.DonemAdi = res.data.Kullanici.DonemAdi;\r\n localStorage.setItem(\"oturum\", JSON.stringify(res.data));\r\n // Globals.AdSoyad = localStoregeData.Kullanici.Adi + \" \" + localStoregeData.Kullanici.Soyadi;\r\n // Globals.menuler = localStoregeData.Kullanici.KullaniciMenuler;\r\n Globals.service = localStoregeData;\r\n // Globals.Token = localStoregeData.Token;\r\n // Globals.Rol = localStoregeData.Kullanici.Rol;\r\n if (Globals.service.Rol === \"SubeKayitKabul\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeMuhasebe\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeKayitMuhasebe\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"Sube\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"GenelMerkez\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeVeli\") {\r\n this.props.history.push(\"/velidashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeOgrenci\") {\r\n this.props.history.push(\"/ogrencidashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeOgretmen\" && this.formData.GirisTuru === \"Mobil\") {\r\n this.props.history.push(\"/mobile/index\");\r\n }\r\n else if (Globals.service.Rol === \"AdminOtomasyon\") {\r\n this.props.history.push(\"/otomasyondashboard\");\r\n }\r\n else {\r\n this.props.history.push(\"/home\");\r\n }\r\n\r\n });\r\n })\r\n .catch((error) => {\r\n // Error 😨\r\n if (error.response) {\r\n notify(error.response.data, 'error', 5000);\r\n } else if (error.request) {\r\n notify(error.request, 'error', 5000);\r\n } else {\r\n notify(\"Teknik bir hat oluştu\", 'error', 5000);\r\n }\r\n\r\n });\r\n e.preventDefault();\r\n };\r\n\r\n getFirmaLink() {\r\n if (window.ayarlar.firmaLinkiGoster) {\r\n return Arkyazılım ;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n getOgrenciKayitLink() {\r\n if (window.ayarlar.ogrenciKayitLinkiGoster) {\r\n return Öğrenci Kayıt ekranı için tıklayınız;\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n getAppLink() {\r\n if (window.ayarlar.projeturu === \"otomasyon\") {\r\n return (\r\n \r\n
\r\n
\r\n \r\n \"App\r\n \r\n
\r\n
\r\n \r\n \"Google\r\n \r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n getTgDegerlendirmeErkani() {\r\n if (window.ayarlar.tgLink) {\r\n return (\r\n \r\n {\r\n
\r\n }\r\n
\r\n );\r\n } else {\r\n return \r\n\r\n \r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n { this.selectBoxDonem = ref },\r\n\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n {this.getTgDegerlendirmeErkani()}\r\n

\r\n {this.getOgrenciKayitLink()}\r\n

\r\n {this.getFirmaLink()}\r\n

\r\n \"Logomuz\"\r\n

\r\n {this.getAppLink()}\r\n\r\n \r\n
\r\n );\r\n }\r\n}\r\nexport default LoginPage;","import React from 'react';\r\nimport service from 'axios';\r\nimport { Link } from 'react-router-dom';\r\nimport DataGrid, {\r\n Selection, Column, Paging, Pager\r\n} from 'devextreme-react/data-grid';\r\nimport Form, {\r\n ButtonItem,\r\n GroupItem,\r\n SimpleItem,\r\n Label,\r\n RequiredRule\r\n} from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { authApi } from '../Util';\r\nclass RegisterPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.SinifSubeler = [\r\n { Sube: \"Yok\" },\r\n { Sube: \"Mezun\" },\r\n { Sube: \"A\" },\r\n { Sube: \"B\" },\r\n { Sube: \"C\" },\r\n { Sube: \"Ç\" },\r\n { Sube: \"D\" },\r\n { Sube: \"E\" },\r\n { Sube: \"F\" },\r\n { Sube: \"G\" },\r\n { Sube: \"H\" },\r\n { Sube: \"I\" },\r\n { Sube: \"İ\" },\r\n { Sube: \"J\" },\r\n { Sube: \"K\" },\r\n { Sube: \"L\" },\r\n { Sube: \"M\" },\r\n { Sube: \"N\" },\r\n { Sube: \"O\" },\r\n { Sube: \"Ö\" },\r\n { Sube: \"P\" },\r\n { Sube: \"R\" },\r\n { Sube: \"S\" },\r\n { Sube: \"Ş\" },\r\n { Sube: \"T\" },\r\n { Sube: \"U\" },\r\n { Sube: \"Ü\" },\r\n { Sube: \"V\" },\r\n { Sube: \"Y\" },\r\n { Sube: \"Z\" }]\r\n\r\n this.state = {\r\n kurumlar: [],\r\n yayinlar: [],\r\n sinavTurleri: [],\r\n secilenYayin: null,\r\n secilenKurum: null,\r\n secilenSinavTuru: null,\r\n secilenSube: null,\r\n yayinMesaj: \"Yayınlar yükleniyor...\",\r\n kurumMesaj: \"Kurumlar yükleniyor...\",\r\n sinifMesaj: \"Sınıflar yükleniyor...\"\r\n }\r\n this.secilenYayinlar = [];\r\n this.dataGridYayin = null;\r\n this.KullaniciYayinYetki = [];\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.yayinSecimiChanged = this.yayinSecimiChanged.bind(this);\r\n this.formData = {\r\n KullaniciAdi: \"\",\r\n Sifre: \"\",\r\n Adi: \"\",\r\n Soyadi: \"\",\r\n OgrenciNo: 0,\r\n Tel: \"\",\r\n Gsm: \"\",\r\n SmsBilgi: false,\r\n MailBilgi: false,\r\n SinifId: 0,\r\n KurumId: 0,\r\n Sube: \"\",\r\n VeliAd: \"\",\r\n VeliSoyad: \"\",\r\n VeliGsm: \"\",\r\n VeliEmail: \"\",\r\n SecilenYayinlar: []\r\n };\r\n\r\n this.buttonOptions = {\r\n text: 'Kayıt Ol',\r\n type: 'success',\r\n useSubmitBehavior: true\r\n };\r\n\r\n this.passwordOptions = {\r\n mode: 'password'\r\n };\r\n }\r\n\r\n async componentDidMount() {\r\n\r\n\r\n await this.getYayinlar().then(() => { }).catch(error => {\r\n notify(error, \"error\", 2000);\r\n });\r\n\r\n await this.getSiniflar().then(() => { }).catch(error => {\r\n notify(error, \"error\", 2000);\r\n });\r\n\r\n await this.getKurumlar().then(() => { }).catch(error => {\r\n notify(error, \"error\", 2000);\r\n });\r\n\r\n }\r\n\r\n\r\n yayinSecimiChanged() {\r\n this.secilenYayinlar = this.dataGridYayin.instance.getSelectedRowsData();\r\n }\r\n\r\n getYayinlar() {\r\n return new Promise((resolve, reject) => {\r\n this.setState({\r\n yayinMesaj: \"Yayınlar yükleniyor...\"\r\n });\r\n service.get(authApi + \"auth/getYayinlar\")\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n yayinlar: res.data.Data,\r\n yayinMesaj: \"\"\r\n });\r\n this.setState({ yayinMesaj: \"\" });\r\n resolve(\"Yayın bilgileri getirildi.\");\r\n\r\n }\r\n else\r\n reject(res.data.ErrorMessage);\r\n }).catch(() => {\r\n this.setState({ yayinMesaj: \"\" });\r\n reject(\"Teknik bir hata oluştu,yayın bilgileri getirilemedi\");\r\n });\r\n })\r\n }\r\n\r\n getSiniflar() {\r\n return new Promise((resolve, reject) => {\r\n this.setState({\r\n sinifMesaj: \"Sınıflar yükleniyor...\"\r\n });\r\n service.get(authApi + \"auth/GetSinavTurleri\", null)\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n sinavTurleri: res.data.Data,\r\n sinifMesaj: \"Seçiniz\"\r\n });\r\n resolve(\"Sınıf bilgileri getirildi\");\r\n }\r\n else {\r\n this.setState({ sinifMesaj: res.data.ErrorMessage });\r\n reject(res.data.ErrorMessage);\r\n }\r\n })\r\n .catch(() => {\r\n this.setState({ sinifMesaj: \"Sınıf bilgileri getirilemedi\" });\r\n reject(\"Teknik bir hata oluştu,sınıf bilgileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n getKurumlar() {\r\n return new Promise((resolve, reject) => {\r\n this.setState({ kurumMesaj: \"Kurumlar yükleniyor...\" });\r\n service.get(authApi + \"auth/GetKurumlar\",\r\n null)\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n kurumlar: res.data.Data,\r\n kurumMesaj: \"Seçiniz\"\r\n });\r\n resolve(\"Kurum bilgileri getirildi\");\r\n }\r\n else {\r\n this.setState({ kurumMesaj: res.data.ErrorMessage });\r\n reject(res.data.ErrorMessage);\r\n }\r\n })\r\n .catch(() => {\r\n this.setState({ kurumMesaj: \"Kurum bilgisi getirilemedi\" });\r\n reject(\"Teknik bir hata oluştu,kurum bilgileri getirilemedi\")\r\n });\r\n });\r\n }\r\n\r\n handleSubmit(e) {\r\n this.formData.SecilenYayinlar = this.secilenYayinlar;\r\n service.post(authApi + \"Auth/register\"\r\n , this.formData)\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Kullanıcınız oluşturuldu, şimdi giriş sayfasına yönlendiriliyorsunuz\", \"success\", 5000);\r\n window.setTimeout(() => {\r\n this.props.history.push(\"/login\");\r\n }, 5000);\r\n }\r\n else\r\n notify(\"Bir hata oluştu:\" + res.data.ErrorMessage, \"success\", 5000);\r\n\r\n })\r\n .catch((error) => {\r\n // Error 😨\r\n if (error.response) {\r\n notify(error.response.data.message, 'error', 5000);\r\n } else if (error.request) {\r\n notify(error.request, 'error', 5000);\r\n } else {\r\n notify(\"Teknik bir hata oluştu.\", 'error', 5000);\r\n }\r\n\r\n });\r\n e.preventDefault();\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n if (e.value === \"\" | e.value === null)\r\n return;\r\n else {\r\n this.setState({\r\n secilenSinavTuru: e.value\r\n });\r\n }\r\n }\r\n }}>\r\n\r\n \r\n \r\n {\r\n if (e.value === \"\" | e.value === null)\r\n return;\r\n else {\r\n this.setState({\r\n secilenSube: e.value\r\n });\r\n }\r\n }\r\n }}>\r\n \r\n \r\n \r\n \r\n\r\n {\r\n const deger = e.component.instance()._getOptionValue().text;\r\n if (deger.toString().length <= 4)\r\n return;\r\n else {\r\n\r\n service.get(authApi + \"auth/GetKurumlar?term=\" + deger,\r\n null)\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n kurumlar: res.data.Data\r\n });\r\n e.component.instance().open();\r\n }\r\n else {\r\n\r\n notify(res.data.ErrorMessage, \"error\", 2000);\r\n }\r\n });\r\n }\r\n },\r\n onValueChanged: (e) => {\r\n this.setState({\r\n secilenKurum: e.value\r\n });\r\n }\r\n }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.yayinMesaj}\r\n this.dataGridYayin = ref}\r\n >\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n

\r\n Giriş sayfasına git \r\n

\r\n
Orion Sınav Değerlendirme Sistemi - Arkyazılım
\r\n \r\n\r\n
\r\n
\r\n
\r\n\r\n );\r\n }\r\n}\r\nexport default RegisterPage;","import React from 'react';\r\nimport Form, {\r\n GroupItem,\r\n SimpleItem,\r\n Label,\r\n RequiredRule\r\n} from 'devextreme-react/form';\r\nimport service from 'axios';\r\nimport Globals from '../Globals';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { authApi, otomasyonApi, sinavApi } from '../Util';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataGrid, { Column, Paging, Pager } from 'devextreme-react/data-grid';\r\nimport { connect } from 'react-redux';\r\nimport { setKepsSystemShortCodes } from \"../redux/actions/kepsSystemAction\";\r\nimport { Button } from 'devextreme-react';\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n setShortCodes: (data) => dispatch(setKepsSystemShortCodes(data))\r\n }\r\n}\r\n\r\n\r\nlet kisayollar = [];\r\n\r\nclass AyarlarPage extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.formSifre = null;\r\n this.formApi = null;\r\n this.formSmsApi = null;\r\n this.satir = null;\r\n this.dataGridKisayol = null;\r\n this.formShortCut = null;\r\n this.onInitializedFormSifre = this.onInitializedFormSifre.bind(this);\r\n this.onInitializedFormApiSifre = this.onInitializedFormApiSifre.bind(this);\r\n this.onInitializedGridKisayol = this.onInitializedGridKisayol.bind(this);\r\n this.onInitializedFormShortCut = this.onInitializedFormShortCut.bind(this);\r\n this.onInitializedFormSmsApi = this.onInitializedFormSmsApi.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleApiSubmit = this.handleApiSubmit.bind(this);\r\n this.handleSmsApiSubmit = this.handleSmsApiSubmit.bind(this);\r\n this.handleShortCutSubmit = this.handleShortCutSubmit.bind(this);\r\n this.formProfilSifre = {\r\n Sifre1: \"\",\r\n Sifre2: \"\",\r\n Mail: \"\",\r\n Tel: \"\",\r\n Gsm: \"\"\r\n };\r\n this.formProfilApiSifre = {\r\n ApiKullaniciAdi: \"\",\r\n ApiSifre: \"\"\r\n };\r\n\r\n this.formShortCutData = {\r\n Icon: \"\",\r\n EkranId: null,\r\n\r\n };\r\n this.shortCodeDatasource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"KurumId\",\r\n loadUrl: sinavApi + 'kullanici/getyetkiliekranlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.formSmsApiData = {\r\n SmsMusteriNo: \"\",\r\n SmsKullaniciAdi: \"\",\r\n SmsSifre: \"\",\r\n SmsOrjinator: \"\",\r\n SmsUrl: \"\",\r\n SmsSaglayici: -1\r\n };\r\n\r\n this.dataSourceFavoriler = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kullanici/listfavoriler',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.getSmsSettings();\r\n }\r\n\r\n onInitializedFormSifre(e) {\r\n this.formSifre = e.component;\r\n }\r\n\r\n onInitializedFormApiSifre(e) {\r\n this.formApi = e.component;\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'trash',\r\n text: \"Kısayolu Sil\",\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"Kısayolunuz silmek istiyorsunuz, emin misiniz?\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(sinavApi + \"kullanici/favorisil/\" + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n await this.dataGridKisayol.instance.refresh();\r\n await this.dataSourceFavoriler.load().then(async () => {\r\n kisayollar = [];\r\n this.dataSourceFavoriler.items().forEach((satir) => {\r\n kisayollar.push({\r\n widget: 'dxButton', location: 'before',\r\n options: {\r\n icon: satir.Icon,\r\n hint: satir.Hint,\r\n onClick: () => {\r\n window.location.href = \"/\" + satir.Url;\r\n }\r\n }\r\n });\r\n });\r\n this.props.setShortCodes(kisayollar);\r\n })\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n }\r\n });\r\n }\r\n\r\n }\r\n }\r\n })\r\n }\r\n\r\n onInitializedFormShortCut(e) {\r\n this.formShortCut = e.component;\r\n }\r\n\r\n onInitializedGridKisayol(e) {\r\n this.dataGridKisayol = e.component;\r\n }\r\n\r\n onInitializedFormSmsApi(e) {\r\n this.formSmsApi = e.component;\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n handleSubmit(e) {\r\n const validateStatus = this.formSifre.instance.validate();\r\n if (!validateStatus.isValid) {\r\n e.preventDefault();\r\n return;\r\n }\r\n else {\r\n service.post(authApi + \"auth/sifremidegistir\", this.formProfilSifre,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(res.data.Data, \"success\", 5000);\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı,\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı,\" + err, \"error\", 5000);\r\n })\r\n e.preventDefault();\r\n }\r\n\r\n }\r\n\r\n handleApiSubmit(e) {\r\n const validateStatus = this.formApi.instance.validate();\r\n if (!validateStatus.isValid) {\r\n e.preventDefault();\r\n return;\r\n }\r\n else {\r\n service.post(authApi + \"auth/apibilgisikaydet\", this.formProfilApiSifre,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(res.data.Data, \"success\", 5000);\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı,\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı,\" + err, \"error\", 5000);\r\n })\r\n e.preventDefault();\r\n }\r\n\r\n }\r\n\r\n handleShortCutSubmit(e) {\r\n const validateStatus = this.formShortCut.instance.validate();\r\n if (!validateStatus.isValid) {\r\n e.preventDefault();\r\n return;\r\n }\r\n else {\r\n service.post(sinavApi + \"kullanici/kisayolekle\", this.formShortCutData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n notify(\"Ekran kısayolu eklendi\", \"success\", 5000);\r\n await this.dataGridKisayol.instance.refresh();\r\n await this.dataSourceFavoriler.load().then(async () => {\r\n kisayollar = [];\r\n this.dataSourceFavoriler.items().forEach((satir) => {\r\n kisayollar.push({\r\n widget: 'dxButton', location: 'before',\r\n options: {\r\n icon: satir.Icon,\r\n hint: satir.Hint,\r\n onClick: () => {\r\n window.location.href = \"/\" + satir.Url;\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.props.setShortCodes(kisayollar);\r\n\r\n })\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı,\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı,\" + err, \"error\", 5000);\r\n })\r\n e.preventDefault();\r\n }\r\n\r\n }\r\n\r\n handleSmsApiSubmit(e) {\r\n const validateStatus = this.formSmsApi.instance.validate();\r\n if (!validateStatus.isValid) {\r\n e.preventDefault();\r\n return;\r\n }\r\n else {\r\n service.post(sinavApi + \"kurum/kurumsmsbilgisikaydet\", this.formSmsApiData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(res.data.Data, \"success\", 5000);\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı,\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı,\" + err, \"error\", 5000);\r\n });\r\n e.preventDefault();\r\n }\r\n }\r\n\r\n\r\n\r\n getSmsSettings() {\r\n service.get(sinavApi + \"kurum/getsmsayarlari\", {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n const data = res.data.Data;\r\n this.formSmsApiData = {\r\n SmsMusteriNo: data.SmsMusteriNo,\r\n SmsKullaniciAdi: data.SmsKullaniciAdi,\r\n SmsSifre: data.SmsSifre,\r\n SmsOrjinator: data.SmsOrjinator,\r\n SmsUrl: data.SmsUrl,\r\n SmsSaglayici: data.SmsSaglayici\r\n };\r\n this.setState({});\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(\"Teknik bir sunucu hatası oluştu,\" + err, \"error\", 5000);\r\n })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n this.formSifre = ref}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n this.formApi = ref}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n this.formSmsApi = ref}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n this.formShortCut = ref}\r\n >\r\n \r\n {\r\n return \"
\" + itemData.Name + \"
\";\r\n },\r\n }}>\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n this.dataGridKisayol = ref}\r\n onInitialized={this.onInitializedGridKisayol}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n width=\"100%\"\r\n >\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n {\r\n service.post(otomasyonApi + \"kayitkabul/otomasyonogrencikullanicilariduzenle\", null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n alert(\"Düzenleme işlemi gerçekleştirildi.\", \"success\", 5000);\r\n } else {\r\n\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"status:\" + resError.status + \"
\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"\" + satir + \":\" + resError.errors[satir.toString()][0] + \"
\";\r\n });\r\n mesaj += \"title:\" + resError.title + \"
\";\r\n mesaj += \"traceId:\" + resError.traceId + \"
\";\r\n mesaj += \"type:\" + resError.type + \"
\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n }}>\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default connect(null, mapDispatchToProps)(AyarlarPage);","import React from 'react';\r\n\r\nexport default function DuyuruTitle(data) {\r\n return (\r\n

{data.Baslik}/{data.YayinAdi}

\r\n );\r\n}\r\n","import React from 'react';\r\nimport Moment from 'react-moment';\r\nexport default function DuyuruItem(data) {\r\n return (\r\n \r\n

\r\n {data.Tarih}\r\n

\r\n

\r\n

\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\n\r\nexport default function DokumanTitle(data) {\r\n return (\r\n

{data.Adi}/{data.SinavTuruAdi}/{data.YayinAdi}/{data.Tur}

\r\n );\r\n}\r\n","import React from 'react';\r\nimport Moment from 'react-moment';\r\nexport default function DokumanItem(data) {\r\n return (\r\n \r\n

\r\n {data.Created} {data.SinavKodu === 0 ? \"\" : \"Sınav Kodu:\" + data.SinavKodu}\r\n

\r\n {\r\n data.Dosyalar.map((item, index) =>\r\n

\r\n {item.Dosya}\r\n

\r\n )\r\n }\r\n
\r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport Accordion from 'devextreme-react/accordion';\r\nimport DuyuruTitle from '../components/shared/DuyuruTitle';\r\nimport DuyuruItem from '../components/shared/DuyuruItem';\r\nimport DokumanTitle from '../components/shared/DokumanTitle';\r\nimport DokumanItem from '../components/shared/DokumanItem';\r\nimport Globals from '../Globals';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { sinavApi, sinavRealApi } from '../Util';\r\nimport service from 'axios';\r\nimport Tabs from 'devextreme-react/tabs';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport FileManager, { Permissions } from 'devextreme-react/file-manager';\r\nimport RemoteFileSystemProvider from 'devextreme/file_management/remote_provider';\r\nimport { custom } from 'devextreme/ui/dialog';\r\nconst allowedFileExtensions = [\".fmt\", \".xls\", \".xlsx\", \".pdf\", \".doc\", \".docx\", \".rar\", \".zip\", \".bldm\"];\r\n\r\nexport default class HomePage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.tumCevapAnahtarlari = [];\r\n this.state = {\r\n duyurular: [],\r\n dokumanlar: [],\r\n cevapAnahtarlari: [],\r\n tabs: ['Duyurular', 'Fmt Dosyaları', 'Cevap Anahtarları'],\r\n tabSelectedIndex: 0,\r\n }\r\n this.secilenDosya = \"\";\r\n this.selectBoxYayin = null;\r\n this.selectBoxSinavTuru = null;\r\n this.renderDetay = this.renderDetay.bind(this);\r\n this.renderTabDetay = this.renderTabDetay.bind(this);\r\n this.tabsSelectionChanged = this.tabsSelectionChanged.bind(this);\r\n this.onInitializedSelectBoxYayin = this.onInitializedSelectBoxYayin.bind(this);\r\n this.onInitializedSelectBoxSinavTuru = this.onInitializedSelectBoxSinavTuru.bind(this);\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadUrl: sinavApi + 'yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinfilter = { YayinId: 0 };\r\n this.sinavTuruDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n loadParams: this.yayinfilter,\r\n loadUrl: sinavApi + 'ortak/GetSinavTurleriByYayinId',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.remoteProvider = new RemoteFileSystemProvider({\r\n beforeAjaxSend: function ({ headers, formData, xhrFields }) {\r\n headers.Authorization = 'Bearer ' + Globals.service.Token;\r\n },\r\n beforeSubmit: function ({ formData }) {\r\n\r\n // var x = document.getElementsByName(\"__RequestVerificationToken\");\r\n formData.value = {\r\n headers: {\r\n Authorization: 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n },\r\n requestHeaders: {\r\n Authorization: 'Bearer ' + Globals.service.Token\r\n },\r\n endpointUrl: sinavApi + \"dokuman/filesystemcheck\"\r\n });\r\n }\r\n\r\n\r\n onInitializedSelectBoxSinavTuru(e) {\r\n this.selectBoxSinavTuru = e.component;\r\n }\r\n\r\n onInitializedSelectBoxYayin(e) {\r\n this.selectBoxYayin = e.component;\r\n }\r\n\r\n async componentDidMount() {\r\n service.get(sinavApi + \"duyuru/duyurularByAktif\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n duyurular: res.data.Data\r\n });\r\n }\r\n else\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n service.get(sinavApi + \"dokuman/getDashboardDokumanlar\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n var data = [];\r\n res.data.Data.forEach((item, index) => {\r\n if (data.length === 0) {\r\n item.Dosyalar = [{ Dosya: res.data.Data[index].Dosya }];\r\n data.push(item);\r\n }\r\n else if (data.filter(x => x.Adi === res.data.Data[index].Adi).length > 0) {\r\n var dosya = data.find(k => k.Adi === res.data.Data[index].Adi);\r\n\r\n for (let y = 0; y < dosya.Dosyalar.length; y++) {\r\n if (dosya.Dosyalar[y].Dosya !== res.data.Data[index].Dosya) {\r\n dosya.Dosyalar.push({ Dosya: res.data.Data[index].Dosya });\r\n }\r\n }\r\n\r\n data.find(k => k.Adi === res.data.Data[index].Adi).Dosyalar = dosya.Dosyalar;\r\n }\r\n else {\r\n item.Dosyalar = [{ Dosya: res.data.Data[index].Dosya }];\r\n data.push(item);\r\n }\r\n });\r\n this.setState({\r\n dokumanlar: data.filter(x => x.DokumanTuru === 1),\r\n cevapAnahtarlari: data.filter(x => x.DokumanTuru === 2)\r\n });\r\n this.tumCevapAnahtarlari = data.filter(x => x.DokumanTuru === 2);\r\n }\r\n else\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n }\r\n\r\n tabsSelectionChanged(args) {\r\n if (args.name === 'selectedIndex') {\r\n this.setState({\r\n tabSelectedIndex: parseInt(args.value)\r\n });\r\n }\r\n }\r\n\r\n renderTabDetay(tabIndex) {\r\n //Dökümanlar --0\r\n if (tabIndex === 0) {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n else if (tabIndex === 1) {\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n else if (tabIndex === 2) {\r\n return (\r\n \r\n {\r\n if (!!this.secilenDosya) {\r\n let myDialog = custom({\r\n title: \"Bilgi\",\r\n messageHtml: \"Dosyanızı indirmek için tıklayınız \",\r\n buttons: [{\r\n text: \"Bu Pencereyi Kapat\",\r\n onClick: (e) => {\r\n return \"Ok\";\r\n }\r\n }]\r\n });\r\n myDialog.show().then((dialogResult) => {\r\n });\r\n }\r\n }\r\n },\r\n\r\n ]\r\n }}\r\n upload={{\r\n maxFileSize: 1000000,\r\n chunkSize: 500000\r\n }}\r\n onSelectedFileOpened={() => {\r\n if (!!this.secilenDosya) {\r\n let myDialog = custom({\r\n title: \"Bilgi\",\r\n messageHtml: \"Dosyanızı indirmek için tıklayınız \",\r\n buttons: [{\r\n text: \"Bu Pencereyi Kapat\",\r\n onClick: (e) => {\r\n return \"Ok\";\r\n }\r\n }]\r\n });\r\n myDialog.show().then((dialogResult) => {\r\n });\r\n }\r\n }}\r\n onSelectionChanged={(e) => {\r\n if (e.selectedItems.length > 0) {\r\n if (e.selectedItems[0].size > 0) {\r\n\r\n this.secilenDosya = e.selectedItems[0].path;\r\n }\r\n\r\n }\r\n else {\r\n this.secilenDosya = \"\";\r\n\r\n }\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n renderDetay() {\r\n return (\r\n
\r\n \r\n {this.renderTabDetay(this.state.tabSelectedIndex)}\r\n
\r\n );\r\n }\r\n render() {\r\n\r\n if (Globals.Rol === \"Ogrenci\") {\r\n return (\r\n
\r\n
\r\n
\r\n

 Sayfanıza hoş geldiniz.

\r\n
\r\n
\r\n
\r\n\r\n
);\r\n }\r\n else {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n {this.renderDetay()}\r\n
\r\n
\r\n
\r\n\r\n
\r\n )\r\n }\r\n }\r\n}","import React from 'react';\r\nimport { Chart, Series, Title, Label, Format, CommonSeriesSettings } from 'devextreme-react/chart';\r\nimport PieChart, { Legend, HoverStyle, Tooltip } from 'devextreme-react/pie-chart';\r\nimport service from 'axios';\r\nimport { otomasyonApi } from '../Util';\r\nimport Globals from '../Globals';\r\nimport notify from 'devextreme/ui/notify';\r\nimport List from 'devextreme-react/list';\r\nimport { Popover } from 'devextreme-react/popover';\r\nimport '../DashboardList.css';\r\nconst currencyFormatter = new Intl.NumberFormat('tr-TR', {\r\n style: 'currency',\r\n currency: 'TRY',\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: 0\r\n});\r\nexport default class KayitKabulDashBoard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n HaftalikKayitSayilari: [],\r\n HaftalikTahsilatlar: [],\r\n SinifSeviyesiKayitSayilari: [],\r\n SinifSeviyesiKayitSayilariBugun: [],\r\n BugunTaksitTahsilEdilmesiGerekenBilgiler: [],\r\n DashboardData: []\r\n }\r\n this.toolTipKayitSayisiniGoster = null;\r\n this.toolTipBugunTahsilEdilmesiGerekenKayitSayisi = null;\r\n service.get(otomasyonApi + \"dashboard/listhaftalikkayitsayilari\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n HaftalikKayitSayilari: res.data.Data\r\n });\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n\r\n service.get(otomasyonApi + \"dashboard/listhaftaliktahsilatlar\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n HaftalikTahsilatlar: res.data.Data\r\n });\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n\r\n service.get(otomasyonApi + \"dashboard/listsinifseviyesikayitsayilari\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n SinifSeviyesiKayitSayilari: res.data.Data\r\n });\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n\r\n service.get(otomasyonApi + \"dashboard/listsinifseviyesikayitsayilaribugun\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n SinifSeviyesiKayitSayilariBugun: res.data.Data\r\n });\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n\r\n service.get(otomasyonApi + \"dashboard/listgetbuguntahsilatedilmesigerekenbilgiler\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n BugunTaksitTahsilEdilmesiGerekenBilgiler: res.data.Data\r\n });\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n\r\n service.get(otomasyonApi + \"dashboard/listdashboarddata\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n let result = res.data.Data;\r\n var dashboardData = [];\r\n dashboardData.push({\r\n Name: \"Bugün Yapılan Tahsilat\",\r\n Img: \"./icons/try1.png\",\r\n Value: currencyFormatter.format(result.BugunkuTahsilat)\r\n });\r\n dashboardData.push({\r\n Name: \"Toplam Tahsilat\",\r\n Img: \"./icons/try.png\",\r\n Value: currencyFormatter.format(result.ToplamTahsilat)\r\n });\r\n dashboardData.push({\r\n Name: \"Bugün Yapılan Kayıt Sayısı\",\r\n Img: \"./icons/kayit1.png\",\r\n Value: result.BugunYapilanKayitSayisi\r\n });\r\n dashboardData.push({\r\n Name: \"Toplam Yapılan Kayıt Sayısı\",\r\n Img: \"./icons/kayittop.png\",\r\n Value: result.ToplamYapilanKayitSayisi\r\n });\r\n dashboardData.push({\r\n Name: \"Bugün Tahsil Edilmesi Gereken Taksit Sayısı\",\r\n Img: \"./icons/taksit1.png\",\r\n Value: result.BugunTahsilEdilmesiGerekenTaksitSayisi\r\n });\r\n dashboardData.push({\r\n Name: \"Toplam Tahsil Edilmesi Gereken Taksit Sayısı\",\r\n Img: \"./icons/taksittop.png\",\r\n Value: result.ToplamTahsilEdilmesiGerekenTaksitSayisi\r\n });\r\n this.setState({\r\n DashboardData: dashboardData\r\n });\r\n }\r\n else {\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n customizeTooltip(arg) {\r\n return {\r\n text: `${arg.argumentText + \",kayıt sayısı \" + arg.value + \"(\" + arg.percentText + \")\"}`\r\n };\r\n }\r\n getBugunkuKayitSayilari() {\r\n if (this.state.SinifSeviyesiKayitSayilariBugun.length === 0) {\r\n return (\r\n \r\n Bugün için herhangi bir kayıt ghirilmemiş\r\n \r\n\r\n );\r\n } else {\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.state.SinifSeviyesiKayitSayilariBugun.map((kayitData) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
Kurum AdıSınıfSayı
\r\n {kayitData.KurumAdi}\r\n \r\n {kayitData.Adi}\r\n \r\n {kayitData.Sayi}\r\n
\r\n\r\n


\r\n
\r\n )\r\n }\r\n }\r\n getBugunTahsilEdilmesiGerekenSayilar() {\r\n if (this.state.BugunTaksitTahsilEdilmesiGerekenBilgiler.length === 0) {\r\n return (\r\n \r\n Bugün için herhangi bir kayıt ghirilmemiş\r\n \r\n\r\n );\r\n } else {\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.state.BugunTaksitTahsilEdilmesiGerekenBilgiler.map((kayitData) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
Taksit NoKurum AdıÖğrenci NoAd SoyadTutar
\r\n {kayitData.TaksitNo}\r\n \r\n {kayitData.KurumAdi}\r\n \r\n {kayitData.OgrenciNo}\r\n \r\n {kayitData.AdSoyad}\r\n \r\n {kayitData.Tutar}\r\n
\r\n\r\n


\r\n
\r\n );\r\n\r\n }\r\n }\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n {\r\n if (data.Img === './icons/kayit1.png') {\r\n return (\r\n this.toolTipKayitSayisiniGoster = ref}\r\n >\r\n {\r\n\r\n this.getBugunkuKayitSayilari()\r\n }\r\n \r\n
\r\n {data.Name}\r\n
{\r\n this.toolTipKayitSayisiniGoster.instance.option(\"visible\", true);\r\n }} onMouseLeave={() => {\r\n this.toolTipKayitSayisiniGoster.instance.option(\"visible\", false);\r\n }}>
\r\n
{data.Value}
\r\n
\r\n
)\r\n }\r\n else if (data.Img === './icons/taksit1.png') {\r\n return (\r\n this.toolTipBugunTahsilEdilmesiGerekenKayitSayisi = ref}\r\n >\r\n {\r\n this.getBugunTahsilEdilmesiGerekenSayilar()\r\n }\r\n \r\n
\r\n {data.Name}\r\n
{\r\n this.toolTipBugunTahsilEdilmesiGerekenKayitSayisi.instance.option(\"visible\", true);\r\n }} onMouseLeave={() => {\r\n this.toolTipBugunTahsilEdilmesiGerekenKayitSayisi.instance.option(\"visible\", false);\r\n }}>
\r\n
{data.Value}
\r\n
\r\n
)\r\n }\r\n else {\r\n return (\r\n
\r\n {data.Name}\r\n
\r\n
{data.Value}
\r\n
\r\n
)\r\n }\r\n }} />\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n </Chart>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-md-6\" style={{ border: \"1px solid silver\", padding: \"10px 10px 10px 10px\" }}>\r\n <Chart palette=\"Soft Pastel\" id=\"chart\" dataSource={this.state.HaftalikTahsilatlar} loadingIndicator={true}>\r\n <CommonSeriesSettings\r\n argumentField=\"state\"\r\n type=\"bar\"\r\n hoverMode=\"allArgumentPoints\"\r\n selectionMode=\"allArgumentPoints\"\r\n barPadding={0.1}\r\n barWidth={10}\r\n >\r\n <Label visible={true}>\r\n <Format type=\"fixedPoint\" precision={0} />\r\n </Label>\r\n </CommonSeriesSettings>\r\n <Series\r\n valueField=\"Tutar\"\r\n argumentField=\"Gun\"\r\n type=\"bar\"\r\n name=\"\"\r\n showInLegend={false}\r\n width={10}\r\n color=\"lightgreen\" />\r\n <Title text=\"Tahsilat Miktarı\" subtitle=\"(Haftalık)\" />\r\n </Chart>\r\n </div>\r\n\r\n <div className=\"col-md-6\" style={{ border: \"1px solid silver\", padding: \"10px 10px 10px 10px\" }}>\r\n <PieChart\r\n id=\"pie\"\r\n type=\"doughnut\"\r\n title=\"Sınıf Seviyelerine Göre Kayıt Sayıları\"\r\n palette=\"Soft Pastel\"\r\n dataSource={this.state.SinifSeviyesiKayitSayilari}\r\n >\r\n <Series argumentField=\"Adi\" valueField=\"Sayi\">\r\n <HoverStyle color=\"#ffd700\" />\r\n </Series>\r\n <Legend\r\n margin={10}\r\n horizontalAlignment=\"right\"\r\n verticalAlignment=\"top\"\r\n />\r\n <Tooltip enabled={true} customizeTooltip={this.customizeTooltip}>\r\n <Format type=\"number\" />\r\n </Tooltip>\r\n </PieChart>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { otomasyonApi } from '../../Util';\r\nimport Globals from '../../Globals';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport DataGrid, { ColumnFixing, Column, Paging, Pager, LoadPanel } from 'devextreme-react/data-grid';\r\nclass VeliDashboardTaksitTahsilatDetailView extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.onInitialized = this.onInitialized.bind(this);\r\n this.yetkiGrid = null;\r\n this.yetkilerDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: { odemePlaniId: props.data.key },\r\n loadUrl: otomasyonApi + 'kayitkabul/listtaksitbyodemeplani',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n onInitialized(e) {\r\n this.yetkiGrid = e.component;\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.yetkilerDataSource}\r\n onInitialized={this.onInitialized}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n ref={(ref) => this.yetkiGrid = ref}\r\n >\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'TaksitNo'} caption=\"Taksit No\" dataType={\"number\"} />\r\n <Column dataField={'Tarih'} caption=\"Tarih\" dataType={\"date\"} />\r\n <Column dataField={'TahsilatTarihi'} caption=\"Tahsilat Tarihi\" dataType={\"date\"}\r\n calculateCellValue={(rowData) => {\r\n if (rowData.TahsilatTarihi === \"0001-01-01T00:00:00\") {\r\n return null;\r\n }\r\n else\r\n return new Date(rowData.TahsilatTarihi);\r\n }}\r\n />\r\n <Column dataField={'Tutar'} caption=\"Tutar\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Column dataField={'Tahsilat'} caption=\"Tahsilat\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Column dataField={'Durum'} caption=\"Durum\" dataType={\"string\"} />\r\n <Column dataField={'OdemeTuru'} caption=\"Ödeme Türü\" dataType={\"string\"} />\r\n <Column dataField={'Aciklama'} caption=\"Açıklama\" hidingPriority={0} dataType={\"string\"} />\r\n </DataGrid>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\nexport default VeliDashboardTaksitTahsilatDetailView;","import React from \"react\";\r\nimport DataGrid, {\r\n Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nexport default class OgrenciHataRapor extends React.Component {\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.props.Data}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"KonuAdi\"\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onInitialized={this.onInitialized}\r\n onSelectionChanged={this.onSelectionChanged}\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Export enabled={true} fileName={'HatalarimRaporu'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'DersAdi'} caption=\"DersAdi\" />\r\n <Column dataField={'KonuAdi'} caption=\"Konu\" visible={true} />\r\n <Column dataField={'soruSayisi'} caption=\"Soru S.\" dataType={\"number\"} />\r\n <Column dataField={'cozumSayisi'} caption=\"Çözüm S.\" dataType={\"number\"} />\r\n <Column dataField={'dogruSayisi'} caption=\"Doğru S.\" dataType={\"number\"} />\r\n <Column dataField={'yanlisSayisi'} caption=\"Yanlış S.\" dataType={\"number\"} />\r\n <Column dataField={'bosSayisi'} caption=\"Boş S.\" dataType={\"number\"} />\r\n <Column dataField={'dogruYuzde'} caption=\"Doğru Yüzde\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Column dataField={'yanlisYuzde'} caption=\"Yanlış Yüzde\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Column dataField={'cozumYuzde'} caption=\"Çözüm Yüzde\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n </DataGrid>\r\n\r\n </React.Fragment>\r\n );\r\n\r\n }\r\n}","import React from \"react\";\r\nimport OgrenciHataRapor from \"./OgrenciHataRapor\";\r\nimport service from 'axios';\r\nimport Globals from \"../Globals\";\r\nimport { karneApi } from \"../Util\";\r\nimport notify from \"devextreme/ui/notify\";\r\nexport default class VeliDersButon extends React.Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n data: []\r\n };\r\n\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n {this.props.Dersler.map((item, index) =>\r\n <span> <button\r\n style={{ left: \"10px\" }}\r\n key={index.toString()}\r\n className=\"btn btn-danger btn-sm btn-round\"\r\n onClick={(e) => {\r\n var data = {\r\n DersKodu: item.DersSimge,\r\n OgrenciId: this.props.OgrenciId\r\n };\r\n service.post(karneApi + \"ogrenci/getveliogrencihataraporu\", data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n data: res.data.Data\r\n })\r\n } else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }}\r\n > {item.DersAdi} </button> </span>\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"10px\" }}>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <OgrenciHataRapor Data={this.state.data}></OgrenciHataRapor>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n )\r\n\r\n }\r\n}","export default class DersTanim {\r\n GetDersler(sinavTuru) {\r\n switch (sinavTuru) {\r\n case \"TYT\":\r\n return [\r\n { DersSimge: \"Tur\", DersAdi: \"Türkçe\" }\r\n , { DersSimge: \"Mat\", DersAdi: \"Matematik\" }\r\n , { DersSimge: \"Tarih\", DersAdi: \"Tarih\" }\r\n , { DersSimge: \"Cogr\", DersAdi: \"Coğrafya\" }\r\n , { DersSimge: \"Fels\", DersAdi: \"Felsefe\" }\r\n , { DersSimge: \"SFels\", DersAdi: \"S.Felsefe\" }\r\n , { DersSimge: \"DinK\", DersAdi: \"Din Kültürü\" }\r\n , { DersSimge: \"Fizik\", DersAdi: \"Fizik\" }\r\n , { DersSimge: \"Kimya\", DersAdi: \"Kimya\" }\r\n , { DersSimge: \"Biyo\", DersAdi: \"Biyoloji\" }\r\n ];\r\n case \"AYT\":\r\n return [\r\n { DersSimge: \"Edb\", DersAdi: \"Edebiyat\" }\r\n , { DersSimge: \"Trh\", DersAdi: \"Tarih\" }\r\n , { DersSimge: \"Cog\", DersAdi: \"Coğrafya\" }\r\n , { DersSimge: \"Mtm\", DersAdi: \"Matematik\" }\r\n , { DersSimge: \"Tar\", DersAdi: \"Tarih 2\" }\r\n , { DersSimge: \"Cgr\", DersAdi: \"Coğrafya 2\" }\r\n , { DersSimge: \"Fel\", DersAdi: \"Felsefe Grubu\" }\r\n , { DersSimge: \"Din\", DersAdi: \"Din Kültürü\" }\r\n , { DersSimge: \"Fls\", DersAdi: \"S. Felsefe\" }\r\n , { DersSimge: \"Fiz\", DersAdi: \"Fizik\" }\r\n , { DersSimge: \"Kim\", DersAdi: \"Kimya\" }\r\n , { DersSimge: \"Biy\", DersAdi: \"Biyoloji\" }\r\n ];\r\n case \"9.SINIF\":\r\n return [\r\n { DersSimge: \"Edb\", DersAdi: \"Edebiyat\" }\r\n , { DersSimge: \"Trh\", DersAdi: \"Tarih\" }\r\n , { DersSimge: \"Cog\", DersAdi: \"Coğrafya\" }\r\n , { DersSimge: \"Mtm\", DersAdi: \"Matematik\" }\r\n , { DersSimge: \"Tar\", DersAdi: \"Tarih 2\" }\r\n , { DersSimge: \"Cgr\", DersAdi: \"Coğrafya 2\" }\r\n , { DersSimge: \"Fel\", DersAdi: \"Felsefe Grubu\" }\r\n , { DersSimge: \"Din\", DersAdi: \"Din Kültürü\" }\r\n , { DersSimge: \"Fls\", DersAdi: \"S. Felsefe\" }\r\n , { DersSimge: \"Fiz\", DersAdi: \"Fizik\" }\r\n , { DersSimge: \"Kim\", DersAdi: \"Kimya\" }\r\n , { DersSimge: \"Biy\", DersAdi: \"Biyoloji\" }\r\n ];\r\n case \"10.SINIF\":\r\n return [\r\n { DersSimge: \"Edb\", DersAdi: \"Edebiyat\" }\r\n , { DersSimge: \"Trh\", DersAdi: \"Tarih\" }\r\n , { DersSimge: \"Cog\", DersAdi: \"Coğrafya\" }\r\n , { DersSimge: \"Mtm\", DersAdi: \"Matematik\" }\r\n , { DersSimge: \"Tar\", DersAdi: \"Tarih 2\" }\r\n , { DersSimge: \"Cgr\", DersAdi: \"Coğrafya 2\" }\r\n , { DersSimge: \"Fel\", DersAdi: \"Felsefe Grubu\" }\r\n , { DersSimge: \"Din\", DersAdi: \"Din Kültürü\" }\r\n , { DersSimge: \"Fls\", DersAdi: \"S. Felsefe\" }\r\n , { DersSimge: \"Fiz\", DersAdi: \"Fizik\" }\r\n , { DersSimge: \"Kim\", DersAdi: \"Kimya\" }\r\n , { DersSimge: \"Biy\", DersAdi: \"Biyoloji\" }\r\n ];\r\n case \"11.SINIF\":\r\n return [\r\n { DersSimge: \"Edb\", DersAdi: \"Edebiyat\" }\r\n , { DersSimge: \"Trh\", DersAdi: \"Tarih\" }\r\n , { DersSimge: \"Cog\", DersAdi: \"Coğrafya\" }\r\n , { DersSimge: \"Mtm\", DersAdi: \"Matematik\" }\r\n , { DersSimge: \"Tar\", DersAdi: \"Tarih 2\" }\r\n , { DersSimge: \"Cgr\", DersAdi: \"Coğrafya 2\" }\r\n , { DersSimge: \"Fel\", DersAdi: \"Felsefe Grubu\" }\r\n , { DersSimge: \"Din\", DersAdi: \"Din Kültürü\" }\r\n , { DersSimge: \"Fls\", DersAdi: \"S. Felsefe\" }\r\n , { DersSimge: \"Fiz\", DersAdi: \"Fizik\" }\r\n , { DersSimge: \"Kim\", DersAdi: \"Kimya\" }\r\n , { DersSimge: \"Biy\", DersAdi: \"Biyoloji\" }\r\n ];\r\n case \"8.SINIF\":\r\n return [\r\n { DersSimge: \"STr\", DersAdi: \"Türkçe\" }\r\n , { DersSimge: \"SMt\", DersAdi: \"Matematik\" }\r\n , { DersSimge: \"SFt\", DersAdi: \"Fen Bilimleri\" }\r\n , { DersSimge: \"SSb\", DersAdi: \"Sosyal / İnkılap\" }\r\n , { DersSimge: \"SIn\", DersAdi: \"Ingilizce\" }\r\n , { DersSimge: \"SDk\", DersAdi: \"Din Kültürü\" }\r\n ];\r\n case \"7.SINIF\":\r\n return [\r\n { DersSimge: \"STr\", DersAdi: \"Türkçe\" }\r\n , { DersSimge: \"SMt\", DersAdi: \"Matematik\" }\r\n , { DersSimge: \"SFt\", DersAdi: \"Fen Bilimleri\" }\r\n , { DersSimge: \"SSb\", DersAdi: \"Sosyal / İnkılap\" }\r\n , { DersSimge: \"SIn\", DersAdi: \"Ingilizce\" }\r\n , { DersSimge: \"SDk\", DersAdi: \"Din Kültürü\" }\r\n ];\r\n case \"6.SINIF\":\r\n return [\r\n { DersSimge: \"STr\", DersAdi: \"Türkçe\" }\r\n , { DersSimge: \"SMt\", DersAdi: \"Matematik\" }\r\n , { DersSimge: \"SFt\", DersAdi: \"Fen Bilimleri\" }\r\n , { DersSimge: \"SSb\", DersAdi: \"Sosyal / İnkılap\" }\r\n , { DersSimge: \"SIn\", DersAdi: \"Ingilizce\" }\r\n , { DersSimge: \"SDk\", DersAdi: \"Din Kültürü\" }\r\n ];\r\n case \"5.SINIF\":\r\n return [\r\n { DersSimge: \"STr\", DersAdi: \"Türkçe\" }\r\n , { DersSimge: \"SMt\", DersAdi: \"Matematik\" }\r\n , { DersSimge: \"SFt\", DersAdi: \"Fen Bilimleri\" }\r\n , { DersSimge: \"SSb\", DersAdi: \"Sosyal / İnkılap\" }\r\n , { DersSimge: \"SIn\", DersAdi: \"Ingilizce\" }\r\n , { DersSimge: \"SDk\", DersAdi: \"Din Kültürü\" }\r\n ];\r\n case \"4.SINIF\":\r\n return [\r\n { DersSimge: \"STr\", DersAdi: \"Türkçe\" }\r\n , { DersSimge: \"SMt\", DersAdi: \"Matematik\" }\r\n , { DersSimge: \"SFt\", DersAdi: \"Fen Bilimleri\" }\r\n , { DersSimge: \"SSb\", DersAdi: \"Sosyal / İnkılap\" }\r\n , { DersSimge: \"SIn\", DersAdi: \"Ingilizce\" }\r\n ];\r\n case \"3.SINIF\":\r\n return [\r\n { DersSimge: \"STr\", DersAdi: \"Türkçe\" }\r\n , { DersSimge: \"SMt\", DersAdi: \"Matematik\" }\r\n , { DersSimge: \"SFt\", DersAdi: \"Fen Bilimleri\" }\r\n , { DersSimge: \"SHy\", DersAdi: \"Hayat Bilgisi\" }\r\n , { DersSimge: \"SIn\", DersAdi: \"Ingilizce\" }\r\n ];\r\n case \"2.SINIF\":\r\n return [\r\n { DersSimge: \"STr\", DersAdi: \"Türkçe\" }\r\n , { DersSimge: \"SMt\", DersAdi: \"Matematik\" }\r\n , { DersSimge: \"SHy\", DersAdi: \"Hayat Bilgisi\" }\r\n , { DersSimge: \"SIn\", DersAdi: \"Ingilizce\" }\r\n ];\r\n case \"YAZILI\":\r\n return [\r\n { DersSimge: \"Drs\", DersAdi: \"Yazılı\" }\r\n ];\r\n default:\r\n return [];\r\n }\r\n }\r\n}","import React from 'react';\r\nimport Form, { GroupItem, TabbedItem, TabPanelOptions, Tab, SimpleItem, Label } from 'devextreme-react/form';\r\nimport DataGrid, {\r\n Export, ColumnFixing, Column, Paging, Pager, FilterRow, LoadPanel, HeaderFilter, FilterPanel, ColumnChooser, MasterDetail\r\n} from 'devextreme-react/data-grid';\r\nimport { otomasyonApi, karneApi } from '../Util';\r\nimport Globals from '../Globals';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DetailTemplate from '../components/shared/VeliDashboardTaksitTahsilatDetailView';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport { alert } from 'devextreme/ui/dialog';\r\nimport service from 'axios';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { SelectBox } from 'devextreme-react';\r\nimport VeliDersButon from '../components/VeliDersButon';\r\nimport DersTanim from '../classes/DersTanim';\r\nexport default class VeliDashBoard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popupOdev: false,\r\n popupEtut: false,\r\n odevBaslik: \"\",\r\n odevDetay: \"\",\r\n etutBaslik: \"\",\r\n etutDetay: \"\",\r\n dersler: [],\r\n ogrenciId: 0\r\n };\r\n this.onInitializedGrdiOdemePlani = this.onInitializedGrdiOdemePlani.bind(this);\r\n this.onInitializedGridGorusmeNotu = this.onInitializedGridGorusmeNotu.bind(this);\r\n this.satirOdev = null;\r\n this.satirEtut = null;\r\n this.gridOdemePlaniDetay = null;\r\n this.griDevamsizlik = null;\r\n this.gridOdev = null;\r\n this.gridEtut = null;\r\n this.dersTanim = new DersTanim();\r\n this.grdiGorusmeNotu = null;\r\n this.sinavTuruDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: karneApi + 'ogrenci/getvelisinavturu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.karneDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: karneApi + 'ogrenci/getotomasyonveliogrencikarneler',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.ogrenciDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'kayitkabul/listveliogrenci',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.odevDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'odev/veliogrenciodevlist',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.etutDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'etut/veliogrencietutlist',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.devamsizlikuDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'devamsizlik/listveliogrencidevamsizlik',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.ogrenciFilter = {\r\n ogrenciId: 0\r\n };\r\n\r\n this.veliOdemePlaniDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.ogrenciFilter,\r\n loadUrl: otomasyonApi + 'kayitkabul/listveliodemeplanidetay',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n\r\n this.gorusmeNotuDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n filter: [\"IsVeliGorsun\", \"=\", true],\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.ogrenciFilter,\r\n loadUrl: otomasyonApi + 'kayitkabul/listgorusmenotu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.popupOdevGizle = async () => {\r\n await this.setState(\r\n {\r\n popupOdev: false\r\n }\r\n );\r\n };\r\n\r\n this.popupOdevAc = () => {\r\n this.setState(\r\n {\r\n popupOdev: true\r\n });\r\n };\r\n\r\n this.popupEtutGizle = async () => {\r\n await this.setState(\r\n {\r\n popupEtut: false\r\n }\r\n );\r\n };\r\n\r\n this.popupEtutAc = () => {\r\n this.setState(\r\n {\r\n popupEtut: true\r\n });\r\n };\r\n\r\n }\r\n onInitializedGrdiOdemePlani(e) {\r\n this.gridOdemePlaniDetay = e.component;\r\n }\r\n onInitializedGridGorusmeNotu(e) {\r\n this.grdiGorusmeNotu = e.component;\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form colCount={1} width={\"100%\"} formData={this.formEtutTanimiData} onInitialized={this.onInitializedFormEtutTanimi} ref={(ref) => this.formEtutTanimi = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <TabbedItem>\r\n <TabPanelOptions deferRendering={false} />\r\n <Tab title=\"Sınavlar\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.karneDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: \"Karne Al\", icon: 'exportpdf',\r\n text: \"Karne Al\",\r\n onClick: () => {\r\n const satir = this.satirSinav;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n\r\n service.post(karneApi + \"ogrenci/GetOtomasyonVeliOgrenciKarne\",\r\n {\r\n OgrenciNo: satir.OgrenciNo,\r\n KurumId: satir.KurumId,\r\n KurumLogo: satir.KurumLogo,\r\n SinavTuru: satir.SinavTuru,\r\n SinavTuruId: satir.SinavTuruId,\r\n MerkeziSinavId: satir.Id,\r\n MerkeziSinavLogId: satir.MerkeziSinavLogId\r\n },\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridSinav.instance.refresh();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(error => {\r\n notify(\"Teknik bir hata oluştu,lütfen daha sonra tekrar deneyiniz\", \"error\", 5000);\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n text: \"Yenile\",\r\n onClick: (e) => {\r\n this.gridSinav.instance.refresh();\r\n }\r\n }\r\n });\r\n }}\r\n onSelectionChanged={(selectedItems) => {\r\n this.satirSinav = selectedItems.selectedRowsData[0];\r\n }}\r\n ref={(ref) => this.gridSinav = ref}\r\n >\r\n <Export enabled={true} fileName={'Karneler'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField=\"YayinAdi\" caption=\"\"\r\n width={40}\r\n allowSorting={false}\r\n cellRender={linkRender}\r\n />\r\n <Column dataField={'KullaniciId'} caption=\"KullaniciId\" visible={false} />\r\n <Column dataField={'ListeKarneId'} caption=\"ListeKarneId\" visible={false} />\r\n <Column dataField={'KurumId'} caption=\"KurumId\" visible={false} />\r\n <Column dataField={'YayinAdi'} caption=\"Yayın\" />\r\n <Column dataField={'OgrenciNo'} caption=\"Ö. No\" dataType=\"number\" />\r\n <Column dataField={'Adi'} caption=\"Adı\" dataType=\"string\" />\r\n <Column dataField={'Soyadi'} caption=\"Soyadı\" dataType=\"string\" />\r\n <Column dataField={'SinavTuru'} caption=\"Sınav Türü\" />\r\n <Column dataField={'SinavKodu'} caption=\"Sınav Kodu\" />\r\n <Column dataField={'SinavAdi'} caption=\"Sınav Adı\" />\r\n <Column dataField={'IlAdi'} caption=\"İl\" />\r\n <Column dataField={'IlceAdi'} caption=\"İlçe\" />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'Created'} caption=\"Tarih\" dataType=\"date\" format={\r\n \"dd/MM/yyyy HH:mm:ss\"\r\n } />\r\n <Column dataField={'DosyaTuru'} caption=\"DosyaTuru\" visible={false} />\r\n <Column dataField={'Dosya'} caption=\"Dosya\" visible={false} />\r\n </DataGrid>\r\n\r\n </Tab>\r\n <Tab title=\"Hatalar\">\r\n <div className=\"row\">\r\n <div className=\"col-md-6\">\r\n <SelectBox\r\n dataSource={this.sinavTuruDataSource}\r\n displayExpr={\"SinavTuru\"}\r\n valueExpr={\"SinavTuru\"}\r\n onValueChanged={(e) => {\r\n const dersler = this.dersTanim.GetDersler(e.value);\r\n this.setState({\r\n dersler: dersler\r\n });\r\n }}\r\n >\r\n </SelectBox>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"10px\" }}>\r\n\r\n </div>\r\n <div className=\"col-md-6\">\r\n <SelectBox\r\n dataSource={this.ogrenciDataSource}\r\n displayExpr={(item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return \"(\" + item.Adi + \" \" + item.Soyadi + \")\";\r\n }\r\n }}\r\n valueExpr={\"Id\"}\r\n onValueChanged={(e) => {\r\n this.setState({\r\n ogrenciId: e.value\r\n });\r\n }}\r\n >\r\n </SelectBox>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"10px\" }}>\r\n\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <VeliDersButon Dersler={this.state.dersler} OgrenciId={this.state.ogrenciId}></VeliDersButon>\r\n </div>\r\n </div>\r\n </div>\r\n </Tab>\r\n <Tab title=\"Ödev\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.odevDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n showCheckBoxesMode={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onSelectionChanged={(selectedItems) => {\r\n this.satirOdev = selectedItems.selectedRowsData[0];\r\n this.setState({\r\n odevBaslik: this.satirOdev.Baslik,\r\n odevDetay: this.satirOdev.Odev\r\n })\r\n }}\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Ödev Detayı', icon: 'search',\r\n onClick: () => {\r\n if (this.satirOdev === null | this.satirOdev === undefined) {\r\n alert(\"Lütfen bir satır seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n this.popupOdevAc()\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridOdev.instance.refresh();\r\n }\r\n }\r\n }\r\n );\r\n }}\r\n onInitialized={(e) => {\r\n this.gridOdev = e.component;\r\n }}\r\n ref={(ref) => { this.gridOdev = ref }}\r\n >\r\n <Export\r\n enabled={Globals.service.Rol === \"SubeOgretmen\" ? true : false}\r\n fileName={'Öğrenciler'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <ColumnChooser mode=\"dragAndDrop\" enabled={Globals.service.Rol === \"SubeOgretmen\" ? true : false} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'OgrenciAdSoyad'} caption=\"Öğrenciniz\" />\r\n <Column dataField={'KonuAdi'} caption=\"Konu\" />\r\n <Column dataField={'SeviyeAdi'} caption=\"Sınıf\" />\r\n <Column dataField={'SubeAdi'} caption=\"Şube\" />\r\n <Column dataField={'Baslik'} caption=\"Başlık\" />\r\n <Column dataField={'OdevDurum'} caption=\"Tamamlanma Durumu\" />\r\n <Column dataField={'Created'} caption=\"Tarih\" dataType={\"date\"} />\r\n </DataGrid>\r\n </Tab>\r\n <Tab title=\"Etüt\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.etutDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n showCheckBoxesMode={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onSelectionChanged={(selectedItems) => {\r\n this.satirEtut = selectedItems.selectedRowsData[0];\r\n this.setState({\r\n etutBaslik: this.satirEtut.Baslik,\r\n etutDetay: this.satirEtut.Aciklama\r\n })\r\n }}\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Etüt Detayı', icon: 'search',\r\n onClick: () => {\r\n if (this.satirEtut === null | this.satirEtut === undefined) {\r\n alert(\"Lütfen bir satır seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n this.popupEtutAc()\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridEtut.instance.refresh();\r\n }\r\n }\r\n }\r\n );\r\n }}\r\n onInitialized={(e) => {\r\n this.gridEtut = e.component;\r\n }}\r\n ref={(ref) => { this.gridEtut = ref }}\r\n >\r\n <Export\r\n enabled={Globals.service.Rol === \"SubeOgretmen\" ? true : false}\r\n fileName={'Öğrenciler'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <ColumnChooser mode=\"dragAndDrop\" enabled={Globals.service.Rol === \"SubeOgretmen\" ? true : false} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'OgrenciAdSoyad'} caption=\"Öğrenciniz\" />\r\n <Column dataField={'KonuAdi'} caption=\"Konu\" />\r\n <Column dataField={'SeviyeAdi'} caption=\"Sınıf\" />\r\n <Column dataField={'SubeAdi'} caption=\"Şube\" />\r\n <Column dataField={'Baslik'} caption=\"Başlık\" />\r\n <Column dataField={'EtutDurum'} caption=\"Tamamlanma Durumu\" />\r\n <Column dataField={'Created'} caption=\"Tarih\" dataType={\"date\"} />\r\n </DataGrid>\r\n\r\n </Tab>\r\n <Tab title=\"Devamsızlık\">\r\n <DataGrid\r\n id=\"grdTaksit\"\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.devamsizlikuDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n key={\"Id\"}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift({\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.griDevamsizlik.instance.refresh();\r\n }\r\n }\r\n });\r\n }}\r\n onInitialized={(e) => {\r\n this.griDevamsizlik = e.component;\r\n }}\r\n ref={(ref) => { this.griDevamsizlik = ref }}\r\n >\r\n <Export\r\n enabled={true}\r\n fileName={'Devamsizliklar'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} allowExporting={false} />\r\n <Column dataField={'DersNo'} caption=\"Ders No\" dataType={\"number\"} />\r\n <Column dataField={'AdSoyad'} caption=\"Öğrenci\" dataType={\"string\"} />\r\n <Column dataField={'VeliAdSoyad'} caption=\"VeliAdSoyad\" dataType={\"string\"} visible={false} />\r\n <Column dataField={'VeliCepTelefonu'} caption=\"VeliCepTelefonu\" dataType={\"string\"} visible={false} />\r\n <Column dataField={'DersAdi'} caption=\"Ders\" />\r\n <Column dataField={'KonuBaslik'} caption=\"Konu\" />\r\n <Column dataField={'Tipi'} caption=\"Tipi\" />\r\n <Column dataField={'Tarih'} caption=\"Tarih\" dataType={\"date\"} />\r\n <Column dataField={'Turu'} caption=\"Tür\" />\r\n <Column dataField={'IcerikTuru'} caption=\"İçerik\" />\r\n\r\n </DataGrid>\r\n </Tab>\r\n <Tab title=\"Taksit Tahsilat\">\r\n <SimpleItem dataField={\"OgrenciId\"}\r\n editorType={\"dxSelectBox\"}\r\n editorOptions={{\r\n dataSource: this.ogrenciDataSource,\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return \"(\" + item.Adi + \" \" + item.Soyadi + \")\";\r\n }\r\n },\r\n valueExpr: \"Id\",\r\n onValueChanged: (e) => {\r\n this.ogrenciFilter.ogrenciId = e.value;\r\n this.veliOdemePlaniDataSource.load();\r\n this.gridOdemePlaniDetay.instance.refresh();\r\n }\r\n }}>\r\n <Label text=\"Öğrenci Seçiniz\"></Label>\r\n </SimpleItem>\r\n <SimpleItem>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.veliOdemePlaniDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n key={\"Id\"}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift({\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridOdemePlaniDetay.instance.refresh();\r\n }\r\n }\r\n });\r\n }}\r\n onInitialized={this.onInitializedGrdiOdemePlani}\r\n ref={(ref) => { this.gridOdemePlaniDetay = ref }}\r\n >\r\n <MasterDetail\r\n enabled={true}\r\n component={DetailTemplate}\r\n />\r\n <Export\r\n enabled={true}\r\n fileName={'Devamsizliklar'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} allowExporting={false} />\r\n <Column dataField={'HizmetToplami'} caption=\"Hizmet Toplamı\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Column dataField={'IndirimToplamTutar'} caption=\"İndirim\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Column dataField={'Pesinat'} caption=\"Peşinat\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Column dataField={'OdenecekToplamTutar'} caption=\"Ö. Toplam Tutar\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Column dataField={'KalanTutar'} caption=\"Kalan Tutar\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Column dataField={'IsNakit'} caption=\"Nakit\" dataType={\"boolean\"} />\r\n </DataGrid>\r\n </SimpleItem>\r\n\r\n </Tab>\r\n <Tab title=\"Görüşmeler\">\r\n <SimpleItem dataField={\"OgrenciId\"}\r\n editorType={\"dxSelectBox\"}\r\n editorOptions={{\r\n dataSource: this.ogrenciDataSource,\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return \"(\" + item.Adi + \" \" + item.Soyadi + \")\";\r\n }\r\n },\r\n valueExpr: \"Id\",\r\n onValueChanged: (e) => {\r\n this.ogrenciFilter.ogrenciId = e.value;\r\n this.gorusmeNotuDataSource.load();\r\n this.grdiGorusmeNotu.instance.refresh();\r\n }\r\n }}>\r\n <Label text=\"Öğrenci Seçiniz\"></Label>\r\n </SimpleItem>\r\n <SimpleItem>\r\n <DataGrid\r\n id=\"grdGorusmeNotu\"\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.gorusmeNotuDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n export={{\r\n enabled: true,\r\n fileName: \"notlar\"\r\n }}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onInitialized={this.onInitializedGridGorusmeNotu}\r\n ref={(ref) => this.grdiGorusmeNotu = ref}\r\n >\r\n <Export\r\n fileName={'Notlar'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'Tarih'} caption=\"Tarih\" dataType={\"date\"} width={100} />\r\n <Column dataField={'KullaniciAdi'} caption=\"Gerçekleştiren\" width={100} />\r\n <Column dataField={'Aciklama'} caption=\"Görüşme Notu\" hidingPriority={0} dataType={\"string\"} />\r\n\r\n </DataGrid>\r\n </SimpleItem>\r\n\r\n </Tab>\r\n <Tab title=\"Merkezi Sınav Sonuçları\">\r\n <div className='container'>\r\n <div className='row'>\r\n <div className='col-md-12 text-center'>\r\n <a href='https://yayin.teknodeneme.com/sinavsonucu/62' rel=\"noopener noreferrer\" target='_blank'>Limit Yayınları</a><br /><br></br>\r\n <a href='https://yayin.teknodeneme.com/sinavsonucu/63' rel=\"noopener noreferrer\" target='_blank'>Avantaj Yayınları</a><br></br><br></br>\r\n <a href='https://yayin.teknodeneme.com/sinavsonucu/64' rel=\"noopener noreferrer\" target='_blank'>Kronometre Yayınları</a><br></br><br></br>\r\n <a href='https://yayin.teknodeneme.com/sinavsonucu/65' rel=\"noopener noreferrer\" target='_blank'>Esen Yayınları</a><br></br><br></br>\r\n </div>\r\n </div>\r\n </div>\r\n </Tab>\r\n </TabbedItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupOdevGizle} visible={this.state.popupOdev}\r\n title={this.state.odevBaslik}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: () => { this.popupOdevGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <span dangerouslySetInnerHTML={{ __html: this.state.odevDetay }} />\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupEtutGizle} visible={this.state.popupEtut}\r\n title={this.state.etutBaslik}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: () => { this.popupEtutGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <span dangerouslySetInnerHTML={{ __html: this.state.etutDetay }} />\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\nfunction linkRender(data) {\r\n if (data === null)\r\n return <p></p>;\r\n else if (data.data.Dosya === undefined || data.data.Dosya === null || data.data.Dosya === \"\") {\r\n return <p></p>;\r\n }\r\n else {\r\n return <a rel=\"noopener noreferrer\" href={data.data.Dosya} target=\"_blank\">\r\n <img src=\"/icons/download.png\" alt=\"Excel Kurum Liste İndir\" /></a>;\r\n }\r\n}","import React from \"react\";\r\nimport OgrenciHataRapor from \"./OgrenciHataRapor\";\r\nimport service from 'axios';\r\nimport Globals from \"../Globals\";\r\nimport { karneApi } from \"../Util\";\r\nimport notify from \"devextreme/ui/notify\";\r\nexport default class DersButon extends React.Component {\r\n constructor() {\r\n super();\r\n this.state = {\r\n data: []\r\n };\r\n\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n {this.props.Dersler.map((item, index) =>\r\n <span> <button\r\n style={{ left: \"10px\" }}\r\n key={index.toString()}\r\n className=\"btn btn-danger btn-sm btn-round\"\r\n onClick={(e) => {\r\n var data = {\r\n DersKodu: item.DersSimge\r\n };\r\n service.post(karneApi + \"ogrenci/getogrencihataraporu\", data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n data: res.data.Data\r\n })\r\n } else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }}\r\n > {item.DersAdi} </button> </span>\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"10px\" }}>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <OgrenciHataRapor Data={this.state.data}></OgrenciHataRapor>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n )\r\n\r\n }\r\n}","import React from 'react';\r\nimport Form, { GroupItem, TabbedItem, TabPanelOptions, Tab, SimpleItem, Label } from 'devextreme-react/form';\r\nimport DataGrid, {\r\n Export, Column, Paging, Pager, FilterRow, LoadPanel, HeaderFilter, FilterPanel, ColumnChooser, ColumnFixing\r\n} from 'devextreme-react/data-grid';\r\nimport { otomasyonApi, karneApi, yayinSinavApi, sinavApi } from '../Util';\r\nimport Globals from '../Globals';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport { alert } from 'devextreme/ui/dialog';\r\nimport service from 'axios';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { SelectBox, Button } from 'devextreme-react';\r\nimport DersTanim from '../classes/DersTanim';\r\nimport DersButon from '../components/DersButon';\r\nimport { setRemoteSystemInfo } from '../redux/actions/mainSystemAction';\r\nimport { setSanalSinavSystemInfo } from '../redux/actions/sanalSinavSystemAction';\r\nimport { connect } from 'react-redux';\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n setRemoteSystem: (data) => dispatch(setRemoteSystemInfo(data)),\r\n setSanalSystemInfo: (data) => dispatch(setSanalSinavSystemInfo(data)),\r\n }\r\n}\r\nconst mapStateToProps = state => ({\r\n remoteSystem: state.remoteSystem.info\r\n});\r\nclass OgrenciDashboard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popupOdev: false,\r\n popupEtut: false,\r\n odevBaslik: \"\",\r\n odevDetay: \"\",\r\n etutBaslik: \"\",\r\n etutDetay: \"\",\r\n dersler: [],\r\n merkeziSinavGoster: false\r\n };\r\n this.dersTanim = new DersTanim();\r\n this.onInitializedGrdiOdemePlani = this.onInitializedGrdiOdemePlani.bind(this);\r\n this.selectBoxMerkeziSinav = null;\r\n this.selectBoxKitapcikTuru = null;\r\n this.satirOdev = null;\r\n this.satirEtut = null;\r\n this.satirSinav = null;\r\n this.satirSanalSinav = null;\r\n this.gridSinav = null;\r\n this.gridOdemePlaniDetay = null;\r\n this.griDevamsizlik = null;\r\n this.gridOdev = null;\r\n this.gridEtut = null;\r\n this.gridSanalSinav = null;\r\n this.formSanalSinavData = {\r\n YayinId: null,\r\n SinavTuruId: null,\r\n KitapcikTuru: null\r\n }\r\n console.log(Globals.service);\r\n this.ogrenciDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'kayitkabul/listveliogrenci',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.sinavTuruDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: karneApi + 'ogrenci/getogrencisinavturu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.karneDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n key: \"RowNumber\",\r\n store: createStore({\r\n key: \"RowNumber\",\r\n loadUrl: karneApi + 'ogrenci/getotomasyonogrencikarneler',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.odevDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'odev/ogrenciodevlist',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.etutDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'etut/ogrencietutlist',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.devamsizlikuDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'devamsizlik/listogrencidevamsizlik',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadUrl: sinavApi + 'yayin/yayinlarByYetkiotomasyonogrenci',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.sanalSinavFilter = {\r\n kurumKodu: Globals.service.Kullanici.KurumKodu,\r\n ogrenciNo: Globals.service.Kullanici.OgrenciNo\r\n }\r\n\r\n this.sanalSinavDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.sanalSinavFilter,\r\n loadUrl: sinavApi + 'merkezisinav/getsanalsinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.merkeziSinavFilter = {\r\n yayinId: 0,\r\n sinifSeviyesi: Globals.service.Kullanici.SinifSeviye\r\n }\r\n\r\n this.merkeziSinavDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadParams: this.merkeziSinavFilter,\r\n loadUrl: sinavApi + 'merkezisinav/getsanalmerkezisinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.kitapcikTuruFilter = {\r\n merkeziSinavId: 0\r\n }\r\n\r\n this.kitapcikTuruDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadParams: this.kitapcikTuruFilter,\r\n loadUrl: sinavApi + 'cevapanahtari/getmerkezssinavkitapcikturleri',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.devamsizlikFilter = {\r\n ogrenciId: Globals.service.Kullanici.OgrenciId\r\n };\r\n this.devamsizlikAltRaporDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.devamsizlikFilter,\r\n loadUrl: otomasyonApi + 'devamsizlik/devamsizlikaltraporu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.devamsizlikUstRaporDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.devamsizlikFilter,\r\n loadUrl: otomasyonApi + 'devamsizlik/devamsizlikustraporu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.popupOdevGizle = async () => {\r\n await this.setState(\r\n {\r\n popupOdev: false\r\n }\r\n );\r\n };\r\n\r\n this.popupOdevAc = () => {\r\n this.setState(\r\n {\r\n popupOdev: true\r\n });\r\n };\r\n\r\n this.popupEtutGizle = async () => {\r\n await this.setState(\r\n {\r\n popupEtut: false\r\n }\r\n );\r\n };\r\n\r\n this.popupEtutAc = () => {\r\n this.setState(\r\n {\r\n popupEtut: true\r\n });\r\n };\r\n }\r\n onInitializedGrdiOdemePlani(e) {\r\n this.gridOdemePlaniDetay = e.component;\r\n }\r\n\r\n getSinavApi() {\r\n let endpoint = \"\";\r\n endpoint = (this.props.remoteSystem.connectionState && this.state.merkeziSinavGoster) ? yayinSinavApi : sinavApi;\r\n return endpoint;\r\n }\r\n\r\n getHeaders() {\r\n return {\r\n 'Authorization': (this.props.remoteSystem.connectionState && this.state.merkeziSinavGoster)\r\n ? 'Bearer ' + this.props.remoteSystem.remoteToken\r\n : 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form colCount={1} width={\"100%\"} formData={this.formEtutTanimiData} onInitialized={this.onInitializedFormEtutTanimi} ref={(ref) => this.formEtutTanimi = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <TabbedItem>\r\n <TabPanelOptions deferRendering={false} />\r\n <Tab title=\"Sanal Optik Sınavlar\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n Aşağıda bulunan butona basarak gireceğiniz sınavı sadece kurum katılımı ile yada genel katılım olarak değerlendirebilirsiniz.\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Button\r\n type={this.state.merkeziSinavGoster ? 'success' : 'default'}\r\n text={this.state.merkeziSinavGoster ? \"Merkezi sınavlar ile ilgili işlem yapılıyor\" : \"Local sınavlar ile ilgili işlem yapılıyor\"}\r\n onClick={(e) => {\r\n\r\n if (this.state.merkeziSinavGoster) {\r\n this.sanalSinavDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.sanalSinavFilter,\r\n loadUrl: sinavApi + 'merkezisinav/getsanalsinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadUrl: sinavApi + 'yayin/yayinlarByYetkiotomasyonogrenci',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.karneDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n key: \"RowNumber\",\r\n store: createStore({\r\n key: \"RowNumber\",\r\n loadUrl: karneApi + \"ogrenci/getotomasyonogrencikarneler\",\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.gridSinav.instance.refresh();\r\n this.gridSanalSinav.instance.option(\"dataSource\", this.sanalSinavDataSource);\r\n this.gridSanalSinav.instance.refresh();\r\n }\r\n else {\r\n this.sanalSinavDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.sanalSinavFilter,\r\n loadUrl: yayinSinavApi + 'merkezisinav/getsanalsinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + this.props.remoteSystem.remoteToken\r\n };\r\n }\r\n })\r\n });\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadUrl: yayinSinavApi + 'yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + this.props.remoteSystem.remoteToken\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.karneFilter = {\r\n ogrenciNo: Globals.service.Kullanici.OgrenciNo,\r\n kurumKodu: Globals.service.Kullanici.KurumKodu\r\n };\r\n this.karneDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n key: \"RowNumber\",\r\n store: createStore({\r\n key: \"RowNumber\",\r\n loadParams: this.karneFilter,\r\n loadUrl: \"https://gateway.teknodeneme.com/karne/ogrenci/getremoteogrencikarneler\",\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + this.props.remoteSystem.remoteToken\r\n };\r\n }\r\n })\r\n });\r\n this.gridSinav.instance.refresh();\r\n this.gridSanalSinav.instance.option(\"dataSource\", this.sanalSinavDataSource);\r\n this.gridSanalSinav.instance.refresh();\r\n }\r\n\r\n\r\n this.setState({\r\n merkeziSinavGoster: !this.state.merkeziSinavGoster\r\n });\r\n\r\n\r\n }}></Button><br></br><br></br><br></br>\r\n </div>\r\n </div>\r\n <div className='row'>\r\n <div className='col-md-12'>\r\n\r\n <Form formData={this.formSanalSinavData}>\r\n <GroupItem cssClass=\"first-group\" colCount={3} caption=\"Sınav Bilgileri\">\r\n <SimpleItem dataField={\"YayinId\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinDataSource,\r\n keyExpr: \"Id\",\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n showClearButton: true,\r\n onInitialized: this.onInitializedSelectBoxYayin,\r\n ref: (ref) => { this.selectBoxYayin = ref },\r\n onValueChanged: (e) => {\r\n this.merkeziSinavFilter.yayinId = parseInt(e.value);\r\n this.merkeziSinavDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadParams: this.merkeziSinavFilter,\r\n loadUrl: this.getSinavApi() + 'merkezisinav/getsanalmerkezisinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = this.getHeaders()\r\n }\r\n })\r\n });\r\n this.merkeziSinavDataSource.load();\r\n this.selectBoxMerkeziSinav.instance().option(\"dataSource\", this.merkeziSinavDataSource);\r\n }\r\n }}>\r\n <Label text=\"Yayın\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MerkeziSinavId\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.merkeziSinavDataSource,\r\n keyExpr: \"Id\",\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n showClearButton: true,\r\n onValueChanged: (e) => {\r\n this.kitapcikTuruFilter.merkeziSinavId = parseInt(e.value);\r\n this.kitapcikTuruDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadParams: this.kitapcikTuruFilter,\r\n loadUrl: this.getSinavApi() + 'cevapanahtari/getmerkezssinavkitapcikturleri',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = this.getHeaders();\r\n }\r\n })\r\n });\r\n this.kitapcikTuruDataSource.load();\r\n this.selectBoxKitapcikTuru.instance().option(\"dataSource\", this.kitapcikTuruDataSource);\r\n },\r\n onInitialized: (e) => {\r\n this.selectBoxMerkeziSinav = e.component;\r\n },\r\n ref: (ref) => this.selectBoxMerkeziSinav = ref\r\n }}>\r\n <Label text=\"Sınav\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KitapcikTuru\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.kitapcikTuruDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"KitapcikTuru\",\r\n valueExpr: \"KitapcikTuru\",\r\n showClearButton: true,\r\n onInitialized: (e) => {\r\n this.selectBoxKitapcikTuru = e.component;\r\n },\r\n ref: (ref) => this.selectBoxKitapcikTuru = ref\r\n }}>\r\n <Label text=\"Kitapçık Türü\" />\r\n </SimpleItem>\r\n <SimpleItem\r\n editorType=\"dxButton\"\r\n editorOptions={{\r\n text: \"Seçtiğim kriterlere göre sınava girmek istiyorum\",\r\n type: \"success\",\r\n onClick: () => {\r\n const data = {\r\n KurumKodu: Globals.service.Kullanici.KurumKodu,\r\n OgrenciNo: Globals.service.Kullanici.OgrenciNo,\r\n YayinId: this.formSanalSinavData.YayinId,\r\n MerkeziSinavId: this.formSanalSinavData.MerkeziSinavId,\r\n KitapcikTuru: this.formSanalSinavData.KitapcikTuru,\r\n SanalSinavId: 0,\r\n MerkeziSistem: this.state.merkeziSinavGoster\r\n };\r\n\r\n service.post(this.getSinavApi() + \"merkezisinav/sanalsinavolustur\"\r\n , data, {\r\n headers: this.getHeaders()\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n let sanalSinavData = data;\r\n sanalSinavData.SanalSinavId = parseInt(res.data.Data.Id);\r\n sanalSinavData.SinavTuru = res.data.Data.SinavTuru;\r\n sanalSinavData.KalanSure = res.data.Data.KalanSure;\r\n this.props.setSanalSystemInfo(sanalSinavData);\r\n notify(\"Sanal optik sınavınız oluşturuldu.2 saniye içerisinde sınav ekranına yönlendiriliyorsunuz\", \"success\", 5000);\r\n window.setTimeout(() => {\r\n window.location.href = \"/SanalSinif/SanalOptikSinav\";\r\n }, 2000)\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n this.gridSanalSinav.instance.refresh();\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n\r\n }\r\n }}>\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Girmiş olduğunuz sınavlar\">\r\n <SimpleItem>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.sanalSinavDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: \"Karne Al\", icon: 'exportpdf',\r\n text: \"Sınava Başla\",\r\n onClick: () => {\r\n const satir = this.satirSanalSinav;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else if (satir.TamamlanmaDurumu === \"Tamamlandı\") {\r\n alert('Bu sınava katılmışsınız', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n const data = {\r\n KurumKodu: satir.KurumKodu,\r\n OgrenciNo: satir.OgrenciNo,\r\n YayinId: satir.YayinId,\r\n MerkeziSinavId: satir.MerkeziSinavId,\r\n KitapcikTuru: satir.KitapcikTuru,\r\n SanalSinavId: satir.Id,\r\n SinavTuru: satir.SinavTuru,\r\n KalanSure: satir.KalanSure,\r\n MerkeziSistem: this.state.merkeziSinavGoster\r\n };\r\n this.props.setSanalSystemInfo(data);\r\n notify(\"Sanal optik sınavınız oluşturuldu.2 saniye içerisinde sınav ekranına yönlendiriliyorsunuz\", \"success\", 5000);\r\n window.setTimeout(() => {\r\n window.location.href = \"/SanalSinif/SanalOptikSinav\";\r\n }, 2000)\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n text: \"Yenile\",\r\n onClick: (e) => {\r\n this.gridSanalSinav.instance.refresh();\r\n }\r\n }\r\n });\r\n }}\r\n onSelectionChanged={(selectedItems) => {\r\n this.satirSanalSinav = selectedItems.selectedRowsData[0];\r\n }}\r\n onInitialized={(e) => {\r\n this.gridSanalSinav = e.component;\r\n }}\r\n ref={(ref) => this.gridSanalSinav = ref}\r\n >\r\n <ColumnChooser enabled={false} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'MerkeziSinavId'} visible={false} />\r\n <Column dataField={'YayinId'} caption={\"YayinId\"} visible={false} />\r\n <Column dataField={'KurumId'} caption=\"KurumId\" visible={false} />\r\n <Column dataField={'SinavTuruId'} caption=\"SinavTuruId\" visible={false} />\r\n <Column dataField={'YayinAdi'} caption=\"Yayın\" />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'SinavTuru'} caption=\"Sınav Türü\" />\r\n <Column dataField={'SinavKodu'} caption=\"Sınav Kodu\" />\r\n <Column dataField={'SinavAdi'} caption=\"Sınav Adı\" />\r\n <Column dataField={'KalanSure'} caption=\"K. Süre\" />\r\n <Column dataField={'KitapcikTuru'} caption=\"Kitapçık\" />\r\n <Column dataField={'TamamlanmaDurumu'} caption=\"Durum\" />\r\n\r\n </DataGrid>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </Tab>\r\n <Tab title=\"Sınavlar\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.karneDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"RowNumber\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: \"Karne Al\", icon: 'exportpdf',\r\n text: \"Karne Al\",\r\n onClick: () => {\r\n const satir = this.satirSinav;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n\r\n service.post((this.state.merkeziSinavGoster ? \"https://gateway.teknodeneme.com/karne/\" : karneApi) + \"ogrenci/GetOtomasyonOgrenciKarne\",\r\n {\r\n OgrenciNo: satir.OgrenciNo,\r\n KurumId: satir.KurumId,\r\n KullaniciId: satir.KullaniciId,\r\n KurumLogo: satir.KurumLogo,\r\n SinavTuru: satir.SinavTuru,\r\n SinavTuruId: satir.SinavTuruId,\r\n MerkeziSinavId: satir.Id,\r\n MerkeziSinavLogId: satir.MerkeziSinavLogId\r\n },\r\n {\r\n headers: this.getHeaders()\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridSinav.instance.refresh();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(error => {\r\n notify(\"Teknik bir hata oluştu,lütfen daha sonra tekrar deneyiniz\", \"error\", 5000);\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n text: \"Yenile\",\r\n onClick: (e) => {\r\n this.gridSinav.instance.refresh();\r\n }\r\n }\r\n });\r\n }}\r\n onSelectionChanged={(selectedItems) => {\r\n this.satirSinav = selectedItems.selectedRowsData[0];\r\n }}\r\n ref={(ref) => this.gridSinav = ref}\r\n >\r\n <Export enabled={true} fileName={'Karneler'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'RowNumber'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField=\"YayinAdi\" caption=\"\"\r\n width={40}\r\n allowSorting={false}\r\n cellRender={linkRender}\r\n />\r\n <Column dataField={'KullaniciId'} caption=\"KullaniciId\" visible={false} />\r\n <Column dataField={'ListeKarneId'} caption=\"ListeKarneId\" visible={false} />\r\n <Column dataField={'KurumId'} caption=\"KurumId\" visible={false} />\r\n <Column dataField={'YayinAdi'} caption=\"Yayın\" />\r\n <Column dataField={'SinavTuru'} caption=\"Sınav Türü\" />\r\n <Column dataField={'SinavKodu'} caption=\"Sınav Kodu\" />\r\n <Column dataField={'SinavAdi'} caption=\"Sınav Adı\" />\r\n <Column dataField={'IlAdi'} caption=\"İl\" />\r\n <Column dataField={'IlceAdi'} caption=\"İlçe\" />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'Created'} caption=\"Tarih\" dataType=\"date\" format={\r\n \"dd/MM/yyyy HH:mm:ss\"\r\n } />\r\n <Column dataField={'DosyaTuru'} caption=\"DosyaTuru\" visible={false} />\r\n <Column dataField={'Dosya'} caption=\"Dosya\" visible={false} />\r\n </DataGrid>\r\n </Tab>\r\n <Tab title=\"Hatalar\">\r\n <div className=\"row\">\r\n <div className=\"col-md-6\">\r\n <SelectBox\r\n dataSource={this.sinavTuruDataSource}\r\n displayExpr={\"SinavTuru\"}\r\n valueExpr={\"SinavTuru\"}\r\n onValueChanged={(e) => {\r\n const dersler = this.dersTanim.GetDersler(e.value);\r\n this.setState({\r\n dersler: dersler\r\n });\r\n }}\r\n >\r\n </SelectBox>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"10px\" }}>\r\n\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DersButon Dersler={this.state.dersler}></DersButon>\r\n </div>\r\n </div>\r\n </div>\r\n </Tab>\r\n <Tab title=\"Ödev\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.odevDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n showCheckBoxesMode={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onSelectionChanged={(selectedItems) => {\r\n this.satirOdev = selectedItems.selectedRowsData[0];\r\n this.setState({\r\n odevBaslik: this.satirOdev.Baslik,\r\n odevDetay: this.satirOdev.Odev\r\n })\r\n }}\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Ödev Detayı', icon: 'search',\r\n onClick: () => {\r\n if (this.satirOdev === null | this.satirOdev === undefined) {\r\n alert(\"Lütfen bir satır seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n this.popupOdevAc()\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridOdev.instance.refresh();\r\n }\r\n }\r\n }\r\n );\r\n }}\r\n onInitialized={(e) => {\r\n this.gridOdev = e.component;\r\n }}\r\n ref={(ref) => { this.gridOdev = ref }}\r\n >\r\n <Export\r\n enabled={Globals.service.Rol === \"SubeOgretmen\" ? true : false}\r\n fileName={'Öğrenciler'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnChooser mode=\"dragAndDrop\" enabled={Globals.service.Rol === \"SubeOgretmen\" ? true : false} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'KonuAdi'} caption=\"Konu\" />\r\n <Column dataField={'SeviyeAdi'} caption=\"Sınıf\" />\r\n <Column dataField={'SubeAdi'} caption=\"Şube\" />\r\n <Column dataField={'Baslik'} caption=\"Başlık\" />\r\n <Column dataField={'OdevDurum'} caption=\"Tamamlanma Durumu\" />\r\n <Column dataField={'Created'} caption=\"Tarih\" dataType={\"date\"} />\r\n </DataGrid>\r\n\r\n </Tab>\r\n <Tab title=\"Etüt\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.etutDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n showCheckBoxesMode={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onSelectionChanged={(selectedItems) => {\r\n this.satirEtut = selectedItems.selectedRowsData[0];\r\n this.setState({\r\n etutBaslik: this.satirEtut.Baslik,\r\n etutDetay: this.satirEtut.Aciklama\r\n })\r\n }}\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Etüt Detayı', icon: 'search',\r\n onClick: () => {\r\n if (this.satirEtut === null | this.satirEtut === undefined) {\r\n alert(\"Lütfen bir satır seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n this.popupEtutAc()\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridEtut.instance.refresh();\r\n }\r\n }\r\n }\r\n );\r\n }}\r\n onInitialized={(e) => {\r\n this.gridEtut = e.component;\r\n }}\r\n ref={(ref) => { this.gridEtut = ref }}\r\n >\r\n <Export\r\n enabled={Globals.service.Rol === \"SubeOgretmen\" ? true : false}\r\n fileName={'Öğrenciler'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnChooser mode=\"dragAndDrop\" enabled={Globals.service.Rol === \"SubeOgretmen\" ? true : false} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'KonuAdi'} caption=\"Konu\" />\r\n <Column dataField={'SeviyeAdi'} caption=\"Sınıf\" />\r\n <Column dataField={'SubeAdi'} caption=\"Şube\" />\r\n <Column dataField={'Baslik'} caption=\"Başlık\" />\r\n <Column dataField={'EtutDurum'} caption=\"Tamamlanma Durumu\" />\r\n <Column dataField={'Created'} caption=\"Tarih\" dataType={\"date\"} />\r\n </DataGrid>\r\n\r\n </Tab>\r\n <Tab title=\"Devamsızlık\">\r\n <div className=\"row\">\r\n <div className=\"col-md-10\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.devamsizlikUstRaporDataSource}\r\n onInitialized={(e) => {\r\n this.gridDevamsizlikUstRapor = e.component;\r\n }}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n export={{\r\n enabled: true,\r\n fileName: \"devamsizlikustrapor\"\r\n }}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridDevamsizlikUstRapor = ref}\r\n >\r\n <Export\r\n fileName={'OgrenciDevamsizlikUstRapor'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Sube'} caption=\"Şube\" width={75} />\r\n <Column dataField={'Adi'} caption=\"Ad\" />\r\n <Column dataField={'Soyadi'} caption=\"Soyad\" />\r\n <Column dataField={'OgrenciNo'} caption=\"Öğrenci N.\" dataType={\"number\"} />\r\n <Column dataField={'Durum'} caption=\"Durum\" width={100} />\r\n <Column dataField={'Toplam'} dataType={\"number\"} caption=\"T. Sayı\" />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ height: \"10px\" }}>\r\n <div className=\"col-md-12\">\r\n\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.devamsizlikAltRaporDataSource}\r\n onInitialized={(e) => {\r\n this.gridDevamsizlikAltRapor = e.component;\r\n }}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n export={{\r\n enabled: true,\r\n fileName: \"smsRapor\"\r\n }}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridDevamsizlikAltRapor = ref}\r\n >\r\n <Export\r\n fileName={'OgrenciDevamsizlikAltRapor'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Sube'} caption=\"Şube\" />\r\n <Column dataField={'Adi'} caption=\"Ad\" />\r\n <Column dataField={'Soyadi'} caption=\"Soyad\" />\r\n <Column dataField={'OgrenciNo'} caption=\"Öğrenci N.\" dataType={\"number\"} />\r\n <Column dataField={'Tarih'} caption=\"Tarih\" dataType={\"datetime\"} />\r\n <Column dataField={'VeliCepTelefonu'} caption=\"V. Cep Telefonu\" />\r\n <Column dataField={'DersNo'} caption=\"Ders N.\" dataType={\"number\"} />\r\n <Column dataField={'Turu'} caption=\"Durum\" />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </Tab>\r\n <Tab title=\"Merkezi Sınav Sonuçları\">\r\n <div className='container'>\r\n <div className='row'>\r\n <div className='col-md-12 text-center'>\r\n <a href='https://yayin.teknodeneme.com/sinavsonucu/62' rel=\"noopener noreferrer\" target='_blank'>Limit Yayınları</a><br /><br></br>\r\n <a href='https://yayin.teknodeneme.com/sinavsonucu/63' rel=\"noopener noreferrer\" target='_blank'>Avantaj Yayınları</a><br></br><br></br>\r\n <a href='https://yayin.teknodeneme.com/sinavsonucu/64' rel=\"noopener noreferrer\" target='_blank'>Kronometre Yayınları</a><br></br><br></br>\r\n <a href='https://yayin.teknodeneme.com/sinavsonucu/65' rel=\"noopener noreferrer\" target='_blank'>Esen Yayınları</a><br></br><br></br>\r\n </div>\r\n </div>\r\n </div>\r\n </Tab>\r\n </TabbedItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupOdevGizle} visible={this.state.popupOdev}\r\n title={this.state.odevBaslik}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: () => { this.popupOdevGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <span dangerouslySetInnerHTML={{ __html: this.state.odevDetay }} />\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupEtutGizle} visible={this.state.popupEtut}\r\n title={this.state.etutBaslik}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: () => { this.popupEtutGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <span dangerouslySetInnerHTML={{ __html: this.state.etutDetay }} />\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\nexport default connect(mapStateToProps, mapDispatchToProps)(OgrenciDashboard);\r\nfunction linkRender(data) {\r\n if (data === null)\r\n return <p></p>;\r\n else if (data.data.Dosya === undefined || data.data.Dosya === null || data.data.Dosya === \"\") {\r\n return <p></p>;\r\n }\r\n else {\r\n return <a rel=\"noopener noreferrer\" href={data.data.Dosya} target=\"_blank\">\r\n <img src=\"/icons/download.png\" alt=\"Excel Kurum Liste İndir\" /></a>;\r\n }\r\n}","import React from \"react\";\r\nimport DataGrid, {\r\n Export, Column, Paging, Pager, FilterRow, LoadPanel, HeaderFilter, FilterPanel, ColumnChooser, GroupPanel, Summary\r\n\r\n} from 'devextreme-react/data-grid';\r\nimport { otomasyonApi } from '../Util';\r\nimport Globals from '../Globals';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport Form, { GroupItem, TabbedItem, TabPanelOptions, Tab, SimpleItem, Label } from 'devextreme-react/form';\r\nexport default class OtomasyonAdminDashboard extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.gridAdminKurumRaporu = null;\r\n this.gridSinavGonderenKurumlar = null;\r\n this.gridSinavBasariDurum = null;\r\n this.formDashboard = null;\r\n this.sinavFilter = { merkeziSinavId: 0 };\r\n this.adminKurumRaporuDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'dashboard/getadminkurumraporu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.sinavGonderenKurumDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'dashboard/getadminmerkezisinavgonderenkurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.merkeziSinavDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"MerkeziSinavId\",\r\n store: createStore({\r\n key: \"MerkeziSinavId\",\r\n loadUrl: otomasyonApi + 'dashboard/getadminmerkezisinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.kurumBasariDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n paginate: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.sinavFilter,\r\n loadUrl: otomasyonApi + 'dashboard/getadminkurumbasarilari',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form colCount={1} width={\"100%\"} ref={(ref) => this.formDashboard = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <TabbedItem>\r\n <TabPanelOptions deferRendering={false} />\r\n <Tab title=\"Kurum Öğrenci Sayıları\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.adminKurumRaporuDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n text: \"Yenile\",\r\n onClick: (e) => {\r\n this.gridAdminKurumRaporu.instance.refresh();\r\n }\r\n }\r\n });\r\n }}\r\n ref={(ref) => this.gridAdminKurumRaporu = ref}\r\n >\r\n <Export enabled={true} fileName={'KurumRaporu'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <HeaderFilter visible={true}></HeaderFilter>\r\n <FilterPanel visible={true}></FilterPanel>\r\n <FilterRow visible={true} applyFilter={'auto'} />\r\n <GroupPanel visible={true}></GroupPanel>\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'SinifSeviyesiSira'} caption=\"Sınıf Seviyesi\" visible={true} groupIndex={0} customizeText={(row) => {\r\n if (row.value === 0) {\r\n return \"ANAOKULU\"\r\n }\r\n else if (row.value === 4) {\r\n return \"4. SINIF\"\r\n }\r\n else if (row.value === 5) {\r\n return \"5. SINIF\"\r\n }\r\n else if (row.value === 6) {\r\n return \"6. SINIF\"\r\n }\r\n else if (row.value === 7) {\r\n return \"7. SINIF\"\r\n }\r\n else if (row.value === 8) {\r\n return \"8. SINIF\"\r\n }\r\n else if (row.value === 9) {\r\n return \"9. SINIF\"\r\n }\r\n else if (row.value === 10) {\r\n return \"10. SINIF\"\r\n }\r\n else if (row.value === 11) {\r\n return \"11. SINIF\"\r\n }\r\n else if (row.value === 12) {\r\n return \"12. SINIF\"\r\n }\r\n else if (row.value === 13) {\r\n return \"MEZUN\"\r\n }\r\n }} />\r\n <Column dataField={'DonemAdi'} caption=\"Dönem\" />\r\n <Column dataField={'IlAdi'} caption=\"İl\" />\r\n <Column dataField={'IlceAdi'} caption=\"İlçe\" />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'KayitliOgrenciSayisi'} caption=\"Öğrenci Sayısı\" />\r\n <Summary>\r\n <GroupItem\r\n column=\"KayitliOgrenciSayisi\"\r\n summaryType=\"sum\"\r\n />\r\n\r\n </Summary>\r\n </DataGrid>\r\n </Tab>\r\n <Tab title=\"Kurum Sınav Gönderen Öğrenci Sayıları\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.sinavGonderenKurumDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n text: \"Yenile\",\r\n onClick: (e) => {\r\n this.gridSinavGonderenKurumlar.instance.refresh();\r\n }\r\n }\r\n });\r\n }}\r\n ref={(ref) => this.gridSinavGonderenKurumlar = ref}\r\n >\r\n <Export enabled={true} fileName={'SinavGonderenKurumlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <HeaderFilter visible={true}></HeaderFilter>\r\n <FilterPanel visible={true}></FilterPanel>\r\n <FilterRow visible={true} applyFilter={'auto'} />\r\n <GroupPanel visible={true}></GroupPanel>\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'IlAdi'} caption=\"İl\" />\r\n <Column dataField={'IlceAdi'} caption=\"İlçe\" />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'OgrenciSayisi'} caption=\"Öğrenci Sayısı\" />\r\n </DataGrid>\r\n </Tab>\r\n <Tab title=\"Sınava Göre Başarı Durumları\">\r\n <Form colCount={1} width={\"100%\"}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem dataField={\"MerkeziSinavId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.merkeziSinavDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"MerkeziSinavAdi\",\r\n showClearButton: true,\r\n valueExpr: \"MerkeziSinavId\",\r\n onValueChanged: (e) => {\r\n this.sinavFilter.merkeziSinavId = parseInt(e.value);\r\n this.gridSinavBasariDurum.instance.refresh();\r\n }\r\n }}>\r\n <Label text=\"Sınav Seçiniz\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.kurumBasariDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n text: \"Yenile\",\r\n onClick: (e) => {\r\n this.gridSinavBasariDurum.instance.refresh();\r\n }\r\n }\r\n });\r\n }}\r\n ref={(ref) => this.gridSinavBasariDurum = ref}\r\n >\r\n <Export enabled={true} fileName={'SinavBasariDurumu'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <HeaderFilter visible={true}></HeaderFilter>\r\n <FilterPanel visible={true}></FilterPanel>\r\n <FilterRow visible={true} applyFilter={'auto'} />\r\n <GroupPanel visible={true}></GroupPanel>\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'IlAdi'} caption=\"İl\" />\r\n <Column dataField={'IlceAdi'} caption=\"İlçe\" />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'SinavTuru'} caption=\"Sınav Türü\" />\r\n <Column dataField={'SinavAdi'} caption=\"Sınav\" />\r\n <Column dataField={'PuanTuruKodu'} caption=\"Puan Türü Kodu\" />\r\n <Column dataField={'Puan'} caption=\"Puan\" />\r\n </DataGrid>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </Tab>\r\n </TabbedItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { sinavApi, errorMessage, errorMessageWithKonum } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Selection, Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { alert } from 'devextreme/ui/dialog';\r\nexport default class RolIslemleri extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n roller: [],\r\n popup: false,\r\n ekranlar: [],\r\n loadingText: \"\",\r\n toolbarDisabled: false\r\n };\r\n this.popupForm = null;\r\n this.mainDataGrid = null;\r\n this.dataGridEkran = null;\r\n this.secilenEkranlar = [];\r\n this.satir = null;\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.duzenleClick = this.duzenleClick.bind(this);\r\n this.ekranSecimiChanged = this.ekranSecimiChanged.bind(this);\r\n this.onInitialized = this.onInitialized.bind(this);\r\n this.popupGizle = () => {\r\n this.secilenEkranlar = [];\r\n this.setState({\r\n popup: false, loadingText: \"\",\r\n toolbarDisabled: false\r\n });\r\n this.satirIptal();\r\n };\r\n this.refreshData();\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Düzenle',\r\n icon: 'edit',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.duzenleClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh', disabled: this.state.toolbarDisabled,\r\n onClick: () => {\r\n this.refreshData();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa', disabled: this.state.toolbarDisabled,\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n async popupAc() {\r\n this.setState({\r\n popup: true,\r\n toolbarDisabled: true\r\n })\r\n }\r\n\r\n async roller() {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n service.get(sinavApi + \"rol/getRoller\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n roller: res.data.Data\r\n });\r\n resolve(\"Rol bilgileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessageWithKonum(error, \"rol bilgileri\"));\r\n });\r\n\r\n });\r\n }\r\n\r\n async ekranlar() {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"rol/getEkranlar\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n ekranlar: res.data.Data\r\n });\r\n resolve(\"ekran bilgileri getirildi\");\r\n\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n })\r\n .catch(error => {\r\n reject(errorMessage(error, \"ekran bilgileri\"));\r\n });\r\n\r\n })\r\n }\r\n\r\n async refreshData() {\r\n this.setState({\r\n loadingText: \"rol bilgileri getiriliyor...\",\r\n toolbarDisabled: true\r\n })\r\n let hataMesajlari = \"\";\r\n let isError = false;\r\n\r\n await this.roller().then(res => { }).catch(error => {\r\n hataMesajlari += error + \"<br/>\";\r\n isError = true;\r\n });\r\n\r\n await this.ekranlar().then(res => { }).catch(error => {\r\n hataMesajlari += error + \"<br/>\";\r\n isError = true;\r\n });\r\n\r\n await this.satirIptal();\r\n\r\n this.setState({\r\n loadingText: \"\",\r\n toolbarDisabled: false\r\n });\r\n if (isError) {\r\n alert(hataMesajlari);\r\n }\r\n }\r\n\r\n async duzenle(rolId) {\r\n await this.getSecilenRol(rolId)\r\n .then(res => {\r\n this.popupAc();\r\n })\r\n .catch(error => {\r\n alert(error);\r\n });\r\n }\r\n\r\n async getSecilenRol(rolId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"rol/getRolEkranByRolId/\" + rolId,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n let arrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n arrayList.push(item.Ekran.Id)\r\n });\r\n this.dataGridEkran.instance.selectRows(arrayList);\r\n resolve(\"rol bilgisi getirildi\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessageWithKonum(error, \"seçilen rol bilgisi\"));\r\n });\r\n });\r\n }\r\n\r\n async componentWillUnmount() {\r\n }\r\n\r\n duzenleClick(e) {\r\n //const satir = this.mainDataGrid.instance.option('dataSource')[this.mainDataGrid.instance.option('focusedRowIndex')];\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.duzenle(satir.Id);\r\n }\r\n }\r\n\r\n ekranSecimiChanged() {\r\n this.secilenEkranlar = this.dataGridEkran.instance.getSelectedRowsData();\r\n }\r\n\r\n onInitialized(e) {\r\n this.mainDataGrid = e.component;\r\n }\r\n\r\n //seçilen satırı iptal etmek için kullanıyoruz\r\n async satirIptal() {\r\n this.mainDataGrid.instance.clearSelection();\r\n this.mainDataGrid.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n {this.state.loadingText}\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.state.roller}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n onInitialized={this.onInitialized}\r\n ref={(ref) => this.mainDataGrid = ref}\r\n >\r\n <Export enabled={true} fileName={'Roller'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Rol\" />\r\n </DataGrid>\r\n <Popup showTitle={true} shading={false} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupGizle} visible={this.state.popup} width={\"100%\"} height={\"100%\"}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n var data = {\r\n Ekranlar: this.secilenEkranlar\r\n }\r\n this.setState({\r\n loadingText: \"Rol bilgisi kaydediliyor...\",\r\n toolbarDisabled: true\r\n });\r\n service.post(sinavApi + 'Rol/RolEkranSave/' + this.satir.Id,\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.popupGizle();\r\n }\r\n else {\r\n this.setState({\r\n loadingText: \"\",\r\n toolbarDisabled: false\r\n })\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n }).catch(error => {\r\n this.setState({\r\n loadingText: \"\",\r\n toolbarDisabled: false\r\n })\r\n alert(errorMessage(error));\r\n })\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData}>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Ekranlar\">\r\n <SimpleItem>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.state.ekranlar}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n columnFixing={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n\r\n onSelectionChanged={this.ekranSecimiChanged}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n ref={(ref) => this.dataGridEkran = ref}\r\n width=\"100%\"\r\n >\r\n\r\n <Paging defaultPageSize={15} />\r\n <Selection mode=\"multiple\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"onClick\" />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Modul'} caption=\"Modül\" hidingPriority=\"1\" />\r\n <Column dataField={'Href'} caption=\"Href\" hidingPriority=\"2\" />\r\n <Column dataField={'Adi'} caption=\"Ekran\" hidingPriority=\"3\" />\r\n <Column dataField={'Aciklama'} caption=\"Açıklama\" hidingPriority=\"4\" />\r\n\r\n </DataGrid>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n\r\n\r\n }\r\n\r\n\r\n}","import * as React from \"react\";\r\nimport { sinavApi } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Selection, Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\n\r\n\r\n\r\nexport default class KullaniciIslemleri extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popup: false\r\n };\r\n this.gridYayin = null;\r\n this.gridMain = null;\r\n this.formKullanici = null;\r\n this.selectBoxRol = null;\r\n this.satir = null;\r\n this.yayinlar = [];\r\n this.formData = {\r\n }\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionGridMainChanged = this.onSelectionGridMainChanged.bind(this);\r\n this.onSelectionGridYayinChanged = this.onSelectionGridYayinChanged.bind(this);\r\n this.onInitializedGridMain = this.onInitializedGridMain.bind(this);\r\n this.onInitializedGridYayin = this.onInitializedGridYayin.bind(this);\r\n this.onInitializedSelectBoxRol = this.onInitializedSelectBoxRol.bind(this);\r\n this.onInitializedFormKullanici = this.onInitializedFormKullanici.bind(this);\r\n this.duzenleClick = this.duzenleClick.bind(this);\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.popupGizle = () => {\r\n this.setState({ popup: false });\r\n };\r\n this.headers = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n this.arrayList = null;\r\n this.flag = false;\r\n this.secilenYayinlar = [];\r\n this.KullaniciYayinYetki = [];\r\n this.kullaniciDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n paginate: true,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kullanici/yayinkullanicilari',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.rolDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n filter: [\"Adi\", \"=\", \"Yayin\"],\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'rol/roller',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'yayin/sistemyayinlari',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n async popupAc() {\r\n return new Promise(resolve => {\r\n this.setState({\r\n popup: true\r\n });\r\n resolve(true);\r\n });\r\n }\r\n\r\n async yeni() {\r\n this.formData = {\r\n Id: 0,\r\n Rol_Id: null,\r\n Deleted: false,\r\n RowVersion: 0,\r\n KullaniciAdi: null,\r\n Sifre: null,\r\n Email: null,\r\n Adi: null,\r\n Soyadi: null,\r\n SmsBilgi: false,\r\n MailBilgi: false,\r\n Tel: null,\r\n Gsm: null,\r\n Resim: null\r\n };\r\n }\r\n\r\n async dataClear() {\r\n this.secilenYayinlar = [];\r\n this.KullaniciYayinYetki = [];\r\n await this.gridYayin.instance.clearSelection();\r\n await this.gridYayinSatirIptal();\r\n }\r\n\r\n async getKullanici(id) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getKullanici/\" + id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n res.data.Data = res.data.Data[0];\r\n this.formData = {\r\n Id: res.data.Data.Id,\r\n Rol_Id: res.data.Data.Rol_Id,\r\n Deleted: res.data.Data.Deleted,\r\n RowVersion: res.data.Data.RowVersion,\r\n KullaniciAdi: res.data.Data.KullaniciAdi,\r\n Sifre: res.data.Data.Sifre,\r\n Email: res.data.Data.Email,\r\n Adi: res.data.Data.Adi,\r\n Soyadi: res.data.Data.Soyadi,\r\n SmsBilgi: res.data.Data.SmsBilgi,\r\n MailBilgi: res.data.Data.MailBilgi,\r\n Tel: res.data.Data.Tel,\r\n Gsm: res.data.Data.Gsm,\r\n Resim: res.data.Data.Logo,\r\n Logo: res.data.Data.Logo,\r\n VarsayilanLogo: res.data.Data.VarsayilanLogo\r\n };\r\n resolve(\"Kullanıcı bilgileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu,Kullanıcı bilgileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async getYayinYetkileriByKullanici(kullaniciId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getYayinYetkileriByKullanici/\" + kullaniciId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n let arrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n arrayList.push(item.Yayin_Id)\r\n });\r\n this.gridYayin.instance.selectRows(arrayList);\r\n resolve(\"Yayın yetkileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu, yayın yetkileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n async duzenleClick(e) {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n await this.dataClear();\r\n this.formData = {};\r\n await this.getKullanici(satir.Id).catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n\r\n await this.rolDataSource.load().done(async () => {\r\n await this.selectBoxRol.instance().option(\"value\", this.formData.Rol_Id);\r\n });\r\n\r\n\r\n\r\n await this.getYayinYetkileriByKullanici(satir.Id).then(() => {\r\n }).catch(error => {\r\n notify(error, \"error\", 2000);\r\n });\r\n\r\n await this.popupAc();\r\n\r\n }\r\n }\r\n }\r\n\r\n async sil(satir) {\r\n service.post(sinavApi + 'kullanici/KullaniciSil/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n service.post(sinavApi + \"kullanici/KullaniciSil/\" + satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.gridMain.instance.refresh();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n\r\n async aktifYap(satir) {\r\n service.post(sinavApi + 'kullanici/AktifYap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n async pasifYap(satir) {\r\n service.post(sinavApi + 'kullanici/PasifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n onUploaded(e) {\r\n if (e.value.length > 0) {\r\n this.formData.Resim = e.value[0].name;\r\n notify(\"Logonuz yüklendi\", \"success\", 5000);\r\n }\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yeni', icon: 'add',\r\n onClick: async () => {\r\n if (Globals.service.Rol === \"Doküman\" | Globals.service.Rol === \"Rapor\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n\r\n await this.yeni();\r\n await this.dataClear();\r\n await this.popupAc();\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Düzenle', icon: 'edit',\r\n onClick: this.duzenleClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'trash',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then(async (dialogResult) => {\r\n if (dialogResult === true) {\r\n await this.sil(satir);\r\n await this.gridMainSatirIptal();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız pasif hale getirilecektir emin misiniz?</i>\", \"Pasif etme onayı\");\r\n result.then(async (dialogResult) => {\r\n if (dialogResult === true) {\r\n await this.pasifYap(satir);\r\n await this.gridMainSatirIptal();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız aktif hale getirilecektir emin misiniz?</i>\", \"Aktif etme onayı\");\r\n result.then(async (dialogResult) => {\r\n if (dialogResult === true) {\r\n await this.aktifYap(satir);\r\n await this.gridMainSatirIptal();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n onInitializedGridMain(e) {\r\n this.gridMain = e.component;\r\n }\r\n\r\n onInitializedGridYayin(e) {\r\n this.gridYayin = e.component;\r\n\r\n }\r\n\r\n\r\n\r\n onInitializedSelectBoxRol(e) {\r\n this.selectBoxRol = e.component;\r\n }\r\n\r\n onInitializedFormKullanici(e) {\r\n this.formKullanici = e.component;\r\n }\r\n\r\n onSelectionGridMainChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n onSelectionGridYayinChanged() {\r\n this.secilenYayinlar = this.gridYayin.instance.getSelectedRowsData();\r\n }\r\n\r\n async gridMainSatirIptal() {\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n async gridYayinSatirIptal() {\r\n if (this.gridYayin.instance !== null) {\r\n this.gridYayin.instance.clearSelection();\r\n this.gridYayin.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n\r\n\r\n render() {\r\n\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.kullaniciDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n enabled: true\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onInitialized={this.onInitializedGridMain}\r\n onSelectionChanged={this.onSelectionGridMainChanged}\r\n ref={(ref) => this.gridMain = ref}\r\n\r\n >\r\n <Export enabled={true} fileName={'Yayinlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" />\r\n <Column dataField={'KullaniciAdi'} caption=\"K. Adı\" />\r\n <Column dataField={'Email'} caption=\"Email\" />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n <Column dataField={'Soyadi'} caption=\"Soyadı\" />\r\n <Column dataField={'Sifre'} caption=\"Şifre\" />\r\n <Column dataField={'Gsm'} caption=\"Gsm\" visible={false} />\r\n <Column dataField={'Tel'} caption=\"Tel\" visible={false} />\r\n <Column dataField={'SmsBilgi'} caption=\"Sms Bilgi\" dataType=\"boolean\" />\r\n <Column dataField={'MailBilgi'} caption=\"Mail Bilgi\" dataType=\"boolean\" />\r\n </DataGrid>\r\n </div>\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={false} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n const validateStatus = this.formKullanici.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n\r\n\r\n\r\n this.KullaniciYayinYetki = [];\r\n\r\n this.secilenYayinlar.forEach((item, index) => {\r\n this.KullaniciYayinYetki.push(\r\n {\r\n Yayin: { Id: item.Id },\r\n Kullanici: { Id: 0 }\r\n }\r\n );\r\n });\r\n\r\n if (this.formData.Resim !== undefined) {\r\n this.formData.Logo = this.formData.Resim;\r\n }\r\n\r\n\r\n\r\n\r\n\r\n this.sinavKullanici = {\r\n Kullanici: this.formData,\r\n KullaniciYayinYetki: this.KullaniciYayinYetki\r\n };\r\n\r\n service.post(sinavApi + 'kullanici/kullaniciyayinsave',\r\n this.sinavKullanici,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n this.gridMain.instance.refresh().then(() => {\r\n this.setState({\r\n popup: false\r\n });\r\n });\r\n }\r\n else {\r\n this.sinavKullanici = {\r\n Kullanici: this.formData,\r\n KullaniciYayinYetki: this.KullaniciYayinYetki\r\n };\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormKullanici} ref={(ref) => this.formKullanici = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Kullanıcı Bilgileri\">\r\n <SimpleItem dataField={\"Email\"} isRequired={true}>\r\n <Label text=\"Email\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KullaniciAdi\"} isRequired={true}>\r\n <Label text=\"K. Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Sifre\"} isRequired={true} editorType=\"dxTextBox\">\r\n <Label text=\"Şifre\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Adi\"} isRequired={true}>\r\n <Label text=\"Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Soyadi\"} isRequired={true}>\r\n <Label text=\"Soyadı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tel\"}>\r\n <Label text=\"Telefon\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Gsm\"}>\r\n <Label text=\"Gsm\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SmsBilgi\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Sms Bilgi\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MailBilgi\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Mail Bilgi\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-grup\" colCount={3}>\r\n <SimpleItem dataField={\"Rol_Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.rolDataSource,\r\n remoteOperations: true,\r\n searchEnabled: false,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxRol,\r\n ref: (ref) => { this.selectBoxRol = ref }\r\n }} >\r\n <Label text=\"Rol\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: sinavApi + \"kullanici/LogoUpload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n name: 'myFile',\r\n onValueChanged: this.onUploaded\r\n }}>\r\n <Label text=\"Logo seçiniz\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VarsayilanLogo\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Varsayılan Logo\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Yayın Yetkileri\">\r\n <SimpleItem>\r\n <h4>Yayın Yetkileri</h4>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.yayinDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n onInitialized={this.onInitializedGridYayin}\r\n onSelectionChanged={this.onSelectionGridYayinChanged}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridYayin = ref}\r\n >\r\n\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Selection mode=\"multiple\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"onClick\" />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Yayın\" />\r\n </DataGrid>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n\r\n );\r\n }\r\n}\r\n","import * as React from \"react\";\r\n export default class RolEkranIslemleri extends React.Component {\r\n render() {\r\n return (\r\n <div>\r\n Rol Ekran İşlemleri\r\n </div>\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { sinavApi } from '../../Util';\r\nimport notify from 'devextreme/ui/notify';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport { LoadPanel as MyLoad } from 'devextreme-react/load-panel';\r\nimport Globals from '../../Globals';\r\nconst position = { of: '#kurumformpanel' };\r\nexport default class KurumAktarmaIslemleri extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n loadPanelVisible: false\r\n }\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.headers = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n }\r\n onUploaded(e) {\r\n var res = JSON.parse(e.request.response);\r\n if (!res.Result.Value.Success) {\r\n notify(\"Şablon aktarımı yapılamadı,\" + res.Result.Value.ErrorMessage, \"error\", 5000);\r\n e.component.reset();\r\n }\r\n else {\r\n notify(\"Şablon aktarımı yapıldı\", \"success\", 5000);\r\n e.component.reset();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div id=\"kurumformpanel\">\r\n <Form formData={this.formData}>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"İl ve İlçe şablonunu seçiniz(İşlem bitene kadar bekleyiniz.)\">\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: sinavApi + \"kurumaktarma/ililceSablonUpload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n accept: '*',\r\n maxFileSize: 4000000,\r\n name: 'myFile',\r\n onUploaded: this.onUploaded\r\n }}>\r\n <Label text=\"Şablon seçiniz\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Kurum aktarım şablonunu seçiniz(İşlem bitene kadar bekleyiniz.)\">\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: sinavApi + \"kurumaktarma/KurumSablonUpload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n accept: '*',\r\n maxFileSize: 4000000,\r\n name: 'myFile',\r\n onUploaded: this.onUploaded\r\n }}>\r\n <Label text=\"Şablon seçiniz\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n\r\n </Form>\r\n </div>\r\n <MyLoad\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n position={position}\r\n visible={this.state.loadPanelVisible}\r\n showIndicator={true}\r\n shading={true}\r\n showPane={true}\r\n closeOnOutsideClick={false}\r\n />\r\n </React.Fragment>\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { sinavApi, errorMessage, errorMessageWithKonum } from '../../Util';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { alert } from 'devextreme/ui/dialog';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport Globals from '../../Globals';\r\nimport service from 'axios';\r\nimport Toolbar, { Item } from 'devextreme-react/toolbar';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nexport default class ExcelKullaniciAktar extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n yayinlar: [],\r\n roller: [],\r\n kullanicilar: [],\r\n secilenKullanici: null,\r\n secilenYayin: null,\r\n secilenRol: null,\r\n DosyaAdi: \"\",\r\n yayinMesaj: \"Yayınlar yükleniyor...\",\r\n rolMesaj: \"Roller yükleniyor...\",\r\n kullaniciMesaj: \"\",\r\n toolbarDisabled: false,\r\n loadingText: \"\"\r\n }\r\n this.formData = {\r\n YayinId: 0,\r\n RolId: 0,\r\n KullaniciId: 0,\r\n DosyaAdi: \"\"\r\n }\r\n this.onUploaded = this.onUploaded.bind(this);\r\n\r\n this.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n this.saveButtonOptions = {\r\n text: 'Aktarma İşlemini Başlat',\r\n icon: 'check',\r\n hint: 'Aktarma İşlemini Başlat',\r\n type: \"success\",\r\n disabled: this.state.toolbarDisabled,\r\n onClick: () => {\r\n\r\n this.setState({\r\n loadingText: \"Kullanıcı aktarma işlemi başladı...\",\r\n toolbarDisabled: true\r\n })\r\n this.formData.DosyaAdi = this.state.DosyaAdi;\r\n service.post(sinavApi + 'admin/kullaniciExcekAktar', this.formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n alert(res.data.Data);\r\n this.setState({\r\n loadingText: \"Kullanıcı aktarma işlemi başladı...\",\r\n toolbarDisabled: true\r\n });\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n this.setState({\r\n loadingText: \"\",\r\n toolbarDisabled: false\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n // Error 😨\r\n\r\n this.setState({\r\n loadingText: \"\",\r\n toolbarDisabled: false\r\n });\r\n alert(errorMessage(error));\r\n });\r\n }\r\n };\r\n this.refreshData();\r\n this.yayinDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'yayin/sistemyayinlari',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n\r\n onUploaded(e) {\r\n var res = JSON.parse(e.request.response);\r\n if (!res.Success) {\r\n notify(\"Şablon dosyası yüklenemedi,\" + res.ErrorMessage, \"error\", 5000);\r\n e.component.reset();\r\n }\r\n else {\r\n this.setState({ DosyaAdi: res.Data });\r\n this.formData.DosyaAdi = this.state.DosyaAdi;\r\n\r\n notify(\"Şablon dosyası yüklendi\", \"success\", 5000);\r\n e.component.reset();\r\n }\r\n }\r\n\r\n async refreshData() {\r\n let isError = false;\r\n let hataMesajlari = \"\";\r\n // await this.getYayinlar().then(res => { }).catch(error => {\r\n // isError = true;\r\n // hataMesajlari += error + \"<br/>\";\r\n // });\r\n\r\n await this.getRoller().then(res => { }).catch(error => {\r\n isError = true;\r\n hataMesajlari += error + \"<br/>\";\r\n });\r\n if (isError)\r\n alert(hataMesajlari);\r\n\r\n this.setState({ toolbarDisabled: false })\r\n\r\n }\r\n\r\n async getRoller() {\r\n return new Promise((resolve, reject) => {\r\n this.setState({\r\n rolMesaj: \"Roller yükleniyor...\",\r\n loadingText: \"Roller yükleniyor...\"\r\n });\r\n service.get(sinavApi + 'admin/getRoller', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n roller: res.data.Data,\r\n rolMesaj: \"Seçiniz\",\r\n loadingText: \"\"\r\n });\r\n resolve(\"Rol bilgileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n this.setState({\r\n rolMesaj: res.data.ErrorMessage,\r\n loadingText: \"\"\r\n });\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n this.setState({ rolMesaj: \"Rol bilgileri getirilemedi\", loadingText: \"\" });\r\n reject(errorMessageWithKonum(error, \"rol bilgileri\"));\r\n });\r\n });\r\n }\r\n\r\n async getKullanicilar() {\r\n return new Promise((resolve, reject) => {\r\n this.setState({\r\n kullaniciMesaj: \"Kullanıcılar yükleniyor...\",\r\n loadingText: \"kullanıcılar yükleniyor...\"\r\n });\r\n service.get(sinavApi + 'admin/getKullanicilarByYayinRol/' + this.state.secilenRol + \"/\" + this.state.secilenYayin, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n kullanicilar: res.data.Data,\r\n kullaniciMesaj: \"Seçiniz\",\r\n loadingText: \"\"\r\n });\r\n resolve(\"Kullanıcı bilgileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n this.setState({\r\n rolMesaj: res.data.ErrorMessage,\r\n loadingText: \"\"\r\n });\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n this.setState({ rolMesaj: \"Kullanıcı bilgileri getirilemedi\", loadingText: \"\" });\r\n reject(errorMessageWithKonum(error, \"kullanıcı bilgileri\"));\r\n });\r\n });\r\n }\r\n\r\n // async getYayinlar() {\r\n // return new Promise((resolve, reject) => {\r\n // this.setState({\r\n // loadingText: \"Yayınlar yükleniyor...\",\r\n // });\r\n // service.get(sinavApi + \"yayin/sistemyayinlari\",\r\n // {\r\n // headers: {\r\n // 'Authorization': 'Bearer ' + Globals.service.Token\r\n // }\r\n // })\r\n // .then(res => {\r\n // if (res.data.Success) {\r\n // this.setState({\r\n // yayinlar: res.data.Data,\r\n // yayinMesaj: \"Seçiniz\",\r\n // loadingText: \"\"\r\n // });\r\n // resolve(\"Yayın bilgileri getirildi.\");\r\n // }\r\n // else {\r\n // this.setState({ yayinMesaj: res.data.ErrorMessage, loadingText: \"\" });\r\n // reject(res.data.ErrorMessage);\r\n // }\r\n // }).catch(error => {\r\n // this.setState({ yayinMesaj: \"yayın bilgileri getirilemedi\", loadingText: \"\" });\r\n // reject(errorMessageWithKonum(error, \"yayın bilgileri\"));\r\n // });\r\n // })\r\n // }\r\n\r\n render() {\r\n return (<React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n {this.state.loadingText}\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData}>\r\n <GroupItem cssClass=\"first-group\" colCount={2}>\r\n <SimpleItem dataField={\"YayinId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n showClearButton: true,\r\n valueExpr: \"Id\",\r\n onValueChanged: (e) => {\r\n this.setState({\r\n secilenYayin: e.value\r\n });\r\n }\r\n }}>\r\n <Label text=\"Yayın Seçiniz\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"RolId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.state.roller,\r\n searchEnabled: true,\r\n placeHolder: this.state.rolMesaji,\r\n value: this.state.secilenRol,\r\n displayExpr: \"Adi\",\r\n showClearButton: true,\r\n valueExpr: \"Id\",\r\n onValueChanged: (e) => {\r\n this.setState({\r\n secilenRol: e.value\r\n });\r\n this.getKullanicilar(this.state.secilenRol, this.state.secilenYayin).then(res => {\r\n })\r\n .catch(error => {\r\n alert(error);\r\n });\r\n }\r\n }}>\r\n <Label text=\"Rol Seçiniz\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KullaniciId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.state.kullanicilar,\r\n searchEnabled: true,\r\n placeHolder: this.state.kullaniciMesaj,\r\n value: this.state.secilenKullanici,\r\n displayExpr: \"Adi\",\r\n showClearButton: true,\r\n valueExpr: \"Id\",\r\n onValueChanged: (e) => {\r\n this.setState({\r\n secilenKullanici: e.value\r\n });\r\n\r\n }\r\n }}>\r\n <Label text=\"Kullanıcı Seçiniz\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Kullanıcı aktarım şablonunu seçiniz(İşlem bitene kadar bekleyiniz.)\">\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: sinavApi + \"admin/kullaniciAktarSablonUpload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n accept: '*',\r\n maxFileSize: 4000000,\r\n name: 'myFile',\r\n onUploaded: this.onUploaded\r\n }}>\r\n <Label text=\"Şablon seçiniz\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n\r\n <Toolbar>\r\n <Item location=\"after\"\r\n widget=\"dxButton\"\r\n options={this.saveButtonOptions} />\r\n </Toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>);\r\n\r\n }\r\n}","import * as React from \"react\";\r\nimport { sinavApi, otomasyonApi } from '../../Util';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { alert } from 'devextreme/ui/dialog';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport Globals from '../../Globals';\r\nimport service from 'axios';\r\nimport Toolbar, { Item } from 'devextreme-react/toolbar';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\n\r\n\r\n\r\n\r\nexport default class ExcelKullaniciAktar extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.formData = {\r\n KurumId: 0,\r\n DosyaAdi: \"\",\r\n IsVeliKullaniciAc: false\r\n }\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n this.saveButtonOptions = {\r\n text: 'Aktarma İşlemini Başlat',\r\n icon: 'check',\r\n hint: 'Aktarma İşlemini Başlat',\r\n type: \"success\",\r\n onClick: () => {\r\n service.post(otomasyonApi + 'KayitKabul/ExcelKullaniciAktar', this.formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n alert(res.data.Data, \"Bilgi\");\r\n }\r\n else\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n })\r\n .catch((error) => {\r\n // Error 😨\r\n notify(\"Teknik bir hata oluştu.formu göndermeden tüm alanları doldurduğunuza emin olunuz,\" + error, 'error', 5000);\r\n });\r\n }\r\n };\r\n this.kurumDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n paginate: true,\r\n pageSize: 10,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kurum/kurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n\r\n onUploaded(e) {\r\n var res = JSON.parse(e.request.response);\r\n if (!res.Success) {\r\n notify(\"Şablon dosyası yüklenemedi,\" + res.ErrorMessage, \"error\", 5000);\r\n e.component.reset();\r\n }\r\n else {\r\n this.formData.DosyaAdi = res.Data;\r\n notify(\"Şablon dosyası yüklendi\", \"success\", 5000);\r\n e.component.reset();\r\n }\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Excel Kullanıcı Aktar\"}</h4>\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"10px\" }}>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <a href=\"/sablonlar/KepsOgrenciYukleSablon.xlsx\" target=\"_blank\">Örnek şablonu bilgisayarınıza indirmek için tıklayınız.</a><br></br>\r\n İndirdiğiniz şablon dosyasında \"Sınıf Seviyesi ve Bölüm Adları\" sayfasında gerekli açıklamaları lütfen okuyunuz\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"10px\" }}>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n\r\n <Form formData={this.formData}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem dataField={\"IsVeliKullaniciAc\"}\r\n editorType=\"dxCheckBox\">\r\n <Label text=\"Velilere Kullanıcı Açma\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KurumId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.kurumDataSource,\r\n remoteOperations: true,\r\n searchEnabled: true,\r\n displayExpr: \"KurumAdi\",\r\n showClearButton: true,\r\n valueExpr: \"Id\"\r\n }}>\r\n <Label text=\"Kurum Seçiniz\" />\r\n </SimpleItem>\r\n\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Öğrenci-Veli aktarım şablonunu seçiniz(İşlem bitene kadar bekleyiniz.)\">\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: otomasyonApi + \"kayitkabul/excelkullaniciaktarsablonupload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n accept: '*',\r\n maxFileSize: 4000000,\r\n name: 'myFile',\r\n onUploaded: this.onUploaded\r\n }}>\r\n <Label text=\"Şablon seçiniz\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n <Toolbar>\r\n <Item location=\"after\"\r\n widget=\"dxButton\"\r\n options={this.saveButtonOptions} />\r\n </Toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { authApi, sinavApi } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Selection, Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel, RequiredRule\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nexport default class OtomasyonKullanicilari extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popup: false,\r\n kullaniciAktarVisible: false\r\n };\r\n this.formKullaniciAktar = null;\r\n this.gridYayin = null;\r\n this.gridMain = null;\r\n this.gridKurum = null;\r\n this.gridMerkezKullaniciYetki = null;\r\n this.formKullanici = null;\r\n this.selectBoxRol = null;\r\n this.satir = null;\r\n this.yayinlar = [];\r\n this.kurumlar = [];\r\n this.formData = {\r\n }\r\n this.sinavKullanici = {};\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionGridMainChanged = this.onSelectionGridMainChanged.bind(this);\r\n this.onSelectionGridYayinChanged = this.onSelectionGridYayinChanged.bind(this);\r\n this.onSelectionGridKurumChanged = this.onSelectionGridKurumChanged.bind(this);\r\n this.onInitializedGridMain = this.onInitializedGridMain.bind(this);\r\n this.onInitializedGridKurum = this.onInitializedGridKurum.bind(this);\r\n this.onInitializedGridYayin = this.onInitializedGridYayin.bind(this);\r\n this.onInitializedSelectBoxRol = this.onInitializedSelectBoxRol.bind(this);\r\n this.onInitializedFormKullanici = this.onInitializedFormKullanici.bind(this);\r\n this.onInitializedFormKullaniciAktar = this.onInitializedFormKullaniciAktar.bind(this);\r\n this.duzenleClick = this.duzenleClick.bind(this);\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.popupGizle = () => {\r\n this.setState({ popup: false });\r\n };\r\n this.headers = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n this.arrayList = null;\r\n this.flag = false;\r\n this.secilenYayinlar = [];\r\n this.secilenKurumlar = [];\r\n this.KullaniciYayinYetki = [];\r\n this.MerkeziKurumYetki = [];\r\n this.secilenKullanicilar = [];\r\n this.formKullaniciAktarData = {\r\n Kullanicilar: [],\r\n toolBarDisabled: false,\r\n GecmisDonemId: Globals.service.DonemId,\r\n DonemId: null,\r\n OgrenciNoAktar: false\r\n };\r\n\r\n this.donemDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: authApi + 'auth/getdonemler',\r\n })\r\n });\r\n\r\n this.kullaniciDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n paginate: true,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kullanici/getKullanicilar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.rolDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n filter: [[\"Adi\", \"=\", \"GenelMerkez\"], \"or\", [\"Adi\", \"=\", \"AdminOtomasyon\"]],\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'rol/roller',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'yayin/sistemyayinlari',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.kurumDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n loadMode: \"processed\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kurum/kurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.popupKullaniciAktarGizle = () => {\r\n this.setState({\r\n kullaniciAktarVisible: false\r\n });\r\n }\r\n }\r\n\r\n async popupAc() {\r\n return new Promise(resolve => {\r\n this.setState({\r\n popup: true\r\n });\r\n resolve(true);\r\n });\r\n }\r\n\r\n async yeni() {\r\n this.formData = {\r\n Id: 0,\r\n Rol_Id: null,\r\n Deleted: false,\r\n RowVersion: 0,\r\n KullaniciAdi: null,\r\n Sifre: null,\r\n Email: null,\r\n Adi: null,\r\n Soyadi: null,\r\n SmsBilgi: false,\r\n MailBilgi: false,\r\n Tel: null,\r\n Gsm: null,\r\n Resim: null,\r\n Donem_Id: 0\r\n };\r\n }\r\n\r\n async dataClear() {\r\n this.secilenYayinlar = [];\r\n this.secilenKurumlar = [];\r\n this.KullaniciYayinYetki = [];\r\n this.MerkeziKurumYetki = [];\r\n await this.gridYayin.instance.clearSelection();\r\n await this.gridYayinSatirIptal();\r\n await this.gridKurum.instance.clearSelection();\r\n await this.gridKurumSatirIptal();\r\n }\r\n\r\n async getKullanici(id) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getKullanici/\" + id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n res.data.Data = res.data.Data[0];\r\n this.formData = {\r\n Id: res.data.Data.Id,\r\n Rol_Id: res.data.Data.Rol_Id,\r\n Deleted: res.data.Data.Deleted,\r\n RowVersion: res.data.Data.RowVersion,\r\n KullaniciAdi: res.data.Data.KullaniciAdi,\r\n Sifre: res.data.Data.Sifre,\r\n Email: res.data.Data.Email,\r\n Adi: res.data.Data.Adi,\r\n Soyadi: res.data.Data.Soyadi,\r\n SmsBilgi: res.data.Data.SmsBilgi,\r\n MailBilgi: res.data.Data.MailBilgi,\r\n Tel: res.data.Data.Tel,\r\n Gsm: res.data.Data.Gsm,\r\n Resim: res.data.Data.Logo,\r\n Logo: res.data.Data.Logo,\r\n VarsayilanLogo: res.data.Data.VarsayilanLogo,\r\n Donem_Id: res.data.Data.Donem_Id\r\n };\r\n resolve(\"Kullanıcı bilgileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu,Kullanıcı bilgileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async getYayinYetkileriByKullanici(kullaniciId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getYayinYetkileriByKullanici/\" + kullaniciId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n let arrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n arrayList.push(item.Yayin_Id)\r\n });\r\n this.gridYayin.instance.selectRows(arrayList);\r\n resolve(\"Yayın yetkileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu, yayın yetkileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async getMerkezKurumYetkileriByKullanici(kullaniciId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getMerkezKurumYetkileriByKullanici/\" + kullaniciId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n var arrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n arrayList.push(item.Kurum.Id)\r\n });\r\n this.gridKurum.instance.selectRows(arrayList);\r\n this.gridKurum.instance.refresh();\r\n resolve(\"Kurum yetkileri verildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu, kurum bilgileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async duzenleClick(e) {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n await this.dataClear();\r\n this.formData = {};\r\n await this.getKullanici(satir.Id).catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n\r\n await this.rolDataSource.load().done(async () => {\r\n await this.getMerkezKurumYetkileriByKullanici(satir.Id).then(() => {\r\n\r\n }).catch(error => {\r\n notify(error, \"error\", 2000);\r\n });\r\n });\r\n await this.getYayinYetkileriByKullanici(satir.Id).then(() => {\r\n }).catch(error => {\r\n notify(error, \"error\", 2000);\r\n });\r\n\r\n await this.popupAc();\r\n\r\n }\r\n }\r\n }\r\n\r\n async sil(satir) {\r\n service.post(sinavApi + 'kullanici/KullaniciSil/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n service.post(sinavApi + \"kullanici/KullaniciSil/\" + satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n\r\n async aktifYap(satir) {\r\n service.post(sinavApi + 'kullanici/AktifYap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n async pasifYap(satir) {\r\n service.post(sinavApi + 'kullanici/PasifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n onUploaded(e) {\r\n if (e.value.length > 0) {\r\n this.formData.Resim = e.value[0].name;\r\n notify(\"Logonuz yüklendi\", \"success\", 5000);\r\n }\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"importselected\",\r\n type: \"success\",\r\n onClick: async () => {\r\n this.donemDataSource.filter([\"Id\", \"<>\", Globals.service.DonemId]);\r\n await this.donemDataSource.load();\r\n this.setState({\r\n kullaniciAktarVisible: true\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yeni', icon: 'add',\r\n onClick: async () => {\r\n if (Globals.service.Rol === \"Doküman\" | Globals.service.Rol === \"Rapor\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n\r\n await this.yeni();\r\n await this.dataClear();\r\n await this.popupAc();\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Düzenle', icon: 'edit',\r\n onClick: this.duzenleClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'trash',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.sil(satir);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız pasif hale getirilecektir emin misiniz?</i>\", \"Pasif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.pasifYap(satir);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız aktif hale getirilecektir emin misiniz?</i>\", \"Aktif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.aktifYap(satir);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSelectionGridKurumChanged() {\r\n this.secilenKurumlar = this.gridKurum.instance.getSelectedRowsData();\r\n }\r\n\r\n onInitializedFormKullaniciAktar(e) {\r\n this.formKullaniciAktar = e.component;\r\n }\r\n\r\n\r\n onInitializedGridMain(e) {\r\n this.gridMain = e.component;\r\n }\r\n\r\n onInitializedGridYayin(e) {\r\n this.gridYayin = e.component;\r\n\r\n }\r\n\r\n onInitializedGridKurum(e) {\r\n this.gridKurum = e.component;\r\n }\r\n\r\n onInitializedSelectBoxRol(e) {\r\n this.selectBoxRol = e.component;\r\n }\r\n\r\n onInitializedFormKullanici(e) {\r\n this.formKullanici = e.component;\r\n }\r\n\r\n onSelectionGridMainChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n onSelectionGridYayinChanged() {\r\n this.secilenYayinlar = this.gridYayin.instance.getSelectedRowsData();\r\n }\r\n\r\n async gridMainSatirIptal() {\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n async gridYayinSatirIptal() {\r\n if (this.gridYayin.instance !== null) {\r\n this.gridYayin.instance.clearSelection();\r\n this.gridYayin.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n\r\n\r\n async gridKurumSatirIptal() {\r\n if (this.gridKurum.instance !== null) {\r\n this.gridKurum.instance.clearSelection();\r\n this.gridKurum.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n <React.Fragment>\r\n\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.kullaniciDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'multiple' }}\r\n showCheckBoxesMode={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n enabled: true\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onInitialized={this.onInitializedGridMain}\r\n onFocusedRowChanged={(e) => {\r\n this.satirIndex = e.rowIndex;\r\n var rowData = e.row && e.row.data;\r\n if (rowData) {\r\n this.satir = rowData;\r\n }\r\n }}\r\n onSelectedRowKeysChange={(e) => {\r\n this.secilenKullanicilar = [];\r\n if (e.length > 0) {\r\n e.forEach((satir) => {\r\n this.secilenKullanicilar.push({\r\n KullaniciId: satir\r\n });\r\n });\r\n }\r\n }}\r\n ref={(ref) => this.gridMain = ref}\r\n\r\n >\r\n <Export enabled={true} fileName={'Yayinlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" />\r\n <Column dataField={'DonemAdi'} caption=\"Dönem\" />\r\n <Column dataField={'KullaniciAdi'} caption=\"K. Adı\" />\r\n <Column dataField={'Email'} caption=\"Email\" />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n <Column dataField={'Soyadi'} caption=\"Soyadı\" />\r\n <Column dataField={'Sifre'} caption=\"Şifre\" />\r\n <Column dataField={'Gsm'} caption=\"Gsm\" visible={false} />\r\n <Column dataField={'Tel'} caption=\"Tel\" visible={false} />\r\n <Column dataField={'SmsBilgi'} caption=\"Sms Bilgi\" dataType=\"boolean\" />\r\n <Column dataField={'MailBilgi'} caption=\"Mail Bilgi\" dataType=\"boolean\" />\r\n </DataGrid>\r\n </div>\r\n </div>\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n title=\"Otomasyon Kullanıcıları\" width={\"100%\"} height={\"100%\"}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n const validateStatus = this.formKullanici.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n alert(this.formData.Donem_Id);\r\n this.MerkeziKurumYetki = [];\r\n this.KullaniciYayinYetki = [];\r\n this.secilenYayinlar.forEach((item, index) => {\r\n this.KullaniciYayinYetki.push(\r\n {\r\n Yayin: { Id: item.Id },\r\n Kullanici: { Id: 0 }\r\n }\r\n );\r\n });\r\n\r\n if (this.formData.Resim !== undefined) {\r\n this.formData.Logo = this.formData.Resim;\r\n }\r\n\r\n this.MerkeziKurumYetki = [];\r\n this.secilenKurumlar.forEach((item, index) => {\r\n this.MerkeziKurumYetki.push({\r\n Kurum: { Id: item.Id }\r\n });\r\n });\r\n\r\n this.sinavKullanici = {\r\n Kullanici: this.formData,\r\n KullaniciYayinYetki: this.KullaniciYayinYetki,\r\n MerkeziKurumYetki: this.MerkeziKurumYetki\r\n };\r\n\r\n service.post(sinavApi + 'kullanici/otomasyonkullanicisave',\r\n this.sinavKullanici,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n this.gridMain.instance.refresh().then(() => {\r\n this.setState({\r\n popup: false\r\n });\r\n });\r\n }\r\n else {\r\n this.sinavKullanici = {\r\n Kullanici: this.formData,\r\n KullaniciYayinYetki: this.KullaniciYayinYetki,\r\n MerkeziKurumYetki: this.MerkeziKurumYetki\r\n };\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'KApat', icon: 'close'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormKullanici} ref={(ref) => this.formKullanici = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Kullanıcı Bilgileri\">\r\n <SimpleItem dataField={\"Email\"} isRequired={true}>\r\n <Label text=\"Email\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KullaniciAdi\"} isRequired={true}>\r\n <Label text=\"K. Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Sifre\"} isRequired={true} editorType=\"dxTextBox\">\r\n <Label text=\"Şifre\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Adi\"} isRequired={true}>\r\n <Label text=\"Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Soyadi\"} isRequired={true}>\r\n <Label text=\"Soyadı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tel\"}>\r\n <Label text=\"Telefon\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Gsm\"}>\r\n <Label text=\"Gsm\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SmsBilgi\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Sms Bilgi\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MailBilgi\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Mail Bilgi\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-grup\" colCount={3}>\r\n <SimpleItem dataField={\"Rol_Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.rolDataSource,\r\n remoteOperations: true,\r\n searchEnabled: false,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxRol,\r\n ref: (ref) => { this.selectBoxRol = ref }\r\n }} >\r\n <Label text=\"Rol\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: sinavApi + \"kullanici/LogoUpload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n name: 'myFile',\r\n onValueChanged: this.onUploaded\r\n }}>\r\n <Label text=\"Logo seçiniz\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VarsayilanLogo\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Varsayılan Logo\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Yetkiler\">\r\n <SimpleItem>\r\n <h4>Yayın Yetkileri</h4>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.yayinDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n onInitialized={this.onInitializedGridYayin}\r\n onSelectionChanged={this.onSelectionGridYayinChanged}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridYayin = ref}\r\n >\r\n\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Selection mode=\"multiple\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"onClick\" />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Yayın\" />\r\n </DataGrid>\r\n </SimpleItem>\r\n <SimpleItem>\r\n <h4>Kurum Yetkileri</h4>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.kurumDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={false}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={false}\r\n onSelectionChanged={this.onSelectionGridKurumChanged}\r\n onInitialized={this.onInitializedGridKurum}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridKurum = ref}\r\n >\r\n\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Selection mode=\"multiple\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"onClick\" />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'ilAdi'} caption=\"İl\" />\r\n <Column dataField={'ilceAdi'} caption=\"İlçe\" />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" dataType=\"string\" />\r\n </DataGrid>\r\n </SimpleItem>\r\n\r\n </GroupItem>\r\n\r\n\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"50%\"}\r\n visible={this.state.kullaniciAktarVisible}\r\n title={\"Kullanıcı Aktarma İşlemi\"}\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kullanıcı Aktar',\r\n type: 'success',\r\n hint: 'Kullanıcı Aktar',\r\n icon: 'check',\r\n disabled: this.state.toolBarDisabled,\r\n onClick: async (e) => {\r\n this.formKullaniciAktarData.Kullanicilar = this.secilenKullanicilar;\r\n this.setState({\r\n toolBarDisabled: true\r\n });\r\n service.post(sinavApi + \"kullanici/secilenkullanicilaridigerdonemeaktar\", this.formKullaniciAktarData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n await this.setState({\r\n toolBarDisabled: false\r\n });\r\n await this.popupKullaniciAktarGizle();\r\n notify(\"Aktarım işleminiz gerçekleşti\", \"success\", 5000);\r\n } else {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.popupKullaniciAktarGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form colCount={1} formData={this.formKullaniciAktarData} onInitialized={this.onInitializedFormKullaniciAktar} ref={(ref) => this.formKullaniciAktar = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem dataField=\"DonemId\" editorType=\"dxSelectBox\" editorOptions={{\r\n dataSource: this.donemDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }}>\r\n <Label text=\"Dönem Seçiniz\" />\r\n <RequiredRule message=\"Dönem alanı zorunludur\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form><br></br>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n\r\n );\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { otomasyonApi, GetStore } from '../../Util';\r\nimport DataGrid, {\r\n Export, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel\r\n} from 'devextreme-react/data-grid';\r\nimport Tabs from 'devextreme-react/tabs';\r\nexport default class OtomasyonGenelTanimlar extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n tabSelectedIndex: 0\r\n };\r\n this.renderDetay = this.renderDetay.bind(this);\r\n this.renderTabDetay = this.renderTabDetay.bind(this);\r\n this.tabsSelectionChanged = this.tabsSelectionChanged.bind(this);\r\n\r\n this.tabs = [\"Meslekler\", \"Yakınlık\", \"Bölümler\", \"Sınıf Seviyeleri\", \"Eğitim Türleri\"];\r\n\r\n this.meslekDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonMeslek\"\r\n , otomasyonApi + \"geneltanim/listmeslek\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.yakinlikDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonYakinlik\"\r\n , otomasyonApi + \"geneltanim/listyakinlik\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.bolumDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonBolum\"\r\n , otomasyonApi + \"geneltanim/listbolum\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.sinifSeviyeDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonSinifSeviye\"\r\n , otomasyonApi + \"geneltanim/listsinifseviye\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.egitimTuruDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonEgitimTuru\"\r\n , otomasyonApi + \"geneltanim/listegitimturu\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n }\r\n\r\n tabsSelectionChanged(args) {\r\n if (args.name === 'selectedIndex') {\r\n this.setState({\r\n tabSelectedIndex: parseInt(args.value)\r\n });\r\n }\r\n }\r\n\r\n renderDetay() {\r\n return (\r\n <React.Fragment>\r\n <Tabs selectedIndex={this.state.tabSelectedIndex} dataSource={this.tabs} onOptionChanged={this.tabsSelectionChanged} />\r\n {this.renderTabDetay(this.state.tabSelectedIndex)}\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n renderTabDetay(tabIndex) {\r\n if (tabIndex === 0) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n showRowLines={true}\r\n dataSource={this.meslekDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n >\r\n <Export enabled={true} fileName={'Meslekler'} allowExportSelectedData={false} />\r\n <Editing mode={'row'} allowAdding={true} allowDeleting={true} allowUpdating={true} useIcons={true} />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n </DataGrid>\r\n </div>\r\n );\r\n }\r\n else if (tabIndex === 1) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.yakinlikDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n >\r\n <Export enabled={true} fileName={'Yakınlıklar'} allowExportSelectedData={false} />\r\n <Editing mode={'row'} allowAdding={true} allowDeleting={true} allowUpdating={true} useIcons={true} />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n </DataGrid>\r\n </div>\r\n );\r\n }\r\n else if (tabIndex === 2) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.bolumDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n >\r\n <Export enabled={true} fileName={'Bolumler'} allowExportSelectedData={false} />\r\n <Editing mode={'row'} allowAdding={true} allowDeleting={true} allowUpdating={true} useIcons={true} />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n <Column dataField={'Sira'} caption=\"Sıra\" />\r\n </DataGrid>\r\n </div>\r\n )\r\n }\r\n else if (tabIndex === 3) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.sinifSeviyeDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n >\r\n <Export enabled={true} fileName={'Sinifseviyeleri'} allowExportSelectedData={false} />\r\n <Editing mode={'row'} allowAdding={true} allowDeleting={true} allowUpdating={true} useIcons={true} />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n <Column dataField={'Sira'} caption=\"Sıra\" />\r\n </DataGrid>\r\n </div>\r\n )\r\n }\r\n else if (tabIndex === 4) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.egitimTuruDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n >\r\n <Export enabled={true} fileName={'Egitimturleri'} allowExportSelectedData={false} />\r\n <Editing mode={'row'} allowAdding={true} allowDeleting={true} allowUpdating={true} useIcons={true} />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n </DataGrid>\r\n </div>\r\n )\r\n }\r\n\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\" style={{ padding: \"10px 10px 10px 10px\" }}>\r\n {this.renderDetay()}\r\n </div>\r\n </div>\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { otomasyonApi, sinavApi, GetStore } from '../../Util';\r\nimport DataGrid, {\r\n Export, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, RequiredRule\r\n} from 'devextreme-react/data-grid';\r\nimport Tabs from 'devextreme-react/tabs';\r\nimport 'devextreme/data/odata/store';\r\nimport notify from 'devextreme/ui/notify';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport Globals from '../../Globals';\r\nexport default class GenelTanimlar extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n tabSelectedIndex: 0\r\n };\r\n this.gridOtomasyonKurum = null;\r\n this.gridServis = null;\r\n this.gridGider = null;\r\n this.gridBanka = null;\r\n this.gridYurt = null;\r\n this.gridSinifSube = null;\r\n this.gridGrup = null;\r\n this.gridBrans = null;\r\n this.gridUcret = null;\r\n this.gridIndirim = null;\r\n this.branslar = [];\r\n this.kurumFilter = { kurumId: 0 };\r\n this.onInitializedGridServis = this.onInitializedGridServis.bind(this);\r\n this.onInitializedGridYurt = this.onInitializedGridYurt.bind(this);\r\n this.onInitializedGridSinifSube = this.onInitializedGridSinifSube.bind(this);\r\n this.onInitializedGridGrup = this.onInitializedGridGrup.bind(this);\r\n this.onInitializedGridGider = this.onInitializedGridGider.bind(this);\r\n this.onInitializedGridBrans = this.onInitializedGridBrans.bind(this);\r\n this.onInitializedGridUcret = this.onInitializedGridUcret.bind(this);\r\n this.onInitializedGridIndirim = this.onInitializedGridIndirim.bind(this);\r\n this.onInitializedGridOtomasyonKurum = this.onInitializedGridOtomasyonKurum.bind(this);\r\n this.onInitializedGridBanka = this.onInitializedGridBanka.bind(this);\r\n this.renderDetay = this.renderDetay.bind(this);\r\n this.renderTabDetay = this.renderTabDetay.bind(this);\r\n this.tabsSelectionChanged = this.tabsSelectionChanged.bind(this);\r\n this.tabs = [\"Servis Tnm.\", \"Yurt Tnm.\", \"Sınıf Şube Tnm.\", \"Grup Tnm.\", \"Branş Tnm.\", \"Ücret Tnm.\", \"İndirim Tnm..\", \"Şirket Tnm.\", \"Gider Tnm.\", \"Banka Tnm.\"];\r\n this.servisDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonServis\"\r\n , otomasyonApi + \"geneltanim/listservisbykullanici\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.yurtDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonYurt\"\r\n , otomasyonApi + \"geneltanim/listyurtbykullanici\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.sinifSubeDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonSinifSube\"\r\n , otomasyonApi + \"geneltanim/listsinifsubebykullanici\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.grupDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonGrup\"\r\n , otomasyonApi + \"geneltanim/listgrupbykullanici\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.bransDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonBrans\"\r\n , otomasyonApi + \"geneltanim/listbransbykullanici\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.ucretDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonUcretTanim\"\r\n , otomasyonApi + \"geneltanim/listucretbykullanici\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.indirimDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonIndirimTanim\"\r\n , otomasyonApi + \"geneltanim/listindirimbykullanici\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.otomasyonKurumDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonKurum\"\r\n , otomasyonApi + \"geneltanim/listotomasyonkurumbykullanici\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.sinifSeviyeDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonSinifSeviye\"\r\n , otomasyonApi + \"geneltanim/listsinifseviye\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.giderDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonGiderTanim\"\r\n , otomasyonApi + \"geneltanim/listgidertanimbykullanici\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n\r\n this.bankaDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonBankaTanim\"\r\n , otomasyonApi + \"geneltanim/listbankatanimbykullanici\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n }\r\n\r\n\r\n onInitializedGridServis(e) {\r\n this.gridServis = e.component;\r\n }\r\n\r\n onInitializedGridBrans(e) {\r\n this.gridBrans = e.component;\r\n }\r\n\r\n onInitializedGridGrup(e) {\r\n this.gridGrup = e.component;\r\n }\r\n\r\n onInitializedGridGider(e) {\r\n this.gridGider = e.component;\r\n }\r\n\r\n onInitializedGridBanka(e) {\r\n this.gridBanka = e.component;\r\n }\r\n\r\n\r\n onInitializedGridIndirim(e) {\r\n this.gridIndirim = e.component;\r\n }\r\n\r\n onInitializedGridUcret(e) {\r\n this.gridUcret = e.component;\r\n }\r\n\r\n onInitializedGridYurt(e) {\r\n this.gridYurt = e.component;\r\n }\r\n\r\n onInitializedGridSinifSube(e) {\r\n this.gridSinifSube = e.component;\r\n }\r\n\r\n onInitializedGridOtomasyonKurum(e) {\r\n this.gridOtomasyonKurum = e.component;\r\n }\r\n\r\n tabsSelectionChanged(args) {\r\n if (args.name === 'selectedIndex') {\r\n this.setState({\r\n tabSelectedIndex: parseInt(args.value)\r\n });\r\n }\r\n }\r\n\r\n renderDetay() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Tabs selectedIndex={this.state.tabSelectedIndex} dataSource={this.tabs} onOptionChanged={this.tabsSelectionChanged} />\r\n {this.renderTabDetay(this.state.tabSelectedIndex)}\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n renderTabDetay(tabIndex) {\r\n if (tabIndex === 0) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n showRowLines={true}\r\n dataSource={this.servisDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onInitialized={this.onInitializedGridServis}\r\n ref={(ref) => this.gridServis = ref}\r\n >\r\n <Export enabled={true} fileName={'Servisler'} allowExportSelectedData={false} />\r\n <Editing\r\n allowAdding={true}\r\n allowDeleting={true}\r\n allowUpdating={true}\r\n useIcons={true}\r\n mode={'popup'}\r\n texts={{\r\n confirmDeleteMessage: \"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/></i>\",\r\n confirmDeleteTitle: \"Silme Onay\"\r\n }}\r\n popup={{\r\n title: \"Servis Bilgileri\",\r\n showTitle: true,\r\n width: \"80%\",\r\n height: \"80%\",\r\n shading: true,\r\n dragEnabled: true,\r\n showCloseButton: false,\r\n ref: (ref) => { this.popupForm = ref },\r\n close_ClickOnOutsideClick: false,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: window\r\n },\r\n toolbarItems: [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check',\r\n onClick: async () => {\r\n await this.gridServis.instance.saveEditData().catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n // await this.gridMainSatirIptal();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'remove',\r\n onClick: () => {\r\n this.gridServis.instance.cancelEditData();\r\n }\r\n }\r\n }\r\n ]\r\n }}\r\n form={{\r\n colCount: 2,\r\n items: [\r\n {\r\n colSpan: 2,\r\n itemType: \"group\",\r\n items: [\r\n { dataField: \"Adi\" },\r\n {\r\n dataField: \"KurumId\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"KurumId\",\r\n loadUrl: sinavApi + 'kurum/otoGetYetkiliKurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"KurumId\",\r\n displayExpr: \"KurumAdi\"\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }}\r\n >\r\n\r\n </Editing>\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\">\r\n <RequiredRule message=\"Adı alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumId'} caption=\"Kurum\" visible={false}>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n </DataGrid>\r\n </div>\r\n );\r\n }\r\n else if (tabIndex === 1) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n showRowLines={true}\r\n dataSource={this.yurtDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onInitialized={this.onInitializedGridYurt}\r\n ref={(ref) => this.gridYurt = ref}\r\n >\r\n <Export enabled={true} fileName={'Yurtlar'} allowExportSelectedData={false} />\r\n <Editing\r\n allowAdding={true}\r\n allowDeleting={true}\r\n allowUpdating={true}\r\n useIcons={true}\r\n mode={'popup'}\r\n texts={{\r\n confirmDeleteMessage: \"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/></i>\",\r\n confirmDeleteTitle: \"Silme Onay\"\r\n }}\r\n popup={{\r\n title: \"Yurt Bilgileri\",\r\n showTitle: true,\r\n width: \"80%\",\r\n height: \"80%\",\r\n shading: true,\r\n dragEnabled: true,\r\n showCloseButton: false,\r\n ref: (ref) => { this.popupForm = ref },\r\n close_ClickOnOutsideClick: false,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: window\r\n },\r\n toolbarItems: [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check',\r\n onClick: async () => {\r\n await this.gridYurt.instance.saveEditData().catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n // await this.gridMainSatirIptal();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'remove',\r\n onClick: () => {\r\n this.gridYurt.instance.cancelEditData();\r\n }\r\n }\r\n }\r\n ]\r\n }}\r\n form={{\r\n colCount: 2,\r\n items: [\r\n {\r\n colSpan: 2,\r\n itemType: \"group\",\r\n items: [\r\n { dataField: \"Adi\" },\r\n {\r\n dataField: \"KurumId\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"KurumId\",\r\n loadUrl: sinavApi + 'kurum/otoGetYetkiliKurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"KurumId\",\r\n displayExpr: \"KurumAdi\"\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }}\r\n >\r\n\r\n </Editing>\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\">\r\n <RequiredRule message=\"Adı alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumId'} caption=\"Kurum\" visible={false}>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n </DataGrid>\r\n </div>\r\n );\r\n }\r\n else if (tabIndex === 2) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n showRowLines={true}\r\n dataSource={this.sinifSubeDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onInitialized={this.onInitializedGridSinifSube}\r\n ref={(ref) => this.gridSinifSube = ref}\r\n >\r\n <Export enabled={true} fileName={'SinifSubeler'} allowExportSelectedData={false} />\r\n <Editing\r\n allowAdding={true}\r\n allowDeleting={true}\r\n allowUpdating={true}\r\n useIcons={true}\r\n mode={'popup'}\r\n texts={{\r\n confirmDeleteMessage: \"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/></i>\",\r\n confirmDeleteTitle: \"Silme Onay\"\r\n }}\r\n popup={{\r\n title: \"Sınıf Şube Bilgileri\",\r\n showTitle: true,\r\n width: \"80%\",\r\n height: \"80%\",\r\n shading: true,\r\n dragEnabled: true,\r\n showCloseButton: false,\r\n ref: (ref) => { this.popupForm = ref },\r\n close_ClickOnOutsideClick: false,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: window\r\n },\r\n toolbarItems: [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check',\r\n onClick: async () => {\r\n await this.gridSinifSube.instance.saveEditData().catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n // await this.gridMainSatirIptal();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'remove',\r\n onClick: () => {\r\n this.gridSinifSube.instance.cancelEditData();\r\n }\r\n }\r\n }\r\n ]\r\n }}\r\n form={{\r\n colCount: 2,\r\n items: [\r\n {\r\n colSpan: 2,\r\n itemType: \"group\",\r\n items: [\r\n { dataField: \"Adi\" },\r\n {\r\n dataField: \"KurumId\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"KurumId\",\r\n loadUrl: sinavApi + 'kurum/otoGetYetkiliKurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"KurumId\",\r\n displayExpr: \"KurumAdi\"\r\n }\r\n },\r\n {\r\n dataField: \"SeviyeId\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listsinifseviye',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }}\r\n >\r\n\r\n </Editing>\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\">\r\n <RequiredRule message=\"Adı alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumId'} caption=\"Kurum\" visible={false}>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'SeviyeId'} caption=\"Seviye\" visible={false}>\r\n <RequiredRule message=\"Seviye alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'SeviyeAdi'} caption=\"Seviye\" />\r\n <Column dataField={'DonemOgrenciSayisi'} caption=\"Dönem Ö. Sayısı\" dataType={\"number\"} />\r\n <Column dataField={'OgrenciSayisi'} caption=\"Toplam Ö. Sayısı\" dataType={\"number\"} />\r\n </DataGrid>\r\n </div>\r\n );\r\n }\r\n else if (tabIndex === 3) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n showRowLines={true}\r\n dataSource={this.grupDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onInitialized={this.onInitializedGridGrup}\r\n ref={(ref) => this.gridGrup = ref}\r\n >\r\n <Export enabled={true} fileName={'Gruplar'} allowExportSelectedData={false} />\r\n <Editing\r\n allowAdding={true}\r\n allowDeleting={true}\r\n allowUpdating={true}\r\n useIcons={true}\r\n mode={'popup'}\r\n texts={{\r\n confirmDeleteMessage: \"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/></i>\",\r\n confirmDeleteTitle: \"Silme Onay\"\r\n }}\r\n popup={{\r\n title: \"Grup Bilgileri\",\r\n showTitle: true,\r\n width: \"80%\",\r\n height: \"80%\",\r\n shading: true,\r\n dragEnabled: true,\r\n showCloseButton: false,\r\n ref: (ref) => { this.popupForm = ref },\r\n close_ClickOnOutsideClick: false,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: window\r\n },\r\n toolbarItems: [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check',\r\n onClick: async () => {\r\n await this.gridGrup.instance.saveEditData().catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n // await this.gridMainSatirIptal();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'remove',\r\n onClick: () => {\r\n this.gridGrup.instance.cancelEditData();\r\n }\r\n }\r\n }\r\n ]\r\n }}\r\n form={{\r\n colCount: 2,\r\n items: [\r\n {\r\n colSpan: 2,\r\n itemType: \"group\",\r\n items: [\r\n { dataField: \"Adi\" },\r\n {\r\n dataField: \"KurumId\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"KurumId\",\r\n loadUrl: sinavApi + 'kurum/otoGetYetkiliKurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"KurumId\",\r\n displayExpr: \"KurumAdi\"\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }}\r\n >\r\n\r\n </Editing>\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\">\r\n <RequiredRule message=\"Adı alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumId'} caption=\"Kurum\" visible={false}>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n </DataGrid>\r\n </div>\r\n );\r\n }\r\n else if (tabIndex === 4) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n showRowLines={true}\r\n dataSource={this.bransDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onInitialized={this.onInitializedGridBrans}\r\n ref={(ref) => this.gridBrans = ref}\r\n >\r\n <Export enabled={true} fileName={'Branslar'} allowExportSelectedData={false} />\r\n <Editing\r\n allowAdding={true}\r\n allowDeleting={true}\r\n allowUpdating={true}\r\n useIcons={true}\r\n mode={'popup'}\r\n texts={{\r\n confirmDeleteMessage: \"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/></i>\",\r\n confirmDeleteTitle: \"Silme Onay\"\r\n }}\r\n popup={{\r\n title: \"Branş Bilgileri\",\r\n showTitle: true,\r\n width: \"80%\",\r\n height: \"80%\",\r\n shading: true,\r\n dragEnabled: true,\r\n showCloseButton: false,\r\n ref: (ref) => { this.popupForm = ref },\r\n close_ClickOnOutsideClick: false,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: window\r\n },\r\n toolbarItems: [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check',\r\n onClick: async () => {\r\n await this.gridBrans.instance.saveEditData().catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n // await this.gridMainSatirIptal();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'remove',\r\n onClick: () => {\r\n this.gridBrans.instance.cancelEditData();\r\n }\r\n }\r\n }\r\n ]\r\n }}\r\n form={{\r\n colCount: 2,\r\n items: [\r\n {\r\n colSpan: 2,\r\n itemType: \"group\",\r\n items: [\r\n { dataField: \"Adi\" },\r\n {\r\n dataField: \"KurumId\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"KurumId\",\r\n loadUrl: sinavApi + 'kurum/otoGetYetkiliKurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"KurumId\",\r\n displayExpr: \"KurumAdi\"\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }}\r\n >\r\n\r\n </Editing>\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\">\r\n <RequiredRule message=\"Adı alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumId'} caption=\"Kurum\" visible={false}>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n </DataGrid>\r\n </div>\r\n );\r\n }\r\n else if (tabIndex === 5) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n showRowLines={true}\r\n dataSource={this.ucretDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onInitialized={this.onInitializedGridUcret}\r\n ref={(ref) => this.gridUcret = ref}\r\n >\r\n <Export enabled={true} fileName={'Ucretler'} allowExportSelectedData={false} />\r\n <Editing\r\n allowAdding={true}\r\n allowDeleting={true}\r\n allowUpdating={true}\r\n useIcons={true}\r\n mode={'popup'}\r\n texts={{\r\n confirmDeleteMessage: \"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/></i>\",\r\n confirmDeleteTitle: \"Silme Onay\"\r\n }}\r\n popup={{\r\n title: \"Ücret Bilgileri\",\r\n showTitle: true,\r\n width: \"80%\",\r\n height: \"80%\",\r\n shading: true,\r\n dragEnabled: true,\r\n showCloseButton: false,\r\n ref: (ref) => { this.popupForm = ref },\r\n close_ClickOnOutsideClick: false,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: window\r\n },\r\n toolbarItems: [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check',\r\n onClick: async () => {\r\n await this.gridUcret.instance.saveEditData().catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n // await this.gridMainSatirIptal();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'remove',\r\n onClick: () => {\r\n this.gridUcret.instance.cancelEditData();\r\n }\r\n }\r\n }\r\n ]\r\n }}\r\n form={{\r\n colCount: 2,\r\n items: [\r\n {\r\n colSpan: 2,\r\n itemType: \"group\",\r\n items: [\r\n { dataField: \"Adi\" },\r\n {\r\n dataField: \"DonemId\", visible: false, editorType: \"dxTextBox\", editorOptions: {\r\n visible: false,\r\n value: Globals.service.DonemId\r\n }\r\n },\r\n {\r\n dataField: \"KurumId\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"KurumId\",\r\n loadUrl: sinavApi + 'kurum/otoGetYetkiliKurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"KurumId\",\r\n displayExpr: \"KurumAdi\"\r\n }\r\n },\r\n {\r\n dataField: \"Tutar\",\r\n dataType: \"number\",\r\n format: \"#,##0.##\"\r\n }\r\n ]\r\n }\r\n ]\r\n }}\r\n >\r\n\r\n </Editing>\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\">\r\n <RequiredRule message=\"Adı alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumId'} caption=\"Kurum\" visible={false}>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'Tutar'} caption=\"Tutar\" dataType={\"number\"} editorOptions={{\r\n format: \"#,##0.##\"\r\n }}>\r\n <RequiredRule message={\"Tutar alanı zorunludur\"} />\r\n </Column>\r\n </DataGrid>\r\n </div>\r\n );\r\n }\r\n else if (tabIndex === 6) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n showRowLines={true}\r\n dataSource={this.indirimDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onInitialized={this.onInitializedGridIndirim}\r\n ref={(ref) => this.gridIndirim = ref}\r\n >\r\n <Export enabled={true} fileName={'Indirimler'} allowExportSelectedData={false} />\r\n <Editing\r\n allowAdding={true}\r\n allowDeleting={true}\r\n allowUpdating={true}\r\n useIcons={true}\r\n mode={'popup'}\r\n texts={{\r\n confirmDeleteMessage: \"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/></i>\",\r\n confirmDeleteTitle: \"Silme Onay\"\r\n }}\r\n popup={{\r\n title: \"İndirim Bilgileri\",\r\n showTitle: true,\r\n width: \"80%\",\r\n height: \"80%\",\r\n shading: true,\r\n dragEnabled: true,\r\n showCloseButton: false,\r\n ref: (ref) => { this.popupForm = ref },\r\n close_ClickOnOutsideClick: false,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: window\r\n },\r\n toolbarItems: [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check',\r\n onClick: async () => {\r\n await this.gridIndirim.instance.saveEditData().catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n // await this.gridMainSatirIptal();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'remove',\r\n onClick: () => {\r\n this.gridIndirim.instance.cancelEditData();\r\n }\r\n }\r\n }\r\n ]\r\n }}\r\n form={{\r\n colCount: 2,\r\n items: [\r\n {\r\n colSpan: 2,\r\n itemType: \"group\",\r\n items: [\r\n { dataField: \"Adi\" },\r\n {\r\n dataField: \"KurumId\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"KurumId\",\r\n loadUrl: sinavApi + 'kurum/otoGetYetkiliKurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"KurumId\",\r\n displayExpr: \"KurumAdi\"\r\n }\r\n },\r\n {\r\n dataField: \"Tutar\",\r\n dataType: \"number\",\r\n format: \"#,##0.##\"\r\n }\r\n ]\r\n }\r\n ]\r\n }}\r\n >\r\n\r\n </Editing>\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\">\r\n <RequiredRule message=\"Adı alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumId'} caption=\"Kurum\" visible={false}>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'Tutar'} caption=\"Tutar\" dataType={\"number\"} editorOptions={{\r\n format: \"#,##0.##\"\r\n }}>\r\n <RequiredRule message={\"Tutar alanı zorunludur\"} />\r\n </Column>\r\n </DataGrid>\r\n </div>\r\n );\r\n }\r\n else if (tabIndex === 7) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n showRowLines={true}\r\n dataSource={this.otomasyonKurumDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onInitialized={this.onInitializedGridOtomasyonKurum}\r\n ref={(ref) => this.gridOtomasyonKurum = ref}\r\n >\r\n <Export enabled={true} fileName={'sirketbilgileri'} allowExportSelectedData={false} />\r\n <Editing\r\n allowAdding={true}\r\n allowDeleting={true}\r\n allowUpdating={true}\r\n useIcons={true}\r\n mode={'popup'}\r\n texts={{\r\n confirmDeleteMessage: \"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/></i>\",\r\n confirmDeleteTitle: \"Silme Onay\"\r\n }}\r\n popup={{\r\n title: \"Şirket Bilgileri\",\r\n showTitle: true,\r\n width: \"80%\",\r\n height: \"80%\",\r\n shading: true,\r\n dragEnabled: true,\r\n showCloseButton: false,\r\n ref: (ref) => { this.popupForm = ref },\r\n close_ClickOnOutsideClick: false,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: window\r\n },\r\n toolbarItems: [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check',\r\n onClick: async () => {\r\n await this.gridOtomasyonKurum.instance.saveEditData().catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n // await this.gridMainSatirIptal();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'remove',\r\n onClick: () => {\r\n this.gridOtomasyonKurum.instance.cancelEditData();\r\n }\r\n }\r\n }\r\n ]\r\n }}\r\n form={{\r\n colCount: 2,\r\n items: [\r\n {\r\n colSpan: 2,\r\n itemType: \"group\",\r\n items: [\r\n { dataField: \"SirketAdi\" },\r\n { dataField: \"MahkemeAdi\" },\r\n {\r\n dataField: \"DonemId\", visible: false, editorType: \"dxTextBox\", editorOptions: {\r\n visible: false,\r\n value: Globals.service.DonemId\r\n }\r\n },\r\n {\r\n dataField: \"KurumId\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"KurumId\",\r\n loadUrl: sinavApi + 'kurum/otoGetYetkiliKurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"KurumId\",\r\n displayExpr: \"KurumAdi\"\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }}\r\n >\r\n\r\n </Editing>\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'MahkemeAdi'} caption=\"Mahkeme bilgisi\">\r\n <RequiredRule message=\"Mahkeme bilgisi alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'SirketAdi'} dataType={\"string\"} caption=\"Şirket(Kurum) Ünvanı\">\r\n <RequiredRule message=\"Şirket(Kurum) ünvanı alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumId'} caption=\"Kurum\" visible={false}>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n </DataGrid>\r\n </div>\r\n );\r\n }\r\n else if (tabIndex === 8) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n showRowLines={true}\r\n dataSource={this.giderDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onInitialized={this.onInitializedGridGider}\r\n ref={(ref) => this.gridGider = ref}\r\n >\r\n <Export enabled={true} fileName={'Giderler'} allowExportSelectedData={false} />\r\n <Editing\r\n allowAdding={true}\r\n allowDeleting={true}\r\n allowUpdating={true}\r\n useIcons={true}\r\n mode={'popup'}\r\n texts={{\r\n confirmDeleteMessage: \"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/></i>\",\r\n confirmDeleteTitle: \"Silme Onay\"\r\n }}\r\n popup={{\r\n title: \"Gider Bilgileri\",\r\n showTitle: true,\r\n width: \"80%\",\r\n height: \"80%\",\r\n shading: true,\r\n dragEnabled: true,\r\n showCloseButton: false,\r\n ref: (ref) => { this.popupForm = ref },\r\n close_ClickOnOutsideClick: false,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: window\r\n },\r\n toolbarItems: [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check',\r\n onClick: async () => {\r\n await this.gridGider.instance.saveEditData().catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n // await this.gridMainSatirIptal();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'remove',\r\n onClick: () => {\r\n this.gridGider.instance.cancelEditData();\r\n }\r\n }\r\n }\r\n ]\r\n }}\r\n form={{\r\n colCount: 2,\r\n items: [\r\n {\r\n colSpan: 2,\r\n itemType: \"group\",\r\n items: [\r\n { dataField: \"Adi\" },\r\n {\r\n dataField: \"DonemId\", visible: false, editorType: \"dxTextBox\", editorOptions: {\r\n visible: false,\r\n value: Globals.service.DonemId\r\n }\r\n },\r\n {\r\n dataField: \"KurumId\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"KurumId\",\r\n loadUrl: sinavApi + 'kurum/otoGetYetkiliKurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"KurumId\",\r\n displayExpr: \"KurumAdi\"\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }}\r\n >\r\n\r\n </Editing>\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\">\r\n <RequiredRule message=\"Adı alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumId'} caption=\"Kurum\" visible={false}>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n </DataGrid>\r\n </div>\r\n );\r\n }\r\n else if (tabIndex === 9) {\r\n return (\r\n <div style={{ paddingTop: \"10px\" }}>\r\n <DataGrid\r\n showBorders={true}\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n showRowLines={true}\r\n dataSource={this.bankaDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'none' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onInitialized={this.onInitializedGridBanka}\r\n ref={(ref) => this.gridBanka = ref}\r\n >\r\n <Export enabled={true} fileName={'Bankalar'} allowExportSelectedData={false} />\r\n <Editing\r\n allowAdding={true}\r\n allowDeleting={true}\r\n allowUpdating={true}\r\n useIcons={true}\r\n mode={'popup'}\r\n texts={{\r\n confirmDeleteMessage: \"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/></i>\",\r\n confirmDeleteTitle: \"Silme Onay\"\r\n }}\r\n popup={{\r\n title: \"Banka Bilgileri\",\r\n showTitle: true,\r\n width: \"80%\",\r\n height: \"80%\",\r\n shading: true,\r\n dragEnabled: true,\r\n showCloseButton: false,\r\n ref: (ref) => { this.popupForm = ref },\r\n close_ClickOnOutsideClick: false,\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: window\r\n },\r\n toolbarItems: [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check',\r\n onClick: async () => {\r\n await this.gridBanka.instance.saveEditData().catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n // await this.gridMainSatirIptal();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'remove',\r\n onClick: () => {\r\n this.gridBanka.instance.cancelEditData();\r\n }\r\n }\r\n }\r\n ]\r\n }}\r\n form={{\r\n colCount: 2,\r\n items: [\r\n {\r\n colSpan: 2,\r\n itemType: \"group\",\r\n items: [\r\n { dataField: \"Adi\" },\r\n {\r\n dataField: \"DonemId\", visible: false, editorType: \"dxTextBox\", editorOptions: {\r\n visible: false,\r\n value: Globals.service.DonemId\r\n }\r\n },\r\n {\r\n dataField: \"KurumId\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"KurumId\",\r\n loadUrl: sinavApi + 'kurum/otoGetYetkiliKurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"KurumId\",\r\n displayExpr: \"KurumAdi\"\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n }}\r\n >\r\n\r\n </Editing>\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\">\r\n <RequiredRule message=\"Adı alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumId'} caption=\"Kurum\" visible={false}>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n </DataGrid>\r\n </div>\r\n );\r\n }\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Genel Tanımlar\"}</h4>\r\n {this.renderDetay()}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { sinavApi } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Selection, Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nexport default class SubeKullanici extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popup: false\r\n };\r\n this.gridYayin = null;\r\n this.gridMain = null;\r\n this.gridKurum = null;\r\n this.gridMerkezKullaniciYetki = null;\r\n this.formKullanici = null;\r\n this.selectBoxRol = null;\r\n this.satir = null;\r\n this.yayinlar = [];\r\n this.kurumlar = [];\r\n this.formData = {\r\n }\r\n this.sinavKullanici = {};\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionGridMainChanged = this.onSelectionGridMainChanged.bind(this);\r\n this.onSelectionGridYayinChanged = this.onSelectionGridYayinChanged.bind(this);\r\n this.onSelectionGridKurumChanged = this.onSelectionGridKurumChanged.bind(this);\r\n this.onInitializedGridMain = this.onInitializedGridMain.bind(this);\r\n this.onInitializedGridKurum = this.onInitializedGridKurum.bind(this);\r\n this.onInitializedGridYayin = this.onInitializedGridYayin.bind(this);\r\n this.onInitializedSelectBoxRol = this.onInitializedSelectBoxRol.bind(this);\r\n this.onInitializedFormKullanici = this.onInitializedFormKullanici.bind(this);\r\n this.duzenleClick = this.duzenleClick.bind(this);\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.popupGizle = () => {\r\n this.setState({ popup: false });\r\n };\r\n this.headers = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n this.arrayList = null;\r\n this.flag = false;\r\n this.secilenYayinlar = [];\r\n this.secilenKurumlar = [];\r\n this.KullaniciYayinYetki = [];\r\n this.MerkeziKurumYetki = [];\r\n this.kullaniciDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kullanici/getKullanicilar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.rolDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'rol/roller',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n\r\n\r\n this.kurumDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kurum/kurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n\r\n async popupAc() {\r\n return new Promise(resolve => {\r\n this.setState({\r\n popup: true\r\n });\r\n resolve(true);\r\n });\r\n }\r\n\r\n async yeni() {\r\n this.formData = {\r\n Id: 0,\r\n Rol_Id: null,\r\n Deleted: false,\r\n RowVersion: 0,\r\n KullaniciAdi: null,\r\n Sifre: null,\r\n Email: null,\r\n Adi: null,\r\n Soyadi: null,\r\n SmsBilgi: false,\r\n MailBilgi: false,\r\n Tel: null,\r\n Gsm: null,\r\n Resim: null\r\n };\r\n }\r\n\r\n async dataClear() {\r\n this.secilenYayinlar = [];\r\n this.secilenKurumlar = [];\r\n this.KullaniciYayinYetki = [];\r\n this.MerkeziKurumYetki = [];\r\n await this.gridYayin.instance.clearSelection();\r\n await this.gridYayinSatirIptal();\r\n await this.gridKurum.instance.clearSelection();\r\n await this.gridKurumSatirIptal();\r\n }\r\n\r\n async getKullanici(id) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getKullanici/\" + id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n res.data.Data = res.data.Data[0];\r\n this.formData = {\r\n Id: res.data.Data.Id,\r\n Rol_Id: res.data.Data.Rol_Id,\r\n Deleted: res.data.Data.Deleted,\r\n RowVersion: res.data.Data.RowVersion,\r\n KullaniciAdi: res.data.Data.KullaniciAdi,\r\n Sifre: res.data.Data.Sifre,\r\n Email: res.data.Data.Email,\r\n Adi: res.data.Data.Adi,\r\n Soyadi: res.data.Data.Soyadi,\r\n SmsBilgi: res.data.Data.SmsBilgi,\r\n MailBilgi: res.data.Data.MailBilgi,\r\n Tel: res.data.Data.Tel,\r\n Gsm: res.data.Data.Gsm,\r\n Resim: res.data.Data.Logo,\r\n Logo: res.data.Data.Logo,\r\n VarsayilanLogo: res.data.Data.VarsayilanLogo\r\n };\r\n resolve(\"Kullanıcı bilgileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu,Kullanıcı bilgileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async getYayinYetkileriByKullanici(kullaniciId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getYayinYetkileriByKullanici/\" + kullaniciId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n let arrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n arrayList.push(item.Yayin_Id)\r\n });\r\n this.gridYayin.instance.selectRows(arrayList);\r\n resolve(\"Yayın yetkileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu, yayın yetkileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async getMerkezKurumYetkileriByKullanici(kullaniciId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getMerkezKurumYetkileriByKullanici/\" + kullaniciId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n var arrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n arrayList.push(item.Kurum.Id)\r\n });\r\n this.gridKurum.instance.selectRows(arrayList);\r\n this.gridKurum.instance.refresh();\r\n resolve(\"Kurum yetkileri verildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu, kurum bilgileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async duzenleClick(e) {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n await this.dataClear();\r\n this.formData = {};\r\n await this.getKullanici(satir.Id).catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n\r\n await this.rolDataSource.load().done(async () => {\r\n await this.getMerkezKurumYetkileriByKullanici(satir.Id).then(() => {\r\n\r\n }).catch(error => {\r\n notify(error, \"error\", 2000);\r\n });\r\n });\r\n await this.getYayinYetkileriByKullanici(satir.Id).then(() => {\r\n }).catch(error => {\r\n notify(error, \"error\", 2000);\r\n });\r\n\r\n await this.popupAc();\r\n\r\n }\r\n }\r\n }\r\n\r\n async sil(satir) {\r\n service.post(sinavApi + 'kullanici/KullaniciSil/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n service.post(sinavApi + \"kullanici/KullaniciSil/\" + satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n\r\n async aktifYap(satir) {\r\n service.post(sinavApi + 'kullanici/AktifYap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n async pasifYap(satir) {\r\n service.post(sinavApi + 'kullanici/PasifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n onUploaded(e) {\r\n if (e.value.length > 0) {\r\n this.formData.Resim = e.value[0].name;\r\n notify(\"Logonuz yüklendi\", \"success\", 5000);\r\n }\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yeni', icon: 'add',\r\n onClick: async () => {\r\n if (Globals.service.Rol === \"Doküman\" | Globals.service.Rol === \"Rapor\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n\r\n await this.yeni();\r\n await this.dataClear();\r\n await this.popupAc();\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Düzenle', icon: 'edit',\r\n onClick: this.duzenleClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'trash',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.sil(satir);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız pasif hale getirilecektir emin misiniz?</i>\", \"Pasif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.pasifYap(satir);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız aktif hale getirilecektir emin misiniz?</i>\", \"Aktif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.aktifYap(satir);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSelectionGridKurumChanged() {\r\n this.secilenKurumlar = this.gridKurum.instance.getSelectedRowsData();\r\n }\r\n\r\n\r\n\r\n onInitializedGridMain(e) {\r\n this.gridMain = e.component;\r\n }\r\n\r\n onInitializedGridYayin(e) {\r\n this.gridYayin = e.component;\r\n\r\n }\r\n\r\n onInitializedGridKurum(e) {\r\n this.gridKurum = e.component;\r\n }\r\n\r\n\r\n\r\n onInitializedSelectBoxRol(e) {\r\n this.selectBoxRol = e.component;\r\n }\r\n\r\n onInitializedFormKullanici(e) {\r\n this.formKullanici = e.component;\r\n }\r\n\r\n onSelectionGridMainChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n onSelectionGridYayinChanged() {\r\n this.secilenYayinlar = this.gridYayin.instance.getSelectedRowsData();\r\n }\r\n\r\n async gridMainSatirIptal() {\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n async gridYayinSatirIptal() {\r\n if (this.gridYayin.instance !== null) {\r\n this.gridYayin.instance.clearSelection();\r\n this.gridYayin.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n\r\n\r\n async gridKurumSatirIptal() {\r\n if (this.gridKurum.instance !== null) {\r\n this.gridKurum.instance.clearSelection();\r\n this.gridKurum.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.kullaniciDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n enabled: true\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onInitialized={this.onInitializedGridMain}\r\n onSelectionChanged={this.onSelectionGridMainChanged}\r\n ref={(ref) => this.gridMain = ref}\r\n\r\n >\r\n <Export enabled={true} fileName={'Yayinlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" />\r\n <Column dataField={'KullaniciAdi'} caption=\"K. Adı\" />\r\n <Column dataField={'Email'} caption=\"Email\" />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n <Column dataField={'Soyadi'} caption=\"Soyadı\" />\r\n <Column dataField={'Sifre'} caption=\"Şifre\" />\r\n <Column dataField={'Gsm'} caption=\"Gsm\" visible={false} />\r\n <Column dataField={'Tel'} caption=\"Tel\" visible={false} />\r\n <Column dataField={'SmsBilgi'} caption=\"Sms Bilgi\" dataType=\"boolean\" />\r\n <Column dataField={'MailBilgi'} caption=\"Mail Bilgi\" dataType=\"boolean\" />\r\n </DataGrid>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n title=\"Otomasyon Kullanıcıları\" width={\"100%\"} height={\"100%\"}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n const validateStatus = this.formKullanici.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n\r\n this.MerkeziKurumYetki = [];\r\n this.KullaniciYayinYetki = [];\r\n this.secilenYayinlar.forEach((item, index) => {\r\n this.KullaniciYayinYetki.push(\r\n {\r\n Yayin: { Id: item.Id },\r\n Kullanici: { Id: 0 }\r\n }\r\n );\r\n });\r\n\r\n if (this.formData.Resim !== undefined) {\r\n this.formData.Logo = this.formData.Resim;\r\n }\r\n\r\n this.MerkeziKurumYetki = [];\r\n this.secilenKurumlar.forEach((item, index) => {\r\n this.MerkeziKurumYetki.push({\r\n Kurum: { Id: item.Id }\r\n });\r\n });\r\n\r\n this.sinavKullanici = {\r\n Kullanici: this.formData,\r\n KullaniciYayinYetki: this.KullaniciYayinYetki,\r\n MerkeziKurumYetki: this.MerkeziKurumYetki\r\n };\r\n\r\n service.post(sinavApi + 'kullanici/otomasyonkullanicisave',\r\n this.sinavKullanici,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n this.gridMain.instance.refresh().then(() => {\r\n this.setState({\r\n popup: false\r\n });\r\n });\r\n }\r\n else {\r\n this.sinavKullanici = {\r\n Kullanici: this.formData,\r\n KullaniciYayinYetki: this.KullaniciYayinYetki,\r\n MerkeziKurumYetki: this.MerkeziKurumYetki\r\n };\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'KApat', icon: 'close'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormKullanici} ref={(ref) => this.formKullanici = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Kullanıcı Bilgileri\">\r\n <SimpleItem dataField={\"Email\"} isRequired={true}>\r\n <Label text=\"Email\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KullaniciAdi\"} isRequired={true}>\r\n <Label text=\"K. Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Sifre\"} isRequired={true} editorType=\"dxTextBox\">\r\n <Label text=\"Şifre\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Adi\"} isRequired={true}>\r\n <Label text=\"Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Soyadi\"} isRequired={true}>\r\n <Label text=\"Soyadı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tel\"}>\r\n <Label text=\"Telefon\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Gsm\"}>\r\n <Label text=\"Gsm\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SmsBilgi\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Sms Bilgi\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MailBilgi\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Mail Bilgi\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-grup\" colCount={3}>\r\n <SimpleItem dataField={\"Rol_Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.rolDataSource,\r\n remoteOperations: false,\r\n searchEnabled: false,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxRol,\r\n ref: (ref) => { this.selectBoxRol = ref }\r\n }} >\r\n <Label text=\"Rol\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: sinavApi + \"kullanici/LogoUpload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n name: 'myFile',\r\n onValueChanged: this.onUploaded\r\n }}>\r\n <Label text=\"Logo seçiniz\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VarsayilanLogo\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Varsayılan Logo\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Yetkiler\">\r\n <SimpleItem>\r\n <h4>Yayın Yetkileri</h4>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.yayinDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n onInitialized={this.onInitializedGridYayin}\r\n onSelectionChanged={this.onSelectionGridYayinChanged}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridYayin = ref}\r\n >\r\n\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Selection mode=\"multiple\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"onClick\" />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Yayın\" />\r\n </DataGrid>\r\n </SimpleItem>\r\n <SimpleItem>\r\n <h4>Kurum Yetkileri</h4>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.kurumDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={false}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={false}\r\n onSelectionChanged={this.onSelectionGridKurumChanged}\r\n onInitialized={this.onInitializedGridKurum}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridKurum = ref}\r\n >\r\n\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Selection mode=\"multiple\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"onClick\" />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'ilAdi'} caption=\"İl\" />\r\n <Column dataField={'ilceAdi'} caption=\"İlçe\" />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" dataType=\"string\" />\r\n </DataGrid>\r\n </SimpleItem>\r\n\r\n </GroupItem>\r\n\r\n\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n\r\n );\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { sinavApi, otomasyonApi, authApi } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Selection, Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label, RequiredRule } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nexport default class Kullanici extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popup: false,\r\n drpBransVisible: false,\r\n kullaniciAktarVisible: false,\r\n toolBarDisabled: false\r\n };\r\n this.selectBoxBrans = null;\r\n this.gridYayin = null;\r\n this.gridMain = null;\r\n this.gridKurum = null;\r\n this.gridMerkezKullaniciYetki = null;\r\n this.formKullanici = null;\r\n this.formKullaniciAktar = null;\r\n this.selectBoxRol = null;\r\n this.satir = null;\r\n this.yayinlar = [];\r\n this.kurumlar = [];\r\n this.formData = {\r\n }\r\n\r\n this.formKullaniciAktarData = {\r\n Kullanicilar: [],\r\n GecmisDonemId: Globals.service.DonemId,\r\n DonemId: null\r\n };\r\n this.sinavKullanici = {};\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionGridMainChanged = this.onSelectionGridMainChanged.bind(this);\r\n this.onSelectionGridYayinChanged = this.onSelectionGridYayinChanged.bind(this);\r\n this.onSelectionGridKurumChanged = this.onSelectionGridKurumChanged.bind(this);\r\n this.onInitializedGridMain = this.onInitializedGridMain.bind(this);\r\n this.onInitializedGridKurum = this.onInitializedGridKurum.bind(this);\r\n this.onInitializedGridYayin = this.onInitializedGridYayin.bind(this);\r\n this.onInitializedSelectBoxRol = this.onInitializedSelectBoxRol.bind(this);\r\n this.onInitializedSelectBoxBrans = this.onInitializedSelectBoxBrans.bind(this);\r\n this.onInitializedFormKullanici = this.onInitializedFormKullanici.bind(this);\r\n\r\n this.duzenleClick = this.duzenleClick.bind(this);\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.popupGizle = () => {\r\n this.setState({ popup: false });\r\n };\r\n this.headers = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n this.arrayList = null;\r\n this.flag = false;\r\n this.secilenYayinlar = [];\r\n this.secilenKurumlar = [];\r\n this.KullaniciYayinYetki = [];\r\n this.MerkeziKurumYetki = [];\r\n\r\n this.donemDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: authApi + 'auth/getdonemler',\r\n })\r\n });\r\n\r\n this.kullaniciDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kullanici/getOtomasyonKullaniciEkrani',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.bransDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listbransbykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.rolDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'rol/roller',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.kurumDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kurum/kurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n async popupAc() {\r\n return new Promise(resolve => {\r\n this.setState({\r\n popup: true\r\n });\r\n resolve(true);\r\n });\r\n }\r\n\r\n popupKullaniciAktarGizle() {\r\n this.setState({\r\n kullaniciAktarVisible: false\r\n });\r\n }\r\n\r\n async yeni() {\r\n this.formData = {\r\n Id: 0,\r\n Rol_Id: null,\r\n BransId: null,\r\n Deleted: false,\r\n RowVersion: 0,\r\n KullaniciAdi: null,\r\n Sifre: null,\r\n Email: null,\r\n Adi: null,\r\n Soyadi: null,\r\n SmsBilgi: false,\r\n MailBilgi: false,\r\n Tel: null,\r\n Gsm: null,\r\n Resim: null\r\n };\r\n }\r\n\r\n async dataClear() {\r\n this.secilenYayinlar = [];\r\n this.secilenKurumlar = [];\r\n this.KullaniciYayinYetki = [];\r\n this.MerkeziKurumYetki = [];\r\n await this.gridYayin.instance.clearSelection();\r\n await this.gridYayinSatirIptal();\r\n await this.gridKurum.instance.clearSelection();\r\n await this.gridKurumSatirIptal();\r\n }\r\n\r\n async getKullanici(id) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getKullanici/\" + id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n res.data.Data = res.data.Data[0];\r\n this.formData = {\r\n Id: res.data.Data.Id,\r\n Rol_Id: res.data.Data.Rol_Id,\r\n Deleted: res.data.Data.Deleted,\r\n BransId: res.data.Data.BransId,\r\n RowVersion: res.data.Data.RowVersion,\r\n KullaniciAdi: res.data.Data.KullaniciAdi,\r\n Sifre: res.data.Data.Sifre,\r\n Email: res.data.Data.Email,\r\n Adi: res.data.Data.Adi,\r\n Soyadi: res.data.Data.Soyadi,\r\n SmsBilgi: res.data.Data.SmsBilgi,\r\n MailBilgi: res.data.Data.MailBilgi,\r\n Tel: res.data.Data.Tel,\r\n Gsm: res.data.Data.Gsm,\r\n Resim: res.data.Data.Logo,\r\n Logo: res.data.Data.Logo,\r\n VarsayilanLogo: res.data.Data.VarsayilanLogo\r\n };\r\n this.selectBoxBrans.instance().option(\"value\", this.formData.BransId);\r\n resolve(\"Kullanıcı bilgileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu,Kullanıcı bilgileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async getYayinYetkileriByKullanici(kullaniciId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getYayinYetkileriByKullanici/\" + kullaniciId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n let arrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n arrayList.push(item.Yayin_Id)\r\n });\r\n this.gridYayin.instance.selectRows(arrayList);\r\n resolve(\"Yayın yetkileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu, yayın yetkileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async getMerkezKurumYetkileriByKullanici(kullaniciId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getMerkezKurumYetkileriByKullanici/\" + kullaniciId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n var arrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n arrayList.push(item.Kurum.Id)\r\n });\r\n this.gridKurum.instance.selectRows(arrayList);\r\n this.gridKurum.instance.refresh();\r\n resolve(\"Kurum yetkileri verildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu, kurum bilgileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async duzenleClick(e) {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n await this.dataClear();\r\n this.formData = {};\r\n await this.getKullanici(satir.Id).catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n\r\n await this.rolDataSource.load().done(async () => {\r\n await this.getMerkezKurumYetkileriByKullanici(satir.Id).then(() => {\r\n\r\n }).catch(error => {\r\n notify(error, \"error\", 2000);\r\n });\r\n });\r\n await this.getYayinYetkileriByKullanici(satir.Id).then(() => {\r\n }).catch(error => {\r\n notify(error, \"error\", 2000);\r\n });\r\n\r\n\r\n await this.popupAc();\r\n\r\n }\r\n }\r\n }\r\n\r\n async sil(satir) {\r\n service.post(sinavApi + 'kullanici/KullaniciSil/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n service.post(sinavApi + \"kullanici/KullaniciSil/\" + satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n\r\n async aktifYap(satir) {\r\n service.post(sinavApi + 'kullanici/AktifYap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n async pasifYap(satir) {\r\n service.post(sinavApi + 'kullanici/PasifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n onUploaded(e) {\r\n if (e.value.length > 0) {\r\n this.formData.Resim = e.value[0].name;\r\n notify(\"Logonuz yüklendi\", \"success\", 5000);\r\n }\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Kullanıcı Aktar', icon: 'export',\r\n onClick: async () => {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n this.donemDataSource.filter([\"Id\", \"<>\", Globals.service.DonemId]);\r\n await this.donemDataSource.load();\r\n this.setState({\r\n kullaniciAktarVisible: true\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yeni', icon: 'add',\r\n onClick: async () => {\r\n if (Globals.service.Rol === \"Doküman\" | Globals.service.Rol === \"Rapor\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n\r\n await this.yeni();\r\n await this.dataClear();\r\n await this.popupAc();\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Düzenle', icon: 'edit',\r\n onClick: this.duzenleClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'trash',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.sil(satir);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız pasif hale getirilecektir emin misiniz?</i>\", \"Pasif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.pasifYap(satir);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız aktif hale getirilecektir emin misiniz?</i>\", \"Aktif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.aktifYap(satir);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSelectionGridKurumChanged() {\r\n this.secilenKurumlar = this.gridKurum.instance.getSelectedRowsData();\r\n }\r\n\r\n onInitializedSelectBoxBrans(e) {\r\n this.selectBoxBrans = e.component;\r\n }\r\n\r\n\r\n\r\n onInitializedGridMain(e) {\r\n this.gridMain = e.component;\r\n }\r\n\r\n onInitializedGridYayin(e) {\r\n this.gridYayin = e.component;\r\n }\r\n\r\n onInitializedGridKurum(e) {\r\n this.gridKurum = e.component;\r\n }\r\n\r\n onInitializedSelectBoxRol(e) {\r\n this.selectBoxRol = e.component;\r\n }\r\n\r\n onInitializedFormKullanici(e) {\r\n this.formKullanici = e.component;\r\n }\r\n\r\n onSelectionGridMainChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n onSelectionGridYayinChanged() {\r\n this.secilenYayinlar = this.gridYayin.instance.getSelectedRowsData();\r\n }\r\n\r\n async gridMainSatirIptal() {\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n async gridYayinSatirIptal() {\r\n if (this.gridYayin.instance !== null) {\r\n this.gridYayin.instance.clearSelection();\r\n this.gridYayin.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n async gridKurumSatirIptal() {\r\n if (this.gridKurum.instance !== null) {\r\n this.gridKurum.instance.clearSelection();\r\n this.gridKurum.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Kullanıcılar\"}</h4>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.kullaniciDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n enabled: true\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onInitialized={this.onInitializedGridMain}\r\n onSelectionChanged={this.onSelectionGridMainChanged}\r\n ref={(ref) => this.gridMain = ref}\r\n\r\n >\r\n <Export enabled={true} fileName={'Yayinlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" />\r\n <Column dataField={'Rol'} caption=\"Rol\" />\r\n <Column dataField={'KullaniciAdi'} caption=\"K. Adı\" />\r\n <Column dataField={'Email'} caption=\"Email\" />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n <Column dataField={'Soyadi'} caption=\"Soyadı\" />\r\n <Column dataField={'Sifre'} caption=\"Şifre\" />\r\n <Column dataField={'Gsm'} caption=\"Gsm\" visible={false} />\r\n <Column dataField={'Tel'} caption=\"Tel\" visible={false} />\r\n <Column dataField={'SmsBilgi'} caption=\"Sms Bilgi\" dataType=\"boolean\" />\r\n <Column dataField={'MailBilgi'} caption=\"Mail Bilgi\" dataType=\"boolean\" />\r\n </DataGrid>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n title=\"Otomasyon Kullanıcıları\" width={\"100%\"} height={\"100%\"}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n const validateStatus = this.formKullanici.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n if (this.formData.BransId === null | this.formData.BransId === undefined) {\r\n this.formData.BransId = 0;\r\n }\r\n this.MerkeziKurumYetki = [];\r\n this.KullaniciYayinYetki = [];\r\n this.secilenYayinlar.forEach((item, index) => {\r\n this.KullaniciYayinYetki.push(\r\n {\r\n Yayin: { Id: item.Id },\r\n Kullanici: { Id: 0 }\r\n }\r\n );\r\n });\r\n\r\n if (this.formData.Resim !== undefined) {\r\n this.formData.Logo = this.formData.Resim;\r\n }\r\n\r\n this.MerkeziKurumYetki = [];\r\n this.secilenKurumlar.forEach((item, index) => {\r\n this.MerkeziKurumYetki.push({\r\n Kurum: { Id: item.Id }\r\n });\r\n });\r\n\r\n this.sinavKullanici = {\r\n Kullanici: this.formData,\r\n KullaniciYayinYetki: this.KullaniciYayinYetki,\r\n MerkeziKurumYetki: this.MerkeziKurumYetki\r\n };\r\n\r\n service.post(sinavApi + 'kullanici/otomasyonkullanicisave',\r\n this.sinavKullanici,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n this.gridMain.instance.refresh().then(() => {\r\n this.setState({\r\n popup: false\r\n });\r\n });\r\n }\r\n else {\r\n this.sinavKullanici = {\r\n Kullanici: this.formData,\r\n KullaniciYayinYetki: this.KullaniciYayinYetki,\r\n MerkeziKurumYetki: this.MerkeziKurumYetki\r\n };\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n }).catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n } else {\r\n notify(err, \"error\", 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'KApat', icon: 'close'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormKullanici} ref={(ref) => this.formKullanici = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Kullanıcı Bilgileri\">\r\n <SimpleItem dataField={\"Email\"} isRequired={true}>\r\n <Label text=\"Email\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KullaniciAdi\"} isRequired={true}>\r\n <Label text=\"K. Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Sifre\"} isRequired={true} editorType=\"dxTextBox\">\r\n <Label text=\"Şifre\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Adi\"} isRequired={true}>\r\n <Label text=\"Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Soyadi\"} isRequired={true}>\r\n <Label text=\"Soyadı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tel\"}>\r\n <Label text=\"Telefon\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Gsm\"}>\r\n <Label text=\"Gsm\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SmsBilgi\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Sms Bilgi\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MailBilgi\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Mail Bilgi\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-grup\" colCount={3}>\r\n <SimpleItem dataField={\"Rol_Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.rolDataSource,\r\n remoteOperations: false,\r\n searchEnabled: false,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxRol,\r\n ref: (ref) => { this.selectBoxRol = ref },\r\n onValueChanged: (e) => {\r\n\r\n var rol = this.selectBoxRol.instance().option(\"text\");\r\n if (rol === \"SubeOgretmen\") {\r\n this.selectBoxBrans.instance().option(\"value\", this.formData.BransId);\r\n this.setState({\r\n drpBransVisible: true\r\n });\r\n }\r\n else {\r\n this.selectBoxBrans.instance().option(\"value\", null);\r\n this.setState({\r\n drpBransVisible: false\r\n });\r\n }\r\n }\r\n }} >\r\n <Label text=\"Rol\" />\r\n </SimpleItem>\r\n <SimpleItem\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.bransDataSource,\r\n remoteOperations: false,\r\n searchEnabled: false,\r\n disabled: !this.state.drpBransVisible,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxBrans,\r\n ref: (ref) => { this.selectBoxBrans = ref },\r\n onValueChanged: (e) => {\r\n this.formData.BransId = e.value;\r\n }\r\n }} >\r\n <Label text=\"Branş\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: sinavApi + \"kullanici/LogoUpload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n name: 'myFile',\r\n onValueChanged: this.onUploaded\r\n }}>\r\n <Label text=\"Logo seçiniz\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VarsayilanLogo\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Varsayılan Logo\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Yetkiler\">\r\n <SimpleItem>\r\n <h4>Yayın Yetkileri</h4>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.yayinDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n onInitialized={this.onInitializedGridYayin}\r\n onSelectionChanged={this.onSelectionGridYayinChanged}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridYayin = ref}\r\n >\r\n\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Selection mode=\"multiple\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"onClick\" />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Yayın\" />\r\n </DataGrid>\r\n </SimpleItem>\r\n <SimpleItem>\r\n <h4>Kurum Yetkileri</h4>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.kurumDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={false}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={false}\r\n onSelectionChanged={this.onSelectionGridKurumChanged}\r\n onInitialized={this.onInitializedGridKurum}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridKurum = ref}\r\n >\r\n\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Selection mode=\"multiple\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"onClick\" />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'ilAdi'} caption=\"İl\" />\r\n <Column dataField={'ilceAdi'} caption=\"İlçe\" />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" dataType=\"string\" />\r\n </DataGrid>\r\n </SimpleItem>\r\n\r\n </GroupItem>\r\n\r\n\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"50%\"}\r\n visible={this.state.kullaniciAktarVisible}\r\n title={\"Kullanıcı Aktarma İşlemi\"}\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kullanıcı Aktar',\r\n type: 'success',\r\n hint: 'Kullanıcı Aktar',\r\n icon: 'check',\r\n toolBarDisabled: false,\r\n onClick: async (e) => {\r\n let kullaniciData = [];\r\n this.gridMain.instance.getSelectedRowKeys().forEach((row) => {\r\n kullaniciData.push({\r\n KullaniciId: parseInt(row)\r\n })\r\n });\r\n console.log(kullaniciData);\r\n this.formKullaniciAktarData.Kullanicilar = kullaniciData;\r\n let result = confirm(\"Kullanıcıyı aktarmak istiyor musunuz?\", \"Kullanıcı yeni döneme aktarma onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.setState({\r\n toolBarDisabled: true\r\n });\r\n service.post(sinavApi + \"kullanici/otomasyonkullaniciaktar\", this.formKullaniciAktarData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n await this.setState({\r\n toolBarDisabled: false\r\n });\r\n await this.popupKullaniciAktarGizle();\r\n alert(res.data.Data, \"success\", 5000);\r\n } else {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.popupKullaniciAktarGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form colCount={1} formData={this.formKullaniciAktarData} onInitialized={(e) => {\r\n this.formKullaniciAktar = e.component;\r\n }} ref={(ref) => this.formKullaniciAktar = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem dataField=\"DonemId\" editorType=\"dxSelectBox\" editorOptions={{\r\n dataSource: this.donemDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }}>\r\n <Label text=\"Dönem Seçiniz\" />\r\n <RequiredRule message=\"Dönem alanı zorunludur\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form><br></br>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport Form, { SimpleItem, GroupItem, Label, TabbedItem, TabPanelOptions, Tab } from 'devextreme-react/form';\r\nimport service from 'axios';\r\nimport { otomasyonApi, sinavApi, karneApi } from '../../../Util';\r\nimport Globals from '../../../Globals';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataGrid, {\r\n Export, Column, Paging, Pager, FilterRow, LoadPanel, HeaderFilter, FilterPanel, ColumnChooser, ColumnFixing\r\n} from 'devextreme-react/data-grid';\r\nimport notify from 'devextreme/ui/notify';\r\nclass OgrenciDetail extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n console.log(props);\r\n this.state = {\r\n data: null\r\n };\r\n this.gridSinav = null;\r\n this.ogrenciId = props.data.data.Id;\r\n service.get(otomasyonApi + \"kayitkabul/getotomasyonogrenciresult/\" + this.ogrenciId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n console.log(res.data);\r\n this.setState({\r\n data: res.data.Data\r\n });\r\n });\r\n this.karneDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n key: \"RowNumber\",\r\n store: createStore({\r\n key: \"RowNumber\",\r\n loadParams: {\r\n ogrenciId: this.ogrenciId\r\n },\r\n loadUrl: karneApi + 'ogrenci/getotomasyonogrencikarnelerbyogrenciid',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n render() {\r\n if (this.state.data === null) {\r\n return (<React.Fragment>\r\n Öğrenci bilgisi getiriliyor...\r\n </React.Fragment>)\r\n }\r\n else {\r\n return (\r\n <React.Fragment>\r\n <Form colCount={1} formData={this.state.data}>\r\n <TabbedItem>\r\n <TabPanelOptions deferRendering={false} />\r\n <Tab title=\"Öğrenci Bilgileri\">\r\n <GroupItem cssClass=\"first-group\" colCount={2}>\r\n <SimpleItem dataField={\"Adi\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Adı\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Soyadi\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Soyadı\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"TcNo\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"T.C. No\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"CepTelefonu\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Cep Telefonu\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"OgrenciSifre\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Şifre\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VeliAdres\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Adres\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"AnneMeslek\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Anne Meslek\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"BabaMeslek\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Baba Meslek\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"DogumTarihi\"} editorType={\"dxDateBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Doğum Tarihi\"></Label>\r\n </SimpleItem>\r\n <SimpleItem>\r\n <img src={this.state.data.Fotograf} alt={this.state.data.Adi} style={{ width: \"64px\", height: \"64px\" }}></img>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Tab>\r\n <Tab title=\"Anne-Baba ve Veli Bilgileri\">\r\n <GroupItem cssClass=\"first-group\" colCount={2}>\r\n <SimpleItem dataField={\"AnneAdSoyad\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Anne Ad Soyad\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"BabaAdSoyad\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Baba Ad Soyad\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VeliAdSoyad\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Veli Ad Soyad\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VeliTcNo\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Veli T.C. No\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VeliCepTelefonu\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Veli Cep Telefonu\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VeliCepTelefonu2\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Veli Cep Telefonu 2\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VeliSifre\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Veli Şifre\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VeliYakinlik\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Veli Yakınlık\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VeliMeslek\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Veli Meslek\"></Label>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Tab>\r\n <Tab title=\"Kayıt Bilgileri\">\r\n <GroupItem cssClass=\"first-group\" colCount={2}>\r\n <SimpleItem dataField={\"KurumAdi\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Kurum\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SirketAdi\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Şirket\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MahkemeAdi\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Mahkeme\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KayitTarihi\"} editorType={\"dxDateBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Kayıt Tarihi\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinifSeviye\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Sınıf Seviye\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"EgitimTuru\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Eğitim Türü\"></Label>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Tab>\r\n <Tab title=\"Ödeme Bilgileri\" visible={Globals.service.Rol === \"SubeOgretmen\" ? false : true}>\r\n <GroupItem cssClass=\"first-group\" colCount={2}>\r\n <SimpleItem dataField={\"HizmetToplami\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n format: \"#,##0.##\",\r\n disabled: true\r\n }}>\r\n <Label text=\"Hizmet Toplamı\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Pesinat\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n format: \"#,##0.##\",\r\n disabled: true\r\n }}>\r\n <Label text=\"Peşinat\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"IndirimToplamTutar\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n format: \"#,##0.##\",\r\n disabled: true\r\n }}>\r\n <Label text=\"İndirim Toplam tutar\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"OdenecekToplamTutar\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n format: \"#,##0.##\",\r\n disabled: true\r\n }}>\r\n <Label text=\"Ödenecek Toplam tutar\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KalanTutar\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n format: \"#,##0.##\",\r\n disabled: true\r\n }}>\r\n <Label text=\"Kalan tutar\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KayitTuru\"} editorType={\"dxTextBox\"} editorOptions={{\r\n disabled: true\r\n }}>\r\n <Label text=\"Kayit Türu\"></Label>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Tab>\r\n <Tab title=\"Sınavlar\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.karneDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"RowNumber\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: \"Karne Al\", icon: 'exportpdf',\r\n text: \"Karne Al\",\r\n onClick: () => {\r\n const satir = this.satirSinav;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n\r\n service.post(karneApi + \"ogrenci/GetOtomasyonOgrenciKarne\",\r\n {\r\n OgrenciNo: satir.OgrenciNo,\r\n KurumId: satir.KurumId,\r\n KullaniciId: satir.KullaniciId,\r\n KurumLogo: satir.KurumLogo,\r\n SinavTuru: satir.SinavTuru,\r\n SinavTuruId: satir.SinavTuruId,\r\n MerkeziSinavId: satir.Id,\r\n MerkeziSinavLogId: satir.MerkeziSinavLogId\r\n },\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridSinav.instance.refresh();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(error => {\r\n notify(\"Teknik bir hata oluştu,lütfen daha sonra tekrar deneyiniz\", \"error\", 5000);\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n text: \"Yenile\",\r\n onClick: (e) => {\r\n\r\n this.gridSinav.instance.refresh();\r\n }\r\n }\r\n });\r\n }}\r\n onSelectionChanged={(selectedItems) => {\r\n this.satirSinav = selectedItems.selectedRowsData[0];\r\n }}\r\n ref={(ref) => this.gridSinav = ref}\r\n >\r\n <Export enabled={true} fileName={'Karneler'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'RowNumber'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField=\"YayinAdi\" caption=\"\"\r\n width={40}\r\n allowSorting={false}\r\n cellRender={linkRender}\r\n />\r\n <Column dataField={'KullaniciId'} caption=\"KullaniciId\" visible={false} />\r\n <Column dataField={'ListeKarneId'} caption=\"ListeKarneId\" visible={false} />\r\n <Column dataField={'KurumId'} caption=\"KurumId\" visible={false} />\r\n <Column dataField={'YayinAdi'} caption=\"Yayın\" />\r\n <Column dataField={'SinavTuru'} caption=\"Sınav Türü\" />\r\n <Column dataField={'SinavKodu'} caption=\"Sınav Kodu\" />\r\n <Column dataField={'SinavAdi'} caption=\"Sınav Adı\" />\r\n <Column dataField={'IlAdi'} caption=\"İl\" />\r\n <Column dataField={'IlceAdi'} caption=\"İlçe\" />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'Created'} caption=\"Tarih\" dataType=\"date\" format={\r\n \"dd/MM/yyyy HH:mm:ss\"\r\n } />\r\n <Column dataField={'DosyaTuru'} caption=\"DosyaTuru\" visible={false} />\r\n <Column dataField={'Dosya'} caption=\"Dosya\" visible={false} />\r\n </DataGrid>\r\n </Tab>\r\n </TabbedItem>\r\n </Form>\r\n </React.Fragment>\r\n );\r\n }\r\n }\r\n};\r\nexport default OgrenciDetail;\r\nfunction linkRender(data) {\r\n if (data === null)\r\n return <p></p>;\r\n else if (data.data.Dosya === undefined || data.data.Dosya === null || data.data.Dosya === \"\") {\r\n return <p></p>;\r\n }\r\n else {\r\n return <a rel=\"noopener noreferrer\" href={data.data.Dosya} target=\"_blank\">\r\n <img src=\"/icons/download.png\" alt=\"Excel Kurum Liste İndir\" /></a>;\r\n }\r\n}","import * as React from \"react\";\r\nimport Globals from '../../../Globals';\r\nimport service from 'axios';\r\nimport { sinavApi, otomasyonApi, GetStore, isEmpty, authApi } from '../../../Util';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { MasterDetail, Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label, ButtonItem } from 'devextreme-react/form';\r\nimport DataGrid, {\r\n Export, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, HeaderFilter, FilterPanel, ColumnChooser, RequiredRule\r\n} from 'devextreme-react/data-grid';\r\nimport { Popover } from 'devextreme-react/popover';\r\nimport jquery from 'jquery';\r\nimport auth from \"../../../Auth\";\r\nimport '../../OtomasyonModulu/toolbarButtons.css';\r\nimport { Workbook } from 'exceljs';\r\nimport { saveAs } from 'file-saver-es';\r\n// Our demo infrastructure requires us to use 'file-saver-es'.\r\n// We recommend that you use the official 'file-saver' package in your applications.\r\nimport { exportDataGrid } from 'devextreme/excel_exporter';\r\nimport OgrenciDetail from \"./OgrenciDetail\"; class OgrenciKayit extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n odemePlaniVisible: false,\r\n odemePlaniDetayVisible: false,\r\n tahsilatVisible: false,\r\n gorusmeVisible: false,\r\n subeDegisimiVisible: false,\r\n danismanDegisimiVisible: false,\r\n normalSmsVisible: false,\r\n secilenOgrenciNormalSmsVisible: false,\r\n secilenOgrenciBelgeVisible: false,\r\n gorusmeBaslik: \"\",\r\n OgrenciId: 0,\r\n toolBarDisabled: false,\r\n ogrenciAktarVisible: false,\r\n ogrenciDonemBilgiVisible: false,\r\n smsRaporVisible: false,\r\n smsSinavVisible: false,\r\n makbuzVisible: false,\r\n tahsilatDetayVisible: false,\r\n devamsizlikRaporVisible: false,\r\n selectedOgrenciRowKeys: []\r\n }\r\n this.gridSmsRapor = null;\r\n this.gridTaksitTahsilat = null;\r\n this.normalSmsMesajTextBox = null;\r\n this.normalSmsSecilenOgrenciMesajTextBox = null;\r\n this.filterEditor = null;\r\n this.selectBoxSinifSube = null;\r\n this.selectBoxSinifSeviye = null;\r\n this.selectBoxKayitTuru = null;\r\n this.selectBoxYayin = null;\r\n this.selectBoxSinavTuru = null;\r\n this.selectBoxMerkeziSinav = null;\r\n this.selectBoxSubeDegisimiSinifSube = null;\r\n this.gridMain = null;\r\n this.gridTaksit = null;\r\n this.gridOgrenciDonemBilgi = null;\r\n this.grdiGorusmeNotu = null;\r\n this.gridDevamsizlikAltRapor = null;\r\n this.gridDevamsizlikUstRapor = null;\r\n this.formMain = null;\r\n this.formOdemePlani = null;\r\n this.popupOdemePlani = null;\r\n this.formOdemePlaniDetay = null;\r\n this.formGorusme = null;\r\n this.formSubeDegisimi = null;\r\n this.formDanismanDegisimi = null;\r\n this.formNormalSms = null;\r\n this.formSecilenOgrenciNormalSms = null;\r\n this.formOgrenciAktar = null;\r\n this.formSinavSms = null;\r\n\r\n this.popupOdemePlaniDetay = null;\r\n this.formTahsilat = null;\r\n this.formMakbuz = null;\r\n this.satirIndex = null;\r\n this.satir = null;\r\n this.satirTaksit = null;\r\n this.secilenOgrenciler = [];\r\n this.satirGorusmeNotu = null;\r\n this.satirTaksitTahsilat = null;\r\n this.textBoxKalanTutar = null;\r\n this.textBoxIlkTaksitTarihi = null;\r\n this.btnOgrenciNoVer = null;\r\n this.toolTipKesinKayitYap = null;\r\n this.toolTipGorusmeler = null;\r\n this.toolTipSubeDegistir = null;\r\n this.toolTipDanismanDegistir = null;\r\n this.toolTipKayitListesiExcel = null;\r\n this.toolTipKayitSozlesmesi = null;\r\n this.toolTipOdemePlaniGoster = null;\r\n this.toolTipOdemePlaniOlustur = null;\r\n this.toolTipYeniOgrenciEkle = null;\r\n this.toolTipOgrenciDuzenle = null;\r\n this.toolTipOgrenciSil = null;\r\n this.toolTipDanismanListesi = null;\r\n this.toolTipYoklamaListesi = null;\r\n this.toolTipDevamsizlikListesi = null;\r\n this.toolTipOgrenciNoVer = null;\r\n this.toolTipYenidenOdemePlaniOlustur = null;\r\n this.toolTipTekSenet = null;\r\n this.toolTipSenet = null;\r\n this.toolTipTahsilatYap = null;\r\n this.toolTipTahsilatSil = null;\r\n this.toolTipMakbuz = null;\r\n this.toolTipOgrenciEtutListesi = null;\r\n this.toolTipOgrenciOdevListesi = null;\r\n this.toolTipNormalSms = null;\r\n this.toolTipSecilenOgrenciBelge = null;\r\n this.toolGecisYap = null;\r\n this.toolTipSecilenOgrenciNormalSms = null;\r\n this.toolTipSecilenOgrenciBelge = null;\r\n this.toolTipOgrenciAktar = null;\r\n this.toolTipOgrenciDonemBilgi = null;\r\n this.toolTipSmsGonderimBilgi = null;\r\n this.toolTipSeciliOgrenciSinavSms = null;\r\n this.smsSecilenOgrenciSinavMesajTextBox = null;\r\n this.onEditorPreparing = this.onEditorPreparing.bind(this);\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onToolbarPreparingGridTaksit = this.onToolbarPreparingGridTaksit.bind(this);\r\n this.onToolbarPreparingGridGorusmeNotu = this.onToolbarPreparingGridGorusmeNotu.bind(this);\r\n this.onInitialized = this.onInitialized.bind(this);\r\n this.onInitializedGridTaksit = this.onInitializedGridTaksit.bind(this);\r\n this.onInitializedGridGorusmeNotu = this.onInitializedGridGorusmeNotu.bind(this);\r\n this.onSelectionChangedGridTaksit = this.onSelectionChangedGridTaksit.bind(this);\r\n this.onSelectionChangedGridGorusmeNotu = this.onSelectionChangedGridGorusmeNotu.bind(this);\r\n this.onInitializedPopupOdemePlani = this.onInitializedPopupOdemePlani.bind(this);\r\n this.onInitializedPopupOdemePlaniDetay = this.onInitializedPopupOdemePlaniDetay.bind(this);\r\n this.onInitializedFormOdemePlani = this.onInitializedFormOdemePlani.bind(this);\r\n this.onInitializedFormOdemePlaniDetay = this.onInitializedFormOdemePlaniDetay.bind(this);\r\n this.onInitializedFormTahsilat = this.onInitializedFormTahsilat.bind(this);\r\n this.onInitializedFormMakbuz = this.onInitializedFormMakbuz.bind(this);\r\n this.onInitializedFormGorusme = this.onInitializedFormGorusme.bind(this);\r\n this.onInitializedTextBoxKalanTutar = this.onInitializedTextBoxKalanTutar.bind(this);\r\n this.onInitializedSelectBoxSinifSube = this.onInitializedSelectBoxSinifSube.bind(this);\r\n this.onInitializedSelectBoxSinifSeviye = this.onInitializedSelectBoxSinifSeviye.bind(this);\r\n this.onInitializedBtnOgrenciNoVer = this.onInitializedBtnOgrenciNoVer.bind(this);\r\n this.onInitializedSelectBoxKayiTuru = this.onInitializedSelectBoxKayiTuru.bind(this);\r\n this.onInitializedFormMain = this.onInitializedFormMain.bind(this);\r\n this.onInitializedFormSubeDegisimi = this.onInitializedFormSubeDegisimi.bind(this);\r\n this.onInitializedFormDanismanDegisimi = this.onInitializedFormDanismanDegisimi.bind(this);\r\n this.onInitializedFormNormalSms = this.onInitializedFormNormalSms.bind(this);\r\n this.onInitializedFormOgrenciAktar = this.onInitializedFormOgrenciAktar.bind(this);\r\n this.onInitializedFormSecilenOgrenciNormalSms = this.onInitializedFormSecilenOgrenciNormalSms.bind(this);\r\n this.onInitializedSelectBoxSubeDegisimiSinifSube = this.onInitializedSelectBoxSubeDegisimiSinifSube.bind(this);\r\n this.onInitializedGridOgrenciDonemBilgi = this.onInitializedGridOgrenciDonemBilgi.bind(this);\r\n this.onInitializedFormSinavSms = this.onInitializedFormSinavSms.bind(this);\r\n this.onInitializedSelectBoxYayin = this.onInitializedSelectBoxYayin.bind(this);\r\n this.onInitializedSelectBoxSinavTuru = this.onInitializedSelectBoxSinavTuru.bind(this);\r\n this.onInitializedSelectBoxMerkeziSinav = this.onInitializedSelectBoxMerkeziSinav.bind(this);\r\n this.onInitializedGridTaksitTahsilat = this.onInitializedGridTaksitTahsilat.bind(this);\r\n this.onToolbarPreparingGridTaksitTahsilat = this.onToolbarPreparingGridTaksitTahsilat.bind(this);\r\n this.onSelectionChangedGridTaksitTahsilat = this.onSelectionChangedGridTaksitTahsilat.bind(this);\r\n this.onSelectionOgrenciGridRowChanged = this.onSelectionOgrenciGridRowChanged.bind(this);\r\n this.onInitializedSeciliOgrenciVeliSmsCheckBox = this.onInitializedSeciliOgrenciVeliSmsCheckBox.bind(this);\r\n this.onInitializedSeciliOgrenciVeliNormalSmsCheckBox = this.onInitializedSeciliOgrenciVeliNormalSmsCheckBox.bind(this);\r\n this.onInitializedSeciliOgrenciVeliKurumSmsCheckBox = this.onInitializedSeciliOgrenciVeliKurumSmsCheckBox.bind(this);\r\n this.onExporting = this.onExporting.bind(this);\r\n\r\n this.popupSmsRaporGizle = () => {\r\n this.setState({\r\n smsRaporVisible: false\r\n });\r\n }\r\n\r\n this.popupSmsRaporAc = () => {\r\n this.setState({\r\n smsRaporVisible: true\r\n });\r\n }\r\n\r\n this.popupSmsSinavGizle = () => {\r\n this.setState({\r\n smsSinavVisible: false\r\n });\r\n }\r\n\r\n this.popupSmsSinavAc = () => {\r\n this.setState({\r\n smsSinavVisible: true\r\n });\r\n }\r\n\r\n this.popupOdemePlaniGizle = () => {\r\n this.setState({\r\n odemePlaniVisible: false\r\n });\r\n }\r\n\r\n this.popupOdemePlaniDetayGizle = () => {\r\n this.setState({\r\n odemePlaniDetayVisible: false\r\n });\r\n }\r\n\r\n this.popupTahsilatGizle = () => {\r\n this.setState({\r\n tahsilatVisible: false\r\n });\r\n }\r\n\r\n this.popupMakbuzGizle = () => {\r\n this.setState({\r\n makbuzVisible: false\r\n });\r\n }\r\n\r\n this.popupGorusmeGizle = () => {\r\n this.setState({\r\n gorusmeVisible: false\r\n });\r\n }\r\n\r\n this.popupTahsilatDetayGizle = () => {\r\n this.gridTaksit.instance.refresh();\r\n this.setState({\r\n tahsilatDetayVisible: false\r\n })\r\n }\r\n\r\n this.popupSubeDegisimGizle = () => {\r\n this.setState({\r\n subeDegisimVisible: false\r\n });\r\n };\r\n\r\n this.popupDanismanDegisimGizle = () => {\r\n this.setState({\r\n danismanDegisimiVisible: false\r\n });\r\n };\r\n\r\n this.popupNormalSmsGizle = () => {\r\n this.setState({\r\n normalSmsVisible: false\r\n });\r\n }\r\n\r\n this.popupOgrenciAktarGizle = () => {\r\n this.setState({\r\n ogrenciAktarVisible: false\r\n });\r\n }\r\n\r\n this.popupOgrenciDonemBilgiGizle = () => {\r\n this.setState({\r\n ogrenciDonemBilgiVisible: false\r\n });\r\n }\r\n\r\n this.popupSecilenOgrenciNormalSmsGizle = () => {\r\n this.setState({\r\n secilenOgrenciNormalSmsVisible: false\r\n });\r\n }\r\n\r\n this.popupDevamsizlikRaporGizle = () => {\r\n this.setState({\r\n devamsizlikRaporVisible: false\r\n });\r\n }\r\n\r\n\r\n this.formDataOdemePlani = {\r\n DinamikUcret: 0,\r\n Ucret1: { Id: 0 },\r\n Ucret2: { Id: 0 },\r\n Ucret3: { Id: 0 },\r\n Indirim: { Id: 0 },\r\n Ogrenci: { Id: 0 },\r\n OdemeTuru: 0,\r\n Pesinat: 0,\r\n IndirimOrani: 0,\r\n TaksitSayisi: 0,\r\n IlkTaksitTarihi: null,\r\n IlkTaksit: false,\r\n Aciklama: \"\",\r\n IsNakit: false,\r\n Dosya: null\r\n }\r\n\r\n this.formDataOdemePlaniDetay = {\r\n Id: 0,\r\n HizmetToplami: 0,\r\n Pesinat: 0,\r\n IndirimToplamTutar: 0,\r\n OdenecekToplamTutar: 0,\r\n TaksitSayisi: 0,\r\n IlkTaksitTarihi: null,\r\n Aciklama: \"\",\r\n OdemeTuru: \"\",\r\n TahsilatDurumu: \"\",\r\n TaksitTutar: 0\r\n }\r\n\r\n this.formTahsilatData = {\r\n Aciklama: \"\",\r\n TaksitOdemeTuru: null,\r\n TaksitId: 0,\r\n Tahsilat: 0,\r\n TahsilatTarihi: new Date(),\r\n OdemePlaniId: 0,\r\n OgrenciId: 0,\r\n MakbuzTuru: 1,\r\n BankaId: 0,\r\n SlipNo: \"\"\r\n }\r\n\r\n this.formMakbuzData = {\r\n TaksitId: 0,\r\n MakbuzTuru: 1\r\n };\r\n\r\n this.formGorusmeData = {\r\n Tarih: new Date(),\r\n Aciklama: null,\r\n IsVeliGorsun: false,\r\n Ogrenci: { Id: null }\r\n }\r\n\r\n this.formSubeDegisimiData = {\r\n SinifSeviyeId: null,\r\n SubeId: null\r\n }\r\n\r\n this.formDanismanDegisimiData = {\r\n DanismanId: null\r\n };\r\n\r\n this.formNormalSmsData = {\r\n Mesaj: \"\",\r\n GonderimTipi: 0,\r\n VeliCepTelEkstra: false\r\n };\r\n\r\n this.formSecilenOgrenciNormalSmsData = {\r\n Mesaj: \"\",\r\n GonderimTipi: 0,\r\n Ogrenciler: [],\r\n VeliCepTelEkstra: false\r\n }\r\n\r\n this.formOgrenciAktarData = {\r\n Ogrenciler: [],\r\n GecmisDonemId: Globals.service.DonemId,\r\n DonemId: null,\r\n OgrenciNoAktar: false\r\n };\r\n this.formSinavSmsData = {\r\n Ogrenciler: [],\r\n MerkeziSinavId: null,\r\n GonderimTipi: null,\r\n VeliCepTelEkstra: false\r\n }\r\n this.ogrenciStore = GetStore(\r\n \"Id\"\r\n , \"OtomasyonOgrenci\"\r\n , otomasyonApi + \"kayitkabul/listogrenciler\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n this.sinifSubeDataSource = GetStore(\r\n \"Id\"\r\n , \"OtomasyonSinifSube\"\r\n , otomasyonApi + \"geneltanim/listsinifsubebykullanici\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/save\"\r\n , otomasyonApi + \"common/delete\");\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadUrl: sinavApi + 'yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.yayinfilter = { YayinId: 0 };\r\n this.sinavTuruDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n loadParams: this.yayinfilter,\r\n loadUrl: sinavApi + 'ortak/GetSinavTurleriByYayinId',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.sinavTuruFilter = {\r\n YayinId: 0,\r\n SinavTuruId: 0\r\n };\r\n this.merkeziSinavDataSource = new DataSource(\r\n {\r\n filter: [\"Degerlendirilebilir\", \"=\", true],\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.sinavTuruFilter,\r\n loadUrl: sinavApi + 'merkezisinav/sgemerkezisinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.taksitFilter = {\r\n taksitId: 0\r\n };\r\n this.tahsilatDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.taksitFilter,\r\n loadUrl: otomasyonApi + 'kayitkabul/listtahsilatdetay',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.devamsizlikFilter = {\r\n ogrenciId: 0\r\n };\r\n this.devamsizlikAltRaporDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.devamsizlikFilter,\r\n loadUrl: otomasyonApi + 'devamsizlik/devamsizlikaltraporu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.devamsizlikUstRaporDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.devamsizlikFilter,\r\n loadUrl: otomasyonApi + 'devamsizlik/devamsizlikustraporu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.donemDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: authApi + 'auth/getdonemler',\r\n })\r\n });\r\n\r\n this.odemeTuruDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Value\",\r\n loadParams: {\r\n enumName: \"OdemeTuru\"\r\n },\r\n loadUrl: otomasyonApi + 'common/getenums',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.ogrenciFilter = { ogrenciId: 0 };\r\n this.gorusmeNotuDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.ogrenciFilter,\r\n loadUrl: otomasyonApi + 'kayitkabul/listgorusmenotu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.ogrenciTcNoFilter = { tcNo: \"0\" };\r\n this.ogrenciDonemDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.ogrenciTcNoFilter,\r\n loadUrl: otomasyonApi + 'ogrenci/getogrencidonembilgi',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.ucretDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n loadUrl: otomasyonApi + 'geneltanim/listucretbykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.odemePlaniFilter = { odemePlaniId: 0 };\r\n\r\n this.taksitDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.odemePlaniFilter,\r\n loadUrl: otomasyonApi + 'kayitkabul/listtaksitbyodemeplani',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.smsRaporFilter = { numara: \"\", veliNumara: \"\" };\r\n\r\n this.smsRaporDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.smsRaporFilter,\r\n loadUrl: otomasyonApi + 'sms/getsmsrapor',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.indirimDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n store: createStore({\r\n loadUrl: otomasyonApi + 'geneltanim/listindirimbykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.checkBoxSeciliOgrenciVeliSmsCheckBox = null;\r\n this.checkBoxSeciliOgrenciVeliNormalSmsCheckBox = null;\r\n this.checkBoxSeciliOgrenciVeliKurumSmsCheckBox = null;\r\n }\r\n\r\n renderSwitch(cellInfo) {\r\n console.log(cellInfo);\r\n const setEditedValue = valueChangedEventArg => {\r\n cellInfo.setValue(valueChangedEventArg.value);\r\n }\r\n if (!!cellInfo.data.Fotograf) {\r\n return (\r\n\r\n <React.Fragment>\r\n <img src={cellInfo.data.Fotograf} alt={cellInfo.data.Adi + \" \" + cellInfo.data.Soyadi} style={{ width: \"120px\", height: \"120px\" }}></img>\r\n </React.Fragment>\r\n )\r\n } else {\r\n return (\r\n <React.Fragment>\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n }\r\n //#region form bilgileri\r\n async onEditorPreparing(e) {\r\n\r\n if (e.parentType === \"dataRow\" && e.dataField === \"File\") {\r\n e.editorName = \"dxFileUploader\";\r\n e.editorOptions.name = \"myFile\";\r\n e.editorOptions.uploadUrl = otomasyonApi + \"KayitKabul/FotografUpload\";\r\n e.editorOptions.uploadHeaders = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n e.editorOptions.onUploaded = (args) => {\r\n var result = JSON.parse(args.request.response);\r\n if (result.Success) {\r\n const rowIndex = e.row.rowIndex\r\n e.component.cellValue(rowIndex, \"Fotograf\", result.Data);\r\n notify(\"Öğrenci fotoğrafı yüklendi\", \"success\", 5000);\r\n }\r\n else {\r\n notify(\"Öğrenci fotoğrafı yüklenemedi\", \"error\", 5000);\r\n }\r\n };\r\n\r\n }\r\n\r\n if (e.parentType === \"dataRow\" && e.dataField === \"AyrilmaTarihi\") {\r\n let date = new Date(e.editorOptions.value);\r\n if (date.getFullYear() === 1901) {\r\n e.editorOptions.value = null;\r\n }\r\n }\r\n if (e.parentType === \"dataRow\" && e.dataField === \"DogumTarihi\") {\r\n let date = new Date(e.editorOptions.value);\r\n if (date.getFullYear() === 1901) {\r\n e.editorOptions.value = null;\r\n }\r\n }\r\n\r\n if (e.parentType === \"dataRow\" && e.dataField === \"EOkulNo\") {\r\n if (e.row.isNewRow) {\r\n e.editorOptions.value = 0;\r\n e.editorOptions.min = 0;\r\n }\r\n else {\r\n e.editorOptions.min = 0;\r\n }\r\n }\r\n if (e.parentType === \"dataRow\" && e.dataField === \"OgrenciNo\") {\r\n if (!e.row.isNewRow && e.editorOptions.value > 0) {\r\n e.editorOptions.disabled = true;\r\n }\r\n else {\r\n e.editorOptions.buttons = [{\r\n location: \"after\",\r\n elementAttr: {\r\n id: \"btnOgrenciNoVerX\"\r\n },\r\n name: \"ogrenciNoVer\",\r\n options: {\r\n icon: \"plus\",\r\n\r\n text: \"Öğrenci No Ver\",\r\n disabled: e.editorOptions.value > 0 ? true : false,\r\n ref: (ref) => { this.btnOgrenciNoVer = ref },\r\n onInitialized: this.onInitializedBtnOgrenciNoVer,\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipOgrenciNoVer.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipOgrenciNoVer.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n service.get(otomasyonApi + \"kayitkabul/getogrencino/\" + e.row.data.SinifSeviye.Id,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n const rowIndex = e.row.rowIndex\r\n e.component.cellValue(rowIndex, \"OgrenciNo\", parseInt(res.data.Data));\r\n if (e.editorOptions.value > 0) {\r\n this.btnOgrenciNoVer.instance().option(\"disabled\", true);\r\n }\r\n\r\n\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n })\r\n }\r\n }\r\n }];\r\n }\r\n }\r\n\r\n if (e.parentType === \"dataRow\" && e.dataField === \"SinifSube.Id\") {\r\n if (!isEmpty(e.row.data)) {\r\n e.editorOptions.disabled = (typeof e.row.data.SinifSeviye.Id !== \"number\");\r\n e.editorOptions.dataSource.filter([\"SeviyeId\", \"=\", e.row.data.SinifSeviye.Id]);\r\n e.editorOptions.dataSource.load();\r\n }\r\n }\r\n }\r\n\r\n gridMainSatirIptal() {\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.satir = null;\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n onInitialized(e) {\r\n this.gridMain = e.component;\r\n }\r\n\r\n onInitializedFormMain(e) {\r\n this.formMain = e.component;\r\n }\r\n\r\n onInitializedFormOgrenciAktar(e) {\r\n this.formOgrenciAktar = e.component;\r\n }\r\n\r\n onInitializedBtnOgrenciNoVer(e) {\r\n this.btnOgrenciNoVer = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinifSube(e) {\r\n this.selectBoxSinifSube = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinifSeviye(e) {\r\n this.selectBoxSinifSeviye = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSubeDegisimiSinifSube(e) {\r\n this.selectBoxSubeDegisimiSinifSube = e.component;\r\n }\r\n\r\n onInitializedSelectBoxKayiTuru(e) {\r\n this.selectBoxKayitTuru = e.component;\r\n }\r\n\r\n onInitializedGridTaksit(e) {\r\n this.gridTaksit = e.component;\r\n }\r\n\r\n onInitializedGridGorusmeNotu(e) {\r\n this.grdiGorusmeNotu = e.component;\r\n }\r\n onInitializedGridOgrenciDonemBilgi(e) {\r\n this.gridOgrenciDonemBilgi = e.component;\r\n }\r\n\r\n onInitializedPopupOdemePlani(e) {\r\n this.popupOdemePlani = e.component;\r\n }\r\n\r\n onInitializedPopupOdemePlaniDetay(e) {\r\n this.popupOdemePlaniDetay = e.component;\r\n }\r\n\r\n onInitializedFormOdemePlani(e) {\r\n this.formOdemePlani = e.component;\r\n }\r\n\r\n onInitializedFormOdemePlaniDetay(e) {\r\n this.formOdemePlani = e.component;\r\n }\r\n\r\n onInitializedFormTahsilat(e) {\r\n this.formTahsilat = e.component;\r\n }\r\n\r\n onInitializedFormMakbuz(e) {\r\n this.formMakbuz = e.component;\r\n }\r\n\r\n onInitializedFormGorusme(e) {\r\n this.formGorusme = e.component;\r\n }\r\n\r\n onInitializedFormSubeDegisimi(e) {\r\n this.formSubeDegisimi = e.component;\r\n }\r\n\r\n onInitializedFormDanismanDegisimi(e) {\r\n this.formDanismanDegisimi = e.component;\r\n }\r\n\r\n onInitializedTextBoxKalanTutar(e) {\r\n this.textBoxKalanTutar = e.component;\r\n }\r\n\r\n onInitializedFormNormalSms(e) {\r\n this.formNormalSms = e.component;\r\n }\r\n\r\n onInitializedSelectBoxYayin(e) {\r\n this.selectBoxYayin = e.component;\r\n }\r\n\r\n onInitializedSelectBoxMerkeziSinav(e) {\r\n this.selectBoxMerkeziSinav = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinavTuru(e) {\r\n this.selectBoxSinavTuru = e.component;\r\n }\r\n\r\n onInitializedFormSecilenOgrenciNormalSms(e) {\r\n this.formSecilenOgrenciNormalSms = e.component;\r\n }\r\n\r\n onInitializedGridTaksitTahsilat(e) {\r\n this.gridTaksitTahsilat = e.component;\r\n }\r\n\r\n onInitializedFormSinavSms(e) {\r\n this.formSinavSms = e.component;\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n elementAttr: {\r\n id: \"btnSmsRapor\"\r\n },\r\n icon: \"attach\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipSmsGonderimBilgi.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipSmsGonderimBilgi.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: async () => {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n this.smsRaporFilter.numara = this.satir.CepTelefonu;\r\n this.smsRaporFilter.veliNumara = this.satir.VeliCepTelefonu;\r\n await this.smsRaporDataSource.load();\r\n await this.gridSmsRapor.instance.refresh();\r\n this.setState({\r\n smsRaporVisible: true\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n elementAttr: {\r\n id: \"btnOgrenciDonemBilgi\"\r\n },\r\n icon: \"info\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipOgrenciDonemBilgi.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipOgrenciDonemBilgi.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: async () => {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n this.ogrenciTcNoFilter.tcNo = this.satir.TcNo;\r\n await this.ogrenciDonemDataSource.load();\r\n await this.gridOgrenciDonemBilgi.instance.refresh();\r\n this.setState({\r\n ogrenciDonemBilgiVisible: true\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n elementAttr: {\r\n id: \"btnOgrenciAktar\"\r\n },\r\n icon: \"importselected\",\r\n type: \"success\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipOgrenciAktar.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipOgrenciAktar.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: async () => {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n this.donemDataSource.filter([\"Id\", \"<>\", Globals.service.DonemId]);\r\n await this.donemDataSource.load();\r\n this.setState({\r\n ogrenciAktarVisible: true\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n elementAttr: {\r\n id: \"btnGecisYap\"\r\n },\r\n icon: \"user\",\r\n type: \"success\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipGecisYap.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipGecisYap.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n try {\r\n localStorage.removeItem(\"oturum\");\r\n localStorage.removeItem(\"session\");\r\n localStorage.removeItem(\"initialized\");\r\n } catch (error) {\r\n }\r\n const data = {\r\n KullaniciAdi: this.satir.TcNo,\r\n Sifre: this.satir.Sifre,\r\n Donem: { Id: this.satir.Donem.Id }\r\n }\r\n service.post(authApi + \"Auth/authenticate\"\r\n , data)\r\n .then(res => {\r\n auth.login(() => {\r\n\r\n\r\n var localStoregeData = {};\r\n res.data.AdSoyad = res.data.Kullanici.Adi + \" \" + res.data.Kullanici.Soyadi;\r\n res.data.Menu = res.data.Kullanici.KullaniciMenuler;\r\n res.data.Rol = res.data.Kullanici.Rol;\r\n res.data.Id = res.data.Kullanici.Id;\r\n res.data.DonemId = res.data.Kullanici.Donem.Id;\r\n res.data.DonemAdi = res.data.Kullanici.DonemAdi;\r\n res.data.KurumId = res.data.Kullanici.KurumId;\r\n localStorage.setItem(\"oturum\", JSON.stringify(res.data));\r\n // Globals.AdSoyad = localStoregeData.Kullanici.Adi + \" \" + localStoregeData.Kullanici.Soyadi;\r\n // Globals.menuler = localStoregeData.Kullanici.KullaniciMenuler;\r\n Globals.service = localStoregeData;\r\n // Globals.Token = localStoregeData.Token;\r\n // Globals.Rol = localStoregeData.Kullanici.Rol;\r\n if (Globals.service.Rol === \"SubeKayitKabul\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeMuhasebe\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeKayitMuhasebe\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"Sube\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"GenelMerkez\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeVeli\") {\r\n this.props.history.push(\"/velidashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeOgrenci\") {\r\n window.location.href = \"/ogrencidashboard\";\r\n }\r\n else {\r\n this.props.history.push(\"/home\");\r\n }\r\n\r\n });\r\n })\r\n .catch((error) => {\r\n // Error 😨\r\n if (error.response) {\r\n notify(error.response.data.message, 'error', 5000);\r\n } else if (error.request) {\r\n notify(error.request, 'error', 5000);\r\n } else {\r\n notify(\"Teknik bir hat oluştu\", 'error', 5000);\r\n }\r\n\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n options: {\r\n elementAttr: {\r\n id: \"btnSecilenOgrenciBelge\"\r\n },\r\n icon: \"textdocument\",\r\n type: \"success\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipSecilenOgrenciBelge.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipSecilenOgrenciBelge.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.OgrenciBelgesiBas();\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n elementAttr: {\r\n id: \"btnSeciliOgrenciSms\"\r\n },\r\n icon: \"email\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipSeciliOgrenciSinavSms.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipSeciliOgrenciSinavSms.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: async () => {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n // this.smsRaporFilter.numara = this.satir.CepTelefonu;\r\n // this.smsRaporFilter.veliNumara = this.satir.VeliCepTelefonu;\r\n // await this.smsRaporDataSource.load();\r\n // await this.gridSmsRapor.instance.refresh();\r\n this.setState({\r\n smsSinavVisible: true\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: true,\r\n options: {\r\n elementAttr: {\r\n id: \"btnSecilenOgrenciNormalSms\"\r\n },\r\n icon: \"email\",\r\n type: \"success\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipSecilenOgrenciNormalSms.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipSecilenOgrenciNormalSms.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.setState({\r\n secilenOgrenciNormalSmsVisible: true\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: true,\r\n options: {\r\n elementAttr: {\r\n id: \"btnNormalSms\"\r\n },\r\n icon: \"email\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipNormalSms.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipNormalSms.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.setState({\r\n normalSmsVisible: true\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n elementAttr: {\r\n id: \"btnDevamsizlikListesi\"\r\n },\r\n icon: \"runner\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipDevamsizlikListesi.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipDevamsizlikListesi.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.DevamsizlikListesiBas();\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n widget: \"dxButton\",\r\n visible: [\"SubeOgretmen\", \"Sube\", \"GenelMerkez\"].includes(Globals.service.Rol) ? true : false,\r\n options: {\r\n elementAttr: {\r\n id: \"btnOgrenciOdevListesi\"\r\n },\r\n icon: \"exportpdf\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipOgrenciOdevListesi.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipOgrenciOdevListesi.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.OgrenciOdevListesiBas();\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" || Globals.service.Rol === \"Sube\" ? true : false,\r\n options: {\r\n elementAttr: {\r\n id: \"btnOgrenciEtutListesi\"\r\n },\r\n icon: \"exportpdf\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipOgrenciEtutListesi.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipOgrenciEtutListesi.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.OgrenciEtutListesiBas();\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n elementAttr: {\r\n id: \"btnYoklamaListesi\"\r\n },\r\n icon: \"exportpdf\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipYoklamaListesi.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipYoklamaListesi.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.yoklamaListesiBas();\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n options: {\r\n elementAttr: {\r\n id: \"btnDanismanListesi\"\r\n },\r\n icon: \"exportpdf\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipDanismanListesi.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipDanismanListesi.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.danismanListesiBas();\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n options: {\r\n elementAttr: {\r\n id: \"btnKayitListesiExcel\"\r\n },\r\n icon: \"xlsfile\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipKayitListesiExcel.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipKayitListesiExcel.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.kayitListesiBas();\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n elementAttr: {\r\n id: \"btnGorusmeler\"\r\n },\r\n icon: \"comment\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipGorusmeler.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipGorusmeler.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: async () => {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n this.ogrenciFilter.ogrenciId = this.satir.Id;\r\n\r\n await this.grdiGorusmeNotu.instance.refresh();\r\n this.setState({\r\n OgrenciId: this.satir.Id,\r\n gorusmeVisible: true,\r\n gorusmeBaslik: this.satir.Adi + \" \" + this.satir.Soyadi + \" için görüşme notları\"\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n options: {\r\n icon: \"search\",\r\n elementAttr: {\r\n id: \"btnOdemePlaniGoster\"\r\n },\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipOdemePlaniGoster.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipOdemePlaniGoster.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.odemePlaniDetay();\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n options: {\r\n icon: \"formula\",\r\n elementAttr: {\r\n id: \"btnOdemePlaniOlustur\"\r\n },\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipOdemePlaniOlustur.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipOdemePlaniOlustur.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.odemePlaniOlustur();\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n options: {\r\n elementAttr: {\r\n id: \"btnSozlesmeBas\"\r\n },\r\n icon: \"print\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipKayitSozlesmesi.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipKayitSozlesmesi.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.sozlesmeBas();\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n options: {\r\n elementAttr: {\r\n id: \"btnYeniOgrenciEkle\"\r\n },\r\n icon: \"add\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipYeniOgrenciEkle.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipYeniOgrenciEkle.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n this.gridMain.instance.addRow();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto',\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n widget: 'dxButton', options: {\r\n elementAttr: {\r\n id: \"btnOgrenciDuzenle\"\r\n },\r\n type: 'default',\r\n icon: 'edit',\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipOgrenciDuzenle.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipOgrenciDuzenle.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n if (this.satirIndex === -1 | this.satirIndex === null) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n this.gridMain.instance.editRow(this.satirIndex);\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n widget: 'dxButton',\r\n visible: Globals.service.Rol === \"SubeKayitKabul\" | Globals.service.Rol === \"SubeOgretmen\" | Globals.service.Rol === \"SubeMuhasebe\" ? false : true,\r\n options: {\r\n type: 'danger',\r\n elementAttr: {\r\n id: \"btnOgrenciSil\"\r\n },\r\n icon: 'trash',\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipOgrenciSil.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipOgrenciSil.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: async () => {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız silinecektir.Bu işlem geri alınamaz emin misiniz?<br/><b><font style='color:red'>Bunun yerine öğrenci kaydını pasife alabilirsiniz</font></b></i>\", \"Silme onayı\");\r\n result.then(async (dialogResult) => {\r\n if (dialogResult === true) {\r\n let result2 = confirm(\"<i>Tekrardan belirtmek isteriz kaydınız silinecektir.Bu işlem geri alınamaz emin misiniz?<br/><b><font style='color:red'>Bunun yerine öğrenci kaydını pasife alabilirsiniz</font></b></i>\", \"Silme onayı(İkinci onay)\");\r\n result2.then(async (dialogResult2) => {\r\n if (dialogResult2 === true) {\r\n await this.gridMain.instance.deleteRow(this.satirIndex);\r\n await this.gridMainSatirIptal();\r\n }\r\n });\r\n\r\n }\r\n });\r\n\r\n }\r\n }\r\n }\r\n },\r\n {\r\n\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n options: {\r\n icon: \"user\",\r\n type: \"success\",\r\n elementAttr: {\r\n id: \"btnDanismanDegistir\",\r\n class: \"btn-success\"\r\n },\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipDanismanDegistir.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipDanismanDegistir.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n if (this.gridMain.instance.getSelectedRowKeys().length === 0) {\r\n alert(\"Lütfen öğrenci listesinden, en sol tarafta bulunan seçim kutuları ile bir veya birden fazla öğrenci seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n this.setState({\r\n danismanDegisimiVisible: true\r\n });\r\n\r\n }\r\n\r\n }\r\n }\r\n },\r\n {\r\n\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n options: {\r\n icon: \"group\",\r\n type: \"normal\",\r\n elementAttr: {\r\n id: \"btnSubeDegistir\"\r\n },\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipSubeDegistir.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipSubeDegistir.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n if (this.gridMain.instance.getSelectedRowKeys().length === 0) {\r\n alert(\"Lütfen öğrenci listesinden, en sol tarafta bulunan seçim kutuları ile bir veya birden fazla öğrenci seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n this.setState({\r\n subeDegisimVisible: true\r\n });\r\n\r\n }\r\n\r\n }\r\n }\r\n },\r\n {\r\n\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n options: {\r\n icon: \"check\",\r\n elementAttr: {\r\n id: \"btnKesinKayitYap\"\r\n },\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipKesinKayitYap.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipKesinKayitYap.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n if (this.gridMain.instance.getSelectedRowKeys().length === 0) {\r\n alert(\"Lütfen öğrenci listesinden, en sol tarafta bulunan seçim kutuları ile bir veya birden fazla öğrenci seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n let ogrenciData = [];\r\n this.gridMain.instance.getSelectedRowKeys().forEach((ogrenci) => {\r\n ogrenciData.push({\r\n OgrenciId: parseInt(ogrenci)\r\n })\r\n });\r\n service.post(otomasyonApi + \"kayitkabul/kesinKayitYap\", ogrenciData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n await this.gridMainSatirIptal();\r\n await this.gridMain.instance.refresh();\r\n notify(\"İşleminiz gerçekleşti\", \"success\", 5000);\r\n } else {\r\n notify(\"Teknik bir hata oluştu,\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(\"Teknik bir hata oluştu,\" + err, \"error\", 5000);\r\n });\r\n\r\n }\r\n\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton',\r\n visible: Globals.service.Rol === \"SubeKayitKabul\" | Globals.service.Rol === \"SubeOgretmen\" | Globals.service.Rol === \"SubeMuhasebe\" ? false : true,\r\n options: {\r\n type: 'success', hint: 'Öğrenciyi Aktif Yap', icon: 'isnotblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız aktif hale getirilecektir emin misiniz?</i>\", \"Aktif etme onayı\");\r\n result.then(async (dialogResult) => {\r\n if (dialogResult === true) {\r\n this.ogrenciStore.store().update(this.satir.Id, { Deleted: false }).done(() => {\r\n this.gridMain.instance.refresh().done(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton',\r\n visible: Globals.service.Rol === \"SubeKayitKabul\" | Globals.service.Rol === \"SubeOgretmen\" | Globals.service.Rol === \"SubeMuhasebe\" ? false : true,\r\n options: {\r\n type: 'danger', hint: 'Öğrenciyi Pasif Yap', icon: 'isblank',\r\n onClick: () => {\r\n if (this.satirIndex === undefined | this.satirIndex === null) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n\r\n let result = confirm(\"<i>Kaydınız pasif hale getirilecektir emin misiniz?</i>\", \"Pasif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.ogrenciStore.store().update(this.satir.Id, { Deleted: true }).done(() => {\r\n this.gridMain.instance.refresh().done(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridMain.instance.refresh().done(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n template: () => {\r\n return (\"<div class='dx-item-content dx-toolbar-item-content'><div class='dx-button dx-button-default dx-button-mode-contained dx-widget dx-button-has-icon' aria-label='help' title='Yardım' tabindex='0' role='button'><div class='dx-button-content'><a href='/yardim/kepsogrenciekrani.pdf' target='_blank' title='Yardım'><i class='dx-icon dx-icon-help'></i></a></div></div></div></div>\");\r\n }\r\n // widget: 'dxButton',\r\n // options: {\r\n // type: 'default',\r\n // hint: 'Yardım',\r\n // icon: 'help',\r\n // onClick: () => {\r\n // window.location.href = \"/yardim/kepsogrenciekrani.pdf\";\r\n // }\r\n // }\r\n }\r\n );\r\n }\r\n\r\n onToolbarPreparingGridTaksit(e) {\r\n e.toolbarOptions.items.unshift(\r\n\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"search\",\r\n text: \"Alınan Tahsilatlar\",\r\n elementAttr: {\r\n id: \"btnTahsilat\"\r\n },\r\n type: \"default\",\r\n onClick: () => {\r\n\r\n if (this.satirTaksit === null || this.satirTaksit === undefined) {\r\n alert(\"Lütfen bir taksit satırı seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n\r\n this.taksitFilter.taksitId = this.satirTaksit.Id;\r\n this.gridTaksitTahsilat.instance.refresh();\r\n this.setState({\r\n tahsilatDetayVisible: true\r\n });\r\n }\r\n\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"print\",\r\n text: \"Makbuz\",\r\n elementAttr: {\r\n id: \"btnMakbuz\"\r\n },\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipMakbuz.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipMakbuz.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n\r\n if (this.satirTaksit === null || this.satirTaksit === undefined) {\r\n alert(\"Lütfen bir taksit satırı seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n this.formMakbuzData.TaksitId = this.satirTaksit.Id;\r\n this.setState({\r\n makbuzVisible: true\r\n });\r\n }\r\n\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"print\",\r\n elementAttr: {\r\n id: \"btnSenet\"\r\n },\r\n text: \"Senet\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipSenet.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipSenet.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n if (this.formDataOdemePlaniDetay.IsNakit) {\r\n alert(\"Üzgünüz, ödemesi nakit alınmış bir ödeme planı için senet bastırılamaz\", \"Uyarı\");\r\n\r\n }\r\n else {\r\n\r\n service.get(otomasyonApi + \"kayitkabul/senetbas/\" + this.formDataOdemePlaniDetay.Id,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n alert(\"Senediniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile senedinizi bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n if (this.gridTaksit.instance !== null) {\r\n this.gridTaksit.instance.clearSelection();\r\n this.satirTaksit = null;\r\n this.gridTaksit.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n else {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"print\",\r\n elementAttr: {\r\n id: \"btnTekSenet\"\r\n },\r\n text: \"Tek Senet\",\r\n type: \"default\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipTekSenet.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipTekSenet.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n if (this.formDataOdemePlaniDetay.IsNakit) {\r\n alert(\"Üzgünüz, ödemesi nakit alınmış bir ödeme planı için senet bastırılamaz\", \"Uyarı\");\r\n\r\n }\r\n else {\r\n\r\n service.get(otomasyonApi + \"kayitkabul/teksenetbas/\" + this.formDataOdemePlaniDetay.Id,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n alert(\"Senediniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile senedinizi bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n if (this.gridTaksit.instance !== null) {\r\n this.gridTaksit.instance.clearSelection();\r\n this.satirTaksit = null;\r\n this.gridTaksit.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n else {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"todo\",\r\n elementAttr: {\r\n id: \"btnTahsilatYap\"\r\n },\r\n text: \"Tahsilat Yap\",\r\n type: \"success\",\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipTahsilatYap.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipTahsilatYap.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n if (this.satirTaksit === null || this.satirTaksit === undefined) {\r\n alert(\"Lütfen bir taksit satırı seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n this.formTahsilatData = {\r\n Aciklama: \"\",\r\n TaksitOdemeTuru: null,\r\n MakbuzTuru: 1,\r\n TaksitId: this.satirTaksit.Id,\r\n Tahsilat: parseFloat(this.satirTaksit.Tutar) - parseFloat(this.satirTaksit.ToplamTahsilat),\r\n OdemePlaniId: this.satirTaksit.OdemePlani.Id,\r\n OgrenciId: this.state.OgrenciId,\r\n TahsilatTarihi: new Date(),\r\n BankaId: 0,\r\n SlipNo: \"\"\r\n }\r\n this.setState({\r\n tahsilatVisible: true\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"remove\",\r\n elementAttr: {\r\n id: \"btnTahsilatSil\"\r\n },\r\n text: \"Tahsilatları Sil\",\r\n type: \"danger\",\r\n visible: (Globals.service.Rol === \"SubeKayitKabul\" || Globals.service.Rol === \"SubeOgretmen\") ? false : true,\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipTahsilatSil.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipTahsilatSil.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n if (this.satirTaksit === null || this.satirTaksit === undefined) {\r\n alert(\"Lütfen bir taksit satırı seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n let result = confirm(\"<i><font color='red'>Seçili taksidin <font color='red'>bütün tahsilatlarını</font> silmek istediğinize emin misiniz?</font></i>\", \"Tahsilat bilgisi silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(otomasyonApi + \"kayitkabul/tahsilatsil/\" + this.satirTaksit.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n if (this.gridTaksit.instance !== null) {\r\n await this.gridTaksit.instance.refresh();\r\n await service.get(otomasyonApi + \"kayitkabul/gettoplamtahsilat/\" + this.satirTaksit.OdemePlani.Id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n const kalanOdeme = parseFloat(res.data.Data);\r\n this.textBoxKalanTutar.instance().option(\"value\", kalanOdeme);\r\n if (this.gridTaksit.instance !== null) {\r\n this.gridTaksit.instance.clearSelection();\r\n this.satirTaksit = null;\r\n this.gridTaksit.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n });\r\n\r\n }\r\n }\r\n else {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onToolbarPreparingGridGorusmeNotu(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"trash\",\r\n text: \"Sil\",\r\n hint: \"Sil\",\r\n type: \"danger\",\r\n onClick: () => {\r\n\r\n\r\n if (this.satirGorusmeNotu === null || this.satirGorusmeNotu === undefined) {\r\n alert(\"Lütfen birgörüşme notu satırı seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n service.post(otomasyonApi + \"kayitkabul/gorusmenotusil/\" + this.satirGorusmeNotu.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n if (this.grdiGorusmeNotu.instance !== null) {\r\n this.grdiGorusmeNotu.instance.clearSelection();\r\n this.satirGorusmeNotu = null;\r\n this.grdiGorusmeNotu.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n this.grdiGorusmeNotu.instance.refresh();\r\n }\r\n else {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n\r\n }\r\n }\r\n },\r\n\r\n );\r\n }\r\n\r\n onToolbarPreparingGridTaksitTahsilat(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"trash\",\r\n text: \"Sil\",\r\n hint: \"Sil\",\r\n type: \"danger\",\r\n visible: (Globals.service.Rol === \"SubeKayitKabul\" || Globals.service.Rol === \"SubeOgretmen\") ? false : true,\r\n onClick: () => {\r\n\r\n\r\n if (this.satirTaksitTahsilat === null || this.satirTaksitTahsilat === undefined) {\r\n alert(\"Lütfen tahsilat satırı seçiniz\", \"Uyarı\");\r\n }\r\n else {\r\n let result = confirm(\"<i><font color='red'>Seçilen tahsilat satırını silinecektir, emin misiniz?</font></i>\", \"Tahsilat Bilgisi Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(otomasyonApi + \"kayitkabul/taksittahsilatsatirsil/\" + this.satirTaksitTahsilat.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n if (this.gridTaksitTahsilat.instance !== null) {\r\n this.gridTaksitTahsilat.instance.clearSelection();\r\n this.satirTaksitTahsilat = null;\r\n this.gridTaksitTahsilat.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n await this.gridTaksitTahsilat.instance.refresh();\r\n await service.get(otomasyonApi + \"kayitkabul/gettoplamtahsilat/\" + this.satirTaksit.OdemePlani.Id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n const kalanOdeme = parseFloat(res.data.Data);\r\n this.textBoxKalanTutar.instance().option(\"value\", kalanOdeme);\r\n });\r\n\r\n\r\n }\r\n else {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n });\r\n }\r\n\r\n }\r\n }\r\n },\r\n\r\n );\r\n }\r\n\r\n onSelectionChangedGridTaksit(item) {\r\n if (item.row !== undefined) {\r\n this.satirTaksit = item.row.data;\r\n }\r\n }\r\n\r\n onSelectionChangedGridTaksitTahsilat(item) {\r\n if (item.row !== undefined) {\r\n this.satirTaksitTahsilat = item.row.data;\r\n }\r\n }\r\n\r\n\r\n onSelectionChangedGridGorusmeNotu(item) {\r\n if (item.row !== undefined) {\r\n this.satirGorusmeNotu = item.row.data;\r\n }\r\n }\r\n\r\n odemePlaniDetay() {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n if (this.satir.IsOdemePlani) {\r\n service.get(otomasyonApi + \"kayitkabul/odemeplanidetay/\" + this.satir.Id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.formDataOdemePlaniDetay = res.data.Data;\r\n this.odemePlaniFilter.odemePlaniId = this.formDataOdemePlaniDetay.Id;\r\n var ilkTaksitTarihi = new Date(res.data.Data.IlkTaksitTarihi);\r\n if (ilkTaksitTarihi.getFullYear() === 1) {\r\n this.formDataOdemePlaniDetay.IlkTaksitTarihi = null;\r\n this.textBoxIlkTaksitTarihi.instance().option(\"value\", null);\r\n }\r\n await this.gridTaksit.instance.refresh();\r\n\r\n this.popupOdemePlaniDetay.instance.option(\"title\", this.satir.Adi + \" \" + this.satir.Soyadi + \" için oluşturulan ödeme planı\");\r\n this.setState({\r\n odemePlaniDetayVisible: true,\r\n OgrenciId: this.satir.Id\r\n });\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n\r\n } else {\r\n notify(\"Bu öğrenci için ödeme planı oluşturulmamış\", \"warning\", 5000);\r\n }\r\n }\r\n }\r\n\r\n sozlesmeBas() {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n if (this.satir.IsOdemePlani) {\r\n service.get(otomasyonApi + \"kayitkabul/sozlesmebas/\" + this.satir.Id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n alert(\"Sözleşmeniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile sözleşmenizi bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n\r\n } else {\r\n notify(\"Bu öğrenci için ödeme planı oluşturulmamış\", \"warning\", 5000);\r\n }\r\n }\r\n }\r\n\r\n kayitListesiBas() {\r\n\r\n service.get(otomasyonApi + \"kayitkabul/kayitlistesibas\", {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n alert(\"Kayıt listeniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile kayıt listesinizi bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n\r\n yoklamaListesiBas() {\r\n service.get(otomasyonApi + \"kayitkabul/yoklamalistesibas\", {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n alert(\"Yoklama listeniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile yoklama listesinizi bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n\r\n DevamsizlikListesiBas() {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n this.devamsizlikFilter.ogrenciId = this.satir.Id;\r\n this.gridDevamsizlikAltRapor.instance.refresh();\r\n this.gridDevamsizlikUstRapor.instance.refresh();\r\n this.setState({\r\n devamsizlikRaporVisible: true\r\n });\r\n this.gridMainSatirIptal();\r\n }\r\n }\r\n\r\n OgrenciBelgesiBas() {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n service.get(otomasyonApi + \"ogrenci/getOgrenciBelge/\" + this.satir.Id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n alert(\"Öğrenci belgeniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile öğrenci belgenizi bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n OgrenciEtutListesiBas() {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n service.get(otomasyonApi + \"kayitkabul/ogrencietuttakip/\" + this.satir.KurumId + \"/\" + this.satir.Id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n alert(\"Öğrenci etüt listeniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile etüt listesinizi bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n OgrenciOdevListesiBas() {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n service.get(otomasyonApi + \"odev/ogrenciodevlistesiraporu/\" + this.satir.Id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n alert(\"Öğrenci ödev listeniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile ödev listesinizi bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n danismanListesiBas() {\r\n\r\n service.get(otomasyonApi + \"kayitkabul/danismanlistesibas\", {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n alert(\"Danışman listeniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile danışman listesinizi bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n\r\n odemePlaniOlustur() {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n if (this.satir.IsOdemePlani) {\r\n alert(\"Bu öğrenci için ödeme planı oluşturulmuş,<b style='color:red'>Ödeme planı detay menüsüne tıklayabilirsiniz<b>\", \"Bilgi\");\r\n notify(\"Bu öğrenci için ödeme planı oluşturulmuş,Ödeme planı detay menüsüne tıklayabilirsiniz\", \"warning\", 5000);\r\n }\r\n else {\r\n if (this.satir.KayitTuru === 2) {\r\n this.popupOdemePlani.instance.option(\"title\", this.satir.Adi + \" \" + this.satir.Soyadi + \" için ödeme planı\");\r\n this.formDataOdemePlani.Ogrenci.Id = this.satir.Id;\r\n this.setState({\r\n OgrenciId: this.satir.Id,\r\n odemePlaniVisible: true\r\n });\r\n }\r\n else {\r\n alert(\"Kayıt türü kesin olan öğrenciler için ödeme planı oluşturabilirsiniz\", \"Bilgi\");\r\n notify(\"Kayıt türü kesin olan öğrenciler için ödeme planı oluşturabilirsiniz\", \"warning\", 5000);\r\n }\r\n\r\n\r\n }\r\n }\r\n }\r\n\r\n onSelectionOgrenciGridRowChanged({ selectedRowKeys, selectedRowsData }) {\r\n this.setState({\r\n ...this.state,\r\n selectedOgrenciRowKeys: selectedRowKeys\r\n });\r\n console.log(this.state.selectedOgrenciRowKeys);\r\n }\r\n\r\n onExporting(e) {\r\n var workbook = new Workbook();\r\n var worksheet = workbook.addWorksheet('Main sheet');\r\n var PromiseArray = [];\r\n exportDataGrid({\r\n component: e.component,\r\n worksheet: worksheet,\r\n autoFilterEnabled: true,\r\n customizeCell: (options) => {\r\n var { excelCell, gridCell } = options;\r\n if (gridCell.rowType === \"data\") {\r\n if (gridCell.column.dataField === \"Fotograf\" && (gridCell.value !== undefined | gridCell.value !== \"\" | gridCell.value !== null)) {\r\n excelCell.value = undefined;\r\n PromiseArray.push(\r\n new Promise((resolve, reject) => {\r\n addImage(gridCell.value, workbook, worksheet, excelCell, resolve);\r\n })\r\n );\r\n }\r\n }\r\n }\r\n }).then(function () {\r\n Promise.all(PromiseArray).then(() => {\r\n workbook.xlsx.writeBuffer().then(function (buffer) {\r\n saveAs(new Blob([buffer], { type: \"application/octet-stream\" }), \"Ogrenciler.xlsx\");\r\n });\r\n });\r\n });\r\n e.cancel = true;\r\n }\r\n\r\n onInitializedSeciliOgrenciVeliSmsCheckBox(e) {\r\n this.checkBoxSeciliOgrenciVeliSmsCheckBox = e.component;\r\n }\r\n\r\n onInitializedSeciliOgrenciVeliNormalSmsCheckBox(e) {\r\n this.checkBoxSeciliOgrenciVeliNormalSmsCheckBox = e.component;\r\n }\r\n\r\n onInitializedSeciliOgrenciVeliKurumSmsCheckBox(e) {\r\n this.checkBoxSeciliOgrenciVeliKurumSmsCheckBox = e.component;\r\n }\r\n //#endregion\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <Popover\r\n target=\"#btnSeciliOgrenciSms\"\r\n position=\"top\"\r\n width={400}\r\n showTitle={true}\r\n title={\"Seçili Öğrencilere Sınav Sms Gönder\"}\r\n ref={(ref) => this.toolTipSeciliOgrenciSinavSms = ref}\r\n >\r\n Seçilen öğrencilere seçtiğiniz sınav bilgisinin smsini gönderebilirsiniz.<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnSmsRapor\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Sms Gönderim Bilgisi\"}\r\n ref={(ref) => this.toolTipSmsGonderimBilgi = ref}\r\n >\r\n Seçilen öğrenciye ait sms gönderim raporu alabilirsiniz.<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnOgrenciDonemBilgi\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Öğrenci Dönem Bilgisi\"}\r\n ref={(ref) => this.toolTipOgrenciDonemBilgi = ref}\r\n >\r\n Seçtiğiniz öğrencinin hangi dönemlerde kayıtlı olduğu hakkında bilgi vermektedir.<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnOgrenciAktar\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Öğrenci Aktar\"}\r\n ref={(ref) => this.toolTipOgrenciAktar = ref}\r\n >\r\n Seçtiğiniz öğrencilerin yeni döneme aktarılmasını sağlar(sectiğiniz döneme).<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnGecisYap\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Öğrenci Ekranına Geç\"}\r\n ref={(ref) => this.toolTipGecisYap = ref}\r\n >\r\n Seçtiğiniz öğrencinin ekranına otomatik olarak geçiş yapabilirsiniz.<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnSecilenOgrenciBelge\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Öğrenci Belgesi\"}\r\n ref={(ref) => this.toolTipSecilenOgrenciBelge = ref}\r\n >\r\n Seçilen Öğrenciye öğrenci belgesi oluşturabilirsiniz.<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnSecilenOgrenciNormalSms\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Sms Gönder\"}\r\n ref={(ref) => this.toolTipSecilenOgrenciNormalSms = ref}\r\n >\r\n Seçilen Öğrenci ve Öğrenci Velilerine sms gönderebilirsiniz.<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnNormalSms\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Sms Gönder\"}\r\n ref={(ref) => this.toolTipNormalSms = ref}\r\n >\r\n Öğrenci veya Velilere sms gönderebilirsiniz.<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnOgrenciOdevListesi\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Öğrenci Ödev Listesi\"}\r\n ref={(ref) => this.toolTipOgrenciOdevListesi = ref}\r\n >\r\n Seçili öğrenciye ait ödev listesini alabilirsiniz.<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnOgrenciEtutListesi\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Öğrenci Etüt Listesi\"}\r\n ref={(ref) => this.toolTipOgrenciEtutListesi = ref}\r\n >\r\n Seçili öğrenciye ait etüt listesini alabilirsiniz.<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnMakbuz\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Makbuz\"}\r\n ref={(ref) => this.toolTipMakbuz = ref}\r\n >\r\n Seçili takside ait ödeme makbuzunuzu alabilirsiniz.<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnTahsilatSil\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Tahsilat Sil\"}\r\n ref={(ref) => this.toolTipTahsilatSil = ref}\r\n >\r\n Seçili takside ait tahsilatları silebilirsiniz.<br></br>\r\n <font style={{ color: \"red\" }}>Bu işlem kesinlikle geri alınamaz!</font>\r\n </Popover>\r\n <Popover\r\n target=\"#btnTahsilatYap\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Tahsilat Yap\"}\r\n ref={(ref) => this.toolTipTahsilatYap = ref}\r\n >\r\n Seçili takside ait tahsilatları yapabilirsiniz.<br></br>\r\n Makbuz 1 (Taksit-Tahsilat tutarını içerir)<br></br>\r\n Makbuz 2 (Taksit-Tahsilat tutarını içermez)<br></br>\r\n Makbuz 3 (Taksit-Tahsilat bilgilerini içermez.)\r\n </Popover>\r\n <Popover\r\n target=\"#btnSenet\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Senet\"}\r\n ref={(ref) => this.toolTipSenet = ref}\r\n >\r\n Taksit sayısı kadar senet oluşturabilirsiniz.\r\n </Popover>\r\n <Popover\r\n target=\"#btnTekSenet\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Tek Senet\"}\r\n ref={(ref) => this.toolTipTekSenet = ref}\r\n >\r\n Ödeme tarihinin son taksit tarihi olduğu tek senet oluşturabilirsiniz.\r\n </Popover>\r\n <Popover\r\n target=\"#btnYenidenOdemePlaniOlustur\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Yeniden Ödeme Planı Oluştur\"}\r\n ref={(ref) => this.toolTipYenidenOdemePlaniOlustur = ref}\r\n >\r\n Hizmet Toplamı, İndirim, Peşinat ve Taksit Sayısını değiştirerek ödeme planını değiştirebilirsiniz.<br></br>\r\n Tamamı veya bir kısmı tahsil edilmiş taksitlerde değişiklik yapılmaz.\r\n </Popover>\r\n <Popover\r\n target=\"#btnOgrenciNoVerX\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Öğrenci No Ver\"}\r\n ref={(ref) => this.toolTipOgrenciNoVer = ref}\r\n >\r\n Sınıf seviyesine göre otomatik öğrenci numarası verir.<br></br>\r\n Hangi sayıdan devam etmesini istiyorsanız ilk kaydı o sayıdan başlatmalısınız.\r\n\r\n\r\n </Popover>\r\n <Popover\r\n target=\"#btnDevamsizlikListesi\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Devamsızlık Listesi\"}\r\n ref={(ref) => this.toolTipDevamsizlikListesi = ref}\r\n >\r\n Devamsızlık Listelerini pdf formatında indirebilirsiniz.<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnYoklamaListesi\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Yoklama Listesi\"}\r\n ref={(ref) => this.toolTipYoklamaListesi = ref}\r\n >\r\n Sınıf Yoklama Listelerini pdf formatında indirebilirsiniz.<br></br>\r\n </Popover>\r\n <Popover\r\n target=\"#btnDanismanListesi\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Danışman Listesi\"}\r\n ref={(ref) => this.toolTipDanismanListesi = ref}\r\n >\r\n Danışmanlara bağlı öğrenci Listelerini pdf formatında indirebilirsiniz.\r\n </Popover>\r\n <Popover\r\n target=\"#btnOgrenciSil\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Öğrenciyi Sil\"}\r\n ref={(ref) => this.toolTipOgrenciSil = ref}\r\n >\r\n Öğrenciye ait bütün bilgileri silebilirsiniz.<br></br>\r\n <font style={{ color: \"red\" }}>Bu işlem kesinlikle geri alınamaz! </font>\r\n </Popover>\r\n <Popover\r\n target=\"#btnOgrenciDuzenle\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Öğrenciyi Düzenle\"}\r\n ref={(ref) => this.toolTipOgrenciDuzenle = ref}\r\n >\r\n Bilgileri düzenleyebilir veya yeni bilgiler ekleyebilirsiniz.\r\n </Popover>\r\n <Popover\r\n target=\"#btnYeniOgrenciEkle\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Yeni Öğrenci Ekle\"}\r\n ref={(ref) => this.toolTipYeniOgrenciEkle = ref}\r\n >\r\n Öğrenci, Anne, Baba ve Veli bilgilerini girerek kayıt ekleyebilirsiniz. <br></br>\r\n Şube tanımı yapılmadan kayıt eklenemez.<br></br>\r\n Şube tanımları <font style={{ color: \"red\" }}> Genel Tanımlar</font> ekranından yapılmaktadır.\r\n </Popover>\r\n <Popover\r\n target=\"#btnOdemePlaniOlustur\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Ödeme Planı Oluştur\"}\r\n ref={(ref) => this.toolTipOdemePlaniOlustur = ref}\r\n >\r\n Ücret tanımlarınızı yaparak veya Dinamik Ücret ile Ödeme Planı oluşturabilirsiniz.<br></br>\r\n Ücret ve İndirim tanımları <font style={{ color: \"red\" }}> Genel Tanımlar</font> ekranından yapılmaktadır.\r\n </Popover>\r\n <Popover\r\n target=\"#btnOdemePlaniGoster\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Ödeme Planı Göster\"}\r\n ref={(ref) => this.toolTipOdemePlaniGoster = ref}\r\n >\r\n Taksit ödemelerinin tahsilatlarını yapabilirsiniz.<br></br>\r\n Ödeme Planını ve taksitleri yeniden yapılandırabilirsiniz.\r\n </Popover>\r\n <Popover\r\n target=\"#btnSozlesmeBas\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Kayıt Sözleşmesi\"}\r\n ref={(ref) => this.toolTipKayitSozlesmesi = ref}\r\n >\r\n Kayıt sözleşmesini pdf formatında indirebilirsiniz.<br></br>\r\n Sözleşme oluşabilmesi için ödeme planı yapılmalıdır.\r\n </Popover>\r\n <Popover\r\n target=\"#btnKayitListesiExcel\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Kayıt Listesi Excel\"}\r\n ref={(ref) => this.toolTipKayitListesiExcel = ref}\r\n >\r\n Öğrenci listenizi Excel formatında indirebilirsiniz.\r\n </Popover>\r\n <Popover\r\n target=\"#btnGorusmeler\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Görüşmeler\"}\r\n ref={(ref) => this.toolTipGorusmeler = ref}\r\n >\r\n Öğrenci ile yapılan görüşmeleri takip edebilirsiniz.<br></br>\r\n Her kullanıcı kendi görüşmelerini görebilir.\r\n </Popover>\r\n <Popover\r\n target=\"#btnKesinKayitYap\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Bilgi\"}\r\n ref={(ref) => this.toolTipKesinKayitYap = ref}\r\n >\r\n Seçilen öğrencilerin kayıt türünü kesin kayıt yapar\r\n </Popover>\r\n <Popover\r\n target=\"#btnSubeDegistir\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Bilgi\"}\r\n ref={(ref) => this.toolTipSubeDegistir = ref}\r\n >\r\n Seçilen öğrencilerin şube bilgilerini değiştirir\r\n </Popover>\r\n <Popover\r\n target=\"#btnDanismanDegistir\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Bilgi\"}\r\n ref={(ref) => this.toolTipDanismanDegistir = ref}\r\n >\r\n Seçilen öğrencilerin danışman bilgilerini değiştirir\r\n </Popover>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Öğrenci İşlemleri>>Öğrenci Kayıt\"}</h4>\r\n <DataGrid\r\n showBorders={true}\r\n keyboardNavigation={\r\n {\r\n editOnKeyPress: true,\r\n enterKeyAction: \"startEdit\",\r\n enabled: true,\r\n enterKeyDirection: \"column\"\r\n }\r\n }\r\n onContextMenuPreparing={\r\n (e) => {\r\n if (e.row.rowType === \"data\") {\r\n e.items = [{\r\n text: \"Seçimi iptal et\",\r\n onItemClick: () => {\r\n this.gridMainSatirIptal();\r\n }\r\n },\r\n {\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n text: \"Ödeme planı detay\",\r\n onItemClick: () => {\r\n this.odemePlaniDetay();\r\n }\r\n },\r\n {\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n text: \"Ödeme planı oluştur\",\r\n onItemClick: () => {\r\n this.odemePlaniOlustur();\r\n }\r\n },\r\n {\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n text: \"Kayıt Sözleşmesi\",\r\n onItemClick: () => {\r\n this.sozlesmeBas();\r\n }\r\n },\r\n {\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n text: \"Kayıt Listesi Excel\",\r\n onItemClick: () => {\r\n this.kayitListesiBas();\r\n }\r\n }]\r\n }\r\n }\r\n }\r\n showRowLines={true}\r\n dataSource={this.ogrenciStore}\r\n remoteOperations={{\r\n summary: true,\r\n paging: true,\r\n groupPaging: true,\r\n filtering: true,\r\n grouping: true,\r\n sorting: true\r\n }}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'multiple' }}\r\n showCheckBoxesMode={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onEditorPreparing={this.onEditorPreparing}\r\n onInitialized={this.onInitialized}\r\n onFocusedRowChanged={(e) => {\r\n this.satirIndex = e.rowIndex;\r\n var rowData = e.row && e.row.data;\r\n if (rowData) {\r\n this.satir = rowData;\r\n }\r\n }}\r\n onExporting={this.onExporting}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Export\r\n enabled={Globals.service.Rol === \"SubeOgretmen\" ? false : true}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <Editing\r\n mode={'popup'}\r\n // texts={{\r\n // confirmDeleteMessage: \"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\",\r\n // confirmDeleteTitle: \"Silme Onay\"\r\n // }}\r\n popup={{\r\n title: \"!!!T.C. No alanları öğrenci ve velinin kullanıcı adı olarak tanımlanmaktadır!!!\",\r\n showTitle: true,\r\n width: \"80%\",\r\n height: \"80%\",\r\n shading: true,\r\n dragEnabled: true,\r\n showCloseButton: false,\r\n ref: (ref) => { this.popupForm = ref },\r\n close_ClickOnOutsideClick: false,\r\n\r\n position: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: window\r\n },\r\n toolbarItems: [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check',\r\n onClick: async () => {\r\n const validateStatus = this.formMain.instance().validate();\r\n\r\n if (!validateStatus.isValid) {\r\n notify(\"Lütfen formu kontrol ediniz, doldurulmayan alanlar var.\", \"warning\", 5000);\r\n return;\r\n }\r\n else {\r\n if (this.selectBoxKayitTuru.instance().option(\"value\") === 2) {\r\n if (this.selectBoxSinifSube.instance().option(\"value\") === null || this.selectBoxSinifSube.instance().option(\"value\") === undefined || this.selectBoxSinifSube.instance().option(\"value\") === 0) {\r\n notify(\"Lütfen formu kontrol ediniz, doldurulmayan alanlar var.\", \"warning\", 5000);\r\n return;\r\n }\r\n else {\r\n await this.gridMain.instance.saveEditData().catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n await this.gridMainSatirIptal();\r\n }\r\n }\r\n else {\r\n await this.gridMain.instance.saveEditData().catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n await this.gridMainSatirIptal();\r\n }\r\n\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Vazgeç', icon: 'remove',\r\n onClick: () => {\r\n this.gridMain.instance.cancelEditData();\r\n }\r\n }\r\n }\r\n ]\r\n }}\r\n form={{\r\n onInitialized: this.onInitializedFormMain,\r\n ref: (ref) => this.formMain = ref,\r\n colCount: 1,\r\n items: [\r\n {\r\n colSpan: 3,\r\n itemType: \"group\",\r\n items: [\r\n {\r\n itemType: \"tabbed\",\r\n tabPanelOptions: {\r\n deferRendering: false,\r\n loop: true,\r\n animationEnabled: true,\r\n swipeEnabled: true\r\n },\r\n tabs: [\r\n {\r\n colCount: 2,\r\n title: \"Öğrenci Bilgileri\",\r\n items: [\r\n { dataField: \"Adi\" },\r\n { dataField: \"Soyadi\" },\r\n { dataField: \"TcNo\" },\r\n {\r\n dataField: \"Cinsiyet\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Value\",\r\n loadParams: {\r\n enumName: \"Cinsiyet\"\r\n },\r\n loadUrl: otomasyonApi + 'common/getenums',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Value\",\r\n displayExpr: \"Name\"\r\n }\r\n },\r\n { dataField: \"CepTelefonu\" },\r\n { dataField: \"Email\" },\r\n {\r\n dataField: \"Sifre\",\r\n },\r\n { dataField: \"Adres\" },\r\n {\r\n dataField: \"AnneMeslek.Id\",\r\n label: {\r\n text: \"Anne Meslek\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listmeslek',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }\r\n },\r\n {\r\n dataField: \"BabaMeslek.Id\",\r\n label: {\r\n text: \"Baba Meslek\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listmeslek',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }\r\n },\r\n {\r\n dataField: \"DogumTarihi\", editorType: \"dxDateBox\", editorOptions: {\r\n showClearButton: true\r\n }\r\n },\r\n { dataField: \"File\" },\r\n {\r\n dataField: \"Fotograf\", visible: true\r\n\r\n },\r\n ],\r\n itemTemplate: function (itemData, itemIndex, itemElement) {\r\n itemElement.append(\"<p style='color:#6600cc;'>\" + itemData.Fotograf + \"</p>\");\r\n }\r\n },\r\n {\r\n colCount: 2,\r\n title: \"Anne-Baba ve Veli Bilgileri\",\r\n items: [\r\n { dataField: \"AnneAdSoyad\" },\r\n { dataField: \"BabaAdSoyad\" },\r\n { dataField: \"VeliAdSoyad\" },\r\n { dataField: \"VeliTcNo\" },\r\n { dataField: \"VeliCepTelefonu\" },\r\n { dataField: \"VeliCepTelefonu2\" },\r\n { dataField: \"VeliEmail\" },\r\n {\r\n dataField: \"VeliSifre\"\r\n },\r\n {\r\n dataField: \"VeliYakinlik.Id\",\r\n label: {\r\n text: \"Veli Yakınlık\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listyakinlik',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }\r\n },\r\n {\r\n dataField: \"VeliMeslek.Id\",\r\n label: {\r\n text: \"Veli Meslek\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listmeslek',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }\r\n },\r\n { dataField: \"VeliAdres\" }\r\n ]\r\n },\r\n {\r\n colCount: 2,\r\n title: \"Kayıt Bilgileri\",\r\n items: [\r\n { dataField: \"KayitTarihi\", editorType: \"dxDateBox\" },\r\n {\r\n dataField: \"KayitTuru\",\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n onInitialized: this.onInitializedSelectBoxKayiTuru,\r\n ref: (ref) => this.selectBoxKayitTuru = ref,\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Value\",\r\n loadParams: {\r\n enumName: \"KayitTuru\"\r\n },\r\n loadUrl: otomasyonApi + 'common/getenums',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Value\",\r\n displayExpr: \"Name\",\r\n onValueChanged: (e) => {\r\n if (this.gridMain.instance.option(\"focusedRowIndex\") === -1) {\r\n this.gridMain.instance.cellValue(0, \"KayitTuru\", e.value);\r\n } else {\r\n this.gridMain.instance.cellValue(this.gridMain.instance.option(\"focusedRowIndex\"), \"KayitTuru\", e.value);\r\n }\r\n this.selectBoxKayitTuru.instance().option(\"value\", e.value);\r\n if (e.value !== 2) {\r\n this.selectBoxSinifSube.instance().option(\"isRequired\", false);\r\n this.selectBoxSinifSube.instance().option(\"validate\", false);\r\n this.selectBoxSinifSube.instance().option(\"isValid\", true);\r\n this.selectBoxSinifSube.instance().option(\"validationStatus\", \"valid\");\r\n this.selectBoxSinifSube.instance().repaint();\r\n }\r\n else {\r\n this.selectBoxSinifSube.instance().option(\"isRequired\", true);\r\n this.selectBoxSinifSube.instance().option(\"validate\", true);\r\n this.selectBoxSinifSube.instance().option(\"isValid\", false);\r\n this.selectBoxSinifSube.instance().option(\"validationStatus\", \"invalid\");\r\n this.selectBoxSinifSube.instance().repaint();\r\n }\r\n\r\n },\r\n }\r\n\r\n },\r\n {\r\n dataField: \"Servis.Id\",\r\n label: {\r\n text: \"Servis\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listservisbykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }\r\n },\r\n {\r\n dataField: \"Yurt.Id\",\r\n label: {\r\n text: \"Yurt\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listyurtbykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }\r\n },\r\n { dataField: \"Yemek\" },\r\n { dataField: \"Kitap\" },\r\n {\r\n dataField: \"Grup.Id\",\r\n label: {\r\n text: \"Grup\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listgrupbykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }\r\n },\r\n {\r\n dataField: \"AyrilmaTarihi\", editorType: \"dxDateBox\", editorOptions: {\r\n showClearButton: true\r\n }\r\n },\r\n { dataField: \"Aciklama\" }\r\n ]\r\n },\r\n {\r\n colCount: 2,\r\n title: \"Kurum-Sınıf Bilgileri\",\r\n items: [\r\n {\r\n dataField: \"KurumId\",\r\n label: {\r\n text: \"Kurum\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kurum/kurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"KurumAdi\"\r\n }\r\n },\r\n {\r\n dataField: \"Bolum.Id\",\r\n label: {\r\n text: \"Bölüm\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listbolum',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }\r\n },\r\n {\r\n dataField: \"SinifSeviye.Id\",\r\n label: {\r\n text: \"Sınıf Seviyesi\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listsinifseviye',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n onInitialized: this.onInitializedSelectBoxSinifSeviye,\r\n ref: (ref) => this.selectBoxSinifSeviye = ref,\r\n onValueChanged: async (e) => {\r\n if (this.gridMain.instance.option(\"focusedRowIndex\") === -1) {\r\n this.gridMain.instance.cellValue(0, \"SinifSeviye.Id\", e.value);\r\n } else {\r\n this.gridMain.instance.cellValue(this.gridMain.instance.option(\"focusedRowIndex\"), \"SinifSeviye.Id\", e.value);\r\n }\r\n this.selectBoxSinifSeviye.instance().option(\"value\", e.value);\r\n this.selectBoxSinifSube.instance().option(\"value\", null);\r\n var dataSource = this.selectBoxSinifSube.instance().option(\"dataSource\");\r\n dataSource.filter([\"SeviyeId\", \"=\", e.value]);\r\n await dataSource.load();\r\n this.selectBoxSinifSube.instance().option(\"dataSource\", dataSource);\r\n if (this.btnOgrenciNoVer !== null && this.btnOgrenciNoVer !== undefined) {\r\n this.btnOgrenciNoVer.instance().option(\"disabled\", false);\r\n }\r\n\r\n }\r\n }\r\n },\r\n {\r\n dataField: \"SinifSube.Id\",\r\n label: {\r\n text: \"Sınıf Şubesi\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + \"geneltanim/listsinifsubebykullanici\",\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n itemTemplate: (itemData, itemIndex, itemElement) => {\r\n return \"<div>\" + itemData.Adi + \" (toplam Öğr. S:<span style='color:green;'>\" + itemData.OgrenciSayisi + \"</span>) (Dönem Öğr. S:<span style='color:red;'>\" + itemData.DonemOgrenciSayisi + \"</span>)</div>\";\r\n },\r\n onInitialized: this.onInitializedSelectBoxSinifSube,\r\n ref: (ref) => this.selectBoxSinifSube = ref\r\n }\r\n },\r\n {\r\n dataField: \"OgrenciNo\",\r\n\r\n },\r\n {\r\n dataField: \"EOkulNo\", editorOptions: {\r\n mode: \"number\",\r\n value: 0,\r\n onValueChanged: (e) => {\r\n if (e.value === null | e.value === undefined | e.value === \"\") {\r\n e.component.option(\"value\", 0);\r\n }\r\n }\r\n }\r\n },\r\n {\r\n dataField: \"Danisman.Id\",\r\n label: {\r\n text: \"Danışman\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kullanici/listdanismanbykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return item.Adi + \" \" + item.Soyadi + \"(\" + item.Brans + \")\";\r\n }\r\n },\r\n }\r\n },\r\n { dataField: \"Okulu\" },\r\n {\r\n dataField: \"EgitimTuru.Id\",\r\n label: {\r\n text: \"Eğitim Türü\"\r\n },\r\n editorType: \"dxSelectBox\",\r\n editorOptions: {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listegitimturu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }\r\n },\r\n ]\r\n },\r\n {\r\n colCount: 1,\r\n title: \"Bilgi\",\r\n items: [\r\n {\r\n dataField: \"GenelBilgi\",\r\n editorType: \"dxHtmlEditor\",\r\n editorOptions: {\r\n height: 300,\r\n toolbar: {\r\n items: [\r\n \"bold\",\r\n \"italic\",\r\n \"color\",\r\n \"background\",\r\n \"link\",\r\n {\r\n \"formatName\": \"header\",\r\n \"formatValues\": [\r\n 1,\r\n 2,\r\n 3,\r\n false\r\n ]\r\n },\r\n \"variable\",\r\n \"strike\",\r\n \"image\",\r\n \"subscript\",\r\n \"superscript\",\r\n \"underline\",\r\n \"blockquote\",\r\n \"increaseIndent\",\r\n \"decreaseIndent\",\r\n \"orderedList\",\r\n \"bulletList\",\r\n \"alignLeft\",\r\n \"alignCenter\",\r\n \"alignRight\",\r\n \"alignJustify\",\r\n \"codeBlock\",\r\n \"undo\",\r\n \"redo\",\r\n \"clear\",\r\n \"separator\"\r\n ],\r\n multiline: true\r\n },\r\n }\r\n }\r\n ]\r\n }\r\n\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }}\r\n refreshMode={\"repaint\"}\r\n >\r\n\r\n </Editing>\r\n <ColumnFixing enabled={true} />\r\n <ColumnChooser mode=\"dragAndDrop\" enabled={Globals.service.Rol === \"SubeOgretmen\" ? false : true} />\r\n <LoadPanel enabled={false} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Pager\r\n visible={true}\r\n allowedPageSizes={[15, 30, 45, 100]}\r\n displayMode={\"full\"}\r\n showPageSizeSelector={true}\r\n showInfo={true}\r\n showNavigationButtons={true} />\r\n\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" visible={false} />\r\n <Column dataField={'IsOdemePlani'} caption=\"Ö. Planı Var mı?\" dataType={\"boolean\"} />\r\n <Column dataField={'Adi'} caption=\"Adı\">\r\n <RequiredRule message=\"Ad alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'Soyadi'} caption=\"Soyad\">\r\n <RequiredRule message=\"Soyad alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'Seviye'} caption=\"Sınıf\" />\r\n <Column dataField={'Sube'} caption=\"Şube\" />\r\n <Column dataField={'OgrenciNo'} caption=\"Öğrenci No\" dataType=\"number\" visible={true} calculateCellValue={(e) => {\r\n return e.OgrenciNo\r\n }}>\r\n <RequiredRule message=\"Öğrenci no alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'VeliCepTelefonu'} caption=\"Veli Cep Telefonu\"\r\n editorOptions={{\r\n mask: \"(000) 000-0000\"\r\n }}\r\n visible={false}>\r\n <RequiredRule message=\"Veli Cep Telefonu alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'KayitT'} caption=\"Kayıt Turu\" />\r\n <Column dataField={'EOkulNo'} caption=\"EOkul No\" dataType=\"number\" editorOptions={{\r\n mode: \"number\"\r\n }} visible={false}>\r\n </Column>\r\n <Column dataField={'TcNo'}\r\n caption=\"T.C. No\"\r\n dataType=\"string\"\r\n visible={false}\r\n editorOptions={{\r\n mask: \"00000000000\"\r\n }}\r\n >\r\n <RequiredRule message=\"T.C. No alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'Cinsiyet'} caption=\"Cinsiyet\" visible={false} />\r\n <Column dataField={'CepTelefonu'} caption=\"CepTelefonu\"\r\n editorOptions={{\r\n mask: \"(000) 000-0000\"\r\n }}\r\n visible={false}>\r\n <RequiredRule message=\"Cep Telefonu alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'Email'} caption=\"Email\" visible={false}>\r\n </Column>\r\n <Column dataField={'Adres'} caption=\"Adres\" visible={false} />\r\n\r\n\r\n {/* <Column dataField={'Fotograf'} caption=\"Fotoğraf\" visible={false} allowFiltering={false} allowSorting={false} allowSearch={false} /> */}\r\n\r\n <Column dataField={'File'} caption=\"Fotoğraf\" showInColumnChooser={false} allowHiding={true} visible={false}\r\n setCellValue={(rowData, value) => {\r\n rowData.Fotograf = value[0].name;\r\n }}\r\n />\r\n <Column dataField={'AnneAdSoyad'} caption=\"Anne Ad Soyad\" visible={false} />\r\n <Column dataField={'BabaAdSoyad'} caption=\"Baba Ad Soyad\" visible={false} />\r\n <Column dataField={'VeliAdSoyad'} caption=\"Veli Ad Soyad\" visible={false}>\r\n <RequiredRule message=\"Veli Ad Soyad alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'VeliTcNo'}\r\n caption=\"Veli T.C. No\"\r\n dataType=\"string\"\r\n visible={false}\r\n editorOptions={{\r\n mask: \"00000000000\"\r\n }}\r\n >\r\n <RequiredRule message=\"Veli T.C. No alanı zorunludur\" />\r\n </Column>\r\n\r\n <Column dataField={'VeliCepTelefonu2'} caption=\"Veli Cep Telefonu 2\"\r\n editorOptions={{\r\n mask: \"(000) 000-0000\"\r\n }}\r\n visible={false}>\r\n </Column>\r\n <Column dataField={'VeliEmail'} caption=\"Email\" visible={false}>\r\n </Column>\r\n <Column dataField={'GenelBilgi'} caption=\"Bilgi\" visible={false} showInColumnChooser={false}\r\n\r\n >\r\n </Column>\r\n <Column dataField={'VeliYakinlik.Id'} visible={false} showInColumnChooser={false} />\r\n <Column dataField={'VeliAdres'} caption=\"Adres\" visible={false} />\r\n <Column dataField={'KurumId'} caption=\"KurumId\" visible={false} showInColumnChooser={false}>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'Bolum.Id'} caption=\"Bölüm Id\" visible={false} showInColumnChooser={false}>\r\n <RequiredRule message=\"Bölüm alanı zorunludur\" />\r\n </Column>\r\n <Column\r\n dataField={'SinifSeviye.Id'}\r\n caption=\"Sınıf Seviye Id\"\r\n visible={false}\r\n showInColumnChooser={false}>\r\n <RequiredRule message=\"Sınıf alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'SinifSube.Id'} caption=\"Sınıf Şube Id\" visible={false} showInColumnChooser={false}>\r\n </Column>\r\n <Column dataField={'Danisman.Id'} caption=\"Danışman Id\" visible={false} showInColumnChooser={false} />\r\n <Column dataField={'EgitimTuru.Id'} caption=\"Eğitim Türü Id\" visible={false} showInColumnChooser={false} />\r\n <Column dataField={'KayitTuru'} caption=\"Kayıt Türü\" visible={false}>\r\n <RequiredRule message=\"Kayıt türü alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'Okulu'} caption=\"Okulu\" visible={false} />\r\n <Column dataField={'KayitTarihi'} caption=\"Kayıt Tarihi\" dataType={\"date\"} visible={false} />\r\n <Column dataField={'DogumTarihi'} caption=\"Doğum Tarihi\" dataType={\"date\"} visible={false} />\r\n <Column dataField={'AyrilmaTarihi'} caption=\"Ayrılma Tarihi\" dataType={\"date\"} visible={false} />\r\n <Column dataField={'Servis.Id'} caption=\"Servis Id\" visible={false} showInColumnChooser={false} />\r\n <Column dataField={'Yurt.Id'} caption=\"Yurt Id\" visible={false} showInColumnChooser={false} />\r\n <Column dataField={'Grup.Id'} caption=\"Grup Id\" visible={false} showInColumnChooser={false} />\r\n <Column dataField={'VeliMeslek.Id'} caption=\"Veli Meslek Id\" visible={false} showInColumnChooser={false} />\r\n <Column dataField={'AnneMeslek.Id'} caption=\"Anne Meslek Id\" visible={false} showInColumnChooser={false} />\r\n <Column dataField={'BabaMeslek.Id'} caption=\"Baba Meslek Id\" visible={false} showInColumnChooser={false} />\r\n <Column dataField={'Yemek'} dataType=\"boolean\" caption=\"Yemek\" visible={false} />\r\n <Column dataField={'Kitap'} dataType=\"boolean\" caption=\"Kitap\" visible={false} />\r\n <Column dataField={'Bolumm'} caption=\"Bölüm\" visible={false} />\r\n <Column dataField={'Danismann'} caption=\"Danışman\" visible={false} />\r\n <Column dataField={'EgitimTuruu'} caption=\"Eğitim Türü\" visible={false} />\r\n <Column dataField={'Serviss'} caption=\"Servis\" visible={false} />\r\n <Column dataField={'Yurtt'} caption=\"Yurt\" visible={false} />\r\n <Column dataField={'Yakinlikk'} caption=\"Veli Yakınlık\" visible={false} />\r\n <Column dataField={'VeliMeslekk'} caption=\"Veli Meslek\" visible={false} />\r\n <Column dataField={'BabaMeslekk'} caption=\"Baba Meslek\" visible={false} />\r\n <Column dataField={'AnneMeslekk'} caption=\"Anne Meslek\" visible={false} />\r\n <Column dataField={'Aciklama'} caption=\"Açıklama\" visible={false} />\r\n <Column dataField={'Fotograf'} caption=\"Fotoğraf\" visible={false} showInColumnChooser={true} editCellRender={this.renderSwitch} cellRender={cellRender} />\r\n <Column dataField={'Sifre'} caption=\"Şifre\" visible={false} showInColumnChooser={false}>\r\n <RequiredRule message=\"Şifre alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'VeliSifre'} caption=\"Veli Şifre\" visible={false} showInColumnChooser={false}>\r\n <RequiredRule message=\"Veli şifre alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'Grupp'} caption=\"Grup\" visible={false} />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" visible={false} showInColumnChooser={true} />\r\n <MasterDetail\r\n enabled={true}\r\n component={OgrenciDetail}\r\n />\r\n </DataGrid>\r\n </div>\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} onInitialized={this.onInitializedPopupOdemePlani} ref={(ref) => this.popupOdemePlani = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"70%\"} height={\"70%\"}\r\n onHiding={this.popupOdemePlaniGizle} visible={this.state.odemePlaniVisible}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Ödeme Planı Oluştur', type: 'success', hint: 'Ödeme Planı Oluştur', icon: 'formula'\r\n , onClick: (e) => {\r\n const validateStatus = this.formOdemePlani.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n if (this.formDataOdemePlani.Ucret1.Id === null) {\r\n this.formDataOdemePlani.Ucret1.Id = 0;\r\n }\r\n if (this.formDataOdemePlani.Ucret2.Id === null) {\r\n this.formDataOdemePlani.Ucret2.Id = 0;\r\n }\r\n if (this.formDataOdemePlani.Ucret3.Id === null) {\r\n this.formDataOdemePlani.Ucret3.Id = 0;\r\n }\r\n if (this.formDataOdemePlani.Indirim.Id === null) {\r\n this.formDataOdemePlani.Indirim.Id = 0;\r\n }\r\n if (this.formDataOdemePlani.IndirimOrani === null) {\r\n this.formDataOdemePlani.IndirimOrani = 0;\r\n }\r\n service.post(otomasyonApi + \"kayitkabul/odemeplaniolustur\"\r\n , this.formDataOdemePlani\r\n , {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n notify(\"Ödeme planı oluşturuldu\", \"success\", 5000);\r\n await this.popupOdemePlaniGizle();\r\n await this.gridMain.instance.refresh();\r\n await this.gridMainSatirIptal();\r\n\r\n } else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n })\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: () => {\r\n this.popupOdemePlaniGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n\r\n <Form formData={this.formDataOdemePlani} onInitialized={this.onInitializedFormOdemePlani} ref={(ref) => this.formOdemePlani = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={3} caption=\"Kullanıcı Bilgileri\">\r\n <SimpleItem dataField={\"DinamikUcret\"} editorOptions={{\r\n format: \"#,##0.##\"\r\n }} editorType={\"dxNumberBox\"}>\r\n <Label text=\"Dinamik Ücret\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Pesinat\"} dataType={\"number\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n format: \"#,##0.##\",\r\n\r\n }}>\r\n <Label text=\"Peşinat\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"IlkTaksit\"} dataType={\"bool\"} editorType={\"dxCheckBox\"} editorOptions={{\r\n\r\n\r\n }}>\r\n <Label text=\"İlk Taksit Peşinattır\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Ucret1.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.ucretDataSource,\r\n remoteOperations: false,\r\n searchEnabled: false,\r\n showClearButton: true,\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return \"(\" + item.Adi + \" \" + item.Tutar + \")\";\r\n }\r\n },\r\n valueExpr: \"Id\"\r\n }} >\r\n <Label text=\"Ücret Bir\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Ucret2.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.ucretDataSource,\r\n remoteOperations: false,\r\n searchEnabled: false,\r\n showClearButton: true,\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return \"(\" + item.Adi + \" \" + item.Tutar + \")\";\r\n }\r\n },\r\n valueExpr: \"Id\"\r\n }} >\r\n <Label text=\"Ücret İki\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Ucret3.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.ucretDataSource,\r\n remoteOperations: false,\r\n searchEnabled: false,\r\n showClearButton: true,\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return \"(\" + item.Adi + \" \" + item.Tutar + \")\";\r\n }\r\n },\r\n valueExpr: \"Id\"\r\n }} >\r\n <Label text=\"Ücret Üç\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Indirim.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.indirimDataSource,\r\n remoteOperations: false,\r\n searchEnabled: false,\r\n showClearButton: true,\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return \"(\" + item.Adi + \" \" + item.Tutar + \")\";\r\n }\r\n },\r\n valueExpr: \"Id\"\r\n }} >\r\n <Label text=\"İndirim\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"IndirimOrani\"} dataType={\"number\"} editorType={\"dxNumberBox\"}\r\n editorOptions={{\r\n format: \"#0\"\r\n }}\r\n >\r\n <Label text=\"İndirim Oranı(Yüzde)\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"TaksitSayisi\"} dataType={\"number\"} editorType={\"dxNumberBox\"}\r\n editorOptions={{\r\n format: \"#0\"\r\n }}\r\n >\r\n <Label text=\"Taksit Sayısı\" />\r\n </SimpleItem>\r\n\r\n <SimpleItem dataField={\"IlkTaksitTarihi\"} editorOptions={{ value: null }} editorType={\"dxDateBox\"}>\r\n <Label text=\"İlk Taksit Tarihi\" />\r\n <RequiredRule message=\"İlk Taksit Tarihi alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"OdemeTuru\"} editorType={\"dxSelectBox\"} editorOptions={{\r\n dataSource: this.odemeTuruDataSource,\r\n valueExpr: \"Value\",\r\n displayExpr: \"Name\"\r\n }}>\r\n\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Aciklama\"}>\r\n <Label text=\"Açıklama\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </ScrollView>\r\n </Popup>\r\n\r\n {/* #region ödeme planı detay */}\r\n <Popup showTitle={true} shading={true} dragEnabled={true} onInitialized={this.onInitializedPopupOdemePlaniDetay} ref={(ref) => this.popupOdemePlaniDetay = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"70%\"} height={\"70%\"}\r\n onHiding={this.popupOdemePlaniDetayGizle} visible={this.state.odemePlaniDetayVisible}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n visible: [\"Sube\", \"SubeMuhasebe\", \"SubeKayitMuhasebe\", \"GenelMerkez\"].includes(Globals.service.Rol) ? true : false,\r\n text: 'Yeniden Ödeme Planı Oluştur',\r\n elementAttr: {\r\n id: \"btnYenidenOdemePlaniOlustur\"\r\n },\r\n type: 'success',\r\n icon: 'repeat',\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipYenidenOdemePlaniOlustur.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipYenidenOdemePlaniOlustur.instance.option(\"visible\", false);\r\n });\r\n },\r\n onClick: () => {\r\n let result = confirm(\"<i><font color='red'>Ödeme planınızı tekrar yapılandırmak istediğinize emin misiniz?</font></i>\", \"Ödeme Planı Tekrar Oluşturma Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n var yeniOdemePlaniData = {\r\n OdemePlaniId: this.formDataOdemePlaniDetay.Id,\r\n HizmetToplami: this.formDataOdemePlaniDetay.HizmetToplami,\r\n Pesinat: this.formDataOdemePlaniDetay.Pesinat,\r\n IndirimToplamTutar: this.formDataOdemePlaniDetay.IndirimToplamTutar,\r\n TaksitSayisi: this.formDataOdemePlaniDetay.TaksitSayisi\r\n };\r\n service.post(otomasyonApi + \"kayitkabul/odemeplaniyenidenyapilandir\",\r\n yeniOdemePlaniData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Ödeme planınız tekrar yapılandırıldı\", \"success\", 5000);\r\n this.popupOdemePlaniDetayGizle();\r\n }\r\n else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: () => {\r\n this.popupOdemePlaniDetayGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <Form colCount={1} formData={this.formDataOdemePlaniDetay} onInitialized={this.onInitializedFormOdemePlaniDetay} ref={(ref) => this.formOdemePlaniDetay = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Ödeme Planı Detayı\">\r\n <SimpleItem dataField={\"HizmetToplami\"} editorOptions={{\r\n format: \"#,##0.##\",\r\n readOnly: [\"Sube\", \"SubeMuhasebe\", \"SubeKayitMuhasebe\", \"GenelMerkez\"].includes(Globals.service.Rol) ? false : true,\r\n }} editorType={\"dxNumberBox\"}>\r\n <Label text=\"Hizmet Toplamı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"TaksitSayisi\"} editorOptions={{\r\n format: \"#0\",\r\n readOnly: [\"SubeKayitKabul\", \"GenelMerkez\", \"Sube\"].includes(Globals.service.Rol) ? false : true,\r\n buttons: [{\r\n location: \"after\",\r\n name: \"btnTaksitYapilandir\",\r\n options: {\r\n text: \"Yeniden Taksitlendir\",\r\n icon: \"orderedlist\",\r\n type: \"default\",\r\n visible: Globals.service.Rol === 'SubeKayitKabul' ? false : true,\r\n hint: \"Yeniden Taksitlendir\",\r\n onClick: () => {\r\n var yeniTaksitPlaniData = {\r\n OdemePlaniId: this.formDataOdemePlaniDetay.Id,\r\n KalanTutar: this.formDataOdemePlaniDetay.KalanTutar,\r\n TaksitSayisi: this.formDataOdemePlaniDetay.TaksitSayisi\r\n };\r\n service.post(otomasyonApi + \"kayitkabul/taksityapilandir\",\r\n yeniTaksitPlaniData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Taksit planı tekrar yapılandırıldı\", \"success\", 5000);\r\n this.popupOdemePlaniDetayGizle();\r\n }\r\n else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n }]\r\n }} editorType={\"dxNumberBox\"}>\r\n <Label text=\"Taksit Sayısı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"IndirimToplamTutar\"} editorOptions={{\r\n format: \"#,##0.##\",\r\n readOnly: [\"Sube\", \"SubeMuhasebe\", \"SubeKayitMuhasebe\", \"GenelMerkez\"].includes(Globals.service.Rol) ? false : true,\r\n }} editorType={\"dxNumberBox\"}>\r\n <Label text=\"İndirim\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"IlkTaksitTarihi\"} editorOptions={{\r\n readOnly: true,\r\n onInitialized: (e) => {\r\n this.textBoxIlkTaksitTarihi = e.component;\r\n },\r\n ref: (ref) => { this.textBoxIlkTaksitTarihi = ref }\r\n }} editorType={\"dxDateBox\"}\r\n\r\n >\r\n <Label text=\"İlk Taksit Tarihi\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Pesinat\"} editorOptions={{\r\n format: \"#,##0.##\",\r\n readOnly: [\"Sube\", \"SubeMuhasebe\", \"SubeKayitMuhasebe\", \"GenelMerkez\"].includes(Globals.service.Rol) ? false : true,\r\n buttons: [{\r\n location: \"after\",\r\n name: \"btnPesinatMakbuz\",\r\n options: {\r\n text: \"Peşinat Makbuz\",\r\n icon: \"print\",\r\n type: \"default\",\r\n hint: \"Peşinat Makbuz\",\r\n disabled: false,\r\n onClick: () => {\r\n var pesinatMakbuzData = {\r\n PesinatMiktari: this.formDataOdemePlaniDetay.Pesinat,\r\n OgrenciId: this.state.OgrenciId\r\n };\r\n service.post(otomasyonApi + \"kayitkabul/pesinatmakbuzyazdir\",\r\n pesinatMakbuzData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n alert(\"Peşinat Makbuzu oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile peşinat makbuzunuzu bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n\r\n }\r\n else {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n }\r\n }]\r\n }} editorType={\"dxNumberBox\"}>\r\n <Label text=\"Peşinat\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"OdemeTuru\"} editorOptions={{\r\n readOnly: true\r\n }}>\r\n <Label text=\"Ödeme Türü\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"OdenecekToplamTutar\"} editorOptions={{\r\n format: \"#,##0.##\",\r\n readOnly: true\r\n }} editorType={\"dxNumberBox\"}>\r\n <Label text=\"Ödenecek T. Tutar\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"TahsilatDurumu\"} editorOptions={{\r\n readOnly: true\r\n }}>\r\n <Label text=\"Tahsilat Durumu\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KalanTutar\"} editorOptions={{\r\n format: \"#,##0.##\",\r\n readOnly: true,\r\n onInitialized: this.onInitializedTextBoxKalanTutar,\r\n ref: (ref) => this.textBoxKalanTutar = ref\r\n }} editorType={\"dxNumberBox\"}>\r\n <Label text=\"Kalan Tutar\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"TaksitTutar\"} editorOptions={{\r\n format: \"#,##0.##\",\r\n readOnly: [\"Sube\", \"SubeMuhasebe\", \"SubeKayitMuhasebe\", \"GenelMerkez\"].includes(Globals.service.Rol) ? false : true,\r\n buttons: [{\r\n location: \"after\",\r\n name: \"btnTaksitTutaraGoreYapilandir\",\r\n options: {\r\n text: \"Yeniden Taksitlendir\",\r\n icon: \"orderedlist\",\r\n type: \"default\",\r\n visible: [\"Sube\", \"SubeMuhasebe\", \"SubeKayitMuhasebe\", \"GenelMerkez\"].includes(Globals.service.Rol) ? true : false,\r\n hint: \"Yeniden Taksitlendir\",\r\n onClick: () => {\r\n let result = confirm(\"<i><font color='red'>Ödeme planınızı taksit tutarına göre yapılandırmak istediğinize emin misiniz?</font></i>\", \"Ödeme Planı Tekrar Oluşturma Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n var yeniTaksitPlaniData = {\r\n OdemePlaniId: this.formDataOdemePlaniDetay.Id,\r\n KalanTutar: this.formDataOdemePlaniDetay.KalanTutar,\r\n TaksitTutar: this.formDataOdemePlaniDetay.TaksitTutar\r\n };\r\n service.post(otomasyonApi + \"kayitkabul/taksittutarinagoreyenidenyapilandir\",\r\n yeniTaksitPlaniData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Taksit planı tekrar yapılandırıldı\", \"success\", 5000);\r\n this.popupOdemePlaniDetayGizle();\r\n }\r\n else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n });\r\n\r\n }\r\n }\r\n }]\r\n }} editorType={\"dxNumberBox\"}>\r\n <Label text=\"Taksit Tutar\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Aciklama\"} colSpan={2} editorOptions={{\r\n readOnly: true,\r\n\r\n }} editorType={\"dxTextBox\"}>\r\n <Label text=\"Açıklama\" />\r\n </SimpleItem>\r\n\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Taksitler\">\r\n <DataGrid\r\n id=\"grdTaksit\"\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.taksitDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onInitialized={this.onInitializedGridTaksit}\r\n onToolbarPreparing={this.onToolbarPreparingGridTaksit}\r\n onFocusedRowChanged={this.onSelectionChangedGridTaksit}\r\n onCellPrepared={(e) => {\r\n if (e.rowType === \"data\" && e.column.command === \"edit\") {\r\n var isEditing = e.row.isEditing;\r\n\r\n if (isEditing) {\r\n jquery(e.cellElement.firstChild).on(\"click\", () => {\r\n if (e.row.data.Durum === \"Ödendi\" | e.row.data.Durum === \"Kısmi Tahsilat\") {\r\n this.gridTaksit.instance.cancelEditData();\r\n } else {\r\n var data = {\r\n TaksitId: e.row.data.Id,\r\n Tarih: e.row.data.Tarih,\r\n Tutar: e.row.data.Tutar,\r\n KalanTutar: this.textBoxKalanTutar.instance().option(\"value\")\r\n };\r\n if (e.row.data.TaksitNo === 1) {\r\n this.textBoxIlkTaksitTarihi.instance().option(\"value\", e.row.data.Tarih);\r\n }\r\n service.post(otomasyonApi + \"kayitkabul/taksitSatiriDuzenle\", data, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridTaksit.instance.refresh();\r\n } else {\r\n alert(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n alert(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"Hata\");\r\n });\r\n\r\n }\r\n\r\n });\r\n }\r\n }\r\n }}\r\n onEditorPreparing={(e) => {\r\n if (e.dataField === \"Tarih\" && e.parentType === \"dataRow\") {\r\n e.editorOptions.disabled = (e.row.data && e.row.data.Durum === \"Ödendi\");\r\n }\r\n if (e.dataField === \"Tutar\" && e.parentType === \"dataRow\") {\r\n e.editorOptions.disabled = (e.row.data && e.row.data.Durum === \"Ödendi\");\r\n }\r\n }}\r\n ref={(ref) => this.gridTaksit = ref}\r\n >\r\n <Editing\r\n mode=\"row\"\r\n allowUpdating={true}\r\n />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={true} allowEditing={false} />\r\n <Column dataField={'TaksitNo'} caption=\"Taksit No\" dataType={\"number\"} allowEditing={false} />\r\n <Column dataField={'Tarih'} caption=\"Tarih\" dataType={\"date\"} />\r\n {/* <Column dataField={'TahsilatTarihi'} caption=\"Tahsilat Tarihi\" dataType={\"date\"}\r\n calculateCellValue={(rowData) => {\r\n if (rowData.TahsilatTarihi === \"0001-01-01T00:00:00\") {\r\n return null;\r\n }\r\n else\r\n return new Date(rowData.TahsilatTarihi);\r\n }}\r\n allowEditing={false} /> */}\r\n <Column dataField={'Tutar'} caption=\"Tutar\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Column dataField={'ToplamTahsilat'} caption=\"Tahsilat\" dataType={\"number\"} format={\"#,##0.##\"} allowEditing={false} />\r\n <Column dataField={'Durum'} caption=\"Durum\" dataType={\"string\"} allowEditing={false} />\r\n <Column dataField=\"Yayin_Adi\" allowEditing={false} caption=\"\"\r\n width={20}\r\n allowFiltering={false}\r\n allowSorting={false}\r\n cellRender={durumRender}\r\n />\r\n </DataGrid>\r\n </GroupItem>\r\n </Form>\r\n </ScrollView>\r\n </Popup>\r\n {/* #endregion */}\r\n\r\n {/* #region makbuz türü seçimi */}\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"40%\"}\r\n onHiding={this.popupMakbuzGizle} visible={this.state.makbuzVisible}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Makbuz Yazdır', type: 'success', hint: 'Makbuz Yazdır', icon: 'check'\r\n , onClick: () => {\r\n const validateStatus = this.formMakbuz.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n service.get(otomasyonApi + \"kayitkabul/taksitmakbuzbas/\" + this.formMakbuzData.TaksitId + \"/\" + this.formMakbuzData.MakbuzTuru,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n alert(\"Makbuzunuz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile makbuzunuzu bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n\r\n }\r\n else {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: () => {\r\n this.popupMakbuzGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <Form colCount={1} formData={this.formMakbuzData} onInitialized={this.onInitializedFormMakbuz} ref={(ref) => this.formMakbuz = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Makbuz Türü Seçimi\">\r\n <SimpleItem dataField={\"MakbuzTuru\"} editorType=\"dxSelectBox\" editorOptions={{\r\n items: [{\r\n Value: 1, Name: \"Makbuz 1(Detaylı)\"\r\n },\r\n {\r\n Value: 2, Name: \"Makbuz 2(Detaysız)\"\r\n },\r\n {\r\n Value: 3, Name: \"Makbuz 3(A5)\"\r\n }],\r\n valueExpr: \"Value\",\r\n displayExpr: \"Name\",\r\n onValueChanged: (e) => {\r\n this.formTahsilatData.MakbuzTuru = e.value;\r\n }\r\n }}>\r\n <Label text=\"Makbuz türü\"></Label>\r\n <RequiredRule message=\"Makbuz türü alanı zorunludur\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </ScrollView>\r\n </Popup>\r\n {/* #endregion */}\r\n\r\n {/* #region tahsilat */}\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"40%\"}\r\n onHiding={this.popupTahsilatGizle} visible={this.state.tahsilatVisible}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Tahsilat Yap', type: 'success', hint: 'Tahsilat Yap', icon: 'check'\r\n , onClick: () => {\r\n const validateStatus = this.formTahsilat.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n var t = new Date(this.formTahsilatData.TahsilatTarihi);\r\n t.setHours(t.getHours() + 3);\r\n this.formTahsilatData.TahsilatTarihi = t;\r\n this.formTahsilatData.Tahsilat = this.formTahsilatData.Tahsilat.toFixed(3);\r\n service.post(otomasyonApi + \"kayitkabul/tahsilatyap\",\r\n this.formTahsilatData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(async (res) => {\r\n if (res.data.Success) {\r\n await this.gridTaksit.instance.refresh();\r\n await service.get(otomasyonApi + \"kayitkabul/gettoplamtahsilat/\" + this.satirTaksit.OdemePlani.Id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n const kalanOdeme = parseFloat(res.data.Data);\r\n this.textBoxKalanTutar.instance().option(\"value\", kalanOdeme);\r\n if (this.gridTaksit.instance !== null) {\r\n this.gridTaksit.instance.clearSelection();\r\n this.satirTaksit = null;\r\n this.gridTaksit.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n this.setState({\r\n tahsilatVisible: false\r\n })\r\n });\r\n\r\n\r\n }\r\n else {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n alert(err, \"Hata\");\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: () => {\r\n this.popupTahsilatGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <Form colCount={1} formData={this.formTahsilatData} onInitialized={this.onInitializedFormTahsilat} ref={(ref) => this.formTahsilat = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Tahsilat Girişi\">\r\n <SimpleItem dataField={\"TaksitOdemeTuru\"} editorType=\"dxSelectBox\" editorOptions={\r\n {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Value\",\r\n loadParams: {\r\n enumName: \"TaksitOdemeTuru\"\r\n },\r\n loadUrl: otomasyonApi + 'common/getenums',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Value\",\r\n displayExpr: \"Name\",\r\n showClearButton: true\r\n }\r\n }>\r\n <Label text=\"Taksit ödeme türü\"></Label>\r\n <RequiredRule message=\"Taksit ödeme türü alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"BankaId\"} editorType=\"dxSelectBox\" editorOptions={\r\n {\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listbankatanimbykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n showClearButton: true\r\n }\r\n }>\r\n <Label text=\"Banka\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tahsilat\"} editorType=\"dxNumberBox\" editorOptions={{\r\n format: \"#,##0.##\"\r\n }}>\r\n <Label text=\"Tahsilat Tutarı\"></Label>\r\n <RequiredRule message=\"Tahsilat Tutar alanı zorunludur\" />\r\n </SimpleItem>\r\n\r\n <SimpleItem dataField={\"TahsilatTarihi\"} editorType={\"dxDateBox\"} editorOptions={{\r\n type: \"datetime\"\r\n }}>\r\n <Label text=\"Tahsilat Tarihi\" />\r\n <RequiredRule message=\"Tahsilat tarihi alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField=\"SlipNo\" colSpan={2}>\r\n <Label text=\"SlipNo\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField=\"Aciklama\" colSpan={2}>\r\n <Label text=\"Açıklama\"></Label>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </ScrollView>\r\n </Popup>\r\n {/* #endregion */}\r\n\r\n {/* #region tahsilat detay*/}\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"40%\"}\r\n onHiding={this.popupTahsilatDetayGizle} visible={this.state.tahsilatDetayVisible}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: () => {\r\n this.popupTahsilatDetayGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <Form colCount={1}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Tahsilat Detayı\">\r\n <DataGrid\r\n id=\"grdTahsilatDetay\"\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.tahsilatDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onFocusedRowChanged={this.onSelectionChangedGridTaksitTahsilat}\r\n onInitialized={this.onInitializedGridTaksitTahsilat}\r\n onToolbarPreparing={this.onToolbarPreparingGridTaksitTahsilat}\r\n ref={(ref) => this.gridTaksitTahsilat = ref}\r\n >\r\n\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={true} allowEditing={false} />\r\n <Column dataField={'TaksitNo'} caption=\"Taksit No\" dataType={\"number\"} allowEditing={false} />\r\n <Column dataField={'TahsilatTarihi'} caption=\"Tahsilat Tarihi\" dataType={\"datetime\"}\r\n calculateCellValue={(rowData) => {\r\n if (rowData.TahsilatTarihi === \"0001-01-01T00:00:00\") {\r\n return null;\r\n }\r\n else\r\n return new Date(rowData.TahsilatTarihi);\r\n }}\r\n allowEditing={false} />\r\n <Column dataField={'Tahsilat'} caption=\"Tahsilat\" dataType={\"number\"} format={\"#,##0.##\"} allowEditing={false} />\r\n <Column dataField={'OdemeTuru'} caption=\"Durum\" dataType={\"string\"} allowEditing={false} />\r\n <Column dataField={'BankaAdi'} caption=\"Banka\" dataType={\"string\"} allowEditing={false} />\r\n <Column dataField={'Aciklama'} caption=\"Açıklama\" dataType={\"string\"} allowEditing={false} />\r\n <Column dataField={'SlipNo'} caption=\"SlipNo\" dataType={\"string\"} allowEditing={false} />\r\n </DataGrid>\r\n </GroupItem>\r\n </Form>\r\n </ScrollView>\r\n </Popup>\r\n {/* #endregion */}\r\n\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"90%\"} height={\"90%\"}\r\n visible={this.state.gorusmeVisible}\r\n title={this.state.gorusmeBaslik}\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: () => {\r\n this.popupGorusmeGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <form id=\"form\" onSubmit={(e) => {\r\n this.formGorusmeData.Ogrenci.Id = this.state.OgrenciId;\r\n service.post(otomasyonApi + \"kayitkabul/gorusmenotuekle\", this.formGorusmeData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then((res) => {\r\n if (res.data.Success) {\r\n notify(\"Görüşme notunuz eklendi\", \"success\", 5000);\r\n this.ogrenciFilter.ogrenciId = this.state.OgrenciId;\r\n this.grdiGorusmeNotu.instance.refresh();\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n e.preventDefault();\r\n }}>\r\n <Form colCount={1} formData={this.formGorusmeData} onInitialized={this.onInitializedFormGorusme} ref={(ref) => this.formGorusme = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Görüşme Notu\">\r\n <SimpleItem dataField={\"Tarih\"} editorType={\"dxDateBox\"}>\r\n <Label text=\"Görüşme Tarihi\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"IsVeliGorsun\"} editorType={\"dxCheckBox\"}>\r\n <Label text=\"Veli Görsün\" />\r\n </SimpleItem>\r\n <SimpleItem dataField=\"Aciklama\" colSpan={2}>\r\n <Label text=\"Görüşme notu\"></Label>\r\n <RequiredRule message=\"Görüşme notu alanı zorunludur\" />\r\n </SimpleItem>\r\n\r\n </GroupItem>\r\n <ButtonItem horizontalAlignment=\"left\"\r\n buttonOptions={{\r\n text: \"Ekle\",\r\n hint: \"Ekle\",\r\n type: \"success\",\r\n icon: \"add\",\r\n useSubmitBehavior: true\r\n }}\r\n />\r\n </Form><br></br>\r\n </form>\r\n\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n id=\"grdGorusmeNotu\"\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.gorusmeNotuDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n export={{\r\n enabled: true,\r\n fileName: \"notlar\"\r\n }}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onInitialized={this.onInitializedGridGorusmeNotu}\r\n onToolbarPreparing={this.onToolbarPreparingGridGorusmeNotu}\r\n onFocusedRowChanged={this.onSelectionChangedGridGorusmeNotu}\r\n ref={(ref) => this.grdiGorusmeNotu = ref}\r\n >\r\n <Export\r\n fileName={'Notlar'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'Tarih'} caption=\"Tarih\" dataType={\"date\"} />\r\n <Column dataField={'KullaniciAdi'} caption=\"Gerçekleştiren\" />\r\n <Column dataField={'Aciklama'} caption=\"Görüşme Notu\" hidingPriority={0} dataType={\"string\"} />\r\n <Column dataField={'IsVeliGorsun'} caption=\"Veli Görsün\" hidingPriority={0} dataType={\"boolean\"} />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"50%\"}\r\n visible={this.state.subeDegisimVisible}\r\n title={\"Seçili öğrencilerin şube bilgilerini değiştir\"}\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.gridMainSatirIptal();\r\n await this.popupSubeDegisimGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n\r\n <Form colCount={1} formData={this.formSubeDegisimiData} onInitialized={this.onInitializedFormSubeDegisimi} ref={(ref) => this.formSubeDegisimi = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2}>\r\n <SimpleItem dataField={\"SinifSeviyeId\"} editorType={\"dxSelectBox\"}\r\n editorOptions={{\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listsinifseviye',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n onValueChanged: async (e) => {\r\n this.selectBoxSubeDegisimiSinifSube.instance().option(\"value\", null);\r\n var dataSource = this.selectBoxSubeDegisimiSinifSube.instance().option(\"dataSource\");\r\n dataSource.filter([\"SeviyeId\", \"=\", e.value]);\r\n await dataSource.load();\r\n this.selectBoxSubeDegisimiSinifSube.instance().option(\"dataSource\", dataSource);\r\n }\r\n\r\n }}\r\n >\r\n <RequiredRule message=\"Sınıf seviyesi alanı zorunludur\" />\r\n <Label text=\"Sınıf seviyesi\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SubeId\"} editorType={\"dxSelectBox\"}\r\n editorOptions={{\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + \"geneltanim/listsinifsubebykullanici\",\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n onInitialized: this.onInitializedSelectBoxSubeDegisimiSinifSube,\r\n ref: (ref) => this.selectBoxSubeDegisimiSinifSube = ref\r\n\r\n }}\r\n >\r\n <RequiredRule message=\"Sınıf şubesi alanı zorunludur\" />\r\n <Label text=\"Sınıf şubesi\" />\r\n </SimpleItem>\r\n\r\n </GroupItem>\r\n <ButtonItem horizontalAlignment=\"left\"\r\n buttonOptions={{\r\n text: \"Şube Seçimini Değiştir\",\r\n hint: \"Ekle\",\r\n type: \"success\",\r\n icon: \"pulldown\",\r\n onClick: () => {\r\n let ogrenciData = [];\r\n let ogrenciInfoData = \"şube bilgisini değiştirmek istediğiniz öğrenci bilgileri aşağıda ki gibidir.<br/>\";\r\n\r\n this.gridMain.instance.getSelectedRowKeys().forEach((row) => {\r\n ogrenciData.push({\r\n OgrenciId: parseInt(row)\r\n })\r\n });\r\n ogrenciInfoData += \"<div style='max-height:100px;height:100px;overflow-y: scroll;'>\";\r\n this.gridMain.instance.getSelectedRowsData().forEach((row, index) => {\r\n ogrenciInfoData += index + 1 + \". \" + row.Adi + \" \" + row.Soyadi + \"<br/>\";\r\n });\r\n ogrenciInfoData += \"</div>\";\r\n this.formSubeDegisimiData.Ogrenciler = ogrenciData;\r\n let result = confirm(ogrenciInfoData, \"Şube Değiştirme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n\r\n service.post(otomasyonApi + \"kayitkabul/subesecimidegistir\", this.formSubeDegisimiData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n notify(\"Görüşme notunuz eklendi\", \"success\", 5000);\r\n await this.gridMainSatirIptal();\r\n await this.gridMain.instance.refresh().done(() => {\r\n\r\n this.popupSubeDegisimGizle();\r\n });\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n // e.preventDefault();\r\n }\r\n });\r\n }\r\n }}\r\n />\r\n </Form><br></br>\r\n\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"50%\"}\r\n visible={this.state.danismanDegisimiVisible}\r\n title={\"Seçili öğrencilerin danışman bilgilerini değiştir\"}\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.gridMainSatirIptal();\r\n await this.popupDanismanDegisimGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n\r\n <Form colCount={1} formData={this.formDanismanDegisimiData} onInitialized={this.onInitializedFormDanismanDegisimi} ref={(ref) => this.formDanismanDegisimi = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem dataField={\"DanismanId\"} editorType={\"dxSelectBox\"}\r\n editorOptions={{\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kullanici/listdanismanbykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return item.Adi + \" \" + item.Soyadi + \"(\" + item.Brans + \")\";\r\n }\r\n },\r\n\r\n }}\r\n >\r\n <RequiredRule message=\"Danışman alanı zorunludur\" />\r\n <Label text=\"Danışman\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <ButtonItem horizontalAlignment=\"left\"\r\n buttonOptions={{\r\n text: \"Danışman Seçimini Değiştir\",\r\n hint: \"Ekle\",\r\n type: \"success\",\r\n icon: \"pulldown\",\r\n onClick: () => {\r\n let ogrenciData = [];\r\n let ogrenciInfoData = \"danışman seçimini değiştirmek istediğiniz öğrenci bilgileri aşağıda ki gibidir.<br/>\";\r\n\r\n this.gridMain.instance.getSelectedRowKeys().forEach((row) => {\r\n ogrenciData.push({\r\n OgrenciId: parseInt(row)\r\n })\r\n });\r\n ogrenciInfoData += \"<div style='max-height:100px;height:100px;overflow-y: scroll;'>\";\r\n this.gridMain.instance.getSelectedRowsData().forEach((row, index) => {\r\n ogrenciInfoData += index + 1 + \". \" + row.Adi + \" \" + row.Soyadi + \"<br/>\";\r\n });\r\n ogrenciInfoData += \"</div>\";\r\n this.formDanismanDegisimiData.Ogrenciler = ogrenciData;\r\n let result = confirm(ogrenciInfoData, \"Danışman Değiştirme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(otomasyonApi + \"kayitkabul/danismansecimidegistir\", this.formDanismanDegisimiData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n notify(\"Danışman atamaları yapıldı.\", \"success\", 5000);\r\n await this.gridMainSatirIptal();\r\n await this.gridMain.instance.refresh().done(() => {\r\n\r\n this.popupDanismanDegisimGizle();\r\n });\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n //e.preventDefault();\r\n }\r\n });\r\n }\r\n }}\r\n />\r\n </Form><br></br>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"50%\"}\r\n visible={this.state.normalSmsVisible}\r\n title={\"Kurum Sms Ekranı\"}\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Sms Gönder',\r\n type: 'success',\r\n hint: 'Sms Gönder',\r\n icon: 'check',\r\n disabled: this.state.toolBarDisabled,\r\n visible: true,\r\n onClick: async (e) => {\r\n let messageInfo = \"Seçtiğiniz kriterlere göre kurum öğrenci veya kurum öğrenci velilerine sms gönderilecektir.<br/>\";\r\n let result = confirm(messageInfo, \"Kurum Sms Gönderim Onayı(Öğrenci veya Öğrenci Veli)\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.setState({\r\n toolBarDisabled: true\r\n });\r\n service.post(otomasyonApi + \"sms/postNormalSmsGonder\", this.formNormalSmsData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n await this.setState({\r\n toolBarDisabled: false\r\n });\r\n await this.popupNormalSmsGizle();\r\n notify(\"Gönderim işleminiz gerçekleşti\", \"success\", 5000);\r\n } else {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.popupNormalSmsGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form colCount={1} formData={this.formNormalSmsData} onInitialized={this.onInitializedFormNormalSms} ref={(ref) => this.formNormalSms = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem dataField={\"GonderimTipi\"} editorType={\"dxSelectBox\"}\r\n editorOptions={{\r\n items: [\r\n { Name: \"Öğrencilere Gönder\", Value: 1 },\r\n { Name: \"Velilere Gönder\", Value: 2 },\r\n { Name: \"Öğrenci ve Velilere Gönder\", Value: 3 },\r\n { Name: \"Öğretmenlere Gönder\", Value: 4 },\r\n\r\n ],\r\n valueExpr: \"Value\",\r\n displayExpr: \"Name\",\r\n onValueChanged: (e) => {\r\n if (e.value === 2 | e.value === 3) {\r\n this.checkBoxSeciliOgrenciVeliKurumSmsCheckBox.instance().option(\"visible\", true);\r\n this.checkBoxSeciliOgrenciVeliKurumSmsCheckBox.instance().option(\"value\", false);\r\n }\r\n else {\r\n this.checkBoxSeciliOgrenciVeliKurumSmsCheckBox.instance().option(\"visible\", false);\r\n this.checkBoxSeciliOgrenciVeliKurumSmsCheckBox.instance().option(\"value\", false);\r\n }\r\n }\r\n }}\r\n >\r\n <RequiredRule message=\"GonderimTipi alanı zorunludur\" />\r\n <Label text=\"Gönderim Tipi\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Mesaj\"} editorType={\"dxTextBox\"} editorOptions={{\r\n onInitialized: (e) => {\r\n this.normalSmsSecilenOgrenciMesajTextBox = e.component;\r\n },\r\n ref: (ref) => { this.normalSmsSecilenOgrenciMesajTextBox = ref },\r\n onKeyUp: (e) => {\r\n document.getElementById(\"divKarekterSayisiNormalSms\").innerText = this.normalSmsSecilenOgrenciMesajTextBox.instance().option(\"text\").length;\r\n }\r\n }}>\r\n <RequiredRule message=\"Mesaj alanı zorunludur\" />\r\n <Label text=\"Mesaj\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VeliCepTelEkstra\"} editorType={\"dxCheckBox\"}\r\n editorOptions={{\r\n text: \"Veli Cep Tel 2' ye de gitsin\",\r\n visible: false,\r\n onInitialized: this.onInitializedSeciliOgrenciVeliKurumSmsCheckBox,\r\n ref: (ref) => { this.checkBoxSeciliOgrenciVeliKurumSmsCheckBox = ref }\r\n }}\r\n >\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <div className=\"row\">\r\n <div className=\"col-md-2\">\r\n <label>Mesaj Karekter Sayısı:</label>\r\n </div>\r\n <div className=\"col-md-6\" id=\"divKarekterSayisiNormalSms\" style={{ textAlign: \"left\" }}>\r\n\r\n </div>\r\n </div>\r\n </GroupItem>\r\n </Form><br></br>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"50%\"}\r\n visible={this.state.smsSinavVisible}\r\n title={\"Seçili Öğrencilere Sınav Sms Gönder\"}\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Seçili Öğrencilere Sınav Sms Gönder',\r\n type: 'success',\r\n hint: 'Seçili Öğrencilere Sınav Sms Gönder',\r\n icon: 'check',\r\n disabled: this.state.toolBarDisabled,\r\n visible: true,\r\n onClick: async (e) => {\r\n\r\n let ogrenciData = [];\r\n let ogrenciInfoData = \"Sms gönderilecek olan ve seçmiş olduğunuz öğrenci bilgileri aşağıda ki gibidir.<br/>\";\r\n\r\n this.gridMain.instance.getSelectedRowKeys().forEach((row) => {\r\n ogrenciData.push({\r\n OgrenciId: parseInt(row)\r\n })\r\n });\r\n ogrenciInfoData += \"<div style='max-height:100px;height:100px;overflow-y: scroll;'>\";\r\n this.gridMain.instance.getSelectedRowsData().forEach((row, index) => {\r\n ogrenciInfoData += index + 1 + \". \" + row.Adi + \" \" + row.Soyadi + \"<br/>\";\r\n });\r\n ogrenciInfoData += \"</div>\";\r\n this.formSinavSmsData.Ogrenciler = ogrenciData;\r\n let result = confirm(\r\n ogrenciInfoData,\r\n \"Sms Gönderim Onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.setState({\r\n toolBarDisabled: true\r\n });\r\n service.post(otomasyonApi + \"sms/postsecilenogrencisinavsonucugonder\", this.formSinavSmsData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n await this.setState({\r\n toolBarDisabled: false\r\n });\r\n await this.popupSmsSinavGizle();\r\n notify(\"Gönderim işleminiz gerçekleşti\", \"success\", 5000);\r\n } else {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.popupSmsSinavGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form colCount={1} formData={this.formSinavSmsData} onInitialized={this.onInitializedFormSinavSms} ref={(ref) => this.formSinavSms = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem dataField={\"YayinId\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinDataSource,\r\n keyExpr: \"Id\",\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n showClearButton: true,\r\n onInitialized: this.onInitializedSelectBoxYayin,\r\n ref: (ref) => { this.selectBoxYayin = ref },\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" | e.value === null | e.value === undefined) {\r\n\r\n }\r\n else {\r\n this.yayinfilter.YayinId = e.value;\r\n this.sinavTuruFilter.YayinId = e.value;\r\n this.sinavTuruDataSource.load();\r\n\r\n }\r\n\r\n }\r\n }}>\r\n <Label text=\"Yayın\" />\r\n <RequiredRule message=\"Yayın alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinavTuruId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.sinavTuruDataSource,\r\n displayExpr: \"SinavTuruAdi\",\r\n valueExpr: \"SinavTuru.Id\",\r\n onInitialized: this.onInitializedSelectBoxSinavTuru,\r\n ref: (ref) => { this.selectBoxSinavTuru = ref },\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" | e.value === null) {\r\n return;\r\n }\r\n else {\r\n this.sinavTuruFilter.SinavTuruId = e.value;\r\n this.merkeziSinavDataSource.load();\r\n }\r\n }\r\n }}>\r\n <Label text=\"Sınav Türü\" />\r\n <RequiredRule message=\"Sınav türü alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MerkeziSinavId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.merkeziSinavDataSource,\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return item.Kodu + \" - \" + item.Adi;\r\n }\r\n },\r\n valueExpr: \"Id\",\r\n itemTemplate: (itemData, itemIndex, itemElement) => {\r\n return \"<div style='color:\" + itemData.Renk + \"'>\" + itemData.Kodu + \"-\" + itemData.Adi + \"</div>\";\r\n },\r\n onInitialized: this.onInitializedSelectBoxMerkeziSinav,\r\n ref: (ref) => { this.selectBoxMerkeziSinav = ref }\r\n }}>\r\n <Label text=\"Sınav\" />\r\n <RequiredRule message=\"Merkez sınav alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"GonderimTipi\"} editorType={\"dxSelectBox\"}\r\n editorOptions={{\r\n items: [\r\n { Name: \"Öğrencilere Gönder\", Value: 1 },\r\n { Name: \"Velilere Gönder\", Value: 2 },\r\n { Name: \"Öğrenci ve Velilere Gönder\", Value: 3 }\r\n\r\n ],\r\n valueExpr: \"Value\",\r\n displayExpr: \"Name\",\r\n onValueChanged: (e) => {\r\n if (e.value === 2 | e.value === 3) {\r\n this.checkBoxSeciliOgrenciVeliSmsCheckBox.instance().option(\"visible\", true);\r\n this.checkBoxSeciliOgrenciVeliSmsCheckBox.instance().option(\"value\", false);\r\n }\r\n else {\r\n this.checkBoxSeciliOgrenciVeliSmsCheckBox.instance().option(\"visible\", false);\r\n this.checkBoxSeciliOgrenciVeliSmsCheckBox.instance().option(\"value\", false);\r\n }\r\n }\r\n }}\r\n >\r\n <RequiredRule message=\"GonderimTipi alanı zorunludur\" />\r\n <Label text=\"Gönderim Tipi\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VeliCepTelEkstra\"} editorType={\"dxCheckBox\"}\r\n editorOptions={{\r\n text: \"Veli Cep Tel 2' ye de gitsin\",\r\n visible: false,\r\n onInitialized: this.onInitializedSeciliOgrenciVeliSmsCheckBox,\r\n ref: (ref) => { this.checkBoxSeciliOgrenciVeliSmsCheckBox = ref }\r\n }}\r\n >\r\n </SimpleItem>\r\n </GroupItem>\r\n\r\n </Form><br></br>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"50%\"}\r\n visible={this.state.secilenOgrenciNormalSmsVisible}\r\n title={\"Seçili Öğrenci Sms ve Bildirim Ekranı\"}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Bildirim Gönder',\r\n type: 'success',\r\n hint: 'Bildirim Gönder',\r\n icon: 'check',\r\n disabled: this.state.toolBarDisabled,\r\n visible: true,\r\n onClick: async (e) => {\r\n let ogrenciData = [];\r\n let ogrenciInfoData = \"Bildirim gönderilecek olan ve seçmiş olduğunuz öğrenci bilgileri aşağıda ki gibidir.<br/>\";\r\n\r\n this.gridMain.instance.getSelectedRowKeys().forEach((row) => {\r\n ogrenciData.push({\r\n OgrenciId: parseInt(row)\r\n })\r\n });\r\n ogrenciInfoData += \"<div style='max-height:100px;height:100px;overflow-y: scroll;'>\";\r\n\r\n this.gridMain.instance.getSelectedRowsData().forEach((row, index) => {\r\n ogrenciInfoData += index + 1 + \". \" + row.Adi + \" \" + row.Soyadi + \"<br/>\";\r\n });\r\n ogrenciInfoData += \"</div>\";\r\n let result = confirm(ogrenciInfoData, \"Bildirim Gönderim Onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.formSecilenOgrenciNormalSmsData.Ogrenciler = ogrenciData;\r\n this.setState({\r\n toolBarDisabled: true\r\n });\r\n\r\n service.post(otomasyonApi + \"sms/postsecilenogrencilerebildirimgonder\", this.formSecilenOgrenciNormalSmsData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n await this.setState({\r\n toolBarDisabled: false\r\n });\r\n await this.popupSecilenOgrenciNormalSmsGizle();\r\n notify(\"Bildirim gönderim işleminiz gerçekleşti\", \"success\", 5000);\r\n } else {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n });\r\n\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Sms Gönder',\r\n type: 'success',\r\n hint: 'Sms Gönder',\r\n icon: 'check',\r\n disabled: this.state.toolBarDisabled,\r\n visible: true,\r\n onClick: async (e) => {\r\n let ogrenciData = [];\r\n let ogrenciInfoData = \"Sms gönderilecek olan ve seçmiş olduğunuz öğrenci bilgileri aşağıda ki gibidir.<br/>\";\r\n\r\n this.gridMain.instance.getSelectedRowKeys().forEach((row) => {\r\n ogrenciData.push({\r\n OgrenciId: parseInt(row)\r\n })\r\n });\r\n ogrenciInfoData += \"<div style='max-height:100px;height:100px;overflow-y: scroll;'>\";\r\n\r\n this.gridMain.instance.getSelectedRowsData().forEach((row, index) => {\r\n ogrenciInfoData += index + 1 + \". \" + row.Adi + \" \" + row.Soyadi + \"<br/>\";\r\n });\r\n ogrenciInfoData += \"</div>\";\r\n let result = confirm(ogrenciInfoData, \"Sms Gönderim Onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.formSecilenOgrenciNormalSmsData.Ogrenciler = ogrenciData;\r\n this.setState({\r\n toolBarDisabled: true\r\n });\r\n\r\n service.post(otomasyonApi + \"sms/postSecilenOgrenciNormalSmsGonder\", this.formSecilenOgrenciNormalSmsData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n await this.setState({\r\n toolBarDisabled: false\r\n });\r\n await this.popupSecilenOgrenciNormalSmsGizle();\r\n notify(\"Gönderim işleminiz gerçekleşti\", \"success\", 5000);\r\n } else {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n });\r\n\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.popupSecilenOgrenciNormalSmsGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form colCount={1} formData={this.formSecilenOgrenciNormalSmsData} onInitialized={this.onInitializedFormSecilenOgrenciNormalSms} ref={(ref) => this.formSecilenOgrenciNormalSms = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem dataField={\"GonderimTipi\"} editorType={\"dxSelectBox\"}\r\n editorOptions={{\r\n items: [\r\n { Name: \"Öğrencilere Gönder\", Value: 1 },\r\n { Name: \"Velilere Gönder\", Value: 2 },\r\n { Name: \"Öğrenci ve Velilere Gönder\", Value: 3 }\r\n\r\n ],\r\n valueExpr: \"Value\",\r\n displayExpr: \"Name\",\r\n onValueChanged: (e) => {\r\n if (e.value === 2 | e.value === 3) {\r\n this.checkBoxSeciliOgrenciVeliNormalSmsCheckBox.instance().option(\"visible\", true);\r\n this.checkBoxSeciliOgrenciVeliNormalSmsCheckBox.instance().option(\"value\", false);\r\n }\r\n else {\r\n this.checkBoxSeciliOgrenciVeliNormalSmsCheckBox.instance().option(\"visible\", false);\r\n this.checkBoxSeciliOgrenciVeliNormalSmsCheckBox.instance().option(\"value\", false);\r\n }\r\n }\r\n }}\r\n >\r\n <RequiredRule message=\"GonderimTipi alanı zorunludur\" />\r\n <Label text=\"Gönderim Tipi\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Mesaj\"} editorType={\"dxTextBox\"} editorOptions={{\r\n onInitialized: (e) => {\r\n this.normalSmsMesajTextBox = e.component;\r\n },\r\n ref: (ref) => { this.normalSmsMesajTextBox = ref },\r\n onKeyUp: (e) => {\r\n document.getElementById(\"divKarekterSayisi\").innerText = this.normalSmsMesajTextBox.instance().option(\"text\").length;\r\n }\r\n }}>\r\n <RequiredRule message=\"Mesaj alanı zorunludur\" />\r\n <Label text=\"Mesaj\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VeliCepTelEkstra\"} editorType={\"dxCheckBox\"}\r\n editorOptions={{\r\n text: \"Veli Cep Tel 2' ye de gitsin\",\r\n visible: false,\r\n onInitialized: this.onInitializedSeciliOgrenciVeliNormalSmsCheckBox,\r\n ref: (ref) => { this.checkBoxSeciliOgrenciVeliNormalSmsCheckBox = ref }\r\n }}\r\n >\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <div className=\"row\">\r\n <div className=\"col-md-2\">\r\n <label>Mesaj Karekter Sayısı:</label>\r\n </div>\r\n <div className=\"col-md-6\" id=\"divKarekterSayisi\" style={{ textAlign: \"left\" }}>\r\n\r\n </div>\r\n </div>\r\n </GroupItem>\r\n </Form><br></br>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"50%\"}\r\n visible={this.state.ogrenciAktarVisible}\r\n title={\"Öğrenci Aktarma İşlemi\"}\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Öğrenci Aktar',\r\n type: 'success',\r\n hint: 'Öğrenci Aktar',\r\n icon: 'check',\r\n disabled: this.state.toolBarDisabled,\r\n visible: Globals.service.Rol !== 'SubeOgretmen' ? true : false,\r\n onClick: async (e) => {\r\n let ogrenciData = [];\r\n let ogrenciInfoData = \"yeni dönemekatarmak istediğiniz öğrenci bilgileri aşağıda ki gibidir.<br/>\";\r\n\r\n this.gridMain.instance.getSelectedRowKeys().forEach((row) => {\r\n ogrenciData.push({\r\n OgrenciId: parseInt(row)\r\n })\r\n });\r\n ogrenciInfoData += \"<div style='max-height:100px;height:100px;overflow-y: scroll;'>\";\r\n this.gridMain.instance.getSelectedRowsData().forEach((row, index) => {\r\n ogrenciInfoData += index + 1 + \". \" + row.Adi + \" \" + row.Soyadi + \"<br/>\";\r\n });\r\n ogrenciInfoData += \"</div>\";\r\n this.formOgrenciAktarData.Ogrenciler = ogrenciData;\r\n let result = confirm(ogrenciInfoData, \"Öğrencileri yeni döneme aktarma onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.setState({\r\n toolBarDisabled: true\r\n });\r\n service.post(otomasyonApi + \"ogrenci/secilenogrencileridigerdonemeaktar\", this.formOgrenciAktarData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n await this.setState({\r\n toolBarDisabled: false\r\n });\r\n await this.popupOgrenciAktarGizle();\r\n alert(res.data.Data, \"success\", 5000);\r\n } else {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.popupOgrenciAktarGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form colCount={1} formData={this.formOgrenciAktarData} onInitialized={this.onInitializedFormOgrenciAktar} ref={(ref) => this.formOgrenciAktar = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem dataField=\"DonemId\" editorType=\"dxSelectBox\" editorOptions={{\r\n dataSource: this.donemDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }}>\r\n <Label text=\"Dönem Seçiniz\" />\r\n <RequiredRule message=\"Dönem alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"OgrenciNoAktar\"} editorType={\"dxCheckBox\"}>\r\n <Label text=\"Öğrenci no aktarılsın mı?\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form><br></br>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"50%\"}\r\n visible={this.state.ogrenciDonemBilgiVisible}\r\n title={\"Öğrenci Dönem Bilgisi\"}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.popupOgrenciDonemBilgiGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n id=\"grdOgrenciDonem\"\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.ogrenciDonemDataSource}\r\n onInitialized={this.onInitializedGridOgrenciDonemBilgi}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n export={{\r\n enabled: true,\r\n fileName: \"ogrencidonembilgisi\"\r\n }}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridOgrenciDonemBilgi = ref}\r\n >\r\n <Export\r\n fileName={'OgrenciDonemAdi'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'DonemAdi'} caption=\"Dönem Adı\" />\r\n <Column dataField={'SinifAdi'} caption=\"Sınıf Adı\" />\r\n <Column dataField={'OgrenciNo'} caption=\"Öğrenci No\" />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"90%\"} height={\"90%\"}\r\n visible={this.state.smsRaporVisible}\r\n title={\"Sms Raporu\"}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.popupSmsRaporGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n id=\"grdSmsRapor\"\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.smsRaporDataSource}\r\n onInitialized={(e) => {\r\n this.gridSmsRapor = e.component;\r\n }}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n export={{\r\n enabled: true,\r\n fileName: \"smsRapor\"\r\n }}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridSmsRapor = ref}\r\n >\r\n <Export\r\n fileName={'OgrenciSmsRapor'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'BulkId'} caption=\"BulkId\" width={100} />\r\n <Column dataField={'Durum'} caption=\"Durum\" width={100} />\r\n <Column dataField={'Tarih'} caption=\"Tarih\" dataType={\"datetime\"} width={150} />\r\n <Column dataField={'Mesaj'} caption=\"Mesaj\" />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"90%\"} height={\"90%\"}\r\n visible={this.state.devamsizlikRaporVisible}\r\n title={\"Devamsızlık Raporu\"}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.popupDevamsizlikRaporGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-10\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.devamsizlikUstRaporDataSource}\r\n onInitialized={(e) => {\r\n this.gridDevamsizlikUstRapor = e.component;\r\n }}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n export={{\r\n enabled: true,\r\n fileName: \"devamsizlikustrapor\"\r\n }}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridDevamsizlikUstRapor = ref}\r\n >\r\n <Export\r\n fileName={'OgrenciDevamsizlikUstRapor'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Sube'} caption=\"Şube\" width={75} />\r\n <Column dataField={'Adi'} caption=\"Ad\" />\r\n <Column dataField={'Soyadi'} caption=\"Soyad\" />\r\n <Column dataField={'OgrenciNo'} caption=\"Öğrenci N.\" dataType={\"number\"} />\r\n <Column dataField={'Durum'} caption=\"Durum\" width={100} />\r\n <Column dataField={'Toplam'} dataType={\"number\"} caption=\"T. Sayı\" />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ height: \"10px\" }}>\r\n <div className=\"col-md-12\">\r\n\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.devamsizlikAltRaporDataSource}\r\n onInitialized={(e) => {\r\n this.gridDevamsizlikAltRapor = e.component;\r\n }}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n export={{\r\n enabled: true,\r\n fileName: \"smsRapor\"\r\n }}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridDevamsizlikAltRapor = ref}\r\n >\r\n <Export\r\n fileName={'OgrenciDevamsizlikAltRapor'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Sube'} caption=\"Şube\" />\r\n <Column dataField={'Adi'} caption=\"Ad\" />\r\n <Column dataField={'Soyadi'} caption=\"Soyad\" />\r\n <Column dataField={'OgrenciNo'} caption=\"Öğrenci N.\" dataType={\"number\"} />\r\n <Column dataField={'Tarih'} caption=\"Tarih\" dataType={\"datetime\"} />\r\n <Column dataField={'VeliCepTelefonu'} caption=\"V. Cep Telefonu\" />\r\n <Column dataField={'DersNo'} caption=\"Ders N.\" dataType={\"number\"} />\r\n <Column dataField={'Turu'} caption=\"Durum\" />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\nexport default OgrenciKayit;\r\nfunction durumRender(data) {\r\n if (data === null)\r\n return <p></p>;\r\n else if (data.data.Durum === undefined || data.data.Durum === null || data.data.Durum === \"\") {\r\n return <p></p>;\r\n }\r\n else if (data.data.Durum === \"Ödendi\") {\r\n return <i style={{ color: \"white\", backgroundColor: \"green\" }} className=\"icon dx-icon-check\"></i>;\r\n }\r\n else if (data.data.Durum === \"Kısmi Tahsilat\") {\r\n return <i style={{ color: \"black\", backgroundColor: \"yellow\" }} className=\"icon dx-icon-minus\"></i>;\r\n }\r\n else {\r\n return <i style={{ color: \"white\", backgroundColor: \"red\" }} className=\"icon dx-icon-close\"></i>;\r\n }\r\n}\r\nfunction cellRender(data) {\r\n let pictureData = data.data.Fotograf;\r\n if (!!pictureData) {\r\n return <img src={pictureData} style={{ width: \"64px\", height: \"64px\" }} title={data.data.Adi + \" \" + data.data.Soyadi} alt={data.data.Adi + \" \" + data.data.Soyadi} />;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\nfunction addImage(url, workbook, worksheet, excelCell, resolve) {\r\n\r\n var xhr = new XMLHttpRequest()\r\n xhr.open('GET', url)\r\n xhr.responseType = 'blob'\r\n // xhr.mode = \"no-cors\";\r\n // xhr.setRequestHeader();\r\n xhr.onload = async function () {\r\n var reader = new FileReader();\r\n await reader.readAsDataURL(xhr.response);\r\n reader.onloadend = function () {\r\n var base64data = reader.result;\r\n const image = workbook.addImage({\r\n base64: base64data,\r\n extension: 'png',\r\n width: 64,\r\n height: 64\r\n })\r\n worksheet.getRow(excelCell.row).height = 64;\r\n worksheet.getRow(excelCell.row).width = 64;\r\n worksheet.addImage(image, {\r\n tl: { col: excelCell.col - 1, row: excelCell.row - 1 },\r\n br: { col: excelCell.col, row: excelCell.row }\r\n })\r\n resolve();\r\n }\r\n }\r\n xhr.onerror = function () {\r\n console.error('could not add image to excel cell')\r\n };\r\n xhr.send();\r\n}\r\n\r\n\r\n","import * as React from \"react\";\r\nimport { otomasyonApi } from '../../../Util';\r\nimport Globals from '../../../Globals';\r\nimport { alert, confirm } from 'devextreme/ui/dialog';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { Button } from 'devextreme-react/button';\r\nimport service from 'axios';\r\nimport notify from 'devextreme/ui/notify';\r\nimport DataGrid, {\r\n Column, Paging, Pager, FilterRow, LoadPanel, HeaderFilter, FilterPanel, RequiredRule, Export, Selection, Scrolling, Position\r\n\r\n} from 'devextreme-react/data-grid';\r\nimport DropDownBox from 'devextreme-react/drop-down-box';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport Toolbar, { Item } from 'devextreme-react/toolbar';\r\nexport default class DevamsizlikKayit extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n toolbarDisabled: false,\r\n popupDevamsizlikDurumVisible: false,\r\n subeDevamsizlikDurumData: []\r\n };\r\n this.formDevamsizlik = null;\r\n this.gridDevamsizlik = null;\r\n this.gridOgrenci = null;\r\n this.gridKonu = null;\r\n this.gridDers = null;\r\n this.dropDownBoxOgrenci = null;\r\n this.dropDownBoxKonu = null;\r\n this.dropDownBoxDers = null;\r\n this.selectBoxSinifSube = null;\r\n this.selectBoxSinifSeviye = null;\r\n this.toolTipDevamsizlikInfo = null;\r\n this.satir = null;\r\n const dersData = [\r\n {\r\n Id: 1,\r\n Adi: \"1. Ders\"\r\n },\r\n {\r\n Id: 2,\r\n Adi: \"2. Ders\"\r\n },\r\n {\r\n Id: 3,\r\n Adi: \"3. Ders\"\r\n },\r\n {\r\n Id: 4,\r\n Adi: \"4. Ders\"\r\n },\r\n {\r\n Id: 5,\r\n Adi: \"5. Ders\"\r\n },\r\n {\r\n Id: 6,\r\n Adi: \"6. Ders\"\r\n },\r\n {\r\n Id: 7,\r\n Adi: \"7. Ders\"\r\n },\r\n {\r\n Id: 8,\r\n Adi: \"8. Ders\"\r\n },\r\n {\r\n Id: 9,\r\n Adi: \"9. Ders\"\r\n },\r\n {\r\n Id: 10,\r\n Adi: \"10. Ders\"\r\n }\r\n ];\r\n this.dersler = new ArrayStore({\r\n key: 'Id',\r\n data: dersData,\r\n // Other ArrayStore properties go here\r\n });\r\n\r\n // this.ogrenciDataGridRender = this.ogrenciDataGridRender.bind(this);\r\n //this.konuDataGridRender = this.konuDataGridRender.bind(this);\r\n this.dersDataGridRender = this.dersDataGridRender.bind(this);\r\n\r\n this.onInitializedFormDevamsizlik = this.onInitializedFormDevamsizlik.bind(this);\r\n this.onInitializedGridDevamsizlik = this.onInitializedGridDevamsizlik.bind(this);\r\n\r\n\r\n this.onInitializedDropDownBoxDers = this.onInitializedDropDownBoxDers.bind(this);\r\n\r\n this.onInitializedSelectBoxSinifSube = this.onInitializedSelectBoxSinifSube.bind(this);\r\n this.onInitializedSelectBoxSinifSeviye = this.onInitializedSelectBoxSinifSeviye.bind(this);\r\n\r\n this.onInitializedGridOgrenci = this.onInitializedGridOgrenci.bind(this);\r\n this.onInitializedGridDers = this.onInitializedGridDers.bind(this);\r\n\r\n this.onOgrenciDataGridSelectionChanged = this.onOgrenciDataGridSelectionChanged.bind(this);\r\n this.onDersDataGridSelectionChanged = this.onDersDataGridSelectionChanged.bind(this);\r\n\r\n this.onDropDownBoxDersValueChanged = this.onDropDownBoxDersValueChanged.bind(this);\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.gridMainSatirIptal = this.gridMainSatirIptal.bind(this);\r\n\r\n this.sinifSeviyeDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listsinifseviye',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.seviyeFilter = {\r\n seviyeId: 0\r\n };\r\n\r\n this.sinifSubeDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listsinifsubebykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n\r\n\r\n this.ogrenciFilter = {\r\n subeId: 0,\r\n seviyeId: 0\r\n };\r\n\r\n this.ogrenciDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.ogrenciFilter,\r\n loadUrl: otomasyonApi + 'ogrenci/getKurumOgrencileriBySubeIdSeviyeId',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n var tx = new Date();\r\n tx.setHours(tx.getHours() + 3)\r\n\r\n\r\n this.devamsizlikFilter = { tarih: tx.toJSON() };\r\n this.devamsizlikuDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"IdGuid\",\r\n store: createStore({\r\n key: \"IdGuid\",\r\n loadParams: this.devamsizlikFilter,\r\n loadUrl: otomasyonApi + 'devamsizlik/list',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.formData = {\r\n Dersler: [],\r\n SinifSeviye: { Id: null },\r\n SubeId: null,\r\n Konular: [],\r\n Tip: null,\r\n Tur: null,\r\n Icerik: null,\r\n Tarih: tx.toJSON(),\r\n Ogrenciler: [],\r\n EgitimTuruId: null\r\n }\r\n\r\n this.gridDersBoxValue = [];\r\n this.gridOgrenciBoxValue = [];\r\n }\r\n\r\n popupSubeDevamsizlikDurumuGizle() {\r\n this.setState({\r\n popupDevamsizlikDurumVisible: false\r\n })\r\n }\r\n onInitializedFormDevamsizlik(e) {\r\n this.formDevamsizlik = e.component;\r\n }\r\n\r\n onInitializedGridDevamsizlik(e) {\r\n this.gridDevamsizlik = e.component;\r\n }\r\n\r\n onInitializedDropDownBoxDers(e) {\r\n this.dropDownBoxDers = e.component;\r\n }\r\n\r\n onInitializedGridOgrenci(e) {\r\n this.gridOgrenci = e.value;\r\n }\r\n\r\n onInitializedGridDers(e) {\r\n this.gridDers = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinifSube(e) {\r\n this.selectBoxSinifSube = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinifSeviye(e) {\r\n this.selectBoxSinifSeviye = e.component;\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n onOgrenciDataGridSelectionChanged(e) {\r\n if (e.selectedRowKeys.length === 0) {\r\n this.gridOgrenciBoxValue = [];\r\n }\r\n else {\r\n this.gridOgrenciBoxValue = e.selectedRowKeys;\r\n }\r\n\r\n }\r\n\r\n onDersDataGridSelectionChanged(e) {\r\n if (e.selectedRowKeys.length === 0) {\r\n this.gridDersBoxValue = [];\r\n }\r\n else {\r\n this.gridDersBoxValue = e.selectedRowKeys;\r\n }\r\n this.dropDownBoxDers.instance.option(\"value\", this.gridDersBoxValue);\r\n }\r\n\r\n\r\n\r\n\r\n onDropDownBoxDersValueChanged(e) {\r\n if (this.gridDersBoxValue === e.value) {\r\n return;\r\n }\r\n else {\r\n this.gridDersBoxValue = e.value || [];\r\n this.dropDownBoxDers.instance.option(\"value\", this.gridDersBoxValue);\r\n }\r\n }\r\n\r\n gridMainSatirIptal() {\r\n if (this.gridDevamsizlik.instance !== null) {\r\n this.gridDevamsizlik.instance.clearSelection();\r\n this.gridDevamsizlik.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Tüm kayıtları getir', icon: 'event',\r\n text: \"Tüm kayıtları getir\",\r\n onClick: () => {\r\n var allDate = new Date(1900, 1, 1, 1, 1, 1, 1);\r\n this.devamsizlikFilter.tarih = allDate.toJSON();\r\n this.gridDevamsizlik.instance.refresh();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'trash',\r\n text: \"Devamsızlık satırı sil\",\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Devamsızlık verisini silmek istiyorsunuz, emin misiniz?</i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(otomasyonApi + \"devamsizlik/sil\",\r\n satir,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridDevamsizlik.instance.refresh();\r\n this.gridMainSatirIptal();\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n dersmSmsGonder(dersAdlari) {\r\n let dersler = [];\r\n this.gridDersBoxValue.forEach((satir) => {\r\n dersler.push({\r\n Id: satir\r\n });\r\n });\r\n debugger;\r\n const data = {\r\n Tarih: this.formData.Tarih,\r\n DersNo: dersler,\r\n DersAdi: dersAdlari === undefined ? [] : dersAdlari,\r\n EgitimTuruId: this.formData.EgitimTuruId === null ? 0 : this.formData.EgitimTuruId,\r\n SeviyeId: this.formData.SinifSeviye.Id === null ? 0 : this.formData.SinifSeviye.Id,\r\n SubeId: this.formData.SubeId === null ? 0 : this.formData.SubeId,\r\n };\r\n // this.setState({\r\n // toolbarDisabled: true\r\n // });\r\n service.post(otomasyonApi + \"sms/postdevamsizliksmsgonder\", data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n notify(res.data.Data, \"success\", 5000);\r\n }\r\n else {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n dersBildirimGonder(dersAdlari) {\r\n let dersler = [];\r\n this.gridDersBoxValue.forEach((satir) => {\r\n dersler.push({\r\n Id: satir\r\n });\r\n });\r\n debugger;\r\n const data = {\r\n Tarih: this.formData.Tarih,\r\n DersNo: dersler,\r\n DersAdi: dersAdlari === undefined ? [] : dersAdlari,\r\n EgitimTuruId: this.formData.EgitimTuruId === null ? 0 : this.formData.EgitimTuruId,\r\n SeviyeId: this.formData.SinifSeviye.Id === null ? 0 : this.formData.SinifSeviye.Id,\r\n SubeId: this.formData.SubeId === null ? 0 : this.formData.SubeId,\r\n };\r\n // this.setState({\r\n // toolbarDisabled: true\r\n // });\r\n service.post(otomasyonApi + \"sms/postdevamsizlikbildirimgonder\", data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n notify(res.data.Data, \"success\", 5000);\r\n }\r\n else {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n\r\n\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Devamsızlık İşlemleri>>Devamsızlık Kayıt\"}</h4>\r\n </div>\r\n </div>\r\n\r\n <div className=\"row\" style={{ marginTop: \"10px\" }}>\r\n <div className=\"col-md-12\">\r\n\r\n\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormDevamsizlik} ref={(ref) => this.formDevamsizlik = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={3} caption=\"Devamsızlık Bilgileri\">\r\n <SimpleItem dataField={\"Ders.Id\"}>\r\n <DropDownBox\r\n valueExpr=\"Id\"\r\n deferRendering={false}\r\n displayExpr=\"Adi\"\r\n showClearButton={true}\r\n dataSource={this.dersler}\r\n contentRender={this.dersDataGridRender}\r\n onValueChanged={this.onDropDownBoxDersValueChanged}\r\n onInitialized={this.onInitializedDropDownBoxDers}\r\n ref={(ref) => { this.dropDownBoxDers = ref }}\r\n />\r\n <Label text=\"Ders\"></Label>\r\n <RequiredRule message=\"Ders alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"EgitimTuruId\"} editorType={\"dxSelectBox\"} editorOptions={{\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listegitimturu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n showClearButton: true\r\n }}>\r\n <Label text=\"Eğitim Türü\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinifSeviye.Id\"} editorType={\"dxSelectBox\"} editorOptions={{\r\n dataSource: this.sinifSeviyeDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n onInitialized: this.onInitializedSelectBoxSinifSeviye,\r\n ref: (ref) => this.selectBoxSinifSeviye = ref,\r\n onValueChanged: async (e) => {\r\n this.selectBoxSinifSube.instance().option(\"value\", null);\r\n var dataSource = this.selectBoxSinifSube.instance().option(\"dataSource\");\r\n dataSource.filter([\"SeviyeId\", \"=\", e.value]);\r\n await dataSource.load().done(() => {\r\n this.selectBoxSinifSube.instance().option(\"dataSource\", dataSource);\r\n });\r\n this.seviyeFilter.seviyeId = e.value;\r\n this.ogrenciFilter.seviyeId = e.value;\r\n this.ogrenciFilter.subeId = 0;\r\n this.formData.SinifSeviye.Id = e.value;\r\n }\r\n }}>\r\n <Label text=\"Seviye\"></Label>\r\n <RequiredRule message=\"Seviye alanı zorunludur\"></RequiredRule>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SubeId\"} editorType={\"dxSelectBox\"} editorOptions={{\r\n dataSource: this.sinifSubeDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n onInitialized: this.onInitializedSelectBoxSinifSube,\r\n ref: (ref) => this.selectBoxSinifSube = ref,\r\n onValueChanged: (e) => {\r\n this.ogrenciFilter.subeId = e.value;\r\n this.gridOgrenci.instance.refresh();\r\n this.formData.SubeId = e.value;\r\n }\r\n }}>\r\n <Label text=\"Şube\"></Label>\r\n <RequiredRule message=\"Şube alanı zorunludur\"></RequiredRule>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tur\"} editorType={\"dxSelectBox\"}\r\n editorOptions={{\r\n showClearButton: true,\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Value\",\r\n loadParams: {\r\n enumName: \"DevamsizlikTuru\"\r\n },\r\n loadUrl: otomasyonApi + 'common/getenums',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Value\",\r\n displayExpr: \"Name\"\r\n }}\r\n >\r\n <Label text=\"Durum\"></Label>\r\n <RequiredRule message=\"Durum alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tarih\"} editorType={\"dxDateBox\"}\r\n editorOptions={{\r\n value: new Date(),\r\n onValueChanged: (e) => {\r\n try {\r\n var t = new Date(e.value);\r\n t.setHours(t.getHours() + 3);\r\n this.formData.Tarih = t;\r\n this.devamsizlikFilter.tarih = t.toJSON();\r\n this.gridDevamsizlik.instance.refresh();\r\n this.gridMainSatirIptal();\r\n } catch (error) {\r\n\r\n }\r\n\r\n }\r\n }}\r\n >\r\n <Label text=\"Tarih\"></Label>\r\n <RequiredRule message=\"Tarih alanı zorunludur\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"İşlemler\">\r\n <SimpleItem>\r\n <Toolbar>\r\n <Item\r\n location={\"before\"}\r\n widget=\"dxButton\"\r\n options={{\r\n width: 120,\r\n text: \"Ekle\",\r\n type: \"success\",\r\n onClick: () => {\r\n const validateStatus = this.formDevamsizlik.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n // if (this.formData.Konu.Id === \"\" || this.formData.Konu.Id === undefined || this.formData.Konu.Id === null) {\r\n // this.formData.Konu.Id = 0;\r\n // }\r\n let dersler = [];\r\n this.gridDersBoxValue.forEach((satir) => {\r\n dersler.push({\r\n Id: satir\r\n });\r\n })\r\n\r\n var ogrenciler = [];\r\n this.gridOgrenciBoxValue.forEach((satir) => {\r\n ogrenciler.push({\r\n Id: satir\r\n })\r\n });\r\n this.formData.Ogrenciler = ogrenciler;\r\n this.formData.Dersler = dersler;\r\n if (dersler.length === 0) {\r\n alert(\"En az bir ders seçmelisiniz\");\r\n return;\r\n }\r\n if (ogrenciler.length === 0) {\r\n alert(\"En az bir öğrenci seçmelisiniz\");\r\n return;\r\n }\r\n service.post(otomasyonApi + \"devamsizlik/ekle\", this.formData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n notify(\"Devamsızlık eklendi\", \"success\", 5000);\r\n this.gridDevamsizlik.instance.refresh();\r\n\r\n } else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n })\r\n }\r\n }\r\n }}\r\n >\r\n </Item>\r\n <Item\r\n location={\"before\"}\r\n widget=\"dxButton\"\r\n options={{\r\n text: \"Ders SMS Gönder\",\r\n icon: \"email\",\r\n type: \"success\",\r\n disabled: this.state.toolbarDisabled,\r\n elementAttr: {\r\n style: \"margin-left:10px\"\r\n },\r\n onClick: () => {\r\n let dersAdlari = prompt(\"Ders adı girmek ister misiniz? Böylece göndereceğiniz mesajda ders no yerine ders adı veya girdiğiniz metin görüntülenecektir.\");\r\n debugger;\r\n if (dersAdlari !== null) {\r\n alert(\"Ders no yerine göndereceğiniz sms de girdiğiniz '\" + dersAdlari + \"' ders adları gözükecektir\")\r\n .then(() => {\r\n this.dersmSmsGonder(dersAdlari);\r\n })\r\n }\r\n // else {\r\n // alert(\"Herhangi birşey girmediğinizden seçtiğiniz 'Ders no' bilgisi sms üzerinde gözükecektir\").then(() => {\r\n // this.dersmSmsGonder();\r\n // });\r\n // }\r\n\r\n\r\n }\r\n }}\r\n >\r\n </Item>\r\n <Item\r\n location={\"before\"}\r\n widget=\"dxButton\"\r\n options={{\r\n text: \"Ders Bildirim\",\r\n icon: \"email\",\r\n type: \"success\",\r\n disabled: this.state.toolbarDisabled,\r\n elementAttr: {\r\n style: \"margin-left:10px\"\r\n },\r\n onClick: () => {\r\n let dersAdlari = prompt(\"Ders adı girmek ister misiniz? Böylece göndereceğiniz bildirimde ders no yerine ders adı veya girdiğiniz metin görüntülenecektir.\");\r\n debugger;\r\n if (dersAdlari !== null) {\r\n alert(\"Ders no yerine göndereceğiniz bildirim de girdiğiniz '\" + dersAdlari + \"' ders adları gözükecektir\")\r\n .then(() => {\r\n this.dersBildirimGonder(dersAdlari);\r\n })\r\n }\r\n // else {\r\n // alert(\"Herhangi birşey girmediğinizden seçtiğiniz 'Ders no' bilgisi sms üzerinde gözükecektir\").then(() => {\r\n // this.dersmSmsGonder();\r\n // });\r\n // }\r\n\r\n\r\n }\r\n }}\r\n >\r\n </Item>\r\n <Item\r\n location={\"before\"}\r\n widget=\"dxButton\"\r\n options={{\r\n text: \"Günlük SMS Gönder\",\r\n icon: \"email\",\r\n type: \"success\",\r\n disabled: this.state.toolbarDisabled,\r\n elementAttr: {\r\n style: \"margin-left:10px\"\r\n },\r\n onClick: () => {\r\n const data = {\r\n Tarih: this.formData.Tarih,\r\n DersNo: this.formData.Dersler,\r\n EgitimTuruId: this.formData.EgitimTuruId === null ? 0 : this.formData.EgitimTuruId\r\n };\r\n // this.setState({\r\n // toolbarDisabled: true\r\n // });\r\n service.post(otomasyonApi + \"sms/postgunlukdevamsizliksmsgonder\", data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n notify(res.data.Data, \"success\", 5000);\r\n }\r\n else {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n }}\r\n >\r\n\r\n </Item>\r\n <Item\r\n location={\"before\"}\r\n widget=\"dxButton\"\r\n options={{\r\n text: \"Günlük Bildirim\",\r\n icon: \"email\",\r\n type: \"success\",\r\n disabled: this.state.toolbarDisabled,\r\n elementAttr: {\r\n style: \"margin-left:10px\"\r\n },\r\n onClick: () => {\r\n const data = {\r\n Tarih: this.formData.Tarih,\r\n DersNo: this.formData.Dersler,\r\n EgitimTuruId: this.formData.EgitimTuruId === null ? 0 : this.formData.EgitimTuruId\r\n };\r\n // this.setState({\r\n // toolbarDisabled: true\r\n // });\r\n service.post(otomasyonApi + \"sms/postgunlukdevamsizlikbildirimgonder\", data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n notify(res.data.Data, \"success\", 5000);\r\n }\r\n else {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n }}\r\n >\r\n\r\n </Item>\r\n <Item\r\n location={\"before\"}\r\n widget=\"dxButton\"\r\n options={{\r\n text: \"Şube Devamsızlık Raporu\",\r\n type: \"success\",\r\n onClick: () => {\r\n let dersler = [];\r\n this.gridDersBoxValue.forEach((satir) => {\r\n dersler.push({\r\n Id: satir\r\n });\r\n })\r\n if (dersler.length === 0) {\r\n alert(\"En az 1 ders seçiniz\");\r\n return;\r\n }\r\n const data = {\r\n Dersler: dersler,\r\n Tarih: this.formData.Tarih,\r\n KurumId: Globals.service.Kullanici.KurumId\r\n };\r\n service.post(otomasyonApi + \"devamsizlik/listsinifseviyedevamsizlikraporu\", data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n subeDevamsizlikDurumData: res.data.Data,\r\n popupDevamsizlikDurumVisible: true\r\n });\r\n }\r\n else {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n }}\r\n >\r\n\r\n </Item>\r\n </Toolbar>\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Öğrenciler\">\r\n <SimpleItem>\r\n <DataGrid\r\n dataSource={this.ogrenciDataSource}\r\n hoverStateEnabled={true}\r\n onSelectionChanged={this.onOgrenciDataGridSelectionChanged}\r\n columns={[\"Adi\", \"Soyadi\", \"OgrenciNo\"]}\r\n onInitialized={this.onInitializedGridOgrenci}\r\n ref={(ref) => { this.gridOgrenci = ref }}\r\n >\r\n <Selection mode=\"multiple\" />\r\n <Scrolling mode=\"virtual\" />\r\n <Paging enabled={true} pageSize={10} />\r\n <FilterRow visible={true} />\r\n </DataGrid>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n\r\n <DataGrid\r\n id=\"grdTaksit\"\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.devamsizlikuDataSource}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n onInitialized={this.onInitializedGridDevamsizlik}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n key={\"IdGuid\"}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"IdGuid\"\r\n ref={(ref) => this.gridDevamsizlik = ref}\r\n >\r\n <Export\r\n enabled={true}\r\n fileName={'Devamsizliklar'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'IdGuid'} caption=\"Kayıt No\" visible={false} allowExporting={false} />\r\n <Column dataField=\"DersNo\" caption=\"\"\r\n width={40}\r\n allowSorting={false}\r\n allowFiltering={false}\r\n cellRender={linkWhatsAppRender}\r\n allowExporting={false}\r\n />\r\n <Column dataField={'DersNoMetin'} caption=\"Ders No\" dataType={\"string\"} />\r\n <Column dataField={'SubeAdi'} caption=\"Şube\" dataType={\"string\"} />\r\n <Column dataField={'AdSoyad'} caption=\"Öğrenci\" dataType={\"string\"} />\r\n <Column dataField={'VeliAdSoyad'} caption=\"VeliAdSoyad\" dataType={\"string\"} visible={false} />\r\n <Column dataField={'VeliCepTelefonu'} caption=\"VeliCepTelefonu\" dataType={\"string\"} visible={false} />\r\n <Column dataField={'Turu'} caption=\"Tür\" />\r\n <Column dataField={'Tarih'} caption=\"Tarih\" dataType={\"date\"} />\r\n <Column dataField={'Kullanici'} caption=\"Kullanıcı\" dataType={\"string\"} />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"90%\"} height={\"90%\"}\r\n visible={this.state.popupDevamsizlikDurumVisible}\r\n title={\"Şube Devamsızlık Raporu\"}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.popupSubeDevamsizlikDurumuGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-10\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={false}\r\n dataSource={this.state.subeDevamsizlikDurumData}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n export={{\r\n enabled: true,\r\n fileName: \"devamsizliksubedurumrapor\"\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n >\r\n <Export\r\n fileName={'OgrenciDevamsizlikUstRapor'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Sube'} caption=\"Şube\" width={75} />\r\n <Column dataField={'Sinif'} caption=\"Sınıf\" />\r\n <Column dataField={'Sayi'} caption=\"Sayı\" />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n\r\n dersDataGridRender() {\r\n return (\r\n <DataGrid\r\n dataSource={this.dersler}\r\n hoverStateEnabled={true}\r\n onSelectionChanged={this.onDersDataGridSelectionChanged}\r\n columns={[\"Adi\"]}\r\n onInitialized={this.onInitializedGridDers}\r\n ref={(ref) => { this.gridDers = ref }}\r\n >\r\n <Selection mode=\"multiple\" />\r\n <Scrolling mode=\"virtual\" />\r\n <Paging enabled={true} pageSize={10} />\r\n <FilterRow visible={true} />\r\n </DataGrid>\r\n );\r\n }\r\n\r\n\r\n\r\n}\r\nfunction linkWhatsAppRender(data) {\r\n if (data === null)\r\n return <p></p>;\r\n else if (data.data.VeliCepTelefonu === undefined || data.data.VeliCepTelefonu === null || data.data.VeliCepTelefonu === \"\") {\r\n return <img src=\"/icons/whatsapp.png\" alt=\"Whatspp da paylaş\" onClick={() => {\r\n alert(\"Bu öğrencimizin veli cep telefonu bilgisi olmadığından paylaşım yapılamıyor.<br/> Öğrenci kayıt ekranından veli cep telefonu ekleyebilirsiniz.\");\r\n }} />;\r\n }\r\n else {\r\n var htmlData = \"\";\r\n htmlData += \"https://api.whatsapp.com/send?phone= +90\";\r\n htmlData += data.data.VeliCepTelefonu;\r\n htmlData += \"&text=Sayın \";\r\n htmlData += data.data.VeliAdSoyad;\r\n htmlData += \", \";\r\n htmlData += data.data.AdSoyad;\r\n htmlData += \" isimli öğrencimiz \";\r\n htmlData += new Date(data.data.Tarih).toLocaleDateString();\r\n htmlData += \" tarihinde \";\r\n htmlData += data.data.DersNoMetin;\r\n htmlData += \". derse *\";\r\n htmlData += data.data.Turu;\r\n htmlData += \"*. \";\r\n htmlData += \" \";\r\n\r\n htmlData += \" \";\r\n return <a rel=\"noopener noreferrer\"\r\n href={htmlData}\r\n target=\"_blank\"\r\n data-action=\"share/whatsapp/share\">\r\n <img src=\"/icons/whatsapp.png\" alt=\"Whatsapp ile paylaş\" /></a>;\r\n }\r\n}","import * as React from \"react\";\r\nimport { otomasyonApi, sinavApi } from '../../../Util';\r\nimport Globals from '../../../Globals';\r\nimport { alert, confirm } from 'devextreme/ui/dialog';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { Button } from 'devextreme-react/button';\r\nimport service from 'axios';\r\nimport notify from 'devextreme/ui/notify';\r\nimport DataGrid, {\r\n ColumnFixing, Column, Paging, Pager, FilterRow, LoadPanel, HeaderFilter, FilterPanel, RequiredRule, Export\r\n\r\n} from 'devextreme-react/data-grid';\r\nexport default class GiderKayit extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.formKurumGider = null;\r\n this.gridKurumGider = null;\r\n this.satir = null;\r\n this.onInitializedFormKurumGider = this.onInitializedFormKurumGider.bind(this);\r\n this.onInitializedGridKurumGider = this.onInitializedGridKurumGider.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.gridMainSatirIptal = this.gridMainSatirIptal.bind(this);\r\n var tx = new Date();\r\n tx.setHours(tx.getHours() + 3);\r\n this.giderDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'gider/list',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.formData = {\r\n KurumId: null,\r\n Gider: { Id: null },\r\n Tutar: 0,\r\n Tarih: tx.toJSON(),\r\n Aciklama: \"\"\r\n }\r\n }\r\n onInitializedFormKurumGider(e) {\r\n this.formKurumGider = e.component;\r\n }\r\n\r\n onInitializedGridKurumGider(e) {\r\n this.gridKurumGider = e.component;\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n gridMainSatirIptal() {\r\n if (this.gridKurumGider.instance !== null) {\r\n this.gridKurumGider.instance.clearSelection();\r\n this.gridKurumGider.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'trash',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Gider bilgisini silmek istiyorsunuz, emin misiniz?</i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(otomasyonApi + \"gider/sil/\" + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridKurumGider.instance.refresh();\r\n this.gridMainSatirIptal();\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridKurumGider.instance.refresh();\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Gider İşlemleri>>Gider Kayıt\"}</h4>\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormKurumGider} ref={(ref) => this.formKurumGider = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={3} caption=\"Gider Bilgileri\">\r\n <SimpleItem dataField={\"KurumId\"} isRequired={true} editorType={\"dxSelectBox\"}\r\n editorOptions={{\r\n showClearButton: true,\r\n dataSource: new DataSource({\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kurum/kurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n remoteOperations: true,\r\n searchEnabled: true,\r\n searchMode: \"contains\",\r\n displayExpr: \"KurumAdi\",\r\n valueExpr: \"Id\"\r\n }}\r\n >\r\n <Label text=\"Kurum\"></Label>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Gider.Id\"} isRequired={true} editorType={\"dxSelectBox\"}\r\n editorOptions={{\r\n showClearButton: true,\r\n dataSource: new DataSource({\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listgidertanimbykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n remoteOperations: true,\r\n searchEnabled: true,\r\n searchMode: \"contains\",\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\"\r\n }}\r\n >\r\n <Label text=\"Gider\"></Label>\r\n <RequiredRule message=\"Gider alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tarih\"} editorType={\"dxDateBox\"}\r\n editorOptions={{\r\n value: new Date(),\r\n onValueChanged: (e) => {\r\n var t = new Date(e.value);\r\n t.setHours(t.getHours() + 3);\r\n this.formData.Tarih = t;\r\n }\r\n }}\r\n >\r\n <Label text=\"Tarih\"></Label>\r\n <RequiredRule message=\"Tarih alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tutar\"} editorOptions={{\r\n format: \"#,##0.##\"\r\n }} editorType={\"dxNumberBox\"}>\r\n <Label text=\"Tutar\" />\r\n <RequiredRule message=\"Tutar alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Aciklama\"} editorType={\"dxTextBox\"}>\r\n <Label text=\"Açıklama\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n <Button\r\n width={120}\r\n text=\"Ekle\"\r\n type=\"success\"\r\n onClick={() => {\r\n const validateStatus = this.formKurumGider.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n\r\n service.post(otomasyonApi + \"gider/ekle\", this.formData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n notify(\"Gider kaydı eklendi\", \"success\", 5000);\r\n this.gridKurumGider.instance.refresh();\r\n\r\n } else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n })\r\n }\r\n }}\r\n />\r\n <DataGrid\r\n id=\"grdKurumGider\"\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.giderDataSource}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n onInitialized={this.onInitializedGridKurumGider}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n key={\"Id\"}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridKurumGider = ref}\r\n >\r\n <Export\r\n enabled={true}\r\n fileName={'KurumGiderler'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} allowExporting={false} />\r\n <Column dataField={'Gerceklestiren'} caption=\"Gerçekleştiren\" dataType={\"string\"} />\r\n <Column dataField={'GiderAdi'} caption=\"Gider\" dataType={\"string\"} />\r\n <Column dataField={'Tarih'} caption=\"Tarih\" dataType={\"date\"} />\r\n <Column dataField={'Tutar'} caption=\"Tutar\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Column dataField={'Aciklama'} caption=\"Açıklama\" dataType={\"string\"} />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport Globals from '../../../Globals';\r\nimport service from 'axios';\r\nimport { otomasyonApi } from '../../../Util';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport Form, { SimpleItem, GroupItem, Label, TabbedItem, TabPanelOptions, Tab } from 'devextreme-react/form';\r\nimport DataGrid, {\r\n Export, ColumnFixing, Column, Paging, Pager, FilterRow, LoadPanel, HeaderFilter, FilterPanel, ColumnChooser, RequiredRule\r\n , Selection, Scrolling\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport DropDownBox from 'devextreme-react/drop-down-box';\r\nexport default class OdevTanim extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n odevTanimiVisible: false\r\n }\r\n this.onInitialized = this.onInitialized.bind(this);\r\n this.onInitializedGridOgrenci = this.onInitializedGridOgrenci.bind(this);\r\n this.onInitializedFormOdevTanimi = this.onInitializedFormOdevTanimi.bind(this);\r\n this.onInitializedSelectBoxSinifSeviye = this.onInitializedSelectBoxSinifSeviye.bind(this);\r\n this.onInitializedSelectBoxSinifSube = this.onInitializedSelectBoxSinifSube.bind(this);\r\n this.onToolbarPreparingGridOgrenci = this.onToolbarPreparingGridOgrenci.bind(this);\r\n this.onInitializedTextBoxOdev = this.onInitializedTextBoxOdev.bind(this);\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.headers = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n this.toolTipOdevTakip = null;\r\n this.gridMain = null;\r\n this.textBoxBaslik = null;\r\n this.textBoxSoruSayisi = null;\r\n this.textBoxOdev = null;\r\n this.gridOgrenci = null;\r\n this.selectBoxSinifSeviye = null;\r\n this.selectBoxSinifSube = null;\r\n this.formOdevTanimi = null;\r\n this.satir = null;\r\n this.secilenOgrenciler = [];\r\n this.odevDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'odev/list',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.sinifSeviyeDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listsinifseviye',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.sinifSubeDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listsinifsubebykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.seviyeFilter = { seviyeId: 0 };\r\n this.konuDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n paginate: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.seviyeFilter,\r\n loadUrl: otomasyonApi + 'konu/getKonularBySeviye',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.odevFilter = {\r\n odevId: 0,\r\n seviyeId: 0,\r\n subeId: 0\r\n };\r\n this.ogrenciDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.odevFilter,\r\n loadUrl: otomasyonApi + 'kayitkabul/listogrencilerbyodev',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.formOdevTanimiData = {\r\n Konular: [],\r\n SinifSeviye: { Id: null },\r\n SinifSube: { Id: null },\r\n SoruSayisi: 0,\r\n Baslik: \"\",\r\n Odev: \"\",\r\n Dosya: null,\r\n Ogrenciler: [],\r\n Id: 0\r\n };\r\n this.gridKonu = null;\r\n this.konuDataGridRender = this.konuDataGridRender.bind(this);\r\n this.dropDownBoxKonu = null;\r\n this.onInitializedDropDownBoxKonu = this.onInitializedDropDownBoxKonu.bind(this);\r\n this.onInitializedGridKonu = this.onInitializedGridKonu.bind(this);\r\n this.onKonuDataGridSelectionChanged = this.onKonuDataGridSelectionChanged.bind(this);\r\n this.onDropDownBoxKonuValueChanged = this.onDropDownBoxKonuValueChanged.bind(this);\r\n }\r\n\r\n onUploaded(e) {\r\n var res = JSON.parse(e.request.response);\r\n if (!res.Result.Value.Success) {\r\n notify(\"Dosyanız yüklenemedi,\" + res.Result.Value.ErrorMessage, \"error\", 5000);\r\n e.component.reset();\r\n }\r\n else {\r\n notify(\"Dosyanız yüklendi\", \"success\", 5000);\r\n this.formOdevTanimiData.Dosya = res.Result.Value.Data;\r\n e.component.reset();\r\n }\r\n }\r\n\r\n onInitialized(e) {\r\n this.gridMain = e.component;\r\n }\r\n\r\n onInitializedTextBoxOdev(e) {\r\n this.textBoxOdev = e.component;\r\n }\r\n onInitializedGridOgrenci(e) {\r\n this.gridOgrenci = e.component;\r\n }\r\n\r\n onInitializedFormOdevTanimi(e) {\r\n this.formOdevTanimi = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinifSeviye(e) {\r\n this.selectBoxSinifSeviye = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinifSube(e) {\r\n this.selectBoxSinifSube = e.component;\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n widget: \"dxButton\",\r\n options: {\r\n type: \"default\",\r\n hint: \"Ödev Öğrenci Listesi\",\r\n icon: \"exportpdf\",\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n service.get(otomasyonApi + \"odev/odevogrencilistesiraporu/\" + satir.Id,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n alert(\"Ödev öğrenci listeniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile ödev öğrenci listesini bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.satir = null;\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n else {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yeni', icon: 'add',\r\n onClick: async () => {\r\n if (Globals.service.Rol !== \"SubeOgretmen\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n this.formOdevTanimiData = {\r\n Konular: [],\r\n SinifSeviye: { Id: null },\r\n SinifSube: { Id: null },\r\n SoruSayisi: 0,\r\n Baslik: \"\",\r\n Odev: \"\",\r\n Dosya: null,\r\n Ogrenciler: [],\r\n Id: 0\r\n };\r\n this.gridOgrenci.instance.clearSelection();\r\n this.gridKonu.instance.clearSelection();\r\n this.odevFilter.odevId = 0;\r\n this.ogrenciDataSource.filter([\"SinifSeviye.Id\", \"=\", -1]);\r\n\r\n this.gridOgrenci.instance.refresh();\r\n this.gridKonu.instance.refresh();\r\n this.secilenOgrenciler = [];\r\n\r\n this.popupOdevTanimiAc();\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Düzenle', icon: 'edit',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\" && Globals.service.Rol !== \"Admin\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n this.gridOgrenci.instance.clearSelection();\r\n\r\n\r\n await this.sinifSeviyeDataSource.load().done(() => {\r\n if (this.selectBoxSinifSeviye !== \"undefined\" && this.selectBoxSinifSeviye !== null && this.selectBoxSinifSeviye !== \"\" && this.selectBoxSinifSeviye !== undefined) {\r\n this.selectBoxSinifSeviye.instance().option(\"value\", this.satir.SinifSeviye.Id);\r\n }\r\n });\r\n\r\n\r\n await this.sinifSubeDataSource.load().done(() => {\r\n if (this.selectBoxSinifSube !== \"undefined\" && this.selectBoxSinifSube !== null && this.selectBoxSinifSube !== \"\" && this.selectBoxSinifSube !== undefined) {\r\n this.selectBoxSinifSube.instance().option(\"value\", this.satir.SinifSube.Id);\r\n }\r\n });\r\n\r\n await this.konuDataSource.load().done(() => {\r\n\r\n if (!!this.satir.KonuIdEkran) {\r\n var konular = this.satir.KonuIdEkran.split(',');\r\n var secilenKonular = [];\r\n konular.forEach((x) => {\r\n this.formOdevTanimiData.Konular.push({\r\n Id: parseInt(x)\r\n });\r\n secilenKonular.push(parseInt(x));\r\n });\r\n this.gridKonu.instance.selectRows(secilenKonular);\r\n }\r\n });\r\n\r\n this.odevFilter.odevId = this.satir.Id;\r\n this.odevFilter.seviyeId = this.satir.SinifSeviye.Id;\r\n this.odevFilter.subeId = this.satir.SinifSube.Id;\r\n\r\n await this.gridOgrenci.instance.refresh();\r\n await this.getSecilenOgrenciler(this.satir.Id);\r\n this.formOdevTanimiData.Id = this.satir.Id;\r\n this.formOdevTanimiData.SinifSeviye.Id = this.satir.SinifSeviye.Id;\r\n this.formOdevTanimiData.SinifSube.Id = this.satir.SinifSube.Id;\r\n this.formOdevTanimiData.SoruSayisi = this.satir.SoruSayisi;\r\n this.formOdevTanimiData.Baslik = this.satir.Baslik;\r\n this.formOdevTanimiData.Odev = this.satir.Odev;\r\n this.formOdevTanimiData.Dosya = this.satir.Dosya;\r\n this.textBoxBaslik.instance().option(\"value\", this.satir.Baslik);\r\n this.textBoxSoruSayisi.instance().option(\"value\", this.satir.SoruSayisi);\r\n this.textBoxOdev.instance().option(\"value\", this.satir.Odev);\r\n\r\n this.popupOdevTanimiAc();\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'trash',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\" && Globals.service.Rol === \"Admin\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(otomasyonApi + \"odev/delete/\" + this.satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\" && Globals.service.Rol !== \"Admin\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız pasif hale getirilecektir emin misiniz?</i>\", \"Pasif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(otomasyonApi + 'odev/PasifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\" && Globals.service.Rol !== \"Admin\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız aktif hale getirilecektir emin misiniz?</i>\", \"Aktif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(otomasyonApi + 'odev/AktifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onToolbarPreparingGridOgrenci(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Yeni', text: \"Yeni\", icon: 'add',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n var data = {\r\n OdevId: this.satir.Id,\r\n Durum: 0,\r\n Ogrenciler: this.secilenOgrenciler\r\n };\r\n service.post(otomasyonApi + \"odev/durumdegistir\",\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridOgrenci.instance.refresh();\r\n notify(\"Seçtiğiniz öğrencilerin ödevleri yeni olarak işaretlendi\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Yapıldı', text: \"Yapıldı\", icon: 'check',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n var data = {\r\n OdevId: this.satir.Id,\r\n Durum: 1,\r\n Ogrenciler: this.secilenOgrenciler\r\n };\r\n service.post(otomasyonApi + \"odev/durumdegistir\",\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridOgrenci.instance.refresh();\r\n notify(\"Seçtiğiniz öğrencilerin ödevleri yapıldı olarak işaretlendi\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Yapılmadı', text: \"Yapılmadı\", icon: 'close',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n var data = {\r\n OdevId: this.satir.Id,\r\n Durum: 2,\r\n Ogrenciler: this.secilenOgrenciler\r\n };\r\n service.post(otomasyonApi + \"odev/durumdegistir\",\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridOgrenci.instance.refresh();\r\n notify(\"Seçtiğiniz öğrencilerin ödevleri yapıldı olarak işaretlendi\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Eksik', text: \"Eksik\", icon: 'minus',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n var data = {\r\n OdevId: this.satir.Id,\r\n Durum: 3,\r\n Ogrenciler: this.secilenOgrenciler\r\n };\r\n service.post(otomasyonApi + \"odev/durumdegistir\",\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridOgrenci.instance.refresh();\r\n notify(\"Seçtiğiniz öğrencilerin ödevleri yapıldı olarak işaretlendi\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Geç getirdi', text: \"Geç getirdi\", icon: 'clock',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n var data = {\r\n OdevId: this.satir.Id,\r\n Durum: 4,\r\n Ogrenciler: this.secilenOgrenciler\r\n };\r\n service.post(otomasyonApi + \"odev/durumdegistir\",\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridOgrenci.instance.refresh();\r\n notify(\"Seçtiğiniz öğrencilerin ödevleri yapıldı olarak işaretlendi\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n popupOdevTanimiGizle = () => {\r\n this.setState({\r\n odevTanimiVisible: false\r\n });\r\n };\r\n\r\n popupOdevTanimiAc = () => {\r\n this.setState({\r\n odevTanimiVisible: true\r\n });\r\n };\r\n\r\n gridMainSatirIptal() {\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.satir = null;\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n async getSecilenOgrenciler(odevId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(otomasyonApi + \"odev/getSecilenOgrenciler/\" + odevId,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n let arrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n arrayList.push(item.OgrenciId)\r\n });\r\n this.secilenOgrenciler = arrayList;\r\n this.formOdevTanimiData.Ogrenciler = this.secilenOgrenciler;\r\n this.gridOgrenci.instance.selectRows(this.secilenOgrenciler);\r\n resolve(\"Öğrenci bilgileri getirildi\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n onInitializedDropDownBoxKonu(e) {\r\n this.dropDownBoxKonu = e.component;\r\n }\r\n\r\n onInitializedGridKonu(e) {\r\n this.gridKonu = e.value;\r\n }\r\n\r\n onKonuDataGridSelectionChanged(e) {\r\n if (e.selectedRowKeys.length === 0) {\r\n this.gridKonuBoxValue = [];\r\n }\r\n else {\r\n this.gridKonuBoxValue = e.selectedRowKeys;\r\n }\r\n this.dropDownBoxKonu.instance.option(\"value\", this.gridKonuBoxValue);\r\n }\r\n\r\n onDropDownBoxKonuValueChanged(e) {\r\n if (this.gridKonuBoxValue === e.value) {\r\n return;\r\n }\r\n else {\r\n this.gridKonuBoxValue = e.value || [];\r\n this.dropDownBoxKonu.instance.option(\"value\", this.gridKonuBoxValue);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Ödev ve Etüt İşlemleri>>Ödev Takip\"}</h4>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.odevDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n showCheckBoxesMode={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onInitialized={this.onInitialized}\r\n onFocusedRowChanged={(e) => {\r\n this.satirIndex = e.rowIndex;\r\n var rowData = e.row && e.row.data;\r\n if (rowData) {\r\n this.satir = rowData;\r\n }\r\n }}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Export\r\n enabled={Globals.service.Rol === \"SubeOgretmen\" ? true : false}\r\n fileName={'Öğrenciler'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <ColumnChooser mode=\"dragAndDrop\" enabled={Globals.service.Rol === \"SubeOgretmen\" ? true : false} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" />\r\n <Column dataField={'KonuAdi'} caption=\"Konu\" />\r\n <Column dataField={'SeviyeAdi'} caption=\"Sınıf\" />\r\n <Column dataField={'SubeAdi'} caption=\"Şube\" />\r\n <Column dataField={'Baslik'} caption=\"Başlık\" />\r\n </DataGrid>\r\n </div>\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"90%\"} height={\"90%\"}\r\n visible={this.state.odevTanimiVisible}\r\n title={\"Seçili öğrencilere ödev ekleyebilirsiniz\"}\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after',\r\n widget: 'dxButton',\r\n options: {\r\n text: 'Kaydet',\r\n type: 'success',\r\n hint: 'Kaydet',\r\n disabled: this.formOdevTanimiData.Id === 0 ? false : true,\r\n icon: 'check'\r\n , onClick: async () => {\r\n if (this.gridKonuBoxValue === undefined | this.gridKonuBoxValue === null | this.gridKonuBoxValue === \"\") {\r\n alert(\"Lütfen en az 1 konu seçiniz\", \"Uyarı\");\r\n return;\r\n }\r\n if (this.secilenOgrenciler.length === 0) {\r\n alert(\"Lütfen en az 1 öğrenci seçiniz\", \"Uyarı\");\r\n return;\r\n }\r\n const validateStatus = this.formOdevTanimi.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n var konular = [];\r\n this.gridKonuBoxValue.forEach((satir) => {\r\n konular.push({\r\n Id: satir\r\n })\r\n });\r\n this.formOdevTanimiData.Konular = konular;\r\n\r\n this.formOdevTanimiData.Ogrenciler = [];\r\n this.formOdevTanimiData.Ogrenciler = this.secilenOgrenciler;\r\n service.post(otomasyonApi + \"odev/save\", this.formOdevTanimiData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n notify(\"Ödev kaydınız eklendi\", \"success\", 5000);\r\n await this.gridMainSatirIptal();\r\n await this.gridMain.instance.refresh().done(() => {\r\n\r\n this.popupOdevTanimiGizle();\r\n });\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.gridMainSatirIptal();\r\n await this.popupOdevTanimiGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form colCount={1} formData={this.formOdevTanimiData} onInitialized={this.onInitializedFormOdevTanimi} ref={(ref) => this.formOdevTanimi = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2}>\r\n <SimpleItem dataField={\"SinifSeviye.Id\"} editorType={\"dxSelectBox\"} editorOptions={{\r\n dataSource: this.sinifSeviyeDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n onInitialized: this.onInitializedSelectBoxSinifSeviye,\r\n ref: (ref) => this.selectBoxSinifSeviye = ref,\r\n onValueChanged: async (e) => {\r\n this.selectBoxSinifSube.instance().option(\"value\", null);\r\n var dataSource = this.selectBoxSinifSube.instance().option(\"dataSource\");\r\n dataSource.filter([\"SeviyeId\", \"=\", e.value]);\r\n await dataSource.load().done(() => {\r\n this.selectBoxSinifSube.instance().option(\"dataSource\", dataSource);\r\n });\r\n this.seviyeFilter.seviyeId = e.value;\r\n this.gridKonu.instance.clearSelection();\r\n this.gridKonu.instance.refresh();\r\n this.dropDownBoxKonu.instance.option(\"value\", null);\r\n this.secilenOgrenciler = [];\r\n\r\n if (this.formOdevTanimiData.Id === 0) {\r\n this.ogrenciDataSource.filter([\"SinifSeviye.Id\", \"=\", e.value]);\r\n this.gridOgrenci.instance.refresh();\r\n }\r\n\r\n this.gridOgrenci.instance.clearSelection();\r\n }\r\n }}>\r\n <Label text=\"Seviye\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinifSube.Id\"} editorType={\"dxSelectBox\"} editorOptions={{\r\n dataSource: this.sinifSubeDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n onInitialized: this.onInitializedSelectBoxSinifSube,\r\n ref: (ref) => this.selectBoxSinifSube = ref,\r\n onValueChanged: (e) => {\r\n this.secilenOgrenciler = [];\r\n this.ogrenciDataSource.filter([\"SinifSube.Id\", \"=\", e.value]);\r\n this.gridOgrenci.instance.refresh();\r\n this.gridOgrenci.instance.clearSelection();\r\n }\r\n }}>\r\n <Label text=\"Şube\"></Label>\r\n <RequiredRule message=\"Şube alanı zorunludur\"></RequiredRule>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Konu.Id\"}>\r\n <DropDownBox\r\n valueExpr=\"Id\"\r\n deferRendering={false}\r\n displayExpr=\"Adi\"\r\n showClearButton={true}\r\n dataSource={this.konuDataSource}\r\n contentRender={this.konuDataGridRender}\r\n onValueChanged={this.onDropDownBoxKonuValueChanged}\r\n onInitialized={this.onInitializedDropDownBoxKonu}\r\n ref={(ref) => { this.dropDownBoxKonu = ref }}\r\n />\r\n <Label text=\"Konu\"></Label>\r\n <RequiredRule message=\"Konu alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SoruSayisi\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n onInitialized: (e) => {\r\n this.textBoxSoruSayisi = e.component;\r\n },\r\n ref: (ref) => this.textBoxSoruSayisi = ref,\r\n }}>\r\n <Label text=\"Soru sayısı\"></Label>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: otomasyonApi + \"odev/DosyaUpload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n accept: '*',\r\n maxFileSize: 4000000,\r\n name: 'myFile',\r\n onUploaded: this.onUploaded\r\n }}>\r\n <Label text=\"Dosya seçiniz\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Ödev\">\r\n <TabbedItem>\r\n <TabPanelOptions deferRendering={false} />\r\n <Tab title=\"Ödev İçeriği\">\r\n <SimpleItem dataField={\"Baslik\"} editorType={\"dxTextBox\"} editorOptions={{\r\n onInitialized: (e) => {\r\n this.textBoxBaslik = e.component;\r\n },\r\n ref: (ref) => this.textBoxBaslik = ref,\r\n }}>\r\n <Label text=\"Başlık\"></Label>\r\n <RequiredRule message=\"Başlık alanı zorunludur\"></RequiredRule>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Odev\"} editorType={\"dxHtmlEditor\"} editorOptions={{\r\n height: 300,\r\n toolbar: {\r\n items: [\r\n \"bold\",\r\n \"italic\",\r\n \"color\",\r\n \"background\",\r\n \"link\",\r\n {\r\n \"formatName\": \"header\",\r\n \"formatValues\": [\r\n 1,\r\n 2,\r\n 3,\r\n false\r\n ]\r\n },\r\n \"variable\",\r\n \"strike\",\r\n \"image\",\r\n \"subscript\",\r\n \"superscript\",\r\n \"underline\",\r\n \"blockquote\",\r\n \"increaseIndent\",\r\n \"decreaseIndent\",\r\n \"orderedList\",\r\n \"bulletList\",\r\n \"alignLeft\",\r\n \"alignCenter\",\r\n \"alignRight\",\r\n \"alignJustify\",\r\n \"codeBlock\",\r\n \"undo\",\r\n \"redo\",\r\n \"clear\",\r\n \"separator\"\r\n ],\r\n multiline: true,\r\n\r\n },\r\n onInitialized: (e) => {\r\n this.textBoxOdev = e.component;\r\n },\r\n ref: (ref) => this.textBoxOdev = ref,\r\n }}>\r\n <Label text=\"Ödev\"></Label>\r\n </SimpleItem>\r\n\r\n </Tab>\r\n <Tab title=\"Öğrenciler\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.ogrenciDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'multiple' }}\r\n showCheckBoxesMode={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n keyExpr=\"Id\"\r\n onToolbarPreparing={this.onToolbarPreparingGridOgrenci}\r\n onInitialized={this.onInitializedGridOgrenci}\r\n onSelectedRowKeysChange={(e) => {\r\n this.secilenOgrenciler = [];\r\n if (e.length > 0) {\r\n e.forEach((satir) => {\r\n this.secilenOgrenciler.push({\r\n OgrenciId: satir\r\n });\r\n });\r\n }\r\n }}\r\n onEditingStart={(e) => {\r\n }}\r\n\r\n ref={(ref) => this.gridOgrenci = ref}\r\n >\r\n <Export\r\n enabled={Globals.service.Rol === \"SubeOgretmen\" ? false : true}\r\n fileName={'Öğrenciler'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <ColumnChooser mode=\"dragAndDrop\" enabled={Globals.service.Rol === \"SubeOgretmen\" ? false : true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" />\r\n <Column dataField={'Adi'} caption=\"Adı\">\r\n <RequiredRule message=\"Ad alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'Soyadi'} caption=\"Soyad\">\r\n <RequiredRule message=\"Soyad alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'Seviye'} caption=\"Sınıf\" />\r\n <Column dataField={'Sube'} caption=\"Şube\" />\r\n <Column dataField={'KayitT'} caption=\"Kayıt Turu\" />\r\n <Column dataField={'OdevDurum'} caption=\"Ödev Durumu\" />\r\n\r\n </DataGrid>\r\n </Tab>\r\n </TabbedItem>\r\n\r\n </GroupItem>\r\n </Form><br></br>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n konuDataGridRender() {\r\n return (\r\n <DataGrid\r\n dataSource={this.konuDataSource}\r\n hoverStateEnabled={true}\r\n onSelectionChanged={this.onKonuDataGridSelectionChanged}\r\n columns={[\"SinavTuru\", \"DersAdi\", \"Adi\"]}\r\n onInitialized={this.onInitializedGridKonu}\r\n ref={(ref) => { this.gridKonu = ref }}\r\n >\r\n <Selection mode=\"multiple\" />\r\n <Scrolling mode=\"virtual\" />\r\n <Paging enabled={true} pageSize={10} />\r\n <FilterRow visible={true} />\r\n </DataGrid>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport Globals from '../../../Globals';\r\nimport service from 'axios';\r\nimport { otomasyonApi, sinavApi } from '../../../Util';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport Form, { SimpleItem, GroupItem, Label, TabbedItem, TabPanelOptions, Tab } from 'devextreme-react/form';\r\nimport DataGrid, {\r\n Export, ColumnFixing, Column, Paging, Pager, FilterRow, LoadPanel, HeaderFilter, FilterPanel, ColumnChooser, RequiredRule,\r\n Selection, Scrolling\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport DropDownBox from 'devextreme-react/drop-down-box';\r\nexport default class EtutTanim extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n etutTanimiVisible: false,\r\n toolbarDisabled: false\r\n }\r\n this.onInitialized = this.onInitialized.bind(this);\r\n this.onInitializedGridOgrenci = this.onInitializedGridOgrenci.bind(this);\r\n this.onInitializedFormEtutTanimi = this.onInitializedFormEtutTanimi.bind(this);\r\n this.onInitializedSelectBoxSinifSeviye = this.onInitializedSelectBoxSinifSeviye.bind(this);\r\n this.onInitializedSelectBoxSinifSube = this.onInitializedSelectBoxSinifSube.bind(this);\r\n this.onInitializedSelectBoxOgretmen = this.onInitializedSelectBoxOgretmen.bind(this);\r\n this.onToolbarPreparingGridOgrenci = this.onToolbarPreparingGridOgrenci.bind(this);\r\n this.onInitializedTextBoxEtut = this.onInitializedTextBoxEtut.bind(this);\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.toolTipOdevTakip = null;\r\n this.gridMain = null;\r\n this.textBoxBaslik = null;\r\n this.textBoxBaslangicTarihi = null;\r\n this.textBoxBitisTarihi = null;\r\n this.textBoxEtut = null;\r\n this.gridOgrenci = null;\r\n this.selectBoxSinifSeviye = null;\r\n this.selectBoxSinifSube = null;\r\n this.selectBoxOgretmen = null;\r\n this.formEtutTanimi = null;\r\n this.satir = null;\r\n this.secilenOgrenciler = [];\r\n this.gridKonu = null;\r\n this.konuDataGridRender = this.konuDataGridRender.bind(this);\r\n this.dropDownBoxKonu = null;\r\n this.onInitializedDropDownBoxKonu = this.onInitializedDropDownBoxKonu.bind(this);\r\n this.onInitializedGridKonu = this.onInitializedGridKonu.bind(this);\r\n this.onKonuDataGridSelectionChanged = this.onKonuDataGridSelectionChanged.bind(this);\r\n this.onDropDownBoxKonuValueChanged = this.onDropDownBoxKonuValueChanged.bind(this);\r\n this.etutDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'etut/list',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.ogretmenDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kullanici/listdanismanbykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n })\r\n\r\n this.sinifSeviyeDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listsinifseviye',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n\r\n this.sinifSubeDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listsinifsubebykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.seviyeFilter = { seviyeId: 0 };\r\n this.konuDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n paginate: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.seviyeFilter,\r\n loadUrl: otomasyonApi + 'konu/getKonularBySeviye',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.etutFilter = {\r\n etutId: 0,\r\n seviyeId: 0,\r\n subeId: 0\r\n };\r\n this.ogrenciDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.etutFilter,\r\n loadUrl: otomasyonApi + 'kayitkabul/listogrencilerbyetut',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.formEtutTanimiData = {\r\n Ogretmen: { Id: null },\r\n Konular: [],\r\n SinifSeviye: { Id: null },\r\n SinifSube: { Id: null },\r\n BaslangicTarihi: null,\r\n BitisTarihi: null,\r\n Baslik: \"\",\r\n Aciklama: \"\",\r\n Ogrenciler: [],\r\n Id: 0\r\n };\r\n }\r\n\r\n\r\n\r\n onInitialized(e) {\r\n this.gridMain = e.component;\r\n }\r\n\r\n onInitializedTextBoxEtut(e) {\r\n this.textBoxEtut = e.component;\r\n }\r\n onInitializedGridOgrenci(e) {\r\n this.gridOgrenci = e.component;\r\n }\r\n\r\n onInitializedFormEtutTanimi(e) {\r\n this.formEtutTanimi = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinifSeviye(e) {\r\n this.selectBoxSinifSeviye = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinifSube(e) {\r\n this.selectBoxSinifSube = e.component;\r\n }\r\n\r\n\r\n\r\n onInitializedSelectBoxOgretmen(e) {\r\n this.selectBoxOgretmen = e.component;\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n widget: 'dxButton',\r\n disabled: this.state.toolbarDisabled,\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? true : false,\r\n options: {\r\n type: \"success\",\r\n hint: 'Mesaj Gönder',\r\n text: 'Mesaj Gönder',\r\n icon: 'email',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n const data = {\r\n Id: satir.Id\r\n }\r\n this.setState({\r\n toolbarDisabled: true\r\n });\r\n service.post(otomasyonApi + \"sms/postetutsmsgonder\", data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n notify(res.data.Data, \"success\", 5000);\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.satir = null;\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n else {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n widget: 'dxButton',\r\n options: {\r\n type: \"success\",\r\n hint: 'Etüt Öğrenci Fiş Listesi',\r\n text: 'Etüt Öğrenci Fiş Listesi',\r\n icon: 'exportpdf',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n service.get(otomasyonApi + \"etut/etutfistakip/\" + satir.Id,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n alert(\"Etüt öğrenci fiş listeniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile etüt öğrenci fiş listenizi bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.satir = null;\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n else {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after',\r\n locateInMenu: 'auto',\r\n widget: 'dxButton',\r\n options: {\r\n type: \"success\",\r\n hint: 'Etüt Öğrenci Listesi',\r\n text: 'Etüt Öğrenci Listesi',\r\n icon: 'exportpdf',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n service.get(otomasyonApi + \"etut/etutogrencitakip/\" + satir.Id,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n alert(\"Senediniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile senedinizi bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.satir = null;\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n else {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yeni', icon: 'add',\r\n onClick: async () => {\r\n if (Globals.service.Rol !== \"SubeOgretmen\" && Globals.service.Rol !== \"GenelMerkez\" && Globals.service.Rol !== \"Sube\" && Globals.service.Rol !== \"Admin\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n this.formEtutTanimiData = {\r\n Ogretmen: { Id: Globals.service.Id },\r\n Konular: [],\r\n SinifSeviye: { Id: null },\r\n SinifSube: { Id: null },\r\n BaslangicTarihi: null,\r\n BitisTarihi: null,\r\n Baslik: \"\",\r\n Aciklama: \"\",\r\n Ogrenciler: [],\r\n Id: 0\r\n };\r\n this.gridOgrenci.instance.clearSelection();\r\n this.gridKonu.instance.clearSelection();\r\n this.etutFilter.etutId = 0;\r\n this.etutFilter.seviyeId = 0;\r\n this.etutFilter.subeId = 0;\r\n this.ogrenciDataSource.filter([\"SinifSeviye.Id\", \"=\", -1]);\r\n this.gridKonu.instance.refresh();\r\n this.gridOgrenci.instance.refresh();\r\n this.secilenOgrenciler = [];\r\n\r\n this.popupEtutTanimiAc();\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Düzenle', icon: 'edit',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\" && Globals.service.Rol !== \"GenelMerkez\" && Globals.service.Rol !== \"Sube\" && Globals.service.Rol !== \"Admin\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n this.gridOgrenci.instance.clearSelection();\r\n\r\n await this.ogretmenDataSource.load().done(() => {\r\n if (this.selectBoxOgretmen !== \"undefined\" && this.selectBoxOgretmen !== null && this.selectBoxOgretmen !== \"\" && this.selectBoxOgretmen !== undefined) {\r\n this.selectBoxOgretmen.instance().option(\"value\", this.satir.Ogretmen.Id);\r\n }\r\n });\r\n\r\n await this.sinifSeviyeDataSource.load().done(() => {\r\n if (this.selectBoxSinifSeviye !== \"undefined\" && this.selectBoxSinifSeviye !== null && this.selectBoxSinifSeviye !== \"\" && this.selectBoxSinifSeviye !== undefined) {\r\n this.selectBoxSinifSeviye.instance().option(\"value\", this.satir.SinifSeviye.Id);\r\n }\r\n });\r\n\r\n\r\n await this.sinifSubeDataSource.load().done(() => {\r\n if (this.selectBoxSinifSube !== \"undefined\" && this.selectBoxSinifSube !== null && this.selectBoxSinifSube !== \"\" && this.selectBoxSinifSube !== undefined) {\r\n this.selectBoxSinifSube.instance().option(\"value\", this.satir.SinifSube.Id);\r\n }\r\n });\r\n\r\n await this.konuDataSource.load().done(() => {\r\n\r\n if (!!this.satir.KonuIdEkran) {\r\n var konular = this.satir.KonuIdEkran.split(',');\r\n var secilenKonular = [];\r\n konular.forEach((x) => {\r\n this.formEtutTanimiData.Konular.push({\r\n Id: parseInt(x)\r\n });\r\n secilenKonular.push(parseInt(x));\r\n });\r\n this.gridKonu.instance.selectRows(secilenKonular);\r\n }\r\n });\r\n\r\n this.etutFilter.etutId = this.satir.Id;\r\n this.etutFilter.seviyeId = this.satir.SinifSeviye.Id;\r\n this.etutFilter.subeId = this.satir.SinifSube.Id;\r\n\r\n await this.gridOgrenci.instance.refresh();\r\n await this.getSecilenOgrenciler(this.satir.Id);\r\n this.formEtutTanimiData.Id = this.satir.Id;\r\n this.formEtutTanimiData.Ogretmen.Id = this.satir.Ogretmen.Id;\r\n this.formEtutTanimiData.SinifSeviye.Id = this.satir.SinifSeviye.Id;\r\n this.formEtutTanimiData.SinifSube.Id = this.satir.SinifSube.Id;\r\n this.formEtutTanimiData.BaslangicTarihi = this.satir.BaslangicTarihi;\r\n this.formEtutTanimiData.BitisTarihi = this.satir.BitisTarihi;\r\n this.formEtutTanimiData.Aciklama = this.satir.Aciklama;\r\n this.textBoxBaslik.instance().option(\"value\", this.satir.Baslik);\r\n this.textBoxEtut.instance().option(\"value\", this.satir.Aciklama);\r\n this.textBoxBaslangicTarihi.instance().option(\"value\", this.satir.BaslangicTarihi);\r\n this.textBoxBitisTarihi.instance().option(\"value\", this.satir.BitisTarihi);\r\n this.popupEtutTanimiAc();\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'trash',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\" && Globals.service.Rol !== \"GenelMerkez\" && Globals.service.Rol !== \"Sube\" && Globals.service.Rol !== \"Admin\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(otomasyonApi + \"etut/delete/\" + this.satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\" && Globals.service.Rol !== \"GenelMerkez\" && Globals.service.Rol !== \"Sube\" && Globals.service.Rol !== \"Admin\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız pasif hale getirilecektir emin misiniz?</i>\", \"Pasif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(otomasyonApi + 'etut/PasifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\" && Globals.service.Rol !== \"GenelMerkez\" && Globals.service.Rol !== \"Sube\" && Globals.service.Rol !== \"Admin\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız aktif hale getirilecektir emin misiniz?</i>\", \"Aktif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(otomasyonApi + 'etut/AktifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onToolbarPreparingGridOgrenci(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Yeni', text: \"Yeni\", icon: 'add',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n var data = {\r\n EtutId: this.satir.Id,\r\n Durum: 0,\r\n Ogrenciler: this.secilenOgrenciler\r\n };\r\n service.post(otomasyonApi + \"etut/durumdegistir\",\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridOgrenci.instance.refresh();\r\n notify(\"Seçtiğiniz öğrencilerin etütleri yeni olarak işaretlendi\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Yapıldı', text: \"Yapıldı\", icon: 'check',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n var data = {\r\n EtutId: this.satir.Id,\r\n Durum: 1,\r\n Ogrenciler: this.secilenOgrenciler\r\n };\r\n service.post(otomasyonApi + \"etut/durumdegistir\",\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridOgrenci.instance.refresh();\r\n notify(\"Seçtiğiniz öğrencilerin etütleri yapıldı olarak işaretlendi\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Yapılmadı', text: \"Yapılmadı\", icon: 'close',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol !== \"SubeOgretmen\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n var data = {\r\n EtutId: this.satir.Id,\r\n Durum: 2,\r\n Ogrenciler: this.secilenOgrenciler\r\n };\r\n service.post(otomasyonApi + \"etut/durumdegistir\",\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridOgrenci.instance.refresh();\r\n notify(\"Seçtiğiniz öğrencilerin ödevleri yapıldı olarak işaretlendi\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n\r\n popupEtutTanimiGizle = () => {\r\n this.setState({\r\n etutTanimiVisible: false\r\n });\r\n };\r\n\r\n popupEtutTanimiAc = () => {\r\n this.setState({\r\n etutTanimiVisible: true\r\n });\r\n };\r\n\r\n gridMainSatirIptal() {\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.satir = null;\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n async getSecilenOgrenciler(etutId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(otomasyonApi + \"etut/getSecilenOgrenciler/\" + etutId,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n let arrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n arrayList.push(item.OgrenciId)\r\n });\r\n this.secilenOgrenciler = arrayList;\r\n this.formEtutTanimiData.Ogrenciler = this.secilenOgrenciler;\r\n this.gridOgrenci.instance.selectRows(this.secilenOgrenciler);\r\n resolve(\"Öğrenci bilgileri getirildi\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n onInitializedDropDownBoxKonu(e) {\r\n this.dropDownBoxKonu = e.component;\r\n }\r\n\r\n onInitializedGridKonu(e) {\r\n this.gridKonu = e.value;\r\n }\r\n\r\n onKonuDataGridSelectionChanged(e) {\r\n if (e.selectedRowKeys.length === 0) {\r\n this.gridKonuBoxValue = [];\r\n }\r\n else {\r\n this.gridKonuBoxValue = e.selectedRowKeys;\r\n }\r\n this.dropDownBoxKonu.instance.option(\"value\", this.gridKonuBoxValue);\r\n }\r\n\r\n onDropDownBoxKonuValueChanged(e) {\r\n if (this.gridKonuBoxValue === e.value) {\r\n return;\r\n }\r\n else {\r\n this.gridKonuBoxValue = e.value || [];\r\n this.dropDownBoxKonu.instance.option(\"value\", this.gridKonuBoxValue);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Ödev ve Etüt İşlemleri>>Etüt Takip\"}</h4>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.etutDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n showCheckBoxesMode={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onInitialized={this.onInitialized}\r\n onFocusedRowChanged={(e) => {\r\n this.satirIndex = e.rowIndex;\r\n var rowData = e.row && e.row.data;\r\n if (rowData) {\r\n this.satir = rowData;\r\n }\r\n }}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Export\r\n enabled={Globals.service.Rol === \"SubeOgretmen\" ? true : false}\r\n fileName={'Öğrenciler'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <ColumnChooser mode=\"dragAndDrop\" enabled={Globals.service.Rol === \"SubeOgretmen\" ? true : false} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" />\r\n <Column dataField={'KonuAdi'} caption=\"Konu\" />\r\n <Column dataField={'SeviyeAdi'} caption=\"Sınıf\" />\r\n <Column dataField={'SubeAdi'} caption=\"Şube\" />\r\n <Column dataField={'Baslik'} caption=\"Başlık\" />\r\n </DataGrid>\r\n </div>\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"90%\"} height={\"90%\"}\r\n visible={this.state.etutTanimiVisible}\r\n title={\"Seçili öğrencilere etüt ekleyebilirsiniz\"}\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after',\r\n widget: 'dxButton',\r\n options: {\r\n text: 'Kaydet',\r\n type: 'success',\r\n hint: 'Kaydet',\r\n disabled: this.formEtutTanimiData.Id === 0 ? false : true,\r\n icon: 'check'\r\n , onClick: async () => {\r\n if (this.gridKonuBoxValue === undefined | this.gridKonuBoxValue === null | this.gridKonuBoxValue === \"\") {\r\n alert(\"Lütfen en az 1 konu seçiniz\", \"Uyarı\");\r\n return;\r\n }\r\n if (this.secilenOgrenciler.length === 0) {\r\n alert(\"Lütfen en az 1 öğrenci seçiniz\", \"Uyarı\");\r\n return;\r\n }\r\n const validateStatus = this.formEtutTanimi.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n\r\n this.formEtutTanimiData.Ogrenciler = [];\r\n this.formEtutTanimiData.Ogrenciler = this.secilenOgrenciler;\r\n var konular = [];\r\n this.gridKonuBoxValue.forEach((satir) => {\r\n konular.push({\r\n Id: satir\r\n })\r\n });\r\n this.formEtutTanimiData.Konular = konular;\r\n service.post(otomasyonApi + \"etut/save\", this.formEtutTanimiData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n notify(\"Etüt kaydınız eklendi\", \"success\", 5000);\r\n await this.gridMainSatirIptal();\r\n await this.gridMain.instance.refresh().done(() => {\r\n this.popupEtutTanimiGizle();\r\n });\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.gridMainSatirIptal();\r\n await this.popupEtutTanimiGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form colCount={1} formData={this.formEtutTanimiData} onInitialized={this.onInitializedFormEtutTanimi} ref={(ref) => this.formEtutTanimi = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2}>\r\n <SimpleItem dataField={\"Ogretmen.Id\"} editorType={\"dxSelectBox\"} editorOptions={{\r\n dataSource: this.ogretmenDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return item.Adi + \" \" + item.Soyadi + \"(\" + item.Brans + \")\";\r\n }\r\n },\r\n onInitialized: this.onInitializedSelectBoxOgretmen,\r\n ref: (ref) => this.selectBoxOgretmen = ref\r\n }}>\r\n <Label text=\"Öğretmen\"></Label>\r\n <RequiredRule message=\"Öğretmen alanı zorunludur\"></RequiredRule>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinifSeviye.Id\"} editorType={\"dxSelectBox\"} editorOptions={{\r\n dataSource: this.sinifSeviyeDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n onInitialized: this.onInitializedSelectBoxSinifSeviye,\r\n ref: (ref) => this.selectBoxSinifSeviye = ref,\r\n onValueChanged: async (e) => {\r\n this.selectBoxSinifSube.instance().option(\"value\", null);\r\n var dataSource = this.selectBoxSinifSube.instance().option(\"dataSource\");\r\n dataSource.filter([\"SeviyeId\", \"=\", e.value]);\r\n await dataSource.load().done(() => {\r\n this.selectBoxSinifSube.instance().option(\"dataSource\", dataSource);\r\n });\r\n\r\n this.seviyeFilter.seviyeId = e.value;\r\n this.gridKonu.instance.clearSelection();\r\n // this.konuDataSource.load().done(() => {\r\n // this.dropDownBoxKonu.instance().option(\"dataSource\", this.konuDataSource);\r\n // });\r\n this.gridKonu.instance.refresh();\r\n\r\n this.dropDownBoxKonu.instance.option(\"value\", null);\r\n\r\n this.secilenOgrenciler = [];\r\n if (this.formEtutTanimiData.Id === 0) {\r\n this.ogrenciDataSource.filter([\"SinifSeviye.Id\", \"=\", e.value]);\r\n this.gridOgrenci.instance.refresh();\r\n }\r\n this.gridOgrenci.instance.clearSelection();\r\n }\r\n }}>\r\n <Label text=\"Seviye\"></Label>\r\n <RequiredRule message=\"Seviye alanı zorunludur\"></RequiredRule>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinifSube.Id\"} editorType={\"dxSelectBox\"} editorOptions={{\r\n dataSource: this.sinifSubeDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n onInitialized: this.onInitializedSelectBoxSinifSube,\r\n ref: (ref) => this.selectBoxSinifSube = ref,\r\n onValueChanged: (e) => {\r\n this.secilenOgrenciler = [];\r\n this.ogrenciDataSource.filter([\"SinifSube.Id\", \"=\", e.value]);\r\n this.gridOgrenci.instance.refresh();\r\n this.gridOgrenci.instance.clearSelection();\r\n }\r\n }}>\r\n <Label text=\"Şube\"></Label>\r\n <RequiredRule message=\"Şube alanı zorunludur\"></RequiredRule>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Konu.Id\"}>\r\n <DropDownBox\r\n valueExpr=\"Id\"\r\n deferRendering={false}\r\n displayExpr=\"Adi\"\r\n showClearButton={true}\r\n dataSource={this.konuDataSource}\r\n contentRender={this.konuDataGridRender}\r\n onValueChanged={this.onDropDownBoxKonuValueChanged}\r\n onInitialized={this.onInitializedDropDownBoxKonu}\r\n ref={(ref) => { this.dropDownBoxKonu = ref }}\r\n />\r\n <Label text=\"Konu\"></Label>\r\n <RequiredRule message=\"Konu alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"BaslangicTarihi\"} editorType={\"dxDateBox\"} editorOptions={{\r\n type: \"datetime\",\r\n onInitialized: (e) => {\r\n this.textBoxBaslangicTarihi = e.component;\r\n },\r\n onValueChanged: (e) => {\r\n var t = new Date(e.value);\r\n t.setHours(t.getHours() + 3);\r\n this.formEtutTanimiData.BaslangicTarihi = t;\r\n },\r\n ref: (ref) => this.textBoxBaslangicTarihi = ref,\r\n }}>\r\n <Label text=\"Başlangıç tarihi\"></Label>\r\n <RequiredRule message=\"Başlangıç tarihi alanı zorunludur\"></RequiredRule>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"BitisTarihi\"} editorType={\"dxDateBox\"} editorOptions={{\r\n type: \"datetime\",\r\n onValueChanged: (e) => {\r\n var t = new Date(e.value);\r\n t.setHours(t.getHours() + 3);\r\n this.formEtutTanimiData.BitisTarihi = t;\r\n },\r\n onInitialized: (e) => {\r\n this.textBoxBitisTarihi = e.component;\r\n },\r\n ref: (ref) => this.textBoxBitisTarihi = ref,\r\n }}>\r\n <Label text=\"Bitiş tarihi\"></Label>\r\n <RequiredRule message=\"Bitiş tarihi alanı zorunludur\"></RequiredRule>\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Etüt\">\r\n <TabbedItem>\r\n <TabPanelOptions deferRendering={false} />\r\n <Tab title=\"Etüt İçeriği\">\r\n <SimpleItem dataField={\"Baslik\"} editorType={\"dxSelectBox\"} editorOptions={{\r\n dataSource: window.ayarlar.EtutBaslik,\r\n displayExpr: \"Name\",\r\n valueExpr: \"Value\",\r\n onInitialized: (e) => {\r\n this.textBoxBaslik = e.component;\r\n },\r\n ref: (ref) => this.textBoxBaslik = ref,\r\n }}>\r\n <Label text=\"Başlık\"></Label>\r\n <RequiredRule message=\"Başlık alanı zorunludur\"></RequiredRule>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Aciklama\"} editorType={\"dxHtmlEditor\"} editorOptions={{\r\n height: 300,\r\n toolbar: {\r\n items: [\r\n \"bold\",\r\n \"italic\",\r\n \"color\",\r\n \"background\",\r\n \"link\",\r\n {\r\n \"formatName\": \"header\",\r\n \"formatValues\": [\r\n 1,\r\n 2,\r\n 3,\r\n false\r\n ]\r\n },\r\n \"variable\",\r\n \"strike\",\r\n \"image\",\r\n \"subscript\",\r\n \"superscript\",\r\n \"underline\",\r\n \"blockquote\",\r\n \"increaseIndent\",\r\n \"decreaseIndent\",\r\n \"orderedList\",\r\n \"bulletList\",\r\n \"alignLeft\",\r\n \"alignCenter\",\r\n \"alignRight\",\r\n \"alignJustify\",\r\n \"codeBlock\",\r\n \"undo\",\r\n \"redo\",\r\n \"clear\",\r\n \"separator\"\r\n ],\r\n multiline: true,\r\n\r\n },\r\n onInitialized: (e) => {\r\n this.textBoxEtut = e.component;\r\n },\r\n ref: (ref) => this.textBoxEtut = ref,\r\n }}>\r\n <Label text=\"Etüt\"></Label>\r\n </SimpleItem>\r\n\r\n </Tab>\r\n <Tab title=\"Öğrenciler\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.ogrenciDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'multiple' }}\r\n showCheckBoxesMode={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n key=\"Id\"\r\n onToolbarPreparing={this.onToolbarPreparingGridOgrenci}\r\n onInitialized={this.onInitializedGridOgrenci}\r\n onSelectedRowKeysChange={(e) => {\r\n this.secilenOgrenciler = [];\r\n if (e.length > 0) {\r\n e.forEach((satir) => {\r\n this.secilenOgrenciler.push({\r\n OgrenciId: satir\r\n });\r\n });\r\n }\r\n }}\r\n onEditingStart={(e) => {\r\n }}\r\n\r\n ref={(ref) => this.gridOgrenci = ref}\r\n >\r\n <Export\r\n enabled={Globals.service.Rol === \"SubeOgretmen\" ? false : true}\r\n fileName={'Öğrenciler'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <ColumnChooser mode=\"dragAndDrop\" enabled={Globals.service.Rol === \"SubeOgretmen\" ? false : true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" />\r\n <Column dataField={'Adi'} caption=\"Adı\">\r\n <RequiredRule message=\"Ad alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'Soyadi'} caption=\"Soyad\">\r\n <RequiredRule message=\"Soyad alanı zorunludur\" />\r\n </Column>\r\n <Column dataField={'Seviye'} caption=\"Sınıf\" />\r\n <Column dataField={'Sube'} caption=\"Şube\" />\r\n <Column dataField={'KayitT'} caption=\"Kayıt Turu\" />\r\n <Column dataField={'EtutDurum'} caption=\"Etüt Durumu\" />\r\n </DataGrid>\r\n </Tab>\r\n </TabbedItem>\r\n\r\n </GroupItem>\r\n </Form><br></br>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n );\r\n }\r\n\r\n konuDataGridRender() {\r\n return (\r\n <DataGrid\r\n dataSource={this.konuDataSource}\r\n hoverStateEnabled={true}\r\n onSelectionChanged={this.onKonuDataGridSelectionChanged}\r\n columns={[\"SinavTuru\", \"DersAdi\", \"Adi\"]}\r\n onInitialized={this.onInitializedGridKonu}\r\n ref={(ref) => { this.gridKonu = ref }}\r\n >\r\n <Selection mode=\"multiple\" />\r\n <Scrolling mode=\"virtual\" />\r\n <Paging enabled={true} pageSize={10} />\r\n <FilterRow visible={true} />\r\n </DataGrid>\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { sinavApi, errorMessage, errorMessageWithKonum } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Selection, Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nexport default class YayinIslemleri extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n yayinlar: [],\r\n popup: false,\r\n loadingText: \"\",\r\n toolbarDisabled: false\r\n };\r\n this.secilenSinavTurleri = [];\r\n this.dataGrid = null;\r\n this.gridSinavTuru = null;\r\n this.satir = null;\r\n this.formData = {\r\n Id: 0,\r\n Adi: null,\r\n KlasorAdi: null,\r\n Deleted: false,\r\n RowVersion: 0\r\n }\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onInitialized = this.onInitialized.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.gridSinavTuruSelectionChanged = this.gridSinavTuruSelectionChanged.bind(this);\r\n this.yeniEkleClick = this.yeniEkleClick.bind(this);\r\n this.duzenleClick = this.duzenleClick.bind(this);\r\n this.aktifYapClick = this.aktifYapClick.bind(this);\r\n this.pasifYapClick = this.pasifYapClick.bind(this);\r\n this.silClick = this.silClick.bind(this);\r\n this.popupGizle = () => {\r\n this.setState(\r\n {\r\n popup: false,\r\n toolbarDisabled: false\r\n });\r\n this.secilenSinavTurleri = [];\r\n this.satirIptal();\r\n };\r\n this.popupAc = () => {\r\n this.secilenSinavTurleri = [];\r\n this.setState(\r\n {\r\n popup: true,\r\n toolbarDisabled: true\r\n });\r\n };\r\n this.refreshData();\r\n this.sinavTuruDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'ortak/sinavturleri',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinFilter = { YayinId: 0 };\r\n this.sinavTuruYayinDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n loadParams: this.yayinFilter,\r\n loadUrl: sinavApi + 'ortak/GetSinavTurleriByYayinId',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n\r\n\r\n onInitialized(e) {\r\n this.dataGrid = e.component;\r\n }\r\n\r\n yeniEkleClick() {\r\n\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this.formData = {\r\n Id: 0,\r\n Adi: null,\r\n Deleted: false,\r\n RowVersion: 0,\r\n KlasorAdi: null\r\n };\r\n resolve(\"Yeni form açıldı\");\r\n } catch (error) {\r\n reject(errorMessageWithKonum(error, \"yeni form\"));\r\n }\r\n }).then(res => {\r\n this.popupAc();\r\n }).catch(error => {\r\n alert(error);\r\n })\r\n\r\n\r\n }\r\n\r\n duzenleClick(e) {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this.formData = {\r\n Id: satir.Id,\r\n Adi: satir.Adi,\r\n KlasorAdi: satir.KlasorAdi,\r\n Deleted: satir.Deleted,\r\n RowVersion: satir.RowVersion === null ? 0 : (satir.RowVersion)\r\n };\r\n resolve(\"Yayın düzenleme formu açıldı..\");\r\n } catch (error) {\r\n reject(errorMessageWithKonum(error, \"Yayın düzenleme formu\"));\r\n }\r\n }).then(res => {\r\n this.popupAc();\r\n }).catch(error => {\r\n alert(error)\r\n });\r\n }\r\n }\r\n\r\n silClick(e) {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif almayı seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n return new Promise((resolve, reject) => {\r\n service.post(sinavApi + 'yayin/yayinDelete/' + satir.Id,\r\n {\r\n Id: satir.Id\r\n },\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n resolve(\"Silme işleminiz gerçekleştirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n })\r\n .catch((error) => {\r\n reject(errorMessageWithKonum(error, \"yayın silme\"));\r\n });\r\n }).then(res => {\r\n this.refreshData();\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n\r\n }\r\n });\r\n }\r\n }\r\n\r\n aktifYapClick(e) {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız aktif hale getirilecektir emin misiniz?</i>\", \"Aktif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n return new Promise((resolve, reject) => {\r\n service.post(sinavApi + 'yayin/aktifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n resolve(\"Kaydınız aktif hale getirildi.\");\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n })\r\n .catch((error) => {\r\n reject(errorMessage(error));\r\n });\r\n }).then(res => {\r\n this.refreshData();\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n }\r\n });\r\n\r\n }\r\n };\r\n\r\n pasifYapClick(e) {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız pasif hale getirilecektir emin misiniz?</i>\", \"Pasif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n return new Promise((resolve, reject) => {\r\n service.post(sinavApi + 'yayin/pasifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n resolve(\"Kaydınız pasif hale getirildi.\");\r\n\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n })\r\n .catch((error) => {\r\n // Error 😨\r\n reject(errorMessage(error));\r\n\r\n });\r\n\r\n }).then(res => {\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n this.refreshData();\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n\r\n }\r\n });\r\n }\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yeni', icon: 'add', disabled: this.state.toolbarDisabled,\r\n onClick: this.yeniEkleClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Düzenle', icon: 'edit', disabled: this.state.toolbarDisabled,\r\n onClick: async () => {\r\n await this.duzenleClick();\r\n this.yayinFilter.YayinId = this.satir.Id;\r\n this.sinavTuruYayinDataSource.load().done(() => {\r\n let arrayList = [];\r\n this.sinavTuruYayinDataSource.items().forEach((item, index) => {\r\n arrayList.push(item.SinavTuru.Id);\r\n });\r\n this.gridSinavTuru.instance.selectRows(arrayList);\r\n });\r\n\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'remove', disabled: this.state.toolbarDisabled,\r\n onClick: this.silClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank', disabled: this.state.toolbarDisabled,\r\n onClick: this.pasifYapClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank', disabled: this.state.toolbarDisabled,\r\n onClick: this.aktifYapClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh', disabled: this.state.toolbarDisabled,\r\n onClick: () => {\r\n this.refreshData();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa', disabled: this.state.toolbarDisabled,\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n\r\n gridSinavTuruSelectionChanged() {\r\n this.secilenSinavTurleri = this.gridSinavTuru.instance.getSelectedRowsData();\r\n }\r\n\r\n async refreshData() {\r\n\r\n this.setState({\r\n loadingText: \"yayın bilgileri getiriliyor...\",\r\n toolbarDisabled: true\r\n });\r\n\r\n await this.getYayinlar().then(res => { }).catch(error => {\r\n alert(error);\r\n });\r\n\r\n await this.satirIptal();\r\n this.setState({\r\n loadingText: \"\",\r\n toolbarDisabled: false,\r\n popup: false\r\n });\r\n\r\n }\r\n\r\n //seçilen satırı iptal etmek için kullanıyoruz\r\n async satirIptal() {\r\n this.dataGrid.instance.clearSelection();\r\n this.dataGrid.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n\r\n async getYayinlar() {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + 'yayin/getYayinlar', {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n yayinlar: res.data.Data\r\n });\r\n resolve(\"yayın bilgileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessageWithKonum(error, \"yayın bilgileri\"));\r\n })\r\n })\r\n }\r\n\r\n\r\n render() {\r\n\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n {this.state.loadingText}\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.state.yayinlar}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n onInitialized={this.onInitialized}\r\n ref={(ref) => this.dataGrid = ref}\r\n >\r\n <Export enabled={true} fileName={'Yayinlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" />\r\n <Column dataField={'Adi'} caption=\"Yayın\" />\r\n <Column dataField={'KlasorAdi'} caption=\"Klasör\" />\r\n </DataGrid>\r\n <Popup showTitle={true} shading={false} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n this.setState({\r\n loadingText: \"Kayıt işlemi gerçekleştiriliyor\"\r\n })\r\n this.formData.SinavTurleri = this.secilenSinavTurleri;\r\n return new Promise((resolve, reject) => {\r\n service.post(sinavApi + 'yayin/yayinSave',\r\n this.formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify('Düzenleme işlemi gerçekleştirildi', 'success', 5000);\r\n resolve('Düzenleme işlemi gerçekleştirildi');\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n })\r\n .catch((error) => {\r\n // Error 😨\r\n reject(errorMessageWithKonum(error, \"yayın kayıt işlemi\"));\r\n });\r\n\r\n }).then(res => {\r\n this.refreshData();\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <Form formData={this.formData}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem dataField={\"Adi\"} isRequired={true}>\r\n <Label text=\"Yayın\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KlasorAdi\"} isRequired={true}>\r\n <Label text=\"Klasör\" />\r\n </SimpleItem>\r\n <SimpleItem>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.sinavTuruDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n columnFixing={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n onSelectionChanged={this.gridSinavTuruSelectionChanged}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n ref={(ref) => this.gridSinavTuru = ref}\r\n width=\"100%\"\r\n >\r\n\r\n <Paging defaultPageSize={15} />\r\n <Selection mode=\"multiple\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"onClick\" />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Sınav Türü\" />\r\n\r\n </DataGrid>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </ScrollView>\r\n </Popup>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { sinavApi, authApi } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport auth from \"../../Auth\";\r\nimport DataGrid, {\r\n Scrolling, Selection, Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport TreeList from 'devextreme-react/tree-list';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label, RequiredRule } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\n\r\nfunction copyRichText(text) {\r\n const listener = function (ev) {\r\n ev.preventDefault();\r\n ev.clipboardData.setData('text/html', text);\r\n ev.clipboardData.setData('text/plain', text);\r\n };\r\n document.addEventListener('copy', listener);\r\n document.execCommand('copy');\r\n document.removeEventListener('copy', listener);\r\n notify(\"Bilgiler kopyalandı\", \"success\", 5000);\r\n}\r\nexport default class YayineviKullaniciIslemleri extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popup: false,\r\n kullaniciAktarVisible: false,\r\n kullaniciYayinYetkilendirme: false\r\n };\r\n this.gridYayin = null;\r\n this.gridMain = null;\r\n this.gridYayinMain = null;\r\n this.gridKurum = null;\r\n this.gridMerkezKullaniciYetki = null;\r\n this.formKullanici = null;\r\n this.formKullaniciAktar = null;\r\n this.selectBoxRol = null;\r\n this.satir = null;\r\n this.yayinlar = [];\r\n this.kurumlar = [];\r\n this.yayinYetkileriArrayList = [];\r\n this.ililceYetkileriArrayList = [];\r\n this.kurumYetkileriArrayList = [];\r\n this.formData = {\r\n }\r\n this.sinavKullanici = {};\r\n this.secilenKullanicilar = [];\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionGridMainChanged = this.onSelectionGridMainChanged.bind(this);\r\n this.onSelectionGridYayinChanged = this.onSelectionGridYayinChanged.bind(this);\r\n this.onSelectionGridMerkeziKullaniciYetkiChanged = this.onSelectionGridMerkeziKullaniciYetkiChanged.bind(this);\r\n this.onSelectionGridKurumChanged = this.onSelectionGridKurumChanged.bind(this);\r\n this.onInitializedGridMain = this.onInitializedGridMain.bind(this);\r\n this.onInitializedGridKurum = this.onInitializedGridKurum.bind(this);\r\n this.onInitializedGridYayin = this.onInitializedGridYayin.bind(this);\r\n this.onInitializedGridYayinMain = this.onInitializedGridYayinMain.bind(this);\r\n this.onInitializedGridMerkezKullaniciYetki = this.onInitializedGridMerkezKullaniciYetki.bind(this);\r\n this.onInitializedSelectBoxRol = this.onInitializedSelectBoxRol.bind(this);\r\n this.onInitializedFormKullanici = this.onInitializedFormKullanici.bind(this);\r\n this.onInitializedFormKullaniciAktar = this.onInitializedFormKullaniciAktar.bind(this);\r\n this.duzenleClick = this.duzenleClick.bind(this);\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.popupGizle = () => {\r\n this.setState({ popup: false });\r\n };\r\n this.headers = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n this.arrayList = null;\r\n this.flag = false;\r\n this.secilenIlIlceler = [];\r\n this.secilenYayinlar = [];\r\n this.secilenKurumlar = [];\r\n this.KullaniciYayinYetki = [];\r\n this.MerkezKullaniciYetki = [];\r\n this.MerkeziKurumYetki = [];\r\n this.KullaniciSinavDetay = {};\r\n this.kullaniciDataSource = new DataSource(\r\n {\r\n\r\n paginate: false,\r\n requireTotalCount: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kullanici/getKullanicilar',\r\n\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.rolDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'rol/roller',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.merkezKullaniciYetkiDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'ortak/gettumilveilceler',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.kurumDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kurum/kurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.donemDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: authApi + 'auth/getdonemler',\r\n })\r\n });\r\n\r\n this.popupKullaniciAktarGizle = () => {\r\n this.setState({\r\n kullaniciAktarVisible: false\r\n });\r\n }\r\n\r\n this.popupYayinYetkilendirmeGizle = () => {\r\n this.setState({\r\n kullaniciYayinYetkilendirme: false\r\n });\r\n }\r\n\r\n this.formKullaniciAktarData = {\r\n Kullanicilar: [],\r\n toolBarDisabled: false,\r\n GecmisDonemId: Globals.service.DonemId,\r\n DonemId: null,\r\n };\r\n this.sinifSeviyeleri = window.ayarlar.SinifSeviyeleri;\r\n }\r\n\r\n\r\n async popupAc() {\r\n\r\n this.setState({\r\n popup: true\r\n });\r\n }\r\n\r\n async yeni() {\r\n this.formData = {\r\n Id: 0,\r\n Rol_Id: null,\r\n Deleted: false,\r\n RowVersion: 0,\r\n KullaniciAdi: null,\r\n Sifre: null,\r\n Email: null,\r\n Adi: null,\r\n Soyadi: null,\r\n SmsBilgi: false,\r\n MailBilgi: false,\r\n Tel: null,\r\n Gsm: null,\r\n Resim: null,\r\n SinifSeviyeId: 0\r\n };\r\n }\r\n\r\n async dataClear() {\r\n this.secilenIlIlceler = [];\r\n this.secilenYayinlar = [];\r\n this.secilenKurumlar = [];\r\n this.KullaniciYayinYetki = [];\r\n this.MerkezKullaniciYetki = [];\r\n this.MerkeziKurumYetki = [];\r\n this.KullaniciSinavDetay = {};\r\n await this.gridYayin.instance.clearSelection();\r\n await this.gridYayinSatirIptal();\r\n await this.gridMerkezKullaniciYetki.instance.clearSelection();\r\n await this.gridMerkezKullaniciYetkiSatirIptal();\r\n await this.gridKurum.instance.clearSelection();\r\n await this.gridKurumSatirIptal();\r\n }\r\n\r\n async getKullanici(id) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getKullanici/\" + id, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n res.data.Data = res.data.Data[0];\r\n this.formData = {\r\n Id: res.data.Data.Id,\r\n Rol_Id: res.data.Data.Rol_Id,\r\n Deleted: res.data.Data.Deleted,\r\n RowVersion: res.data.Data.RowVersion,\r\n KullaniciAdi: res.data.Data.KullaniciAdi,\r\n Sifre: res.data.Data.Sifre,\r\n Email: res.data.Data.Email,\r\n Adi: res.data.Data.Adi,\r\n Soyadi: res.data.Data.Soyadi,\r\n SmsBilgi: res.data.Data.SmsBilgi,\r\n MailBilgi: res.data.Data.MailBilgi,\r\n Tel: res.data.Data.Tel,\r\n Gsm: res.data.Data.Gsm,\r\n Resim: res.data.Data.Logo,\r\n Logo: res.data.Data.Logo,\r\n VarsayilanLogo: res.data.Data.VarsayilanLogo,\r\n SinifSeviyeId: 0\r\n };\r\n resolve(\"Kullanıcı bilgileri getirildi.\");\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu,Kullanıcı bilgileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async getYayinYetkileriByKullanici(kullaniciId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getYayinYetkileriByKullanici/\" + kullaniciId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.yayinYetkileriArrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n this.yayinYetkileriArrayList.push(item.Yayin_Id)\r\n });\r\n resolve(\"Yayın yetkileri getirildi.\");\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu, yayın yetkileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async getKullaniciIlveIlceYetkileri(kullaniciId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getMerkezKullaniciYetkileriByKullanici/\" + kullaniciId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.ililceYetkileriArrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n this.ililceYetkileriArrayList.push(item.Ilce_Id)\r\n });\r\n resolve(\"İl ve İlçe yetkileri getirildi.\");\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu, il ve ilçe yetkileri getirilemedi\");\r\n });\r\n })\r\n }\r\n\r\n async getMerkezKurumYetkileriByKullanici(kullaniciId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"kullanici/getMerkezKurumYetkileriByKullanici/\" + kullaniciId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.kurumYetkileriArrayList = [];\r\n res.data.Data.forEach((item, index) => {\r\n this.kurumYetkileriArrayList.push(item.Kurum.Id)\r\n });\r\n resolve(\"Kurum yetkileri verildi.\");\r\n }\r\n }).catch(() => {\r\n reject(\"Teknik bir hata oluştu, kurum bilgileri getirilemedi\");\r\n });\r\n });\r\n }\r\n\r\n async duzenleClick(e) {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n try {\r\n await this.dataClear();\r\n this.formData = {};\r\n await this.getKullanici(satir.Id);\r\n await this.rolDataSource.load();\r\n if (this.selectBoxRol !== null && this.selectBoxRol !== undefined) {\r\n await this.selectBoxRol.instance().option(\"value\", this.formData.Rol_Id);\r\n }\r\n\r\n const rol = this.rolDataSource.items().filter(x => x.Id === this.formData.Rol_Id)[0];\r\n if (rol.Adi !== \"Kurum\" && rol.Adi !== \"Ogrenci\") {\r\n await this.getKullaniciIlveIlceYetkileri(satir.Id).then(() => {\r\n if (this.gridMerkezKullaniciYetki !== null) {\r\n if (this.gridMerkezKullaniciYetki.instance !== undefined && this.gridMerkezKullaniciYetki.instance !== null) {\r\n this.gridMerkezKullaniciYetki.instance.selectRows(this.ililceYetkileriArrayList);\r\n this.gridMerkezKullaniciYetki.instance.refresh();\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n await this.getMerkezKurumYetkileriByKullanici(satir.Id).then(() => {\r\n if (this.gridKurum !== null) {\r\n if (this.gridKurum.instance !== undefined && this.gridKurum.instance !== null) {\r\n this.gridKurum.instance.selectRows(this.kurumYetkileriArrayList);\r\n this.gridKurum.instance.refresh();\r\n }\r\n }\r\n });\r\n }\r\n await this.getYayinYetkileriByKullanici(satir.Id).then(() => {\r\n if (this.gridYayin !== null) {\r\n if (this.gridYayin.instance !== undefined && this.gridYayin.instance !== null) {\r\n this.gridYayin.instance.selectRows(this.yayinYetkileriArrayList);\r\n }\r\n }\r\n })\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n await this.popupAc();\r\n\r\n }\r\n }\r\n }\r\n\r\n async sil(satir) {\r\n service.post(sinavApi + 'kullanici/KullaniciSil/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n service.post(sinavApi + \"kullanici/KullaniciSil/\" + satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n\r\n async aktifYap(satir) {\r\n service.post(sinavApi + 'kullanici/AktifYap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n async pasifYap(satir) {\r\n service.post(sinavApi + 'kullanici/PasifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n onUploaded(e) {\r\n if (e.value.length > 0) {\r\n this.formData.Resim = e.value[0].name;\r\n notify(\"Logonuz yüklendi\", \"success\", 5000);\r\n }\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"share\",\r\n type: \"success\",\r\n hint: \"Kullanıcı yayın yetkilendirme işlemleri\",\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n this.setState({\r\n kullaniciYayinYetkilendirme: true\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"importselected\",\r\n type: \"success\",\r\n onClick: async () => {\r\n this.donemDataSource.filter([\"Id\", \"<>\", Globals.service.DonemId]);\r\n await this.donemDataSource.load();\r\n this.setState({\r\n kullaniciAktarVisible: true\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n elementAttr: {\r\n id: \"btnGecisYap\"\r\n },\r\n icon: \"user\",\r\n type: \"success\",\r\n hint: \"seçtiğiniz kullanıcının ekranına geçiş yapar\",\r\n onClick: () => {\r\n if (this.satir === null | this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n }\r\n else {\r\n try {\r\n localStorage.removeItem(\"oturum\");\r\n localStorage.removeItem(\"session\");\r\n localStorage.removeItem(\"initialized\");\r\n } catch (error) {\r\n }\r\n const data = {\r\n KullaniciAdi: this.satir.KullaniciAdi,\r\n Sifre: this.satir.Sifre,\r\n Donem: { Id: this.satir.Donem_Id }\r\n }\r\n service.post(authApi + \"Auth/authenticate\"\r\n , data)\r\n .then(res => {\r\n auth.login(() => {\r\n\r\n\r\n var localStoregeData = {};\r\n res.data.AdSoyad = res.data.Kullanici.Adi + \" \" + res.data.Kullanici.Soyadi;\r\n res.data.Menu = res.data.Kullanici.KullaniciMenuler;\r\n res.data.Rol = res.data.Kullanici.Rol;\r\n res.data.Id = res.data.Kullanici.Id;\r\n res.data.DonemId = res.data.Kullanici.Donem.Id;\r\n res.data.DonemAdi = res.data.Kullanici.DonemAdi;\r\n res.data.KurumId = res.data.Kullanici.KurumId;\r\n localStorage.setItem(\"oturum\", JSON.stringify(res.data));\r\n // Globals.AdSoyad = localStoregeData.Kullanici.Adi + \" \" + localStoregeData.Kullanici.Soyadi;\r\n // Globals.menuler = localStoregeData.Kullanici.KullaniciMenuler;\r\n Globals.service = localStoregeData;\r\n // Globals.Token = localStoregeData.Token;\r\n // Globals.Rol = localStoregeData.Kullanici.Rol;\r\n if (Globals.service.Rol === \"SubeKayitKabul\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeMuhasebe\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeKayitMuhasebe\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"Sube\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"GenelMerkez\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeVeli\") {\r\n this.props.history.push(\"/velidashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeOgrenci\") {\r\n window.location.href = \"/ogrencidashboard\";\r\n }\r\n else {\r\n this.props.history.push(\"/home\");\r\n }\r\n\r\n });\r\n })\r\n .catch((error) => {\r\n // Error 😨\r\n if (error.response) {\r\n notify(error.response.data.message, 'error', 5000);\r\n } else if (error.request) {\r\n notify(error.request, 'error', 5000);\r\n } else {\r\n notify(\"Teknik bir hat oluştu\", 'error', 5000);\r\n }\r\n\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yeni', icon: 'add',\r\n onClick: async () => {\r\n if (Globals.service.Rol === \"Doküman\" | Globals.service.Rol === \"Rapor\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n\r\n await this.yeni();\r\n await this.dataClear();\r\n await this.popupAc();\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Düzenle', icon: 'edit',\r\n onClick: this.duzenleClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Kullanıcı Bilgilerini Kopyala', icon: 'copy',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let kopyalananData = window.ayarlar.mainUrl + \" \";\r\n kopyalananData += \"Kullanıcı adınız:\" + satir.KullaniciAdi + \" \";\r\n kopyalananData += \"Şifreniz:\" + satir.Sifre + \"\";\r\n copyRichText(kopyalananData);\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'trash',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.sil(satir);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız pasif hale getirilecektir emin misiniz?</i>\", \"Pasif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.pasifYap(satir);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Döküman\" | Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Döküman\") {\r\n alert(\"Üzgünüz bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız aktif hale getirilecektir emin misiniz?</i>\", \"Aktif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.aktifYap(satir);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSelectionGridKurumChanged() {\r\n if (this.gridKurum !== null) {\r\n if (this.gridKurum.instance !== undefined && this.gridKurum.instance !== null) {\r\n this.secilenKurumlar = this.gridKurum.instance.getSelectedRowsData();\r\n }\r\n }\r\n\r\n }\r\n\r\n onSelectionGridMerkeziKullaniciYetkiChanged() {\r\n if (this.gridMerkezKullaniciYetki !== null) {\r\n if (this.gridMerkezKullaniciYetki.instance !== null && this.gridMerkezKullaniciYetki.instance !== undefined) {\r\n this.secilenIlIlceler = this.gridMerkezKullaniciYetki.instance.getSelectedRowsData();\r\n }\r\n }\r\n }\r\n\r\n onInitializedGridMain(e) {\r\n this.gridMain = e.component;\r\n }\r\n\r\n onInitializedGridYayin(e) {\r\n this.gridYayin = e.component;\r\n\r\n }\r\n\r\n onInitializedGridYayinMain(e) {\r\n this.gridYayinMain = e.component;\r\n }\r\n\r\n onInitializedGridKurum(e) {\r\n this.gridKurum = e.component;\r\n }\r\n\r\n onInitializedGridMerkezKullaniciYetki(e) {\r\n this.gridMerkezKullaniciYetki = e.component;\r\n }\r\n\r\n onInitializedSelectBoxRol(e) {\r\n this.selectBoxRol = e.component;\r\n }\r\n\r\n onInitializedFormKullanici(e) {\r\n this.formKullanici = e.component;\r\n }\r\n\r\n onSelectionGridMainChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n onSelectionGridYayinChanged() {\r\n if (this.gridYayin !== null) {\r\n if (this.gridYayin.instance !== null && this.gridYayin.instance !== undefined) {\r\n this.secilenYayinlar = this.gridYayin.instance.getSelectedRowsData();\r\n }\r\n }\r\n }\r\n\r\n onInitializedFormKullaniciAktar(e) {\r\n this.formKullaniciAktar = e.component;\r\n }\r\n\r\n async gridMainSatirIptal() {\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n async gridYayinSatirIptal() {\r\n if (this.gridYayin.instance !== null) {\r\n this.gridYayin.instance.clearSelection();\r\n this.gridYayin.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n async gridMerkezKullaniciYetkiSatirIptal() {\r\n if (this.gridMerkezKullaniciYetki.instance !== null) {\r\n this.gridMerkezKullaniciYetki.instance.clearSelection();\r\n this.gridMerkezKullaniciYetki.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n async gridKurumSatirIptal() {\r\n if (this.gridKurum.instance !== null) {\r\n this.gridKurum.instance.clearSelection();\r\n this.gridKurum.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.kullaniciDataSource}\r\n remoteOperations={false}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'multiple' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n showCheckBoxesMode={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n enabled: true\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onInitialized={this.onInitializedGridMain}\r\n onSelectionChanged={this.onSelectionGridMainChanged}\r\n onSelectedRowKeysChange={(e) => {\r\n this.secilenKullanicilar = [];\r\n if (e.length > 0) {\r\n e.forEach((satir) => {\r\n this.secilenKullanicilar.push({\r\n KullaniciId: satir\r\n });\r\n });\r\n }\r\n }}\r\n ref={(ref) => this.gridMain = ref}\r\n\r\n >\r\n\r\n <Export enabled={true} fileName={'Yayinlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" visible={false} showInColumnChooser={true} />\r\n <Column dataField={'DonemAdi'} caption=\"Dönem\" dataType=\"string\" />\r\n <Column dataField={'Il_Adi'} caption=\"İl\" dataType=\"string\" />\r\n <Column dataField={'KullaniciAdi'} caption=\"K. Adı\" />\r\n <Column dataField={'Email'} caption=\"Email\" />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n <Column dataField={'Soyadi'} caption=\"Soyadı\" />\r\n <Column dataField={'Sifre'} caption=\"Şifre\" />\r\n <Column dataField={'Rol'} caption=\"Rol\" />\r\n <Column dataField={'Gsm'} caption=\"Gsm\" visible={false} />\r\n <Column dataField={'Tel'} caption=\"Tel\" visible={false} />\r\n <Column dataField={'SmsBilgi'} caption=\"Sms Bilgi\" dataType=\"boolean\" visible={false} showInColumnChooser={true} />\r\n <Column dataField={'MailBilgi'} caption=\"Mail Bilgi\" dataType=\"boolean\" visible={false} showInColumnChooser={true} />\r\n <Column dataField={'Donem_Id'} caption=\"Dönem Id\" dataType=\"number\" visible={false} showInColumnChooser={true} />\r\n </DataGrid>\r\n </div>\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={false} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n const validateStatus = this.formKullanici.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n const kullaniciRolu = this.selectBoxRol.instance().option(\"text\");\r\n if (kullaniciRolu === 'AltBayi' | kullaniciRolu === 'Bayi') {\r\n this.secilenKurumlar = [];\r\n this.MerkeziKurumYetki = [];\r\n\r\n }\r\n else if (kullaniciRolu === 'Kurum' || kullaniciRolu === 'Ogrenci') {\r\n this.secilenIlIlceler = [];\r\n this.MerkezKullaniciYetki = [];\r\n\r\n }\r\n else {\r\n this.secilenKurumlar = [];\r\n this.MerkeziKurumYetki = [];\r\n\r\n }\r\n\r\n this.KullaniciYayinYetki = [];\r\n\r\n this.secilenYayinlar.forEach((item, index) => {\r\n this.KullaniciYayinYetki.push(\r\n {\r\n Yayin: { Id: item.Id },\r\n Kullanici: { Id: 0 }\r\n }\r\n );\r\n });\r\n\r\n if (this.formData.Resim !== undefined) {\r\n this.formData.Logo = this.formData.Resim;\r\n }\r\n\r\n this.MerkezKullaniciYetki = [];\r\n this.secilenIlIlceler.forEach((item, index) => {\r\n this.MerkezKullaniciYetki.push({\r\n Yayin: { Id: 0 },\r\n Kullanici: { Id: 0 },\r\n Il: { Id: item.Il_Id },\r\n Ilce: { Id: item.Ilce_Id }\r\n });\r\n });\r\n\r\n this.MerkeziKurumYetki = [];\r\n this.secilenKurumlar.forEach((item, index) => {\r\n this.MerkeziKurumYetki.push({\r\n Kurum: { Id: item.Id }\r\n });\r\n });\r\n\r\n this.sinavKullanici = {\r\n Kullanici: this.formData,\r\n KullaniciSinavDetay: this.KullaniciSinavDetay,\r\n KullaniciYayinYetki: this.KullaniciYayinYetki,\r\n MerkezKullaniciYetki: this.MerkezKullaniciYetki,\r\n MerkeziKurumYetki: this.MerkeziKurumYetki\r\n };\r\n\r\n service.post(sinavApi + 'kullanici/KullaniciSave',\r\n this.sinavKullanici,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n\r\n this.gridMain.instance.refresh().then(() => {\r\n this.setState({\r\n popup: false\r\n });\r\n });\r\n }\r\n else {\r\n this.sinavKullanici = {\r\n Kullanici: this.formData,\r\n KullaniciSinavDetay: this.KullaniciSinavDetay,\r\n KullaniciYayinYetki: this.KullaniciYayinYetki,\r\n MerkezKullaniciYetki: this.MerkezKullaniciYetki,\r\n MerkeziKurumYetki: this.MerkeziKurumYetki\r\n };\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormKullanici} ref={(ref) => this.formKullanici = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Kullanıcı Bilgileri\">\r\n <SimpleItem dataField={\"Email\"} isRequired={true}>\r\n <Label text=\"Email\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KullaniciAdi\"} isRequired={true}>\r\n <Label text=\"K. Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Sifre\"} isRequired={true} editorType=\"dxTextBox\">\r\n <Label text=\"Şifre\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Adi\"} isRequired={true}>\r\n <Label text=\"Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Soyadi\"} isRequired={true}>\r\n <Label text=\"Soyadı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tel\"}>\r\n <Label text=\"Telefon\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Gsm\"}>\r\n <Label text=\"Gsm\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SmsBilgi\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Sms Bilgi\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MailBilgi\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Mail Bilgi\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinifSeviyeId\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.sinifSeviyeleri,\r\n searchEnabled: false,\r\n visible: (window.ayarlar.isDijitalPlatForm ? true : false),\r\n displayExpr: \"Name\",\r\n valueExpr: \"Value\",\r\n onInitialized: (e) => {\r\n this.selectSinifSeviye = e.component;\r\n },\r\n onValueChanged: (e) => {\r\n this.formData.SinifSeviyeId = parseInt(e.value);\r\n },\r\n ref: (ref) => { this.selectSinifSeviye = ref }\r\n }}>\r\n <Label text=\"Sınıf Seviyesi\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-grup\" colCount={3}>\r\n <SimpleItem dataField={\"Rol_Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.rolDataSource,\r\n remoteOperations: true,\r\n searchEnabled: false,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxRol,\r\n ref: (ref) => { this.selectBoxRol = ref },\r\n onValueChanged: (e) => {\r\n var text = e.component.option(\"text\");\r\n if (text === \"Kurum\" | text === \"Ogrenci\") {\r\n\r\n this.kurumDataSource.filter(null);\r\n if (this.gridKurum !== null) {\r\n if (this.gridKurum.instance !== undefined) {\r\n this.gridKurum.instance.refresh().then(() => {\r\n this.secilenKurumlar = [];\r\n });\r\n }\r\n }\r\n\r\n this.merkezKullaniciYetkiDataSource.filter([\"Id\", \"=\", 0]);\r\n if (this.gridMerkezKullaniciYetki !== null) {\r\n if (this.gridMerkezKullaniciYetki.instance !== undefined) {\r\n this.gridMerkezKullaniciYetki.instance.refresh().then(() => {\r\n this.secilenIlIlceler = [];\r\n });\r\n }\r\n }\r\n\r\n\r\n }\r\n else if (text === \"Bayi\" | text === \"AltBayi\") {\r\n this.kurumDataSource.filter([\"Id\", \"=\", 0]);\r\n if (this.gridKurum !== null) {\r\n if (this.gridKurum.instance !== undefined) {\r\n this.gridKurum.instance.refresh().then(() => {\r\n this.secilenKurumlar = [];\r\n });\r\n }\r\n }\r\n\r\n this.merkezKullaniciYetkiDataSource.filter(null);\r\n if (this.gridMerkezKullaniciYetki !== null) {\r\n if (this.gridMerkezKullaniciYetki.instance !== undefined) {\r\n this.gridMerkezKullaniciYetki.instance.refresh().then(() => {\r\n this.secilenIlIlceler = [];\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }} >\r\n <Label text=\"Rol\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: sinavApi + \"kullanici/LogoUpload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n name: 'myFile',\r\n onValueChanged: this.onUploaded\r\n }}>\r\n <Label text=\"Logo seçiniz\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VarsayilanLogo\"} editorType=\"dxCheckBox\">\r\n <Label text=\"Varsayılan Logo\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"İl-İlçe-Yayın Yetkileri\">\r\n <SimpleItem>\r\n <h4>İl-İlçe Yetkileri</h4>\r\n <TreeList\r\n dataSource={this.merkezKullaniciYetkiDataSource}\r\n showRowLines={true}\r\n showBorders={true}\r\n columnAutoWidth={true}\r\n keyExpr=\"Id\"\r\n parentIdExpr=\"ParentId\"\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n onInitialized={this.onInitializedGridMerkezKullaniciYetki}\r\n onSelectionChanged={this.onSelectionGridMerkeziKullaniciYetkiChanged}\r\n ref={(ref) => this.gridMerkezKullaniciYetki = ref}\r\n >\r\n <Paging enabled={true} />\r\n <Scrolling mode={\"standart\"} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={\"[20,50, 80]\"} showInfo={true} />\r\n <Selection recursive={true} mode=\"multiple\" />\r\n <Column dataField=\"Il_Adi\" caption=\"İl Adı\" />\r\n <Column dataField=\"Ilce_Adi\" caption=\"İlçe Adı\" />\r\n </TreeList>\r\n\r\n </SimpleItem>\r\n <SimpleItem>\r\n <h4>Yayın Yetkileri</h4>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.yayinDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n onInitialized={this.onInitializedGridYayin}\r\n onSelectionChanged={this.onSelectionGridYayinChanged}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridYayin = ref}\r\n >\r\n\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Selection mode=\"multiple\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"onClick\" />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Yayın\" />\r\n </DataGrid>\r\n\r\n </SimpleItem>\r\n\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Kurum Yetkileri\">\r\n <SimpleItem>\r\n <h4>Kurum Yetkileri</h4>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.kurumDataSource}\r\n remoteOperations={true}\r\n repaintChangesOnly={false}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={false}\r\n onSelectionChanged={this.onSelectionGridKurumChanged}\r\n onInitialized={this.onInitializedGridKurum}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridKurum = ref}\r\n >\r\n\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Selection mode=\"multiple\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"onClick\" />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'ilAdi'} caption=\"İl\" />\r\n <Column dataField={'ilceAdi'} caption=\"İlçe\" />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" dataType=\"string\" />\r\n </DataGrid>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"50%\"}\r\n visible={this.state.kullaniciAktarVisible}\r\n title={\"Kullanıcı Aktarma İşlemi\"}\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kullanıcı Aktar',\r\n type: 'success',\r\n hint: 'Kullanıcı Aktar',\r\n icon: 'check',\r\n disabled: this.state.toolBarDisabled,\r\n onClick: async (e) => {\r\n this.formKullaniciAktarData.Kullanicilar = this.secilenKullanicilar;\r\n this.setState({\r\n toolBarDisabled: true\r\n });\r\n service.post(sinavApi + \"kullanici/secilenkullanicilariyenidonemeaktar\", this.formKullaniciAktarData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n await this.setState({\r\n toolBarDisabled: false\r\n });\r\n await this.popupKullaniciAktarGizle();\r\n notify(\"Aktarım işleminiz gerçekleşti\", \"success\", 5000);\r\n } else {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.popupKullaniciAktarGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form colCount={1} formData={this.formKullaniciAktarData} onInitialized={this.onInitializedFormKullaniciAktar} ref={(ref) => this.formKullaniciAktar = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem dataField=\"DonemId\" editorType=\"dxSelectBox\" editorOptions={{\r\n dataSource: this.donemDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }}>\r\n <Label text=\"Dönem Seçiniz\" />\r\n <RequiredRule message=\"Dönem alanı zorunludur\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form><br></br>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n <Popup showTitle={true} shading={true} dragEnabled={true}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n width={\"50%\"} height={\"50%\"}\r\n visible={this.state.kullaniciYayinYetkilendirme}\r\n title={\"Kullanıcı Yayın Yetkilendirme İşlemi\"}\r\n toolbarItems={\r\n [\r\n\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kullanıcı Yayın Yetkilendir',\r\n type: 'success',\r\n hint: 'Kullanıcı Yayın Yetkilendir',\r\n icon: 'check',\r\n disabled: this.state.toolBarDisabled,\r\n onClick: async (e) => {\r\n let yayinRows = [];\r\n\r\n this.gridYayinMain.instance.getSelectedRowsData().forEach((row, index) => {\r\n yayinRows.push({\r\n Id: row.Id\r\n });\r\n //ogrenciInfoData += index + 1 + \". \" + row.Adi + \" \" + row.Soyadi + \"<br/>\";\r\n });\r\n let data = {\r\n KullaniciId: this.satir.Id,\r\n Yayinlar: yayinRows\r\n };\r\n\r\n this.setState({\r\n toolBarDisabled: true\r\n });\r\n service.post(sinavApi + \"kullanici/secilenkullanicilarayayinyetkisiver\", data, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n await this.setState({\r\n toolBarDisabled: false\r\n });\r\n await this.popupYayinYetkilendirmeGizle();\r\n notify(\"Kullanıcı yetkilendirme işleminiz gerçekleşti\", \"success\", 5000);\r\n } else {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({\r\n toolBarDisabled: false\r\n });\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'close'\r\n , onClick: async () => {\r\n await this.popupYayinYetkilendirmeGizle();\r\n }\r\n }\r\n }\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.yayinDataSource}\r\n remoteOperations={false}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'multiple' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n showCheckBoxesMode={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n enabled: true\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onInitialized={this.onInitializedGridYayinMain}\r\n ref={(ref) => this.gridYayinMain = ref}\r\n\r\n >\r\n\r\n <Export enabled={true} fileName={'Yayinlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" visible={false} showInColumnChooser={true} />\r\n <Column dataField={'Adi'} caption=\"Yayın\" dataType=\"string\" />\r\n </DataGrid>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n </React.Fragment>\r\n\r\n );\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { sinavApi } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { Popover } from 'devextreme-react/popover';\r\nexport default class OptikFormTanimi extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popup: false,\r\n allowEditingOgrenciNoAdSoyad: true,\r\n };\r\n this.satir = null;\r\n this.toolTipInfo = null;\r\n this.optikFormAlan = {};\r\n this.optikFormAlanlar = [];\r\n this.formData = {\r\n Id: 0,\r\n Yayin: { Id: 0 },\r\n SinavTuru: { Id: 0 },\r\n Kullanici: { Id: 0 },\r\n Adi: \"\",\r\n Bilgi: \"\",\r\n CiftOturum: false,\r\n CiftOturumOzel: false,\r\n HerYayinGorsun: false,\r\n AdSoyadBir: false,\r\n Deleted: false,\r\n RowVersion: 0,\r\n optikFormAlanlar: [],\r\n HerDonemGozuksun: false,\r\n Kds: false\r\n };\r\n this.gridMain = null;\r\n this.gridOptikFormAlan = null;\r\n this.gridOptikFormParametre = null;\r\n this.selectBoxSinavTuru = null;\r\n this.selectBoxYayin = null;\r\n this.popupForm = null;\r\n this.chkBoxCiftOturum = null;\r\n this.chkBoxCiftOturumOzel = null;\r\n this.chkBoxKds = null;\r\n this.onInitializedGridMain = this.onInitializedGridMain.bind(this);\r\n this.onInitializedGridOptikFormParametre = this.onInitializedGridOptikFormParametre.bind(this);\r\n this.onInitializedGridOptikFormAlan = this.onInitializedGridOptikFormAlan.bind(this);\r\n this.onInitializedSelectBoxYayin = this.onInitializedSelectBoxYayin.bind(this);\r\n this.onInitializedSelectBoxSinavTuru = this.onInitializedSelectBoxSinavTuru.bind(this);\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onEditorOptikFormAlanPreparing = this.onEditorOptikFormAlanPreparing.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.yeniEkleClick = this.yeniEkleClick.bind(this);\r\n this.duzenleClick = this.duzenleClick.bind(this);\r\n this.aktifYapClick = this.aktifYapClick.bind(this);\r\n this.pasifYapClick = this.pasifYapClick.bind(this);\r\n this.silClick = this.silClick.bind(this);\r\n this.sil = this.sil.bind(this);\r\n this.kopyalaClick = this.kopyalaClick.bind(this);\r\n this.aktifYap = this.aktifYap.bind(this);\r\n this.pasifYap = this.pasifYap.bind(this);\r\n\r\n this.popupGizle = () => {\r\n this.setState({ popup: false });\r\n };\r\n\r\n this.mainDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'optikform/optikformlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinfilter = { YayinId: 0 };\r\n this.sinavTuruDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.yayinfilter,\r\n loadUrl: sinavApi + 'ortak/GetSinavTurleriByYayinId',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.sinavTuruFilter = { SinavTuruId: 0 };\r\n this.optikFormParametreDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.sinavTuruFilter,\r\n loadUrl: sinavApi + 'optikform/optikformparametreleri',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.optikFormAlanDataSource = new DataSource({\r\n store: {\r\n type: 'array',\r\n key: 'Id',\r\n data: this.optikFormAlanlar\r\n },\r\n paginate: false\r\n });\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n elementAttr: {\r\n id: \"btnInfo\"\r\n },\r\n type: 'default',\r\n icon: 'add',\r\n visible: Globals.service.Rol === \"Yayin\" || Globals.service.Rol === \"SubeKayitKabul\" || Globals.service.Rol === \"Sube\" ? true : false,\r\n onClick: this.yeniEkleClick,\r\n onContentReady: (e) => {\r\n e.element.addEventListener(\"mouseover\", () => {\r\n this.toolTipInfo.instance.option(\"visible\", true);\r\n });\r\n e.element.addEventListener(\"mouseleave\", () => {\r\n this.toolTipInfo.instance.option(\"visible\", false);\r\n });\r\n },\r\n\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Düzenle',\r\n icon: 'edit',\r\n onClick: this.duzenleClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'trash',\r\n onClick: this.silClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Kopyala', icon: 'unselectall',\r\n onClick: this.kopyalaClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n onClick: this.pasifYapClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n onClick: this.aktifYapClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onEditorOptikFormAlanPreparing = (e) => {\r\n if (e.dataField === \"Uzunluk\" && e.parentType === \"dataRow\" && e.row.data.AlanAdi === \"OgrenciNo\") {\r\n if (Globals.service.Rol === \"Bayi\" | Globals.service.Rol === \"Kurum\" | Globals.service.Rol === \"AltBayi\")\r\n e.editorOptions.disabled = false;\r\n }\r\n else if (e.dataField === \"Uzunluk\" && e.parentType === \"dataRow\" && e.row.data.AlanAdi === \"Adi\") {\r\n if (Globals.service.Rol === \"Bayi\" | Globals.service.Rol === \"Kurum\" | Globals.service.Rol === \"AltBayi\")\r\n e.editorOptions.disabled = false;\r\n }\r\n else if (e.dataField === \"Uzunluk\" && e.parentType === \"dataRow\" && e.row.data.AlanAdi === \"Soyadi\") {\r\n if (Globals.service.Rol === \"Bayi\" | Globals.service.Rol === \"Kurum\" | Globals.service.Rol === \"AltBayi\")\r\n e.editorOptions.disabled = false;\r\n }\r\n else if (Globals.service.Rol === \"Bayi\" | Globals.service.Rol === \"Kurum\" | Globals.service.Rol === \"AltBayi\") {\r\n if (e.dataField === \"Uzunluk\" && e.parentType === \"dataRow\") {\r\n e.editorOptions.disabled = true;\r\n }\r\n\r\n }\r\n\r\n // if ( ( | e.row.data.AlanAdi === 'Adi' | e.row.data.AlanAdi === 'Soyadi')) {\r\n // if (Globals.service.Rol === \"Bayi\" | Globals.service.Rol === \"Kurum\" | Globals.service.Rol === \"AltBayi\")\r\n // e.editorOptions.disabled = false;\r\n // else\r\n // e.editorOptions.disabled = true;\r\n\r\n // }\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n yeniEkleClick() {\r\n if (Globals.service.Rol === \"Bayi\" | Globals.service.Rol === \"AltBayi\" | Globals.service.Rol === \"Kurum\" | Globals.service.Rol === \"Yayin\") {\r\n this.setState({\r\n allowEditingOgrenciNoAdSoyad: true\r\n });\r\n }\r\n\r\n this.formData = {\r\n Id: 0,\r\n Yayin: { Id: 0 },\r\n SinavTuru: { Id: 0 },\r\n Kullanici: { Id: 0 },\r\n Adi: \"\",\r\n Bilgi: \"\",\r\n CiftOturum: false,\r\n CiftOturumOzel: false,\r\n HerYayinGorsun: false,\r\n AdSoyadBir: false,\r\n Deleted: false,\r\n RowVersion: 0,\r\n OptikFormAlanlar: [],\r\n HerDonemGozuksun: false,\r\n Kds: false\r\n };\r\n this.setState({\r\n popup: true\r\n\r\n });\r\n\r\n }\r\n\r\n async duzenleClick(e) {\r\n //const satir = this.mainDataGrid.instance.option('dataSource')[this.mainDataGrid.instance.option('focusedRowIndex')];\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n\r\n await service.get(sinavApi + \"optikForm/GetOptikForm/\" + satir.Id,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(async (resForm) => {\r\n if (resForm.data.Success) {\r\n this.formData = {\r\n Id: resForm.data.Data.Id,\r\n Yayin: { Id: resForm.data.Data.Yayin.Id },\r\n SinavTuru: { Id: resForm.data.Data.SinavTuru.Id },\r\n Deleted: resForm.data.Data.Deleted,\r\n Adi: resForm.data.Data.Adi,\r\n Yetkili: resForm.data.Data.Yetkili,\r\n Aciklama: resForm.data.Data.Aciklama,\r\n CiftOturum: resForm.data.Data.CiftOturum,\r\n CiftOturumOzel: resForm.data.Data.CiftOturumOzel,\r\n HerYayinGorsun: resForm.data.Data.HerYayinGorsun,\r\n AdSoyadBir: resForm.data.Data.AdSoyadBir,\r\n CreatedUserId: resForm.data.Data.CreatedUserId,\r\n Kullanici: { Id: resForm.data.Data.Kullanici.Id },\r\n RowVersion: resForm.data.Data.RowVersion,\r\n HerDonemGozuksun: resForm.data.Data.HerDonemGozuksun,\r\n Kds: resForm.data.Data.Kds\r\n };\r\n\r\n await this.yayinDataSource.load();\r\n this.selectBoxYayin.instance().option(\"value\", this.formData.Yayin.Id);\r\n this.yayinfilter.YayinId = this.formData.Yayin.Id;\r\n await this.sinavTuruDataSource.load();\r\n this.selectBoxSinavTuru.instance().option(\"value\", this.formData.SinavTuru.Id);\r\n this.sinavTuruFilter.SinavTuruId = this.formData.SinavTuru.Id;\r\n await this.optikFormParametreDataSource.load();\r\n this.gridOptikFormParametre.instance.refresh();\r\n await service.get(sinavApi + \"optikform/GetOptikFormAlanlari/\" + this.formData.Id,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (resAlan) => {\r\n if (resAlan.data.Success) {\r\n var existStore = this.optikFormAlanDataSource.store();\r\n existStore.clear();\r\n await this.gridOptikFormAlan.instance.refresh().then(() => {\r\n resAlan.data.Data.forEach((satir, index) => {\r\n this.optikFormAlan = {\r\n OptikForm: { Id: satir.OptikForm_Id },\r\n AlanAdi: satir.AlanAdi,\r\n Id: satir.Id,\r\n Baslangic: satir.Baslangic,\r\n Uzunluk: satir.Uzunluk,\r\n Sira: satir.Sira\r\n };\r\n var store = this.optikFormAlanDataSource.store();\r\n store.insert(this.optikFormAlan);\r\n });\r\n\r\n })\r\n await this.gridOptikFormAlan.instance.refresh();\r\n }\r\n else {\r\n notify(resAlan.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n else\r\n notify(resForm.data.ErrorMessage, \"error\", 5000);\r\n });\r\n\r\n await this.setState({\r\n popup: true\r\n });\r\n }\r\n }\r\n\r\n silClick(e) {\r\n //const satir = this.mainDataGrid.instance.option('dataSource')[this.mainDataGrid.instance.option('focusedRowIndex')];\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.sil(satir);\r\n }\r\n });\r\n }\r\n }\r\n\r\n kopyalaClick(e) {\r\n //const satir = this.mainDataGrid.instance.option('dataSource')[this.mainDataGrid.instance.option('focusedRowIndex')];\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydını kopyalamk istediğinize emin misiniz?</i>\", \"Kopyalama Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.kopyala(satir);\r\n }\r\n });\r\n }\r\n }\r\n\r\n aktifYapClick(e) {\r\n //const satir = this.mainDataGrid.instance.option('dataSource')[this.mainDataGrid.instance.option('focusedRowIndex')];\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız aktif hale getirilecektir emin misiniz?</i>\", \"Aktif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.aktifYap(satir);\r\n }\r\n });\r\n }\r\n }\r\n\r\n pasifYapClick(e) {\r\n //const satir = this.mainDataGrid.instance.option('dataSource')[this.mainDataGrid.instance.option('focusedRowIndex')];\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız pasif hale getirilecektir emin misiniz?</i>\", \"Pasif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.pasifYap(satir);\r\n }\r\n });\r\n }\r\n }\r\n\r\n async sil(satir) {\r\n this.setState({\r\n loadPanelVisible: true\r\n });\r\n service.post(sinavApi + \"optikform/optikformsil/\" + satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.gridMain.instance.refresh();\r\n }\r\n else {\r\n this.setState({\r\n loadPanelVisible: false\r\n });\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n\r\n async kopyala(satir) {\r\n\r\n service.post(sinavApi + \"optikform/kopyala/\" + satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(error => {\r\n\r\n notify(\"Teknik bir hata oluştu,lütfen daha sonra tekrar deneyiniz.\" + error, \"error\", 5000);\r\n });\r\n\r\n }\r\n\r\n async aktifYap(satir) {\r\n\r\n service.post(sinavApi + 'optikform/AktifYap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n async pasifYap(satir) {\r\n service.post(sinavApi + 'optikform/PasifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n onInitializedGridMain(e) {\r\n this.gridMain = e.component;\r\n }\r\n\r\n onInitializedGridOptikFormParametre(e) {\r\n this.gridOptikFormParametre = e.component;\r\n }\r\n\r\n onInitializedGridOptikFormAlan(e) {\r\n this.gridOptikFormAlan = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinavTuru(e) {\r\n this.selectBoxSinavTuru = e.component;\r\n }\r\n\r\n onInitializedSelectBoxYayin(e) {\r\n this.selectBoxYayin = e.component;\r\n }\r\n\r\n\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <Popover\r\n target=\"#btnInfo\"\r\n position=\"top\"\r\n width={300}\r\n showTitle={true}\r\n title={\"Optik Form Tanımı-Bilgilendirme\"}\r\n ref={(ref) => this.toolTipInfo = ref}\r\n >\r\n Optik form tanımında Kurum Kodu, Öğrenci No, Kitapçık Türü ve Dersler mutlaka olmalıdır.<br></br>\r\n </Popover>\r\n\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.mainDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onInitialized={this.onInitializedGridMain}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n ref={(ref) => this.gridMain = ref}\r\n onSelectionChanged={this.onSelectionChanged}\r\n >\r\n <Export enabled={true} fileName={'Yayinlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={true} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" />\r\n <Column dataField={'Yayin_Adi'} caption=\"Yayın\" />\r\n <Column dataField={'SinavTuru_Adi'} caption=\"Sınav Türü\" />\r\n <Column dataField={'Adi'} caption=\"Optik Form\" />\r\n <Column dataField={'KullaniciAdi'} caption=\"Ekleyen K.\" />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <Popup showTitle={true} shading={false} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n if (this.formData.CiftOturumOzel) {\r\n this.formData.CiftOturum = true;\r\n }\r\n this.formData.OptikFormAlanlar = this.optikFormAlanDataSource.items();\r\n //this.formData.CiftOturum = this.state.CiftOturum;\r\n service.post(sinavApi + 'optikform/optikformsave',\r\n this.formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh().then(() => {\r\n this.setState({ popup: false })\r\n });\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Optik Form Bilgileri\">\r\n <SimpleItem dataField={\"Yayin.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxYayin,\r\n ref: (ref) => { this.selectBoxYayin = ref },\r\n onValueChanged: (e) => {\r\n this.yayinfilter.YayinId = e.value;\r\n this.sinavTuruDataSource.load();\r\n }\r\n }}>\r\n <Label text=\"Yayın\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinavTuru.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.sinavTuruDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"SinavTuruAdi\",\r\n valueExpr: \"SinavTuru.Id\",\r\n onInitialized: this.onInitializedSelectBoxSinavTuru,\r\n ref: (ref) => { this.selectBoxSinavTuru = ref },\r\n onValueChanged: (e) => {\r\n this.sinavTuruFilter.SinavTuruId = e.value;\r\n this.optikFormParametreDataSource.load();\r\n this.gridOptikFormParametre.instance.refresh();\r\n var store = this.optikFormAlanDataSource.store();\r\n store.clear();\r\n this.gridOptikFormAlan.instance.refresh();\r\n }\r\n }}>\r\n <Label text=\"Form Türü\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Adi\"} isRequired={true}>\r\n <Label text=\"Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Aciklama\"}>\r\n <Label text=\"Açıklama\" />\r\n </SimpleItem>\r\n\r\n <SimpleItem dataField={\"CiftOturum\"}\r\n editorType=\"dxCheckBox\" editorOptions={{\r\n disabled: (Globals.service.Rol === \"Bayi\" | Globals.service.Rol === \"Kurum\" | Globals.service.Rol === \"AltBayi\") ? true : false,\r\n onInitialized: (e) => {\r\n this.chkBoxCiftOturum = e.component;\r\n },\r\n onValueChanged: (e) => {\r\n if (e.value) {\r\n this.chkBoxCiftOturumOzel.instance().option(\"value\", true);\r\n }\r\n },\r\n ref: (ref) => { this.chkBoxCiftOturum = ref }\r\n }}>\r\n <Label text=\"Çift Oturum\" />\r\n </SimpleItem>\r\n\r\n <SimpleItem dataField={\"AdSoyadBir\"} isRequired={true} editorType=\"dxCheckBox\">\r\n <Label text=\"Ad Soyad Birleşik\" />\r\n </SimpleItem>\r\n\r\n <SimpleItem dataField={\"CiftOturumOzel\"} editorType=\"dxCheckBox\" editorOptions={{\r\n disabled: (Globals.service.Rol === \"Bayi\" | Globals.service.Rol === \"Kurum\" | Globals.service.Rol === \"AltBayi\") ? true : false,\r\n onInitialized: (e) => {\r\n this.chkBoxCiftOturumOzel = e.component;\r\n },\r\n onValueChanged: (e) => {\r\n if (e.value) {\r\n this.chkBoxCiftOturum.instance().option(\"value\", true);\r\n }\r\n },\r\n ref: (ref) => { this.chkBoxCiftOturumOzel = ref }\r\n }}>\r\n <Label text=\"Çift Oturum Özel\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"HerYayinGorsun\"} isRequired={true} editorType=\"dxCheckBox\" editorOptions={{\r\n visible: Globals.service.Rol === \"Admin\" ? true : false\r\n }}>\r\n <Label text=\"Tüm Yayınlarda Gözüksün\" visible={Globals.service.Rol === \"Admin\" ? true : false} />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"HerDonemGozuksun\"} editorType=\"dxCheckBox\" >\r\n <Label text=\"Her Donem Görünsün\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Kds\"} editorType=\"dxCheckBox\" editorOptions={{\r\n onInitialized: (e) => {\r\n this.chkBoxKds = e.component;\r\n },\r\n onValueChanged: (e) => {\r\n if (e.value) {\r\n this.chkBoxKds.instance().option(\"value\", true);\r\n }\r\n },\r\n ref: (ref) => { this.chkBoxKds = ref }\r\n }}>\r\n <Label text=\"Kds Optik Form\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Optik Form Alanları\">\r\n <SimpleItem>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.optikFormParametreDataSource}\r\n columnHidingEnabled={true}\r\n keyExpr=\"Id\"\r\n onRowClick={(e) => {\r\n\r\n if (this.optikFormAlanDataSource.items().filter(x => x.AlanAdi === e.data.Kodu).length > 0) {\r\n notify(e.data.Kodu + \" alanı eklenmiş\", \"warning\", 2000);\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Yayin\" || Globals.service.Rol === \"SubeKayitKabul\" || Globals.service.Rol === \"Sube\") {\r\n this.optikFormAlan = {\r\n OptikForm: { Id: 0 },\r\n AlanAdi: e.data.Kodu,\r\n Id: e.data.Id,\r\n Baslangic: 1,\r\n Uzunluk: 1,\r\n Sira: e.data.Sira\r\n };\r\n var store = this.optikFormAlanDataSource.store();\r\n\r\n store.insert(this.optikFormAlan);\r\n this.gridOptikFormAlan.instance.refresh();\r\n }\r\n }\r\n }}\r\n paging={{\r\n pageSize: 50\r\n }}\r\n onInitialized={this.onInitializedGridOptikFormParametre}\r\n ref={(ref) => this.gridOptikFormParametre = ref}\r\n >\r\n <Editing mode={'inline'} />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n <Column dataField={'Kodu'} caption=\"Kodu\" />\r\n </DataGrid>\r\n </SimpleItem>\r\n <SimpleItem>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.optikFormAlanDataSource}\r\n columnHidingEnabled={true}\r\n keyExpr=\"Id\"\r\n ref={(ref) => this.gridOptikFormAlan = ref}\r\n onInitialized={this.onInitializedGridOptikFormAlan}\r\n onEditorPreparing={this.onEditorOptikFormAlanPreparing}\r\n >\r\n <Editing mode={'cell'} useIcons={true} allowUpdating={true} allowDeleting={Globals.service.Rol === \"Yayin\" || Globals.service.Rol === \"SubeKayitKabul\" || Globals.service.Rol === \"Sube\" ? true : false} />\r\n <LoadPanel enabled={true} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'AlanAdi'} caption=\"Kodu\" allowEditing={false} />\r\n <Column dataField={'Baslangic'} caption=\"Başlangıç\" dataType=\"number\" allowEditing={true} />\r\n <Column dataField={'Uzunluk'} caption=\"Uzunluk\" dataType=\"number\" editorOptions={{\r\n disabled: false\r\n }} />\r\n </DataGrid>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { sinavApi, errorMessageWithKonum, otomasyonApi, yayinGatewayUrl, authApi, karneApi } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Export, ColumnChooser, Column, Editing, Paging, Pager, FilterRow, Grouping, GroupPanel, RequiredRule\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert, custom } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { LoadPanel } from 'devextreme-react/load-panel';\r\nimport { connect } from 'react-redux';\r\nimport { setRemoteSystemInfo } from '../../redux/actions/mainSystemAction';\r\nimport { setKepsSystemShortCodes } from '../../redux/actions/kepsSystemAction';\r\nimport { setSanalSinavSystemInfo } from '../../redux/actions/sanalSinavSystemAction';\r\nconst position = { of: '#sinav' };\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n setRemoteSystem: (data) => dispatch(setRemoteSystemInfo(data)),\r\n setShortCodes: (data) => dispatch(setKepsSystemShortCodes(data)),\r\n setSanalSystemInfo: (data) => dispatch(setSanalSinavSystemInfo(data)),\r\n }\r\n}\r\nconst mapStateToProps = state => ({\r\n remoteSystem: state.remoteSystem.info,\r\n shortCodes: state.kepsSystem.shortCodes\r\n});\r\nclass SinavTanimi extends React.Component {\r\n\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popup: false,\r\n popupMerkeziForm: false,\r\n popupSinavAktar: false,\r\n remoteToken: \"\",\r\n btnDwonloadDisabled: false,\r\n btnSinavAktarDisabled: false,\r\n loadPanelVisible: false,\r\n popupDonemSecim: false,\r\n merkeziSinavGoster: false,\r\n btnKopyalaState: false\r\n };\r\n this.popupForm = null;\r\n this.formMerkez = null;\r\n this.formSinavAktar = null;\r\n this.formDonemSecimi = null;\r\n this.gridMain = null;\r\n this.selectBoxYayin = null;\r\n this.selectBoxKullanici = null;\r\n this.selectBoxRemoteYayin = null;\r\n this.selectBoxLocalYayin = null;\r\n this.selectBoxSinavTuru = null;\r\n this.selectBoxRemoteSinavTuru = null;\r\n this.selectBoxLocalSinavTuru = null;\r\n this.selectBoxRemoteMerkeziSinav = null;\r\n this.selectBoxOptikForm = null;\r\n this.selectBoxKaynakKurum = null;\r\n this.selectBoxHedefKurum = null;\r\n this.satir = null;\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onInitialized = this.onInitialized.bind(this);\r\n this.onInitializedSelectBoxYayin = this.onInitializedSelectBoxYayin.bind(this);\r\n this.onInitializedSelectBoxKullanici = this.onInitializedSelectBoxKullanici.bind(this);\r\n this.onInitializedSelectBoxRemoteYayin = this.onInitializedSelectBoxRemoteYayin.bind(this);\r\n this.onInitializedSelectBoxLocalYayin = this.onInitializedSelectBoxLocalYayin.bind(this);\r\n this.onInitializedSelectBoxSinavTuru = this.onInitializedSelectBoxSinavTuru.bind(this);\r\n this.onInitializedSelectBoxRemoteSinavTuru = this.onInitializedSelectBoxRemoteSinavTuru.bind(this);\r\n this.onInitializedSelectBoxLocalSinavTuru = this.onInitializedSelectBoxLocalSinavTuru.bind(this);\r\n this.onInitializedSelectBoxOptikForm = this.onInitializedSelectBoxOptikForm.bind(this);\r\n this.onInitializedSelectBoxRemoteKurum = this.onInitializedSelectBoxRemoteKurum.bind(this);\r\n this.onInitializedSelectBoxLocalKurum = this.onInitializedSelectBoxLocalKurum.bind(this);\r\n this.onInitializedFormMerkeziSinav = this.onInitializedFormMerkeziSinav.bind(this);\r\n this.onInitializedSelectBoxRemoteMerkeziSinav = this.onInitializedSelectBoxRemoteMerkeziSinav.bind(this);\r\n this.onInitializedFormSinavAktar = this.onInitializedFormSinavAktar.bind(this);\r\n this.onInitializedFormDonemSecimi = this.onInitializedFormDonemSecimi.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.gridMainSatirIptal = this.gridMainSatirIptal.bind(this);\r\n this.refreshData = this.refreshData.bind(this);\r\n this.yeniEkleClick = this.yeniEkleClick.bind(this);\r\n this.kayitDuzenle = this.kayitDuzenle.bind(this);\r\n this.aktifYapClick = this.aktifYapClick.bind(this);\r\n this.pasifYapClick = this.pasifYapClick.bind(this);\r\n this.silClick = this.silClick.bind(this);\r\n this.sil = this.sil.bind(this);\r\n this.aktifYap = this.aktifYap.bind(this);\r\n this.pasifYap = this.pasifYap.bind(this);\r\n this.showLoadPanel = this.showLoadPanel.bind(this);\r\n this.hideLoadPanel = this.hideLoadPanel.bind(this);\r\n this.mainDataSource = new DataSource(\r\n {\r\n paginate: true,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: (this.state.merkeziSinavGoster ? yayinGatewayUrl + \"sinav/\" : sinavApi) + 'merkezisinav/sinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.popupMerkeziFormGizle = async () => {\r\n this.setState({\r\n popupMerkeziForm: false\r\n });\r\n }\r\n\r\n this.popupSinavAktarGizle = async () => {\r\n this.setState({\r\n popupSinavAktar: false\r\n });\r\n }\r\n\r\n this.popupGizle = async () => {\r\n await this.gridMainSatirIptal();\r\n await this.setState(\r\n {\r\n popup: false,\r\n popupSinavIndirme: false\r\n }\r\n );\r\n };\r\n\r\n this.popupAc = () => {\r\n this.setState(\r\n {\r\n popup: true,\r\n loadingText: \"\",\r\n toolbarDisabled: true\r\n });\r\n };\r\n\r\n this.popupSinavAktarAc = () => {\r\n this.setState(\r\n {\r\n popupSinavAktar: true\r\n });\r\n };\r\n\r\n this.popupDonemEkraniAc = () => {\r\n this.setState({\r\n popupDonemSecim: true\r\n });\r\n }\r\n\r\n this.popupDonemEkraniGizle = () => {\r\n this.setState({\r\n popupDonemSecim: false\r\n });\r\n }\r\n\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinRemoteDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: yayinGatewayUrl + 'sinav/yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + this.props.remoteSystem.remoteToken\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinfilter = { YayinId: 0 };\r\n this.sinavTuruDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.yayinfilter,\r\n loadUrl: sinavApi + 'ortak/GetSinavTurleriByYayinId',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinRemotefilter = { YayinId: 0 };\r\n this.sinavTuruRemoteDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.yayinRemotefilter,\r\n loadUrl: yayinGatewayUrl + 'sinav/ortak/GetSinavTurleriByYayinId',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + this.props.remoteSystem.remoteToken\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.sinavTuruFilter = {\r\n YayinId: 0,\r\n SinavTuruId: 0\r\n };\r\n\r\n this.optikFormDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.sinavTuruFilter,\r\n loadUrl: sinavApi + 'optikform/sgeoptikformlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.sinavTuruRemoteFilter = {\r\n YayinId: 0,\r\n SinavTuruId: 0,\r\n donemId: 0\r\n };\r\n\r\n this.merkeziSinavRemoteDataSource = new DataSource(\r\n {\r\n filter: [\"Degerlendirilebilir\", \"=\", true],\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.sinavTuruRemoteFilter,\r\n loadUrl: yayinGatewayUrl + 'sinav/merkezisinav/sgemerkezisinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + this.props.remoteSystem.remoteToken\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.kurumDataSource = new DataSource(\r\n {\r\n paginate: true,\r\n pageSize: 10,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kurum/kurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.kurumRemoteDataSource = new DataSource(\r\n {\r\n paginate: true,\r\n pageSize: 10,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: yayinGatewayUrl + 'sinav/kurum/kurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + this.props.remoteSystem.remoteToken\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.formMerkeziSinavData = {\r\n KaynakKurumId: null,\r\n HedefKurumId: null,\r\n KaynakYayinId: null,\r\n HedefYayinId: null,\r\n KaynakSinavTuruId: null,\r\n HedefSinavTuruId: null,\r\n MerkeziSinavId: null\r\n }\r\n\r\n this.formSinavAktarData = {\r\n DonemId: null,\r\n KurumId: null,\r\n KullaniciId: null,\r\n SinavId: null\r\n };\r\n\r\n this.formDonemData = {\r\n DonemId: null\r\n }\r\n\r\n this.donemDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: authApi + 'auth/getdonemler',\r\n })\r\n });\r\n\r\n this.remoteDonemDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: yayinGatewayUrl + 'auth/auth/getdonemler',\r\n })\r\n });\r\n\r\n this.kullaniciFilter = {\r\n DonemId: 0\r\n };\r\n\r\n this.kullaniciDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.kullaniciFilter,\r\n loadUrl: sinavApi + 'kullanici/getdonemkullanicilari',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n console.log(this.props.remoteSystem.remoteToken);\r\n }\r\n\r\n\r\n //#region grid fonksiyonları\r\n\r\n onInitialized(e) {\r\n this.gridMain = e.component;\r\n }\r\n\r\n onInitializedFormMerkeziSinav(e) {\r\n this.formMerkez = e.component;\r\n }\r\n\r\n onInitializedSelectBoxYayin(e) {\r\n this.selectBoxYayin = e.component;\r\n }\r\n\r\n onInitializedSelectBoxRemoteYayin(e) {\r\n this.selectBoxRemoteYayin = e.component;\r\n }\r\n\r\n onInitializedSelectBoxLocalYayin(e) {\r\n this.selectBoxLocalYayin = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinavTuru(e) {\r\n this.selectBoxSinavTuru = e.component;\r\n }\r\n\r\n onInitializedSelectBoxRemoteSinavTuru(e) {\r\n this.selectBoxRemoteSinavTuru = e.component;\r\n }\r\n\r\n onInitializedSelectBoxLocalSinavTuru(e) {\r\n this.selectBoxLocalSinavTuru = e.component;\r\n }\r\n\r\n onInitializedSelectBoxRemoteMerkeziSinav(e) {\r\n this.selectBoxRemoteMerkeziSinav = e.component;\r\n }\r\n onInitializedSelectBoxOptikForm(e) {\r\n this.selectBoxOptikForm = e.component;\r\n }\r\n\r\n onInitializedFormSinavAktar(e) {\r\n this.formSinavAktar = e.component;\r\n }\r\n\r\n onInitializedFormDonemSecimi(e) {\r\n this.formDonemSecimi = e.component;\r\n }\r\n\r\n onInitializedSelectBoxKullanici(e) {\r\n this.selectBoxKullanici = e.component;\r\n }\r\n\r\n onInitializedSelectBoxLocalKurum(e) {\r\n this.selectBoxKaynakKurum = e.component;\r\n }\r\n\r\n onInitializedSelectBoxRemoteKurum(e) {\r\n this.selectBoxHedefKurum = e.component;\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Sınavı Döneme Aktar',\r\n width: 150,\r\n text: this.state.merkeziSinavGoster ? \"Merkezi Sınavlar\" : \"Local Sınavlar\",\r\n onClick: (e) => {\r\n\r\n if (!this.state.merkeziSinavGoster) {\r\n\r\n this.mainDataSource = new DataSource(\r\n {\r\n paginate: true,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: yayinGatewayUrl + 'sinav/merkezisinav/sinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + this.props.remoteSystem.remoteToken\r\n };\r\n }\r\n })\r\n });\r\n this.gridMain.instance.option(\"dataSource\", this.mainDataSource);\r\n this.gridMain.instance.refresh();\r\n\r\n\r\n }\r\n else {\r\n\r\n this.mainDataSource = new DataSource(\r\n {\r\n paginate: true,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'merkezisinav/sinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.gridMain.instance.option(\"dataSource\", this.mainDataSource);\r\n this.gridMain.instance.refresh();\r\n }\r\n this.setState({\r\n merkeziSinavGoster: !this.state.merkeziSinavGoster\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Sınavı Döneme Aktar',\r\n icon: 'exportselected',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.popupSinavAktarAc();\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Genel Soru Analizi',\r\n icon: 'orderedlist',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(karneApi + \"analiz/genelsoruanalizi/\" + satir.Id, {\r\n timeout: 1200000,\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Genel soru analiziniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile genel soru analizini bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, 'error', 5000);\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Sınav Katılım',\r\n icon: 'repeat',\r\n onClick: async () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(sinavApi + \"merkezisinav/getSinavKatilimRaporu/\" + satir.Id, {\r\n timeout: 1200000,\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n window.location.href = res.data.Data\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, 'error', 5000);\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Merkezi Sınav İndir',\r\n icon: 'download',\r\n onClick: async () => {\r\n this.popupDonemEkraniAc();\r\n\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Yeni',\r\n icon: 'add',\r\n onClick: this.yeniEkleClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Düzenle',\r\n icon: 'edit',\r\n onClick: this.kayitDuzenle\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'trash',\r\n onClick: this.silClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n onClick: this.pasifYapClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n onClick: this.aktifYapClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.refreshData();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n gridMainSatirIptal() {\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region servis fonksiyonları\r\n async getSatir(satirId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"merkezisinav/getsinav/\" + satirId,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.formData = {\r\n Id: res.data.Data.Id,\r\n Yayin: { Id: res.data.Data.Yayin.Id },\r\n SinavTuru: { Id: res.data.Data.SinavTuru.Id },\r\n OptikForm: { Id: res.data.Data.OptikForm.Id },\r\n Deleted: res.data.Data.Deleted,\r\n RowVersion: res.data.Data.RowVersion,\r\n Kodu: res.data.Data.Kodu,\r\n Adi: res.data.Data.Adi,\r\n Tarih: res.data.Data.Tarih,\r\n Renk: res.data.Data.Renk,\r\n DogruYanlis: res.data.Data.DogruYanlis,\r\n SecmeliDers: res.data.Data.SecmeliDers,\r\n Degerlendirilebilir: res.data.Data.Degerlendirilebilir,\r\n Raporlanabilir: res.data.Data.Raporlanabilir,\r\n OnlineSinav: res.data.Data.OnlineSinav,\r\n SanalOptik: res.data.Data.SanalOptik,\r\n Kds: res.data.Data.Kds\r\n };\r\n\r\n resolve(\"Sınav bilgisi getirildi...\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 500);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessageWithKonum(error, \"sınav\"));\r\n });\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region toolbar fonksiyonları\r\n\r\n async refreshData() {\r\n this.gridMain.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n });\r\n }\r\n\r\n async kayitDuzenle(e) {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.formData = null;\r\n\r\n try {\r\n await this.getSatir(satir.Id).then(() => { }).catch(error => {\r\n throw error;\r\n });\r\n\r\n this.yayinfilter.YayinId = this.formData.Yayin.Id;\r\n this.sinavTuruFilter.YayinId = this.formData.Yayin.Id;\r\n this.sinavTuruFilter.SinavTuruId = this.formData.SinavTuru.Id;\r\n\r\n await this.yayinDataSource.load().fail(error => {\r\n throw error;\r\n });\r\n await this.sinavTuruDataSource.load().fail(error => {\r\n throw error;\r\n });\r\n await this.optikFormDataSource.load().fail(error => {\r\n throw error;\r\n });\r\n this.selectBoxYayin.instance().option(\"value\", this.formData.Yayin.Id);\r\n this.selectBoxSinavTuru.instance().option(\"value\", this.formData.SinavTuru.Id);\r\n this.selectBoxOptikForm.instance().option(\"value\", this.formData.OptikForm.Id);\r\n this.setState({\r\n btnKopyalaState: true\r\n })\r\n await this.popupAc();\r\n } catch (error) {\r\n throw error;\r\n }\r\n\r\n }\r\n }\r\n\r\n yeniEkleClick() {\r\n service.get(sinavApi + \"yayin/getYayinlarByYetki\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(resYayin => {\r\n if (resYayin.data.Success) {\r\n this.yayinlar = resYayin.data.Data;\r\n\r\n this.formData = {\r\n Id: 0,\r\n Yayin: { Id: 0 },\r\n SinavTuru: { Id: 0 },\r\n OptikForm: { Id: 0 },\r\n Kodu: 0,\r\n Adi: \"\",\r\n Tarih: null,\r\n Renk: \"\",\r\n DogruYanlis: 0,\r\n SecmeliDers: false,\r\n Degerlendirilebilir: false,\r\n Raporlanabilir: false,\r\n OnlineSinav: false,\r\n SanalOptik: false,\r\n Kds: false\r\n };\r\n this.setState({\r\n btnKopyalaState: false,\r\n popup: true\r\n })\r\n }\r\n else {\r\n notify(resYayin.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n\r\n silClick(e) {\r\n //const satir = this.mainDataGrid.instance.option('dataSource')[this.mainDataGrid.instance.option('focusedRowIndex')];\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.sil(satir);\r\n }\r\n });\r\n }\r\n }\r\n\r\n aktifYapClick(e) {\r\n //const satir = this.mainDataGrid.instance.option('dataSource')[this.mainDataGrid.instance.option('focusedRowIndex')];\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız aktif hale getirilecektir emin misiniz?</i>\", \"Aktif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.aktifYap(satir);\r\n }\r\n });\r\n }\r\n }\r\n\r\n pasifYapClick(e) {\r\n //const satir = this.mainDataGrid.instance.option('dataSource')[this.mainDataGrid.instance.option('focusedRowIndex')];\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınız pasif hale getirilecektir emin misiniz?</i>\", \"Pasif etme onayı\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.pasifYap(satir);\r\n }\r\n });\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n async sil(satir) {\r\n\r\n service.post(sinavApi + \"merkezisinav/merkezisinavsil/\" + satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.refreshData();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n\r\n async aktifYap(satir) {\r\n\r\n service.post(sinavApi + 'merkezisinav/AktifYap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.refreshData();\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n async pasifYap(satir) {\r\n\r\n service.post(sinavApi + 'merkezisinav/PasifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.refreshData();\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n\r\n hideLoadPanel() {\r\n this.setState({\r\n loadPanelVisible: false\r\n });\r\n }\r\n\r\n showLoadPanel() {\r\n this.setState({\r\n loadPanelVisible: true\r\n });\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <LoadPanel\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n position={position}\r\n onHiding={this.hideLoadPanel}\r\n visible={this.state.loadPanelVisible}\r\n showIndicator={true}\r\n shading={true}\r\n showPane={true}\r\n closeOnOutsideClick={false}\r\n />\r\n <div className=\"container\" id=\"sinav\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Sınav İşlemleri>>Sınavlar\"}</h4>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.mainDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onInitialized={this.onInitialized}\r\n onSelectionChanged={this.onSelectionChanged}\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Export enabled={true} fileName={'Yayinlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={true} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" />\r\n <Column dataField={'Yayin_Adi'} caption=\"Yayın\" />\r\n <Column dataField={'SinavTuru_Adi'} caption=\"Sınav Türü\" />\r\n <Column dataField={'Kodu'} caption=\"Sınav Kodu\" />\r\n <Column dataField={'Adi'} caption=\"Sınav Adı\" />\r\n <Column dataField={'Katilim'} caption=\"Katılım\" />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={false} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kopyala', type: 'success', hint: 'Kopyala', icon: 'check',\r\n disabled: this.state.btnKopyalaState ? false : true\r\n , onClick: (e) => {\r\n service.post(sinavApi + 'merkezisinav/merkezisinavtanimkopyala',\r\n this.formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n\r\n this.refreshData();\r\n this.popupGizle();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n }).catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n service.post(sinavApi + 'merkezisinav/merkeziSinavSave',\r\n this.formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n\r\n this.refreshData();\r\n this.popupGizle();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n }).catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Sınav Bilgileri\">\r\n <SimpleItem dataField={\"Yayin.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n showClearButton: true,\r\n onInitialized: this.onInitializedSelectBoxYayin,\r\n ref: (ref) => { this.selectBoxYayin = ref },\r\n onValueChanged: async (e) => {\r\n\r\n this.yayinfilter.YayinId = e.value;\r\n this.sinavTuruFilter.YayinId = e.value;\r\n this.sinavTuruDataSource.load();\r\n this.selectBoxSinavTuru.instance().option(\"value\", null);\r\n this.selectBoxOptikForm.instance().option(\"value\", null);\r\n }\r\n }}>\r\n <Label text=\"Yayın\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinavTuru.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.sinavTuruDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"SinavTuruAdi\",\r\n valueExpr: \"SinavTuru.Id\",\r\n onInitialized: this.onInitializedSelectBoxSinavTuru,\r\n ref: (ref) => { this.selectBoxSinavTuru = ref },\r\n onValueChanged: async (e) => {\r\n this.sinavTuruFilter.SinavTuruId = e.value;\r\n this.optikFormDataSource.load();\r\n this.selectBoxOptikForm.instance().option(\"value\", null);\r\n }\r\n }}>\r\n <Label text=\"Sınav Türü\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"OptikForm.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.optikFormDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxOptikForm,\r\n ref: (ref) => { this.selectBoxOptikForm = ref }\r\n }}>\r\n <Label text=\"Optik Form\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Kodu\"} isRequired={true}>\r\n <Label text=\"Kodu\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Adi\"} isRequired={true}>\r\n <Label text=\"Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"DogruYanlis\"} isRequired={true}>\r\n <Label text=\"Doğru Yanlış\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tarih\"} isRequired={true} editorType=\"dxDateBox\">\r\n <Label text=\"Tarih\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Renk\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={\r\n {\r\n dataSource: [\r\n { Name: \"Siyah \", Value: \"#000000\" },\r\n { Name: \"Mavi \", Value: \"#0000ff\" },\r\n { Name: \"Kahverengi \", Value: \"#a52a2a\" },\r\n { Name: \"Çikolata \", Value: \"#d2691e\" },\r\n { Name: \"Kızıl \", Value: \"#dc143c\" },\r\n { Name: \"Koyu Altın \", Value: \"#b8860b\" },\r\n { Name: \"Koyu Yeşil \", Value: \"#006400\" },\r\n { Name: \"Koyu Eflatun\", Value: \"#8b008b\" },\r\n { Name: \"Koyu Kırmızı\", Value: \"#8b0000\" },\r\n { Name: \"Derin Pembe \", Value: \"#ff1493\" },\r\n { Name: \"Çivit \", Value: \"#4b0082\" },\r\n { Name: \"Kırmızı \", Value: \"#ff0000\" },\r\n ],\r\n displayExpr: \"Name\",\r\n valueExpr: \"Value\",\r\n // fieldRender: RenkSecimFieldItem,\r\n // itemRender: RenkSecimFieldItem,\r\n itemTemplate: (itemData, itemIndex, itemElement) => {\r\n //return \"<font style='color:\" + itemData.Value + \";'><b>\" + itemData.Name + \"</b></font>\";\r\n return \"<div style='width: 16px; height: 16px; border: 1px solid #000;background-color:\" + itemData.Value + \"'></div>\";\r\n }\r\n }\r\n }>\r\n <Label text=\"Renk\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SecmeliDers\"} isRequired={true} editorType=\"dxCheckBox\">\r\n <Label text=\"Seçmeli Ders\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Degerlendirilebilir\"} isRequired={true} editorType=\"dxCheckBox\">\r\n <Label text=\"Değerlendirilebilir\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Raporlanabilir\"} isRequired={true} editorType=\"dxCheckBox\">\r\n <Label text=\"Raporlanabilir\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"OnlineSinav\"} isRequired={true} editorType=\"dxCheckBox\">\r\n <Label text=\"Online Sınav\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SanalOptik\"} isRequired={true} editorType=\"dxCheckBox\">\r\n <Label text=\"Sanal Optik\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SanalOptik\"} isRequired={true} editorType=\"dxCheckBox\">\r\n <Label text=\"Sanal Optik\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Kds\"} isRequired={true} editorType=\"dxCheckBox\">\r\n <Label text=\"Kds\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} title={\"Merkezi Sınav İndirme Bilgileri\"}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupMerkeziFormGizle} visible={this.state.popupMerkeziForm}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet',\r\n type: 'success',\r\n hint: 'Kaydet',\r\n icon: 'check',\r\n disabled: this.state.btnDwonloadDisabled,\r\n onClick: (e) => {\r\n let localSinavTuru = this.selectBoxLocalSinavTuru.instance().option(\"text\");\r\n let remoteSinavTuru = this.selectBoxRemoteSinavTuru.instance().option(\"text\");\r\n if (localSinavTuru !== remoteSinavTuru) {\r\n\r\n notify(\"Kaynak sınav türü ile hedef sınav türü farklı seçilmiş.\", 'error', 5000);\r\n return;\r\n }\r\n var data = {\r\n Token: this.props.remoteSystem.remoteToken,\r\n RemoteMerkeziSinavId: this.formMerkeziSinavData.MerkeziSinavId,\r\n KaynakYayinId: this.formMerkeziSinavData.KaynakYayinId,\r\n KaynakSinavTuruId: this.formMerkeziSinavData.KaynakSinavTuruId,\r\n HedefYayinId: this.formMerkeziSinavData.HedefYayinId,\r\n HedefSinavTuruId: this.formMerkeziSinavData.HedefSinavTuruId,\r\n KaynakKurumId: this.formMerkeziSinavData.KaynakKurumId,\r\n HedefKurumId: this.formMerkeziSinavData.HedefKurumId\r\n };\r\n this.setState({\r\n btnDwonloadDisabled: true\r\n });\r\n service.post(otomasyonApi + 'entegrasyon/merkezisinavindir',\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(async (res) => {\r\n if (res.data.Success) {\r\n\r\n await this.gridMain.instance.refresh();\r\n await this.setState({\r\n btnDwonloadDisabled: false\r\n });\r\n await this.popupMerkeziFormGizle();\r\n }\r\n else {\r\n this.setState({\r\n btnDwonloadDisabled: false\r\n });\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n }).catch(err => {\r\n this.setState({\r\n btnDwonloadDisabled: false\r\n });\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupMerkeziFormGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formMerkeziSinavData} onInitialized={this.onInitializedFormMerkeziSinav} ref={(ref) => this.formMerkez = ref}\r\n showValidationSummary={true}\r\n >\r\n <GroupItem cssClass=\"first-group\" colCount={2}>\r\n <SimpleItem dataField=\"KaynakKurumId\" editorType=\"dxSelectBox\" editorOptions={{\r\n dataSource: this.kurumDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"KurumAdi\",\r\n onInitialized: this.onInitializedSelectBoxLocalKurum,\r\n ref: (ref) => { this.selectBoxKaynakKurum = ref },\r\n onValueChanged: async (e) => {\r\n if (e.value === \"\" | e.value === null | e.value === undefined) {\r\n\r\n }\r\n else {\r\n this.formMerkeziSinavData.KaynakKurumId = e.value;\r\n\r\n }\r\n }\r\n }}>\r\n <Label text=\"Kaynak Kurum\" />\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField=\"HedefKurumId\" editorType=\"dxSelectBox\" editorOptions={{\r\n dataSource: this.kurumRemoteDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"KurumAdi\",\r\n searchEnabled: true,\r\n searchMode: \"contains\",\r\n searchExpr: [\"KurumAdi\"],\r\n showClearButton: true,\r\n onInitialized: this.onInitializedSelectBoxRemoteKurum,\r\n ref: (ref) => { this.selectBoxHedefKurum = ref },\r\n onValueChanged: async (e) => {\r\n if (e.value === \"\" | e.value === null | e.value === undefined) {\r\n\r\n }\r\n else {\r\n this.formMerkeziSinavData.HedefKurumId = e.value;\r\n\r\n }\r\n }\r\n }}>\r\n <Label text=\"Hedef Kurum\" />\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KaynakYayinId\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinRemoteDataSource,\r\n keyExpr: \"Id\",\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n showClearButton: true,\r\n onInitialized: this.onInitializedSelectBoxRemoteYayin,\r\n ref: (ref) => { this.selectBoxRemoteYayin = ref },\r\n onValueChanged: async (e) => {\r\n if (e.value === \"\" | e.value === null | e.value === undefined) {\r\n\r\n }\r\n else {\r\n\r\n this.yayinRemotefilter.YayinId = e.value;\r\n this.sinavTuruRemoteFilter.YayinId = e.value;\r\n await this.sinavTuruRemoteDataSource.load();\r\n\r\n }\r\n // this.selectBoxYayin2.instance().option(\"value\", null);\r\n this.selectBoxRemoteSinavTuru.instance().option(\"value\", null);\r\n this.selectBoxRemoteMerkeziSinav.instance().option(\"value\", null);\r\n // this.selectBoxMerkeziSinav2.instance().option(\"value\", null);\r\n // this.selectBoxOptikform.instance().option(\"value\", null);\r\n }\r\n }}>\r\n <Label text=\"Kaynak Yayın\" />\r\n <RequiredRule message=\"Kaynak yayın alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"HedefYayinId\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinDataSource,\r\n keyExpr: \"Id\",\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n showClearButton: true,\r\n onInitialized: this.onInitializedSelectBoxLocalYayin,\r\n ref: (ref) => { this.selectBoxLocalYayin = ref },\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" | e.value === null | e.value === undefined) {\r\n\r\n }\r\n else {\r\n\r\n this.yayinfilter.YayinId = e.value;\r\n this.sinavTuruFilter.YayinId = e.value;\r\n this.sinavTuruDataSource.load();\r\n\r\n }\r\n // this.selectBoxYayin2.instance().option(\"value\", null);\r\n this.selectBoxLocalSinavTuru.instance().option(\"value\", null);\r\n // this.selectBoxMerkeziSinav2.instance().option(\"value\", null);\r\n // this.selectBoxOptikform.instance().option(\"value\", null);\r\n }\r\n }}>\r\n <Label text=\"Hedef Yayın\" />\r\n <RequiredRule message=\"Hedef yayın alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KaynakSinavTuruId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.sinavTuruRemoteDataSource,\r\n displayExpr: \"SinavTuruAdi\",\r\n valueExpr: \"SinavTuru.Id\",\r\n onInitialized: this.onInitializedSelectBoxRemoteSinavTuru,\r\n ref: (ref) => { this.selectBoxRemoteSinavTuru = ref },\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" | e.value === null) {\r\n return;\r\n }\r\n else {\r\n this.sinavTuruRemoteFilter.SinavTuruId = e.value;\r\n this.sinavTuruRemoteFilter.donemId = this.formDonemData.DonemId;\r\n // if (e.value === 11) {\r\n // this.selectBoxMerkeziSinav2.instance().option(\"disabled\", false);\r\n // this.selectBoxYayin2.instance().option(\"disabled\", false);\r\n // }\r\n // else {\r\n // this.selectBoxMerkeziSinav2.instance().option(\"disabled\", true);\r\n // this.selectBoxYayin2.instance().option(\"disabled\", true);\r\n // }\r\n if (this.formMerkeziSinavData.Yayin !== null && this.formMerkeziSinavData.SinavTuru !== null) {\r\n\r\n this.merkeziSinavRemoteDataSource.load();\r\n this.selectBoxRemoteMerkeziSinav.instance().option(\"value\", null);\r\n }\r\n }\r\n }\r\n }}>\r\n <Label text=\"Kaynak sınav türü\" />\r\n <RequiredRule message=\"Kaynak sınav türü alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"HedefSinavTuruId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.sinavTuruDataSource,\r\n displayExpr: \"SinavTuruAdi\",\r\n valueExpr: \"SinavTuru.Id\",\r\n onInitialized: this.onInitializedSelectBoxLocalSinavTuru,\r\n ref: (ref) => { this.selectBoxLocalSinavTuru = ref },\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" | e.value === null) {\r\n return;\r\n }\r\n else {\r\n this.sinavTuruRemoteFilter.SinavTuruId = e.value;\r\n // if (e.value === 11) {\r\n // this.selectBoxMerkeziSinav2.instance().option(\"disabled\", false);\r\n // this.selectBoxYayin2.instance().option(\"disabled\", false);\r\n // }\r\n // else {\r\n // this.selectBoxMerkeziSinav2.instance().option(\"disabled\", true);\r\n // this.selectBoxYayin2.instance().option(\"disabled\", true);\r\n // }\r\n if (this.formMerkeziSinavData.Yayin !== null && this.formMerkeziSinavData.SinavTuru !== null) {\r\n\r\n this.merkeziSinavRemoteDataSource.load();\r\n this.selectBoxRemoteMerkeziSinav.instance().option(\"value\", null);\r\n }\r\n }\r\n }\r\n }}>\r\n <Label text=\"Hedef sınav türü\" />\r\n <RequiredRule message=\"Hedef sınav türü alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MerkeziSinavId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.merkeziSinavRemoteDataSource,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxRemoteMerkeziSinav,\r\n ref: (ref) => { this.selectBoxRemoteMerkeziSinav = ref }\r\n }}>\r\n <Label text=\"Sınav\" />\r\n <RequiredRule message=\"Merkez sınav alanı gerekli\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} title={\"Sınav Aktarma İşlemleri\"}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupSinavAktarGizle} visible={this.state.popupSinavAktar}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet',\r\n type: 'success',\r\n hint: 'Kaydet',\r\n icon: 'check',\r\n disabled: this.state.btnSinavAktarDisabled,\r\n onClick: (e) => {\r\n var data = {\r\n DonemId: this.formSinavAktarData.DonemId,\r\n KullaniciId: this.formSinavAktarData.KullaniciId,\r\n SinavId: this.satir.Id\r\n };\r\n this.setState({\r\n btnSinavAktarDisabled: true\r\n });\r\n service.post(sinavApi + 'merkezisinav/donemsinavaktar',\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(async (res) => {\r\n if (res.data.Success) {\r\n await this.setState({\r\n btnSinavAktarDisabled: false\r\n });\r\n await this.popupSinavAktarGizle();\r\n }\r\n else {\r\n this.setState({\r\n btnSinavAktarDisabled: false\r\n });\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n }).catch(err => {\r\n this.setState({\r\n btnSinavAktarDisabled: false\r\n });\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupSinavAktarGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formSinavAktarData} onInitialized={this.onInitializedFormSinavAktar} ref={(ref) => this.formSinavAktar = ref}\r\n showValidationSummary={true}\r\n >\r\n <GroupItem cssClass=\"first-group\" colCount={2}>\r\n <SimpleItem dataField=\"DonemId\" editorType=\"dxSelectBox\" editorOptions={{\r\n dataSource: this.donemDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n onValueChanged: (e) => {\r\n this.kullaniciFilter.DonemId = e.value;\r\n }\r\n }}>\r\n <Label text=\"Dönem Seçiniz\" />\r\n <RequiredRule message=\"Dönem alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField=\"KurumId\" editorType=\"dxSelectBox\" editorOptions={{\r\n dataSource: this.kurumDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"KurumAdi\",\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" | e.value === null | e.value === undefined) {\r\n\r\n }\r\n else {\r\n\r\n this.kullaniciFilter.KurumId = e.value;\r\n this.kullaniciDataSource.load();\r\n\r\n }\r\n this.selectBoxKullanici.instance().option(\"value\", null);\r\n }\r\n }}>\r\n <Label text=\"Kurum Seçiniz\" />\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KullaniciId\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.kullaniciDataSource,\r\n keyExpr: \"Id\",\r\n searchEnabled: true,\r\n displayExpr: \"AdSoyad\",\r\n valueExpr: \"Id\",\r\n showClearButton: true,\r\n onInitialized: this.onInitializedSelectBoxKullanici,\r\n ref: (ref) => { this.selectBoxKullanici = ref }\r\n }}>\r\n <Label text=\"Kullanıcı\" />\r\n <RequiredRule message=\"Kullanıcı alanı gerekli\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} title={\"Aktarılacak olan sınavın dönemini seçiniz\"}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n visible={this.state.popupDonemSecim}\r\n width=\"550\" height={\"200\"}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Merkezi Sınav İndir',\r\n type: 'success',\r\n hint: 'Kaydet',\r\n icon: 'check',\r\n disabled: this.state.btnSinavAktarDisabled,\r\n onClick: (e) => {\r\n let merkeziSinavIndirmeDialog = custom({\r\n title: \"Merkezi sınavınızı indirmeden önce lütfen uyarıyı okuyunuz\",\r\n messageHtml: \"<font style='color:red'>Ayarlar-Api Bilgileri ekranından Yayınevi Modülü kullanıcı bilgilerinizi eklemelisiniz.</font><br/><font style='color:red'>Sınav indirebilmek için ilk önce Yayınevi Modülünden sınavlarınızı değerlendirmeniz gerekmektedir.</font>\",\r\n buttons: [\r\n {\r\n text: \"Devam Et\",\r\n onClick: (e) => {\r\n this.popupDonemEkraniGizle();\r\n service.get(otomasyonApi + \"entegrasyon/authenticate/\" + this.formDonemData.DonemId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async res => {\r\n if (res.data.Success) {\r\n await this.setState({\r\n remoteToken: res.data.Data\r\n });\r\n await this.yayinRemoteDataSource.load();\r\n await this.setState({\r\n popupMerkeziForm: true\r\n });\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n },\r\n {\r\n text: \"Kapat\",\r\n onClick: (e) => {\r\n merkeziSinavIndirmeDialog.hide();\r\n }\r\n }\r\n ]\r\n });\r\n\r\n merkeziSinavIndirmeDialog.show();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupDonemEkraniGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formDonemData} onInitialized={this.onInitializedFormDonemSecimi} ref={(ref) => this.formDonemSecimi = ref}\r\n showValidationSummary={true}\r\n >\r\n <GroupItem cssClass=\"first-group\" colCount={1}>\r\n <SimpleItem dataField=\"DonemId\" editorType=\"dxSelectBox\" editorOptions={{\r\n dataSource: this.remoteDonemDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\"\r\n }}>\r\n <Label text=\"Dönem Seçiniz\" />\r\n <RequiredRule message=\"Dönem alanı zorunludur\" />\r\n </SimpleItem>\r\n\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n );\r\n\r\n\r\n }\r\n}\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SinavTanimi);","import React from 'react';\r\nimport { sinavApi, sinavRealApi } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n , KeyboardNavigation\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { LoadPanel as MyLoad } from 'devextreme-react/load-panel';\r\nconst position = { of: '#cevapanahtariformpanel' };\r\n\r\nexport default class CevapAnahtariTanimi extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n cevapAnahtarlari: [],\r\n yayinlar: [],\r\n sinavTurleri: [],\r\n merkeziSinavlar: [],\r\n secilenYayin: null,\r\n secilenOptikForm: null,\r\n secilenSinavturu: null,\r\n secilenMerkeziSinav: null,\r\n secilenKitapcikTuru: null,\r\n secilenKitapcikEslestirme: false,\r\n secilenAktarilacakKitapcikTuru: null,\r\n loadPanelVisible: false,\r\n GirilenCevapAnahtari: [],\r\n popup: false,\r\n selectedItemKeys: [],\r\n kitapcikBirlestirDisabled: false,\r\n loadingText: \"\",\r\n soruEslestir: false,\r\n soruEslestirDisabled: false\r\n };\r\n\r\n this.popupForm = null;\r\n this.mainDataGrid = null;\r\n this.satir = null;\r\n this.cevapAnahtariDataGrid = null;\r\n this.selectBoxYayin = null;\r\n this.selectBoxMerkeziSinav = null;\r\n this.selectBoxSinavTuru = null;\r\n this.yeniEkleClick = this.yeniEkleClick.bind(this);\r\n this.duzenleClick = this.duzenleClick.bind(this);\r\n this.KitapcikSil = this.KitapcikSil.bind(this);\r\n this.onInitializedSelectBoxYayin = this.onInitializedSelectBoxYayin.bind(this);\r\n this.onInitializedSelectBoxMerkeziSinav = this.onInitializedSelectBoxMerkeziSinav.bind(this);\r\n this.onInitializedSelectBoxSinavTuru = this.onInitializedSelectBoxSinavTuru.bind(this);\r\n this.headers = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n this.popupGizle = () => {\r\n this.setState(\r\n {\r\n popup: false,\r\n soruEslestir: false,\r\n soruEslestirDisabled: false\r\n });\r\n };\r\n\r\n this.kitapcikTurleri = [\r\n { Deger: \"A\" },\r\n { Deger: \"B\" },\r\n { Deger: \"C\" },\r\n { Deger: \"D\" },\r\n { Deger: \"AA\" },\r\n { Deger: \"AB\" },\r\n { Deger: \"BA\" },\r\n { Deger: \"BB\" },\r\n\r\n ];\r\n\r\n this.aktarilacakKitapcikTurleri = [\r\n { Display: \"A\" },\r\n { Display: \"B\" },\r\n { Display: \"C\" },\r\n { Display: \"D\" },\r\n { Display: \"A,B\" },\r\n { Display: \"C,D\" },\r\n { Display: \"AA\" },\r\n { Display: \"AB\" },\r\n { Display: \"BA\" },\r\n { Display: \"BB\" },\r\n ];\r\n\r\n this.formData = {\r\n Yayin: { Id: null },\r\n Sinav: { Id: null },\r\n SinavTuru: { Id: null },\r\n KitapcikTuru: null,\r\n KitapcikEslestirme: false,\r\n AktarilacakKitapcikTuru: null\r\n };\r\n\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.mainDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n paginate: true,\r\n pageSize: 10,\r\n store: createStore({\r\n key: \"Sinav_Id\",\r\n loadUrl: sinavApi + 'cevapanahtari/cevapanahtarlari',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinfilter = { YayinId: 0 };\r\n this.sinavTuruDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.yayinfilter,\r\n loadUrl: sinavApi + 'ortak/GetSinavTurleriByYayinId',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.sinavTuruFilter = {\r\n YayinId: 0,\r\n SinavTuruId: 0\r\n };\r\n\r\n this.merkeziSinavDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.sinavTuruFilter,\r\n loadUrl: sinavApi + 'merkezisinav/sgemerkezisinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n\r\n onUploaded(e) {\r\n var res = JSON.parse(e.request.response);\r\n if (!res.Success) {\r\n notify(\"Cevap anahtarınız yüklenemedi,\" + res.ErrorMessage, \"error\", 5000);\r\n e.component.reset();\r\n }\r\n else {\r\n notify(\"Cevap anahtarınız yüklendi ve kaydetme işlemi başarı ile gerçekleştirildi.\", \"success\", 5000);\r\n alert(\"Cevap anahtarınız yüklendi ve kaydetme işlemi başarı ile gerçekleştirildi.<font style='color:red'><br/><b>Tekrar kaydet butonunu kullanmanıza gerek yoktur.</b></font>\", \"Bilgi\");\r\n this.refreshData();\r\n e.component.reset();\r\n }\r\n }\r\n\r\n refreshData() {\r\n this.mainDataGrid.instance.refresh();\r\n }\r\n\r\n yeniEkleClick() {\r\n service.get(sinavApi + \"yayin/getYayinlarByYetki\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(resYayin => {\r\n if (resYayin.data.Success) {\r\n this.setState({\r\n yayinlar: resYayin.data.Data\r\n });\r\n this.formData = {\r\n Id: 0,\r\n Yayin_Id: 0,\r\n SinavTuru_Id: 0,\r\n OptikForm_Id: 0\r\n };\r\n this.setState({\r\n popup: true,\r\n secilenSinavTuru: null,\r\n secilenYayin: null,\r\n secilenOptikForm: null,\r\n secilenMerkeziSinav: null,\r\n secilenKitapcikTuru: null,\r\n GirilenCevapAnahtari: []\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n async duzenleClick(e) {\r\n //const satir = this.mainDataGrid.instance.option('dataSource')[this.mainDataGrid.instance.option('focusedRowIndex')];\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.yayinfilter.YayinId = satir.Yayin_Id;\r\n this.sinavTuruFilter.Yayin_Id = satir.Yayin_Id;\r\n this.sinavTuruFilter.SinavTuruId = satir.SinavTuru_Id;\r\n this.yayinDataSource.load();\r\n await this.yayinDataSource.load();\r\n await this.sinavTuruDataSource.load();\r\n await this.merkeziSinavDataSource.load();\r\n await this.selectBoxYayin.instance().option(\"value\", satir.Yayin_Id);\r\n await this.selectBoxSinavTuru.instance().option(\"value\", satir.SinavTuru_Id);\r\n await this.selectBoxMerkeziSinav.instance().option(\"value\", satir.Sinav_Id);\r\n\r\n await this.setState({\r\n secilenMerkeziSinav: satir.Sinav_Id,\r\n secilenYayin: satir.Yayin_Id,\r\n secilenOptikForm: satir.OptikForm_Id,\r\n secilenSinavTuru: satir.SinavTuru_Id,\r\n secilenKitapcikTuru: null,\r\n GirilenCevapAnahtari: [],\r\n kitapcikBirlestirDisabled: satir.SinavTuru_Id === 7 || satir.SinavTuru_Id === 6 ? false : true,\r\n popup: true,\r\n soruEslestir: this.selectBoxSinavTuru.instance().option(\"text\") === 'TYT' | this.selectBoxSinavTuru.instance().option(\"text\") === 'AYT' ? true : false\r\n });\r\n }\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Yeni',\r\n icon: 'add',\r\n onClick: this.yeniEkleClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Düzenle',\r\n icon: 'edit',\r\n onClick: this.duzenleClick\r\n }\r\n },\r\n {\r\n location: 'after',\r\n widget: 'dxDropDownButton',\r\n options: {\r\n displayExpr: 'name',\r\n keyExpr: 'id',\r\n selectedItemKey: 1,\r\n stylingMode: 'text',\r\n useSelectMode: false,\r\n splitButton: true,\r\n text: \"Bütün Kitapçıkları Sil\",\r\n icon: \"remove\",\r\n items: [\r\n { 'name': 'A Kitapçığını Sil', 'id': 1, \"icon\": \"remove\" },\r\n { 'name': 'B Kitapçığını Sil', 'id': 2, \"icon\": \"remove\" },\r\n { 'name': 'C Kitapçığını Sil', 'id': 3, \"icon\": \"remove\" },\r\n { 'name': 'D Kitapçığını Sil', 'id': 4, \"icon\": \"remove\" },\r\n { 'name': 'AA Kitapçığını Sil', 'id': 5, \"icon\": \"remove\" },\r\n { 'name': 'AB Kitapçığını Sil', 'id': 6, \"icon\": \"remove\" },\r\n { 'name': 'BA Kitapçığını Sil', 'id': 7, \"icon\": \"remove\" },\r\n { 'name': 'BB Kitapçığını Sil', 'id': 8, \"icon\": \"remove\" },\r\n ],\r\n onButtonClick: (e) => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?</i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(sinavApi + \"cevapanahtari/cevapanahtarisilbymerkezisinavid/\" + satir.Sinav_Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.refreshData();\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n })\r\n }\r\n });\r\n }\r\n },\r\n onItemClick: (e) => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n switch (e.itemData.id) {\r\n case 1:\r\n this.KitapcikSil(satir.Sinav_Id, \"A\");\r\n break;\r\n case 2:\r\n this.KitapcikSil(satir.Sinav_Id, \"B\");\r\n break;\r\n case 3:\r\n this.KitapcikSil(satir.Sinav_Id, \"C\");\r\n break;\r\n case 4:\r\n this.KitapcikSil(satir.Sinav_Id, \"D\");\r\n break;\r\n case 5:\r\n this.KitapcikSil(satir.Sinav_Id, \"AA\");\r\n break;\r\n case 6:\r\n this.KitapcikSil(satir.Sinav_Id, \"AB\");\r\n break;\r\n case 7:\r\n this.KitapcikSil(satir.Sinav_Id, \"BA\");\r\n break;\r\n case 8:\r\n this.KitapcikSil(satir.Sinav_Id, \"BB\");\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.refreshData();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n KitapcikSil(MerkeziSinavId, KitapcikTuru) {\r\n\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?</i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(sinavApi + \"cevapanahtari/cevapanahtarisilbykitapcikturu/\" + MerkeziSinavId + \"/\" + KitapcikTuru,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.refreshData();\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n }\r\n });\r\n }\r\n\r\n onInitializedSelectBoxSinavTuru(e) {\r\n this.selectBoxSinavTuru = e.component;\r\n }\r\n\r\n onInitializedSelectBoxYayin(e) {\r\n this.selectBoxYayin = e.component;\r\n }\r\n\r\n onInitializedSelectBoxMerkeziSinav(e) {\r\n this.selectBoxMerkeziSinav = e.component;\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div id=\"cevapanahtariformpanel\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n {this.state.loadingText}\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.mainDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Sinav_Id\"\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n ref={(ref) => this.mainDataGrid = ref}\r\n >\r\n <Export enabled={true} fileName={'Yayinlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Sinav_Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'OptikForm_Id'} caption=\"Optik Form Id\" visible={false} />\r\n <Column dataField={'Yayin_Id'} caption=\"Yayın Id\" visible={false} />\r\n <Column dataField={'Yayin_Adi'} caption=\"Yayın\" />\r\n <Column dataField={'SinavTuruAdi'} caption=\"Sınav Türü\" />\r\n <Column dataField={'OptikForm_Adi'} caption=\"Optik Form\" />\r\n <Column dataField={'Sinav_Adi'} caption=\"Sınav\" />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={false} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Soru Eşleştir',\r\n type: 'success',\r\n hint: 'Soru Eşleştir',\r\n icon: 'refresh',\r\n disabled: this.state.soruEslestirDisabled,\r\n visible: this.state.soruEslestir,\r\n onClick: () => {\r\n this.setState({\r\n soruEslestirDisabled: true\r\n });\r\n const data = {\r\n SinavTuru: this.selectBoxSinavTuru.instance().option(\"text\"),\r\n MerkeziSinavId: this.state.secilenMerkeziSinav\r\n };\r\n service.post(sinavApi + 'cevapanahtari/sorueslestir',\r\n data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n this.setState({\r\n soruEslestirDisabled: false\r\n });\r\n if (res.data.Success) {\r\n this.setState({\r\n popup: false\r\n })\r\n this.refreshData();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n })\r\n .catch(error => {\r\n this.setState({\r\n soruEslestirDisabled: true\r\n });\r\n notify(error, 'error', 5000);\r\n });\r\n\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Çift Oturum Cevap Anahtarı Oluştur',\r\n type: 'success',\r\n hint: 'Çift Oturum Cevap Anahtarı Oluştur',\r\n icon: 'check',\r\n disabled: this.state.kitapcikBirlestirDisabled\r\n , onClick: (e) => {\r\n if (this.state.secilenMerkeziSinav !== null) {\r\n let result = confirm(\"<i>Bu işlem LGS sınavlarında kitapçık türlerini çoğaltacaktır, onaylıyor musunuz?</i>\", \"Onay İşlemi\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(sinavApi + 'cevapanahtari/cevapanahtariLgsBirlestir/' + this.state.secilenMerkeziSinav,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n popup: false\r\n })\r\n this.refreshData();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n alert(\"Lütfen LGS sınavı seçiniz.\", \"Dikkat\")\r\n }\r\n }\r\n\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n\r\n service.post(sinavApi + 'cevapanahtari/cevapanahtarisave/' + this.state.secilenMerkeziSinav + \"/\" + this.state.secilenYayin,\r\n this.state.GirilenCevapAnahtari,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n popup: false\r\n })\r\n this.refreshData();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n }).catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n });\r\n }\r\n }\r\n\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kapat', type: 'danger', hint: 'Kapat', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Bilgi\">\r\n <SimpleItem dataField={\"Yayin.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxYayin,\r\n ref: (ref) => { this.selectBoxYayin = ref },\r\n onValueChanged: (e) => {\r\n this.setState({\r\n secilenYayin: e.value\r\n });\r\n if (this.state.secilenYayin !== null) {\r\n this.selectBoxSinavTuru.instance().option(\"value\", null);\r\n this.selectBoxMerkeziSinav.instance().option(\"value\", null);\r\n this.sinavTuruFilter.YayinId = e.value;\r\n this.yayinfilter.YayinId = e.value;\r\n this.sinavTuruDataSource.load();\r\n }\r\n }\r\n }}>\r\n <Label text=\"Yayın\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinavTuru.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.sinavTuruDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"SinavTuruAdi\",\r\n valueExpr: \"SinavTuru.Id\",\r\n onInitialized: this.onInitializedSelectBoxSinavTuru,\r\n ref: (ref) => { this.selectBoxSinavTuru = ref },\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" || e.value === null) {\r\n return;\r\n }\r\n\r\n this.selectBoxMerkeziSinav.instance().option(\"value\", null);\r\n const sinavTuruText = this.selectBoxSinavTuru.instance().option(\"text\");\r\n\r\n this.setState({\r\n secilenSinavTuru: e.value,\r\n kitapcikBirlestirDisabled: sinavTuruText === \"8.SINIF\" ? false : true\r\n });\r\n\r\n if (\r\n this.state.secilenSinavTuru !== null &&\r\n this.state.secilenSinavturu !== undefined &&\r\n this.state.secilenYayin !== null &&\r\n this.state.secilenYayin !== undefined\r\n ) {\r\n this.sinavTuruFilter.SinavTuruId = e.value;\r\n this.merkeziSinavDataSource.load();\r\n }\r\n\r\n }\r\n }}>\r\n <Label text=\"Sınav Türü\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Sinav.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.merkeziSinavDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxMerkeziSinav,\r\n ref: (ref) => { this.selectBoxMerkeziSinav = ref },\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" || e.value === null) {\r\n return;\r\n }\r\n\r\n this.setState({ secilenMerkeziSinav: e.value });\r\n\r\n }\r\n }}>\r\n <Label text=\"Sınav\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KitapcikTuru\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n items: this.kitapcikTurleri,\r\n searchEnabled: false,\r\n value: this.state.secilenKitapcikTuru,\r\n displayExpr: \"Deger\",\r\n valueExpr: \"Deger\",\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" || e.value === null) {\r\n return;\r\n }\r\n\r\n this.setState({ secilenKitapcikTuru: e.value });\r\n\r\n if (this.state.secilenKitapcikTuru !== null) {\r\n const url = sinavApi + \"cevapanahtari/getCevapAnahtari/\" + this.state.secilenKitapcikTuru + \"/\" + this.state.secilenMerkeziSinav;\r\n\r\n service.get(url, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({ GirilenCevapAnahtari: res.data.Data });\r\n } else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n }\r\n\r\n }\r\n }}>\r\n <Label text=\"Kitapçık Türü\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Cevap Anahtarı Yükleme İşlemleri\">\r\n <SimpleItem dataField={\"KitapcikEslestirme\"} editorType=\"dxCheckBox\" editorOptions={{\r\n onValueChanged: (e) => {\r\n this.setState({\r\n secilenKitapcikEslestirme: e.value\r\n })\r\n }\r\n }}>\r\n <Label text=\"Kitapçık Eşleştirme\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: sinavApi + \"cevapanahtari/CevapAnahtariUpload?MerkeziSinavId=\" + this.state.secilenMerkeziSinav + \"&KitapcikEslestirme=\" + this.state.secilenKitapcikEslestirme,\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n accept: '*',\r\n maxFileSize: 4000000,\r\n name: 'myFile',\r\n onUploaded: this.onUploaded\r\n }}>\r\n <Label text=\"Excel dosyasını seçiniz\" />\r\n </SimpleItem>\r\n\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Cevap Anahtarı Aktarma İşlemleri\">\r\n <SimpleItem dataField={\"AktarilacakKitapcikTuru\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n items: this.aktarilacakKitapcikTurleri,\r\n searchEnabled: false,\r\n value: this.state.secilenAktarilacakKitapcikTuru,\r\n displayExpr: \"Display\",\r\n valueExpr: \"Display\",\r\n onValueChanged: (e) => {\r\n this.setState({\r\n secilenAktarilacakKitapcikTuru: e.value\r\n })\r\n }\r\n }}>\r\n <Label text=\"Kitapçık Türü\" />\r\n </SimpleItem>\r\n <SimpleItem editorType=\"dxButton\"\r\n editorOptions={{\r\n text: 'Cevap Anahtarını Aktar',\r\n type: 'success',\r\n hint: 'Cevap Anahtarını Aktar',\r\n icon: 'exportxlsx',\r\n onClick: () => {\r\n const kitapcikTurleri = [];\r\n\r\n const getKitapcikTurleri = (kitapcikTuru) => {\r\n if (kitapcikTuru === \"A,B\") {\r\n return [{ KitapcikTuru: \"A\" }, { KitapcikTuru: \"B\" }];\r\n } else if (kitapcikTuru === \"C,D\") {\r\n return [{ KitapcikTuru: \"C\" }, { KitapcikTuru: \"D\" }];\r\n } else {\r\n return [{ KitapcikTuru: kitapcikTuru }];\r\n }\r\n };\r\n\r\n kitapcikTurleri.push(...getKitapcikTurleri(this.state.secilenAktarilacakKitapcikTuru));\r\n\r\n service.post(\r\n sinavApi + 'cevapanahtari/getCevapAnahtariAktar/' + this.state.secilenMerkeziSinav,\r\n kitapcikTurleri,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n window.location.href = sinavRealApi + res.data.Data;\r\n } else {\r\n notify(\"\", 'error', 5000);\r\n }\r\n });\r\n\r\n }\r\n }}>\r\n\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Cevap Anahtarı\">\r\n <SimpleItem>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.state.GirilenCevapAnahtari}\r\n columnHidingEnabled={true}\r\n keyExpr=\"SiraNo\"\r\n width=\"100%\"\r\n onEditorPreparing={(e) => {\r\n if (e.parentType === \"dataRow\" && e.dataField === \"DC1\") {\r\n // Mevcut işlemler ...\r\n\r\n e.editorOptions.onKeyUp = (event) => {\r\n if (event.event.key === 'A' || event.event.key === 'B' || event.event.key === 'C' || event.event.key === 'D' || event.event.key === 'E' || event.event.key === 'X' || event.event.key === 'I') {\r\n e.setValue(event.event.key);\r\n setTimeout(() => {\r\n const newRowIdx = e.component.getRowIndexByKey(e.row.key) + 1;\r\n const columnIndex = e.component.getVisibleColumnIndex('DC1');\r\n if (newRowIdx < e.component.totalCount()) {\r\n e.component.closeEditCell();\r\n e.component.editCell(newRowIdx, columnIndex);\r\n e.component.cellValue(newRowIdx, columnIndex, \"\");\r\n }\r\n }, 50);\r\n }\r\n };\r\n }\r\n }}\r\n\r\n\r\n\r\n // onEditorPreparing={(e) => {\r\n // if (e.parentType === \"dataRow\" && e.dataField === \"DC1\") {\r\n // e.editorOptions.onKeyPress = (event) => {\r\n // if (event.key === 'A' || event.key === 'B' || event.key === 'C' || event.key === 'D' || event.key === 'E' || event.key === 'X' || event.key === 'I') {\r\n // setTimeout(() => {\r\n // const newRowIdx = e.component.getRowIndexByKey(e.row.key) + 1;\r\n // if (newRowIdx < e.component.totalCount()) {\r\n // e.component.closeEditCell();\r\n // e.component.editCell(newRowIdx, e.columnIndex);\r\n // e.component.cellValue(newRowIdx, e.columnIndex, \"\");\r\n // }\r\n // }, 50);\r\n // }\r\n // };\r\n // // e.editorOptions.onValueChanged = args => {\r\n // // if (args.value !== \"A\" | args.value !== \"B\" | args.value !== \"C\" | args.value !== \"D\" | args.value !== \"E\" | args.value !== \"I\" | args.value !== \"X\") {\r\n // // e.component.instance().option(\"value\", \"X\");\r\n // // e.setValue(\"X\");\r\n // // }\r\n // // if (args.value === \"I\") {\r\n // // e.component.instance().option(\"value\", \"I\");\r\n // // e.setValue(\"I\");\r\n // // }\r\n // // if (args.value === \"X\") {\r\n // // e.component.instance().option(\"value\", \"X\");\r\n // // e.setValue(\"X\");\r\n // // }\r\n // // if (args.value === \"A\") {\r\n // // e.component.instance().option(\"value\", \"A\");\r\n // // e.setValue(\"A\");\r\n // // }\r\n // // if (args.value === \"B\") {\r\n // // e.component.instance().option(\"value\", \"B\");\r\n // // e.setValue(\"B\");\r\n // // }\r\n // // if (args.value === \"C\") {\r\n // // e.component.instance().option(\"value\", \"C\");\r\n // // e.setValue(\"C\");\r\n // // }\r\n // // if (args.value === \"D\") {\r\n // // e.component.instance().option(\"value\", \"D\");\r\n // // e.setValue(\"D\");\r\n // // }\r\n // // if (args.value === \"E\") {\r\n // // e.component.instance().option(\"value\", \"E\");\r\n // // e.setValue(\"E\");\r\n // // }\r\n // // };\r\n // }\r\n // }}\r\n >\r\n <Editing mode={'cell'} useIcons={false} allowUpdating={true} allowDeleting={false} />\r\n <KeyboardNavigation\r\n editOnKeyPress={true}\r\n enterKeyAction=\"startEdit\"\r\n enterKeyDirection=\"column\" />\r\n <LoadPanel enabled={true} />\r\n <ColumnFixing enabled={true} />\r\n <Paging pageSize={350}></Paging>\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'DersAdi'} allowEditing={false} caption=\"Ders\" width=\"150\" />\r\n <Column dataField={'DersSimge'} allowEditing={false} caption=\"Simge\" visible={false} />\r\n <Column dataField={'KitapcikTuru'} allowEditing={false} width=\"100\" caption=\"Kitapçık\" />\r\n <Column dataField={'SoruNo'} allowEditing={false} width=\"100\" caption=\"Soru No\" dataType=\"number\" />\r\n <Column dataField={'DC1'} caption=\"DC1\" width=\"50\" allowEditing={true} dataType=\"string\" />\r\n <Column dataField={'DC2'} caption=\"DC2\" width=\"50\" dataType=\"string\" />\r\n <Column dataField={'DC3'} caption=\"DC3\" width=\"50\" dataType=\"string\" />\r\n <Column dataField={'EslestirilenSoruNo'} width=\"200\" caption=\"Eşleştirilen S. N.\" dataType=\"number\" />\r\n <Column dataField={'KonuAdi'} caption=\"Konu\" width=\"150\" dataType=\"string\" />\r\n </DataGrid>\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n <MyLoad\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n position={position}\r\n visible={this.state.loadPanelVisible}\r\n showIndicator={true}\r\n shading={true}\r\n showPane={true}\r\n closeOnOutsideClick={false}\r\n />\r\n </div>\r\n </div>\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { sinavApi, karneApi, otomasyonApi, yayinSinavApi, yayinKarneApi } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Column, Editing, Paging, Pager, FilterRow\r\n} from 'devextreme-react/data-grid';\r\nimport { Button, Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label, RequiredRule } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport j from 'jquery';\r\nimport { LoadPanel } from 'devextreme-react/load-panel';\r\nimport { setRemoteSystemInfo } from \"../../redux/actions/mainSystemAction\";\r\nimport { connect } from 'react-redux';\r\nconst position = { of: '#sinav' };\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n setRemoteSystem: (data) => dispatch(setRemoteSystemInfo(data))\r\n }\r\n}\r\nconst mapStateToProps = state => ({\r\n remoteSystem: state.remoteSystem.info\r\n}\r\n);\r\n\r\n\r\n\r\n\r\n\r\nclass SinavGonderimi extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loadPanelVisible: false,\r\n popup: false,\r\n popupKurum: false,\r\n tyt2Goster: false,\r\n otomatikKurumKodu: false,\r\n sinifSiraliListeText: \"Sınıf Liste\",\r\n sinifSiraliListeDisabled: false,\r\n kurumSiraliListeText: \"Kurum Liste\",\r\n kurumSiraliListeDisabled: false,\r\n kurumSiraliExcelListeText: \"Excel Liste\",\r\n kurumSiraliExcelListeDisabled: false,\r\n listeKarneText: \"Liste ve Karne\",\r\n tekPdfText: \"Tek Pdf\",\r\n tekPdfDisabled: false,\r\n listeKarneDisabled: false,\r\n toolbarDisabled: false,\r\n secilenMerkeziSinavId: null,\r\n secilenKurumId: null,\r\n merkeziSinavGoster: false\r\n };\r\n this.mainDataGrid = null;\r\n this.formKurum = null;\r\n this.buttonDegerlendir = null;\r\n this.selectBoxIl = null;\r\n this.selectBoxIlce = null;\r\n this.selectBoxYayin = null;\r\n this.selectBoxYayin2 = null;\r\n this.selectBoxMerkeziSinav = null;\r\n this.selectBoxMerkeziSinav2 = null;\r\n this.selectBoxOptikform = null;\r\n this.selectBoxSinavTuru = null;\r\n this.fileUploadTxt = null;\r\n this.numberBoxKurumKodu = null;\r\n this.selectBoxKurumId = null;\r\n this.formData = {\r\n Yayin: { Id: 0 },\r\n Yayin2: { Id: 0 },\r\n MerkeziSinav: { Id: 0 },\r\n MerkeziSinav2: { Id: 0 },\r\n SinavTuru: { Id: 0 },\r\n OptikForm: { Id: 0 },\r\n Kurum: { Id: null },\r\n BosKitapcikTuru: \"A\",\r\n BosOgrenciNo: 0,\r\n DosyaAdi: \"\",\r\n VeriSilme: false\r\n };\r\n this.formSinavGonderimi = null;\r\n this.kurumTurleri = [\r\n { Id: 0, Adi: \"Seçiniz\" },\r\n { Id: 1, Adi: \"İlkokul\" },\r\n { Id: 2, Adi: \"Ortaokul\" },\r\n { Id: 3, Adi: \"Lise\" },\r\n { Id: 4, Adi: \"Etüt Merkezi\" },\r\n { Id: 5, Adi: \"Özel Öğretim Kurs Merkezi\" },\r\n { Id: 6, Adi: \"Halk Eğitim Merkezi\" },\r\n { Id: 7, Adi: \"İlçe Milli Eğitim Müdürlüğü\" },\r\n { Id: 8, Adi: \"İl Milli Eğitim Müdürlüğü\" },\r\n { Id: 9, Adi: \"Kişisel Gelişim Kursu\" },\r\n { Id: 10, Adi: \"Diğer\" },\r\n ];\r\n\r\n this.formDataKurum = {\r\n Id: 0,\r\n Il: { Id: 0 },\r\n Ilce: { Id: 0 },\r\n KurumKodu: 1,\r\n KurumEmail: null,\r\n KurumAdi: null,\r\n Logo: null,\r\n Gsm: null\r\n };\r\n\r\n\r\n this.popupForm = null;\r\n this.popupKurumForm = null;\r\n this.satir = null;\r\n this.bosOgrenciNo = 0;\r\n this.bosKitapcikTuru = \"\";\r\n this.dosyaAdi = \"\";\r\n this.yayinlar = [];\r\n this.headers = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n\r\n this.popupGizle = () => {\r\n this.setState({ popup: false, toolbarDisabled: false });\r\n };\r\n\r\n this.popupGizleKurum = () => {\r\n this.setState({ popupKurum: false, toolbarDisabled: false })\r\n }\r\n\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.sinavYukleClick = this.sinavYukleClick.bind(this);\r\n this.listeVeKarneClick = this.listeVeKarneClick.bind(this);\r\n this.tekPdfClick = this.tekPdfClick.bind(this);\r\n this.listeClick = this.listeClick.bind(this);\r\n this.listeKurumClick = this.listeKurumClick.bind(this);\r\n this.listeExcelClick = this.listeExcelClick.bind(this);\r\n this.sinavSil = this.sinavSil.bind(this);\r\n this.ogrenciNoVer = this.ogrenciNoVer.bind(this);\r\n this.getKitapcikTuruVer = this.getKitapcikTuruVer.bind(this);\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.onUploadedKurumLogo = this.onUploadedKurumLogo.bind(this);\r\n this.onTxtIndir = this.onTxtIndir.bind(this);\r\n this.onInitialized = this.onInitialized.bind(this);\r\n this.onInitializedSelectBoxIl = this.onInitializedSelectBoxIl.bind(this);\r\n this.onInitializedSelectBoxIlce = this.onInitializedSelectBoxIlce.bind(this);\r\n this.onInitializedSelectBoxMerkeziSinav = this.onInitializedSelectBoxMerkeziSinav.bind(this);\r\n this.onInitializedSelectBoxMerkeziSinav2 = this.onInitializedSelectBoxMerkeziSinav2.bind(this);\r\n this.onInitializedSelectBoxYayin = this.onInitializedSelectBoxYayin.bind(this);\r\n this.onInitializedSelectBoxYayin2 = this.onInitializedSelectBoxYayin2.bind(this);\r\n this.onInitializedSelectBoxSinavTuru = this.onInitializedSelectBoxSinavTuru.bind(this);\r\n this.onInitializedSelectBoxOptikform = this.onInitializedSelectBoxOptikform.bind(this);\r\n this.onInitializedFormKurum = this.onInitializedFormKurum.bind(this);\r\n this.onInitializedNumberBoxKurumKodu = this.onInitializedNumberBoxKurumKodu.bind(this);\r\n this.onInitializedSelectBoxKurumId = this.onInitializedSelectBoxKurumId.bind(this);\r\n this.onInitializedFormSinavGonderimi = this.onInitializedFormSinavGonderimi.bind(this);\r\n this.onInitializedFileUploadTxt = this.onInitializedFileUploadTxt.bind(this);\r\n this.onFileSelected = this.onFileSelected.bind(this);\r\n this.onInitializedButtonDegerlendir = this.onInitializedButtonDegerlendir.bind(this);\r\n this.gridMainSatirIptal = this.gridMainSatirIptal.bind(this);\r\n this.showLoadPanel = this.showLoadPanel.bind(this);\r\n this.hideLoadPanel = this.hideLoadPanel.bind(this);\r\n\r\n this.kurumDataSource = new DataSource(\r\n {\r\n pageSize: 100,\r\n paginate: true,\r\n store: createStore({\r\n loadUrl: sinavApi + 'kurum/sgekurum',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.ilDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n paginate: false,\r\n store: createStore({\r\n loadUrl: sinavApi + 'ortak/iller',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.ilfilter = { IlId: 0 };\r\n this.ilceDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.ilfilter,\r\n loadUrl: sinavApi + 'ortak/ilceler',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadUrl: sinavApi + 'yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayinfilter = { YayinId: 0 };\r\n this.sinavTuruDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n loadParams: this.yayinfilter,\r\n loadUrl: sinavApi + 'ortak/GetSinavTurleriByYayinId',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.sinavTuruFilter = {\r\n YayinId: 0,\r\n SinavTuruId: 0,\r\n MerkeziSinavId: 0\r\n };\r\n\r\n this.merkeziSinavDataSource = new DataSource(\r\n {\r\n filter: [\"Degerlendirilebilir\", \"=\", true],\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.sinavTuruFilter,\r\n loadUrl: sinavApi + 'merkezisinav/sgemerkezisinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.yayin2filter = { YayinId: 0 };\r\n\r\n this.tytMerkeziSinavDataSource = new DataSource(\r\n {\r\n filter: [\"Degerlendirilebilir\", \"=\", true],\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.yayin2filter,\r\n loadUrl: sinavApi + 'merkezisinav/sgetytmerkezisinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.optikFormDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.sinavTuruFilter,\r\n loadUrl: sinavApi + 'optikform/sgeoptikformlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.merkeziSinavId = 0;\r\n\r\n this.degerlendirilenSinavlarDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'merkezisinav/sgedegerlendirilensinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n\r\n hideLoadPanel() {\r\n this.setState({\r\n loadPanelVisible: false\r\n });\r\n }\r\n\r\n showLoadPanel() {\r\n this.setState({\r\n loadPanelVisible: true\r\n });\r\n }\r\n\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'before', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Sınav Yükle',\r\n icon: 'upload',\r\n text: \"Sınav Yükle\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.sinavYukleClick\r\n }\r\n },\r\n {\r\n location: 'before', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: this.state.listeKarneText, icon: 'exportpdf',\r\n text: this.state.listeKarneText,\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.listeVeKarneClick\r\n }\r\n },\r\n {\r\n location: 'before', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: this.state.tekPdfText, icon: 'exportpdf',\r\n text: this.state.tekPdfText,\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.tekPdfClick\r\n }\r\n },\r\n {\r\n location: 'before',\r\n widget: 'dxDropDownButton',\r\n locateInMenu: 'auto',\r\n options: {\r\n displayExpr: 'name',\r\n keyExpr: \"value\",\r\n valueExpr: 'value',\r\n //icon: \"orderedlist\",\r\n useSelectMode: false,\r\n width: 120,\r\n text: \"Listeler\",\r\n items: [\r\n { name: 'Sınıf Liste', value: 1 },\r\n { name: 'Kurum Liste', value: 2 },\r\n { name: 'Excel Liste', value: 3 },\r\n { name: 'TYT-AYT Liste', value: 4 }\r\n ],\r\n onItemClick: (e) => {\r\n switch (e.itemData.value) {\r\n case 1:\r\n this.listeClick();\r\n break;\r\n case 2:\r\n this.listeKurumClick();\r\n break;\r\n case 3:\r\n this.listeExcelClick();\r\n break;\r\n case 4:\r\n this.listeTytAytClick();\r\n break;\r\n default:\r\n notify(\"Herhangi bir seçim yapılmadı\", \"warning\", 5000);\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'before', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Txt İnidr',\r\n text: 'Txt',\r\n icon: 'download',\r\n //text: \"Txt İndir\",\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.onTxtIndir\r\n }\r\n },\r\n {\r\n location: 'before', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger',\r\n hint: 'Sil',\r\n icon: 'trash',\r\n text: \"Sil\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.sinavSil\r\n }\r\n },\r\n {\r\n location: 'before', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Yenile',\r\n icon: 'refresh',\r\n //text: \"Yenile\",\r\n disabled: this.state.toolbarDisabled,\r\n onClick: (e) => {\r\n this.mainDataGrid.instance.refresh();\r\n }\r\n }\r\n },\r\n {\r\n location: 'before', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Veli SMS',\r\n icon: 'email',\r\n disabled: this.state.toolbarDisabled,\r\n visible: (Globals.service.Rol !== \"SubeOgretmen\" && window.ayarlar.projeturu === \"otomasyon\") ? true : false,\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.setState({\r\n toolbarDisabled: true\r\n });\r\n const postData = {\r\n KurumId: satir.Kurum_Id,\r\n SinavId: satir.Sinav_Id,\r\n SinavAdi: satir.SinavAdi\r\n }\r\n service.post(otomasyonApi + \"sms/postvelisinavsonucugonder\", postData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n notify(res.data.Data, \"success\", 5000);\r\n }\r\n else {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch((err) => {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'before', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success',\r\n hint: 'Öğrenci SMS',\r\n icon: 'email',\r\n visible: (window.ayarlar.projeturu === \"otomasyon\") ? true : false,\r\n disabled: this.state.toolbarDisabled,\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n\r\n const postData = {\r\n KurumId: satir.Kurum_Id,\r\n SinavId: satir.Sinav_Id,\r\n SinavAdi: satir.SinavAdi\r\n }\r\n this.setState({\r\n toolbarDisabled: true\r\n });\r\n service.post(otomasyonApi + \"sms/postogrencisinavsonucugonder\", postData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n notify(res.data.Data, \"success\", 5000);\r\n }\r\n else {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch((err) => {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'before',\r\n widget: 'dxDropDownButton',\r\n locateInMenu: 'auto',\r\n options: {\r\n displayExpr: 'name',\r\n keyExpr: \"value\",\r\n valueExpr: 'value',\r\n stylingMode: 'default',\r\n useSelectMode: false,\r\n width: 100,\r\n text: \"Puan Analizi\",\r\n items: [\r\n { name: 'Kurumlar Genel', value: 1 },\r\n { name: 'Kurumlar İl', value: 2 },\r\n { name: 'Kurumlar İlçe', value: 3 },\r\n { name: 'Kurumlar Sınıf', value: 4 },\r\n { name: 'Öğrenci Genel', value: 5 },\r\n { name: 'Öğrenci İl', value: 6 },\r\n { name: 'Öğrenci İlçe', value: 7 }\r\n ],\r\n onItemClick: (e) => {\r\n switch (e.itemData.value) {\r\n case 1:\r\n this.kurumGenelRaporuGetir();\r\n break;\r\n case 2:\r\n this.kurumGenelIlRaporuGetir();\r\n break;\r\n case 3:\r\n this.kurumGenelIlceRaporuGetir();\r\n break;\r\n case 4:\r\n this.kurumGenelSinifRaporuGetir();\r\n break;\r\n case 5:\r\n this.ilk100GenelRaporuGetir();\r\n break;\r\n case 6:\r\n this.ilk100IlRaporuGetir();\r\n break;\r\n case 7:\r\n this.ilk100IlceRaporuGetir();\r\n break;\r\n default:\r\n notify(\"Herhangi bir seçim yapılmadı\", \"warning\", 5000);\r\n break;\r\n }\r\n // if (e.itemData.id === 1) {\r\n // this.props.children.props.history.push(\"/ayarlar\");\r\n // }\r\n // else if (e.itemData.id === 2) {\r\n // this.onClickSignOut(e);\r\n // }\r\n }\r\n }\r\n },\r\n {\r\n location: 'before',\r\n widget: 'dxDropDownButton',\r\n locateInMenu: 'auto',\r\n options: {\r\n displayExpr: 'name',\r\n keyExpr: \"value\",\r\n valueExpr: 'value',\r\n //icon: \"orderedlist\",\r\n stylingMode: 'default',\r\n useSelectMode: false,\r\n width: 130,\r\n text: \"Konu-Soru Analizi\",\r\n items: [\r\n { name: 'Kurum-Sınav-Konu', value: 1 },\r\n { name: 'Kurum-Sınav-Soru', value: 2 },\r\n { name: 'Sınıf-Sınav-Konu', value: 3 },\r\n { name: 'Sınıf-Sınav-Soru', value: 4 }\r\n ],\r\n onItemClick: (e) => {\r\n switch (e.itemData.value) {\r\n case 1:\r\n this.kurumKonuanaliziGetir();\r\n break;\r\n case 2:\r\n this.kurumSoruanaliziGetir();\r\n break;\r\n case 3:\r\n this.sinifKonuAnaliziGetir();\r\n break;\r\n case 4:\r\n this.sinifSoruAnaliziGetir();\r\n break;\r\n default:\r\n notify(\"Herhangi bir seçim yapılmadı\", \"warning\", 5000);\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'before',\r\n widget: 'dxDropDownButton',\r\n locateInMenu: 'auto',\r\n options: {\r\n displayExpr: 'name',\r\n keyExpr: \"value\",\r\n valueExpr: 'value',\r\n //icon: \"orderedlist\",\r\n stylingMode: 'default',\r\n useSelectMode: false,\r\n width: 130,\r\n text: \"Net Analizi\",\r\n items: [\r\n { name: 'Kurumlar-İl', value: 1 },\r\n { name: 'Kurumlar-İlçe', value: 2 },\r\n { name: 'Kurumlar-Sınıf', value: 3 },\r\n { name: 'Kurumlar-Öğrenci', value: 4 }\r\n ],\r\n onItemClick: (e) => {\r\n switch (e.itemData.value) {\r\n case 1:\r\n this.kurumlarIlAnaliziGetir();\r\n break;\r\n case 2:\r\n this.kurumlarIlceAnaliziGetir();\r\n break;\r\n case 3:\r\n this.kurumlarSinifAnaliziGetir();\r\n break;\r\n case 4:\r\n this.kurumOgrenciAnaliziGetir();\r\n break;\r\n default:\r\n notify(\"Herhangi bir seçim yapılmadı\", \"warning\", 5000);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n getKarneApi() {\r\n let endpoint = \"\";\r\n endpoint = (this.props.remoteSystem.connectionState && this.state.merkeziSinavGoster) ? yayinKarneApi : karneApi;\r\n return endpoint;\r\n }\r\n getSinavApi() {\r\n let endpoint = \"\";\r\n endpoint = (this.props.remoteSystem.connectionState && this.state.merkeziSinavGoster) ? yayinSinavApi : sinavApi;\r\n return endpoint;\r\n }\r\n\r\n getHeaders() {\r\n return {\r\n 'Authorization': (this.props.remoteSystem.connectionState && this.state.merkeziSinavGoster)\r\n ? 'Bearer ' + this.props.remoteSystem.remoteToken\r\n : 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n kurumlarIlAnaliziGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"netanalizi/getKurumlarNetAnaliziGetir/\" + satir.SinavTuru + \"/1/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Kurumlar il net analiziniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n kurumlarIlceAnaliziGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"netanalizi/getKurumlarNetAnaliziGetir/\" + satir.SinavTuru + \"/2/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Kurumlar il net analiziniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n kurumlarSinifAnaliziGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"netanalizi/getKurumlarNetAnaliziGetir/\" + satir.SinavTuru + \"/3/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Kurumlar il net analiziniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n kurumOgrenciAnaliziGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n let data = {\r\n SinavTuru: satir.SinavTuru,\r\n KurumId: satir.Kurum_Id\r\n };\r\n service.post(this.getKarneApi() + \"analiz/kurumogrencianalizi\", data, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Kuruml-Öğrenci net analiziniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n sinifKonuAnaliziGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"analiz/sinifkonuanalizi/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Sınıf konu analiziniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n sinifSoruAnaliziGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"analiz/sinifsoruanalizi/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id + \"/\" + satir.Yayin_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Sınıf soru analiziniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n kurumSoruanaliziGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"analiz/kurumsoruanalizi/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id + \"/\" + satir.Yayin_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Kurum soru analiziniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n kurumKonuanaliziGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"analiz/kurumkonuanalizi/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Kurum konu analiziniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n kurumGenelRaporuGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"analiz/getkurumgenelpuanortalamaraporu/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Kurum genel puan ortalamanız oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n kurumGenelSinifRaporuGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"analiz/getkurumsinifpuanortalamaraporu/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Kurum genel sınıf puan ortalamanız oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n ilk100GenelRaporuGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"analiz/getilk100ogrencigenelraporu/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Öğrenci genel ilk 100 öğrenci raporunuz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n ilk100IlRaporuGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"analiz/getilk100ogrenciilraporu/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id + \"/\" + satir.Il_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Öğrenci il raporunuz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n ilk100IlceRaporuGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"analiz/getilk100ogrenciilceraporu/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id + \"/\" + satir.Ilce_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Öğrenci ilçe raporunuz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n kurumGenelIlRaporuGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"analiz/getkurumilpuanortalamaraporu/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id + \"/\" + satir.Il_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Kurum il puan ortalamanız oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n kurumGenelIlceRaporuGetir() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"analiz/getkurumilcepuanortalamaraporu/\" + satir.Sinav_Id + \"/\" + satir.Kurum_Id + \"/\" + satir.Ilce_Id, {\r\n headers: this.getHeaders()\r\n }).then(async (res) => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n alert(\"Kurum ilçe puan ortalamanız oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Dosyaya erişmek için buraya tıklayınız.</a>\", \"Bilgi\");\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n this.hideLoadPanel();\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n onInitializedSelectBoxIl(e) {\r\n this.selectBoxIl = e.component;\r\n }\r\n\r\n onInitializedSelectBoxIlce(e) {\r\n this.selectBoxIlce = e.component;\r\n }\r\n\r\n onInitializedFormKurum(e) {\r\n this.formKurum = e.component;\r\n }\r\n\r\n onInitializedNumberBoxKurumKodu(e) {\r\n this.numberBoxKurumKodu = e.component;\r\n }\r\n\r\n onInitializedSelectBoxKurumId(e) {\r\n this.selectBoxKurumId = e.component;\r\n }\r\n\r\n onInitializedFormSinavGonderimi(e) {\r\n this.formSinavGonderimi = e.component;\r\n }\r\n\r\n onInitializedFileUploadTxt(e) {\r\n this.fileUploadTxt = e.component;\r\n }\r\n\r\n onInitializedSelectBoxMerkeziSinav(e) {\r\n this.selectBoxMerkeziSinav = e.component;\r\n }\r\n\r\n onInitializedSelectBoxMerkeziSinav2(e) {\r\n this.selectBoxMerkeziSinav2 = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinavTuru(e) {\r\n this.selectBoxSinavTuru = e.component;\r\n }\r\n\r\n onInitializedSelectBoxYayin(e) {\r\n this.selectBoxYayin = e.component;\r\n }\r\n\r\n onInitializedSelectBoxYayin2(e) {\r\n this.selectBoxYayin2 = e.component;\r\n }\r\n\r\n onInitializedSelectBoxOptikform(e) {\r\n this.selectBoxOptikform = e.component;\r\n }\r\n\r\n onInitialized(e) {\r\n this.mainDataGrid = e.component;\r\n }\r\n\r\n onInitializedButtonDegerlendir(e) {\r\n this.buttonDegerlendir = e.component;\r\n }\r\n\r\n onTxtIndir(e) {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n var a = document.createElement('a');\r\n a.target = \"_blank\";\r\n a.href = satir.SinavTxt;\r\n a.click();\r\n }\r\n }\r\n\r\n onUploaded(e) {\r\n const response = JSON.parse(e.request.response);\r\n if (response.Success) {\r\n this.dosyaAdi = response.Data;\r\n e.component.reset();\r\n notify(\"Txt dosyanız yüklendi\", \"success\", 5000);\r\n\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + response.ErrorMessage, \"error\", 5000);\r\n }\r\n }\r\n\r\n onFileSelected(e) {\r\n if (e.value.length > 0) {\r\n var dosya = e.value[0];\r\n j(\"#spnYuklenenDosya\").html(\"Seçilen Dosya:\" + dosya.name);\r\n }\r\n\r\n }\r\n\r\n onUploadedKurumLogo(e) {\r\n var res = JSON.parse(e.request.response);\r\n if (!res.Result.Value.Success) {\r\n notify(\"Logonuz yüklenemedi,\" + res.Result.Value.ErrorMessage, \"error\", 5000);\r\n e.component.reset();\r\n }\r\n else {\r\n notify(\"Logonuz yüklendi\", \"success\", 5000);\r\n this.formDataKurum.Logo = res.Result.Value.Data;\r\n e.component.reset();\r\n }\r\n }\r\n\r\n sinavSil() {\r\n //const satir = this.mainDataGrid.instance.option('dataSource')[this.mainDataGrid.instance.option('focusedRowIndex')];\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Sınav verilerini silmek istiyorsunuz, emin misiniz?</i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(this.getSinavApi() + \"sinavgonderimi/sinavGonderimVerileriniSil/\" + satir.Id,\r\n null,\r\n {\r\n headers: this.getHeaders()\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.mainDataGrid.instance.refresh();\r\n this.gridMainSatirIptal();\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n sinavYukleClick() {\r\n this.formData = {\r\n Yayin: { Id: null },\r\n Yayin2: { Id: null },\r\n MerkeziSinav: { Id: null },\r\n MerkeziSinav2: { Id: null },\r\n SinavTuru: { Id: null },\r\n OptikForm: { Id: null },\r\n Kurum: { Id: null },\r\n BosKitapcikTuru: \"A\",\r\n BosOgrenciNo: 0,\r\n DosyaAdi: \"\"\r\n };\r\n this.bosKitapcikTuru = null;\r\n this.bosOgrenciNo = 0;\r\n this.setState({\r\n popup: true\r\n });\r\n\r\n }\r\n\r\n ogrenciNoVer() {\r\n if (this.formData.MerkeziSinav.Id === null) return;\r\n this.merkeziSinavDataSource.load().done(() => {\r\n const sinavKodu = this.merkeziSinavDataSource.items().find(x => x.Id === this.formData.MerkeziSinav.Id).Kodu;\r\n let sinavKoduPart = sinavKodu.toString().substring(sinavKodu.toString().length === 4 ? 0 : sinavKodu.toString().length, 4);\r\n this.bosOgrenciNo = sinavKoduPart === \"0\" ? \"90001\" : sinavKoduPart + \"0001\";\r\n })\r\n\r\n }\r\n\r\n getKitapcikTuruVer() {\r\n if (this.formData.MerkeziSinav.Id === null) return;\r\n service.get(this.getSinavApi() + \"cevapanahtari/GetKitapcikTurleri/\" + this.formData.MerkeziSinav.Id,\r\n {\r\n headers: this.getHeaders()\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.bosKitapcikTuru = res.data.Data;\r\n }\r\n else\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n }\r\n\r\n async listeVeKarneClick() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.setState({\r\n listeKarneText: \"!Bekleyiniz\",\r\n listeKarneDisabled: true,\r\n toolbarDisabled: true\r\n });\r\n await service.get(this.getKarneApi() + \"hizlirapor/GetKarne/\" + satir.Id,\r\n {\r\n timeout: 1200000,\r\n headers: this.getHeaders()\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n listeKarneText: \"Liste ve Karne\",\r\n toolbarDisabled: false\r\n });\r\n this.mainDataGrid.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n notify(\"Liste ve karneniz oluşturuldu\", \"success\", 5000);\r\n });\r\n }\r\n else {\r\n this.setState({\r\n listeKarneText: \"Liste ve Karne\",\r\n toolbarDisabled: false\r\n });\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(error => {\r\n this.setState({\r\n listeKarneText: \"Liste ve Karne\",\r\n toolbarDisabled: false\r\n });\r\n notify(\"Teknik bir hata oluştu,lütfen daha sonra tekrar deneyiniz,\" + error, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n async tekPdfClick() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.setState({\r\n tekPdfText: \"!Bekleyiniz\",\r\n toolbarDisabled: true\r\n });\r\n var configAjax = {\r\n timeout: 1200000,\r\n headers: this.getHeaders()\r\n }\r\n await service.get(this.getKarneApi() + \"hizlirapor/getkurumsiniflistekarne/\" + satir.Id,\r\n configAjax)\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n tekPdfText: \"Tek Pdf\",\r\n toolbarDisabled: false\r\n });\r\n this.mainDataGrid.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n notify(\"Tek pdf oluşturuldu\", \"success\", 5000);\r\n });\r\n }\r\n else {\r\n this.setState({\r\n tekPdfText: \"Tek Pdf\",\r\n toolbarDisabled: false\r\n });\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(error => {\r\n this.setState({\r\n tekPdfText: \"Tek Pdf\",\r\n toolbarDisabled: false\r\n });\r\n notify(\"Teknik bir hata oluştu,lütfen daha sonra tekrar deneyiniz,\" + error, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n listeClick() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n var configAjax = {\r\n timeout: 1200000,\r\n headers: this.getHeaders()\r\n };\r\n service.get(this.getKarneApi() + \"hizlirapor/GetListe/\" + satir.Id,\r\n configAjax)\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n this.mainDataGrid.instance.refresh().then(() => {\r\n notify(\"Sınıf sıralı listeniz oluşturuldu\", \"success\", 5000);\r\n this.gridMainSatirIptal();\r\n });\r\n\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(error => {\r\n this.hideLoadPanel();\r\n notify(\"Teknik bir hata oluştu,lütfen daha sonra tekrar deneyiniz,\" + error, \"error\", 5000);\r\n })\r\n }\r\n }\r\n\r\n listeKurumClick() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n var configAjax = {\r\n timeout: 1200000,\r\n headers: this.getHeaders()\r\n };\r\n service.get(this.getKarneApi() + \"hizlirapor/GetKurumListe/\" + satir.Id,\r\n configAjax)\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n this.mainDataGrid.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n notify(\"Kurum sıralı listeniz oluşturuldu\", \"success\", 5000);\r\n });\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(error => {\r\n this.hideLoadPanel();\r\n notify(\"Bir hata oluştu, lütfen daha sonra tekrar deneyiniz,\" + error, \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n listeExcelClick() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"hizlirapor/GetListeExcel/\" + satir.Id, {\r\n timeout: 1200000,\r\n headers: this.getHeaders()\r\n\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n this.mainDataGrid.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n notify(\"Excel formatında listeniz oluşturuldu\", \"success\", 5000);\r\n });\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(error => {\r\n notify(\"Teknik bir hata oluştu,lütfen daha sonra tekrar deneyiniz,\" + error, \"error\", 5000);\r\n this.hideLoadPanel();\r\n });\r\n }\r\n }\r\n\r\n listeTytAytClick() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (this.satir.SinavTuru !== \"AYT\") {\r\n alert(\"Bu rapor sadece AYT sınav türünde alınabilir\");\r\n } else {\r\n this.showLoadPanel();\r\n service.get(this.getKarneApi() + \"hizlirapor/getlistetytayt/\" + satir.Id, {\r\n timeout: 1200000,\r\n headers: this.getHeaders()\r\n\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.hideLoadPanel();\r\n this.mainDataGrid.instance.refresh().then(() => {\r\n this.gridMainSatirIptal();\r\n notify(\"Excel formatında listeniz oluşturuldu\", \"success\", 5000);\r\n });\r\n }\r\n else {\r\n this.hideLoadPanel();\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(error => {\r\n notify(\"Teknik bir hata oluştu,lütfen daha sonra tekrar deneyiniz,\" + error, \"error\", 5000);\r\n this.hideLoadPanel();\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n gridMainSatirIptal() {\r\n if (this.mainDataGrid.instance !== null) {\r\n this.mainDataGrid.instance.clearSelection();\r\n this.mainDataGrid.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <LoadPanel\r\n shadingColor=\"rgba(0,0,0,0.4)\"\r\n position={position}\r\n onHiding={this.hideLoadPanel}\r\n visible={this.state.loadPanelVisible}\r\n showIndicator={true}\r\n shading={true}\r\n showPane={true}\r\n closeOnOutsideClick={false}\r\n />\r\n <div style={{ padding: \"10px\" }} id=\"sinav\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Sınav İşlemleri>>Sınav Yükle\"}</h4>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <b>Güncel sıralamaların olduğu liste ve karne için ilgili satırı seçip tekrar rapor alınması gerekmektedir.</b><br></br>\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ display: window.ayarlar.projeturu === \"otomasyon\" ? \"\" : \"none\" }}>\r\n <div className=\"col-md-12\">\r\n <b>Merkezi sınavlar ile ilgili işlem yampak için ağaşıda ki butona basarak local ve merkezi sınavlar arasında geçiş yapabilirsiniz</b><br></br><br></br><br></br>\r\n </div>\r\n </div>\r\n <div className='row gy-2'>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Liste ve Karne\"}\r\n onClick={(e) => {\r\n this.listeVeKarneClick();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Tek Pdf\"}\r\n onClick={(e) => {\r\n this.tekPdfClick();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Sınıf Liste\"}\r\n onClick={(e) => {\r\n this.listeClick();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Kurum Liste\"}\r\n onClick={(e) => {\r\n this.listeKurumClick();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Excel Liste\"}\r\n onClick={(e) => {\r\n this.listeExcelClick();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"TYT-AYT Liste\"}\r\n onClick={(e) => {\r\n this.listeTytAytClick();\r\n\r\n }}></Button>\r\n </div>\r\n\r\n\r\n </div>\r\n <div className='mt-2'></div>\r\n <div className='row gy-2'>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Kurumlar Genel Analiz\"}\r\n onClick={(e) => {\r\n this.kurumGenelRaporuGetir();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Kurumlar İl Analiz\"}\r\n onClick={(e) => {\r\n this.kurumlarIlAnaliziGetir();\r\n\r\n }}></Button>\r\n </div>\r\n\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Kurumlar İlçe Analiz\"}\r\n onClick={(e) => {\r\n this.kurumGenelIlceRaporuGetir();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Kurumlar Sınıf Analiz\"}\r\n onClick={(e) => {\r\n this.kurumGenelSinifRaporuGetir();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Öğrenci Genel Analiz\"}\r\n onClick={(e) => {\r\n this.ilk100GenelRaporuGetir();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Öğrenci İl Analiz\"}\r\n onClick={(e) => {\r\n this.ilk100IlRaporuGetir();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Öğrenci İlçe Analiz\"}\r\n onClick={(e) => {\r\n this.ilk100IlceRaporuGetir();\r\n\r\n }}></Button>\r\n </div>\r\n\r\n </div>\r\n <div className='mt-2'></div>\r\n\r\n <div className='row'>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Kurum Sınav Konu Analiz\"}\r\n onClick={(e) => {\r\n this.kurumlarSinifAnaliziGetir();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Kurum Sınav Soru Analiz\"}\r\n onClick={(e) => {\r\n this.kurumSoruanaliziGetir();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Sınıf Sınav Konu Analiz\"}\r\n onClick={(e) => {\r\n this.sinifKonuAnaliziGetir();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Sınıf Sınav Soru Analiz\"}\r\n onClick={(e) => {\r\n this.sinifSoruAnaliziGetir();\r\n\r\n }}></Button>\r\n </div>\r\n </div>\r\n <div className='mt-2'></div>\r\n <div className='row'>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Kurumlar İl Net Analiz\"}\r\n onClick={(e) => {\r\n this.sinifSoruAnaliziGetir();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Kurumlar İlçe Net Analiz\"}\r\n onClick={(e) => {\r\n this.kurumlarIlceAnaliziGetir();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Kurumlar Sınıf Net Analiz\"}\r\n onClick={(e) => {\r\n this.kurumlarSinifAnaliziGetir();\r\n\r\n }}></Button>\r\n </div>\r\n <div className='col-md-2 text-start'>\r\n <Button\r\n type={'default'}\r\n text={\"Kurumlar Öğrenci Net Analiz\"}\r\n onClick={(e) => {\r\n this.kurumOgrenciAnaliziGetir();\r\n\r\n }}></Button>\r\n </div>\r\n </div>\r\n <div className='mt-2'></div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Button\r\n visible={window.ayarlar.projeturu === \"otomasyon\" ? true : false}\r\n type={this.state.merkeziSinavGoster ? 'success' : 'default'}\r\n text={this.state.merkeziSinavGoster ? \"Merkezi sınavlar ile ilgili işlem yapılıyor\" : \"Local sınavlar ile ilgili işlem yapılıyor\"}\r\n onClick={(e) => {\r\n if (!this.state.merkeziSinavGoster) {\r\n\r\n this.degerlendirilenSinavlarDataSource = new DataSource(\r\n {\r\n paginate: true,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: yayinSinavApi + 'merkezisinav/sgedegerlendirilensinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + this.props.remoteSystem.remoteToken\r\n };\r\n }\r\n })\r\n });\r\n\r\n\r\n this.mainDataGrid.instance.option(\"dataSource\", this.degerlendirilenSinavlarDataSource);\r\n this.mainDataGrid.instance.refresh();\r\n\r\n\r\n }\r\n else {\r\n\r\n this.degerlendirilenSinavlarDataSource = new DataSource(\r\n {\r\n paginate: true,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'merkezisinav/sgedegerlendirilensinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.mainDataGrid.instance.option(\"dataSource\", this.degerlendirilenSinavlarDataSource);\r\n this.mainDataGrid.instance.refresh();\r\n }\r\n\r\n this.setState({\r\n merkeziSinavGoster: !this.state.merkeziSinavGoster\r\n });\r\n\r\n this.ilDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n paginate: false,\r\n store: createStore({\r\n loadUrl: this.getSinavApi() + 'ortak/iller',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = this.getHeaders();\r\n }\r\n })\r\n });\r\n\r\n this.ilceDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.ilfilter,\r\n loadUrl: this.getSinavApi() + 'ortak/ilceler',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = this.getHeaders();\r\n }\r\n })\r\n });\r\n\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadUrl: this.getSinavApi() + 'yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = this.getHeaders();\r\n }\r\n })\r\n });\r\n\r\n //this.selectBoxYayin.instance.option(\"dataSource\", this.yayinDataSource);\r\n this.sinavTuruDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n loadParams: this.yayinfilter,\r\n loadUrl: this.getSinavApi() + 'ortak/GetSinavTurleriByYayinId',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = this.getHeaders();\r\n }\r\n })\r\n });\r\n\r\n this.merkeziSinavDataSource = new DataSource(\r\n {\r\n filter: [\"Degerlendirilebilir\", \"=\", true],\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.sinavTuruFilter,\r\n loadUrl: this.getSinavApi() + 'merkezisinav/sgemerkezisinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = this.getHeaders();\r\n }\r\n })\r\n });\r\n\r\n this.tytMerkeziSinavDataSource = new DataSource(\r\n {\r\n filter: [\"Degerlendirilebilir\", \"=\", true],\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.yayin2filter,\r\n loadUrl: this.getSinavApi() + 'merkezisinav/sgetytmerkezisinavlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = this.getHeaders();\r\n }\r\n })\r\n });\r\n\r\n this.optikFormDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.sinavTuruFilter,\r\n loadUrl: this.getSinavApi() + 'optikform/sgeoptikformlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = this.getHeaders();\r\n }\r\n })\r\n });\r\n this.kurumDataSource = new DataSource(\r\n {\r\n pageSize: 100,\r\n paginate: true,\r\n store: createStore({\r\n loadUrl: this.getSinavApi() + 'kurum/sgekurum',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = this.getHeaders();\r\n }\r\n })\r\n });\r\n }}></Button><br></br><br></br><br></br>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <div id=\"sinavGonderimiformpanel\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.degerlendirilenSinavlarDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onInitialized={this.onInitialized}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n ref={(ref) => this.mainDataGrid = ref}\r\n >\r\n <Editing mode={'popup'} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'ListeKarneId'} caption=\"ListeKarneId\" visible={false} />\r\n <Column dataField={'Sinav_Id'} caption=\"Sınav Id\" visible={false} />\r\n <Column dataField={'Kurum_Id'} caption=\"Kurum Id\" visible={false} />\r\n <Column dataField=\"Yayin_Adi\" caption=\"\"\r\n width={40}\r\n allowFiltering={false}\r\n allowSorting={false}\r\n cellRender={linkRender}\r\n />\r\n <Column dataField=\"Yayin_Adi\" caption=\"\"\r\n width={40}\r\n allowSorting={false}\r\n allowFiltering={false}\r\n cellRender={linkWhatsAppRender}\r\n />\r\n <Column dataField=\"Yayin_Adi\" caption=\"\"\r\n width={40}\r\n allowFiltering={false}\r\n allowSorting={false}\r\n cellRender={linkMailRender}\r\n />\r\n <Column dataField=\"Yayin_Adi\" caption=\"\"\r\n width={40}\r\n allowFiltering={false}\r\n allowSorting={false}\r\n visible={(window.ayarlar.projeturu === \"otomasyon\") ? true : false}\r\n cellRender={linkKayitliOgrenciEslestir}\r\n />\r\n <Column dataField={'Yayin_Adi'} caption=\"Yayın\" />\r\n <Column dataField={'SinavTuru_Adi'} caption=\"Sınav Türü\" />\r\n <Column dataField={'SinavKodu'} caption=\"Sınav Kodu\" />\r\n <Column dataField={'SinavAdi'} caption=\"Sınav Adı\" />\r\n <Column dataField={'Il_Adi'} caption=\"İl\" />\r\n <Column dataField={'Ilce_Adi'} caption=\"İlçe\" />\r\n <Column dataField={'Kurum_Adi'} caption=\"Kurum\" />\r\n <Column dataField={'Katilim'} caption=\"Katılım\" dataType=\"number\" />\r\n\r\n <Column dataField={'Created'} caption=\"Tarih\" dataType=\"date\" sortOrder={\"desc\"} format={\r\n \"dd/MM/yyyy HH:mm:ss\"\r\n } />\r\n <Column dataField={'SinavTxt'} caption=\"Dosya\" dataType=\"string\" visible={false} />\r\n </DataGrid>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Sınavı Değerlendir',\r\n type: 'success',\r\n hint: 'Sınavı Değerlendir',\r\n icon: 'check',\r\n ref: (ref) => { this.buttonDegerlendir = ref },\r\n onInitialized: this.onInitializedButtonDegerlendir\r\n },\r\n onClick: (e) => {\r\n const validateStatus = this.formSinavGonderimi.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n this.buttonDegerlendir.instance().option(\"disabled\", true);\r\n this.formData.BosOgrenciNo = this.bosOgrenciNo;\r\n this.formData.BosKitapcikTuru = this.bosKitapcikTuru;\r\n this.formData.DosyaAdi = this.dosyaAdi;\r\n this.formData.KurumId = this.formData.Kurum.Id;\r\n if (this.formData.MerkeziSinav2.Id === null || this.formData.MerkeziSinav2.Id === undefined) {\r\n this.formData.MerkeziSinav2.Id = 0;\r\n }\r\n if (this.formData.Yayin2.Id === null || this.formData.MerkeziSinav2.Id === undefined) {\r\n this.formData.Yayin2.Id = 0;\r\n }\r\n service.post(this.getSinavApi() + \"SinavGonderimi/SinavGonder\",\r\n this.formData,\r\n {\r\n headers: this.getHeaders()\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n notify(\"Sınavınız değerlendirildi.\", \"success\", 3000);\r\n this.buttonDegerlendir.instance().option(\"disabled\", false);\r\n await this.mainDataGrid.instance.refresh();\r\n await this.gridMainSatirIptal();\r\n await this.setState({\r\n popup: false\r\n });\r\n\r\n }\r\n else {\r\n this.buttonDegerlendir.instance().option(\"disabled\", false);\r\n notify(\"Teknik bir hata oluştu,\" + res.data.ErrorMessage, \"error\", 3000);\r\n }\r\n }).catch(err => {\r\n this.buttonDegerlendir.instance().option(\"disabled\", false);\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n } else {\r\n notify(err, \"error\", 5000);\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-6\">\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormSinavGonderimi} ref={(ref) => this.formSinavGonderimi = ref}\r\n showValidationSummary={true}\r\n >\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Sınav Yükleme Bilgileri\">\r\n <SimpleItem dataField={\"Yayin.Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinDataSource,\r\n keyExpr: \"Id\",\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n showClearButton: true,\r\n onInitialized: this.onInitializedSelectBoxYayin,\r\n ref: (ref) => { this.selectBoxYayin = ref },\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" | e.value === null | e.value === undefined) {\r\n\r\n }\r\n else {\r\n this.yayinfilter.YayinId = e.value;\r\n this.sinavTuruFilter.YayinId = e.value;\r\n this.sinavTuruDataSource.load();\r\n\r\n }\r\n this.kurumDataSource.filter(null);\r\n this.kurumDataSource.load();\r\n this.selectBoxYayin2.instance().option(\"value\", null);\r\n this.selectBoxSinavTuru.instance().option(\"value\", null);\r\n this.selectBoxMerkeziSinav.instance().option(\"value\", null);\r\n this.selectBoxMerkeziSinav2.instance().option(\"value\", null);\r\n //this.selectBoxOptikform.instance().option(\"value\", null);\r\n }\r\n }}>\r\n <Label text=\"Yayın\" />\r\n <RequiredRule message=\"Yayın alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinavTuru.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.sinavTuruDataSource,\r\n displayExpr: \"SinavTuruAdi\",\r\n valueExpr: \"SinavTuru.Id\",\r\n onInitialized: this.onInitializedSelectBoxSinavTuru,\r\n ref: (ref) => { this.selectBoxSinavTuru = ref },\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" | e.value === null) {\r\n return;\r\n }\r\n else {\r\n this.sinavTuruFilter.SinavTuruId = e.value;\r\n if (e.value === 11) {\r\n this.selectBoxMerkeziSinav2.instance().option(\"disabled\", false);\r\n this.selectBoxYayin2.instance().option(\"disabled\", false);\r\n }\r\n else {\r\n this.selectBoxMerkeziSinav2.instance().option(\"disabled\", true);\r\n this.selectBoxYayin2.instance().option(\"disabled\", true);\r\n }\r\n if (this.formData.Yayin !== null && this.formData.SinavTuru !== null) {\r\n this.merkeziSinavDataSource.load();\r\n this.selectBoxYayin2.instance().option(\"value\", null);\r\n this.selectBoxMerkeziSinav.instance().option(\"value\", null);\r\n this.selectBoxMerkeziSinav2.instance().option(\"value\", null);\r\n //this.selectBoxOptikform.instance().option(\"value\", null);\r\n }\r\n this.kurumDataSource.filter(null);\r\n this.kurumDataSource.load();\r\n }\r\n }\r\n }}>\r\n <Label text=\"Sınav Türü\" />\r\n <RequiredRule message=\"Sınav türü alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MerkeziSinav.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.merkeziSinavDataSource,\r\n showClearButton: true,\r\n searchEnabled: true,\r\n searchMode: \"contains\",\r\n searchExpr: [\"Kodu\", \"Adi\"],\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return item.Kodu + \" - \" + item.Adi;\r\n }\r\n },\r\n valueExpr: \"Id\",\r\n itemTemplate: (itemData, itemIndex, itemElement) => {\r\n return \"<div style='color:\" + itemData.Renk + \"'>\" + itemData.Kodu + \"-\" + itemData.Adi + \"</div>\";\r\n },\r\n onInitialized: this.onInitializedSelectBoxMerkeziSinav,\r\n ref: (ref) => { this.selectBoxMerkeziSinav = ref },\r\n onValueChanged: (e) => {\r\n this.kurumDataSource.filter(null);\r\n this.kurumDataSource.load();\r\n this.ogrenciNoVer();\r\n this.getKitapcikTuruVer();\r\n this.merkeziSinavId = e.value;\r\n\r\n this.fileUploadTxt.instance().option(\"uploadUrl\", this.getSinavApi() + \"sinavgonderimi/TxtUpload?MerkeziSinavId=\" + this.merkeziSinavId + \"&KurumId=\" + e.value);\r\n\r\n if (this.formData.Yayin !== null && this.formData.SinavTuru !== null) {\r\n this.sinavTuruFilter.MerkeziSinavId = isNaN(this.merkeziSinavId) ? 0 : parseInt(this.merkeziSinavId);\r\n this.merkeziSinavDataSource.load();\r\n this.optikFormDataSource.load();\r\n this.selectBoxYayin2.instance().option(\"value\", null);\r\n this.selectBoxMerkeziSinav2.instance().option(\"value\", null);\r\n this.selectBoxOptikform.instance().option(\"value\", null);\r\n }\r\n }\r\n }}>\r\n <Label text=\"Sınav\" />\r\n <RequiredRule message=\"Merkez sınav alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"OptikForm.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.optikFormDataSource,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n searchEnabled: true,\r\n showClearButton: true,\r\n onInitialized: this.onInitializedSelectBoxOptikform,\r\n ref: (ref) => { this.selectBoxOptikform = ref },\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" | e.value === null)\r\n return;\r\n else {\r\n this.sinavTuru = e.component.option('selectedItem');\r\n }\r\n }\r\n }}>\r\n <Label text=\"Optik Form\" />\r\n <RequiredRule message=\"Optik form alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Yayin2.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinDataSource,\r\n remoteOperations: true,\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n disabled: true,\r\n onInitialized: this.onInitializedSelectBoxYayin2,\r\n ref: (ref) => { this.selectBoxYayin2 = ref },\r\n onValueChanged: (e) => {\r\n if (e.value !== null) {\r\n this.yayin2filter.YayinId = e.value;\r\n this.tytMerkeziSinavDataSource.load();\r\n }\r\n }\r\n }}>\r\n <Label text=\"Yayın\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MerkeziSinav2.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.tytMerkeziSinavDataSource,\r\n remoteOperations: true,\r\n searchEnabled: true,\r\n searchMode: \"contains\",\r\n searchExpr: [\"Kodu\", \"Adi\"],\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return item.Kodu + \" - \" + item.Adi;\r\n }\r\n },\r\n itemTemplate: (itemData, itemIndex, itemElement) => {\r\n return \"<div style='color:\" + itemData.Renk + \"'>\" + itemData.Kodu + \"-\" + itemData.Adi + \"</div>\";\r\n },\r\n disabled: true,\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxMerkeziSinav2,\r\n ref: (ref) => { this.selectBoxMerkeziSinav2 = ref },\r\n }}>\r\n <Label text=\"TYT Sınav\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Kurum.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.kurumDataSource,\r\n pageSize: 100,\r\n remoteOperations: true,\r\n searchMode: \"contains\",\r\n searchExpr: [\"KurumAdi\", \"KurumEmail\", \"KurumKodu\"],\r\n searchEnabled: true,\r\n displayExpr: (item) => {\r\n if (!item) {\r\n return \"\";\r\n }\r\n else {\r\n return item.KurumAdi + \" - \" + item.ilAdi + \" - \" + item.ilceAdi;\r\n }\r\n },\r\n showClearButton: true,\r\n valueExpr: \"Id\",\r\n onValueChanged: (e) => {\r\n if (e.value === 0) {\r\n this.formDataKurum = {\r\n Id: 0,\r\n Il: { Id: 0 },\r\n Ilce: { Id: 0 },\r\n KurumKodu: 1,\r\n KurumEmail: null,\r\n KurumAdi: null,\r\n Logo: null,\r\n Gsm: null\r\n }\r\n this.setState({\r\n secilenMerkeziSinavId: this.merkeziSinavId,\r\n popupKurum: true\r\n });\r\n }\r\n else {\r\n this.fileUploadTxt.instance().option(\"uploadUrl\", this.getSinavApi() + \"sinavgonderimi/TxtUpload?MerkeziSinavId=\" + this.merkeziSinavId + \"&KurumId=\" + e.value);\r\n }\r\n\r\n },\r\n onInitialized: this.onInitializedSelectBoxKurumId,\r\n ref: (ref) => { this.selectBoxKurumId = ref }\r\n }} isRequired={true}>\r\n <Label text=\"Kurum Seçiniz\" />\r\n <RequiredRule message=\"Kurum alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"VeriSilme\"}\r\n editorType=\"dxCheckBox\">\r\n <Label text=\"Yüklü sınav verilerini silme\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: this.getSinavApi() + \"sinavgonderimi/TxtUpload?MerkeziSinavId=\" + this.state.secilenMerkeziSinavId + \"&KurumId=\" + this.state.secilenKurumId,\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.getHeaders(),\r\n accept: '*',\r\n maxFileSize: 4000000,\r\n name: 'myFile',\r\n onValueChanged: this.onFileSelected,\r\n onUploaded: this.onUploaded,\r\n onInitialized: this.onInitializedFileUploadTxt,\r\n ref: (ref) => { this.fileUploadTxt = ref },\r\n }}>\r\n <Label text=\"Txt dosyasını seçiniz\" />\r\n </SimpleItem>\r\n <SimpleItem>\r\n <div id=\"spnYuklenenDosya\" className=\"col-md-6\">\r\n\r\n </div>\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Sınav Yükleme Hakkında\">\r\n <p style={{ fontWeight: \"bold\" }}>\r\n TYT-AYT sınavları öğrenci numarası alanı ile birleştirilmektedir.\r\n </p>\r\n <p style={{ fontWeight: \"bold\" }}>\r\n İki oturumlu LGS sınavları öğrenci numarası ve adı soyadı ile birleştirilmektedir.\r\n </p>\r\n <p style={{ fontWeight: \"bold\" }}>\r\n Sözel ve Sayısal oturumlarında öğrenci numarası veya adı soyadı kodlanmalıdır.\r\n </p>\r\n <p style={{ fontWeight: \"bold\" }}>\r\n İki oturumlu LGS sınavlarında Sözel ve Sayısal datalar tek dosya şeklinde ve çift optik form seçilerek yüklenmelidir.\r\n </p>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n\r\n </div>\r\n\r\n </ScrollView>\r\n </Popup>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} ref={(ref) => this.popupKurumForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupGizleKurum} visible={this.state.popupKurum} height={function () {\r\n return window.innerHeight / 1;\r\n }} width={function () {\r\n return window.innerWidth / 1;\r\n }\r\n }\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Yeni Kurumu Kaydet', type: 'success', hint: 'Yeni Kurumu Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n const validateStatus = this.formKurum.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n service.post(sinavApi + 'kurum/KurumKaydet',\r\n this.formDataKurum,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n this.kurumDataSource.load().done(() => {\r\n this.kurumDataSource.filter(\"Id\", \"=\", res.data.Data.Id);\r\n this.kurumDataSource.load().done(() => {\r\n this.selectBoxKurumId.instance().option(\"value\", res.data.Data.Id);\r\n this.fileUploadTxt.instance().option(\"uploadUrl\", this.getSinavApi() + \"sinavgonderimi/TxtUpload?MerkeziSinavId=\" + this.merkeziSinavId + \"&KurumId=\" + res.data.Data.Id);\r\n this.kurumDataSource.filter(null);\r\n this.selectBoxKurumId.instance().option(\"dataSource\", this.kurumDataSource);\r\n this.setState({\r\n secilenMerkeziSinavId: this.merkeziSinavId,\r\n secilenKurumId: res.data.Data.Id,\r\n popupKurum: false\r\n });\r\n })\r\n\r\n });\r\n\r\n\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n }).catch(err => {\r\n notify(err, 'error', 5000);\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizleKurum(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formDataKurum} onInitialized={this.onInitializedFormKurum} ref={(ref) => this.formKurum = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Kurum Bilgileri\">\r\n <SimpleItem dataField={\"KurumTuruId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.kurumTurleri,\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onValueChanged: (e) => {\r\n this.formDataKurum.KurumTuruId = e.value;\r\n }\r\n }}>\r\n <Label text=\"Tür\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Il.Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.ilDataSource,\r\n searchEnabled: false,\r\n remoteOperations: { filtering: false },\r\n disabled: this.state.disabled,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxIl,\r\n ref: (ref) => { this.selectBoxIl = ref },\r\n onValueChanged: (e) => {\r\n this.ilfilter.IlId = e.value;\r\n this.ilceDataSource.load();\r\n this.selectBoxIlce.instance().option(\"value\", null);\r\n }\r\n }}>\r\n <RequiredRule message=\"İl alanı gerekli\" />\r\n <Label text=\"İl\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Ilce.Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.ilceDataSource,\r\n remoteOperations: { filtering: false },\r\n searchEnabled: false,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxIlce,\r\n ref: (ref) => { this.selectBoxIlce = ref },\r\n onValueChanged: (e) => {\r\n\r\n }\r\n }}\r\n >\r\n <RequiredRule message=\"İlçe alanı gerekli\" />\r\n <Label text=\"İlçe\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KurumAdi\"} isRequired={true}>\r\n <Label text=\"Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KurumEmail\"} isRequired={true}>\r\n <Label text=\"Email\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Gsm\"} isRequired={true}\r\n editorType=\"dxTextBox\"\r\n editorOptions={{\r\n mask: \"(000) 000-0000\"\r\n }}>\r\n <Label text=\"Gsm\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Kurum Kodu Bilgileri\">\r\n <SimpleItem dataField={\"KurumKodu\"} isRequired={true}\r\n editorType=\"dxNumberBox\"\r\n editorOptions={{\r\n onInitialized: this.onInitializedNumberBoxKurumKodu,\r\n ref: (ref) => { this.numberBoxKurumKodu = ref },\r\n disabled: false\r\n }}>\r\n <Label text=\"Kodu\" />\r\n </SimpleItem>\r\n <SimpleItem editorType=\"dxButton\"\r\n editorOptions={{\r\n location: \"after\",\r\n name: \"txtKurumKodu\",\r\n icon: \"check\",\r\n type: \"default\",\r\n text: \"Kurum Kodu Ver\",\r\n disabled: false,\r\n onClick: () => {\r\n service.get(sinavApi + \"kurum/kurumKoduUret\", {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.numberBoxKurumKodu.instance().option(\"value\", res.data.Data);\r\n this.formDataKurum.KurumKodu = res.data.Data;\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n }}>\r\n\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Kurum Logosu(Logolu liste ve karne için)\">\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: this.getSinavApi() + \"kurum/KurumLogoUpload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.getHeaders(),\r\n accept: '*',\r\n maxFileSize: 4000000,\r\n name: 'myFile',\r\n onUploaded: this.onUploadedKurumLogo,\r\n\r\n }}>\r\n <Label text=\"Logo seçiniz\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\nexport default connect(mapStateToProps, mapDispatchToProps)(SinavGonderimi);\r\n\r\nfunction linkRender(data) {\r\n if (data === null)\r\n return <p></p>;\r\n else if (data.data.Dosya === undefined || data.data.Dosya === null || data.data.Dosya === \"\") {\r\n return <p></p>;\r\n }\r\n else {\r\n return <a rel=\"noopener noreferrer\" href={data.data.Dosya} target=\"_blank\">\r\n <img src=\"/icons/download.png\" alt=\"Excel Kurum Liste İndir\" /></a>;\r\n }\r\n}\r\n\r\nfunction linkMailRender(data) {\r\n if (data === null)\r\n return <p></p>;\r\n else if (data.data.KurumEmail === undefined || data.data.KurumEmail === null || data.data.KurumEmail === \"\") {\r\n return <img src=\"/icons/mailing.png\" alt=\"Mail Gönder\" style={{ cursor: \"pointer\" }} onClick={() => {\r\n alert(\"Bu kuruma ait tanımlı mail adresi olmadığından mail gönderme işlemi yapılamıyor.<br/> Kurumlar sayfasından mail tanımlaması yapabilirsiniz.\");\r\n }} />;\r\n }\r\n else {\r\n return <img src=\"/icons/mailing.png\" alt=\"Mail Gönder\" style={{ cursor: \"pointer\" }} onClick={() => {\r\n service.get(karneApi + \"hizlirapor/MailGonder/\" + data.data.ListeKarneId,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(res.data.Data, \"success\", 5000);\r\n }\r\n else\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n })\r\n .catch(error => {\r\n notify(\"Teknik bir hata oluştuğundan dolayı mailiniz gönderilemedi.\", \"error\", 5000);\r\n });\r\n }} />;\r\n }\r\n}\r\n\r\nfunction linkWhatsAppRender(data) {\r\n if (data === null)\r\n return <p></p>;\r\n else if (data.data.Gsm === undefined || data.data.Gsm === null || data.data.Gsm === \"\") {\r\n return <img src=\"/icons/whatsapp.png\" alt=\"Whatspp da paylaş\" onClick={() => {\r\n alert(\"Bu kuruma ait tanımlı cep telefonu olmadığından paylaşım yapılamıyor.<br/> Kurumlar sayfasından cep telefonu ekleyebilirsiniz.\");\r\n }} />;\r\n }\r\n else {\r\n return <a rel=\"noopener noreferrer\"\r\n href={\"https://api.whatsapp.com/send?phone= +90\" + data.data.Gsm + \"&text=\" + data.data.SinavAdi + \" \" + data.data.Dosya}\r\n target=\"_blank\"\r\n data-action=\"share/whatsapp/share\" style={{ cursor: \"pointer\" }}>\r\n <img src=\"/icons/whatsapp.png\" alt=\"Excel Kurum Liste İndir\" /></a>;\r\n }\r\n}\r\n\r\nfunction linkKayitliOgrenciEslestir(data) {\r\n if (data === null)\r\n return <p></p>;\r\n else {\r\n return <img src=\"/icons/equal.png\" alt=\"Kayıtlı Öğrenciler ile Eşleştir\" style={{ cursor: \"pointer\" }} onClick={\r\n () => {\r\n var postData = {\r\n SinavId: data.row.data.Sinav_Id,\r\n KurumId: data.row.data.Kurum_Id\r\n };\r\n service.post(otomasyonApi + \"entegrasyon/ogrencieslestir\", postData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Öğrenci bilgileri eşleştirildi\", \"success\", 5000);\r\n }\r\n else\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n })\r\n .catch(error => {\r\n notify(\"Teknik bir hata oluştuğundan dolayı öğrenci bilgileri güncellenemedi.\", \"error\", 5000);\r\n });\r\n }} />;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { sinavApi } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label, RequiredRule } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nexport default class KurumEkle extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popup: false,\r\n disabled: true,\r\n kodVerDisabled: false\r\n };\r\n this.gridMain = null;\r\n this.selectBoxIl = null;\r\n this.selectBoxIlce = null;\r\n this.numberBoxKurumKodu = null;\r\n this.formKurum = null;\r\n this.popupForm = null;\r\n this.satir = null;\r\n\r\n this.kurumTurleri = [\r\n { Id: 0, Adi: \"Seçiniz\" },\r\n { Id: 1, Adi: \"İlkokul\" },\r\n { Id: 2, Adi: \"Ortaokul\" },\r\n { Id: 3, Adi: \"Lise\" },\r\n { Id: 4, Adi: \"Etüt Merkezi\" },\r\n { Id: 5, Adi: \"Özel Öğretim Kurs Merkezi\" },\r\n { Id: 6, Adi: \"Halk Eğitim Merkezi\" },\r\n { Id: 7, Adi: \"İlçe Milli Eğitim Müdürlüğü\" },\r\n { Id: 8, Adi: \"İl Milli Eğitim Müdürlüğü\" },\r\n { Id: 9, Adi: \"Kişisel Gelişim Kursu\" },\r\n { Id: 10, Adi: \"Diğer\" },\r\n ];\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onInitializedGridMain = this.onInitializedGridMain.bind(this);\r\n this.onInitializedSelectBoxIl = this.onInitializedSelectBoxIl.bind(this);\r\n this.onInitializedSelectBoxIlce = this.onInitializedSelectBoxIlce.bind(this);\r\n this.onInitializedFormKurum = this.onInitializedFormKurum.bind(this);\r\n this.onInitializedNumberBoxKurumKodu = this.onInitializedNumberBoxKurumKodu.bind(this);\r\n this.onInitializedPopup = this.onInitializedPopup.bind(this);\r\n this.yeniEkleClick = this.yeniEkleClick.bind(this);\r\n this.duzenleClick = this.duzenleClick.bind(this);\r\n this.aktifYapClick = this.aktifYapClick.bind(this);\r\n this.pasifYapClick = this.pasifYapClick.bind(this);\r\n this.silClick = this.silClick.bind(this);\r\n this.headers = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n this.popupGizle = () => {\r\n\r\n this.gridMainSatirIptal();\r\n this.setState({ popup: false, kodVerDisabled: false });\r\n\r\n };\r\n this.formData = {\r\n Il: { Id: 0 },\r\n Ilce: { Id: 0 },\r\n KurumKodu: 1,\r\n KurumEmail: null,\r\n KurumAdi: null,\r\n Logo: null,\r\n Gsm: null\r\n }\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.kurumDataSource = new DataSource(\r\n {\r\n paginate: true,\r\n pageSize: 10,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kurum/kurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.ilDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n paginate: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'ortak/iller',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.ilfilter = { IlId: 0 };\r\n this.ilceDataSource = new DataSource(\r\n {\r\n cacheRawData: false,\r\n paginate: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.ilfilter,\r\n loadUrl: sinavApi + 'ortak/ilceler',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n\r\n //#region grid fonksiyonları\r\n\r\n onInitializedGridMain(e) {\r\n this.gridMain = e.component;\r\n }\r\n\r\n onInitializedSelectBoxIl(e) {\r\n this.selectBoxIl = e.component;\r\n }\r\n\r\n onInitializedSelectBoxIlce(e) {\r\n this.selectBoxIlce = e.component;\r\n }\r\n\r\n onInitializedNumberBoxKurumKodu(e) {\r\n this.numberBoxKurumKodu = e.component;\r\n }\r\n\r\n onInitializedFormKurum(e) {\r\n this.formKurum = e.component;\r\n }\r\n\r\n onInitializedPopup(e) {\r\n this.popupForm = e.component;\r\n }\r\n\r\n onUploaded(e) {\r\n var res = JSON.parse(e.request.response);\r\n if (!res.Result.Value.Success) {\r\n notify(\"Logonuz yüklenemedi,\" + res.Result.Value.ErrorMessage, \"error\", 5000);\r\n e.component.reset();\r\n }\r\n else {\r\n notify(\"Logonuz yüklendi\", \"success\", 5000);\r\n this.formData.Logo = res.Result.Value.Data;\r\n e.component.reset();\r\n }\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Yeni',\r\n icon: 'add',\r\n onClick: this.yeniEkleClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Düzenle',\r\n icon: 'edit',\r\n onClick: this.duzenleClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger',\r\n hint: 'Kurum logosu sil',\r\n icon: 'image',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Doküman\" | Globals.service.Rol === \"Bayi\" | Globals.service.Rol === \"Kurum\" | Globals.service.Rol === \"AltBayi\") {\r\n alert(\"Bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kurum logosunu silmek istiyorsunuz, emin misiniz?</i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(sinavApi + \"kurum/kurumLogoSil/\" + this.satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger',\r\n hint: 'Sil',\r\n icon: 'trash',\r\n onClick: this.silClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n onClick: this.pasifYapClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n onClick: this.aktifYapClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.kurumDataSource.load().done(() => {\r\n this.gridMain.instance.refresh();\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n gridMainSatirIptal() {\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region toolbar fonksiyonları\r\n\r\n yeniEkleClick() {\r\n\r\n this.formData = {\r\n Il: { Id: 0 },\r\n Ilce: { Id: 0 },\r\n KurumKodu: 1,\r\n KurumEmail: null,\r\n KurumAdi: null,\r\n Logo: null,\r\n Gsm: null\r\n }\r\n\r\n this.setState({\r\n disabled: false,\r\n popup: true\r\n });\r\n\r\n }\r\n\r\n duzenleClick() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.formData = {\r\n Id: satir.Id,\r\n Il: { Id: satir.Il.Id },\r\n Ilce: { Id: satir.Ilce.Id },\r\n KurumTuruId: satir.KurumTuruId,\r\n KurumKodu: satir.KurumKodu,\r\n KurumEmail: satir.KurumEmail,\r\n KurumAdi: satir.KurumAdi,\r\n Logo: satir.Logo,\r\n Gsm: satir.Gsm,\r\n RowVersion: satir.RowVersion,\r\n Deleted: satir.Deleted\r\n }\r\n this.selectBoxIl.instance().option(\"value\", satir.Il.Id);\r\n this.ilfilter.IlId = satir.Il.Id;\r\n this.ilceDataSource.load().done(() => {\r\n this.selectBoxIlce.instance().option(\"value\", satir.Ilce.Id);\r\n })\r\n this.setState({\r\n disabled: true,\r\n kodVerDisabled: true,\r\n popup: true\r\n });\r\n }\r\n }\r\n\r\n aktifYapClick() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Doküman\" | Globals.service.Rol === \"Bayi\" | Globals.service.Rol === \"Kurum\" | Globals.service.Rol === \"AltBayi\") {\r\n alert(\"Bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n this.setState({\r\n kodVerDisabled: false\r\n });\r\n service.post(sinavApi + 'kurum/AktifYap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n pasifYapClick() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Doküman\" | Globals.service.Rol === \"Bayi\" | Globals.service.Rol === \"Kurum\" | Globals.service.Rol === \"AltBayi\") {\r\n alert(\"Bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n service.post(sinavApi + 'kurum/PasifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n silClick() {\r\n //const satir = this.mainDataGrid.instance.option('dataSource')[this.mainDataGrid.instance.option('focusedRowIndex')];\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n if (Globals.service.Rol === \"Rapor\" | Globals.service.Rol === \"Doküman\" | Globals.service.Rol === \"Kurum\" | Globals.service.Rol === \"AltBayi\") {\r\n alert(\"Bu işlem için yetkiniz yok\");\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(sinavApi + \"kurum/kurumSil/\" + satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n //#endregion\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Sınav İşlemleri>>Kurumlar\"}</h4>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.kurumDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onInitialized={this.onInitializedGridMain}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Export enabled={true} fileName={'Yayinlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={true} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" visible={false} />\r\n <Column dataField={'ilAdi'} caption=\"İl\" dataType=\"string\" />\r\n <Column dataField={'ilceAdi'} caption=\"İlçe\" dataType=\"string\" />\r\n <Column dataField={'KurumKodu'} caption=\"Kodu\" allowSearch={false} />\r\n <Column dataField={'KurumAdi'} caption=\"Adı\" dataType=\"string\" allowSearch={false} />\r\n\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} ref={(ref) => this.popupForm = ref} onInitialized={this.onInitializedPopup}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n const validateStatus = this.formKurum.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n\r\n service.post(sinavApi + 'kurum/KurumKaydet',\r\n this.formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.popupGizle();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormKurum} ref={(ref) => this.formKurum = ref}\r\n showValidationSummary={true}\r\n >\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Kurum Bilgileri\">\r\n <SimpleItem dataField={\"KurumTuruId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.kurumTurleri,\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onValueChanged: (e) => {\r\n this.formData.KurumTuruId = e.value;\r\n }\r\n }}>\r\n <Label text=\"Tür\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Il.Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.ilDataSource,\r\n searchEnabled: false,\r\n remoteOperations: { filtering: false },\r\n disabled: this.state.disabled,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxIl,\r\n ref: (ref) => { this.selectBoxIl = ref },\r\n onValueChanged: (e) => {\r\n this.ilfilter.IlId = e.value;\r\n this.ilceDataSource.load();\r\n this.selectBoxIlce.instance().option(\"value\", null);\r\n }\r\n }}>\r\n <RequiredRule message=\"İl alanı gerekli\" />\r\n <Label text=\"İl\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Ilce.Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.ilceDataSource,\r\n remoteOperations: { filtering: false },\r\n disabled: this.state.disabled,\r\n searchEnabled: false,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxIlce,\r\n ref: (ref) => { this.selectBoxIlce = ref },\r\n onValueChanged: (e) => {\r\n\r\n }\r\n }}\r\n >\r\n <RequiredRule message=\"İlçe alanı gerekli\" />\r\n <Label text=\"İlçe\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KurumAdi\"} isRequired={true}\r\n editorType=\"dxTextBox\"\r\n >\r\n <Label text=\"Adı\" />\r\n <RequiredRule message=\"Adı alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KurumEmail\"} isRequired={true}>\r\n <Label text=\"Email\" />\r\n <RequiredRule message=\"Email alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Gsm\"} isRequired={true}\r\n editorType=\"dxTextBox\"\r\n editorOptions={{\r\n mask: \"(000) 000-0000\"\r\n }}>\r\n <Label text=\"Gsm\" />\r\n <RequiredRule message=\"Gsm alanı gerekli\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Kurum Kodu Bilgileri\">\r\n <SimpleItem dataField={\"KurumKodu\"} isRequired={true}\r\n editorType=\"dxNumberBox\"\r\n editorOptions={{\r\n disabled: this.state.disabled,\r\n onInitialized: this.onInitializedNumberBoxKurumKodu,\r\n ref: (ref) => { this.numberBoxKurumKodu = ref },\r\n }}>\r\n <Label text=\"Kodu\" />\r\n\r\n </SimpleItem>\r\n <SimpleItem editorType=\"dxButton\"\r\n editorOptions={{\r\n location: \"after\",\r\n name: \"txtKurumKodu\",\r\n icon: \"check\",\r\n type: \"default\",\r\n text: \"Kurum Kodu Ver\",\r\n disabled: this.state.kodVerDisabled,\r\n onClick: () => {\r\n service.get(sinavApi + \"kurum/kurumKoduUret\", {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.numberBoxKurumKodu.instance().option(\"value\", res.data.Data);\r\n this.formData.KurumKodu = res.data.Data;\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n }}>\r\n\r\n </SimpleItem>\r\n\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Kurum Logosu(Logolu liste ve karne için)\">\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: sinavApi + \"kurum/KurumLogoUpload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n accept: '*',\r\n maxFileSize: 4000000,\r\n name: 'myFile',\r\n onUploaded: this.onUploaded\r\n }}>\r\n <Label text=\"Logo seçiniz\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}","import React, { Component } from 'react';\r\nimport { sinavApi, errorMessage, errorMessageWithKonum } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nexport default class DokumanIslemleri extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popup: false,\r\n secilenYayin: null,\r\n secilenDokuman: null,\r\n secilenDokumanTuru: null,\r\n secilenSinavTuru: null,\r\n secilenMerkeziSinav: null,\r\n yayinlar: [],\r\n sinavTurleri: [],\r\n merkeziSinavlar: [],\r\n dokumanlar: [],\r\n disabled: true,\r\n loadingText: \"Dökümanlar yükleniyor...\",\r\n toolbarDisabled: false\r\n };\r\n this.satir = null;\r\n this.mainDataGrid = null;\r\n this.dokumanTurleri = [\r\n { Id: 1, Adi: \"Fmt\" },\r\n { Id: 2, Adi: \"Cevap Anahtari\" },\r\n { Id: 3, Adi: \"Genel\" }\r\n ];\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onInitialized = this.onInitialized.bind(this);\r\n this.kayitYenile = this.kayitYenile.bind(this);\r\n this.kayitAktifYap = this.kayitAktifYap.bind(this);\r\n this.kayitPasifYap = this.kayitPasifYap.bind(this);\r\n this.kayitYeni = this.kayitYeni.bind(this);\r\n this.kayitDuzenle = this.kayitDuzenle.bind(this);\r\n this.kayitSil = this.kayitSil.bind(this);\r\n this.headers = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n this.popupGizle = () => {\r\n this.setState({ popup: false, toolbarDisabled: false });\r\n this.satirIptal();\r\n };\r\n this.popupAc = () => {\r\n this.setState({\r\n popup: true,\r\n toolbarDisabled: true\r\n });\r\n };\r\n this.formData = {\r\n YayinId: 0,\r\n SinavTuruId: 0,\r\n MerkeziSinavId: 0,\r\n DokumanTuru: 0,\r\n Adi: \"\",\r\n Deleted: false,\r\n RowVersion: 0\r\n }\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.kayitYenile();\r\n }\r\n\r\n //#region form fonksiyonları\r\n\r\n onUploaded(e) {\r\n var res = JSON.parse(e.request.response);\r\n if (!res.Success) {\r\n notify(\"Dökümanınız yüklenemedi,\" + res.ErrorMessage, \"error\", 5000);\r\n e.component.reset();\r\n }\r\n else {\r\n notify(\"Dökümanınız yüklendi\", \"success\", 5000);\r\n this.setState({\r\n secilenDokuman: res.Data\r\n });\r\n e.component.reset();\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n //#region servis fonksiyonları\r\n async getDokuman(id) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"dokuman/getDokuman/\" + id,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n secilenDokuman: res.data.Data.Dosya,\r\n secilenDokumanTuru: res.data.Data.DokumanTuru\r\n });\r\n resolve(\"seçilen döküman düzenlenmek için açılıyor...\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessageWithKonum(error, \"döküman satırı\"));\r\n })\r\n });\r\n }\r\n\r\n async getYetkiliYayinlar() {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"yayin/getYayinlarByYetki\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n yayinlar: res.data.Data,\r\n });\r\n resolve(\"yayın bilgileri getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessageWithKonum(error, \"yetkili yayın bilgileri\"));\r\n });\r\n })\r\n }\r\n\r\n async getSinavturleri(yayinId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"dokuman/GetSinavTurleriByYayinId/\" + yayinId, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n sinavTurleri: res.data.Data,\r\n });\r\n resolve(\"sınav türü bilgileri getirildi...\");\r\n } else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n })\r\n .catch(error => {\r\n reject(errorMessageWithKonum(error, \"sınav türleri\"));\r\n })\r\n })\r\n }\r\n\r\n async getMerkeziSinavlar(yayinId, sinavTuruId) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"dokuman/getMerkeziSinavlar/\" + yayinId + \"/\" + sinavTuruId,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n merkeziSinavlar: res.data.Data\r\n });\r\n resolve(\"Sınav bilgileri getirildi\");\r\n } else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n })\r\n .catch(error => {\r\n reject(errorMessageWithKonum(error, \"merkezi sınavlar\"));\r\n })\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region toolbar fonksiyonları \r\n async kayitYeni() {\r\n return await new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"yayin/getYayinlarByYetki\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(resYayin => {\r\n if (resYayin.data.Success) {\r\n this.formData = {\r\n YayinId: 0,\r\n MerkeziSinavId: 0,\r\n SinavTuruId: 0,\r\n Adi: \"\",\r\n Dosya: null,\r\n DokumanTuru: null,\r\n Deleted: false,\r\n RowVersion: 0\r\n };\r\n this.setState({\r\n yayinlar: resYayin.data.Data,\r\n secilenDokumanTuru: null,\r\n secilenDokuman: null,\r\n secilenSinavTuru: null,\r\n secilenYayin: null,\r\n secilenMerkeziSinav: null\r\n });\r\n resolve(\"döküman ekle formu açılıyor...\");\r\n }\r\n else {\r\n notify(resYayin.data.ErrorMessage, \"error\", 5000);\r\n reject(resYayin.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessageWithKonum(error, \"döküman yeni\"));\r\n });\r\n }).then(() => { this.popupAc() })\r\n .catch(error => { alert(error) });\r\n }\r\n\r\n async kayitDuzenle() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let hataMesajlari = \"\";\r\n let isError = false;\r\n await this.getDokuman(satir.Id).then(res => {\r\n })\r\n .catch(error => {\r\n hataMesajlari += error + \"<br/>\";\r\n isError = true;\r\n });\r\n\r\n\r\n await this.getYetkiliYayinlar().then(res => {\r\n }).catch(error => {\r\n hataMesajlari += error + \"<br/>\";\r\n isError = true;\r\n });\r\n\r\n\r\n await this.getSinavturleri(satir.YayinId).then(res => {\r\n }).catch(error => {\r\n hataMesajlari += error + \"<br/>\";\r\n isError = true;\r\n });\r\n\r\n await this.getMerkeziSinavlar(satir.YayinId, satir.SinavTuruId).then(res => {\r\n }).catch(error => {\r\n hataMesajlari += error + \"<br/>\";\r\n isError = true;\r\n });\r\n\r\n this.setState({\r\n loadingText: \"\",\r\n toolbarDisabled: false,\r\n secilenDokuman: satir.Dosya,\r\n secilenDokumanTuru: satir.DokumanTuru,\r\n secilenMerkeziSinav: satir.MerkeziSinavId,\r\n secilenYayin: satir.YayinId,\r\n secilenSinavTuru: satir.SinavTuruId\r\n });\r\n\r\n this.formData = satir;\r\n\r\n if (isError) {\r\n alert(hataMesajlari);\r\n }\r\n else\r\n this.popupAc();\r\n }\r\n }\r\n\r\n async kayitYenile() {\r\n\r\n return await new Promise((resolve, reject) => {\r\n this.setState(\r\n {\r\n loadingText: \"Dökümanlar yükleniyor...\",\r\n toolbarDisabled: true\r\n });\r\n service.get(sinavApi + \"dokuman/getDokumanlar\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n dokumanlar: res.data.Data,\r\n loadingText: \"\",\r\n toolbarDisabled: false\r\n });\r\n resolve(\"dökümanlar getirildi...\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n notify(\"Teknik bir hata oluştu, dökümanlar yüklenemedi\", \"error\", 5000);\r\n reject(errorMessageWithKonum(error, \"döküman bilgileri\"))\r\n })\r\n }).then(res => {\r\n this.setState({\r\n loadingText: \"\",\r\n toolbarDisabled: false\r\n });\r\n this.satirIptal();\r\n }).catch(error => {\r\n alert(error);\r\n this.setState({\r\n loadingText: \"\",\r\n toolbarDisabled: false\r\n });\r\n });\r\n }\r\n\r\n async kayitAktifYap() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n return await new Promise((resolve, reject) => {\r\n this.setState({ toolbarDisabled: true, loadingText: \"Kaydınız aktif hale getiriliyor...\" });\r\n service.post(sinavApi + 'dokuman/AktifYap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n resolve(\"Kaydınız aktif hale getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessage(error));\r\n })\r\n }).then(res => {\r\n this.kayitYenile();\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n }\r\n }\r\n\r\n async kayitPasifYap() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.setState({ toolbarDisabled: true, loadingText: \"Kaydınız pasif hale getiriliyor...\" });\r\n return await new Promise((resolve, reject) => {\r\n service.post(sinavApi + 'dokuman/PasifYap/' + satir.Id,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n resolve(\"Kaydınız pasif hale getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessage(error));\r\n })\r\n }).then(res => {\r\n this.kayitYenile();\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n\r\n }\r\n }\r\n\r\n //await anahtarı confirm kullanıdığı için kabul edilmiyor oyüzden ayrı bir fonksiyon olarak ekledim\r\n async sil(id) {\r\n return await new Promise((resolve, reject) => {\r\n service.post(sinavApi + \"dokuman/dokumanSil/\" + id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n notify(\"Kaydınız silindi.\", 'success', 5000);\r\n resolve(\"Kaydınız silindi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessage(error));\r\n })\r\n }).then(res => {\r\n this.kayitYenile();\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n }\r\n async kayitSil() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.setState({ toolbarDisabled: true, loadingText: \"Kaydınız siliniyor...\" });\r\n this.sil(satir.Id);\r\n\r\n }\r\n else\r\n this.satirIptal();\r\n\r\n });\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n //#region grid fonksiyonları\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Yeni',\r\n icon: 'add',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.kayitYeni\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Düzenle',\r\n icon: 'edit',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.kayitDuzenle\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'remove',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.kayitSil\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.kayitPasifYap\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.kayitAktifYap\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.kayitYenile\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n onInitialized(e) {\r\n this.mainDataGrid = e.component;\r\n }\r\n\r\n //seçilen satırı iptal etmek için kullanıyoruz\r\n async satirIptal() {\r\n this.mainDataGrid.instance.clearSelection();\r\n this.mainDataGrid.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n {this.state.loadingText}\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.state.dokumanlar}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n onInitialized={this.onInitialized}\r\n ref={(ref) => this.mainDataGrid = ref}\r\n >\r\n <Export enabled={true} fileName={'Dökümanlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={true} />\r\n <Column dataField={'YayinId'} caption=\"YayınId\" visible={false} />\r\n <Column dataField={'SinavTuruId'} caption=\"SinavTuruId\" visible={false} />\r\n <Column dataField={'MerkeziSinavId'} caption=\"MerkeziSinavId\" visible={false} />\r\n <Column dataField={'DokumanTuru'} caption=\"DokümanTur\" visible={false} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" />\r\n <Column dataField={'YayinAdi'} caption=\"Yayın\" />\r\n <Column dataField={'SinavTuruAdi'} caption=\"Sınav Turu\" />\r\n <Column dataField={'SinavAdi'} caption=\"Sınav\" />\r\n <Column dataField={'Tur'} caption=\"Doküman Türü\" />\r\n <Column dataField={'Adi'} caption=\"Döküman\" />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <Popup showTitle={true} shading={false} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n\r\n this.formData.Yayin = { Id: this.state.secilenYayin };\r\n this.formData.SinavTuru = { Id: this.state.secilenSinavTuru };\r\n this.formData.MerkeziSinav = { Id: this.state.secilenMerkeziSinav };\r\n this.formData.DokumanTuru = this.state.secilenDokumanTuru;\r\n this.formData.Dosya = this.state.secilenDokuman;\r\n service.post(sinavApi + \"dokuman/dokumanSave\",\r\n this.formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n popup: false\r\n })\r\n this.kayitYenile();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Doküman Bilgileri\">\r\n <SimpleItem dataField={\"DokumanTuru\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.dokumanTurleri,\r\n searchEnabled: true,\r\n value: this.state.secilenDokumanTuru,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onValueChanged: (e) => {\r\n this.setState({\r\n secilenDokumanTuru: e.value\r\n });\r\n if (this.state.secilenDokumanTuru === 2)\r\n this.setState({ disabled: false });\r\n else\r\n this.setState({ disabled: true });\r\n }\r\n }}>\r\n <Label text=\"Döküman Türü\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Adi\"}>\r\n <Label text=\"Adı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"YayinId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.state.yayinlar,\r\n searchEnabled: true,\r\n value: this.state.secilenYayin,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onValueChanged: (e) => {\r\n this.setState({\r\n secilenYayin: e.value\r\n });\r\n service.get(sinavApi + \"dokuman/GetSinavTurleriByYayinId/\" + e.value,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n secilenYayin: e.value,\r\n sinavTurleri: res.data.Data\r\n });\r\n\r\n }\r\n else\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n }\r\n }}>\r\n <Label text=\"Yayın\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Cevap Anahtarı Bilgileri\">\r\n\r\n <SimpleItem dataField={\"SinavTuruId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n items: this.state.sinavTurleri,\r\n searchEnabled: true,\r\n value: this.state.secilenSinavTuru,\r\n displayExpr: \"SinavTuruAdi\",\r\n disabled: this.state.disabled,\r\n valueExpr: \"SinavTuru_Id\",\r\n onValueChanged: (e) => {\r\n if (e.value === \"\" | e.value === null)\r\n return;\r\n else {\r\n this.setState({\r\n secilenSinavTuru: e.value\r\n });\r\n\r\n if (this.state.secilenYayin !== null && this.state.secilenSinavTuru !== null) {\r\n service.get(sinavApi + \"dokuman/getMerkeziSinavlar/\" + this.state.secilenYayin + \"/\" + this.state.secilenSinavTuru,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n merkeziSinavlar: res.data.Data\r\n });\r\n }\r\n else\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n\r\n }\r\n }\r\n }\r\n }}>\r\n <Label text=\"Sınav Türü\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MerkeziSinavId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n items: this.state.merkeziSinavlar,\r\n searchEnabled: true,\r\n value: this.state.secilenMerkeziSinav,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n disabled: this.state.disabled,\r\n onValueChanged: (e) => {\r\n this.setState({\r\n secilenMerkeziSinav: e.value\r\n });\r\n }\r\n }}>\r\n <Label text=\"Sınav\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Dosya Bilgileri\">\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: sinavApi + \"dokuman/DokumanUpload?DokumanTuru=\" + this.state.secilenDokumanTuru,\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n accept: '*',\r\n multiple: true,\r\n maxFileSize: 4000000,\r\n name: 'myFile',\r\n onUploaded: this.onUploaded\r\n }}>\r\n <Label text=\"Döküman dosyasını seçiniz\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { sinavApi, errorMessage, errorMessageWithKonum } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nexport default class DuyuruIslemleri extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n popup: false,\r\n duyurular: [],\r\n yayinlar: [],\r\n disabled: true,\r\n secilenYayin: null,\r\n loadingText: \"\",\r\n toolbarDisabled: false\r\n };\r\n this.satir = null;\r\n this.mainDataGrid = null;\r\n\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onInitialized = this.onInitialized.bind(this);\r\n this.kayitYeni = this.kayitYeni.bind(this);\r\n this.kayitDuzenle = this.kayitDuzenle.bind(this);\r\n this.kayitAktifYap = this.kayitAktifYap.bind(this);\r\n this.kayitPasifYap = this.kayitPasifYap.bind(this);\r\n this.kayitSil = this.kayitSil.bind(this);\r\n this.kayitYenile = this.kayitYenile.bind(this);\r\n this.headers = { 'Authorization': 'Bearer ' + Globals.service.Token };\r\n this.popupGizle = () => {\r\n this.setState({ popup: false, toolbarDisabled: false });\r\n this.satirIptal();\r\n\r\n };\r\n this.popupAc = () => {\r\n this.setState({ popup: true, toolbarDisabled: true });\r\n };\r\n this.formData = {\r\n Id: 0,\r\n Yayin: { Id: 0 },\r\n Tarih: new Date(),\r\n Baslik: \"\",\r\n Aciklama: \"\",\r\n RowVersion: 0,\r\n Deleted: false\r\n };\r\n this.kayitYenile();\r\n }\r\n\r\n //#region form fonksiyonları\r\n //#endregion\r\n\r\n //#region servis fonksiyonları\r\n\r\n getYayinlarByYteki() {\r\n return new Promise((resolve, reject) => {\r\n\r\n service.get(sinavApi + \"yayin/getYayinlarByYetki\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n yayinlar: res.data.Data\r\n });\r\n resolve(\"yayın bilgileri getirildi...\");\r\n } else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessageWithKonum(error, \"yayın bilgileri\"));\r\n })\r\n });\r\n }\r\n\r\n getSatir(id) {\r\n return new Promise((resolve, reject) => {\r\n service.get(sinavApi + \"duyuru/getDuyuru/\" + id,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.formData = {\r\n Id: res.data.Data.Id,\r\n Yayin: { Id: res.data.Data.Yayin.Id },\r\n Tarih: res.data.Data.Tarih,\r\n Baslik: res.data.Data.Baslik,\r\n Aciklama: res.data.Data.Aciklama,\r\n RowVersion: res.data.Data.RowVersion,\r\n Deleted: res.data.Data.Deleted\r\n };\r\n resolve(\"satır bilgisi getirildi...\")\r\n } else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessageWithKonum(error, \"satır bilgisi\"));\r\n })\r\n });\r\n }\r\n //#endregion\r\n\r\n //#region toolbar fonksiyonları\r\n\r\n async kayitYenile() {\r\n this.setState({ loadingText: \"Duyurular yükleniyor...\" });\r\n return await new Promise((resolve, reject) => {\r\n\r\n service.get(sinavApi + \"duyuru/duyurular\",\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n duyurular: res.data.Data,\r\n loadingText: \"\"\r\n });\r\n resolve(\"duyurular getirildi...\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessageWithKonum(error, \"duyuru bilgileri\"));\r\n });\r\n }).then(res => {\r\n this.setState({\r\n loadingText: \"\",\r\n toolbarDisabled: false\r\n });\r\n this.satirIptal();\r\n })\r\n .catch(error => {\r\n alert(error);\r\n });\r\n\r\n }\r\n\r\n async kayitYeni() {\r\n await this.getYayinlarByYteki().then(res => {\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n\r\n return await new Promise((resolve, reject) => {\r\n try {\r\n this.formData = {\r\n Id: 0,\r\n Yayin: { Id: 0 },\r\n Tarih: new Date(),\r\n Baslik: \"\",\r\n Aciklama: \"\",\r\n RowVersion: 0,\r\n Deleted: false\r\n };\r\n resolve(\"Yeni kayıt formu açıldı...\");\r\n } catch (error) {\r\n reject(errorMessageWithKonum(error, \"yeni kayıt ekranı\"));\r\n }\r\n }).then(res => {\r\n this.popupAc();\r\n\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n\r\n }\r\n\r\n async kayitDuzenle() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let hataMesajlari = \"\";\r\n let isError = false;\r\n\r\n await this.getSatir(satir.Id).then(res => {\r\n }).catch(error => {\r\n hataMesajlari += error + \"<br/>\";\r\n isError = true;\r\n });\r\n\r\n await this.getYayinlarByYteki().then(res => {\r\n }).catch(error => {\r\n hataMesajlari += error + \"<br/>\";\r\n isError = true;\r\n });\r\n\r\n if (isError)\r\n alert(hataMesajlari);\r\n else\r\n this.popupAc();\r\n\r\n }\r\n }\r\n\r\n async kayitAktifYap() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.setState({ toolbarDisabled: true, loadingText: \"Kaydınız aktif hale getiriliyor...\" });\r\n return await new Promise((resolve, reject) => {\r\n service.post(sinavApi + 'duyuru/AktifYap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n resolve(\"kaydınız aktif hale getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessage(error));\r\n });\r\n }).then(res => {\r\n this.kayitYenile();\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n }\r\n }\r\n\r\n async kayitPasifYap() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.setState({ toolbarDisabled: true, loadingText: \"Kaydınız pasif hale getiriliyor...\" });\r\n return await new Promise((resolve, reject) => {\r\n service.post(sinavApi + 'duyuru/PasifYap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n resolve(\"kaydınız pasif hale getirildi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessage(error));\r\n });\r\n }).then(res => {\r\n this.kayitYenile();\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n }\r\n }\r\n\r\n //await anahtarı confirm kullanıdığı için kabul edilmiyor oyüzden ayrı bir fonksiyon olarak ekledim\r\n async sil(id) {\r\n return await new Promise((resolve, reject) => {\r\n service.post(sinavApi + \"duyuru/duyuruSil/\" + id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n notify(\"Kaydınız silindi.\", 'success', 5000);\r\n resolve(\"kaydınız silindi.\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n reject(res.data.ErrorMessage);\r\n }\r\n }).catch(error => {\r\n reject(errorMessage(error));\r\n })\r\n }).then(res => {\r\n this.kayitYenile();\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n }\r\n\r\n async kayitSil() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n this.setState({ toolbarDisabled: true, loadingText: \"Kaydınız siliniyor...\" });\r\n this.sil(satir.Id);\r\n }\r\n else\r\n this.satirIptal();\r\n\r\n });\r\n }\r\n }\r\n\r\n //#endregion\r\n\r\n //#region grid fonksiyonları\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Yeni',\r\n icon: 'add',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.kayitYeni\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Düzenle',\r\n icon: 'edit',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.kayitDuzenle\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Sil', icon: 'remove',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.kayitSil\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.kayitPasifYap\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.kayitAktifYap\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: this.kayitYenile\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n disabled: this.state.toolbarDisabled,\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n onInitialized(e) {\r\n this.mainDataGrid = e.component;\r\n }\r\n\r\n //seçilen satırı iptal etmek için kullanıyoruz\r\n async satirIptal() {\r\n this.mainDataGrid.instance.clearSelection();\r\n this.mainDataGrid.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n\r\n //#endregion\r\n\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n {this.state.loadingText}\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.state.duyurular}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n onInitialized={this.onInitialized}\r\n ref={(ref) => this.mainDataGrid = ref}\r\n >\r\n <Export enabled={true} fileName={'Dökümanlar'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={true} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" />\r\n <Column dataField={'Yayin.Id'} caption=\"Yayın Id\" visible={false} />\r\n <Column dataField={'Tarih'} caption=\"Tarih\" visible={true} dataType=\"date\" />\r\n <Column dataField={'YayinAdi'} caption=\"Yayın\" visible={true} />\r\n <Column dataField={'Baslik'} caption=\"Baslik\" visible={true} />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <Popup showTitle={true} shading={false} dragEnabled={true} ref={(ref) => this.popupForm = ref}\r\n close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n onHiding={this.popupGizle} visible={this.state.popup}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n this.formData.Yayin = { Id: this.state.secilenYayin };\r\n service.post(sinavApi + \"duyuru/duyuruKaydet\",\r\n this.formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.kayitYenile();\r\n this.popupGizle();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n }).catch(error => {\r\n alert(error);\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Duyuru Bilgileri\">\r\n <SimpleItem dataField={\"Yayin.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.state.yayinlar,\r\n searchEnabled: true,\r\n value: this.state.secilenYayin,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onValueChanged: (e) => {\r\n this.setState({\r\n secilenYayin: e.value\r\n });\r\n }\r\n }}>\r\n <Label text=\"Yayın\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Baslik\"}>\r\n <Label text=\"Baslik\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tarih\"}>\r\n <Label text=\"Tarih\" />\r\n </SimpleItem>\r\n\r\n <SimpleItem dataField={\"Aciklama\"} editorType=\"dxHtmlEditor\" editorOptions={{\r\n toolbar: {\r\n items: [\r\n \"bold\",\r\n \"italic\",\r\n \"color\",\r\n \"background\",\r\n \"link\",\r\n {\r\n \"formatName\": \"header\",\r\n \"formatValues\": [\r\n 1,\r\n 2,\r\n 3,\r\n false\r\n ]\r\n },\r\n \"variable\",\r\n \"strike\",\r\n \"image\",\r\n \"subscript\",\r\n \"superscript\",\r\n \"underline\",\r\n \"blockquote\",\r\n \"increaseIndent\",\r\n \"decreaseIndent\",\r\n \"orderedList\",\r\n \"bulletList\",\r\n \"alignLeft\",\r\n \"alignCenter\",\r\n \"alignRight\",\r\n \"alignJustify\",\r\n \"codeBlock\",\r\n \"undo\",\r\n \"redo\",\r\n \"clear\",\r\n \"separator\"\r\n ],\r\n multiline: true\r\n },\r\n height: \"400\",\r\n value: this.formData.Aciklama\r\n }\r\n }>\r\n <Label text=\"İçerik\" />\r\n </SimpleItem>\r\n\r\n </GroupItem>\r\n\r\n\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { sinavApi } from '../../Util';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { alert } from 'devextreme/ui/dialog';\r\nimport Form, { SimpleItem, GroupItem, Label } from 'devextreme-react/form';\r\nimport DataGrid, {\r\n Selection, Column, Paging, Pager\r\n} from 'devextreme-react/data-grid';\r\nimport Globals from '../../Globals';\r\nimport service from 'axios';\r\nimport Toolbar, { Item } from 'devextreme-react/toolbar';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\n\r\n\r\n\r\nconst yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'yayin/yayinlarByYetki',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\nconst sinavTuruDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'ortak/sinavturleri',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\nexport default class OgrenciAktarma extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.formData = {\r\n KurumId: 0,\r\n SinifId: 0,\r\n SecilenYayinlar: [],\r\n DosyaAdi: \"\"\r\n }\r\n this.onUploaded = this.onUploaded.bind(this);\r\n this.yayinSecimiChanged = this.yayinSecimiChanged.bind(this);\r\n this.onInitializedYayinGrid = this.onInitializedYayinGrid.bind(this);\r\n this.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n this.saveButtonOptions = {\r\n text: 'Aktarma İşlemini Başlat',\r\n icon: 'check',\r\n hint: 'Aktarma İşlemini Başlat',\r\n type: \"success\",\r\n onClick: () => {\r\n service.post(sinavApi + 'OgrenciVeliAktarma/OgrenciVeliAktar', this.formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n alert(res.data.Data, \"Bilgi\");\r\n }\r\n else\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n })\r\n .catch((error) => {\r\n // Error 😨\r\n notify(\"Teknik bir hata oluştu.formu göndermeden tüm alanları doldurduğunuza emin olunuz,\" + error, 'error', 5000);\r\n });\r\n }\r\n };\r\n this.kurumDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n paginate: true,\r\n pageSize: 10,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kurum/kurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n\r\n onUploaded(e) {\r\n var res = JSON.parse(e.request.response);\r\n if (!res.Success) {\r\n notify(\"Şablon dosyası yüklenemedi,\" + res.ErrorMessage, \"error\", 5000);\r\n e.component.reset();\r\n }\r\n else {\r\n this.formData.DosyaAdi = res.Data;\r\n notify(\"Şablon dosyası yüklendi\", \"success\", 5000);\r\n e.component.reset();\r\n }\r\n }\r\n\r\n yayinSecimiChanged() {\r\n this.formData.SecilenYayinlar = this.dataGridYayin.instance.getSelectedRowsData();\r\n }\r\n\r\n onInitializedYayinGrid(e) {\r\n this.dataGridYayin = e.component;\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"col-md-12\">\r\n <div className=\"row\">\r\n <Form formData={this.formData}>\r\n <GroupItem cssClass=\"first-group\" colCount={2}>\r\n <SimpleItem dataField={\"KurumId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.kurumDataSource,\r\n remoteOperations: true,\r\n searchEnabled: true,\r\n displayExpr: \"KurumAdi\",\r\n showClearButton: true,\r\n valueExpr: \"Id\"\r\n }}>\r\n <Label text=\"Kurum Seçiniz\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinifId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: sinavTuruDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\"\r\n }}>\r\n <Label text=\"Sınav Türü\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem caption=\"Yayın Yetkileri(Bu kısım çok önemli işlem yapmak istediğiniz yayınları seçiniz)\" colCount={1}>\r\n <SimpleItem>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={yayinDataSource}\r\n repaintChangesOnly={true}\r\n columnHidingEnabled={true}\r\n columnAutoWidth={true}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n rowAlternationEnabled={true}\r\n onInitialized={this.onInitializedYayinGrid}\r\n onSelectionChanged={this.yayinSecimiChanged}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n ref={(ref) => this.dataGridYayin = ref}\r\n >\r\n <Paging defaultPageSize={15} />\r\n <Selection mode=\"multiple\"\r\n selectAllMode=\"allPages\"\r\n showCheckBoxesMode=\"onClick\" />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Id\" visible={false} />\r\n <Column dataField={'Adi'} caption=\"Yayın\" />\r\n </DataGrid>\r\n\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"Öğrenci-Veli aktarım şablonunu seçiniz(İşlem bitene kadar bekleyiniz.)\">\r\n <SimpleItem dataField={\"File\"}\r\n editorType=\"dxFileUploader\"\r\n editorOptions={{\r\n uploadUrl: sinavApi + \"ogrenciveliaktarma/OgrenciVeliAktarmaSablonUpload\",\r\n uploadMode: 'instantly',\r\n uploadHeaders: this.headers,\r\n accept: '*',\r\n maxFileSize: 4000000,\r\n name: 'myFile',\r\n onUploaded: this.onUploaded\r\n }}>\r\n <Label text=\"Şablon seçiniz\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n <Toolbar>\r\n <Item location=\"after\"\r\n widget=\"dxButton\"\r\n options={this.saveButtonOptions} />\r\n </Toolbar>\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { karneApi } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport { withRouter } from 'react-router';\r\nimport notify from 'devextreme/ui/notify';\r\nimport DataGrid, {\r\n Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nclass OgrenciSinavSonuclari extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n karneler: [],\r\n listeKarneText: \"Karne Oluştur\",\r\n listeKarneDisabled: false\r\n };\r\n this.satir = null;\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.listeVeKarneClick = this.listeVeKarneClick.bind(this);\r\n //this.sinavSil = this.sinavSil.bind(this);\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: this.state.listeKarneText, icon: 'exportpdf',\r\n text: this.state.listeKarneText,\r\n disabled: this.state.listeKarneDisabled,\r\n onClick: this.listeVeKarneClick\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n text: \"Yenile\",\r\n onClick: (e) => {\r\n this.refreshData();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n onClick: (e) => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n listeVeKarneClick() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.setState({\r\n listeKarneText: \"!Bekleyiniz\",\r\n listeKarneDisabled: true\r\n });\r\n service.get(karneApi + \"ogrenci/GetKarne/\" + satir.KullaniciId + \"/\" + satir.Id)\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n listeKarneText: \"Karne Oluştur\",\r\n listeKarneDisabled: false\r\n });\r\n this.refreshData();\r\n }\r\n else {\r\n this.setState({\r\n listeKarneText: \"Karne Oluştur\",\r\n listeKarneDisabled: false\r\n });\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(error => {\r\n this.setState({\r\n listeKarneText: \"Karne Oluştur\",\r\n listeKarneDisabled: false\r\n });\r\n notify(\"Teknik bir hata oluştu,lütfen daha sonra tekrar deneyiniz\", \"error\", 5000);\r\n });\r\n }\r\n }\r\n\r\n sinavSil() {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Sınav verilerini silmek istiyorsunuz, emin misiniz?</i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(karneApi + \"ogrenci/OgrenciKarneSil/\" + satir.ListeKarneId,\r\n null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.refreshData();\r\n }\r\n else\r\n notify(\"Teknik bir hata oluştu:Hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n async refreshData() {\r\n service.get(karneApi + \"ogrenci/getKarneler/\" + Globals.service.Id, null)\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n karneler: res.data.Data\r\n })\r\n }\r\n else\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n });\r\n }\r\n\r\n async componentDidMount() {\r\n this.refreshData();\r\n }\r\n\r\n render() {\r\n return (\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.state.karneler}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n paging={{\r\n pageSize: 20\r\n }}\r\n pager={{\r\n showPageSizeSelector: true,\r\n allowedPageSizes: [5, 10, 50, 75, 100],\r\n showInfo: true\r\n }}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n ref={(ref) => this.mainDataGrid = ref}\r\n >\r\n <Export enabled={true} fileName={'Karneler'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField=\"Yayin_Adi\" caption=\"\"\r\n width={40}\r\n allowSorting={false}\r\n cellRender={linkRender}\r\n />\r\n <Column dataField={'KullaniciId'} caption=\"KullaniciId\" visible={false} />\r\n <Column dataField={'ListeKarneId'} caption=\"ListeKarneId\" visible={false} />\r\n <Column dataField={'Kurum_Id'} caption=\"KurumId\" visible={false} />\r\n <Column dataField={'Yayin_Adi'} caption=\"Yayın\" />\r\n <Column dataField={'SinavTuru'} caption=\"Sınav Türü\" />\r\n <Column dataField={'SinavKodu'} caption=\"Sınav Kodu\" />\r\n <Column dataField={'SinavAdi'} caption=\"Sınav Adı\" />\r\n <Column dataField={'Il_Adi'} caption=\"İl\" />\r\n <Column dataField={'Ilce_Adi'} caption=\"İlçe\" />\r\n <Column dataField={'Kurum_Adi'} caption=\"Kurum\" />\r\n <Column dataField={'Created'} caption=\"Tarih\" dataType=\"date\" format={\r\n \"dd/MM/yyyy HH:mm:ss\"\r\n } />\r\n <Column dataField={'DosyaTuru'} caption=\"DosyaTuru\" visible={false} />\r\n <Column dataField={'Dosya'} caption=\"Dosya\" visible={false} />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n );\r\n }\r\n}\r\nfunction linkRender(data) {\r\n if (data === null)\r\n return <p></p>;\r\n else if (data.data.Dosya === undefined || data.data.Dosya === null || data.data.Dosya === \"\") {\r\n return <p></p>;\r\n }\r\n else {\r\n return <a rel=\"noopener noreferrer\" href={data.data.Dosya} target=\"_blank\">\r\n <img src=\"/icons/download.png\" alt=\"Excel Kurum Liste İndir\" /></a>;\r\n }\r\n}\r\nexport default withRouter(OgrenciSinavSonuclari);","import React from 'react';\r\nimport { otomasyonApi } from '../../../Util';\r\nimport Globals from '../../../Globals';\r\nimport DataGrid, {\r\n Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel\r\n} from 'devextreme-react/data-grid';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nexport default class KurumToplamTaksitRaporu extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.mainDataSource = new DataSource(\r\n {\r\n paginate: true,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'dashboard/listkurumtoplamtaksittahsilatraporu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Rapor İşlemleri>>Kurum Toplam Taksit Raporu\"}</h4>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.mainDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onInitialized={this.onInitialized}\r\n onSelectionChanged={this.onSelectionChanged}\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Export enabled={true} fileName={'KurumToplamTaksitTahsilatRaporu'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'OgrenciNo'} caption=\"Öğrenci No\" />\r\n <Column dataField={'AdiSoyadi'} caption=\"Adı Soyadı\" />\r\n <Column dataField={'VeliAdSoyad'} caption=\"Velisi\" />\r\n <Column dataField={'VeliCepTelefonu'} caption=\"V. Cep Telefonu\" />\r\n <Column dataField={'CepTelefonu'} caption=\"Cep Telefonu\" />\r\n <Column dataField={'ToplamOdenecek'} caption=\"T. Ödenecek\" dataType=\"number\" format={\"#,##0.##\"} />\r\n <Column dataField={'ToplamOdenen'} caption=\"T. Ödenen\" dataType=\"number\" format={\"#,##0.##\"} />\r\n <Column dataField={'ToplamKalan'} caption=\"T. Kalan\" dataType=\"number\" format={\"#,##0.##\"} />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { otomasyonApi } from '../../../Util';\r\nimport Globals from '../../../Globals';\r\nimport DataGrid, {\r\n Export, ColumnChooser, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Sorting\r\n} from 'devextreme-react/data-grid';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport service from 'axios';\r\nimport notify from 'devextreme/ui/notify';\r\nimport DateBox from 'devextreme-react/date-box';\r\nexport default class KurumTaksitTahsilatRaporu extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n toolbarDisabled: false,\r\n baslangicTarihi: new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDay(), 0, 0, 0, 0),\r\n bitisTarihi: new Date(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDay() + 1, 23, 59, 59, 0)\r\n };\r\n this.mainDataSource = new DataSource(\r\n {\r\n filter: [[\"Tarih\", \">=\", this.state.baslangicTarihi], \"and\", [\"Tarih\", \"<=\", this.state.bitisTarihi]],\r\n paginate: true,\r\n pageSize: 100,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'dashboard/listkurumtaksittahsilatraporu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n render() {\r\n return (\r\n\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Rapor İşlemleri>>Kurum Taksit Tahsilat Raporu\"}</h4>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n Başlangıç Tarihi\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"5px\" }}>\r\n\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-6\">\r\n <DateBox defaultValue={this.state.baslangicTarihi}\r\n type=\"datetime\"\r\n onValueChanged={(e) => {\r\n this.setState({\r\n baslangicTarihi: e.value\r\n })\r\n }} />\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"5px\" }}>\r\n\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n Bitiş Tarihi\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"5px\" }}>\r\n\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-6\">\r\n <DateBox defaultValue={this.state.bitisTarihi}\r\n type=\"datetime\"\r\n onValueChanged={(e) => {\r\n this.setState({\r\n bitisTarihi: e.value\r\n });\r\n this.mainDataSource.filter([[\"Tarih\", \">=\", this.state.baslangicTarihi], \"and\", [\"Tarih\", \"<=\", this.state.bitisTarihi]]);\r\n this.mainDataSource.load();\r\n this.gridMain.instance.refresh();\r\n }} />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n\r\n\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.mainDataSource}\r\n remoteOperations={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n disabled: this.state.toolbarDisabled,\r\n options: {\r\n icon: \"email\",\r\n type: \"success\",\r\n text: \"Taksit Hatırlat\",\r\n onClick: () => {\r\n this.setState({\r\n toolbarDisabled: true\r\n });\r\n var basTarih = new Date(this.state.baslangicTarihi);\r\n basTarih.setHours(basTarih.getHours() + 3);\r\n var bitTarih = new Date(this.state.bitisTarihi);\r\n bitTarih.setHours(bitTarih.getHours() + 3);\r\n this.dateFilter = {\r\n Tarih1: basTarih,\r\n Tarih2: bitTarih\r\n }\r\n service.post(otomasyonApi + \"sms/posttaksithatirlatmasmsgonder\", this.dateFilter,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n notify(res.data.Data, \"success\", 5000);\r\n }\r\n else {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n visible: Globals.service.Rol === \"SubeOgretmen\" ? false : true,\r\n disabled: this.state.toolbarDisabled,\r\n options: {\r\n icon: \"email\",\r\n type: \"success\",\r\n text: \"Gecikmiş Taksitleri Hatırlat\",\r\n onClick: () => {\r\n this.setState({\r\n toolbarDisabled: true\r\n });\r\n var basTarih = new Date(this.state.baslangicTarihi);\r\n basTarih.setHours(basTarih.getHours() + 3);\r\n var bitTarih = new Date(this.state.bitisTarihi);\r\n bitTarih.setHours(bitTarih.getHours() + 3);\r\n this.dateFilter = {\r\n Tarih1: basTarih,\r\n Tarih2: bitTarih\r\n }\r\n service.post(otomasyonApi + \"sms/posttaksitgecikmesmsgonder\", this.dateFilter,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n notify(res.data.Data, \"success\", 5000);\r\n }\r\n else {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n this.setState({\r\n toolbarDisabled: false\r\n });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }\r\n }\r\n },\r\n {\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"datafield\",\r\n type: \"success\",\r\n text: \"Tüm Kayıtlar\",\r\n onClick: () => {\r\n this.mainDataSource.filter(null);\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n }\r\n );\r\n }}\r\n onInitialized={this.onInitialized}\r\n onSelectionChanged={this.onSelectionChanged}\r\n\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Export enabled={true} fileName={'KurumTaksitTahsilatRaporu'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={false} />\r\n <Pager showPageSizeSelector={false} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField=\"Id\" caption=\"\"\r\n width={40}\r\n cellRender={linkWhatsAppRender}\r\n allowExporting={false}\r\n />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'GecikmeDurumu'} caption=\"Gecikme Durumu\" />\r\n <Column dataField={'OgrenciNo'} caption=\"Öğrenci No\" />\r\n <Column dataField={'AdiSoyadi'} caption=\"Adı Soyadı\" />\r\n <Column dataField={'VeliAdSoyad'} caption=\"Velisi\" />\r\n <Column dataField={'VeliCepTelefonu'} caption=\"V. Cep Telefonu\" />\r\n <Column dataField={'CepTelefonu'} caption=\"Cep Telefonu\" visible={false} showInColumnChooser={true} />\r\n <Column dataField={'Tarih'} caption=\"Tarih\" dataType=\"date\" allowSorting={true} />\r\n <Column dataField={'Tutar'} caption=\"Tutar\" dataType=\"number\" allowSorting={true} format={\"#,##0.##\"} />\r\n <Column dataField={'Tahsilat'} caption=\"Tahsilat\" dataType=\"number\" format={\"#,##0.##\"} />\r\n <Column dataField={'OdenmeDurumu'} caption=\"Ödeme Durumu\" />\r\n <Sorting mode=\"multiple\" /> {/* or \"multiple\" | \"none\" */}\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\nfunction linkWhatsAppRender(data) {\r\n if (data === null)\r\n return <p></p>;\r\n else if (data.data.VeliCepTelefonu === undefined || data.data.VeliCepTelefonu === null || data.data.VeliCepTelefonu === \"\") {\r\n return <img src=\"/icons/whatsapp.png\" alt=\"Whatspp da paylaş\" onClick={() => {\r\n alert(\"Bu öğrencimizin veli cep telefonu bilgisi olmadığından paylaşım yapılamıyor.<br/> Öğrenci kayıt ekranından veli cep telefonu ekleyebilirsiniz.\");\r\n }} />;\r\n }\r\n else {\r\n var date = new Date(data.data.Tarih);\r\n if (data.data.GecikmeDurumu === \"Taskit gecikmiş\") {\r\n return <a rel=\"noopener noreferrer\"\r\n href={\"https://api.whatsapp.com/send?phone=+90\" + data.data.VeliCepTelefonu + \"&text=Sayın \" + data.data.VeliAdSoyad + \", \" + data.data.AdiSoyadi + \" isimli öğrencimizin \" + date.toLocaleDateString() + \" tarihli gecikmiş taksit ödemesini hatırlatmak isteriz\"}\r\n target=\"_blank\"\r\n data-action=\"share/whatsapp/share\">\r\n <img src=\"/icons/whatsapp.png\" alt=\"Whatsapp ile paylaş\" /></a>;\r\n }\r\n else if (data.data.GecikmeDurumu === \"Taksit tarihi gelmemiş\") {\r\n return <a rel=\"noopener noreferrer\"\r\n href={\"https://api.whatsapp.com/send?phone=+90\" + data.data.VeliCepTelefonu + \"&text=Sayın \" + data.data.VeliAdSoyad + \", \" + data.data.AdiSoyadi + \" isimli öğrencimizin \" + date.toLocaleDateString() + \" tarihli taksit ödemesini hatırlatmak isteriz\"}\r\n target=\"_blank\"\r\n data-action=\"share/whatsapp/share\">\r\n <img src=\"/icons/whatsapp.png\" alt=\"Whatsapp ile paylaş\" /></a>;\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n}","import React from 'react';\r\nimport service from 'axios';\r\nimport { otomasyonApi } from '../../../Util';\r\nimport Globals from '../../../Globals';\r\nimport notify from 'devextreme/ui/notify';\r\nimport Form, { SimpleItem, Label, GroupItem } from 'devextreme-react/form';\r\nimport DataGrid, {\r\n Export, ColumnChooser, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Summary, TotalItem\r\n} from 'devextreme-react/data-grid';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nexport default class KurumTaksitTahsilatDurumRaporu extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.formMain = null;\r\n this.onInitializedFormMain = this.onInitializedFormMain.bind(this);\r\n this.formData = {\r\n HizmetToplami: 0,\r\n IndirimToplami: 0,\r\n PesinatToplami: 0,\r\n ToplamAlacak: 0,\r\n TahsilatToplami: 0,\r\n KalanAlacak: 0,\r\n KasaToplami: 0,\r\n GiderToplami: 0\r\n };\r\n this.mainDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'dashboard/listkurumtaksittahsilatdurumraporualt',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n service.get(otomasyonApi + \"dashboard/listkurumtaksittahsilatdurumraporuust\", {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n var result = res.data.Data;\r\n this.formData.HizmetToplami = result.HizmetToplami;\r\n this.formData.IndirimToplami = result.IndirimToplami;\r\n this.formData.PesinatToplami = result.PesinatToplami;\r\n this.formData.ToplamAlacak = result.ToplamAlacak;\r\n this.formData.TahsilatToplami = result.TahsilatToplami;\r\n this.formData.KalanAlacak = result.KalanAlacak;\r\n this.formData.KasaToplami = result.KasaToplami;\r\n this.formData.GiderToplami = result.GiderToplami;\r\n this.formMain.instance.repaint();\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n })\r\n }\r\n onInitializedFormMain(e) {\r\n this.formMain = e.component;\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Rapor İşlemleri>>Kurum Taksit Tahsilat Durum Raporu\"}</h4>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormMain} ref={(ref) => this.formMain = ref}>\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Kasa Özeti\">\r\n <SimpleItem dataField={\"HizmetToplami\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n readOnly: true,\r\n format: \"#,##0.##\"\r\n }}>\r\n <Label text=\"Hizmet Toplamı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"IndirimToplami\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n readOnly: true,\r\n format: \"#,##0.##\"\r\n }}>\r\n <Label text=\"İndirim Toplamı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"PesinatToplami\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n readOnly: true,\r\n format: \"#,##0.##\"\r\n }}>\r\n <Label text=\"Peşinat Toplamı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"ToplamAlacak\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n readOnly: true,\r\n format: \"#,##0.##\"\r\n }}>\r\n <Label text=\"Toplam Alacak\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"TahsilatToplami\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n readOnly: true,\r\n format: \"#,##0.##\"\r\n }}>\r\n <Label text=\"Tahsilat Toplamı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KalanAlacak\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n readOnly: true,\r\n format: \"#,##0.##\"\r\n }}>\r\n <Label text=\"Kalan Alacak\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KasaToplami\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n readOnly: true,\r\n format: \"#,##0.##\"\r\n }}>\r\n <Label text=\"Kasa Toplamı\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"GiderToplami\"} editorType={\"dxNumberBox\"} editorOptions={{\r\n readOnly: true,\r\n format: \"#,##0.##\"\r\n }}>\r\n <Label text=\"Gider Toplamı\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" caption=\"Yıllık Taksit Tahsilat Özeti\">\r\n <SimpleItem>\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.mainDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onInitialized={this.onInitialized}\r\n onSelectionChanged={this.onSelectionChanged}\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Export enabled={true} fileName={'yillikTaksitTahsilatOzet'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Yil'} caption=\"Yıl\" />\r\n <Column dataField={'Ay'} caption=\"Ay\" />\r\n <Column dataField={'TaksitToplami'} caption=\"Taksit Toplamı\" format={\"#,##0.##\"} />\r\n <Column dataField={'TahsilatToplami'} caption=\"Tahsilat Toplamı\" format={\"#,##0.##\"} />\r\n <Column dataField={'KalanAlacak'} caption=\"Kalan Alacak\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Column dataField={'GiderToplami'} caption=\"Gider Toplamı\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Summary>\r\n <TotalItem\r\n column=\"TaksitToplami\"\r\n summaryType=\"sum\"\r\n valueFormat=\"#,##0.##\"\r\n />\r\n <TotalItem\r\n column=\"TahsilatToplami\"\r\n summaryType=\"sum\"\r\n valueFormat=\"#,##0.##\"\r\n />\r\n <TotalItem\r\n column=\"KalanAlacak\"\r\n summaryType=\"sum\"\r\n valueFormat=\"#,##0.##\"\r\n />\r\n <TotalItem\r\n column=\"GiderToplami\"\r\n summaryType=\"sum\"\r\n valueFormat=\"#,##0.##\"\r\n />\r\n </Summary>\r\n </DataGrid>\r\n\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { otomasyonApi } from '../../../Util';\r\nimport Globals from '../../../Globals';\r\nimport DataGrid, {\r\n Export, ColumnChooser, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel, Summary, GroupItem, SortByGroupSummaryInfo\r\n} from 'devextreme-react/data-grid';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport DateBox from 'devextreme-react/date-box';\r\nexport default class KurumTahsilatRaporu extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n toolbarDisabled: false,\r\n baslangicTarihi: new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDay(), 0, 0, 0, 0),\r\n bitisTarihi: new Date(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDay() + 1, 23, 59, 59, 0)\r\n };\r\n this.mainDataSource = new DataSource(\r\n {\r\n filter: [[\"TahsilatTarihi\", \">=\", this.state.baslangicTarihi], \"and\", [\"TahsilatTarihi\", \"<=\", this.state.bitisTarihi]],\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'dashboard/listkurumtahsilatraporu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n render() {\r\n return (\r\n\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Rapor İşlemleri>>Kurum Tahsilat Raporu\"}</h4>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n Başlangıç Tarihi\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"5px\" }}>\r\n\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-6\">\r\n <DateBox defaultValue={this.state.baslangicTarihi}\r\n type=\"datetime\"\r\n onValueChanged={(e) => {\r\n this.setState({\r\n baslangicTarihi: e.value\r\n })\r\n }} />\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"5px\" }}>\r\n\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n Bitiş Tarihi\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"5px\" }}>\r\n\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-6\">\r\n <DateBox defaultValue={this.state.bitisTarihi}\r\n type=\"datetime\"\r\n onValueChanged={(e) => {\r\n this.setState({\r\n bitisTarihi: e.value\r\n });\r\n this.mainDataSource.filter([[\"TahsilatTarihi\", \">=\", this.state.baslangicTarihi], \"and\", [\"TahsilatTarihi\", \"<=\", this.state.bitisTarihi]]);\r\n this.mainDataSource.load();\r\n this.gridMain.instance.refresh();\r\n }} />\r\n </div>\r\n </div>\r\n <div className='row'>\r\n <div className='col-md-12' style={{ minHeight: \"20px\" }}>\r\n\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n\r\n\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.mainDataSource}\r\n remoteOperations={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift({\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"datafield\",\r\n type: \"success\",\r\n text: \"Tüm Tahsilatlar\",\r\n onClick: () => {\r\n this.mainDataSource.filter(null);\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n });\r\n }}\r\n onInitialized={this.onInitialized}\r\n onSelectionChanged={this.onSelectionChanged}\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Grouping contextMenuEnabled={true} />\r\n <GroupPanel visible={true} /> {/* or \"auto\" */}\r\n <Export enabled={true} fileName={'KurumTahsilatRaporu'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={false} />\r\n <Pager showPageSizeSelector={false} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'OgrenciNo'} caption=\"Öğrenci No\" allowGrouping={true} />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n <Column dataField={'Soyadi'} caption=\"Soyadı\" />\r\n <Column dataField={'VeliAdSoyad'} caption=\"Velisi\" />\r\n <Column dataField={'VeliCepTelefonu'} caption=\"V. Cep Telefonu\" />\r\n <Column dataField={'TaksitNo'} caption=\"Taksit No\" />\r\n <Column dataField={'TahsilatTarihi'} caption=\"Tahsilat Tarihi\" dataType={\"date\"} />\r\n <Column dataField={'Tahsilat'} caption=\"Tahsilat\" dataType=\"number\" format={\"#,##0.##\"} />\r\n <Column dataField={'TahsilatTuru'} caption=\"Tahsilat Türü\" />\r\n <Column dataField={'SlipNo'} caption=\"Slip No\" />\r\n <Column dataField={'BankaAdi'} caption=\"Banka\" />\r\n <Summary>\r\n <GroupItem\r\n column=\"Tahsilat\"\r\n summaryType=\"sum\"\r\n valueFormat=\"#,##0.##\"\r\n displayFormat=\"Toplam Tahsilat: {0}\"\r\n showInGroupFooter={true} />\r\n </Summary>\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { otomasyonApi } from '../../../Util';\r\nimport Globals from '../../../Globals';\r\nimport DataGrid, {\r\n Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel\r\n} from 'devextreme-react/data-grid';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport DateBox from 'devextreme-react/date-box';\r\nexport default class KurumPesinatRaporu extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n baslangicTarihi: new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDay()),\r\n bitisTarihi: new Date(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDay() + 1)\r\n };\r\n this.mainDataSource = new DataSource(\r\n {\r\n filter: [[\"PesinatTarihi\", \">=\", this.state.baslangicTarihi], \"and\", [\"PesinatTarihi\", \"<=\", this.state.bitisTarihi]],\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'dashboard/listkurumpesinatraporu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n render() {\r\n return (\r\n\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Rapor İşlemleri>>Kurum Peşinat Raporu\"}</h4>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n Başlangıç Tarihi\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"5px\" }}>\r\n\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-6\">\r\n <DateBox defaultValue={this.state.baslangicTarihi}\r\n type=\"date\"\r\n onValueChanged={(e) => {\r\n this.setState({\r\n baslangicTarihi: e.value\r\n })\r\n }} />\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"5px\" }}>\r\n\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n Bitiş Tarihi\r\n </div>\r\n </div>\r\n <div className=\"row\" style={{ minHeight: \"5px\" }}>\r\n\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-6\">\r\n <DateBox defaultValue={this.state.bitisTarihi}\r\n type=\"date\"\r\n onValueChanged={(e) => {\r\n this.setState({\r\n bitisTarihi: e.value\r\n });\r\n this.mainDataSource.filter([[\"PesinatTarihi\", \">=\", this.state.baslangicTarihi], \"and\", [\"PesinatTarihi\", \"<=\", this.state.bitisTarihi]]);\r\n this.mainDataSource.load();\r\n this.gridMain.instance.refresh();\r\n }} />\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n\r\n\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n dataSource={this.mainDataSource}\r\n remoteOperations={true}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onToolbarPreparing={(e) => {\r\n e.toolbarOptions.items.unshift({\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"datafield\",\r\n type: \"success\",\r\n text: \"Tüm Peşinatlar\",\r\n onClick: () => {\r\n this.mainDataSource.filter(null);\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n });\r\n }}\r\n onInitialized={this.onInitialized}\r\n onSelectionChanged={this.onSelectionChanged}\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Export enabled={true} fileName={'KurumPesinatRaporu'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={false} applyFilter={'auto'} />\r\n <Paging defaultPageSize={15} enabled={false} />\r\n <Pager showPageSizeSelector={false} allowedPageSizes={[15, 30, 45]} showInfo={false} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} />\r\n <Column dataField={'KurumAdi'} caption=\"Kurum\" />\r\n <Column dataField={'OgrenciNo'} caption=\"Öğrenci No\" />\r\n <Column dataField={'Adi'} caption=\"Adı\" />\r\n <Column dataField={'Soyadi'} caption=\"Soyadı\" />\r\n <Column dataField={'VeliAdSoyad'} caption=\"Velisi\" />\r\n <Column dataField={'VeliCepTelefonu'} caption=\"V. Cep Telefonu\" />\r\n <Column dataField={'PesinatTarihi'} caption=\"Peşinat Tarihi\" dataType={\"date\"} />\r\n <Column dataField={'Pesinat'} caption=\"Peşinat\" dataType=\"number\" format={\"#,##0.##\"} />\r\n\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport service from 'axios';\r\nimport { karneApi, sinavApi, authApi } from '../Util';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { alert } from 'devextreme/ui/dialog';\r\nimport Form, {\r\n ButtonItem,\r\n GroupItem,\r\n SimpleItem,\r\n Label,\r\n RequiredRule\r\n} from 'devextreme-react/form';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nclass OgrenciSinavSonucPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.yayin = 0;\r\n\r\n // this.onInitializedSelectBoxDonem = this.onInitializedSelectBoxDonem.bind(this);\r\n // this.selectBoxDonem = null;\r\n this.donemDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: authApi + 'auth/getdonemler',\r\n })\r\n });\r\n\r\n if (!!props.match.params.yayinParam) {\r\n this.yayin = props.match.params.yayinParam;\r\n }\r\n else {\r\n this.yayin = 0;\r\n }\r\n\r\n this.yayinfilter = { YayinId: this.yayin };\r\n this.sinavTuruDataSource = new DataSource(\r\n {\r\n store: createStore({\r\n key: \"SinavTuru.Id\",\r\n loadParams: this.yayinfilter,\r\n loadUrl: sinavApi + 'ogrenci/GetOgrenciSinavTurleriByYayinId'\r\n })\r\n });\r\n\r\n this.sinavTuruFilter = {\r\n YayinId: 0,\r\n SinavTuruId: 0,\r\n DonemId: 0\r\n };\r\n\r\n\r\n this.merkeziSinavDataSource = new DataSource(\r\n {\r\n filter: [\"Degerlendirilebilir\", \"=\", true],\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.sinavTuruFilter,\r\n loadUrl: sinavApi + 'ogrenci/getogrencimerkezisinavlar'\r\n })\r\n });\r\n\r\n this.ilFilter = {\r\n SinavId: 0\r\n };\r\n\r\n this.ilDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.ilFilter,\r\n loadUrl: sinavApi + 'ogrenci/getogrenciiller'\r\n })\r\n });\r\n\r\n this.ilceFilter = {\r\n IlId: 0,\r\n SinavId: 0\r\n };\r\n\r\n this.ilceDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.ilceFilter,\r\n loadUrl: sinavApi + 'ogrenci/getogrenciilceler'\r\n })\r\n });\r\n\r\n this.kurumFilter = {\r\n IlId: 0,\r\n IlceId: 0,\r\n MerkeziSinavId: 0\r\n };\r\n\r\n this.kurumDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n store: createStore({\r\n loadParams: this.kurumFilter,\r\n loadUrl: sinavApi + 'ogrenci/getogrencikurumlar'\r\n })\r\n });\r\n\r\n this.selectBoxMerkeziSinav = null;\r\n this.selectBoxIl = null;\r\n this.selectBoxIlce = null;\r\n this.selectBoxKurum = null;\r\n this.onInitializedSelectBoxMerkeziSinav = this.onInitializedSelectBoxMerkeziSinav.bind(this);\r\n this.onInitializedSelectBoxIl = this.onInitializedSelectBoxIl.bind(this);\r\n this.onInitializedSelectBoxIlce = this.onInitializedSelectBoxIlce.bind(this);\r\n this.onInitializedSelectBoxKurum = this.onInitializedSelectBoxKurum.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.buttonOptions = {\r\n text: 'Karne oluştur',\r\n type: 'success',\r\n useSubmitBehavior: true\r\n };\r\n this.formData = {\r\n SinavTuruId: null,\r\n YayinId: null,\r\n MerkeziSinavId: null,\r\n IlId: null,\r\n IlceId: null,\r\n KurumId: null,\r\n OgrenciNo: null\r\n }\r\n }\r\n\r\n handleSubmit(e) {\r\n service.post(karneApi + \"sonucarayuz/getkarne\",\r\n {\r\n OgrenciNo: this.formData.OgrenciNo,\r\n KurumId: this.formData.KurumId,\r\n SinavTuruId: this.formData.SinavTuruId,\r\n MerkeziSinavId: this.formData.MerkeziSinavId\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n alert(\"Karneniz oluşturuldu.<br/><a href='\" + res.data.Data + \"' target='_blank'> Buranın üzerinde sağ tıklayarak bağlantıyı farklı kaydet seçeneği ile karnenizi bilgisayarınıza indiriniz</a>\", \"Bilgi\");\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n }).catch(error => {\r\n notify(\"Teknik bir hata oluştu,lütfen daha sonra tekrar deneyiniz\", \"error\", 5000);\r\n });\r\n e.preventDefault();\r\n };\r\n\r\n onInitializedSelectBoxMerkeziSinav(e) {\r\n this.selectBoxMerkeziSinav = e.component;\r\n }\r\n\r\n onInitializedSelectBoxIl(e) {\r\n this.selectBoxIl = e.component;\r\n }\r\n\r\n onInitializedSelectBoxIlce(e) {\r\n this.selectBoxIlce = e.component;\r\n }\r\n\r\n onInitializedSelectBoxKurum(e) {\r\n this.selectBoxKurum = e.component;\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div id=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <form id=\"form\" onSubmit={this.handleSubmit}>\r\n <Form\r\n formData={this.formData}\r\n readOnly={false}\r\n showColonAfterLabel={true}\r\n showValidationSummary={true}\r\n >\r\n <GroupItem caption=\"Sınav Bilgileri\" colCount={1}>\r\n <SimpleItem dataField={\"DonemId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.donemDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n loadPanel: true,\r\n onValueChanged: (e) => {\r\n if (!!e.value) {\r\n this.sinavTuruFilter.DonemId = e.value;\r\n }\r\n }\r\n }}>\r\n <RequiredRule message=\"Sınav türü alanı zorunludur\" />\r\n <Label text=\"Dönem\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinavTuruId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.sinavTuruDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"SinavTuruAdi\",\r\n valueExpr: \"SinavTuru.Id\",\r\n loadPanel: true,\r\n onValueChanged: (e) => {\r\n if (!!e.value) {\r\n this.sinavTuruFilter.SinavTuruId = e.value;\r\n this.sinavTuruFilter.YayinId = this.yayin;\r\n this.merkeziSinavDataSource.load();\r\n this.selectBoxMerkeziSinav.instance().option(\"value\", null);\r\n }\r\n }\r\n }}>\r\n <RequiredRule message=\"Sınav türü alanı zorunludur\" />\r\n <Label text=\"Sınav Türü\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"MerkeziSinavId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.merkeziSinavDataSource,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxMerkeziSinav,\r\n ref: (ref) => { this.selectBoxMerkeziSinav = ref },\r\n onValueChanged: (e) => {\r\n if (!!e.value) {\r\n this.kurumFilter.MerkeziSinavId = e.value;\r\n this.ilFilter.SinavId = e.value;\r\n this.ilceFilter.SinavId = e.value;\r\n this.ilDataSource.load();\r\n this.selectBoxIl.instance().option(\"value\", null);\r\n this.selectBoxIlce.instance().option(\"value\", null);\r\n this.selectBoxKurum.instance().option(\"value\", null);\r\n\r\n }\r\n }\r\n }}>\r\n <Label text=\"Sınav\" />\r\n <RequiredRule message=\"Merkez sınav alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"IlId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.ilDataSource,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxIl,\r\n ref: (ref) => { this.selectBoxIl = ref },\r\n onValueChanged: (e) => {\r\n if (!!e.value) {\r\n this.ilceFilter.IlId = e.value;\r\n this.kurumFilter.IlId = this.selectBoxIl.instance().option(\"value\");\r\n this.ilceDataSource.load();\r\n this.selectBoxIlce.instance().option(\"value\", null);\r\n }\r\n }\r\n }}>\r\n <Label text=\"İl\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"IlceId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.ilceDataSource,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxIlce,\r\n ref: (ref) => { this.selectBoxIlce = ref },\r\n onValueChanged: (e) => {\r\n if (!!e.value) {\r\n\r\n this.kurumFilter.IlceId = this.selectBoxIlce.instance().option(\"value\");\r\n this.kurumDataSource.load();\r\n }\r\n }\r\n }}>\r\n <Label text=\"İlçe\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KurumId\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.kurumDataSource,\r\n displayExpr: \"KurumAdi\",\r\n valueExpr: \"Id\",\r\n onInitialized: this.onInitializedSelectBoxKurum,\r\n ref: (ref) => { this.selectBoxKurum = ref }\r\n }}>\r\n <RequiredRule message=\"Kurum alanı zorunludur\" />\r\n <Label text=\"Kurum\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"OgrenciNo\"} editorOptions={{ placeholder: \" Sınavda kodladığınız numara\" }}\r\n editorType=\"dxNumberBox\">\r\n <RequiredRule message=\"Öğrenci no alanı zorunludur\" />\r\n <Label text=\"Öğrenci No\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <ButtonItem horizontalAlignment=\"left\"\r\n buttonOptions={this.buttonOptions}\r\n />\r\n </Form>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\nexport default OgrenciSinavSonucPage;","import React from 'react';\r\nimport service from 'axios';\r\nimport Globals from '../Globals.js';\r\nimport auth from \"../Auth\";\r\nimport themes from 'devextreme/ui/themes';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { authApi } from '../Util';\r\nclass EduAsistOgrenciLoginPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n //KurumId/KullaniciId/Sifre\r\n const kurumId = props.match.params.KurumId\r\n const kullaniciId = props.match.params.KullaniciId;\r\n const sifre = \"RXNhcyBpdGliYXLEsXlsYSBzw7Z6bMO8IGFub25pbSBoYWxrIGVkZWJpeWF0xLEgw7xyw7xuw7wgb2xhbiBtYXNhbA==\";\r\n try {\r\n localStorage.removeItem(\"oturum\");\r\n localStorage.removeItem(\"session\");\r\n localStorage.removeItem(\"initialized\");\r\n } catch (error) {\r\n }\r\n const tema = localStorage.getItem(\"tema\");//kullanıcı teması\r\n if (tema != null)\r\n themes.current(tema);\r\n\r\n document.title = window.ayarlar.sistemAdi;\r\n this.formData = {\r\n KullaniciAdi: kurumId + \"-\" + kullaniciId + \"-ogrenci\",\r\n Sifre: props.match.params.Sifre\r\n };\r\n\r\n if (sifre !== props.match.params.Sifre) {\r\n notify(\"Kullanıcı adı veya şifre hatalı\");\r\n }\r\n else {\r\n service.post(authApi + \"Auth/authenticate\"\r\n , this.formData)\r\n .then(res => {\r\n auth.login(() => {\r\n\r\n var localStoregeData = {};\r\n res.data.AdSoyad = res.data.Kullanici.Adi + \" \" + res.data.Kullanici.Soyadi;\r\n res.data.Menu = res.data.Kullanici.KullaniciMenuler;\r\n res.data.Rol = res.data.Kullanici.Rol;\r\n res.data.Id = res.data.Kullanici.Id;\r\n localStorage.setItem(\"oturum\", JSON.stringify(res.data));\r\n // Globals.AdSoyad = localStoregeData.Kullanici.Adi + \" \" + localStoregeData.Kullanici.Soyadi;\r\n // Globals.menuler = localStoregeData.Kullanici.KullaniciMenuler;\r\n Globals.service = localStoregeData;\r\n // Globals.Token = localStoregeData.Token;\r\n // Globals.Rol = localStoregeData.Kullanici.Rol;\r\n if (Globals.service.Rol === \"SubeKayitKabul\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeMuhasebe\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeKayitMuhasebe\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"Sube\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"GenelMerkez\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeVeli\") {\r\n this.props.history.push(\"/velidashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeOgrenci\") {\r\n this.props.history.push(\"/ogrencidashboard\");\r\n }\r\n else {\r\n this.props.history.push(\"/home\");\r\n }\r\n\r\n });\r\n })\r\n .catch((error) => {\r\n // Error 😨\r\n if (error.response) {\r\n notify(error.response.data.message, 'error', 5000);\r\n } else if (error.request) {\r\n notify(error.request, 'error', 5000);\r\n } else {\r\n notify(\"Teknik bir hat oluştu\", 'error', 5000);\r\n }\r\n\r\n });\r\n }\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <b>Otomatik giriş yapılıyor...</b>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\nexport default EduAsistOgrenciLoginPage;","import React from 'react';\r\nimport service from 'axios';\r\nimport Globals from '../Globals.js';\r\nimport auth from \"../Auth\";\r\nimport themes from 'devextreme/ui/themes';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { authApi } from '../Util';\r\nclass EduAsistVeliLoginPage extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n //KurumId/OgrenciKullaniciId/KullaniciId/Sifre\r\n const kurumId = props.match.params.KurumId;\r\n const ogrenciKullaniciId = props.match.params.OgrenciKullaniciId;\r\n const kullaniciId = props.match.params.KullaniciId;\r\n const sifre = \"RXNhcyBpdGliYXLEsXlsYSBzw7Z6bMO8IGFub25pbSBoYWxrIGVkZWJpeWF0xLEgw7xyw7xuw7wgb2xhbiBtYXNhbA==\";\r\n if (sifre !== props.match.params.Sifre) {\r\n notify(\"Kullanıcı adı veya şifre hatalı\");\r\n }\r\n else {\r\n try {\r\n localStorage.removeItem(\"oturum\");\r\n localStorage.removeItem(\"session\");\r\n localStorage.removeItem(\"initialized\");\r\n } catch (error) {\r\n }\r\n const tema = localStorage.getItem(\"tema\");//kullanıcı teması\r\n if (tema != null)\r\n themes.current(tema);\r\n\r\n document.title = window.ayarlar.sistemAdi;\r\n this.formData = {\r\n KullaniciAdi: kurumId + \"-\" + ogrenciKullaniciId + \"-\" + kullaniciId + \"-veli\",\r\n Sifre: props.match.params.Sifre\r\n };\r\n if (sifre !== props.match.params.Sifre) {\r\n notify(\"Kullanıcı adı veya şifre hatalı\");\r\n }\r\n else {\r\n service.post(authApi + \"Auth/authenticate\"\r\n , this.formData)\r\n .then(res => {\r\n auth.login(() => {\r\n\r\n var localStoregeData = {};\r\n res.data.AdSoyad = res.data.Kullanici.Adi + \" \" + res.data.Kullanici.Soyadi;\r\n res.data.Menu = res.data.Kullanici.KullaniciMenuler;\r\n res.data.Rol = res.data.Kullanici.Rol;\r\n res.data.Id = res.data.Kullanici.Id;\r\n localStorage.setItem(\"oturum\", JSON.stringify(res.data));\r\n // Globals.AdSoyad = localStoregeData.Kullanici.Adi + \" \" + localStoregeData.Kullanici.Soyadi;\r\n // Globals.menuler = localStoregeData.Kullanici.KullaniciMenuler;\r\n Globals.service = localStoregeData;\r\n // Globals.Token = localStoregeData.Token;\r\n // Globals.Rol = localStoregeData.Kullanici.Rol;\r\n if (Globals.service.Rol === \"SubeKayitKabul\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeMuhasebe\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeKayitMuhasebe\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"Sube\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"GenelMerkez\") {\r\n this.props.history.push(\"/kayitkabuldashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeVeli\") {\r\n this.props.history.push(\"/velidashboard\");\r\n }\r\n else if (Globals.service.Rol === \"SubeOgrenci\") {\r\n this.props.history.push(\"/ogrencidashboard\");\r\n }\r\n else {\r\n this.props.history.push(\"/home\");\r\n }\r\n\r\n });\r\n })\r\n .catch((error) => {\r\n // Error 😨\r\n if (error.response) {\r\n notify(error.response.data.message, 'error', 5000);\r\n } else if (error.request) {\r\n notify(error.request, 'error', 5000);\r\n } else {\r\n notify(\"Teknik bir hat oluştu\", 'error', 5000);\r\n }\r\n\r\n });\r\n }\r\n }\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <b>Otomatik giriş yapılıyor...</b>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\nexport default EduAsistVeliLoginPage;","import React from 'react';\r\nimport service from 'axios';\r\nimport { otomasyonApi } from '../../../Util';\r\nimport Globals from '../../../Globals';\r\nimport notify from 'devextreme/ui/notify';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport Form, { SimpleItem, Label } from 'devextreme-react/form';\r\nexport default class MobilKutuphane extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n Dosyalar: []\r\n }\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadUrl: otomasyonApi + 'common/listsistemyayinlari',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.formMobilKutuphane = null;\r\n this.formData = {\r\n Yayin: { Id: null }\r\n };\r\n }\r\n\r\n renderLink(data) {\r\n if (!!data.Icon) {\r\n return (\r\n <React.Fragment>\r\n <a href={data.Dosya}><img src={data.Icon} alt={data.Metin} style={{ width: \"250px\", height: \"83px\", minWidth: \"250px\", minHeight: \"83px\", maxWidth: \"250px\", maxHeight: \"83px\" }} /></a>\r\n </React.Fragment>\r\n );\r\n }\r\n else if (!!data.Dosya && (data.Icon === null | data.Icon === undefined)) {\r\n return (\r\n <React.Fragment>\r\n <a href={data.Dosya} alt={data.Metin} target=\"_blank\" rel=\"noopener noreferrer\">{data.Metin}</a>\r\n </React.Fragment>\r\n )\r\n }\r\n else {\r\n return (\r\n <React.Fragment>\r\n {data.Metin}\r\n </React.Fragment>\r\n );\r\n }\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>İnteraktif İşlemler>>Mobil Kütüphane\"}</h4>\r\n </div>\r\n </div>\r\n <div className='row' style={{ paddingTop: \"20px\" }}>\r\n <div className='col-md-12'>\r\n <Form formData={this.formData} ref={(ref) => this.formMobilKutuphane = ref}\r\n showValidationSummary={true}\r\n >\r\n <SimpleItem dataField={\"Yayin.Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinDataSource,\r\n keyExpr: \"Id\",\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n showClearButton: true,\r\n onInitialized: this.onInitializedSelectBoxYayin,\r\n ref: (ref) => { this.selectBoxYayin = ref },\r\n onValueChanged: (e) => {\r\n service.get(otomasyonApi + \"common/listmobilkutuphane/\" + e.value, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n Dosyalar: res.data.Data\r\n })\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n }\r\n }}>\r\n <Label text=\"Yayın\" />\r\n\r\n </SimpleItem>\r\n </Form>\r\n </div>\r\n </div>\r\n <div className='row'>\r\n <div className='col-md-12'>\r\n {\r\n this.state.Dosyalar.map((dosya, index) => {\r\n return (\r\n <div className='row' key={index}>\r\n {\r\n this.renderLink(dosya)\r\n }\r\n </div>\r\n )\r\n })\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n};","import React from 'react';\r\nimport service from 'axios';\r\nimport { otomasyonApi } from '../../../Util';\r\nimport Globals from '../../../Globals';\r\nimport notify from 'devextreme/ui/notify';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport Form, { SimpleItem, Label } from 'devextreme-react/form';\r\nexport default class AkilliTahta extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n Dosyalar: []\r\n }\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadUrl: otomasyonApi + 'common/listsistemyayinlari',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.formMobilKutuphane = null;\r\n this.formData = {\r\n Yayin: { Id: null }\r\n };\r\n }\r\n\r\n renderLink(data) {\r\n if (!!data.Icon) {\r\n return (\r\n <React.Fragment>\r\n <a href={data.Dosya}><img src={data.Icon} alt={data.Metin} style={{ width: \"250px\", height: \"83px\", minWidth: \"250px\", minHeight: \"83px\", maxWidth: \"250px\", maxHeight: \"83px\" }} /></a>\r\n </React.Fragment>\r\n );\r\n }\r\n else if (!!data.Dosya && (data.Icon === null | data.Icon === undefined)) {\r\n return (\r\n <React.Fragment>\r\n <a href={data.Dosya} alt={data.Metin} target=\"_blank\" rel=\"noopener noreferrer\">{data.Metin}</a>\r\n </React.Fragment>\r\n )\r\n }\r\n else {\r\n return (\r\n <React.Fragment>\r\n {data.Metin}\r\n </React.Fragment>\r\n );\r\n }\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>İnteraktif İşlemler>>Akıllı Tahta Uygulamaları\"}</h4>\r\n </div>\r\n </div>\r\n <div className='row' style={{ paddingTop: \"20px\" }}>\r\n <div className='col-md-12'>\r\n <Form formData={this.formData} ref={(ref) => this.formMobilKutuphane = ref}\r\n showValidationSummary={true}\r\n >\r\n <SimpleItem dataField={\"Yayin.Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinDataSource,\r\n keyExpr: \"Id\",\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n showClearButton: true,\r\n onInitialized: this.onInitializedSelectBoxYayin,\r\n ref: (ref) => { this.selectBoxYayin = ref },\r\n onValueChanged: (e) => {\r\n service.get(otomasyonApi + \"common/listakillitahta/\" + e.value, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n Dosyalar: res.data.Data\r\n })\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n }\r\n }}>\r\n <Label text=\"Yayın\" />\r\n\r\n </SimpleItem>\r\n </Form>\r\n </div>\r\n </div>\r\n <div className='row'>\r\n <div className='col-md-12'>\r\n {\r\n this.state.Dosyalar.map((dosya, index) => {\r\n return (\r\n <div className='row' key={index}>\r\n {\r\n this.renderLink(dosya)\r\n }\r\n </div>\r\n )\r\n })\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n};","import React from 'react';\r\nimport service from 'axios';\r\nimport { otomasyonApi } from '../../../Util';\r\nimport Globals from '../../../Globals';\r\nimport notify from 'devextreme/ui/notify';\r\nimport 'devextreme/data/odata/store';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport Form, { SimpleItem, Label } from 'devextreme-react/form';\r\nexport default class VideoCozum extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n Dosyalar: []\r\n }\r\n this.yayinDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n pageSize: 100,\r\n store: createStore({\r\n loadUrl: otomasyonApi + 'common/listsistemyayinlari',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.formMobilKutuphane = null;\r\n this.formData = {\r\n Yayin: { Id: null }\r\n };\r\n }\r\n\r\n renderLink(data) {\r\n if (!!data.Icon) {\r\n return (\r\n <React.Fragment>\r\n <a href={data.Dosya}><img src={data.Icon} alt={data.Metin} style={{ width: \"250px\", height: \"83px\", minWidth: \"250px\", minHeight: \"83px\", maxWidth: \"250px\", maxHeight: \"83px\" }} /></a>\r\n </React.Fragment>\r\n );\r\n }\r\n else if (!!data.Dosya && (data.Icon === null | data.Icon === undefined)) {\r\n return (\r\n <React.Fragment>\r\n <a href={data.Dosya} alt={data.Metin} target=\"_blank\" rel=\"noopener noreferrer\">{data.Metin}</a>\r\n </React.Fragment>\r\n )\r\n }\r\n else {\r\n return (\r\n <React.Fragment>\r\n {data.Metin}\r\n </React.Fragment>\r\n );\r\n }\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>İnteraktif İşlemler>>Mobil Video Çözümleri\"}</h4>\r\n </div>\r\n </div>\r\n <div className='row' style={{ paddingTop: \"20px\" }}>\r\n <div className='col-md-12'>\r\n <Form formData={this.formData} ref={(ref) => this.formMobilKutuphane = ref}\r\n showValidationSummary={true}\r\n >\r\n <SimpleItem dataField={\"Yayin.Id\"} isRequired={true}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.yayinDataSource,\r\n keyExpr: \"Id\",\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\",\r\n showClearButton: true,\r\n onInitialized: this.onInitializedSelectBoxYayin,\r\n ref: (ref) => { this.selectBoxYayin = ref },\r\n onValueChanged: (e) => {\r\n service.get(otomasyonApi + \"common/listvideocozum/\" + e.value, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }).then(res => {\r\n if (res.data.Success) {\r\n this.setState({\r\n Dosyalar: res.data.Data\r\n })\r\n } else {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n notify(\"Teknik bir hata oluştu, hata ayrıntısı:\" + err, \"error\", 5000);\r\n });\r\n }\r\n }}>\r\n <Label text=\"Yayın\" />\r\n\r\n </SimpleItem>\r\n </Form>\r\n </div>\r\n </div>\r\n <div className='row'>\r\n <div className='col-md-12'>\r\n {\r\n this.state.Dosyalar.map((dosya, index) => {\r\n return (\r\n <div className='row' key={index}>\r\n {\r\n this.renderLink(dosya)\r\n }\r\n </div>\r\n )\r\n })\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n};","import React from \"react\";\r\nimport { sinavApi, crmApi } from '../../Util';\r\nimport service from 'axios';\r\nimport Globals from '../../Globals';\r\nimport DataGrid, {\r\n Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label, RequiredRule } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\n\r\nexport default class CrmGorevTuru extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n stateOpen: false\r\n }\r\n this.formData = {\r\n Id: 0,\r\n Kurum: { Id: 0 },\r\n Adi: \"\",\r\n RowVersion: 0\r\n }\r\n this.gridMain = null;\r\n this.satir = null;\r\n this.formCrmGorevTuru = null;\r\n this.popupForm = null;\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.onInitializedGridMain = this.onInitializedGridMain.bind(this);\r\n this.onInitializedFormCrmGorevTuru = this.onInitializedFormCrmGorevTuru.bind(this);\r\n this.onInitializedFormCrmGorevTuru = this.onInitializedFormCrmGorevTuru.bind(this);\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onInitializedPopup = this.onInitializedPopup.bind(this);\r\n this.kurumDataSource = new DataSource(\r\n {\r\n paginate: true,\r\n pageSize: 10,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: sinavApi + 'kurum/kurumlar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.crmGorevTuruDataSource = new DataSource({\r\n paginate: true,\r\n pageSize: 10,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: crmApi + 'crmgorevturu/gorevturleri',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n };\r\n\r\n\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n onInitializedGridMain(e) {\r\n this.gridMain = e.component;\r\n }\r\n\r\n gridMainSatirIptal() {\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n onInitializedFormCrmGorevTuru(e) {\r\n this.formCrmGorevTuru = e.component;\r\n };\r\n\r\n onInitializedPopup(e) {\r\n this.popupForm = e.component;\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Yeni',\r\n icon: 'add',\r\n onClick: () => {\r\n this.formData = {\r\n Id: 0,\r\n Kurum: { Id: null },\r\n Adi: \"\",\r\n RowVersion: 0,\r\n Deleted: false\r\n };\r\n this.popupAc();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Düzenle',\r\n icon: 'edit',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.formData = {\r\n Id: satir.Id,\r\n Kurum: { Id: satir.Kurum.Id },\r\n Adi: satir.Adi,\r\n Deleted: satir.Deleted,\r\n RowVersion: satir.RowVersion\r\n };\r\n this.popupAc();\r\n }\r\n }\r\n }\r\n },\r\n\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger',\r\n hint: 'Sil',\r\n icon: 'trash',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(crmApi + \"crmgorevturu/sil/\" + satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n\r\n service.post(crmApi + 'crmgorevturu/pasifyap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n onClick: () => {\r\n const satir = this.satir;\r\n if (satir === null || satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n\r\n service.post(crmApi + 'crmgorevturu/aktifyap/' + satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n popupGizle() {\r\n this.setState({\r\n stateOpen: false\r\n });\r\n this.gridMainSatirIptal();\r\n };\r\n\r\n popupAc() {\r\n this.setState({\r\n stateOpen: true\r\n });\r\n };\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Crm>>Görev Türleri\"}</h4>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.crmGorevTuruDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onInitialized={this.onInitializedGridMain}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Export enabled={true} fileName={'CrmGorevTurleri'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={true} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" visible={true} />\r\n <Column dataField={'Adi'} caption=\"Adı\" dataType=\"string\" />\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n visible={this.state.stateOpen}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n const validateStatus = this.formCrmGorevTuru.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n\r\n service.post(crmApi + 'crmgorevturu/gorevturukaydet',\r\n this.formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.popupGizle();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }\r\n ref={(ref) => this.popupForm = ref} onInitialized={this.onInitializedPopup}\r\n >\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormCrmGorevTuru} ref={(ref) => this.formCrmGorevTuru = ref}\r\n showValidationSummary={true}\r\n >\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Kurum Bilgileri\">\r\n <SimpleItem dataField={\"Kurum.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.kurumDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"KurumAdi\",\r\n valueExpr: \"Id\"\r\n }}>\r\n <Label text=\"Tür\" />\r\n </SimpleItem>\r\n\r\n <SimpleItem dataField={\"Adi\"} isRequired={true}\r\n editorType=\"dxTextBox\"\r\n >\r\n <Label text=\"Adı\" />\r\n <RequiredRule message=\"Adı alanı gerekli\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n )\r\n }\r\n\r\n}","import React from \"react\";\r\nimport { crmApi } from \"../../Util\";\r\nimport Globals from \"../../Globals\";\r\nimport service from 'axios';\r\nimport DataGrid, {\r\n Export, ColumnChooser, ColumnFixing, Column, Editing, Paging, Pager, FilterRow, LoadPanel, Grouping, GroupPanel\r\n} from 'devextreme-react/data-grid';\r\nimport { Popup } from 'devextreme-react';\r\nimport ScrollView from 'devextreme-react/scroll-view';\r\nimport { Position } from 'devextreme-react/data-grid';\r\nimport Form, { SimpleItem, GroupItem, Label, RequiredRule } from 'devextreme-react/form';\r\nimport notify from 'devextreme/ui/notify';\r\nimport { confirm, alert } from 'devextreme/ui/dialog';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\n\r\nexport default class Crm extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n popupState: false\r\n }\r\n this.aktiviteDataSource = new DataSource({\r\n paginate: true,\r\n pageSize: 10,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: crmApi + 'crm/gorevler',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.atananAtayanDataSource = new DataSource(\r\n {\r\n paginate: false,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: crmApi + 'crm/atananatayankullanicilar',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.crmGorevTuruDataSource = new DataSource({\r\n paginate: true,\r\n pageSize: 10,\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: crmApi + 'crmgorevturu/gorevturleri',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n this.onInitializedGridMain = this.onInitializedGridMain.bind(this);\r\n this.onInitializedFormCrm = this.onInitializedFormCrm.bind(this);\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.gridMain = null;\r\n this.formCrm = null;\r\n this.satir = null;\r\n this.formData = {\r\n Id: 0,\r\n Atanan: { Id: 0 },\r\n Atayan: { Id: Globals.service.Id },\r\n GorevTuru: { Id: 0 },\r\n Deleted: false,\r\n RowVersion: 0,\r\n BaslangicTarihi: new Date(),\r\n BitisTarihi: new Date(),\r\n Aciklama: \"\",\r\n KapatmaAciklama: \"\",\r\n Durum: 0\r\n }\r\n }\r\n\r\n popupAc() {\r\n this.setState({\r\n popupState: true\r\n })\r\n };\r\n\r\n popupGizle = () => {\r\n this.setState({\r\n popupState: false\r\n })\r\n this.gridMainSatirIptal();\r\n };\r\n\r\n onInitializedGridMain(e) {\r\n this.gridMain = e.component;\r\n };\r\n\r\n onSelectionChanged(selectedItems) {\r\n this.satir = selectedItems.selectedRowsData[0];\r\n }\r\n\r\n onInitializedFormCrm(e) {\r\n this.formCrm = e.component;\r\n }\r\n\r\n gridMainSatirIptal() {\r\n if (this.gridMain.instance !== null) {\r\n this.gridMain.instance.clearSelection();\r\n this.gridMain.instance.option(\"focusedRowIndex\", -1);\r\n }\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Yeni',\r\n icon: 'add',\r\n onClick: () => {\r\n this.formData = {\r\n Id: 0,\r\n Atanan: { Id: 0 },\r\n Atayan: { Id: Globals.service.Id },\r\n GorevTuru: { Id: 0 },\r\n Deleted: false,\r\n RowVersion: 0,\r\n BaslangicTarihi: new Date(),\r\n BitisTarihi: new Date(),\r\n Aciklama: \"\",\r\n KapatmaAciklama: \"\",\r\n Durum: 0\r\n }\r\n this.popupAc();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default',\r\n hint: 'Düzenle',\r\n icon: 'edit',\r\n onClick: () => {\r\n const secilenSatir = this.satir;\r\n if (secilenSatir === null || secilenSatir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n if (secilenSatir.Atayan.Id !== Globals.service.Id) {\r\n alert('Bu işi sizi atamadığınızdan dolayı düzenleme yapamazsınız', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n this.formData = {\r\n Id: secilenSatir.Id,\r\n Adi: secilenSatir.Adi,\r\n Deleted: secilenSatir.Deleted,\r\n RowVersion: secilenSatir.RowVersion,\r\n Atanan: { Id: secilenSatir.Atanan.Id },\r\n Atayan: { Id: Globals.service.Id },\r\n GorevTuru: { Id: secilenSatir.GorevTuru.Id },\r\n BaslangicTarihi: secilenSatir.BaslangicTarihi,\r\n BitisTarihi: secilenSatir.BitisTarihi,\r\n Aciklama: secilenSatir.Aciklama,\r\n KapatmaAciklama: secilenSatir.KapatmaAciklama,\r\n Durum: secilenSatir.Durum\r\n };\r\n this.popupAc();\r\n }\r\n }\r\n }\r\n },\r\n\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger',\r\n hint: 'Sil',\r\n icon: 'trash',\r\n onClick: () => {\r\n if (this.satir === null || this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n let result = confirm(\"<i>Kaydınızı silmek istiyorsunuz, emin misiniz?<br/><font color='red'>Bunun yerine pasif etmeyi seçebilirsiniz</font></i>\", \"Silme Onay\");\r\n result.then((dialogResult) => {\r\n if (dialogResult === true) {\r\n service.post(crmApi + \"crm/sil/\" + this.satir.Id,\r\n null, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n notify(\"Silme işleminiz gerçekleştirildi.\", \"success\", 5000);\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'danger', hint: 'Pasif yap', icon: 'isblank',\r\n onClick: () => {\r\n if (this.satir === null || this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n\r\n service.post(crmApi + 'crm/pasifyap/' + this.satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n notify(\"Kaydınız pasif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'success', hint: 'Aktif yap', icon: 'isnotblank',\r\n onClick: () => {\r\n if (this.satir === null || this.satir === undefined) {\r\n alert('Satır seçmelisiniz', 'Uyarı');\r\n return;\r\n }\r\n else {\r\n\r\n service.post(crmApi + 'crm/aktifyap/' + this.satir.Id, null,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n )\r\n .then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.gridMainSatirIptal();\r\n notify(\"Kaydınız aktif hale getirildi.\", 'success', 5000);\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridMain.instance.refresh();\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', icon: 'home', hint: 'Ana Sayfa',\r\n onClick: () => {\r\n this.props.history.push(\"/home\");\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Crm>>İşlerim\"}</h4>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <DataGrid\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.aktiviteDataSource}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n selection={{ mode: 'single' }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n onInitialized={this.onInitializedGridMain}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onSelectionChanged={this.onSelectionChanged}\r\n ref={(ref) => this.gridMain = ref}\r\n >\r\n <Export enabled={true} fileName={'CrmAktiviteler'} allowExportSelectedData={false} />\r\n <ColumnChooser enabled={true} />\r\n <Editing mode={'popup'} />\r\n <Grouping contextMenuEnabled={true} expandMode=\"rowClick\" />\r\n <GroupPanel visible={true} emptyPanelText=\"Gruplamak için sütün başlıklarını buraya sürükleyiniz.\" />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={true} />\r\n <Column dataField={'Deleted'} caption=\"Pasif\" dataType=\"boolean\" visible={true} />\r\n <Column dataField={'GorevDurumu'} caption=\"Görev Durumu\" dataType=\"string\" />\r\n <Column dataField={'Adi'} caption=\"Adı\" dataType=\"string\" />\r\n <Column dataField={'AtananKisi'} caption=\"Atanan\" dataType=\"string\" />\r\n <Column dataField={'AtayanKisi'} caption=\"Atayan\" dataType=\"string\" />\r\n </DataGrid>\r\n </div>\r\n </div>\r\n </div>\r\n <Popup showTitle={true} shading={true} dragEnabled={true} close_ClickOnOutsideClick={false} popupOptions={{ animation: null }} showCloseButton={false}\r\n visible={this.state.popupState}\r\n toolbarItems={\r\n [\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Kaydet', type: 'success', hint: 'Kaydet', icon: 'check'\r\n , onClick: (e) => {\r\n const validateStatus = this.formCrm.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n let basTarih = new Date(this.formData.BaslangicTarihi);\r\n basTarih.setHours(basTarih.getHours() + 3);\r\n this.formData.BaslangicTarihi = basTarih;\r\n let bitTarih = new Date(this.formData.BitisTarihi);\r\n bitTarih.setHours(bitTarih.getHours() + 3);\r\n this.formData.BitisTarihi = bitTarih;\r\n service.post(crmApi + 'crm/gorevkaydet',\r\n this.formData,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n }\r\n ).then(res => {\r\n if (res.data.Success) {\r\n this.gridMain.instance.refresh();\r\n this.popupGizle();\r\n }\r\n else {\r\n notify(res.data.ErrorMessage, 'error', 5000);\r\n }\r\n\r\n })\r\n .catch(err => {\r\n notify(err, \"error\", 5000);\r\n });\r\n }\r\n }\r\n }\r\n },\r\n {\r\n location: 'after', widget: 'dxButton', options: {\r\n text: 'Vazgeç', type: 'danger', hint: 'Çıkış', icon: 'runner'\r\n , onClick: () => { this.popupGizle(); }\r\n }\r\n }\r\n\r\n ]\r\n }>\r\n <Position my={'center'} at={'center'} of={window} />\r\n <ScrollView id={'scrollview'} showScrollBarMode='onScroll' scrollByContent={true} scrollByThumb={true} bounceEnabled={false}>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormCrm} ref={(ref) => this.formCrm = ref}\r\n showValidationSummary={true}\r\n >\r\n <GroupItem cssClass=\"first-group\" colCount={2} caption=\"Görev Bilgileri\">\r\n <SimpleItem dataField={\"GorevTuru.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.crmGorevTuruDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"Adi\",\r\n valueExpr: \"Id\"\r\n }}>\r\n <Label text=\"Görev Türü\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Atanan.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.atananAtayanDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"AdSoyad\",\r\n valueExpr: \"Id\"\r\n }}>\r\n <Label text=\"Atanan\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Atayan.Id\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: this.atananAtayanDataSource,\r\n searchEnabled: true,\r\n displayExpr: \"AdSoyad\",\r\n valueExpr: \"Id\"\r\n }}>\r\n <Label text=\"Atayan\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Durum\"}\r\n editorType=\"dxSelectBox\"\r\n editorOptions={{\r\n dataSource: window.ayarlar.CrmDurum,\r\n searchEnabled: true,\r\n displayExpr: \"Name\",\r\n valueExpr: \"Value\"\r\n }}>\r\n <Label text=\"Durum\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Adi\"} isRequired={true}\r\n editorType=\"dxTextBox\"\r\n >\r\n <Label text=\"Adı\" />\r\n <RequiredRule message=\"Adı alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"BaslangicTarihi\"} editorType={\"dxDateBox\"} editorOptions={{\r\n type: \"datetime\"\r\n }} isRequired={true}\r\n >\r\n <Label text=\"Başlangıç Tarihi\" />\r\n <RequiredRule message=\"Başlangıç tarihi alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"BitisTarihi\"} editorType={\"dxDateBox\"} editorOptions={{\r\n type: \"datetime\"\r\n }} isRequired={true}\r\n >\r\n <Label text=\"Bitiş Tarihi\" />\r\n <RequiredRule message=\"Bitiş tarihi alanı gerekli\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"KapatmaAciklama\"} isRequired={false}\r\n editorType=\"dxTextBox\"\r\n >\r\n <Label text=\"Görev Kapatma Açıklaması\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n <GroupItem cssClass=\"first-group\" colCount={1} caption=\"\">\r\n <SimpleItem dataField={\"Aciklama\"} editorType={\"dxHtmlEditor\"} editorOptions={{\r\n height: 300,\r\n toolbar: {\r\n items: [\r\n \"bold\",\r\n \"italic\",\r\n \"color\",\r\n \"background\",\r\n \"link\",\r\n {\r\n \"formatName\": \"header\",\r\n \"formatValues\": [\r\n 1,\r\n 2,\r\n 3,\r\n false\r\n ]\r\n },\r\n \"variable\",\r\n \"strike\",\r\n \"image\",\r\n \"subscript\",\r\n \"superscript\",\r\n \"underline\",\r\n \"blockquote\",\r\n \"increaseIndent\",\r\n \"decreaseIndent\",\r\n \"orderedList\",\r\n \"bulletList\",\r\n \"alignLeft\",\r\n \"alignCenter\",\r\n \"alignRight\",\r\n \"alignJustify\",\r\n \"codeBlock\",\r\n \"undo\",\r\n \"redo\",\r\n \"clear\",\r\n \"separator\"\r\n ],\r\n multiline: true,\r\n\r\n }\r\n }}>\r\n <Label text=\"Açıklama\" />\r\n </SimpleItem>\r\n </GroupItem>\r\n </Form>\r\n </div>\r\n </div>\r\n </ScrollView>\r\n </Popup>\r\n </React.Fragment>\r\n )\r\n }\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport service from 'axios';\r\nimport Globals from \"../../Globals\";\r\nimport { yayinSinavApi, sinavApi } from \"../../Util\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { useCallback } from \"react\";\r\nimport '../../sanaloptik.css'\r\nimport '../../bootstrap-material.css';\r\nimport '../../uikit.css';\r\nimport { setSanalSinavSystemInfo } from '../../redux/actions/sanalSinavSystemAction'\r\nimport notify from \"devextreme/ui/notify\";\r\nlet cevapDizisi = [];\r\nlet soru = {};\r\nlet saat = 0;\r\nlet dakika = 0;\r\nlet saniye = 0;\r\nlet soruIndex = 1;\r\nlet isBaslangic = false;\r\nlet isBaslangicCounter = false;\r\nlet liseKontrol = true;\r\nconst SanalOptikPage = () => {\r\n const merkeziSistem = useSelector(state => state.remoteSystem.info);\r\n const sanalSinav = useSelector(state => state.sanalSinavSystem.info);\r\n const [sorular, setSorular] = useState([]);\r\n const [filtrenelenenSorular, setFiltrelenenSorular] = useState([]);\r\n const [filtreler, setFiltreler] = useState([]);\r\n const [cevaplar, setCevap] = useState(\"\");\r\n const [ilkokulKontrol, setilkokulKontrol] = useState(true);\r\n const [liseKontrol, setliseKontrol] = useState(true);\r\n const [process, setProcess] = useState(false);\r\n const dispatch = useDispatch();\r\n const getSinavApi = useCallback(() => {\r\n let endpoint = \"\";\r\n endpoint = (merkeziSistem.connectionState && sanalSinav.MerkeziSistem) ? yayinSinavApi : sinavApi;\r\n return endpoint;\r\n }, [merkeziSistem.connectionState, sanalSinav.MerkeziSistem]);\r\n\r\n const getHeaders = useCallback(() => {\r\n return {\r\n 'Authorization': ((merkeziSistem.connectionState && sanalSinav.MerkeziSistem))\r\n ? 'Bearer ' + merkeziSistem.remoteToken\r\n : 'Bearer ' + Globals.service.Token\r\n }\r\n }, [merkeziSistem.connectionState, merkeziSistem.remoteToken, sanalSinav.MerkeziSistem]);\r\n\r\n useEffect(() => {\r\n service.get(getSinavApi() + \"merkezisinav/getsanalsinavsorulari/{merkeziSinavId}/{kitapcikTuru}\".replace(\"{merkeziSinavId}\", sanalSinav.MerkeziSinavId).replace(\"{kitapcikTuru}\", sanalSinav.KitapcikTuru),\r\n {\r\n headers: getHeaders()\r\n }).then(res => {\r\n setSorular(res.data.Data);\r\n })\r\n }, [getHeaders, getSinavApi, sanalSinav.KitapcikTuru, sanalSinav.MerkeziSinavId])\r\n\r\n useEffect(() => {\r\n service.get(getSinavApi() + \"merkezisinav/getCevap/{sanalSinavId}\".replace(\"{sanalSinavId}\", sanalSinav.SanalSinavId),\r\n {\r\n headers: getHeaders()\r\n }).then(res => {\r\n setCevap(res.data.Data);\r\n })\r\n }, [getHeaders, getSinavApi, sanalSinav.SanalSinavId]);\r\n\r\n useEffect(() => {\r\n let filterButtons = [];\r\n sorular.forEach((soru, index) => {\r\n if (filterButtons.filter(x => x.DersAdi === soru.DersAdi).length === 0) {\r\n filterButtons.push(soru);\r\n }\r\n });\r\n setFiltreler(filterButtons);\r\n }, [sorular])\r\n\r\n useEffect(() => {\r\n console.log(\"çalıştı\");\r\n cevapDizisi = cevaplar.split(\"\");\r\n for (var i = 0; i < sorular.length; i++) {\r\n if (cevapDizisi[i] !== \"*\") {\r\n if (cevapDizisi[i] === \" \")\r\n sorular[i].VerilenCevap = \"Bos\";\r\n else\r\n sorular[i].VerilenCevap = cevapDizisi[i];\r\n }\r\n }\r\n let sorularX = sorular;\r\n setSorular(Object.assign([], sorularX));\r\n }, [cevaplar, sorular]);\r\n\r\n useEffect(() => {\r\n if (sanalSinav.SinavTuru === \"TYT\" | sanalSinav.SinavTuru === \"AYT\" | sanalSinav.SinavTuru === \"9.SINIF\" | sanalSinav.SinavTuru === \"10.SINIF\" | sanalSinav.SinavTuru === \"11.SINIF\") {\r\n setliseKontrol(true);\r\n setilkokulKontrol(true);\r\n }\r\n else if (sanalSinav.SinavTuru === \"8.SINIF\" | sanalSinav.SinavTuru === \"7.SINIF\" | sanalSinav.SinavTuru === \"6.SINIF\" | sanalSinav.SinavTuru === \"5.SINIF\" | sanalSinav.SinavTuru === \"4.SINIF\") {\r\n setliseKontrol(false);\r\n setilkokulKontrol(true);\r\n }\r\n else if (sanalSinav.SinavTuru === \"3.SINIF\" | sanalSinav.SinavTuru === \"2.SINIF\") {\r\n setliseKontrol(false);\r\n setilkokulKontrol(false);\r\n }\r\n }, [sanalSinav.SinavTuru])\r\n\r\n const soruRender = filtrenelenenSorular.map((soru, index) => {\r\n return (\r\n <React.Fragment>\r\n\r\n <div className=\"demo-inline-spacing\">\r\n <button className=\"btn btn-info btn-sm btn-round\"> {soru.SoruNo} .Soru </button>\r\n <button className='btn btn-primary btn-sm btn-round' style={{ backgroundColor: soru.VerilenCevap === \"A\" ? \"red\" : \"white\" }} onClick={async () => await SoruIsaretle(soru, 'A')}> A </button>\r\n <button className='btn btn-primary btn-sm btn-round' style={{ backgroundColor: soru.VerilenCevap === \"B\" ? \"red\" : \"white\" }} onClick={() => SoruIsaretle(soru, 'B')}> B </button>\r\n <button className='btn btn-primary btn-sm btn-round' style={{ backgroundColor: soru.VerilenCevap === \"C\" ? \"red\" : \"white\" }} onClick={() => SoruIsaretle(soru, 'C')}> C </button>\r\n <button className='btn btn-primary btn-sm btn-round' style={{ backgroundColor: soru.VerilenCevap === \"D\" ? \"red\" : \"white\", visibility: ilkokulKontrol ? \"visible\" : \"hidden\" }} onClick={() => SoruIsaretle(soru, 'D')}> D </button>\r\n <button className='btn btn-primary btn-sm btn-round' style={{ backgroundColor: soru.VerilenCevap === \"E\" ? \"red\" : \"white\", visibility: liseKontrol ? \"visible\" : \"hidden\" }} onClick={() => SoruIsaretle(soru, 'E')}> E </button>\r\n <button className='btn btn-primary btn-sm btn-round' style={{ backgroundColor: soru.VerilenCevap === \"Bos\" ? \"red\" : \"white\" }} onClick={() => SoruIsaretle(soru, 'Bos')}> Boş </button>\r\n {/* <button class=\"btn btn-warning btn-sm btn-round\" ng-show=\"process\"><img src=\"@Url.Content(\"~/assets/img/work.gif\")\" style=\"max-width:24px!important\" /> cevap işaretleniyor</button> */}\r\n </div>\r\n\r\n </React.Fragment>\r\n );\r\n });\r\n\r\n const filtreRender = filtreler.map((filtre, index) => {\r\n return (\r\n <React.Fragment>\r\n <button className=\"btn btn-sm btn-round\"\r\n style={{ border: \"1px solid darkgrey\", color: \"white\", backgroundColor: \"darkgrey\" }} onClick={() => {\r\n filtrele(filtre);\r\n }}>{filtre.DersAdi}</button>  \r\n </React.Fragment>\r\n );\r\n });\r\n\r\n const filtrele = useCallback((filtre) => {\r\n if (filtre !== undefined) {\r\n soru.DersAdi = filtre.DersAdi;\r\n document.getElementById(\"filtreAdi\").innerText = filtre.DersAdi.toUpperCase();\r\n setFiltrelenenSorular(sorular.filter(x => x.DersAdi === filtre.DersAdi).sort((a, b) => (a.SiraNo > b.SiraNo ? 1 : -1)));\r\n }\r\n }, [sorular]);\r\n\r\n useEffect(() => {\r\n if (!isBaslangic && sorular.length > 0) {\r\n filtrele(sorular.sort((a, b) => (a.SiraNo > b.SiraNo ? 1 : -1))[0]);\r\n isBaslangic = true;\r\n }\r\n\r\n }, [filtrele, sorular]);\r\n\r\n const SoruIsaretle = async (soru, isaret) => {\r\n let filtrelenenSorularX = Object.assign([], filtrenelenenSorular);\r\n for (var i = 0; i < filtrelenenSorularX.length; i++) {\r\n if (soru.SiraNo === filtrelenenSorularX[i].SiraNo) {\r\n filtrelenenSorularX[i].VerilenCevap = isaret;\r\n }\r\n }\r\n\r\n let sorularX = Object.assign([], sorular);\r\n for (var y = 0; y < sorularX.length; y++) {\r\n if (soru.SiraNo === sorularX[y].SiraNo) {\r\n sorularX[y].VerilenCevap = isaret;\r\n }\r\n }\r\n const data = {\r\n SanalSinavId: sanalSinav.SanalSinavId,\r\n Cevap: isaret,\r\n SiraNo: soru.SiraNo,\r\n KalanSure: ((saat * 60) + (dakika))\r\n }\r\n notify(\"cevap kaydediliyor...\", \"info\", 1000);\r\n service.post(getSinavApi() + \"merkezisinav/sanalsinavcevapkaydet\", data,\r\n {\r\n headers: getHeaders()\r\n }).then(async () => {\r\n notify(\"cevap kaydedildi\", \"success\", 1000);\r\n\r\n await setFiltrelenenSorular(filtrelenenSorularX);\r\n await setSorular(sorular);\r\n let copySanalsinav = sanalSinav;\r\n copySanalsinav.KalanSure = ((saat * 60) + (dakika));\r\n dispatch(setSanalSinavSystemInfo(copySanalsinav));\r\n })\r\n .catch((err) => {\r\n notify(\"Teknik bir hata oluştu,\" + err, \"error\", 5000)\r\n })\r\n\r\n }\r\n\r\n const tytGrupla = useCallback(() => {\r\n let sosyal = 1;\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Tarih\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Tarih\")[i].SoruNo = sosyal;\r\n sosyal++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Cogr\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Cogr\")[i].SoruNo = sosyal;\r\n sosyal++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Fels\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Fels\")[i].SoruNo = sosyal;\r\n sosyal++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"DinK\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"DinK\")[i].SoruNo = sosyal;\r\n sosyal++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"SFels\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"SFels\")[i].SoruNo = sosyal;\r\n sosyal++;\r\n }\r\n let fen = 1;\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Fizik\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Fizik\")[i].SoruNo = fen;\r\n fen++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Kimya\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Kimya\")[i].SoruNo = fen;\r\n fen++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Biyo\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Biyo\")[i].SoruNo = fen;\r\n fen++;\r\n }\r\n setSorular(sorular);\r\n }, [sorular]);\r\n\r\n const aytGrupla = useCallback(() => {\r\n let edebiyat = 1;\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Edb\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Edb\")[i].SoruNo = edebiyat;\r\n edebiyat++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Trh\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Trh\")[i].SoruNo = edebiyat;\r\n edebiyat++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Cog\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Cog\")[i].SoruNo = edebiyat;\r\n edebiyat++;\r\n }\r\n let sosyal2 = 1;\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Tar\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Tar\")[i].SoruNo = sosyal2;\r\n sosyal2++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Cgr\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Cgr\")[i].SoruNo = sosyal2;\r\n sosyal2++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Fel\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Fel\")[i].SoruNo = sosyal2;\r\n sosyal2++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Din\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Din\")[i].SoruNo = sosyal2;\r\n sosyal2++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Fls\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Fls\")[i].SoruNo = sosyal2;\r\n sosyal2++;\r\n }\r\n let fen = 1;\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Fiz\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Fiz\")[i].SoruNo = fen;\r\n fen++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Kim\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Kim\")[i].SoruNo = fen;\r\n fen++;\r\n }\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Biy\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Biy\")[i].SoruNo = fen;\r\n fen++;\r\n }\r\n setSorular(sorular);\r\n }, [sorular]);\r\n\r\n const matSirala = useCallback(() => {\r\n let mat = 1;\r\n for (var i = 0; i < sorular.filter(x => x.DersSimge === \"Mtm\").length; i++) {\r\n sorular.filter(x => x.DersSimge === \"Mtm\")[i].SoruNo = mat;\r\n mat++;\r\n }\r\n setSorular(sorular);\r\n }, [sorular]);\r\n\r\n useEffect(() => {\r\n if (sanalSinav.SinavTuru === \"TYT\") {\r\n tytGrupla();\r\n }\r\n if (sanalSinav.SinavTuru === \"AYT\" | sanalSinav.SinavTuru === \"9.SINIF\" | sanalSinav.SinavTuru === \"10.SINIF\" | sanalSinav.SinavTuru === \"11.SINIF\") {\r\n aytGrupla();\r\n }\r\n matSirala();\r\n }, [sanalSinav.SinavTuru, tytGrupla, aytGrupla, matSirala]);\r\n\r\n const timer = useCallback(() => {\r\n const myDate = new Date();\r\n myDate.setMinutes(myDate.getMinutes() + sanalSinav.KalanSure);\r\n var countDownDate = myDate;\r\n\r\n if (!isBaslangicCounter) {\r\n window.x = setInterval(function () {\r\n\r\n // Açılan sayfanın tarih ve zamanı\r\n var now = new Date().getTime();\r\n\r\n // farkı bul\r\n var distance = countDownDate - now;\r\n\r\n //saat,dakika ve zaman hesapla\r\n saat = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));\r\n dakika = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));\r\n saniye = Math.floor((distance % (1000 * 60)) / 1000);\r\n\r\n //ekrana değerleri bas\r\n document.getElementById(\"vakit\").innerHTML = saat + \" saat \"\r\n + dakika + \" dakika \" + saniye + \" saniye \";\r\n\r\n // zaman bitince bir işlem yap\r\n if (distance < 0) {\r\n clearInterval(window.x);\r\n document.getElementById(\"vakit\").innerHTML = \"süreniz doldu\";\r\n\r\n const data = {\r\n SanalSinavId: sanalSinav.SanalSinavId,\r\n KitapcikTuru: sanalSinav.KitapcikTuru,\r\n KurumKodu: sanalSinav.KurumKodu,\r\n OgrenciNo: sanalSinav.OgrenciNo,\r\n MerkeziSinavId: sanalSinav.MerkeziSinavId,\r\n SinavTuru: sanalSinav.SinavTuru,\r\n YayinId: sanalSinav.YayinId,\r\n Ad: Globals.service.Kullanici.Adi,\r\n Soyad: Globals.service.Kullanici.Soyadi,\r\n Telefon: Globals.service.Kullanici.Tel\r\n\r\n };\r\n service.post(getSinavApi() + \"merkezisinav/sanalsinavibitir\", data,\r\n {\r\n headers: getHeaders()\r\n }).then(async () => {\r\n notify(\"Sınavınız değerlendirildi\", \"success\", 1000);\r\n })\r\n .catch((err) => {\r\n notify(\"Teknik bir hata oluştu,\" + err, \"error\", 5000)\r\n })\r\n\r\n }\r\n isBaslangicCounter = true;\r\n }, 1000);\r\n }\r\n // Saniyede bir güncelleniyor\r\n\r\n }, [sanalSinav.KalanSure,\r\n sanalSinav.SanalSinavId,\r\n sanalSinav.KitapcikTuru,\r\n sanalSinav.KurumKodu,\r\n sanalSinav.OgrenciNo,\r\n sanalSinav.MerkeziSinavId,\r\n sanalSinav.SinavTuru,\r\n sanalSinav.YayinId,\r\n getHeaders,\r\n getSinavApi\r\n ]);\r\n useEffect(() => {\r\n timer();\r\n }, [timer])\r\n return (\r\n <React.Fragment>\r\n <div className=\"layout-wrapper layout-2\">\r\n <div className=\"layout-inner\">\r\n <div className=\"layout-content\">\r\n <div className=\"container-fluid flex-grow-1 container-p-y\">\r\n <div className=\"card mb-4\">\r\n <div className=\"card-body\">\r\n <div className=\"text-muted small mt-0 mb-4 d-block breadcrumb\">\r\n <ol className=\"breadcrumb\">\r\n <li className=\"breadcrumb-item\"><a href=\"#!\"><i className=\"feather icon-clock\"></i></a></li>\r\n <li className=\"breadcrumb-item\"><a href=\"#!\"><span id=\"vakit\"></span></a></li>\r\n <li className=\"breadcrumb-item\"><a href=\"#!\"> </a></li>\r\n <li>\r\n <button className=\"btn btn-primary btn-sm btn-round\" onClick={() => {\r\n const data = {\r\n SanalSinavId: sanalSinav.SanalSinavId,\r\n KitapcikTuru: sanalSinav.KitapcikTuru,\r\n KurumKodu: sanalSinav.KurumKodu,\r\n OgrenciNo: sanalSinav.OgrenciNo,\r\n MerkeziSinavId: sanalSinav.MerkeziSinavId,\r\n SinavTuru: sanalSinav.SinavTuru,\r\n YayinId: sanalSinav.YayinId,\r\n Ad: Globals.service.Kullanici.Adi,\r\n Soyad: Globals.service.Kullanici.Soyadi,\r\n Telefon: Globals.service.Kullanici.Tel\r\n\r\n };\r\n service.post(getSinavApi() + \"merkezisinav/sanalsinavibitir\", data,\r\n {\r\n headers: getHeaders()\r\n }).then(async () => {\r\n notify(\"Sınavınız değerlendirildi\", \"success\", 1000);\r\n })\r\n .catch((err) => {\r\n notify(\"Teknik bir hata oluştu,\" + err, \"error\", 5000)\r\n })\r\n }}>Denemeyİ Bİtİr</button>\r\n </li>\r\n <li style={{ display: process === false ? \"none\" : \"\" }}><img src=\"/images/work.gif\" style={{ maxWidth: \"24px\", minHeight: \"24px\" }} alt=\"process\" /> işlem yapılıyor...</li>\r\n </ol>\r\n </div>\r\n <div className=\"text-muted small mt-0 mb-4 d-block breadcrumb\">\r\n <ol className=\"breadcrumb\">\r\n <li className=\"breadcrumb-item\"><a href=\"#!\"><b>Seçilen Ders Grubu:</b><span style={{ fontWeight: \"bolder\" }} id=\"filtreAdi\"></span></a></li>\r\n </ol>\r\n </div>\r\n\r\n <div className=\"demo-inline-spacing\">\r\n {filtreRender}\r\n </div>\r\n\r\n <div className=\"row\" style={{ minHeight: \"10px!important\" }}>\r\n\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n {soruRender}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n}\r\nexport default SanalOptikPage;","import React from 'react';\r\nimport ActionSheet from 'devextreme-react/action-sheet';\r\nimport Button from 'devextreme-react/button';\r\nimport notify from 'devextreme/ui/notify';\r\nimport auth from '../Auth';\r\nimport trMessages from \"devextreme/localization/messages/tr.json\";\r\nimport { locale, loadMessages } from \"devextreme/localization\";\r\nconst actionSheetItems = [\r\n { id: 0, text: 'Oturumu Kapat', url: '' },\r\n { id: 1, text: 'Devamsızlık Girişi', url: '/mobile/devamsizlikfilter' }\r\n];\r\nexport default class MobileLayout extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isActionSheetVisible: false,\r\n showTitle: true,\r\n showCancelButton: true,\r\n };\r\n\r\n this.showActionSheet = this.showActionSheet.bind(this);\r\n this.onActionSheetItemClick = this.onActionSheetItemClick.bind(this);\r\n this.onActionSheetCancelClick = this.onActionSheetCancelClick.bind(this);\r\n this.onActionSheetButtonClick = this.onActionSheetButtonClick.bind(this);\r\n this.changeTitle = this.changeTitle.bind(this);\r\n this.changeCancelButton = this.changeCancelButton.bind(this);\r\n loadMessages(trMessages);\r\n locale(navigator.language);\r\n }\r\n render() {\r\n\r\n return (\r\n <React.Fragment>\r\n <div className='container'>\r\n <div className='row'>\r\n <div className='col-md-12'>\r\n {this.props.children}\r\n </div>\r\n </div>\r\n <div className='row'>\r\n <div className='col-md-12'>\r\n <div>\r\n <ActionSheet\r\n dataSource={actionSheetItems}\r\n title=\"Menü Seçiniz\"\r\n cancelText='Menü Gizle'\r\n showTitle={this.state.showTitle}\r\n showCancelButton={this.state.showCancelButton}\r\n visible={this.state.isActionSheetVisible}\r\n onItemClick={this.onActionSheetItemClick}\r\n onCancelClick={this.onActionSheetCancelClick} />\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div className='row' style={{ marginTop: \"100px\" }}>\r\n <div className='col-md-12'>\r\n <Button width={\"100%\"} text=\"Menü Göster\" onClick={this.showActionSheet} />\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n showActionSheet() {\r\n this.setState({\r\n isActionSheetVisible: true,\r\n });\r\n }\r\n\r\n onActionSheetItemClick(e) {\r\n if (parseInt(e.itemData.id) === 0) {\r\n auth.logout(() => {\r\n try {\r\n localStorage.removeItem(\"oturum\");\r\n localStorage.removeItem(\"session\");\r\n localStorage.removeItem(\"initialized\");\r\n } catch (error) {\r\n }\r\n\r\n });\r\n this.props.children.props.history.push(\"/login\")\r\n }\r\n else if (parseInt(e.itemData.id) === 1) {\r\n window.location.href = \"/mobile/devamsizlikfilter\";\r\n }\r\n //this.onActionSheetButtonClick(e.itemData.text);\r\n }\r\n\r\n onActionSheetCancelClick() {\r\n this.setState({\r\n isActionSheetVisible: false,\r\n });\r\n }\r\n\r\n onActionSheetButtonClick(buttonName) {\r\n this.setState({\r\n isActionSheetVisible: false,\r\n });\r\n notify(`The \"${buttonName}\" button is clicked.`);\r\n }\r\n\r\n changeTitle(e) {\r\n this.setState({\r\n showTitle: e.value,\r\n });\r\n }\r\n\r\n changeCancelButton(e) {\r\n this.setState({\r\n showCancelButton: e.value,\r\n });\r\n }\r\n};","import React from \"react\";\r\nexport default class Index extends React.Component {\r\n render() {\r\n return (\r\n <React.Fragment>\r\n Mobil Giriş\r\n </React.Fragment>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { otomasyonApi } from '../../Util';\r\nimport Globals from '../../Globals';\r\nimport { alert, confirm } from 'devextreme/ui/dialog';\r\nimport Form, { SimpleItem, GroupItem, Label, RequiredRule, ButtonItem } from 'devextreme-react/form';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport { Button } from 'devextreme-react/button';\r\nimport service from 'axios';\r\nimport notify from 'devextreme/ui/notify';\r\nimport ArrayStore from 'devextreme/data/array_store';\r\nimport DropDownBox from 'devextreme-react/drop-down-box';\r\nimport DataGrid, {\r\n Column, Paging, Pager, FilterRow, LoadPanel, HeaderFilter, FilterPanel, Export, Selection, Scrolling\r\n\r\n} from 'devextreme-react/data-grid';\r\nimport List from 'devextreme-react/list';\r\nlet selectedOgrenciList = [];\r\nexport default class DevamsizlikFilterPage extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.buttonOptions = {\r\n text: 'Öğrencileri Getir',\r\n type: 'success',\r\n width: \"100%\",\r\n useSubmitBehavior: false,\r\n onClick: () => {\r\n this.setState({\r\n filter: false,\r\n Tarih: this.formData.Tarih\r\n })\r\n }\r\n };\r\n this.state = {\r\n filter: true,\r\n selectedItemKeys: [],\r\n Tarih: new Date()\r\n };\r\n this.dersDataGridRender = this.dersDataGridRender.bind(this);\r\n this.onInitializedFormDevamsizlik = this.onInitializedFormDevamsizlik.bind(this);\r\n this.onInitializedDropDownBoxDers = this.onInitializedDropDownBoxDers.bind(this);\r\n this.onInitializedGridDers = this.onInitializedGridDers.bind(this);\r\n this.onInitializedSelectBoxSinifSube = this.onInitializedSelectBoxSinifSube.bind(this);\r\n this.onInitializedSelectBoxSinifSeviye = this.onInitializedSelectBoxSinifSeviye.bind(this);\r\n this.onDersDataGridSelectionChanged = this.onDersDataGridSelectionChanged.bind(this);\r\n this.onDropDownBoxDersValueChanged = this.onDropDownBoxDersValueChanged.bind(this);\r\n this.onInitializedOgrenciList = this.onInitializedOgrenciList.bind(this);\r\n this.onSelectedItemKeysChange = this.onSelectedItemKeysChange.bind(this);\r\n this.formDevamsizlik = null;\r\n this.gridDers = null;\r\n this.selectBoxSinifSeviye = null;\r\n this.selectBoxSinifSube = null;\r\n this.listOgrenci = null;\r\n var tx = new Date();\r\n tx.setHours(tx.getHours() + 3)\r\n\r\n const dersData = [\r\n {\r\n Id: 1,\r\n Adi: \"1. Ders\"\r\n },\r\n {\r\n Id: 2,\r\n Adi: \"2. Ders\"\r\n },\r\n {\r\n Id: 3,\r\n Adi: \"3. Ders\"\r\n },\r\n {\r\n Id: 4,\r\n Adi: \"4. Ders\"\r\n },\r\n {\r\n Id: 5,\r\n Adi: \"5. Ders\"\r\n },\r\n {\r\n Id: 6,\r\n Adi: \"6. Ders\"\r\n },\r\n {\r\n Id: 7,\r\n Adi: \"7. Ders\"\r\n },\r\n {\r\n Id: 8,\r\n Adi: \"8. Ders\"\r\n }\r\n ];\r\n\r\n this.dersler = new ArrayStore({\r\n key: 'Id',\r\n data: dersData,\r\n // Other ArrayStore properties go here\r\n });\r\n\r\n this.formData = {\r\n Dersler: [],\r\n SinifSeviye: { Id: null },\r\n SubeId: null,\r\n Konular: [],\r\n Tip: null,\r\n Tur: null,\r\n Icerik: null,\r\n Tarih: tx.toJSON(),\r\n Ogrenciler: []\r\n }\r\n\r\n this.sinifSeviyeDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listsinifseviye',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.sinifSubeDataSource = new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'geneltanim/listsinifsubebykullanici',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n this.seviyeFilter = {\r\n seviyeId: 0\r\n };\r\n\r\n this.ogrenciFilter = {\r\n subeId: 0,\r\n seviyeId: 0\r\n };\r\n\r\n this.ogrenciDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadParams: this.ogrenciFilter,\r\n loadUrl: otomasyonApi + 'ogrenci/getKurumOgrencileriBySubeIdSeviyeId',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n }\r\n\r\n onInitializedFormDevamsizlik(e) {\r\n this.formDevamsizlik = e.component;\r\n }\r\n\r\n onInitializedDropDownBoxDers(e) {\r\n this.dropDownBoxDers = e.component;\r\n }\r\n onInitializedGridDers(e) {\r\n this.gridDers = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinifSube(e) {\r\n this.selectBoxSinifSube = e.component;\r\n }\r\n\r\n onInitializedSelectBoxSinifSeviye(e) {\r\n this.selectBoxSinifSeviye = e.component;\r\n }\r\n\r\n onDersDataGridSelectionChanged(e) {\r\n if (e.selectedRowKeys.length === 0) {\r\n this.gridDersBoxValue = [];\r\n }\r\n else {\r\n this.gridDersBoxValue = e.selectedRowKeys;\r\n }\r\n this.dropDownBoxDers.instance.option(\"value\", this.gridDersBoxValue);\r\n }\r\n\r\n onDropDownBoxDersValueChanged(e) {\r\n if (this.gridDersBoxValue === e.value) {\r\n return;\r\n }\r\n else {\r\n this.gridDersBoxValue = e.value || [];\r\n this.dropDownBoxDers.instance.option(\"value\", this.gridDersBoxValue);\r\n }\r\n }\r\n\r\n dersDataGridRender() {\r\n return (\r\n <DataGrid\r\n dataSource={this.dersler}\r\n hoverStateEnabled={true}\r\n onSelectionChanged={this.onDersDataGridSelectionChanged}\r\n columns={[\"Adi\"]}\r\n onInitialized={this.onInitializedGridDers}\r\n ref={(ref) => { this.gridDers = ref }}\r\n >\r\n <Selection mode=\"multiple\" />\r\n <Scrolling mode=\"virtual\" />\r\n <Paging enabled={true} pageSize={10} />\r\n <FilterRow visible={true} />\r\n </DataGrid>\r\n );\r\n }\r\n\r\n onInitializedOgrenciList(e) {\r\n this.listOgrenci = e.component;\r\n }\r\n\r\n onSelectedItemKeysChange(args) {\r\n if (args.name === 'selectedItemKeys') {\r\n this.setState({\r\n selectedItemKeys: args.value,\r\n });\r\n }\r\n }\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className='container'>\r\n <div className='row' style={{ marginTop: \"10px\", display: this.state.filter ? \"\" : \"none\" }}>\r\n <div className='col-md-12'>\r\n <Form formData={this.formData} onInitialized={this.onInitializedFormDevamsizlik} ref={(ref) => this.formDevamsizlik = ref}>\r\n <SimpleItem dataField={\"Ders.Id\"}>\r\n <DropDownBox\r\n valueExpr=\"Id\"\r\n deferRendering={false}\r\n displayExpr=\"Adi\"\r\n showClearButton={true}\r\n dataSource={this.dersler}\r\n contentRender={this.dersDataGridRender}\r\n onValueChanged={this.onDropDownBoxDersValueChanged}\r\n onInitialized={this.onInitializedDropDownBoxDers}\r\n ref={(ref) => { this.dropDownBoxDers = ref }}\r\n />\r\n <Label text=\"Ders\"></Label>\r\n <RequiredRule message=\"Ders alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SinifSeviye.Id\"} editorType={\"dxSelectBox\"} editorOptions={{\r\n dataSource: this.sinifSeviyeDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n onInitialized: this.onInitializedSelectBoxSinifSeviye,\r\n ref: (ref) => this.selectBoxSinifSeviye = ref,\r\n onValueChanged: async (e) => {\r\n this.selectBoxSinifSube.instance().option(\"value\", null);\r\n var dataSource = this.selectBoxSinifSube.instance().option(\"dataSource\");\r\n dataSource.filter([\"SeviyeId\", \"=\", e.value]);\r\n await dataSource.load().done(() => {\r\n this.selectBoxSinifSube.instance().option(\"dataSource\", dataSource);\r\n });\r\n this.seviyeFilter.seviyeId = e.value;\r\n this.ogrenciFilter.seviyeId = e.value;\r\n this.ogrenciFilter.subeId = 0;\r\n }\r\n }}>\r\n <Label text=\"Seviye\"></Label>\r\n <RequiredRule message=\"Seviye alanı zorunludur\"></RequiredRule>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"SubeId\"} editorType={\"dxSelectBox\"} editorOptions={{\r\n dataSource: this.sinifSubeDataSource,\r\n valueExpr: \"Id\",\r\n displayExpr: \"Adi\",\r\n onInitialized: this.onInitializedSelectBoxSinifSube,\r\n ref: (ref) => this.selectBoxSinifSube = ref,\r\n onValueChanged: async (e) => {\r\n this.ogrenciFilter.subeId = e.value;\r\n await this.ogrenciDataSource.load().then((res) => {\r\n this.listOgrenci.instance.option(\"dataSource\", this.ogrenciDataSource);\r\n });\r\n\r\n\r\n }\r\n\r\n }}>\r\n <Label text=\"Şube\"></Label>\r\n <RequiredRule message=\"Şube alanı zorunludur\"></RequiredRule>\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tur\"} editorType={\"dxSelectBox\"}\r\n editorOptions={{\r\n showClearButton: true,\r\n dataSource: new DataSource({\r\n loadMode: \"raw\",\r\n store: createStore({\r\n key: \"Value\",\r\n loadParams: {\r\n enumName: \"DevamsizlikTuru\"\r\n },\r\n loadUrl: otomasyonApi + 'common/getenums',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n }),\r\n valueExpr: \"Value\",\r\n displayExpr: \"Name\"\r\n }}\r\n >\r\n <Label text=\"Durum\"></Label>\r\n <RequiredRule message=\"Durum alanı zorunludur\" />\r\n </SimpleItem>\r\n <SimpleItem dataField={\"Tarih\"} editorType={\"dxDateBox\"}\r\n editorOptions={{\r\n value: new Date(),\r\n onValueChanged: (e) => {\r\n var t = new Date(e.value);\r\n t.setHours(t.getHours() + 3);\r\n this.formData.Tarih = t;\r\n\r\n }\r\n }}\r\n >\r\n <Label text=\"Tarih\"></Label>\r\n <RequiredRule message=\"Tarih alanı zorunludur\" />\r\n </SimpleItem>\r\n <ButtonItem horizontalAlignment=\"left\"\r\n buttonOptions={this.buttonOptions}\r\n />\r\n </Form>\r\n </div>\r\n </div>\r\n <div className='row' style={{ marginTop: \"10px\", display: !this.state.filter ? \"\" : \"none\" }}>\r\n <div className='col-md-12'>\r\n <Button\r\n text=\"Geri\"\r\n icon=\"back\"\r\n type=\"success\"\r\n width={\"100%\"}\r\n onClick={() => {\r\n this.setState({\r\n filter: true\r\n });\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div className='row' style={{ marginTop: \"10px\", display: !this.state.filter ? \"\" : \"none\" }}>\r\n <div className='col-md-12'>\r\n <List\r\n dataSource={this.ogrenciDataSource}\r\n selectionMode=\"multiple\"\r\n showSelectionControls={true}\r\n onInitialized={this.onInitializedOgrenciList}\r\n ref={(ref) => this.listOgrenci = ref}\r\n itemRender={OgrenciInfo}\r\n searchExpr=\"Adi\"\r\n searchEnabled={true}\r\n searchMode={\"startswith\"}\r\n indicateLoading={false}\r\n pageLoadMode={\"scrollBottom\"}\r\n pageLoadingText='Daha fazla göster'\r\n // selectionMode={this.state.selectionMode}\r\n // selectAllMode={this.state.selectAllMode}\r\n selectedItemKeys={this.state.selectedItemKeys}\r\n onOptionChanged={this.onSelectedItemKeysChange}\r\n >\r\n </List>\r\n </div>\r\n </div>\r\n <div className='row' style={{ marginTop: \"10px\", display: !this.state.filter ? \"\" : \"none\" }}>\r\n <div className='col-md-12'>\r\n <Button\r\n width={\"100%\"}\r\n text=\"Ekle\"\r\n type=\"success\"\r\n onClick={() => {\r\n const validateStatus = this.formDevamsizlik.instance.validate();\r\n if (!validateStatus.isValid) {\r\n return;\r\n }\r\n else {\r\n // if (this.formData.Konu.Id === \"\" || this.formData.Konu.Id === undefined || this.formData.Konu.Id === null) {\r\n // this.formData.Konu.Id = 0;\r\n // }\r\n let dersler = [];\r\n this.gridDersBoxValue.forEach((satir) => {\r\n dersler.push({\r\n Id: satir\r\n });\r\n })\r\n\r\n var ogrenciler = [];\r\n this.state.selectedItemKeys.forEach((satir) => {\r\n ogrenciler.push({\r\n Id: parseInt(satir)\r\n })\r\n });\r\n this.formData.Ogrenciler = ogrenciler;\r\n this.formData.Dersler = dersler;\r\n this.formData.Tarih = this.state.Tarih;\r\n service.post(otomasyonApi + \"devamsizlik/ekle\", this.formData, {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(async (res) => {\r\n if (res.data.Success) {\r\n notify(\"Devamsızlık eklendi\", \"success\", 5000);\r\n this.gridDevamsizlik.instance.refresh();\r\n\r\n } else {\r\n notify(res.data.ErrorMessage, \"error\", 5000);\r\n }\r\n })\r\n .catch(err => {\r\n if (err.response) {\r\n var resError = JSON.parse(err.response.request.response);\r\n var mesaj = \"<font color='red'>status:</font>\" + resError.status + \"<br/>\";\r\n var dictionary = Object.keys(resError.errors);\r\n dictionary.forEach((satir, index) => {\r\n mesaj += \"<font color='red'>\" + satir + \":</font>\" + resError.errors[satir.toString()][0] + \"<br/>\";\r\n });\r\n mesaj += \"<font color='red'>title:</font>\" + resError.title + \"<br/>\";\r\n mesaj += \"<font color='red'>traceId:</font>\" + resError.traceId + \"<br/>\";\r\n mesaj += \"<font color='red'>type:</font>\" + resError.type + \"<br/>\";\r\n alert(mesaj);\r\n // client received an error response (5xx, 4xx)\r\n } else if (err.request) {\r\n // client never received a response, or request never left\r\n } else {\r\n // anything else\r\n }\r\n })\r\n }\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div className='row' style={{ marginTop: \"10px\", display: !this.state.filter ? \"\" : \"none\" }}>\r\n <div className='col-md-12'>\r\n <Button\r\n text=\"Ders SMS Gönder\"\r\n icon=\"email\"\r\n type=\"success\"\r\n width={\"100%\"}\r\n onClick={() => {\r\n let dersler = [];\r\n this.gridDersBoxValue.forEach((satir) => {\r\n dersler.push({\r\n Id: satir\r\n });\r\n })\r\n const data = {\r\n Tarih: this.state.Tarih,\r\n DersNo: dersler\r\n };\r\n // this.setState({\r\n // toolbarDisabled: true\r\n // });\r\n service.post(otomasyonApi + \"sms/postdevamsizliksmsgonder\", data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n notify(res.data.Data, \"success\", 5000);\r\n }\r\n else {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }}\r\n />\r\n </div>\r\n </div>\r\n <div className='row' style={{ marginTop: \"10px\", display: !this.state.filter ? \"\" : \"none\" }}>\r\n <div className='col-md-12'>\r\n <Button\r\n text=\"Günlük SMS Gönder\"\r\n icon=\"email\"\r\n type=\"success\"\r\n width={\"100%\"}\r\n onClick={() => {\r\n const data = {\r\n Tarih: this.state.Tarih,\r\n DersNo: this.formData.Dersler\r\n };\r\n // this.setState({\r\n // toolbarDisabled: true\r\n // });\r\n service.post(otomasyonApi + \"sms/postgunlukdevamsizliksmsgonder\", data,\r\n {\r\n headers: {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.Success) {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n notify(res.data.Data, \"success\", 5000);\r\n }\r\n else {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + res.data.ErrorMessage, \"Hata\");\r\n }\r\n })\r\n .catch(err => {\r\n // this.setState({\r\n // toolbarDisabled: false\r\n // });\r\n alert(\"Teknik bir hata oluştu,hata ayrıntısı,\" + err, \"Hata\");\r\n });\r\n }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\nfunction OgrenciInfo(item) {\r\n return (\r\n <React.Fragment>\r\n <div>{item.Adi} {item.Soyadi}</div>\r\n </React.Fragment>\r\n );\r\n}","import * as React from \"react\";\r\nimport { otomasyonApi } from '../../../Util';\r\nimport Globals from '../../../Globals';\r\nimport 'devextreme/data/odata/store';\r\nimport { createStore } from 'devextreme-aspnet-data-nojquery';\r\nimport DataSource from 'devextreme/data/data_source';\r\nimport DataGrid, {\r\n ColumnFixing, Column, Paging, Pager, FilterRow, LoadPanel, HeaderFilter, FilterPanel, GroupItem, Export\r\n , Summary\r\n} from 'devextreme-react/data-grid';\r\nexport default class KurumGiderRaporu extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.gridKurumGider = null;\r\n this.satir = null;\r\n this.onInitializedGridKurumGider = this.onInitializedGridKurumGider.bind(this);\r\n this.onToolbarPreparing = this.onToolbarPreparing.bind(this);\r\n\r\n this.giderDataSource = new DataSource(\r\n {\r\n loadMode: \"raw\",\r\n key: \"Id\",\r\n store: createStore({\r\n key: \"Id\",\r\n loadUrl: otomasyonApi + 'dashboard/listkurumgiderraporu',\r\n onBeforeSend: (method, ajaxOptions) => {\r\n ajaxOptions.headers = {\r\n 'Authorization': 'Bearer ' + Globals.service.Token\r\n };\r\n }\r\n })\r\n });\r\n\r\n\r\n }\r\n\r\n onToolbarPreparing(e) {\r\n e.toolbarOptions.items.unshift(\r\n {\r\n location: 'after', locateInMenu: 'auto', widget: 'dxButton', options: {\r\n type: 'default', hint: 'Yenile', icon: 'refresh',\r\n onClick: () => {\r\n this.gridKurumGider.instance.refresh();\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n onInitializedGridKurumGider(e) {\r\n this.gridKurumGider = e.component;\r\n }\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-md-12\">\r\n <h4>{\"Otomasyon İşlemleri>>Rapor İşlemleri>>Kurum Gider Raporu\"}</h4>\r\n\r\n <DataGrid\r\n id=\"grdKurumGider\"\r\n showBorders={true}\r\n showRowLines={true}\r\n remoteOperations={true}\r\n dataSource={this.giderDataSource}\r\n onToolbarPreparing={this.onToolbarPreparing}\r\n onInitialized={this.onInitializedGridKurumGider}\r\n columnHidingEnabled={true}\r\n filterPanel={{ visible: true }}\r\n filterRow={{ visible: true }}\r\n columnAutoWidth={true}\r\n key={\"Id\"}\r\n selection={\r\n {\r\n mode: 'single'\r\n }}\r\n autoNavigateToFocusedRow={true}\r\n focusedRowEnabled={true}\r\n hoverStateEnabled={true}\r\n keyExpr=\"Id\"\r\n groupPanel={true}\r\n ref={(ref) => this.gridKurumGider = ref}\r\n >\r\n <Export\r\n enabled={true}\r\n fileName={'KurumGiderler'}\r\n allowExportSelectedData={false}\r\n texts={\r\n { exportAll: \"Ekrandaki Verileri Aktar\" }\r\n }\r\n />\r\n <ColumnFixing enabled={true} />\r\n <LoadPanel enabled={true} />\r\n <FilterRow visible={true} />\r\n <FilterPanel visible={true} />\r\n <HeaderFilter visible={true} />\r\n <Paging defaultPageSize={15} enabled={true} />\r\n <Pager showPageSizeSelector={true} allowedPageSizes={[15, 30, 45]} showInfo={true} />\r\n <Column dataField={'Id'} caption=\"Kayıt No\" visible={false} allowExporting={false} />\r\n <Column dataField={'Yil'} caption=\"Yıl\" groupIndex={0} />\r\n <Column dataField={'Ay'} caption=\"Ay\" groupIndex={1} />\r\n <Column dataField={'Gun'} caption=\"Gün\" />\r\n <Column dataField={'Gerceklestiren'} caption=\"Gerçekleştiren\" />\r\n <Column dataField={'Aciklama'} caption=\"Açıklama\" />\r\n <Column dataField={'Tutar'} caption=\"Tutar\" dataType={\"number\"} format={\"#,##0.##\"} />\r\n <Summary>\r\n <GroupItem\r\n column=\"Tutar\"\r\n summaryType=\"sum\"\r\n\r\n\r\n />\r\n\r\n </Summary>\r\n </DataGrid>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n","import AuthorizedLayout from './layouts/AuthorizedLayout';\r\nimport GuestLayout from './layouts/GuestLayout';\r\nimport React from 'react';\r\nimport { Switch } from 'react-router-dom';\r\nimport AppRoute from \"./components/shared/AppRoute\";\r\nimport LoginPage from './pages/LoginPage';\r\nimport RegisterPage from './pages/RegisterPage';\r\nimport AyarlarPage from './pages/AyarlarPage';\r\nimport HomePage from './pages/HomePage';\r\nimport KayitKabulDashboard from './pages/KayitKabulDashboard';\r\nimport VeliDashBoard from './pages/VeliDashboard';\r\nimport OgrenciDashBoard from './pages/OgrenciDashboard';\r\nimport OtomasyonAdminDasboard from './pages/OtomasyonAdminDasboard';\r\nimport RolIslemleri from './pages/YonetimModulu/RolIslemleri';\r\nimport KullaniciIslemleri from './pages/YonetimModulu/KullaniciIslemleri';\r\nimport RolEkranIslemleri from './pages/YonetimModulu/RolEkranIslemleri';\r\nimport KurumAktarmaIslemleri from './pages/YonetimModulu/KurumAktarmaIslemleri';\r\nimport ExcelKullaniciAktar from './pages/YonetimModulu/ExcelKullaniciAktar';\r\nimport OtomasyonKullaniciAktar from './pages/OtomasyonModulu/ExcelKullaniciAktar';\r\nimport OtomasyonKullanicilari from './pages/YonetimModulu/OtomasyonKullanicilari';\r\nimport OtomasyonGenelTanimlar from './pages/YonetimModulu/OtomasyonGenelTanimlar';\r\nimport OtomasyonGenelMerkezTanim from './pages/OtomasyonModulu/GenelTanimlar';\r\nimport OtomasyonSubeKullanici from './pages/OtomasyonModulu/SubeKullanici';\r\nimport OtomasyonDigerKullanici from './pages/OtomasyonModulu/Kullanici';\r\nimport OtomasyonOgrenciKayit from './pages/OtomasyonModulu/OgrenciIslemleri/OgrenciKayit';\r\nimport OtomasyonDevamsizlikKayit from './pages/OtomasyonModulu/DevamsizlikIslemleri/DevamsizlikKayit';\r\nimport OtomasyonGiderKayit from './pages/OtomasyonModulu/GiderIslemleri/GiderKayit';\r\nimport OdevTanim from './pages/OtomasyonModulu/OdevVeEtutIslemleri/OdevTanim';\r\nimport EtutTanim from './pages/OtomasyonModulu/OdevVeEtutIslemleri/EtutTanim';\r\nimport YayinIslemleri from './pages/SinavModulu/YayinIslemleri';\r\nimport YayineviKullaniciIslemleri from './pages/SinavModulu/YayineviKullaniciIslemleri';\r\nimport OptikFormTanimi from './pages/SinavIslemleri/OptikFormTanimi';\r\nimport SinavTanimi from './pages/SinavIslemleri/SinavTanimi';\r\nimport CevapAnahtariTanimi from './pages/SinavIslemleri/CevapAnahtariTanimi';\r\nimport SinavGonderimi from './pages/SinavIslemleri/SinavGonderimi';\r\nimport KurumEkle from './pages/KurumIslemleri/KurumEkle';\r\nimport DokumanIslemleri from './pages/SinavModulu/DokumanIslemleri';\r\nimport DuyuruIslemleri from './pages/SinavModulu/DuyuruIslemleri';\r\nimport OgrenciVeliAktarma from './pages/SinavModulu/OgrenciVeliAktarma';\r\nimport OgrenciSinavSonuclari from './pages/OgrenciModulu/OgrenciSinavSonuclari';\r\nimport KurumToplamTaksitRaporu from './pages/OtomasyonModulu/RaporIslemleri/KurumToplamTaksitRaporu';\r\nimport KurumTaksitTahsilatRaporu from './pages/OtomasyonModulu/RaporIslemleri/KurumTaksitTahsilatRaporu';\r\nimport KurumTaksitTahsilatDurumRaporu from './pages/OtomasyonModulu/RaporIslemleri/KurumTaksitTahsilatDurumRaporu';\r\nimport KurumTahsilatRaporu from './pages/OtomasyonModulu/RaporIslemleri/KurumTahsilatRaporu';\r\nimport KurumPesinatRaporu from './pages/OtomasyonModulu/RaporIslemleri/KurumPesinatRaporu';\r\nimport OgrenciSinavSonucPage from './pages/OgrenciSinavSonucPage';\r\nimport EduAsistOgrenciLoginPage from './pages/EduAsistOgrenciLoginPage';\r\nimport EduAsistVeliLoginPage from './pages/EduAsistVeliLoginPage';\r\nimport MobilKutuphane from './pages/OtomasyonModulu/InteraktifIslemler/MobilKutuphane';\r\nimport AkilliTahta from './pages/OtomasyonModulu/InteraktifIslemler/AkilliTahta';\r\nimport VideoCozum from './pages/OtomasyonModulu/InteraktifIslemler/VideoCozum';\r\nimport CrmGorevTuru from './pages/CrmModulu/CrmGorevTuru';\r\nimport Crm from './pages/CrmModulu/Crm';\r\nimport SanalOptikPage from './pages/SanalSinavModulu/SanalOptikPage';\r\nimport MobileLayout from './layouts/MobileLayout';\r\nimport Index from './pages/MobilModulu/Index';\r\nimport DevamsizlikFilterPage from './pages/MobilModulu/DevamsizlikFilterPage';\r\nimport KurumGiderRaporu from './pages/OtomasyonModulu/RaporIslemleri/KurumGiderRaporu';\r\nexport const routes = <Switch>\r\n <AppRoute layout={GuestLayout} exact path=\"/\" component={LoginPage} />\r\n <AppRoute layout={GuestLayout} exact path=\"/register\" component={RegisterPage} />\r\n <AppRoute layout={GuestLayout} exact path=\"/login\" component={LoginPage} />\r\n <AppRoute layout={GuestLayout} exact path=\"/eaogrencilogin/:KurumId/:KullaniciId/:Sifre\" component={EduAsistOgrenciLoginPage} />\r\n <AppRoute layout={GuestLayout} exact path=\"/eavelilogin/:KurumId/:OgrenciKullaniciId/:KullaniciId/:Sifre\" component={EduAsistVeliLoginPage} />\r\n <AppRoute layout={GuestLayout} exact path=\"/sinavsonucu/:yayinParam\" component={OgrenciSinavSonucPage} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/ayarlar\" component={AyarlarPage} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/home\" component={HomePage} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/kayitkabuldashboard\" component={KayitKabulDashboard} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/velidashboard\" component={VeliDashBoard} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/ogrencidashboard\" component={OgrenciDashBoard} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/otomasyondashboard\" component={OtomasyonAdminDasboard} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/KullaniciIslemleri\" component={KullaniciIslemleri} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/RolIslemleri\" component={RolIslemleri} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/RolEkranIslemleri\" component={RolEkranIslemleri} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/YayinIslemleri\" component={YayinIslemleri} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/ExcelKullaniciAktar\" component={ExcelKullaniciAktar} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/KurumAktarmaIslemleri\" component={KurumAktarmaIslemleri} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/OtomasyonKullanicilari\" component={OtomasyonKullanicilari} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/GenelTanimlar\" component={OtomasyonGenelTanimlar} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/GenelTanim\" component={OtomasyonGenelMerkezTanim} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/SubeKullanici\" component={OtomasyonSubeKullanici} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/Kullanici\" component={OtomasyonDigerKullanici} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/OgrenciIslemleri/OgrenciKayit\" component={OtomasyonOgrenciKayit} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/DevamsizlikIslemleri/DevamsizlikKayit\" component={OtomasyonDevamsizlikKayit} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/GiderIslemleri/GiderKayit\" component={OtomasyonGiderKayit} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/YayineviKullaniciIslemleri\" component={YayineviKullaniciIslemleri} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/YayinIslemleri/DokumanIslemleri\" component={DokumanIslemleri} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/YayinIslemleri/DuyuruIslemleri\" component={DuyuruIslemleri} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/SinavIslemleri/OptikFormTanimi\" component={OptikFormTanimi} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/SinavIslemleri/SinavTanimi\" component={SinavTanimi} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/SinavIslemleri/CevapAnahtariTanimi\" component={CevapAnahtariTanimi} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/SinavIslemleri/SinavGonderimi\" component={SinavGonderimi} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/SinavIslemleri/KurumEkle\" component={KurumEkle} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/SinavIslemleri/OgrenciVeliAktarma\" component={OgrenciVeliAktarma} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/OgrenciIslemleri/SinavSonuclari\" component={OgrenciSinavSonuclari} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/RaporIslemleri/KurumToplamTaksitRaporu\" component={KurumToplamTaksitRaporu} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/RaporIslemleri/KurumTaksitTahsilatRaporu\" component={KurumTaksitTahsilatRaporu} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/RaporIslemleri/KurumTaksitTahsilatDurumRaporu\" component={KurumTaksitTahsilatDurumRaporu} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/RaporIslemleri/KurumTahsilatRaporu\" component={KurumTahsilatRaporu} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/RaporIslemleri/KurumPesinatRaporu\" component={KurumPesinatRaporu} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/OdevVeEtutIslemleri/OdevTakip\" component={OdevTanim} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/OdevVeEtutIslemleri/EtutTakip\" component={EtutTanim} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/ExcelKullaniciAktar\" component={OtomasyonKullaniciAktar} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/InteraktifIslemler/MobilKutuphane\" component={MobilKutuphane} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/InteraktifIslemler/AkilliTahta\" component={AkilliTahta} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/InteraktifIslemler/VideoCozum\" component={VideoCozum} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Crm/CrmGorevTurleri\" component={CrmGorevTuru} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Crm/Crm\" component={Crm} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/SanalSinif/SanalOptikSinav\" component={SanalOptikPage} />\r\n <AppRoute layout={MobileLayout} exact path=\"/mobile/index\" component={Index} />\r\n <AppRoute layout={MobileLayout} exact path=\"/mobile/devamsizlikfilter\" component={DevamsizlikFilterPage} />\r\n <AppRoute layout={AuthorizedLayout} exact path=\"/Otomasyon/RaporIslemleri/KurumGiderRaporu\" component={KurumGiderRaporu} />\r\n</Switch>;","import { MainSystemActionTypes } from \"../constants/action-types\";\r\n\r\nconst initialState = {\r\n info: {\r\n connectionState: false,\r\n remoteToken: null\r\n }\r\n};\r\nexport const mainSystemUserReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case MainSystemActionTypes.SET_REMOTE_SYSTEM_INFO:\r\n return { ...state, info: action.payload };\r\n default:\r\n return state;\r\n }\r\n}","import { KepsSystemActionTypes } from \"../constants/action-types\";\r\n\r\nconst initialState = {\r\n shortCodes: []\r\n};\r\nexport const kepsSystemReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n\r\n case KepsSystemActionTypes.SET_SHORT_CODES:\r\n return { ...state, shortCodes: Object.assign([], action.payload) };\r\n default:\r\n return state;\r\n }\r\n}","import { SanalSinavSystemActionTypes } from \"../constants/action-types\";\r\n\r\nconst initialState = {\r\n info: {\r\n }\r\n};\r\nexport const sanalSinavSystemReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case SanalSinavSystemActionTypes.SET_SANAL_SINAV_BILGISI:\r\n return { ...state, info: action.payload };\r\n default:\r\n return state;\r\n }\r\n}","import { combineReducers } from \"redux\";\r\nimport { mainSystemUserReducer } from \"./mainSystemReducer\";\r\nimport { kepsSystemReducer } from './kepsSystemReducer';\r\nimport { sanalSinavSystemReducer } from './sanalSinavSystemReducer';\r\nconst reducers = combineReducers({\r\n remoteSystem: mainSystemUserReducer,\r\n kepsSystem: kepsSystemReducer,\r\n sanalSinavSystem: sanalSinavSystemReducer\r\n});\r\nexport default reducers;","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport { routes } from './routes';\nimport Globals from './Globals';\nimport { Provider } from 'react-redux';\nimport { PersistGate } from 'redux-persist/integration/react';\nimport { persistReducer, persistStore } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\nimport reducers from './redux/reducers';\nimport { createStore } from \"redux\";\nconst persistConfig = {\n key: 'root',\n storage,\n whitelist: [\"remoteSystem\", \"kepsSystem\", \"sanalSinavSystem\"]\n};\n\nconst persistedReducer = persistReducer(persistConfig, reducers);\n\n/*\nRedux toolkit by default enables devtools on all environments.\nIt is best practice to disable devtools on production.\nHowever, some say having devtools enabled in production is not an issue.\n*/\n\nexport const store = createStore(\n persistedReducer,\n window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()\n);\n\n\nlet persistor = persistStore(store);\n\nfunction App() {\n Globals.init();\n return routes;\n}\nReactDOM.render(\n <Provider store={store}>\n <BrowserRouter>\n <PersistGate loading={null} persistor={persistor}>\n <App />\n </PersistGate>\n </BrowserRouter>\n </Provider>\n ,\n document.getElementById('root')\n);\n\n"],"sourceRoot":""}