@hpcc-js/marshaller 2.28.11 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2 -18051
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +3 -0
- package/dist/index.umd.cjs.map +1 -0
- package/package.json +46 -46
- package/src/__package__.ts +3 -3
- package/src/dashy.css +45 -34
- package/src/dashy.ts +20 -18
- package/src/ddl1/FlyoutButton.ts +3 -2
- package/src/ddl1/Graph.ts +8 -5
- package/src/ddl1/HTML.ts +1 -1
- package/src/ddl1/HipieDDL.ts +5 -1
- package/src/ddl1/HipieDDLMixin.ts +31 -20
- package/src/ddl1/Tabbed.ts +1 -1
- package/src/ddl1/TargetMarshaller.ts +1 -1
- package/src/ddl2/PopupManager.ts +2 -2
- package/src/ddl2/activities/activity.ts +1 -1
- package/src/ddl2/activities/databomb.ts +3 -3
- package/src/ddl2/activities/datasource.ts +25 -18
- package/src/ddl2/activities/dspicker.ts +38 -29
- package/src/ddl2/activities/filter.ts +79 -56
- package/src/ddl2/activities/form.ts +29 -20
- package/src/ddl2/activities/groupby.ts +55 -37
- package/src/ddl2/activities/hipiepipeline.ts +61 -74
- package/src/ddl2/activities/limit.ts +8 -6
- package/src/ddl2/activities/logicalfile.ts +14 -10
- package/src/ddl2/activities/nullview.ts +1 -1
- package/src/ddl2/activities/project.ts +78 -50
- package/src/ddl2/activities/rest.ts +95 -70
- package/src/ddl2/activities/roxie.ts +55 -41
- package/src/ddl2/activities/sort.ts +23 -14
- package/src/ddl2/activities/wuresult.ts +78 -54
- package/src/ddl2/dashboard.css +8 -8
- package/src/ddl2/dashboard.ts +17 -17
- package/src/ddl2/dashboardDockPanel.ts +3 -3
- package/src/ddl2/dashboardGrid.ts +4 -4
- package/src/ddl2/ddl.ts +19 -21
- package/src/ddl2/dsTable.ts +22 -18
- package/src/ddl2/dvTable.ts +1 -1
- package/src/ddl2/graphadapter.ts +11 -11
- package/src/ddl2/javascriptadapter.ts +4 -4
- package/src/ddl2/model/element.ts +56 -42
- package/src/ddl2/model/visualization.ts +92 -70
- package/src/ddl2/pipelinePanel.ts +26 -18
- package/src/index.ts +25 -25
- package/types/__package__.d.ts +3 -4
- package/types/dashy.d.ts +9 -7
- package/types/ddl2/PopupManager.d.ts +2 -3
- package/types/ddl2/activities/activity.d.ts +0 -1
- package/types/ddl2/activities/databomb.d.ts +3 -4
- package/types/ddl2/activities/datasource.d.ts +12 -10
- package/types/ddl2/activities/dspicker.d.ts +11 -8
- package/types/ddl2/activities/filter.d.ts +45 -26
- package/types/ddl2/activities/form.d.ts +19 -10
- package/types/ddl2/activities/groupby.d.ts +29 -15
- package/types/ddl2/activities/hipiepipeline.d.ts +27 -20
- package/types/ddl2/activities/limit.d.ts +6 -5
- package/types/ddl2/activities/logicalfile.d.ts +10 -7
- package/types/ddl2/activities/nullview.d.ts +1 -2
- package/types/ddl2/activities/project.d.ts +42 -21
- package/types/ddl2/activities/rest.d.ts +49 -30
- package/types/ddl2/activities/roxie.d.ts +28 -18
- package/types/ddl2/activities/sort.d.ts +13 -7
- package/types/ddl2/activities/wuresult.d.ts +24 -16
- package/types/ddl2/dashboard.d.ts +3 -4
- package/types/ddl2/dashboardDockPanel.d.ts +2 -3
- package/types/ddl2/dashboardGrid.d.ts +3 -4
- package/types/ddl2/ddl.d.ts +11 -12
- package/types/ddl2/ddleditor.d.ts +2 -2
- package/types/ddl2/dsTable.d.ts +2 -3
- package/types/ddl2/dvTable.d.ts +1 -2
- package/types/ddl2/graphadapter.d.ts +4 -5
- package/types/ddl2/javascriptadapter.d.ts +2 -3
- package/types/ddl2/model/element.d.ts +22 -14
- package/types/ddl2/model/visualization.d.ts +28 -20
- package/types/ddl2/model/vizChartPanel.d.ts +0 -1
- package/types/ddl2/pipelinePanel.d.ts +5 -3
- package/types/index.d.ts +25 -26
- package/dist/index.es6.js +0 -17994
- package/dist/index.es6.js.map +0 -1
- package/dist/index.min.js +0 -3
- package/dist/index.min.js.map +0 -1
- package/types/__package__.d.ts.map +0 -1
- package/types/dashy.d.ts.map +0 -1
- package/types/ddl1/DDLApi.d.ts +0 -179
- package/types/ddl1/DDLApi.d.ts.map +0 -1
- package/types/ddl1/FlyoutButton.d.ts +0 -24
- package/types/ddl1/FlyoutButton.d.ts.map +0 -1
- package/types/ddl1/Graph.d.ts +0 -22
- package/types/ddl1/Graph.d.ts.map +0 -1
- package/types/ddl1/HTML.d.ts +0 -12
- package/types/ddl1/HTML.d.ts.map +0 -1
- package/types/ddl1/HipieDDL.d.ts +0 -100
- package/types/ddl1/HipieDDL.d.ts.map +0 -1
- package/types/ddl1/HipieDDLMixin.d.ts +0 -77
- package/types/ddl1/HipieDDLMixin.d.ts.map +0 -1
- package/types/ddl1/Tabbed.d.ts +0 -12
- package/types/ddl1/Tabbed.d.ts.map +0 -1
- package/types/ddl1/TargetMarshaller.d.ts +0 -5
- package/types/ddl1/TargetMarshaller.d.ts.map +0 -1
- package/types/ddl2/PopupManager.d.ts.map +0 -1
- package/types/ddl2/activities/activity.d.ts.map +0 -1
- package/types/ddl2/activities/databomb.d.ts.map +0 -1
- package/types/ddl2/activities/datasource.d.ts.map +0 -1
- package/types/ddl2/activities/dspicker.d.ts.map +0 -1
- package/types/ddl2/activities/filter.d.ts.map +0 -1
- package/types/ddl2/activities/form.d.ts.map +0 -1
- package/types/ddl2/activities/groupby.d.ts.map +0 -1
- package/types/ddl2/activities/hipiepipeline.d.ts.map +0 -1
- package/types/ddl2/activities/limit.d.ts.map +0 -1
- package/types/ddl2/activities/logicalfile.d.ts.map +0 -1
- package/types/ddl2/activities/nullview.d.ts.map +0 -1
- package/types/ddl2/activities/project.d.ts.map +0 -1
- package/types/ddl2/activities/rest.d.ts.map +0 -1
- package/types/ddl2/activities/roxie.d.ts.map +0 -1
- package/types/ddl2/activities/sort.d.ts.map +0 -1
- package/types/ddl2/activities/wuresult.d.ts.map +0 -1
- package/types/ddl2/dashboard.d.ts.map +0 -1
- package/types/ddl2/dashboardDockPanel.d.ts.map +0 -1
- package/types/ddl2/dashboardGrid.d.ts.map +0 -1
- package/types/ddl2/ddl.d.ts.map +0 -1
- package/types/ddl2/ddleditor.d.ts.map +0 -1
- package/types/ddl2/dsTable.d.ts.map +0 -1
- package/types/ddl2/dvTable.d.ts.map +0 -1
- package/types/ddl2/graphadapter.d.ts.map +0 -1
- package/types/ddl2/javascriptadapter.d.ts.map +0 -1
- package/types/ddl2/model/element.d.ts.map +0 -1
- package/types/ddl2/model/visualization.d.ts.map +0 -1
- package/types/ddl2/model/vizChartPanel.d.ts.map +0 -1
- package/types/ddl2/pipelinePanel.d.ts.map +0 -1
- package/types/index.d.ts.map +0 -1
- package/types-3.4/__package__.d.ts +0 -4
- package/types-3.4/dashy.d.ts +0 -54
- package/types-3.4/ddl1/DDLApi.d.ts +0 -179
- package/types-3.4/ddl1/FlyoutButton.d.ts +0 -24
- package/types-3.4/ddl1/Graph.d.ts +0 -22
- package/types-3.4/ddl1/HTML.d.ts +0 -12
- package/types-3.4/ddl1/HipieDDL.d.ts +0 -100
- package/types-3.4/ddl1/HipieDDLMixin.d.ts +0 -77
- package/types-3.4/ddl1/Tabbed.d.ts +0 -12
- package/types-3.4/ddl1/TargetMarshaller.d.ts +0 -5
- package/types-3.4/ddl2/PopupManager.d.ts +0 -20
- package/types-3.4/ddl2/activities/activity.d.ts +0 -106
- package/types-3.4/ddl2/activities/databomb.d.ts +0 -46
- package/types-3.4/ddl2/activities/datasource.d.ts +0 -24
- package/types-3.4/ddl2/activities/dspicker.d.ts +0 -29
- package/types-3.4/ddl2/activities/filter.d.ts +0 -113
- package/types-3.4/ddl2/activities/form.d.ts +0 -40
- package/types-3.4/ddl2/activities/groupby.d.ts +0 -85
- package/types-3.4/ddl2/activities/hipiepipeline.d.ts +0 -37
- package/types-3.4/ddl2/activities/limit.d.ts +0 -15
- package/types-3.4/ddl2/activities/logicalfile.d.ts +0 -19
- package/types-3.4/ddl2/activities/nullview.d.ts +0 -6
- package/types-3.4/ddl2/activities/project.d.ts +0 -122
- package/types-3.4/ddl2/activities/rest.d.ts +0 -142
- package/types-3.4/ddl2/activities/roxie.d.ts +0 -112
- package/types-3.4/ddl2/activities/sort.d.ts +0 -38
- package/types-3.4/ddl2/activities/wuresult.d.ts +0 -87
- package/types-3.4/ddl2/dashboard.d.ts +0 -53
- package/types-3.4/ddl2/dashboardDockPanel.d.ts +0 -19
- package/types-3.4/ddl2/dashboardGrid.d.ts +0 -29
- package/types-3.4/ddl2/ddl.d.ts +0 -44
- package/types-3.4/ddl2/ddleditor.d.ts +0 -14
- package/types-3.4/ddl2/dsTable.d.ts +0 -21
- package/types-3.4/ddl2/dvTable.d.ts +0 -10
- package/types-3.4/ddl2/graphadapter.d.ts +0 -30
- package/types-3.4/ddl2/javascriptadapter.d.ts +0 -31
- package/types-3.4/ddl2/model/element.d.ts +0 -99
- package/types-3.4/ddl2/model/visualization.d.ts +0 -48
- package/types-3.4/ddl2/model/vizChartPanel.d.ts +0 -44
- package/types-3.4/ddl2/pipelinePanel.d.ts +0 -16
- package/types-3.4/index.d.ts +0 -27
package/dist/index.min.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["PKG_NAME","PKG_VERSION","BUILD_VERSION","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","_","label","sent","trys","ops","g","Iterator","verb","Symbol","iterator","v","op","pop","push","__spreadArray","to","from","pack","ar","l","slice","concat","stringify","obj_from_json","isArray","map","join","JSON","props","keys","schemaType2IFieldType","type","schemaRow2IField","row","_children","id","name","children","SuppressedError","Activity","_super","_this","_emptyFields","_emptyData","_prevDataHash","_prevInData","_prevData","fixInt64","data","int64Fields","outFields","filter","field","_i","int64Fields_1","int64Field","sourceActivity","_sourceActivity","hash","more","hashSum","refreshMeta","exists","validate","updatedBy","inFields","computeFields","localFields","inFieldIDs","indexOf","fieldOrigin","fieldID","resolveFields","refs","fieldIDs","fieldIDs_1","outputs","resolveInFields","referencedFields","exec","inData","outData","computeData","cachedComputeData","update","PropertyExt","ActivityArray","_activities","activities","_class","ActivityPipeline","prevActivity","_1","activity","first","last","retVal","calcUpdatedGraph","source","updatedByGraph","_a","fetch","count","Number","MAX_VALUE","ActivitySelection","selection","undefined","_selection","_monitorHandle","remove","monitor","newVal","oldVal","broadcast","datasourceID","Datasource","_id","DatasourceRef","datasource","_datasource","toDDL","publish","internal","FormField","disableChildField","default","childFields","cf","fromDDL","ddl","owner","_owner","valid","coerceFunc","cell","calcValue","value_exists","optional","autoExpand","disable","w","Form","fields","validFields","skipID","formFields","forEach","total","fieldType","rowToFields","_jsonData","_jsonData_1","row_1","found","_childKey","rowFields","rf","_jsonData_2","row_2","Databomb","skipPayload","format","payload","databombFields","updateJsonData","d3CsvParse","d3TsvParse","parse","preCalcFields","coarceFuncMap","multiline","payloadFormat","databombPayloadOrig","emptyDatabomb","DatasourceAdapt","_activity","ESPResult","_ec","_schema","_meta","_data","_exec","debounce","_prevExecHash","sample","response","catch","_fetchQ","AsyncOrderedQueue","samples","sampleSize","pages","_fetch","lastPage","Math","floor","all","responses","retVal2","responses_1","_prevMetaHash","refreshMetaPromise","_result","_createResult","refresh","Error","_total","Total","responseFields","fetchRows","WUResult","_wu","WU","wu","resultName","_resultName","url","wuid","ec","Result","attach","baseUrl","hookSend","sourceHash","resultNames","_outputs","_resultNames","_url","_wuid","ddlOutputs","wuResults","elementContainer","outputDDL","output","_prevSourceHash","_workunit","Workunit","fetchResults","results","Name","WUResultRef","LogicalFile","logicalFile","attachLogicalFile","nodeGroup","RestField","RestService","_responseFields","_submitQ","action","mode","inputs","validRequestFields","requestFields","submit","request","requestHash","_prevPromise","_prevRequestHash","conn","createConnection","send","RestResult","_service","service","rs","serviceID","jsonDataFields","resultFields_1","split","formatRequest","Param","prefix","source_valid","msg","hint","visualizationIDs","remoteField_valid","remoteField","sourceOutFields","value_valid","remoteFieldID","localFieldID","localField","sourceField","elementIDs","sourceFields","sourceViz","element","hipiePipeline","selectionFields","sourceSelection","source_exists","remoteField_exists","localField_exists","source_disabled","remoteField_disabled","value_disabled","RestResultRef","_request","validParams","vp","requestFieldRefs","fc","param","filterSource","oldParams","diffs","compare","ff","newParams","enter","_prevRequestPromise","RoxieService","_type","querySet","queryID","queryId","ignoreHipieRequest","ignoreHipieResponse","hasMeta_1","_requestFields","query","CommsQuery","_query","requestField","isHipieResponse","resultFields","RoxieResult","RoxieResultRef","params","localFieldIDs","hasRequest","_value","Item","toLowerCase","replace","HipieResultRef","fullUrl","info","parts","urlParts","roxieParts","parseUrl","dsPickerID","DSPicker","_nullDatasource","ds","datasources","_datasourceID","refreshRef","datasourceRef","datasourceIDs","text","isWorkunitDatasource","ref","WUID","isDatabombDatasource","databomb","isPieVisualization","viz","isLineVisualization","isChoroVisualization","isTableVisualization","isSliderVisualization","isGraphVisualization","isFormVisualization","isWUResultRef","isRoxieServiceRef","viewID","classMappings","c3chart_Bar","c3chart_Column","c3chart_Pie","c3chart_Area","c3chart_Line","amchart_Bar","amchart_Column","amchart_Pie","amchart_Area","amchart_Line","google_Bar","google_Column","google_Pie","google_Area","google_Line","other_Table","propertyMappings","xAxisLabelRotation","transform","tooltipLabelColor","tooltipSeriesColor","tooltipValueColor","tooltipValueFormat","timePattern","smoothLines","holePercent","flip","bottomText","xAxisTypeTimePattern","yAxisTypeTimePattern","valueFormat","stacked","showYGrid","showXGrid","showValueLabel","low","high","fillOpacity","areaFillOpacity","showToolbar","showCSV","findKeyVal","object","val","k","apply_to_dataviews","ddl2","dermObj","dataviews","dv","widgetId","dermPanelObj","dermPanelProps","__properties","dermWidgetObj","chart","widget","dermWidgetProps","visualization","__class","swap_with_supported_class","properties","apply_class_mapping","propName","title","description","visibility","chartType","newPropName","showLegend","legendVisible","apply_panel_property_mapping","_loop_1","apply_widget_property_mapping","charttype","console","warn","faCharFix","faChar","DDLUpgrade","_datasources","_datasourceUpdates","_visualizations","_ddl2Datasources","_ddl2DatasourceFields","_ddl2Dataviews","_ddl2DataviewActivities","_ddl","_baseUrl","_toLowerCase","indexDDL","readDDL","isVizDatasourceRoxie","URL","DDL1.isHipieDatasource","getDatasourceOutputs","dsID","vizID","notify","_b","_c","getDatasourceFilters","dsOut","fieldid","dashboards","visualizations","_d","_e","_f","_g","_h","_j","DDL1.isWorkunitDatasource","ddl2DS","output2output","DDL1.isDatabombDatasource","hostParts","formFields2field","anyViz2view","readGroupBy","readFilters","readSort","readMappings","projectTransformations","groupByColumns","aggrFields","function","func2aggr","inFieldID","param1","baseCountFieldID","param2","sourceFieldID","factor","project","transformations","groupBy","groupByIDs","aggregates","func","DDL1.isFormVisualization","DDL1.isPieVisualization","readPieMappings","DDL1.isChoroVisualization","readChoroMappings","DDL1.isLineVisualization","readLineMappings","DDL1.isTableVisualization","readTableMappings","DDL1.isGraphVisualization","readGraphMappings","DDL1.isSliderVisualization","readSliderMappings","mappings","weight","anyChoroMapping2label","mapping","state","county","geohash","x","readGraphEnums","valueMappings","annotation","newValue","uid","icon","fachar","valuemappings","idx","flag","link","childfile","events","eventID","updates","otherViz","dsFilters","DDL2.isRoxieServiceRef","condition","dsFilter","rule2condition","rule","nullable","filters","conditions","sort","substr","descending","limit","flyout","type2chartType","slider","formFieldType2fieldType","datatype","filters2fields","idParts","getVizField","writeDatasources","writeDataviews","writeProperties","write","version","createdBy","upgrade","dermatologyJson","layout","content","cellPosition","__id","position","gridCol","gridRow","gridColSpan","gridRowSpan","apply_to_properties_layout","merge","sets","_len","_key","xl","subexp","str","typeOf","o","toString","shift","toUpperCase","toArray","obj","setInterval","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","UNRESERVED$$","DEC_OCTET$","DEC_OCTET_RELAXED$","H16$","LS32$","IPV4ADDRESS$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","ZONEID$","HOST$","PCHAR$","IPRIVATE$$","NOT_SCHEME","RegExp","NOT_USERINFO","NOT_HOST","NOT_PATH","NOT_PATH_NOSCHEME","NOT_QUERY","NOT_FRAGMENT","ESCAPE","UNRESERVED","OTHER_CHARS","PCT_ENCODED","IPV4ADDRESS","IPV6ADDRESS$","URI_PROTOCOL","IRI_PROTOCOL","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","stringFromCharCode","fromCharCode","error","RangeError","array","fn","mapDomain","string","ucs2decode","counter","charCodeAt","extra","basicToDigit","codePoint","digitToBasic","digit","adapt","delta","numPoints","firstTime","decode","input","inputLength","bias","basic","lastIndexOf","j","error$1","index","oldi","baseMinusT","out","splice","fromCodePoint","encode","_step","_iteratorNormalCompletion","_iterator","currentValue","basicLength","handledCPCount","m","_step2","_iteratorNormalCompletion2","_iterator2","handledCPCountPlusOne","_step3","_iteratorNormalCompletion3","_iterator3","q","qMinusT","toUnicode","test","toASCII","punycode","ucs2","ucs2encode","toConsumableArray","SCHEMES","pctEncChar","chr","pctDecChars","newStr","il","parseInt","c2","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","match","scheme","userinfo","host","path","fragment","_stripLeadingZeros","_normalizeIPv4","matches","address","_normalizeIPv6","IPV6ADDRESS","_matches2","zone","reverse","_address$toLowerCase$2","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","longestZeroFields","reduce","acc","lastLongest","a","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","options","iri","reference","port","isNaN","schemeHandler","unicodeSupport","domainHost","_recomposeAuthority","uriTokens","$1","$2","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","serialize","authority","charAt","absolutePath","resolveComponents","relative","tolerant","baseURI","relativeURI","schemelessOptions","normalize","uri","equal","uriA","uriB","escapeComponent","unescapeComponent","handler","secure","http","isSecure","wsComponents","resourceName","_wsComponents$resourc2","ws","O","ATEXT$$","VCHAR$$","SOME_DELIMS$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","mailtoComponents","unknownHeaders","headers","hfields","hfield","toAddrs","subject","addr","toAddr","atIdx","localPart","domain","URN_PARSE","urnComponents","nid","nss","urnScheme","uriComponents","UUID","uuidComponents","uuid","https","wss","mailto","urn","fastDeepEqual","flags","valueOf","checkDataType","dataType","strictNumbers","negate","EQUAL","AND","OK","NOT","util","copy","checkDataTypes","dataTypes","code","types","toHash","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","escapeQuotes","require$$0","ucs2length","len","pos","varOccurences","dataVar","varReplace","expr","schemaHasRules","schema","rules","schemaHasRulesExcept","exceptKeyword","schemaUnknownRules","toQuotedString","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","JSON_POINTER","RELATIVE_JSON_POINTER","segments","segment","unescapeJsonPointer","unescapeFragment","decodeURIComponent","escapeFragment","encodeURIComponent","arr","IDENTIFIER","SINGLE_QUOTE","schema_obj","traverse","jsonSchemaTraverseModule","exports","opts","cb","_traverse","pre","post","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","parentSchema","keyIndex","sch","arrayKeywords","propsKeywords","escapeJsonPtr","keywords","allKeys","skipKeywords","additionalItems","items","contains","additionalProperties","propertyNames","not","allOf","anyOf","oneOf","definitions","patternProperties","dependencies","enum","const","required","maximum","minimum","exclusiveMaximum","exclusiveMinimum","multipleOf","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","maxProperties","minProperties","URI","require$$1","require$$2","SchemaObject","require$$3","require$$4","compile","root","refVal","_refs","_schemas","inlineRef","_opts","inlineRefs","_compile","baseId","res","resolveSchema","refPath","_getFullPath","getFullPath","_getId","normalizeId","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","resolve_1","fullPath","ids","schemaId","baseIds","fullPaths","localRefs","self","PREVENT_SCOPE_CHANGE","part","$ref","SIMPLE_INLINED","checkNoRef","countKeys","item","Infinity","TRAILING_SLASH_HASH","MissingRefError","message","missingRef","missingSchema","errorSubclass","Subclass","error_classes","Validation","ajv","validation","MissingRef","fastJsonStableStringify","cmp","cycles","node","aobj","bobj","seen","toJSON","isFinite","seenIndex","it","$keyword","$ruleType","$async","$refKeywords","RULES","$id","strictKeywords","$unknownKwd","$keywordsMsg","logger","isTop","async","sourceCode","processCode","$lvl","level","$dataLvl","dataLevel","$schema","$schemaPath","schemaPath","$errSchemaPath","errSchemaPath","$breakOnError","allErrors","$valid","$$outStack","createErrors","messages","verbose","__err","compositeRule","$top","rootId","dataPathArr","useDefaults","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","extendRefs","$comment","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$method","$dataType","$coerced","arr1","$type","$i","l1","$parentData","arr2","i2","l2","arr3","$propertyKey","i3","l3","$sch","$passData","useDefault","arr4","l4","arr5","$rule","i5","l5","$shouldUseRule","$code","keyword","implements","impl","$ruleImplementsSomeKeyword","errorClasses","stableStringify","validateGenerator","require$$5","ValidationError","checkCompiling","compIndex","compiling","_compilations","endCompiling","defaultCode","refValCode","customRuleCode","vars","statement","compile_1","patterns","patternsHash","defaults","defaultsHash","customRules","patternCode","regExp","compilation","callValidate","formats","_formats","localCompile","cv","_root","isRoot","errorPath","resolveRef","usePattern","useCustomRule","Function","makeValidate","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","refId","replaceLocalRef","removeLocalRef","inline","regexStr","valueStr","validateSchema","deps","definition","every","errorsText","macro","_limit","$schemaValue","$isData","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","_limitItems","_limitLength","unicode","_limitProperties","ruleModules","dotjs","$refCode","$refVal","$message","missingRefs","$it","$nextValid","passContext","__callValidate","$closingBraces","$currentBaseId","$allSchemasEmpty","$errs","$noEmptySchema","$wasComposite","comment","_const","$idx","$dataNxt","$nextData","$nonEmptySchema","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$useData","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","_enum","$vSchema","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","$formatRef","if","_if","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","$additionalItems","$currErrSchemaPath","require$$11","require$$12","require$$13","require$$14","multipleOfPrecision","$allErrorsOption","$prevValid","$passingSchemas","$regExpCode","$key","$dataProperties","$schemaKeys","notProto","$pProperties","$pPropertyKeys","$aProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","i1","$pProperty","$additionalProperty","$useDefaults","$hasDefault","i4","$invalidName","$propertySch","$loopRequired","$itemType","require$$23","ALL","group","implKeywords","custom","compileAsync","meta","callback","loadSchema","loadMetaSchemaOf","schemaObj","_addSchema","_compileAsync","getSchema","added","schemaPromise","_loadingSchemas","removePromise","addSchema","loadMissingSchema","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","$parentDataProperty","def_callRuleValidate","modifying","def_customError","definitionSchema","metaSchema","definition_schema","simpleTypes","add","validateKeyword","_addRule","ruleGroup","rg","get","throwError","_validateKeyword","compileSchema","Cache","cacheModule","_cache","put","del","clear","DATE","DAYS","TIME","HOSTNAME","URITEMPLATE","JSON_POINTER_URI_FRAGMENT","date","year","month","day","isLeapYear","time","full","hour","minute","second","timeZone","formats_1","fast","email","hostname","ipv4","ipv6","regex","dateTime","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","Z_ANCHOR","require$$6","$dataMetaSchema","KEYWORDS","keywordsJsonPointers","require$$7","require$$8","Ajv","schemaKeyRef","_skipValidation","checkUnique","addMetaSchema","skipValidation","throwOrLogError","defaultMeta","META_SCHEMA_ID","keyRef","_getSchemaObj","_fragments","_getSchemaFragment","removeSchema","_removeAllSchemas","cacheKey","addFormat","separator","dataPath","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","currentOpts","_metaOpts","_validate","require$$9","customKeyword","require$$10","addKeyword","getKeyword","removeKeyword","META_IGNORE_OPTIONS","META_SUPPORT_DATA","log","noop","setLogger","cache","_get$IdOrId","_get$Id","chooseGetId","errorDataPath","metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","$dataSchema","addDefaultMetaSchema","optsSchemas","schemas","addInitialSchemas","_Ajv.default","_Ajv","ddl2Schema","_ddl2Schema","validate2","success","doValidate","isDDL2Schema","createFilter","lf","isString","localRow","trim","ColumnMapping","localField_valid","remoteValues","filterSelection","sel","createFilterDescription","fsArr","some","fs","fs0","RemoteFilter","validMappings","ddlMappings","appendMappings","mappings_1","mappingFilters","mappingFilter","StaticFilter","coerceValue","valueType","Filters","validFilters","remoteFilters","staticFilters","DDL2","isIFilterCondition","remoteFilter","staticFilter","sourceID","validRemoteFilters","remoteFieldIDs","validStaticFilters","Filter","Mapping","GroupByColumn","label_valid","columns","d3Aggr","leaves","min","d3Min","max","d3Max","mean","d3Mean","median","d3Median","variance","d3Variance","deviation","d3Deviation","sum","d3Sum","AggregateField","disableAggrColumn","aggrType","disableBaseCountColumn","aggrColumn_valid","aggrColumn","baseCountColumn_valid","baseCountColumn","hasColumn","aggregate","values","leaf","aggrFunc","GroupBy","validGroupBy","gbColumn","validComputedFields","cfs","column","gb","computedFields","appendGroupBys","columns_1","appendComputedFields","aggregateFields","aggregateFields_1","aggregateField","aggrField","computedField","hasComputedFields","groups","groups_1","groupByField","details","detailsTarget","rows","columns_2","fullDetails","columnLabels","d3Nest","columnLabels_1","entries","_row","columnLabels_2","groupByLabel","computedFields_1","outFields_1","Limit","rows_exists","ComputedMapping","newValue_valid","ComputedField","disableColumn1","disableColumn2","disableMapping","hasChildren","column1_valid","column1","column2_valid","column2","validComputedMappings","cm","validChildFields","childField","hasChildFields","constValue","template","sourceFieldID1","sourceFieldID2","transformation","child","projection","computeFunc","Row","constValue_1","template_1","Utility","defValue_1","MultiField","validMultiFields","multiFields","ProjectBase","_includeLParam","_trim","classID","clearComputedFields","computedFields_2","retValMap","cf2","templateFields","computedFields_3","noDeserialize","Project","Mappings","SortColumn","fieldID_valid","sortColumn","Sort","validSortBy","sb","sortBy","sortByArr","d3Descending","d3Ascending","sortByArr_1","Column","HipiePipeline","_filters","_project","_groupBy","_sort","updateSequence","NullView","VizPopupPanel","ownerLParam","_ownerLParam","_drawStartPos","visible","minHeight_default","minWidth_default","overflowY_default","_host","_togglePopup","selected","render","vizActivation","domNode","parentElement","style","widgetTitle","titleVisible","fixedTop","_pos","fixedLeft","exit","closeModal","Modal","VizChartPanel","ToggleButton","tooltip","on","_popup","dpBBox","locateClosestAncestor","getBBox","cp","tbBBox","width","minWidth","height","resize","minHeight","popup","widgetSelector","querySelector","getBoundingClientRect","resizeBodySync","_origButtons","buttons","_filterButtons","Spacer","ChartPanel","VizTypeMap","Table","FieldForm","Area","Bubble","Bar","Contour","HexBin","Line","Pie","Radar","RadialBar","Scatter","Step","WordCloud","USCountiesChoropleth","ChoroplethCounties","USStatesChoropleth","ChoroplethStates","ClusterPins","Leaflet","EntityRectList","AdjacencyGraph","DataGraph","VizTypeSet","typeInputs","typeClass","__inputs","Visualization","_prevFields","_prevLinkFields","_hipiePipeline","chartPanel","typeChanged","_visibility","_chartType","_chartPanel","col","click","vertex_click","_prevChartType","refreshMappings","allowEmptyRequest","uidColumn","labelColumn","iconColumn","linksColumn","linkUidColumn","linkLabelColumn","typeNew","deserialize","taken","multi","inFields_1","inField","inFields_2","refreshData","linkFields","dbFields","toDBFields","dbLinkFields","se","secondaryDataviewID","fieldsChanged","dataGraph","vertexColumns","edgeColumns","dataChanged","mappedData","toDBData","vertices","linkData","mappedLinkData","edges","renderPromise","fieldTypeTodbFieldType","Database","Field","fields_1","promises","secondaryDataviewID_exists","secondaryElementID","secondaryElement","startProgress","finishProgress","publishProxy","VisibilitySet","State","set","removeInvalid","currSelection","newSelection","selRow","find","currSelection_1","Element","_errors","_initialized","elementExists","view","_vizChartPanel","_visualization","__lparam","pipeline","dataProps","vizProps","stateProps","__assign$1","elementID","selectionChanged","filteredBy","filteredViz","vizStateChanged","ElementContainer","_elements","_nullElement","eid","_hookSend","appendDatasource","removeDatasource","elements","append","elemID","views","normalizePersist","seri","ret","_is_MegaChart","_cell","_panel","_widget","package","_get_params","panel","_o","exclude_list","elem","responseText","ok","status","statusText","d3Text","init","PopupManager","_popups","_popupIdx","popupPanels","popupChartPanels","addPopup","targetNode","pp","relativeTargetId","size","monitorHandle","otherElem","removePopup","syncPopups","prevPopups","diffPopups","Widget","DashboardDockPanel","tabTitle","hideSingleTabs","titleClassed","wa","include","classes","className","updateTitle","getWidgetAdapter","caption","err","activate","syncMinSize","minWidth_exists","minHeight_exists","d3Select","syncWidgets","prevWidgets","widgets","diffWidgets","refit","removeWidget","addWidget","childActivation","widgetAdapters","wa2","addClass","iconClass","removeClass","canClose","window","confirm","DockPanel","mixin","DashboardGrid","_layoutCache","designMode","surfacePadding","surfaceBorderWidth","updateGrid","transitionDuration","_noRender","cellWidget","layoutObj","main","convertedLayout","layoutObject","cols","dive","h","orientation","_w","sizes","_x","_y","round","ddl2_layout","getWidgetCell","clearContent","no_layout_added","this_1","setContent","freeRow","prev","curr","postSelectionChange","_selectionBag","Grid","scopedLogger","DDLDatasourceAdapter","_dsDedup","dsT","_resolveID","resolveID","dsRef","pDS","refType","dsTID","getAll","inputs_1","key2","inElementID","key_1","outputID","key_2","DDLAdapter","dashboard","_dsWriteDedup","_dsReadDedup","_dashboard","writeFilters","ddlFilter","writeProject","readProject","ddlProject","writeMappings","writeGroupBy","ddlGB","writeSort","ddlSort","writeLimit","readLimit","ddlLimit","readDatasourceRef","ddlDSRef","dsPicker","writeActivities","warning","writeVisualization","readVisualization","ddlViz","writeViewDatasource","writeDDLViews","refFields","buildVersion","readDDLViews","ddlViews","ddlViews_1","ddlView","isProjectActivity","isFilterActivity","isGroupByActivity","isSortActivity","isLimitActivity","readProperties","hipieProperties","hipieProps","read","ddlDS","rs2","Imports","_moduleMap","widgetMeta","module","class","importJS","moduleID","classIDs","JavaScriptAdapter","_dedup","_ddlAdapter","_ddlSchema","createProps","pe","postfix","publishedProperties","ext","writeMeta","dsDetails","safeID","datasourceRefID","writeDatasource","wuID","resultID","fromFields","writeActivity","writeWidgetProps","joinWithPrefix","imports","joinStr","postFix","classID2Meta","writeWidget","dataview","writeElement","writeWidgets","jsDef","widgetImports","widgetDefs","writeElements","createJavaScript","styleInject","css","insertAt","document","head","getElementsByTagName","createElement","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","Dashboard","_designModeButton","_dockPanel","lazyRender","_addButton","Button","newElem","_removeButton","enabled","_prevActive","_reloadButton","json","save","restore","_addSamples","airports","carriers","stats","popupElement","addForm","airportsElement","addDatabomb","carrierElement","statsElement","ensureDockPanel","activities_1","_hipieProps","ddlAdapter","importDDL","javascript","updateButtonState","DDLEditor","summary","_ddlEditor","JSONEditor","changes","checkSyntax","_errorTable","_renderCount","_element","SplitPanel","GraphAdapter","subgraphMap","vertexMap","edgeMap","hierarchy","createSubgraph","Subgraph","createVertex","fillColor","Vertex","icon_diameter","textbox_shape_colorFill","createEdge","targetID","edgeID","Edge","sourceVertex","targetVertex","createDatasource","serverID","server","parent","lfID","surfaceID","surface","roxieID","roxieResultID","querySetID","actionID","createActivity","vertex","createGraph","lastID","prevID","mappingVertexID","vizSubgraphID","vizVertexID","widgetVertex","stateVertexID","stateVertex","strokeDasharray","updateInfo","DSTable","rect","_contextMenu","open","currentTarget","clientX","left","clientY","bottom","_cloneButton","_selectedDS2","csv","vmRoxie","_dstable","References","ID","_selectedDS","initMenu","commands","CommandRegistry","addCommand","execute","ContextMenu","addItem","command","selector","dataID","_prevDataID","DVTable","_dvtable","PipelineSelectionButton","_elementErrors","_label","classed","errSourceParts","SelectionButton","PipelinePanel","debug","_propEditor","PropertyEditor","show_header","show_settings","showFields","_buttons","_pipelineButton","_pipelineSelection","SelectionBar","oldValue","propChanged","updateState","selectionButtons","propExt","_propExt","peAsDatasource","ModelElement","peAsFilter","peAsProject","peAsGroupBy","peAsSort","peAsLimit","peAsMappings","peAsChartPanel","peAsState","selectionButton","pb","pipelineButton","_prevPropExt","_prevPipelineButton","loadPreview","disableActivities","st","DDLPreview","_save","_jsonEditor","updateToolbar","_reset","jsonText","_titleBar","_prevJson","editorJson","PipelineSplitPanel","_rhsPropsPanel","_previewPanel","TabPanel","_rhsDDLPreview","_rhsDataPreview","DatasourceTable","pagination","loadDataProps","refreshPreview","invalidate","_dashy","Dashy","_elementContainer","_lhsSheet","_lhsDashboard","focus","_rhsSplitView","_lhsDataviews","_lhsDatasources","_graphAdapter","_lhsPipeline","Graph","allowDragging","applyScaleOnLayout","_lhsDebugSheet","_lhsDebugDDLEditor","_lhsDebugDDLSchema","_lhsDebugJSEditor","JSEditor","_lhsDebugCloneEC","_lhsDebugClone","_lhsDebugDDLv1","_lhsDebugDDLv2","_currSelection","dashy","loadDashboard","active","hasError","activeLHS","activeRHS","focusAsElement","loadRHSSplit","loadDataviews","loadDatasources","loadGraph","loadDDL","loadJavaScript","loadClone","downloadString","_fileOpen","property","palette","CommandPalette","category","contextMenu","addEventListener","event","preventDefault","currElement","context","attr","files","reader","FileReader","onload","ex","alert","readAsText","serialization"],"sources":["../src/__package__.ts","../../../node_modules/tslib/tslib.es6.mjs","../src/ddl2/activities/activity.ts","../src/ddl2/activities/datasource.ts","../src/ddl2/activities/form.ts","../src/ddl2/activities/databomb.ts","../src/ddl2/activities/wuresult.ts","../src/ddl2/activities/logicalfile.ts","../src/ddl2/activities/rest.ts","../src/ddl2/activities/roxie.ts","../src/ddl2/activities/dspicker.ts","../../ddl-shim/src/ddl/v1.ts","../../ddl-shim/src/ddl/v2.ts","../../ddl-shim/src/dermatology.ts","../../ddl-shim/src/upgrade.ts","../../ddl-shim/src/__package__.ts","../../../node_modules/uri-js/src/util.ts","../../../node_modules/uri-js/src/regexps-uri.ts","../../../node_modules/uri-js/src/regexps-iri.ts","../../../node_modules/uri-js/node_modules/punycode/punycode.es6.js","../../../node_modules/uri-js/src/uri.ts","../../../node_modules/uri-js/src/schemes/http.ts","../../../node_modules/uri-js/src/schemes/https.ts","../../../node_modules/uri-js/src/schemes/ws.ts","../../../node_modules/uri-js/src/schemes/wss.ts","../../../node_modules/uri-js/src/schemes/mailto.ts","../../../node_modules/uri-js/src/schemes/urn.ts","../../../node_modules/uri-js/src/schemes/urn-uuid.ts","../../../node_modules/uri-js/src/index.ts","../../../node_modules/fast-deep-equal/index.js","../../../node_modules/ajv/lib/compile/util.js","../../../node_modules/ajv/lib/compile/ucs2length.js","../../../node_modules/ajv/lib/compile/schema_obj.js","../../../node_modules/json-schema-traverse/index.js","../../../node_modules/ajv/lib/compile/resolve.js","../../../node_modules/ajv/lib/compile/error_classes.js","../../../node_modules/fast-json-stable-stringify/index.js","../../../node_modules/ajv/lib/dotjs/validate.js","../../../node_modules/ajv/lib/compile/index.js","../../../node_modules/ajv/lib/dotjs/_limit.js","../../../node_modules/ajv/lib/dotjs/_limitItems.js","../../../node_modules/ajv/lib/dotjs/_limitLength.js","../../../node_modules/ajv/lib/dotjs/_limitProperties.js","../../../node_modules/ajv/lib/compile/rules.js","../../../node_modules/ajv/lib/dotjs/index.js","../../../node_modules/ajv/lib/dotjs/ref.js","../../../node_modules/ajv/lib/dotjs/allOf.js","../../../node_modules/ajv/lib/dotjs/anyOf.js","../../../node_modules/ajv/lib/dotjs/comment.js","../../../node_modules/ajv/lib/dotjs/const.js","../../../node_modules/ajv/lib/dotjs/contains.js","../../../node_modules/ajv/lib/dotjs/dependencies.js","../../../node_modules/ajv/lib/dotjs/enum.js","../../../node_modules/ajv/lib/dotjs/format.js","../../../node_modules/ajv/lib/dotjs/if.js","../../../node_modules/ajv/lib/dotjs/items.js","../../../node_modules/ajv/lib/dotjs/multipleOf.js","../../../node_modules/ajv/lib/dotjs/not.js","../../../node_modules/ajv/lib/dotjs/oneOf.js","../../../node_modules/ajv/lib/dotjs/pattern.js","../../../node_modules/ajv/lib/dotjs/properties.js","../../../node_modules/ajv/lib/dotjs/propertyNames.js","../../../node_modules/ajv/lib/dotjs/required.js","../../../node_modules/ajv/lib/dotjs/uniqueItems.js","../../../node_modules/ajv/lib/compile/async.js","../../../node_modules/ajv/lib/keyword.js","../../../node_modules/ajv/lib/dotjs/custom.js","../../../node_modules/ajv/lib/definition_schema.js","../../../node_modules/ajv/lib/ajv.js","../../../node_modules/ajv/lib/cache.js","../../../node_modules/ajv/lib/compile/formats.js","../../../node_modules/ajv/lib/data.js","../../ddl-shim/src/validate.ts","../../ddl-shim/src/index.ts","../src/ddl2/activities/filter.ts","../src/ddl2/activities/groupby.ts","../src/ddl2/activities/limit.ts","../src/ddl2/activities/project.ts","../src/ddl2/activities/sort.ts","../src/ddl2/activities/hipiepipeline.ts","../src/ddl2/activities/nullview.ts","../src/ddl2/model/vizChartPanel.ts","../src/ddl2/model/visualization.ts","../src/ddl2/model/element.ts","../../../node_modules/d3-fetch/src/text.js","../src/ddl2/PopupManager.ts","../src/ddl2/dashboardDockPanel.ts","../src/ddl2/dashboardGrid.ts","../src/ddl2/ddl.ts","../src/ddl2/javascriptadapter.ts","../../../node_modules/style-inject/dist/style-inject.es.js","../src/ddl2/dashboard.ts","../src/ddl2/ddleditor.ts","../src/ddl2/graphadapter.ts","../src/ddl2/dsTable.ts","../src/ddl2/dvTable.ts","../src/ddl2/pipelinePanel.ts","../src/dashy.ts"],"sourcesContent":["export const PKG_NAME = \"@hpcc-js/marshaller\";\nexport const PKG_VERSION = \"2.28.11\";\nexport const BUILD_VERSION = \"2.108.11\";\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { IMonitorHandle, PropertyExt } from \"@hpcc-js/common\";\nimport { IField as WsEclField } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum, update } from \"@hpcc-js/util\";\n\nexport function stringify(obj_from_json) {\n if (Array.isArray(obj_from_json)) {\n // not an object, stringify using native function\n return \"[\" + obj_from_json.map(stringify).join(\", \") + \"]\";\n }\n if (typeof obj_from_json !== \"object\" || obj_from_json === null || obj_from_json === undefined) {\n // not an object, stringify using native function\n return JSON.stringify(obj_from_json);\n }\n // Implements recursive object serialization according to JSON spec\n // but without quotes around the keys.\n const props = Object\n .keys(obj_from_json)\n .map(key => `${key}: ${stringify(obj_from_json[key])}`)\n .join(\", \");\n return `{ ${props} }`;\n}\n\nexport function schemaType2IFieldType(type): \"boolean\" | \"number\" | \"number64\" | \"range\" | \"string\" {\n switch (type) {\n case \"boolean\":\n return \"boolean\";\n case \"xs:byte\":\n case \"xs:double\":\n case \"xs:decimal\":\n case \"xs:float\":\n case \"xs:int\":\n case \"xs:short\":\n case \"xs:unsignedInt\":\n case \"xs:unsignedShort\":\n case \"xs:unsignedByte\":\n case \"number\":\n return \"number\";\n case \"xs:integer\":\n case \"xs:long\":\n case \"xs:negativeInteger\":\n case \"xs:nonNegativeInteger\":\n case \"xs:nonPositiveInteger\":\n case \"xs:positiveInteger\":\n case \"xs:unsignedLong\":\n return \"number64\";\n case \"string\":\n return \"string\";\n case \"range\":\n return \"range\";\n }\n return \"string\";\n}\n\nexport function schemaRow2IField(row: any): DDL2.IField {\n if (row._children && row._children.length) {\n return {\n type: \"dataset\",\n id: row.name,\n children: row._children.map(schemaRow2IField)\n };\n } else {\n return {\n id: row.name,\n type: schemaType2IFieldType(row.type)\n };\n }\n}\n\nexport function wsEclSchemaRow2IField(row: WsEclField): DDL2.IField {\n return row;\n}\n\nexport type ReferencedFields = {\n inputs: { [activityID: string]: string[] },\n outputs: { [activityID: string]: string[] }\n};\n\nexport interface IActivityError {\n source: string;\n msg: string;\n hint: string;\n}\n\n/*\nexport const ROW_ID = \"__##__\"; // TODO: Should be Symbol\nexport function rowID(row: Readonly<object>): undefined | number {\n return row[ROW_ID] || row[\"__lparam\"];\n}\n*/\n\nexport abstract class Activity extends PropertyExt {\n private _sourceActivity: Activity;\n\n fixInt64(data) {\n if (!data || data.length === 0) return [];\n const int64Fields = this.outFields().filter(field => {\n switch (field.type) {\n case \"number\":\n // Test actual data for integer64 cases.\n return typeof data[0][field.id] !== \"number\";\n case \"number64\":\n return true;\n }\n return false;\n });\n if (int64Fields.length) {\n return data.map(row => {\n for (const int64Field of int64Fields) {\n row[int64Field.id] = +row[int64Field.id];\n }\n return row;\n });\n }\n return data;\n }\n\n sourceActivity(): Activity;\n sourceActivity(_: Activity): this;\n sourceActivity(_?: Activity): Activity | this {\n if (!arguments.length) return this._sourceActivity;\n this._sourceActivity = _;\n return this;\n }\n\n hash(more: object = {}): string {\n return hashSum({\n ...more\n });\n }\n\n refreshMeta(): Promise<void> {\n return this._sourceActivity ? this._sourceActivity.refreshMeta() : Promise.resolve();\n }\n\n exists(): boolean {\n return true;\n }\n\n validate(): IActivityError[] {\n return [];\n }\n\n label(): string {\n return this.id();\n }\n\n updatedBy(): string[] {\n return [];\n }\n\n private _emptyFields: ReadonlyArray<DDL2.IField> = [];\n inFields(): ReadonlyArray<DDL2.IField> {\n return this._sourceActivity ? this._sourceActivity.outFields() : this._emptyFields;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => inFields;\n }\n\n outFields(): ReadonlyArray<DDL2.IField> {\n return this.computeFields(this.inFields())();\n }\n\n localFields(): DDL2.IField[] {\n const inFieldIDs = this.inFields().map(field => field.id);\n return this.outFields().filter(field => inFieldIDs.indexOf(field.id) < 0);\n }\n\n fieldOrigin(fieldID: string): Activity | null {\n if (this.localFields().filter(field => field.id === fieldID).length) {\n return this;\n } else if (this.sourceActivity()) {\n return this.sourceActivity().fieldOrigin(fieldID);\n }\n return null;\n }\n\n resolveFields(refs: ReferencedFields, fieldIDs: string[]) {\n for (const fieldID of fieldIDs) {\n const fieldOrigin = this.fieldOrigin(fieldID);\n if (fieldOrigin) {\n if (!refs.outputs[fieldOrigin.id()]) {\n refs.outputs[fieldOrigin.id()] = [];\n }\n if (refs.outputs[fieldOrigin.id()].indexOf(fieldID) < 0) {\n refs.outputs[fieldOrigin.id()].push(fieldID);\n }\n }\n }\n }\n\n resolveInFields(refs: ReferencedFields, fieldIDs: string[]) {\n return this._sourceActivity && this._sourceActivity.resolveFields(refs, fieldIDs);\n }\n\n referencedFields(refs: ReferencedFields): void {\n this._sourceActivity && this._sourceActivity.referencedFields(refs);\n }\n\n exec(): Promise<void> {\n return this._sourceActivity ? this._sourceActivity.exec() : Promise.resolve();\n }\n\n _emptyData: ReadonlyArray<object> = [];\n inData(): ReadonlyArray<object> {\n return this._sourceActivity ? this._sourceActivity.outData() || this._emptyData : this._emptyData;\n }\n\n computeData(): ReadonlyArray<object> {\n return this.inData();\n }\n\n private _prevDataHash: string = \"\";\n private _prevInData: ReadonlyArray<object> = [];\n private _prevData: ReadonlyArray<object> = [];\n private cachedComputeData(inData: ReadonlyArray<object>): ReadonlyArray<object> {\n const hash = this.hash();\n if (this._prevDataHash !== hash || this._prevInData !== inData) {\n this._prevDataHash = hash;\n this._prevInData = inData;\n this._prevData = update(this._prevData, this.computeData());\n }\n return this._prevData;\n }\n\n outData(): ReadonlyArray<object> {\n return this.cachedComputeData(this.inData());\n }\n}\n\nexport class ActivityArray extends Activity {\n private _activities: Activity[] = [];\n\n activities(): Activity[];\n activities(_: Activity[]): this;\n activities(_?: Activity[]): Activity[] | this {\n if (!arguments.length) return this._activities;\n this._activities = _;\n return this;\n }\n}\nActivityArray.prototype._class += \" ActivityArray\";\n\nexport class ActivityPipeline extends ActivityArray {\n\n activities(): Activity[];\n activities(_: Activity[]): this;\n activities(_?: Activity[]): Activity[] | this {\n if (!arguments.length) return super.activities();\n super.activities(_);\n let prevActivity: Activity;\n for (const activity of _) {\n if (prevActivity) {\n activity.sourceActivity(prevActivity);\n }\n prevActivity = activity;\n }\n return this;\n }\n\n first(): Activity {\n const retVal = this.activities();\n return retVal[0];\n }\n\n last(): Activity | null {\n const retVal = this.activities();\n return retVal[retVal.length - 1];\n }\n\n protected calcUpdatedGraph(activity: Activity): Array<{ from: string, to: Activity }> {\n return activity.updatedBy().map(source => {\n return {\n from: source,\n to: activity\n };\n });\n }\n\n updatedByGraph(): Array<{ from: string, to: Activity }> {\n let retVal: Array<{ from: string, to: Activity }> = [];\n for (const activity of this.activities()) {\n retVal = retVal.concat(this.calcUpdatedGraph(activity));\n }\n return retVal;\n }\n\n fetch(from: number = 0, count: number = Number.MAX_VALUE): Promise<ReadonlyArray<object>> {\n return this.exec().then(() => {\n const data = this.outData();\n if (from === 0 && data.length <= count) {\n return data;\n }\n return data.slice(from, from + count);\n });\n }\n\n // Activity overrides ---\n hash(more: { [key: string]: any } = {}): string {\n return hashSum({\n activities: [this.activities().map(activity => activity.hash())],\n ...more\n });\n }\n\n refreshMeta(): Promise<void> {\n return this.last().refreshMeta();\n }\n\n updatedBy(): string[] {\n let retVal: string[] = [];\n for (const activity of this.activities()) {\n retVal = retVal.concat(activity.updatedBy());\n }\n return retVal;\n }\n\n inFields(): ReadonlyArray<DDL2.IField> {\n return this.first().inFields();\n }\n\n outFields(): ReadonlyArray<DDL2.IField> {\n return this.last().outFields();\n }\n\n localFields(): DDL2.IField[] {\n return this.last().localFields();\n }\n\n fieldOrigin(fieldID: string): Activity | null {\n return this.last().fieldOrigin(fieldID);\n }\n\n referencedFields(refs: ReferencedFields) {\n this.last().referencedFields(refs);\n }\n\n resolveInFields(refs: ReferencedFields, fieldIDs: string[]) {\n this.last().resolveInFields(refs, fieldIDs);\n }\n\n resolveFields(refs: ReferencedFields, fieldIDs: string[]) {\n this.last().resolveFields(refs, fieldIDs);\n }\n\n exec(): Promise<void> {\n return this.last().exec();\n }\n\n outData(): ReadonlyArray<object> {\n return this.last().outData();\n }\n}\nActivityPipeline.prototype._class += \" ActivitySequence\";\n\nexport class ActivitySelection extends ActivityArray {\n private _selection: Activity;\n private _monitorHandle: IMonitorHandle;\n\n selection(): Activity;\n selection(_: Activity): this;\n selection(_?: Activity): Activity | this {\n if (_ === undefined) return this._selection;\n if (this._monitorHandle) {\n this._monitorHandle.remove();\n }\n this._selection = _;\n this._monitorHandle = _.monitor((id, newVal, oldVal) => {\n this.broadcast(id, newVal, oldVal, _);\n });\n return this;\n }\n\n // Activity overrides ---\n hash(more: { [key: string]: any } = {}): string {\n return hashSum({\n selection: this.selection().hash(),\n ...more\n });\n }\n\n label(): string {\n return this.selection().label();\n }\n\n refreshMeta(): Promise<void> {\n return this.selection().refreshMeta();\n }\n\n updatedBy(): string[] {\n return this.selection().updatedBy();\n }\n\n inFields(): ReadonlyArray<DDL2.IField> {\n return this.selection().inFields();\n }\n\n outFields(): ReadonlyArray<DDL2.IField> {\n return this.selection().outFields();\n }\n\n localFields(): DDL2.IField[] {\n return this.selection().localFields();\n }\n\n fieldOrigin(fieldID: string): Activity | null {\n return this.selection().fieldOrigin(fieldID);\n }\n\n referencedFields(refs: ReferencedFields) {\n this.selection().referencedFields(refs);\n }\n\n resolveInFields(refs: ReferencedFields, fieldIDs: string[]) {\n this.selection().resolveInFields(refs, fieldIDs);\n }\n\n resolveFields(refs: ReferencedFields, fieldIDs: string[]) {\n this.selection().resolveFields(refs, fieldIDs);\n }\n\n exec(): Promise<void> {\n return this.selection().exec();\n }\n\n outData(): ReadonlyArray<object> {\n return this.selection().outData();\n }\n}\nActivitySelection.prototype._class += \" ActivitySelection\";\n","import { publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Activity } from \"./activity\";\nimport { Databomb } from \"./databomb\";\nimport { Form } from \"./form\";\nimport { LogicalFile } from \"./logicalfile\";\nimport { RestResult, RestService } from \"./rest\";\nimport { RoxieResult, RoxieService } from \"./roxie\";\nimport { WU, WUResult } from \"./wuresult\";\n\nlet datasourceID = 0;\nexport class Datasource extends Activity {\n\n constructor() {\n super();\n this._id = `ds_${++datasourceID}`;\n }\n}\n\nexport type DatasourceRefType = Databomb | Form | LogicalFile | RoxieResult | WUResult | RestResult;\nexport type DatasourceType = Databomb | Form | LogicalFile | RoxieService | WU | RestService;\n\nexport class DatasourceRef extends Activity {\n @publish(null, \"widget\", \"Datasource Reference\", null, { internal: true })\n _datasource: DatasourceRefType;\n datasource(): DatasourceRefType;\n datasource(_: DatasourceRefType): this;\n datasource(_?: DatasourceRefType): this | DatasourceRefType {\n if (!arguments.length) return this._datasource;\n this._datasource = _;\n this.sourceActivity(_);\n return this;\n }\n\n constructor() {\n super();\n }\n\n hash(more: { [key: string]: any } = {}): string {\n return super.hash({\n datasource: this._datasource ? this._datasource.hash(more) : undefined,\n ...more\n });\n }\n\n toDDL(): DDL2.IDatabombRef {\n return {\n id: this.datasource().id()\n };\n }\n}\nDatasourceRef.prototype._class += \" DatasourceRef\";\n","import { PropertyExt, publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Datasource } from \"./datasource\";\n\ntype IField = DDL2.IFieldBoolean | DDL2.IFieldNumber | DDL2.IFieldString | DDL2.IFieldDataset;\n\nexport class FormField extends PropertyExt {\n protected _owner: Form;\n\n @publish(\"\", \"string\", \"FormField Label\")\n fieldID: publish<this, string>;\n\n @publish(\"string\", \"set\", \"FormField Type\", [\"boolean\", \"number\", \"string\", \"dataset\"])\n type: publish<this, \"boolean\" | \"number\" | \"string\" | \"dataset\">;\n\n @publish(null, \"any\", \"Default Value\", null, { optional: true })\n default: publish<this, boolean | number | string | any[]>;\n\n @publish(null, \"any\", \"Default Value\", null, { optional: true })\n value: publish<this, boolean | number | string>;\n value_exists: () => boolean;\n\n @publish([], \"propertyArray\", \"Child Fields\", null, { autoExpand: FormField, disable: (w: FormField) => w.disableChildField() })\n childFields: publish<this, FormField[]>;\n\n disableChildField(): boolean {\n return this.type() !== \"dataset\";\n }\n\n constructor() {\n super();\n }\n\n toDDL(): IField {\n return {\n type: this.type(),\n id: this.fieldID(),\n default: this.default(),\n children: this.type() === \"dataset\" ? this.childFields().map(cf => cf.toDDL()) : undefined\n } as IField;\n }\n\n fromDDL(ddl: IField): this {\n return this\n .type(ddl.type)\n .fieldID(ddl.id)\n .default(ddl.default)\n .childFields(ddl.type === \"dataset\" && ddl.children ? ddl.children.map(FormField.fromDDL) : [])\n ;\n }\n\n static fromDDL(ddl: IField): FormField {\n return new FormField().fromDDL(ddl);\n }\n\n owner(): Form;\n owner(_: Form): this;\n owner(_?: Form): Form | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.type() && !!this.fieldID();\n }\n\n coerceFunc(): (cell: any) => boolean | number | string {\n switch (this.type()) {\n case \"boolean\":\n return cell => !!cell;\n case \"number\":\n return cell => +cell;\n case \"string\":\n return cell => \"\" + cell;\n }\n return cell => cell;\n }\n\n calcValue() {\n return this.value_exists() ? this.value() : this.default();\n }\n}\n\nexport class Form extends Datasource {\n @publish([], \"propertyArray\", \"Multi Fields\", null, { autoExpand: FormField })\n formFields: publish<this, FormField[]>;\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.IForm {\n return {\n type: \"form\",\n id: this.id(),\n fields: this.validFields().map(f => f.toDDL())\n };\n }\n\n fromDDL(ddl: DDL2.IForm, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .formFields(ddl.fields.map(FormField.fromDDL))\n ;\n return this;\n }\n\n static fromDDL(ddl: DDL2.IForm, skipID = false): Form {\n return new Form().fromDDL(ddl, skipID);\n }\n\n validFields(): FormField[] {\n return this.formFields().filter(f => f.valid());\n }\n\n hash(more: object = {}): string {\n return super.hash({\n ddl: this.toDDL(),\n ...more\n });\n }\n\n refreshMeta(): Promise<void> {\n return Promise.resolve();\n }\n\n label(): string {\n return \"Form\";\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n const retVal: DDL2.IField[] = this.validFields().map(f => f.toDDL());\n return () => retVal;\n }\n\n exec(): Promise<void> {\n return Promise.resolve();\n }\n\n computeData(): ReadonlyArray<object> {\n const retVal = {};\n this.validFields().forEach(f => {\n retVal[f.fieldID()] = f.calcValue();\n });\n return [retVal];\n }\n\n // ===\n total(): number {\n return 1;\n }\n}\nForm.prototype._class += \" Form\";\n","import { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { IDatasource } from \"@hpcc-js/dgrid\";\nimport { isArray } from \"@hpcc-js/util\";\nimport { csvParse as d3CsvParse, tsvParse as d3TsvParse } from \"d3-dsv\";\nimport { Activity } from \"./activity\";\nimport { Datasource } from \"./datasource\";\nimport { FormField } from \"./form\";\n\nfunction fieldType(field: any): DDL2.IFieldType {\n if (isArray(field)) {\n return \"dataset\";\n }\n const type = typeof field;\n switch (type) {\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"object\":\n return type;\n }\n return \"string\";\n}\n\nexport function rowToFields(row: object, _jsonData): DDL2.IField[] {\n // TODO: This heuristic will fail if there are empty nested rows in the first row...\n const retVal: DDL2.IField[] = [];\n for (const key in row) {\n const field = {\n type: fieldType(row[key]),\n id: key\n } as DDL2.IField;\n switch (field.type) {\n case \"object\":\n for (const row of _jsonData) {\n let found = false;\n for (const _childKey in row[key]) {\n const rowFields = rowToFields(row[key], [row[key]]);\n field.fields = {};\n if (rowFields.length) {\n rowFields.forEach(rf => field.fields[rf.id] = rf);\n found = true;\n }\n break;\n }\n if (found) break;\n }\n break;\n case \"dataset\":\n for (const row of _jsonData) {\n if (row[key] && row[key].length) {\n field.children = rowToFields(row[key][0], row[key]);\n break;\n }\n }\n break;\n }\n retVal.push(field);\n }\n return retVal;\n}\n\nexport class Databomb extends Datasource {\n\n private _jsonData: ReadonlyArray<object> = [];\n\n constructor() {\n super();\n }\n\n toDDL(skipPayload: boolean = false): DDL2.IDatabomb {\n return {\n type: \"databomb\",\n id: this.id(),\n format: this.format(),\n payload: skipPayload ? undefined : this.payload(),\n fields: this.validFields().map(f => f.toDDL())\n };\n }\n\n fromDDL(ddl: DDL2.IDatabomb, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .format(ddl.format)\n .payload(ddl.payload)\n .databombFields(ddl.fields.map(FormField.fromDDL))\n ;\n return this;\n }\n\n static fromDDL(ddl: DDL2.IDatabomb, skipID = false): Databomb {\n return new Databomb().fromDDL(ddl, skipID);\n }\n\n validFields(): FormField[] {\n return this.databombFields().filter(f => f.valid());\n }\n\n updateJsonData() {\n try {\n switch (this.format()) {\n case \"csv\":\n this._jsonData = d3CsvParse(this.payload());\n break;\n case \"tsv\":\n this._jsonData = d3TsvParse(this.payload());\n break;\n case \"json\":\n default:\n this._jsonData = JSON.parse(this.payload());\n break;\n }\n this.databombFields(this.preCalcFields().map(FormField.fromDDL));\n } catch (e) {\n this.databombFields([]);\n this._jsonData = [];\n }\n }\n\n hash(more: object): string {\n return super.hash({\n ddl: this.toDDL(true),\n ...more\n }) + this.payload();\n }\n\n refreshMeta(): Promise<void> {\n return Promise.resolve();\n }\n\n label(): string {\n return \"Databomb\";\n }\n\n private preCalcFields(): DDL2.IField[] {\n if (this._jsonData.length === 0) return [];\n return rowToFields(this._jsonData[0], this._jsonData);\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.validFields().map(f => f.toDDL());\n }\n\n exec(): Promise<void> {\n return Promise.resolve();\n }\n\n computeData(): ReadonlyArray<object> {\n const coarceFuncMap = {};\n this.validFields().forEach(field => {\n coarceFuncMap[field.fieldID()] = field.coerceFunc();\n });\n return this._jsonData.map(row => {\n const retVal = {};\n for (const key in coarceFuncMap) {\n retVal[key] = coarceFuncMap[key](row[key]);\n }\n return retVal;\n });\n }\n\n // ===\n total(): number {\n return this._jsonData.length;\n }\n}\nDatabomb.prototype._class += \" Databomb\";\n\nexport interface Databomb {\n format(): \"json\" | \"csv\" | \"tsv\";\n format(_: \"json\" | \"csv\" | \"tsv\"): this;\n payload(): string;\n payload(_: string): this;\n databombFields(): FormField[];\n databombFields(_: FormField[]): this;\n}\n\nDatabomb.prototype.publish(\"format\", \"json\", \"set\", \"Databomb Format\", [\"json\", \"csv\", \"tsv\"]);\nDatabomb.prototype.publish(\"payload\", \"\", \"string\", \"Databomb array\", null, { multiline: true });\nDatabomb.prototype.publish(\"databombFields\", [], \"propertyArray\", \"Multi Fields\", null, { autoExpand: FormField });\n\nconst payloadFormat = Databomb.prototype.format;\nDatabomb.prototype.format = function (this: Databomb, _?) {\n const retVal = payloadFormat.apply(this, arguments);\n if (arguments.length) {\n this.updateJsonData();\n }\n return retVal;\n};\n\nconst databombPayloadOrig = Databomb.prototype.payload;\nDatabomb.prototype.payload = function (this: Databomb, _?) {\n const retVal = databombPayloadOrig.apply(this, arguments);\n if (arguments.length) {\n this.updateJsonData();\n }\n return retVal;\n};\n\nexport const emptyDatabomb = new Databomb().id(\"Empty\").payload(\"[]\");\n\nexport class DatasourceAdapt implements IDatasource {\n private _activity: Activity;\n\n constructor(activity: Activity) {\n this._activity = activity || emptyDatabomb;\n }\n\n exec(): Promise<void> {\n return this._activity.refreshMeta().then(() => {\n return this._activity.exec();\n });\n }\n\n id(): string {\n return this._activity.id();\n }\n hash(more: { [key: string]: any } = {}): string {\n return this._activity.hash(more);\n }\n label(): string {\n return this._activity.label();\n }\n outFields(): DDL2.IField[] {\n return this._activity && this._activity.outFields ? this._activity.outFields() as DDL2.IField[] : [];\n }\n total(): number {\n return this._activity ? this._activity.outData().length : 0;\n }\n fetch(from: number, count: number): Promise<ReadonlyArray<object>> {\n return this.exec().then(() => {\n const data = this._activity.outData();\n if (from === 0 && data.length <= count) {\n return Promise.resolve(data);\n }\n return Promise.resolve(data.slice(from, from + count));\n });\n }\n}\n","import { publish } from \"@hpcc-js/common\";\nimport { Result, Workunit, XSDXMLNode } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { AsyncOrderedQueue, debounce, hashSum } from \"@hpcc-js/util\";\nimport { ElementContainer } from \"../model/element\";\nimport { schemaRow2IField } from \"./activity\";\nimport { Datasource, DatasourceRef } from \"./datasource\";\n\nexport abstract class ESPResult extends Datasource {\n protected _result: Result;\n protected _schema: XSDXMLNode[] = [];\n protected _meta: DDL2.IField[] = [];\n protected _total: number;\n private _data: ReadonlyArray<object> = [];\n\n @publish(10, \"number\", \"Number of samples\")\n samples: publish<this, number>;\n @publish(100, \"number\", \"Sample size\")\n sampleSize: publish<this, number>;\n\n constructor(protected _ec: ElementContainer) {\n super();\n this\n .samples(this._ec.samples())\n .sampleSize(this._ec.sampleSize())\n ;\n }\n\n hash(more: object = {}): string {\n return hashSum({\n samples: this.samples(),\n sampleSize: this.sampleSize(),\n ...more\n });\n }\n\n abstract _createResult(): Result;\n\n _prevMetaHash: string;\n refreshMetaPromise: Promise<void>;\n refreshMeta(): Promise<void> {\n if (this._prevMetaHash !== this.hash()) {\n this._prevMetaHash = this.hash();\n delete this.refreshMetaPromise;\n }\n if (!this.refreshMetaPromise) {\n this.refreshMetaPromise = super.refreshMeta().then(() => {\n this._result = this._createResult();\n if (this._result) {\n return this._result.refresh();\n }\n throw new Error(\"No valid result\");\n }).then(result => {\n this._total = result.Total;\n this._schema = result.fields();\n this._meta = this._meta && this._meta.length ? this._meta : this._schema.map(schemaRow2IField);\n }).catch(e => {\n this._total = 0;\n this._schema = [];\n this._meta = [];\n });\n }\n return this.refreshMetaPromise;\n }\n\n responseFields(): DDL2.IField[];\n responseFields(_: DDL2.IField[]): this;\n responseFields(_?: DDL2.IField[]): ReadonlyArray<DDL2.IField> | this {\n if (!arguments.length) return this._meta;\n this._meta = _;\n this.refreshMeta();\n return this;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.responseFields();\n }\n\n exec(): Promise<void> {\n return this._exec();\n }\n\n private _prevExecHash: string;\n private _exec = debounce((): Promise<void> => {\n if (this._prevExecHash !== this.hash()) {\n this._prevExecHash = this.hash();\n return super.exec().then(() => {\n return this.sample();\n }).then(response => {\n this._data = this.fixInt64(response);\n }).catch(e => {\n this._data = [];\n });\n } else {\n return Promise.resolve();\n }\n });\n\n inData(): ReadonlyArray<object> {\n return this._data;\n }\n\n computeData(): ReadonlyArray<object> {\n return this._data;\n }\n\n total(): number {\n return this._total;\n }\n\n // ---\n async fetch(from: number, count: number): Promise<any[]> {\n if (count > this.samples() * this.sampleSize()) {\n return this.sample();\n }\n return this._fetch(from, count);\n }\n\n private _fetchQ = new AsyncOrderedQueue();\n private _fetch(from: number, count: number): Promise<any[]> {\n return this._fetchQ.push(\n this._result ? this._result\n .fetchRows(from, count)\n .catch(e => {\n return [];\n }) :\n Promise.resolve([])\n );\n }\n\n private sample = debounce((samples: number = this.samples(), sampleSize: number = this.sampleSize()): Promise<any[]> => {\n const pages: Array<Promise<any[]>> = [];\n if (samples * sampleSize >= this.total()) {\n pages.push(this._fetch(0, this.total()));\n } else {\n const lastPage = this.total() - sampleSize;\n for (let i = 0; i < samples; ++i) {\n pages.push(this._fetch(Math.floor(i * lastPage / samples), sampleSize));\n }\n }\n return Promise.all(pages).then(responses => {\n let retVal2: any[] = [];\n for (const response of responses) {\n retVal2 = retVal2.concat(response);\n }\n return retVal2;\n });\n });\n}\nESPResult.prototype._class += \" ESPResult\";\n\nexport class WUResult extends ESPResult {\n\n @publish(null, \"widget\", \"Workunit\")\n _wu: WU;\n wu(): WU;\n wu(_: WU): this;\n wu(_?: WU): this | WU {\n if (!arguments.length) return this._wu;\n this._wu = _;\n this._wu.refreshMeta();\n return this;\n }\n\n @publish(\"\", \"set\", \"Result Name\", function (this: WUResult): string[] {\n return this._wu !== undefined ? this._wu.resultNames() : [];\n })\n _resultName: string;\n resultName(_: string): this;\n resultName(): string;\n resultName(_?: string): string | this {\n if (_ === void 0) return this._resultName;\n if (this._resultName !== _) {\n this._resultName = _;\n this.responseFields([]);\n }\n return this;\n }\n\n constructor(_ec: ElementContainer) {\n super(_ec);\n this._wu = new WU(this._ec);\n }\n\n url(): string {\n return this._wu.url();\n }\n\n wuid(): string {\n return this._wu.wuid();\n }\n\n toDDL(): DDL2.IWUResult {\n return {\n type: \"wuresult\",\n id: this.id(),\n url: this._wu.url(),\n wuid: this.wuid(),\n outputs: {\n [this.resultName()]: {\n fields: this.responseFields()\n }\n }\n };\n }\n\n fromDDL(ddl: DDL2.IWUResult, skipID = false): this {\n if (ddl.outputs[this.resultName()]) {\n return this.responseFields(ddl.outputs[this.resultName()].fields);\n }\n return this;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IWUResult, wu: WU, resultName: string, skipID = false): WUResult {\n return new WUResult(ec)\n .wu(wu)\n .resultName(resultName)\n .fromDDL(ddl)\n ;\n }\n\n _createResult(): Result {\n if (this._wu.url() && this.wuid() && this.resultName()) {\n return Result.attach({ baseUrl: this._wu.url(), hookSend: this._ec.hookSend() }, this.wuid(), this.resultName());\n }\n return undefined;\n }\n\n sourceHash(): string {\n return super.hash({\n wuid: this.wuid()\n });\n }\n\n hash(more: object): string {\n return super.hash({\n ddl: this.toDDL()\n });\n }\n\n label(): string {\n return `${this.wuid()}\\n${this.resultName()}`;\n }\n}\nWUResult.prototype._class += \" WUResult\";\n\nexport class WU extends Datasource {\n @publish(\"\", \"string\", \"ESP Url (http://x.x.x.x:8010)\")\n _url: string;\n url(): string;\n url(_: string): this;\n url(_?: string): this | string {\n if (!arguments.length) return this._url;\n this._url = _;\n this.refreshMeta();\n return this;\n }\n\n @publish(\"\", \"string\", \"Workunit ID\")\n _wuid: string;\n wuid(): string;\n wuid(_: string): this;\n wuid(_?: string): this | string {\n if (!arguments.length) return this._wuid;\n this._wuid = _;\n this.refreshMeta();\n return this;\n }\n\n protected _workunit: Workunit;\n protected _outputs: { [id: string]: WUResult } = {};\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IWUResult {\n const ddlOutputs: DDL2.OutputDict = {};\n for (const resultName in this._outputs) {\n ddlOutputs[resultName] = {\n fields: this._outputs[resultName].responseFields()\n };\n }\n return {\n type: \"wuresult\",\n id: this.id(),\n url: this.url(),\n wuid: this.wuid(),\n outputs: ddlOutputs\n };\n }\n\n fromDDL(ddl: DDL2.IWUResult, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .url(ddl.url)\n .wuid(ddl.wuid)\n ;\n const wuResults: { [id: string]: WUResult } = {};\n for (const resultName in ddl.outputs) {\n wuResults[resultName] = WUResult.fromDDL(this._ec, ddl, this, resultName);\n }\n this._outputs = wuResults;\n return this;\n }\n\n static fromDDL(elementContainer: ElementContainer, ddl: DDL2.IWUResult, skipID = false): WU {\n return new WU(elementContainer).fromDDL(ddl, skipID);\n }\n\n hash(): string {\n return hashSum({\n url: this.url(),\n wuid: this.wuid()\n });\n }\n\n label(): string {\n return this.wuid();\n }\n\n outputs(): WUResult[] {\n const retVal = [];\n for (const resultName in this._outputs) {\n retVal.push(this._outputs[resultName]);\n }\n return retVal;\n }\n\n outputDDL(): DDL2.OutputDict {\n const retVal: DDL2.OutputDict = {};\n for (const resultName in this._outputs) {\n retVal[resultName] = {\n fields: this._outputs[resultName].outFields() as DDL2.IField[]\n };\n }\n return retVal;\n }\n\n output(id: string): WUResult {\n return this._outputs[id];\n }\n\n private _prevSourceHash: string;\n private refreshMetaPromise: Promise<void>;\n private _resultNames: string[] = [];\n refreshMeta(): Promise<void> {\n if (!this.url() || !this.wuid()) {\n return Promise.resolve();\n }\n if (this._prevSourceHash !== this.hash()) {\n this._prevSourceHash = this.hash();\n delete this.refreshMetaPromise;\n }\n if (!this.refreshMetaPromise) {\n this.refreshMetaPromise = super.refreshMeta().then(() => {\n this._workunit = Workunit.attach({ baseUrl: this.url(), hookSend: this._ec.hookSend() }, this.wuid());\n return this._workunit.fetchResults();\n }).then(results => {\n this._resultNames = results.map(r => r.Name);\n }).catch(e => {\n });\n }\n return this.refreshMetaPromise;\n }\n\n resultNames(): string[] {\n return this._resultNames;\n }\n}\nWU.prototype._class += \" WU\";\n\nexport class WUResultRef extends DatasourceRef {\n\n datasource(): WUResult;\n datasource(_: WUResult): this;\n datasource(_?: WUResult): this | WUResult {\n return super.datasource.apply(this, arguments);\n }\n\n resultName(): string;\n resultName(_: string): this;\n resultName(_?: string): string | this {\n if (!arguments.length) return this.datasource().resultName();\n this.datasource().resultName(_);\n return this;\n }\n\n toDDL(): DDL2.IWUResultRef {\n return {\n id: this.datasource().wu().id(),\n output: this.resultName()\n };\n }\n}\nWUResultRef.prototype._class += \" WUResultRef\";\n","import { publish } from \"@hpcc-js/common\";\nimport { Result } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { ElementContainer } from \"../model/element\";\nimport { ESPResult } from \"./wuresult\";\n\nexport class LogicalFile extends ESPResult {\n\n @publish(\"\", \"string\", \"ESP Url (http://x.x.x.x:8010)\")\n url: publish<this, string>;\n @publish(\"\", \"string\", \"Node Group\")\n nodeGroup: publish<this, string>;\n @publish(\"\", \"string\", \"Logical File Name\")\n logicalFile: publish<this, string>;\n\n constructor(_ec: ElementContainer) {\n super(_ec);\n }\n\n toDDL(): DDL2.ILogicalFile {\n return {\n type: \"logicalfile\",\n id: this.id(),\n url: this.url(),\n logicalFile: this.logicalFile(),\n fields: this.responseFields()\n };\n }\n\n fromDDL(ddl: DDL2.ILogicalFile, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .url(ddl.url)\n .logicalFile(ddl.logicalFile)\n ;\n return this;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.ILogicalFile, skipID = false): LogicalFile {\n return new LogicalFile(ec).fromDDL(ddl, skipID);\n }\n\n _createResult(): Result {\n return Result.attachLogicalFile({ baseUrl: this.url(), hookSend: this._ec.hookSend() }, this.nodeGroup(), this.logicalFile());\n }\n\n sourceHash(): string {\n return super.hash({\n logicalFile: this.logicalFile()\n });\n }\n\n hash(more: object): string {\n return super.hash({\n ddl: this.toDDL()\n });\n }\n\n label(): string {\n return `${this.logicalFile()}`;\n }\n}\nLogicalFile.prototype._class += \" LogicalFile\";\n","import { PropertyExt, publish } from \"@hpcc-js/common\";\nimport { createConnection } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { AsyncOrderedQueue, compare, hashSum } from \"@hpcc-js/util\";\nimport { Element, ElementContainer } from \"../model/element\";\nimport { IActivityError, ReferencedFields } from \"./activity\";\nimport { rowToFields } from \"./databomb\";\nimport { Datasource, DatasourceRef } from \"./datasource\";\n\nexport class RestField extends PropertyExt {\n protected _owner: RestService;\n\n @publish(\"\", \"string\", \"RestField Label\")\n fieldID: publish<this, string>;\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.IFieldString {\n return {\n type: \"string\",\n id: this.fieldID()\n };\n }\n\n fromDDL(ddl: DDL2.IFieldString): this {\n return this\n .fieldID(ddl.id)\n ;\n }\n\n static fromDDL(ddl: DDL2.IFieldString): RestField {\n return new RestField().fromDDL(ddl);\n }\n\n owner(): RestService;\n owner(_: RestService): this;\n owner(_?: RestService): RestService | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.fieldID();\n }\n}\n\nexport class RestService extends Datasource {\n\n private _responseFields: { [outputID: string]: DDL2.IField[] } = {};\n\n @publish(\"\", \"string\", \"REST Url\")\n url: publish<this, string>;\n @publish(\"\", \"string\", \"Query Set\")\n action: publish<this, string>;\n @publish(\"get\", \"set\", \"Request mode\", [\"get\", \"post\"])\n mode: publish<this, \"get\" | \"post\">;\n @publish([], \"propertyArray\", \"Multi Fields\", null, { autoExpand: RestField })\n requestFields: publish<this, RestField[]>;\n\n constructor(readonly _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRestService {\n return {\n type: \"rest\",\n id: this.id(),\n url: this.url(),\n action: this.action(),\n mode: this.mode(),\n inputs: this.validRequestFields().map(rf => rf.toDDL()),\n outputs: this.outputDDL()\n };\n }\n\n fromDDL(ddl: DDL2.IRestService, skipID = false): this {\n (skipID ? this : this.id(ddl.id))\n .url(ddl.url)\n .action(ddl.action)\n .mode(ddl.mode || \"get\")\n .requestFields(ddl.inputs.map(RestField.fromDDL))\n ;\n for (const key in ddl.outputs) {\n this.responseFields(key, ddl.outputs[key].fields);\n }\n return this;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IRestService, skipID = false): RestService {\n return new RestService(ec).fromDDL(ddl, skipID);\n }\n\n hash(more: object = {}): string {\n return hashSum({\n url: this.url(),\n action: this.action(),\n mode: this.mode(),\n ...more\n });\n }\n\n label(): string {\n return this.action();\n }\n\n responseFields(resultName: string): DDL2.IField[];\n responseFields(resultName: string, _: DDL2.IField[]): this;\n responseFields(resultName: string, _?: DDL2.IField[]): DDL2.IField[] | this {\n if (arguments.length === 1) return this._responseFields[resultName] || [];\n this._responseFields[resultName] = _;\n return this;\n }\n\n validRequestFields(): RestField[] {\n return this.requestFields().filter(f => f.valid());\n }\n\n private _prevRequestHash;\n private _prevPromise;\n private _submitQ = new AsyncOrderedQueue();\n submit(request: { [key: string]: any }): Promise<{ [key: string]: any }> {\n const requestHash = hashSum(request);\n if (!this._prevPromise || this._prevRequestHash !== requestHash) {\n this._prevRequestHash = requestHash;\n const conn = createConnection({ baseUrl: this.url(), type: this.mode() });\n this._prevPromise = this._submitQ.push(conn.send(this.action(), request));\n }\n return this._prevPromise;\n }\n\n resultNames(): string[] {\n const retVal: string[] = [];\n for (const key in this._responseFields) {\n retVal.push(key);\n }\n return retVal;\n }\n\n outputDDL(): DDL2.OutputDict {\n const retVal: DDL2.OutputDict = {};\n this.resultNames().forEach(resultName => {\n retVal[resultName] = {\n fields: this._responseFields[resultName]\n };\n });\n return retVal;\n }\n}\nRestService.prototype._class += \" RestService\";\n\nexport class RestResult extends Datasource {\n\n @publish(null, \"widget\", \"Rest service\")\n _service: RestService = new RestService(this._ec);\n service(): RestService;\n service(_: RestService): this;\n service(_?: RestService): this | RestService {\n if (!arguments.length) return this._service;\n this._service = _;\n this._service.refreshMeta();\n return this;\n }\n\n @publish(\"\", \"string\", \"Result Name\")\n resultName: publish<this, string>;\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n validRequestFields(): RestField[] {\n return this.service().validRequestFields();\n }\n\n toDDL(): DDL2.IRestService {\n return this.service().toDDL();\n }\n\n fromDDL(ddl: DDL2.IRestService): this {\n this.service().fromDDL(ddl);\n return this;\n }\n\n static fromDDL(ec: ElementContainer, rs: RestService, resultName: string): RestResult {\n return new RestResult(ec)\n .id(`${rs.id()}_${resultName}`)\n .service(rs)\n .resultName(resultName)\n ;\n }\n\n serviceID(): string {\n return `${this.service().url()}/${this.service().action()}}`;\n }\n\n sourceHash(): string {\n return this.service().hash();\n }\n\n requestFields(): DDL2.IField[] {\n return this.service().requestFields().map(rf => rf.toDDL());\n }\n\n responseFields(): DDL2.IField[];\n responseFields(_: DDL2.IField[]): this;\n responseFields(_?: DDL2.IField[]): this | DDL2.IField[] {\n if (!arguments.length) return this.service().responseFields(this.resultName());\n this.service().responseFields(this.resultName(), _);\n return this;\n }\n\n hash(more: object = {}): string {\n return hashSum({\n source: this.sourceHash(),\n resultName: this.resultName(),\n ...more\n });\n }\n\n label(): string {\n return `${this.service().label()}\\n${this.resultName()}`;\n }\n\n private _jsonData: object[] = [];\n private jsonDataFields(): DDL2.IField[] {\n if (!this._jsonData || !this._jsonData.length) return [];\n const retVal = rowToFields(this._jsonData[0], this._jsonData);\n this.responseFields(retVal);\n return retVal;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.jsonDataFields();\n }\n\n computeData(): ReadonlyArray<object> {\n return this._jsonData;\n }\n\n submit(request: { [key: string]: any }): Promise<{ [key: string]: any }> {\n return this.service().submit(request).then(response => {\n const resultName = this.resultName();\n const resultFields = resultName ? resultName.split(\".\") : [];\n for (const field of resultFields) {\n response = (response || {})[field];\n }\n this._jsonData = response as object[];\n return response;\n });\n }\n\n formatRequest() {\n const request = {};\n this.service().validRequestFields().forEach(f => {\n request[f.fieldID()] = \"\";\n });\n return request;\n }\n\n exec(): Promise<void> {\n return this.submit(this.formatRequest()).then(response => { });\n }\n}\nRestResult.prototype._class += \" RestResult\";\n\nexport class Param extends PropertyExt {\n\n @publish(null, \"string\", \"Label\") // TODO Add ReadOnly\n localField: publish<this, string>;\n localField_exists: () => boolean;\n @publish(null, \"set\", \"Activity\", function (this: Param) { return this.visualizationIDs(); }, {\n optional: true,\n disable: (w: Param): boolean => w.value_exists(),\n validate: (w: Param): boolean => w.source_disabled() || w.visualizationIDs().indexOf(w.source()) >= 0\n })\n source: publish<this, string>;\n source_exists: () => boolean;\n source_valid: () => boolean;\n source_disabled: () => boolean;\n @publish(null, \"set\", \"Source Field\", function (this: Param) { return this.sourceFields(); }, {\n optional: true,\n disable: (w: Param): boolean => !w.source_exists() || w.value_exists(),\n validate: (w: Param): boolean => w.remoteField_disabled() || w.sourceFields().indexOf(w.remoteField()) >= 0\n })\n remoteField: publish<this, string>;\n remoteField_exists: () => boolean;\n remoteField_valid: () => boolean;\n remoteField_disabled: () => boolean;\n @publish(null, \"string\", \"Static Value\", null, {\n optional: true,\n disable: (w: Param): boolean => w.source_exists(),\n validate: (w: Param): boolean => w.value_disabled() || w.value_exists()\n })\n value: publish<this, string>;\n value_exists: () => boolean;\n value_valid: () => boolean;\n value_disabled: () => boolean;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.source_valid()) {\n retVal.push({\n source: `${prefix}.source.${this.source()}`,\n msg: `Invalid source: \"${this.source()}\"`,\n hint: `expected: ${JSON.stringify(this.visualizationIDs())}`\n });\n }\n if (!this.remoteField_valid()) {\n retVal.push({\n source: `${prefix}.remoteField`,\n msg: `Invalid remoteField: \"${this.remoteField()}\"`,\n hint: `expected: ${JSON.stringify(this.sourceOutFields())}`\n });\n }\n if (!this.value_valid()) {\n retVal.push({\n source: `${prefix}.value`,\n msg: `Invalid value: \"${this.value()}\"`,\n hint: \"expected: any value.\"\n });\n }\n return retVal;\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRequestField {\n return {\n source: this.source(),\n remoteFieldID: this.remoteField(),\n localFieldID: this.localField(),\n value: this.value()\n };\n }\n\n fromDDL(ddl: DDL2.IRequestField): this {\n return this\n .source(ddl.source)\n .remoteField(ddl.remoteFieldID)\n .localField(ddl.localFieldID)\n .value(ddl.value)\n ;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IRequestField): Param {\n return new Param(ec).fromDDL(ddl);\n }\n\n hash() {\n return hashSum({\n label: this.localField(),\n source: this.source(),\n sourceField: this.remoteField()\n });\n }\n\n visualizationIDs() {\n return this._ec.elementIDs();\n }\n\n sourceFields() {\n return this.sourceOutFields().map(field => field.id);\n }\n\n sourceViz(): Element {\n return this._ec.element(this.source());\n }\n\n sourceOutFields(): ReadonlyArray<DDL2.IField> {\n return this.sourceViz().hipiePipeline().selectionFields();\n }\n\n sourceSelection(): any[] {\n return this.sourceViz().selection();\n }\n\n calcValue(): Array<string | number | boolean> {\n if (this.source_exists() && this.remoteField_exists()) {\n const sourceSelection = this.sourceSelection();\n return sourceSelection.map(row => row[this.remoteField()]);\n } else if (this.value_exists()) {\n return [this.value()];\n }\n return [\"\"];\n }\n\n exists(): boolean {\n return this.localField_exists() && ((this.source_exists() && this.remoteField_exists()) || this.value_exists());\n }\n}\nParam.prototype._class += \" Param\";\n\nexport class RestResultRef extends DatasourceRef {\n\n serviceID(): string {\n return this.datasource().serviceID();\n }\n\n private _data: ReadonlyArray<object> = [];\n\n datasource(): RestResult;\n datasource(_: RestResult): this;\n datasource(_?: RestResult): this | RestResult {\n return super.datasource.apply(this, arguments);\n }\n\n url(): string {\n return this.datasource().service().url();\n }\n\n action(): string {\n return this.datasource().service().action();\n }\n\n resultName(): string {\n return this.datasource().resultName();\n }\n\n @publish([], \"propertyArray\", \"Request Fields\")\n _request: Param[];\n request(): Param[];\n request(_: Param[]): this;\n request(_?: Param[]): Param[] | this {\n if (!arguments.length) return this._request;\n this._request = _;\n return this;\n }\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const filter of this.validParams()) {\n retVal = retVal.concat(filter.validate(\"request\"));\n }\n return retVal;\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRoxieServiceRef {\n return {\n id: this.datasource().service().id(),\n output: this.resultName(),\n request: this.validParams().map((vp): DDL2.IRequestField => {\n return {\n source: vp.source(),\n remoteFieldID: vp.remoteField(),\n localFieldID: vp.localField(),\n value: vp.value()\n };\n })\n };\n }\n\n sourceHash(): string {\n return this.datasource().hash();\n }\n\n requestFieldRefs(): DDL2.IRequestField[];\n requestFieldRefs(_: DDL2.IRequestField[]): this;\n requestFieldRefs(_?: DDL2.IRequestField[]): DDL2.IRequestField[] | this {\n if (!arguments.length) return this.validParams().map(param => param.toDDL());\n this.request(_.map(fc => Param.fromDDL(this._ec, fc)));\n return this;\n }\n\n requestFields(): DDL2.IField[] {\n return this.datasource().requestFields();\n }\n\n responseFields(): DDL2.IField[] {\n return this.datasource().responseFields();\n }\n\n hash(): string {\n return this.datasource().hash({\n resultName: this.resultName(),\n request: this.formatRequest()\n });\n }\n\n label(): string {\n return `${this.datasource().label()}\\n${this.datasource().resultName()}`;\n }\n\n elementIDs() {\n return this._ec.elementIDs();\n }\n\n element(source) {\n return this._ec.element(source);\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const localFieldIDs: string[] = [];\n for (const param of this.validParams()) {\n const filterSource = param.sourceViz().hipiePipeline();\n if (!refs.inputs[this.id()]) {\n refs.inputs[this.id()] = [];\n }\n refs.inputs[this.id()].push(param.localField());\n filterSource.resolveFields(refs, [param.remoteField()]);\n }\n super.resolveFields(refs, localFieldIDs);\n }\n\n validParams() {\n return this.request().filter(param => param.exists());\n }\n\n refreshMeta(): Promise<void> {\n return this.datasource().refreshMeta().then(() => {\n const oldParams = this.request();\n const diffs = compare(oldParams.map(p => p.localField()), this.datasource().validRequestFields().map(ff => ff.fieldID()));\n const newParams = oldParams.filter(op => diffs.update.indexOf(op.localField()) >= 0);\n this.request(newParams.concat(diffs.enter.map(label => new Param(this._ec).localField(label))));\n });\n }\n\n updatedBy(): string[] {\n return this.validParams().map(param => param.source());\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return this.datasource().computeFields(inFields);\n }\n\n formatRequest(): { [key: string]: any } {\n const request = this.datasource().formatRequest();\n this.request().forEach(f => {\n if (request[f.localField()] !== undefined) {\n request[f.localField()] = f.calcValue() || request[f.localField()];\n }\n });\n return request;\n }\n\n private _prevRequestHash;\n private _prevRequestPromise;\n exec(): Promise<void> {\n const request = this.formatRequest();\n const requestHash = hashSum({ hash: this.hash(), request });\n if (this._prevRequestHash !== requestHash) {\n this._prevRequestHash = requestHash;\n this._prevRequestPromise = this.datasource().submit(request).then((response: { [key: string]: any }) => {\n this._data = this.fixInt64(response);\n return this._data;\n });\n }\n return this._prevRequestPromise;\n }\n\n inData(): ReadonlyArray<object> {\n return this._data;\n }\n\n computeData(): ReadonlyArray<object> {\n return this._data;\n }\n}\nRestResultRef.prototype._class += \" RestResultRef\";\n","import { publish } from \"@hpcc-js/common\";\nimport { Query as CommsQuery } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { AsyncOrderedQueue, compare, hashSum } from \"@hpcc-js/util\";\nimport { ElementContainer } from \"../model/element\";\nimport { IActivityError, ReferencedFields } from \"./activity\";\nimport { Datasource, DatasourceRef } from \"./datasource\";\nimport { Param } from \"./rest\";\n\nfunction parseUrl(_: string): { url: string, querySet: string, queryID: string } {\n // \"http://10.241.100.157:8002/WsEcl/submit/query/roxie/carmigjx_govbisgsavi.Ins4621360_Service_00000006/json\",\n const parts = _.split(\"/WsEcl/submit/query/\");\n if (parts.length < 2) throw new Error(`Invalid roxie URL: ${_}`);\n const urlParts = parts[0].split(\":\");\n if (urlParts.length < 3) throw new Error(`Invalid roxie URL: ${_}`);\n const roxieParts = parts[1].split(\"/\");\n if (roxieParts.length < 2) throw new Error(`Invalid roxie URL: ${_}`);\n return {\n url: `${urlParts[0]}:${urlParts[1]}:${urlParts[2] === \"18002\" ? \"18010\" : \"8010\"}`,\n querySet: roxieParts[0],\n queryID: roxieParts[1]\n };\n}\n\nfunction isHipieRequest(requestField: string): boolean {\n return requestField.length >= 8 && requestField.indexOf(\"_changed\") === requestField.length - 8;\n}\n\nfunction isHipieResponse(resultName: string): boolean {\n return (resultName.length >= 8 && resultName.indexOf(\"_changed\") === resultName.length - 8) ||\n ([\"HIPIE_DDL\", \"HIPIE_DDLGLOBALS\", \"hipieversion\"].indexOf(resultName) >= 0)\n ;\n}\n\nexport class RoxieService extends Datasource {\n private _query: CommsQuery;\n private _requestFields: DDL2.IField[];\n private _responseFields: { [outputID: string]: DDL2.IField[] } = {};\n private _type: \"roxie\" | \"hipie\" = \"roxie\";\n\n @publish(\"\", \"string\", \"ESP Url (http://x.x.x.x:8002)\")\n url: publish<this, string>;\n @publish(\"\", \"string\", \"Query Set\")\n querySet: publish<this, string>;\n @publish(\"\", \"string\", \"Query ID\")\n queryID: publish<this, string>;\n @publish(false, \"boolean\", \"Ignore provided DDL request\")\n ignoreHipieRequest: publish<this, boolean>;\n @publish(false, \"boolean\", \"Ignore provided DDL response\")\n ignoreHipieResponse: publish<this, boolean>;\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRoxieService | DDL2.IHipieService {\n return {\n type: this._type,\n id: this.id(),\n url: this.url(),\n querySet: this.querySet(),\n queryID: this.queryID(),\n inputs: this.requestFields(),\n outputs: this.outputDDL()\n };\n }\n\n fromDDL(ddl: DDL2.IRoxieService | DDL2.IHipieService, skipID = false): this {\n this._type = ddl.type;\n (skipID ? this : this.id(ddl.id))\n .url(ddl.url)\n .querySet(ddl.querySet)\n .queryID(ddl.queryID)\n ;\n if (ddl.inputs && ddl.inputs.length) {\n this.requestFields(ddl.inputs);\n }\n for (const key in ddl.outputs) {\n this.responseFields(key, ddl.outputs[key].fields);\n }\n return this;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IRoxieService | DDL2.IHipieService, skipID = false): RoxieService {\n return new RoxieService(ec).fromDDL(ddl, skipID);\n }\n\n hash(more: object = {}): string {\n return hashSum({\n url: this.url(),\n querySet: this.querySet(),\n queryId: this.queryID(),\n ignoreHipieRequest: this.ignoreHipieRequest(),\n ignoreHipieResponse: this.ignoreHipieResponse(),\n ...more\n });\n }\n\n label(): string {\n return this.queryID();\n }\n\n private _prevSourceHash: string;\n private refreshMetaPromise: Promise<void>;\n refreshMeta(): Promise<void> {\n if (this._prevSourceHash !== this.hash()) {\n this._prevSourceHash = this.hash();\n delete this.refreshMetaPromise;\n }\n if (!this.refreshMetaPromise) {\n const hasMeta = !!this._requestFields;\n this.refreshMetaPromise = new Promise<CommsQuery>((resolve, reject) => {\n const query = CommsQuery.attach({ baseUrl: this.url(), hookSend: this._ec.hookSend() }, this.querySet(), this.queryID());\n if (!hasMeta || this.ignoreHipieRequest() || this.ignoreHipieResponse()) {\n resolve(query.refresh());\n }\n resolve(query);\n }).then((query) => {\n this._query = query;\n if (!hasMeta || this.ignoreHipieRequest()) {\n this._requestFields = query.requestFields().filter(row => this._type === \"roxie\" || !isHipieRequest(row.id));\n }\n if (!hasMeta || this.ignoreHipieResponse()) {\n query.resultNames().filter(resultName => this._type === \"roxie\" || !isHipieResponse(resultName)).forEach(resultName => {\n this._responseFields[resultName] = query.resultFields(resultName);\n });\n }\n });\n }\n return this.refreshMetaPromise;\n }\n\n requestFields(): DDL2.IField[];\n requestFields(_: DDL2.IField[]): this;\n requestFields(_?: DDL2.IField[]): DDL2.IField[] | this {\n if (!arguments.length) return this._requestFields || [];\n this._requestFields = _;\n return this;\n }\n\n responseFields(resultName: string): DDL2.IField[];\n responseFields(resultName: string, _: DDL2.IField[]): this;\n responseFields(resultName: string, _?: DDL2.IField[]): DDL2.IField[] | this {\n if (arguments.length === 1) return this._responseFields[resultName] || [];\n this._responseFields[resultName] = _;\n return this;\n }\n\n private _prevRequestHash;\n private _prevPromise;\n private _submitQ = new AsyncOrderedQueue();\n submit(request: { [key: string]: any }): Promise<{ [key: string]: any }> {\n const requestHash = hashSum(request);\n if (!this._prevPromise || this._prevRequestHash !== requestHash) {\n this._prevRequestHash = requestHash;\n this._prevPromise = this._submitQ.push(this._query.submit(request));\n }\n return this._prevPromise;\n }\n\n resultNames(): string[] {\n const retVal: string[] = [];\n for (const key in this._responseFields) {\n retVal.push(key);\n }\n return retVal;\n }\n\n outputDDL(): DDL2.OutputDict {\n const retVal: DDL2.OutputDict = {};\n this.resultNames().forEach(resultName => {\n retVal[resultName] = {\n fields: this._responseFields[resultName]\n };\n });\n return retVal;\n }\n}\nRoxieService.prototype._class += \" RoxieService\";\n\nexport class RoxieResult extends Datasource {\n\n @publish(null, \"widget\", \"Roxie service\")\n _service: RoxieService = new RoxieService(this._ec);\n service(): RoxieService;\n service(_: RoxieService): this;\n service(_?: RoxieService): this | RoxieService {\n if (!arguments.length) return this._service;\n this._service = _;\n this._service.refreshMeta();\n return this;\n }\n\n @publish(\"\", \"set\", \"Result Name\", function (this: RoxieResult): string[] {\n return this._service !== undefined ? this._service.resultNames() : [];\n })\n resultName: publish<this, string>;\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRoxieService | DDL2.IHipieService {\n return this.service().toDDL();\n }\n\n fromDDL(ddl: DDL2.IRoxieService): this {\n this.service().fromDDL(ddl);\n return this;\n }\n\n static fromDDL(ec: ElementContainer, rs: RoxieService, resultName: string): RoxieResult {\n return new RoxieResult(ec)\n .id(`${rs.id()}_${resultName}`)\n .service(rs)\n .resultName(resultName)\n ;\n }\n\n serviceID(): string {\n return `${this.service().url()}/${this.service().querySet()}/${this.service().queryID()}`;\n }\n\n sourceHash(): string {\n return this.service().hash();\n }\n\n requestFields(): DDL2.IField[] {\n return this.service().requestFields();\n }\n\n responseFields(): DDL2.IField[];\n responseFields(_: DDL2.IField[]): this;\n responseFields(_?: DDL2.IField[]): this | DDL2.IField[] {\n if (!arguments.length) return this.service().responseFields(this.resultName());\n this.service().responseFields(this.resultName(), _);\n return this;\n }\n\n hash(more: object = {}): string {\n return hashSum({\n source: this.sourceHash(),\n resultName: this.resultName(),\n ...more\n });\n }\n\n label(): string {\n return `${this.service().label()}\\n${this.resultName()}`;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.service().responseFields(this.resultName());\n }\n\n refreshMeta(): Promise<void> {\n return this.service().refreshMeta();\n }\n\n submit(request: { [key: string]: any }): Promise<{ [key: string]: any }> {\n return this.service().submit(request);\n }\n}\nRoxieResult.prototype._class += \" RoxieResult\";\n\nexport class RoxieResultRef extends DatasourceRef {\n\n serviceID(): string {\n return this.datasource().serviceID();\n }\n\n private _data: ReadonlyArray<object> = [];\n\n datasource(): RoxieResult;\n datasource(_: RoxieResult): this;\n datasource(_?: RoxieResult): this | RoxieResult {\n return super.datasource.apply(this, arguments);\n }\n\n url(): string {\n return this.datasource().service().url();\n }\n\n querySet(): string {\n return this.datasource().service().querySet();\n }\n\n queryID(): string {\n return this.datasource().service().queryID();\n }\n\n resultName(): string {\n return this.datasource().resultName();\n }\n\n @publish([], \"propertyArray\", \"Request Fields\")\n _request: Param[];\n request(): Param[];\n request(_: Param[]): this;\n request(_?: Param[]): Param[] | this {\n if (!arguments.length) return this._request;\n this._request = _;\n return this;\n }\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const filter of this.validParams()) {\n retVal = retVal.concat(filter.validate(\"request\"));\n }\n return retVal;\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IRoxieServiceRef {\n return {\n id: this.datasource().service().id(),\n output: this.resultName(),\n request: this.validParams().map((vp): DDL2.IRequestField => {\n return {\n source: vp.source(),\n remoteFieldID: vp.remoteField(),\n localFieldID: vp.localField(),\n value: vp.value()\n };\n })\n };\n }\n\n sourceHash(): string {\n return this.datasource().hash();\n }\n\n requestFieldRefs(): DDL2.IRequestField[];\n requestFieldRefs(_: DDL2.IRequestField[]): this;\n requestFieldRefs(_?: DDL2.IRequestField[]): DDL2.IRequestField[] | this {\n if (!arguments.length) return this.validParams().map(param => param.toDDL());\n this.request(_.map(fc => Param.fromDDL(this._ec, fc)));\n return this;\n }\n\n requestFields(): DDL2.IField[] {\n return this.datasource().requestFields();\n }\n\n responseFields(): DDL2.IField[] {\n return this.datasource().responseFields();\n }\n\n hash(): string {\n return this.datasource().hash({\n resultName: this.resultName(),\n params: this.request().map(param => param.hash()),\n request: this.formatRequest()\n });\n }\n\n label(): string {\n return `${this.datasource().label()}\\n${this.datasource().resultName()}`;\n }\n\n elementIDs() {\n return this._ec.elementIDs();\n }\n\n element(source) {\n return this._ec.element(source);\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const localFieldIDs: string[] = [];\n for (const param of this.validParams()) {\n localFieldIDs.push(param.localField());\n const filterSource = param.sourceViz().hipiePipeline();\n if (!refs.inputs[this.id()]) {\n refs.inputs[this.id()] = [];\n }\n refs.inputs[this.id()].push(param.localField());\n filterSource.resolveFields(refs, [param.remoteField()]);\n }\n super.resolveFields(refs, localFieldIDs);\n }\n\n validParams() {\n return this.request().filter(param => param.exists());\n }\n\n refreshMeta(): Promise<void> {\n return this.datasource().refreshMeta().then(() => {\n const oldParams = this.request();\n const diffs = compare(oldParams.map(p => p.localField()), this.datasource().requestFields().map(ff => ff.id));\n const newParams = oldParams.filter(op => diffs.update.indexOf(op.localField()) >= 0);\n this.request(newParams.concat(diffs.enter.map(label => new Param(this._ec).localField(label))));\n });\n }\n\n updatedBy(): string[] {\n return this.validParams().map(param => param.source());\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n return () => this.datasource().responseFields();\n }\n\n formatRequest(): { [key: string]: any } {\n const request: { [key: string]: any } = {};\n let hasRequest = false;\n const fields = this.datasource().requestFields();\n for (const param of this.validParams()) {\n const _value = param.calcValue();\n const field = fields.filter(row => row.id === param.localField())[0];\n let value;\n if (field.type === \"set\") {\n value = {\n Item: _value\n };\n } else {\n value = _value[0];\n }\n if (value !== undefined) {\n request[param.localField()] = value;\n }\n hasRequest = true;\n }\n if (!hasRequest) {\n request.refresh = true;\n }\n return request;\n }\n\n private _prevRequestHash;\n private _prevRequestPromise;\n exec(): Promise<void> {\n return super.exec().then(() => {\n const request = this.formatRequest();\n const requestHash = hashSum({ hash: this.hash(), request });\n if (this._prevRequestHash !== requestHash) {\n this._prevRequestHash = requestHash;\n this._prevRequestPromise = this.datasource().submit(request).then((response: { [key: string]: any }) => {\n const resultName = this.datasource().resultName();\n let result = response[resultName];\n if (!result) {\n // See: https://track.hpccsystems.com/browse/HPCC-21176 ---\n // \"Result 1\" => \"result_1\"\n result = response[resultName.toLowerCase().replace(/ /g, \"_\")];\n }\n return this.fixInt64(result);\n });\n }\n return this._prevRequestPromise;\n }).then(data => {\n this._data = data;\n });\n }\n\n inData(): ReadonlyArray<object> {\n return this._data;\n }\n\n computeData(): ReadonlyArray<object> {\n return this._data;\n }\n}\nRoxieResultRef.prototype._class += \" RoxieResultRef\";\n\nexport class HipieResultRef extends RoxieResultRef {\n\n fullUrl(_: string): this {\n const info = parseUrl(_);\n this.datasource().service().url(info.url);\n this.datasource().service().querySet(info.querySet);\n this.datasource().service().queryID(info.queryID);\n return this;\n }\n\n formatRequest(): { [key: string]: any } {\n const _request = super.formatRequest();\n const request: { [key: string]: any } = {};\n for (const key in _request) {\n request[key] = _request[key];\n request[`${key}_changed`] = true;\n }\n return request;\n }\n}\nHipieResultRef.prototype._class += \" HipieResultRef\";\n","import { publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { ElementContainer } from \"../model/element\";\nimport { ActivitySelection, IActivityError } from \"./activity\";\nimport { Databomb, emptyDatabomb } from \"./databomb\";\nimport { DatasourceRef, DatasourceRefType } from \"./datasource\";\nimport { Form } from \"./form\";\nimport { LogicalFile } from \"./logicalfile\";\nimport { RestResult, RestResultRef } from \"./rest\";\nimport { HipieResultRef, RoxieResult, RoxieService } from \"./roxie\";\nimport { WUResult, WUResultRef } from \"./wuresult\";\n\nlet dsPickerID = 0;\nexport class DSPicker extends ActivitySelection {\n private _nullDatasource = emptyDatabomb;\n\n @publish(\"\", \"set\", \"Activity\", function (this: DSPicker) { return this.datasourceIDs(); }, { optional: false })\n _datasourceID: string; // DDL2.IDatasourceType;\n datasourceID(): string;\n datasourceID(_: string): this;\n datasourceID(_?: string): this | string {\n if (!arguments.length) return this._datasourceID;\n if (this._datasourceID !== _) {\n this._datasourceID = _;\n this.refreshRef(_);\n }\n return this;\n }\n\n @publish(\"\", \"widget\", \"Activity\")\n _datasourceRef: DatasourceRef;\n datasourceRef(): DatasourceRef;\n datasourceRef(_: DatasourceRef): this;\n datasourceRef(_?: DatasourceRef): this | DatasourceRef {\n return super.selection.apply(this, arguments);\n }\n\n datasource(): DatasourceRefType {\n return this.datasourceRef().datasource();\n }\n\n refreshRef(id: string) {\n const ds: DatasourceRefType = this._ec.datasource(id);\n if (ds instanceof Databomb) {\n this.selection(new DatasourceRef().datasource(ds));\n } else if (ds instanceof Form) {\n this.selection(new DatasourceRef().datasource(ds));\n } else if (ds instanceof LogicalFile) {\n this.selection(new DatasourceRef().datasource(ds));\n } else if (ds instanceof RoxieService) {\n this.selection(new DatasourceRef().datasource(ds));\n } else if (ds instanceof WUResult) {\n this.selection(new WUResultRef().datasource(ds));\n } else if (ds instanceof RoxieResult) {\n this.selection(new HipieResultRef(this._ec).datasource(ds));\n } else if (ds instanceof RestResult) {\n this.selection(new RestResultRef(this._ec).datasource(ds));\n }\n }\n\n selection(): DatasourceRef;\n selection(_: DatasourceRef): this;\n selection(_?: DatasourceRef): DatasourceRef | this {\n const retVal = super.selection.apply(this, arguments);\n if (!arguments.length) return retVal || this._nullDatasource;\n if (this._datasourceID !== _.datasource().id()) {\n this._datasourceID = _.datasource().id();\n }\n return this;\n }\n\n validate(): IActivityError[] {\n return this.selection().validate();\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n this._id = `ds_${++dsPickerID}`;\n const ds = this._ec.datasources()[0];\n this.datasourceID(ds.id());\n }\n\n toDDL(): DDL2.IDatasourceRef {\n return {\n ...this.datasourceRef().toDDL(),\n id: this.datasourceID()\n };\n }\n\n // Activity overrides ---\n hash(more: { [key: string]: any } = {}): string {\n return super.hash({\n ...more\n });\n }\n\n datasourceIDs() {\n return this._ec.datasources().map(ds => {\n return {\n value: ds.id(),\n text: `${ds.label()} ${ds.id() !== ds.label() ? ` (${ds.id()})` : \"\"}`\n };\n });\n }\n}\nDSPicker.prototype._class += \" DSPicker\";\n","export type StringStringDict = { [key: string]: string; };\n\n// Datasource ===============================================================\nexport type IFilterRule = \"==\" | \"!=\" | \"<\" | \"<=\" | \">\" | \">=\" | \"set\" | \"notequals\";\nexport interface IFilter {\n fieldid: string;\n nullable: boolean;\n rule: IFilterRule;\n minid?: string;\n maxid?: string;\n}\n\nexport interface IOutput {\n id: string;\n from?: string;\n filter?: IFilter[];\n notify?: string[];\n}\n\nexport interface IDatasource {\n id: string;\n filter?: IFilter[];\n outputs: IOutput[];\n}\n\nexport interface IWorkunitDatasource extends IDatasource {\n WUID: boolean;\n}\nexport function isWorkunitDatasource(ref: IAnyDatasource): ref is IWorkunitDatasource {\n return (ref as IWorkunitDatasource).WUID !== undefined;\n}\n\nexport interface IDatabombDatasource extends IDatasource {\n databomb: true;\n}\nexport function isDatabombDatasource(ref: IAnyDatasource): ref is IDatabombDatasource {\n return (ref as IDatabombDatasource).databomb === true;\n}\n\nexport interface IHipieDatasource extends IDatasource {\n URL: string;\n}\nexport function isHipieDatasource(ref: IAnyDatasource): ref is IHipieDatasource {\n return (ref as IHipieDatasource).URL !== undefined;\n}\n\nexport type IAnyDatasource = IWorkunitDatasource | IDatabombDatasource | IHipieDatasource;\n// Event ====================================================================\nexport interface IEventUpdate {\n visualization: string;\n instance?: string;\n datasource: string;\n col?: string;\n merge: boolean;\n mappings?: StringStringDict;\n}\n\nexport interface IEvent {\n mappings?: StringStringDict; // Legacy\n updates: IEventUpdate[];\n}\n\n// Mappings =================================================================\nexport interface IPieMapping {\n label: string;\n weight: string;\n}\n\nexport interface ILineMapping {\n x: string[];\n y: string[];\n}\n\nexport interface ITableMapping {\n value: string[];\n}\n\nexport interface IChoroMapping {\n weight: string | string[];\n}\n\nexport interface IChoroUSStateMapping extends IChoroMapping {\n state: string;\n}\n\nexport interface IChoroUSCountyMapping extends IChoroMapping {\n county: string;\n}\n\nexport interface IChoroGeohashMapping extends IChoroMapping {\n geohash: string;\n}\n\nexport interface IGraphMapping {\n uid: string;\n label: string;\n weight: string;\n flags: string;\n}\n\nexport interface IGraphLinkMapping {\n uid: string;\n}\n\nexport interface IHeatMapMapping {\n x: string;\n y: string;\n weight: string;\n}\n\nexport interface ISliderMapping {\n label: string;\n}\n// Source ===================================================================\nexport interface ISource {\n id: string;\n output: string;\n sort?: string[];\n first?: string | number;\n reverse?: boolean;\n properties?: StringStringDict; // TODO Needed?\n}\n\nexport interface IPieSource extends ISource {\n mappings: IPieMapping;\n}\n\nexport interface ILineSource extends ISource {\n mappings: ILineMapping;\n}\n\nexport interface ITableSource extends ISource {\n mappings: ITableMapping;\n}\n\nexport interface IGraphLink {\n mappings: IGraphLinkMapping;\n childfile: string;\n}\n\nexport interface IGraphSource extends ISource {\n mappings: IGraphMapping;\n link: IGraphLink;\n}\n\nexport interface IHeatMapSource extends ISource {\n mappings: IHeatMapMapping;\n}\n\nexport interface IChoroSource extends ISource {\n mappings: IAnyChoroMapping;\n}\n\nexport interface ISliderSource extends ISource {\n mappings: ISliderMapping;\n}\n\n// Visualization ============================================================\nexport type VisualizationType = \"PIE\" | \"LINE\" | \"BAR\" | \"TABLE\" | \"CHORO\" | \"GRAPH\" | \"HEAT_MAP\" | \"SLIDER\" | \"SUMMARY\" | \"FORM\" | \"2DCHART\" | \"WORD_CLOUD\" | \"BUBBLE\";\nexport type VisualizationFieldDataType = \"bool\" | \"boolean\" | \"integer\" | \"integer4\" | \"integer8\" | \"unsigned\" | \"unsigned4\" | \"unsigned8\" | \"float\" | \"double\" | \"real\" | \"real4\" | \"real8\" | \"string\" | \"date\" | \"time\" | \"geohash\" | \"dataset\" | \"visualization\";\nexport type VisualizationFieldType = VisualizationFieldDataType | \"range\";\nexport type VisualizationFieldFuncitonType = \"SUM\" | \"AVE\" | \"MIN\" | \"MAX\" | \"SCALE\";\n\nexport interface IVisualizationField {\n id: string;\n properties: {\n label?: string;\n datatype: VisualizationFieldDataType;\n default?: any[];\n function?: VisualizationFieldFuncitonType;\n params?: {\n param1: string;\n param2: string;\n }\n type: VisualizationFieldType;\n };\n}\n\nexport interface IVisualization {\n id: string;\n title?: string;\n type: VisualizationType;\n fields?: IVisualizationField[];\n properties?: {\n charttype?: string,\n\n // TODO Split Known Properties ---\n [key: string]: any\n };\n events?: { [key: string]: IEvent };\n onSelect?: any; // legacy\n color?: any; // legacy\n}\n\nexport interface IPieVisualization extends IVisualization {\n type: \"PIE\" | \"BAR\";\n source: IPieSource;\n}\nexport function isPieVisualization(viz: IAnyVisualization): viz is IPieVisualization {\n return (viz as IPieVisualization).type === \"PIE\" || (viz as IPieVisualization).type === \"BAR\";\n}\n\nexport interface ILineVisualization extends IVisualization {\n type: \"LINE\";\n source: ILineSource;\n}\nexport function isLineVisualization(viz: IAnyVisualization): viz is ILineVisualization {\n return (viz as ILineVisualization).type === \"LINE\";\n}\n\nexport type ChoroColor = \"default\" | \"YlGn\" | \"YlGnBu\" | \"GnBu\" | \"BuGn\" | \"PuBuGn\" | \"PuBu\" | \"BuPu\" | \"RdPu\" | \"PuRd\" | \"OrRd\" | \"YlOrRd\" | \"YlOrBr\" | \"Purples\" | \"Blues\" | \"Greens\" | \"Oranges\" | \"Reds\" | \"Greys\" | \"PuOr\" | \"BrBG\" | \"PRGn\" | \"PiYG\" | \"RdBu\" | \"RdGy\" | \"RdYlBu\" | \"Spectral\" | \"RdYlGn\" | \"RdWhGr\";\nexport interface IChoroVisualization extends IVisualization {\n type: \"CHORO\";\n source: IChoroSource;\n\n visualizations?: IChoroVisualization[];\n color?: ChoroColor;\n}\nexport function isChoroVisualization(viz: IAnyVisualization): viz is IChoroVisualization {\n return (viz as IChoroVisualization).type === \"CHORO\";\n}\n\nexport interface ITableVisualization extends IVisualization {\n type: \"TABLE\";\n label: string[];\n source: ITableSource;\n}\nexport function isTableVisualization(viz: IAnyVisualization): viz is ITableVisualization {\n return (viz as ITableVisualization).type === \"TABLE\";\n}\n\nexport interface ISliderVisualization extends IVisualization {\n type: \"SLIDER\";\n source: ISliderSource;\n range?: number[];\n}\nexport function isSliderVisualization(viz: IAnyVisualization): viz is ISliderVisualization {\n return (viz as ISliderVisualization).type === \"SLIDER\";\n}\n\nexport interface IIcon {\n [id: string]: string | number | boolean;\n}\n\nexport type IValueMappings = { [key: string]: IIcon; };\n\nexport interface IVisualizationIcon {\n fieldid?: string;\n faChar?: string;\n valuemappings?: IValueMappings;\n}\n\nexport interface IGraphVisualization extends IVisualization {\n type: \"GRAPH\";\n source: IGraphSource;\n\n label: string[];\n icon: IVisualizationIcon;\n flag: IVisualizationIcon[];\n}\nexport function isGraphVisualization(viz: IAnyVisualization): viz is IGraphVisualization {\n return (viz as IGraphVisualization).type === \"GRAPH\";\n}\n\nexport interface IHeatMapVisualization extends IVisualization {\n type: \"HEAT_MAP\";\n source: IHeatMapSource;\n}\nexport function isHeatMapVisualization(viz: IAnyVisualization): viz is IHeatMapVisualization {\n return (viz as IHeatMapVisualization).type === \"HEAT_MAP\";\n}\n\nexport interface IFormVisualization extends IVisualization {\n type: \"FORM\";\n}\nexport function isFormVisualization(viz: IAnyVisualization): viz is IFormVisualization {\n return (viz as IFormVisualization).type === \"FORM\";\n}\n\n// Dashboard ================================================================\nexport interface IDashboard {\n id?: string;\n title?: string;\n enable?: string;\n label?: string;\n primary?: boolean;\n visualizations: IAnyVisualization[];\n}\n\nexport interface IDDL {\n dashboards: IDashboard[];\n datasources: IAnyDatasource[];\n hipieversion: string;\n visualizationversion: string;\n}\n\n// DDL ======================================================================\nexport type DDLSchema = IDDL;\n\n// Helpers ==================================================================\nexport type IAnyChoroMapping = IChoroUSStateMapping | IChoroUSCountyMapping | IChoroGeohashMapping;\nexport function isUSStateMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroUSStateMapping).state !== undefined;\n}\nexport function isUSCountyMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroUSCountyMapping).county !== undefined;\n}\nexport function isGeohashMapping(mappings: IAnyChoroMapping) {\n return (mappings as IChoroGeohashMapping).geohash !== undefined;\n}\nexport type IAnyMapping = IPieMapping | ILineMapping | IGraphMapping | IAnyChoroMapping | ITableMapping | IHeatMapMapping;\nexport type IAnySource = IPieSource | ILineSource | ITableSource | IChoroSource | IGraphSource | IHeatMapSource;\nexport type IAnyVisualization = IPieVisualization | ILineVisualization | ITableVisualization | IChoroVisualization | IGraphVisualization | IHeatMapVisualization | ISliderVisualization | IFormVisualization;\n","export type RowType = { [key: string]: any; };\n\n// Fields ==============================================================\nexport type Number64 = string;\nexport type Range = [number | string, number | string];\nexport type Dataset = any[];\nexport type IFieldType = \"boolean\" | \"number\" | \"number64\" | \"string\" | \"range\" | \"dataset\" | \"set\" | \"object\";\n\nexport interface IFieldBoolean {\n type: \"boolean\";\n id: string;\n default?: boolean;\n}\n\nexport interface IFieldNumber {\n type: \"number\";\n id: string;\n default?: number;\n}\n\nexport interface IFieldNumber64 {\n type: \"number64\";\n id: string;\n default?: Number64;\n}\n\nexport interface IFieldString {\n type: \"string\";\n id: string;\n default?: string;\n}\n\nexport interface IFieldRange {\n type: \"range\";\n id: string;\n default?: Range;\n}\n\nexport interface IFieldDataset {\n type: \"dataset\";\n id: string;\n default?: Dataset;\n children: IField[];\n}\n\nexport interface IFieldSet {\n type: \"set\";\n id: string;\n default?: Array<string | number>;\n fieldType: \"string\" | \"number\";\n}\n\nexport interface IFieldObject {\n type: \"object\";\n id: string;\n default?: object;\n fields: { [key: string]: IField };\n}\n\nexport type IField = IFieldBoolean | IFieldNumber | IFieldNumber64 | IFieldString | IFieldRange | IFieldDataset | IFieldSet | IFieldObject;\n\n// Datasources ==============================================================\nexport type IDatasourceType = \"wuresult\" | \"logicalfile\" | \"roxie\" | \"hipie\" | \"rest\" | \"form\" | \"databomb\";\nexport type DatasourceType = IWUResult | ILogicalFile | IRoxieService | IHipieService | IRestService | IForm | IDatabomb;\n\nexport interface IDatasource {\n type: IDatasourceType;\n id: string;\n}\n\nexport interface IService extends IDatasource {\n url: string;\n}\n\nexport interface IOutput {\n fields: IField[];\n}\n\nexport type OutputDict = { [key: string]: IOutput };\n\nexport interface IWUResult extends IService {\n type: \"wuresult\";\n wuid: string;\n outputs: OutputDict;\n}\n\nexport interface ILogicalFile extends IService {\n type: \"logicalfile\";\n logicalFile: string;\n fields: IField[];\n}\n\nexport interface IRoxieService extends IService {\n type: \"roxie\";\n querySet: string;\n queryID: string;\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IHipieService extends IService {\n type: \"hipie\";\n querySet: string;\n queryID: string;\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IRestService extends IService {\n type: \"rest\";\n action: string;\n mode?: \"get\" | \"post\";\n inputs: IField[];\n outputs: OutputDict;\n}\n\nexport interface IForm extends IDatasource {\n type: \"form\";\n fields: IField[];\n}\n\nexport type IDatabombFormat = \"csv\" | \"tsv\" | \"json\";\nexport interface IDatabomb extends IDatasource {\n type: \"databomb\";\n fields: IField[];\n format: IDatabombFormat;\n payload?: string;\n}\n\n// IDatasorceRef ---\nexport interface IDatasourceBaseRef {\n id: string;\n}\n\nexport interface IDatabombRef extends IDatasourceBaseRef {\n}\n\nexport interface IWUResultRef extends IDatasourceBaseRef {\n output: string;\n}\n\nexport interface IRestResultRef extends IDatasourceBaseRef {\n responseField: string;\n}\n\nexport interface IHipieSqlRef extends IDatasourceBaseRef {\n}\n\nexport interface IRequestField {\n localFieldID: string;\n source: string;\n remoteFieldID: string;\n value: string;\n}\n\nexport interface IRoxieServiceRef extends IDatasourceBaseRef {\n request: IRequestField[];\n output: string;\n}\n\nexport type IDatasourceRef = IDatabombRef | IWUResultRef | IRoxieServiceRef | IHipieSqlRef;\n\nexport function isDatabombRef(ref: IDatasourceRef): ref is IDatabombRef {\n return !isWUResultRef(ref) && !isRoxieServiceRef(ref);\n}\n\nexport function isWUResultRef(ref: IDatasourceRef): ref is IWUResultRef {\n return (ref as IWUResultRef).output !== undefined && !isRoxieServiceRef(ref);\n}\n\nexport function isRoxieServiceRef(ref: IDatasourceRef): ref is IRoxieServiceRef {\n return (ref as IRoxieServiceRef).request !== undefined;\n}\n\n// Activities ===============================================================\nexport type IActivityType = \"filter\" | \"project\" | \"groupby\" | \"sort\" | \"limit\" | \"mappings\";\nexport type ActivityType = IFilter | IProject | IGroupBy | ISort | ILimit | IMappings;\n\nexport interface IActivity {\n type: IActivityType;\n}\n\n// Filter ===================================================================\nexport type IMappingConditionType = \"==\" | \"!=\" | \">\" | \">=\" | \"<\" | \"<=\" | \"range\" | \"in\";\nexport interface IMapping {\n remoteFieldID: string;\n localFieldID: string;\n condition: IMappingConditionType;\n nullable: boolean;\n}\n\nexport interface IFilterCondition {\n viewID: string;\n mappings: IMapping[];\n}\n\nexport interface IFilterStaticCondition {\n localFieldID: string;\n condition: IMappingConditionType;\n value: string | number;\n}\n\nexport type FilterCondition = IFilterCondition | IFilterStaticCondition;\nexport function isIFilterCondition(fc: FilterCondition): fc is IFilterCondition {\n return !!(fc as IFilterCondition).viewID;\n}\n\nexport interface IFilter extends IActivity {\n type: \"filter\";\n conditions: FilterCondition[];\n}\nexport function isFilterActivity(activity: IActivity): activity is IFilter {\n return activity.type === \"filter\";\n}\n\n// Project ==================================================================\nexport interface IEquals {\n fieldID: string;\n type: \"=\";\n sourceFieldID: string;\n transformations?: MultiTransformationType[];\n}\nexport type ICalculatedType = \"+\" | \"-\" | \"*\" | \"/\";\nexport interface ICalculated {\n fieldID: string;\n type: ICalculatedType;\n sourceFieldID1: string;\n sourceFieldID2: string;\n}\n\nexport interface IScale {\n fieldID: string;\n type: \"scale\";\n sourceFieldID: string;\n factor: number;\n}\n\nexport interface ITemplate {\n fieldID: string;\n type: \"template\";\n template: string;\n}\n\nexport interface IMapMapping {\n value: any;\n newValue: any;\n}\n\nexport interface IMap {\n fieldID: string;\n type: \"map\";\n sourceFieldID: string;\n default: any;\n mappings: IMapMapping[];\n}\n\nexport type MultiTransformationType = IEquals | ICalculated | IScale | ITemplate | IMap;\nexport interface IMulti {\n fieldID: string;\n type: \"multi\";\n transformations: MultiTransformationType[];\n}\n\nexport type ProjectTransformationType = MultiTransformationType | IMulti;\nexport interface IProject extends IActivity {\n type: \"project\";\n transformations: ProjectTransformationType[];\n}\nexport function isProjectActivity(activity: IActivity): activity is IProject {\n return activity.type === \"project\";\n}\nexport interface IMappings extends IActivity {\n type: \"mappings\";\n transformations: ProjectTransformationType[];\n}\nexport function isMappingsActivity(activity: IActivity): activity is IMappings {\n return activity.type === \"mappings\";\n}\n// GroupBy ==================================================================\nexport type IAggregateType = \"min\" | \"max\" | \"sum\" | \"mean\" | \"variance\" | \"deviation\";\nexport interface IAggregate {\n fieldID: string;\n type: IAggregateType;\n inFieldID: string;\n baseCountFieldID?: string;\n}\n\nexport interface ICount {\n fieldID: string;\n type: \"count\";\n}\n\nexport type AggregateType = IAggregate | ICount;\n\nexport interface IGroupBy extends IActivity {\n type: \"groupby\";\n groupByIDs: string[];\n aggregates: AggregateType[];\n}\nexport function isGroupByActivity(activity: IActivity): activity is IGroupBy {\n return activity.type === \"groupby\";\n}\n\n// Sort =====================================================================\nexport interface ISortCondition {\n fieldID: string;\n descending: boolean;\n}\n\nexport interface ISort extends IActivity {\n type: \"sort\";\n conditions: ISortCondition[];\n}\nexport function isSortActivity(activity: IActivity): activity is ISort {\n return activity.type === \"sort\";\n}\n\n// Limit ====================================================================\nexport interface ILimit extends IActivity {\n type: \"limit\";\n limit: number;\n}\nexport function isLimitActivity(activity: IActivity): activity is ILimit {\n return activity.type === \"limit\";\n}\n\n// Visualization ============================================================\nexport interface IWidgetProperties {\n __class: string;\n [propID: string]: string | string[] | number | boolean | undefined | IWidgetProperties | IWidgetProperties[];\n}\n\nexport interface IWidget {\n id: string;\n chartType: string;\n __class: string;\n properties: IWidgetProperties;\n}\n\nexport type VisibilityType = \"normal\" | \"flyout\";\nexport const VisibilitySet: VisibilityType[] = [\"normal\", \"flyout\"];\n\nexport interface IVisualization extends IWidget {\n title: string;\n description?: string;\n visibility: VisibilityType;\n mappings: IMappings;\n secondaryDataviewID?: string;\n}\n\n// View =====================================================================\nexport interface IView {\n id: string;\n datasource: IDatasourceRef;\n activities: ActivityType[];\n visualization: IVisualization;\n}\n\n// DDL ======================================================================\nexport interface IProperties {\n [propID: string]: any;\n}\n\nexport interface Schema {\n version: \"2.2.1\";\n createdBy: {\n name: string;\n version: string;\n };\n datasources: DatasourceType[];\n dataviews: IView[];\n properties?: IProperties;\n hipieProperties?: IProperties;\n\n // The following defs are only provided to assist the Java code generation (from the the generated schema) ---\n defs?: {\n fieldTypes: {\n number64: Number64;\n range: Range;\n dataset: Dataset;\n fieldType: IFieldType;\n fieldBoolean: IFieldBoolean;\n fieldNumber: IFieldNumber;\n fieldNumber64: IFieldNumber64\n fieldString: IFieldString;\n fieldRange: IFieldRange;\n fieldDataset: IFieldDataset;\n fieldSet: IFieldSet;\n fieldObject: IFieldObject;\n field: IField;\n };\n datasourceTypes: {\n datasource: IDatasource;\n logicalFile: ILogicalFile;\n form: IForm;\n databomb: IDatabomb;\n wuresult: IWUResult;\n hipieService: IHipieService;\n roxieService: IRoxieService;\n };\n datasourceRefTypes: {\n wuResultRef: IWUResultRef;\n roxieServiceRef: IRoxieServiceRef;\n };\n activityTypes: {\n filter: IFilter;\n project: IProject;\n groupby: IGroupBy;\n sort: ISort;\n limit: ILimit;\n mappings: IMappings;\n };\n aggregateTypes: {\n aggregate: IAggregate;\n count: ICount;\n };\n transformationTypes: {\n equals: IEquals;\n calculated: ICalculated;\n scale: IScale;\n template: ITemplate;\n map: IMap;\n multi: IMulti;\n };\n };\n}\n","import * as DDL2 from \"./ddl/v2\";\n\nconst classMappings: any = {\n c3chart_Bar: \"chart_Bar\",\n c3chart_Column: \"chart_Column\",\n c3chart_Pie: \"chart_Pie\",\n c3chart_Area: \"chart_Area\",\n c3chart_Line: \"chart_Line\",\n amchart_Bar: \"chart_Bar\",\n amchart_Column: \"chart_Column\",\n amchart_Pie: \"chart_Pie\",\n amchart_Area: \"chart_Area\",\n amchart_Line: \"chart_Line\",\n google_Bar: \"chart_Bar\",\n google_Column: \"chart_Column\",\n google_Pie: \"chart_Pie\",\n google_Area: \"chart_Area\",\n google_Line: \"chart_Line\",\n other_Table: \"dgrid_Table\"\n};\nconst propertyMappings: any = {\n xAxisLabelRotation: [\n { name: \"xAxisOverlapMode\", transform: (n: any) => \"rotate\" },\n { name: \"xAxisLabelRotation\", transform: (n: any) => n }\n ],\n tooltipLabelColor: {\n name: \"tooltipLabelColor\"\n },\n tooltipSeriesColor: {\n name: \"tooltipSeriesColor\"\n },\n tooltipValueColor: {\n name: \"tooltipValueColor\"\n },\n tooltipValueFormat: {\n name: \"tooltipValueFormat\"\n },\n timePattern: {\n name: \"xAxisTypeTimePattern\"\n },\n smoothLines: {\n name: \"interpolate\",\n transform: (n: any) => {\n if (n === false) return \"linear\";\n return \"catmullRom\";\n }\n },\n holePercent: {\n name: \"innerRadius\"\n },\n flip: {\n name: \"orientation\",\n transform: (n: any) => n ? \"vertical\" : \"horizontal\"\n },\n bottomText: {\n name: \"xAxisTitle\"\n },\n xAxisTypeTimePattern: {\n name: \"xAxisTypeTimePattern\"\n },\n yAxisTypeTimePattern: {\n name: \"yAxisTypeTimePattern\"\n },\n valueFormat: {\n name: \"tooltipValueFormat\"\n },\n stacked: {\n name: \"yAxisStacked\"\n },\n showYGrid: {\n name: \"yAxisGuideLines\"\n },\n showXGrid: {\n name: \"xAxisGuideLines\"\n },\n showValueLabel: {\n name: \"showValue\"\n },\n low: {\n name: \"yAxisDomainLow\"\n },\n high: {\n name: \"yAxisDomainHigh\"\n },\n fillOpacity: {\n name: \"interpolateFillOpacity\"\n },\n areaFillOpacity: {\n name: \"interpolateFillOpacity\"\n },\n showToolbar: {\n name: \"titleVisible\"\n },\n showCSV: {\n name: \"downloadButtonVisible\"\n }\n};\n\nfunction findKeyVal(object: any, key: any, val: any): any {\n let value;\n\n for (const k in object) {\n if (k === key && object[k] === val) {\n value = object;\n break;\n }\n if (object[k] && typeof object[k] === \"object\") {\n value = findKeyVal(object[k], key, val);\n if (value !== undefined) {\n break;\n }\n }\n }\n return value;\n}\n\nfunction apply_to_dataviews(ddl2: DDL2.Schema, dermObj: any) {\n\n ddl2.dataviews.forEach(apply_to_dataview);\n\n function apply_to_dataview(dv: any) {\n const widgetId = dv.id;\n const dermPanelObj: any = findKeyVal(dermObj, \"__id\", widgetId);\n if (dermPanelObj) {\n const dermPanelProps: any = dermPanelObj.__properties;\n const dermWidgetObj: any = dermPanelObj.__properties.chart ? dermPanelObj.__properties.chart : dermPanelObj.__properties.widget;\n const dermWidgetProps: any = dermWidgetObj.__properties;\n apply_class_mapping(dermWidgetObj);\n apply_panel_property_mapping(dermPanelProps, dermWidgetProps);\n apply_widget_property_mapping(dermPanelProps, dermWidgetProps);\n if (dv.visualization.properties.chartType) {\n dv.visualization.properties.charttype = dv.visualization.properties.chartType;\n }\n } else {\n console.warn(widgetId + \" not found in dermObj\");\n }\n\n function apply_class_mapping(dermWidgetObj: any) {\n dv.visualization.__class = swap_with_supported_class(dermWidgetObj.__class);\n dv.visualization.properties.__class = \"marshaller_VizChartPanel\";\n if (!dv.visualization.properties.widget) dv.visualization.properties.widget = {};\n dv.visualization.properties.widget.__class = dv.visualization.__class;\n\n function swap_with_supported_class(_class: string): string {\n return classMappings[_class] ? classMappings[_class] : _class;\n }\n }\n function apply_panel_property_mapping(dermPanelProps: any, dermWidgetProps: any) {\n dv.visualization.title = dermPanelProps.title || \"\";\n dv.visualization.description = \"\";\n dv.visualization.visibility = dv.visualization.visibility === \"flyout\" ? \"flyout\" : \"normal\";\n dv.visualization.chartType = dv.visualization.__class.split(\"_\")[1];\n for (const propName in dermPanelProps) {\n if (typeof propertyMappings[propName] !== \"undefined\") {\n const newPropName = propertyMappings[propName].name;\n\n if (typeof propertyMappings[propName].transform === \"function\") {\n dv.visualization.properties[newPropName] = propertyMappings[propName].transform(dermPanelProps[propName]);\n } else {\n dv.visualization.properties[newPropName] = dermPanelProps[propName];\n }\n\n }\n }\n if (dermWidgetProps && dermWidgetProps.showLegend && dv.visualization.properties) {\n dv.visualization.properties.legendVisible = true;\n }\n }\n function apply_widget_property_mapping(dermPanelProps: any, dermWidgetProps: any) {\n dv.visualization.title = dv.visualization.title || dermWidgetProps.title || \"\";\n dv.visualization.description = \"\"; // TODO - should this map to anything?\n dv.visualization.visibility = dv.visualization.visibility === \"flyout\" ? \"flyout\" : \"normal\";\n dv.visualization.chartType = dv.visualization.__class.split(\"_\")[1];\n for (const propName in dermWidgetProps) {\n if (typeof propertyMappings[propName] !== \"undefined\") {\n if (propertyMappings[propName] instanceof Array) {\n propertyMappings[propName].forEach((p: any) => {\n const newPropName = p.name;\n dv.visualization.properties.widget[newPropName] = p.transform(dermWidgetProps[propName]);\n if (typeof propertyMappings[propName].transform === \"function\") {\n dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);\n } else {\n dv.visualization.properties.widget[newPropName] = dermWidgetProps[propName];\n }\n });\n } else {\n const newPropName = propertyMappings[propName].name;\n dv.visualization.properties.widget[newPropName] = propertyMappings[propName].transform(dermWidgetProps[propName]);\n }\n }\n }\n }\n }\n}\n\ntype CellPosition = {\n id: string;\n position: [number, number, number, number];\n};\n\ntype DDLProperties = {\n layout: CellPosition[]\n};\n\nfunction apply_to_properties_layout(ddl2: DDL2.Schema, dermObj: any) {\n const retVal: DDLProperties = {\n layout: []\n };\n if (!dermObj || !dermObj.__properties) return;\n dermObj.__properties.content.forEach((cell: any) => {\n const cellPosition: CellPosition = {\n // TODO - if \"id\" could be avoided then layouts could apply to any dashboard with the same number of widgets\n id: cell.__properties.widget.__id,\n position: [\n cell.__properties.gridCol,\n cell.__properties.gridRow,\n cell.__properties.gridColSpan,\n cell.__properties.gridRowSpan\n ]\n };\n retVal.layout.push(cellPosition);\n });\n return retVal;\n}\n\nexport function upgrade(ddl2: DDL2.Schema, dermObj: any) {\n apply_to_dataviews(ddl2, dermObj);\n return apply_to_properties_layout(ddl2, dermObj);\n}\n","import { PKG_NAME, PKG_VERSION } from \"./__package__\";\nimport * as DDL1 from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\nimport { upgrade as dermatologyUpgrade } from \"./dermatology\";\n\ninterface IDatasourceOutput {\n datasource: DDL1.IAnyDatasource;\n output: DDL1.IOutput;\n}\n\ninterface IDatasourceOutputFilter extends IDatasourceOutput {\n filter: DDL1.IFilter;\n}\n\nconst UPGRADE_HEX_CHAR: boolean = false;\nfunction faCharFix(faChar: any): string | undefined {\n if (UPGRADE_HEX_CHAR && typeof faChar === \"string\") {\n return String.fromCharCode(parseInt(faChar));\n }\n return faChar;\n}\n\nclass DDLUpgrade {\n _ddl: DDL1.IDDL;\n _baseUrl: string;\n _wuid?: string;\n _toLowerCase: boolean;\n\n _datasources: { [id: string]: DDL1.IAnyDatasource } = {};\n _datasourceUpdates: { [id: string]: { id: string, output?: string } } = {};\n _visualizations: { [id: string]: DDL1.IAnyVisualization } = {};\n\n _ddl2Datasources: { [id: string]: DDL2.DatasourceType } = {};\n _ddl2DatasourceFields: { [dsid: string]: { [outputID: string]: { [fieldID: string]: DDL2.IField } } } = {};\n\n _ddl2Dataviews: { [id: string]: DDL2.IView } = {};\n _ddl2DataviewActivities: {\n [viewID: string]: {\n project: DDL2.IProject,\n filters: DDL2.IFilter,\n sort: DDL2.ISort,\n groupBy: DDL2.IGroupBy,\n limit: DDL2.ILimit,\n mappings: DDL2.IMappings\n }\n } = {};\n\n constructor(ddl: DDL1.IDDL, baseUrl: string = \"http://localhost:8010\", wuid: string = \"WUID\", toLowerCase = true) {\n this._ddl = ddl;\n this._baseUrl = baseUrl;\n this._wuid = wuid;\n this._toLowerCase = toLowerCase;\n\n this.indexDDL();\n this.readDDL();\n }\n\n toLowerCase(s: string): string {\n return this._toLowerCase ? s.toLowerCase() : s;\n }\n\n isVizDatasourceRoxie(viz: DDL1.IAnyVisualization): boolean {\n if ((viz as any).source) {\n const ds = this._datasources[(viz as any).source.id];\n if (DDL1.isHipieDatasource(ds)) {\n return true;\n }\n }\n return false;\n }\n\n getDatasourceOutputs(dsID: string, vizID: string): IDatasourceOutput[] {\n const retVal: IDatasourceOutput[] = [];\n const datasource = this._datasources[dsID];\n for (const output of datasource.outputs) {\n if (output.notify) {\n for (const notify of output.notify) {\n if (notify === vizID) {\n retVal.push({\n datasource,\n output\n });\n }\n }\n }\n }\n return retVal;\n }\n\n getDatasourceFilters(dsID: string, vizID: string): { [id: string]: IDatasourceOutputFilter } {\n const retVal: { [id: string]: IDatasourceOutputFilter } = {};\n for (const dsOut of this.getDatasourceOutputs(dsID, vizID)) {\n if (dsOut.output.filter) {\n for (const filter of dsOut.output.filter) {\n retVal[filter.fieldid] = {\n datasource: dsOut.datasource,\n output: dsOut.output,\n filter\n };\n }\n }\n }\n return retVal;\n }\n\n indexDDL() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n this._visualizations[viz.id] = viz;\n }\n }\n\n for (const ds of this._ddl.datasources) {\n this._datasources[ds.id] = ds;\n for (const output of ds.outputs) {\n if (output.notify) {\n for (const notify of output.notify) {\n this._datasourceUpdates[notify] = {\n id: ds.id,\n output: output.from || output.id\n };\n }\n }\n }\n }\n }\n\n readDDL() {\n for (const ds of this._ddl.datasources) {\n if (DDL1.isWorkunitDatasource(ds)) {\n const ddl2DS: DDL2.IWUResult = {\n type: \"wuresult\",\n id: ds.id,\n url: this._baseUrl,\n wuid: this._wuid!,\n outputs: {}\n };\n for (const output of ds.outputs) {\n this.output2output(output, ddl2DS.outputs);\n }\n this._ddl2Datasources[ds.id] = ddl2DS;\n } else if (DDL1.isDatabombDatasource(ds)) {\n } else {\n const urlParts = ds.URL!.split(\"/WsEcl/submit/query/\");\n const hostParts = urlParts[0];\n const roxieParts = urlParts[1].split(\"/\");\n const ddl2DS: DDL2.IHipieService = {\n type: \"hipie\",\n id: ds.id,\n url: hostParts,\n querySet: roxieParts[0],\n queryID: roxieParts[1],\n inputs: [],\n outputs: {}\n };\n for (const output of ds.outputs) {\n this.output2output(output, ddl2DS.outputs);\n }\n this._ddl2Datasources[ds.id] = ddl2DS;\n }\n }\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.type === \"FORM\") {\n this._ddl2Datasources[viz.id] = {\n type: \"form\",\n id: viz.id,\n fields: this.formFields2field(viz.fields)\n };\n this._datasourceUpdates[viz.id] = { id: viz.id };\n } else if (viz.type === \"SLIDER\") {\n this._ddl2Datasources[viz.id] = {\n type: \"form\",\n id: viz.id,\n fields: this.formFields2field(viz.fields, true)\n };\n this._datasourceUpdates[viz.id] = { id: viz.id };\n }\n\n this._ddl2Dataviews[viz.id] = this.anyViz2view(viz);\n }\n }\n\n this.readGroupBy();\n this.readFilters();\n this.readSort();\n this.readMappings();\n }\n\n readGroupBy() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.fields) {\n const projectTransformations: DDL2.ProjectTransformationType[] = [];\n const groupByColumns: string[] = [];\n const aggrFields: DDL2.IAggregate[] = [];\n for (const field of viz.fields) {\n if (field.properties && field.properties.function) {\n switch (field.properties.function) {\n case \"SUM\":\n case \"MIN\":\n case \"MAX\":\n aggrFields.push({\n type: this.func2aggr(field.properties.function),\n inFieldID: this.toLowerCase(field.properties.params!.param1),\n fieldID: this.toLowerCase(field.id)\n } as DDL2.IAggregate);\n break;\n case \"AVE\":\n aggrFields.push({\n type: this.func2aggr(field.properties.function),\n inFieldID: this.toLowerCase(field.properties.params!.param1),\n baseCountFieldID: field.properties.params!.param2 ? this.toLowerCase(field.properties.params!.param2) : undefined,\n fieldID: this.toLowerCase(field.id)\n } as DDL2.IAggregate);\n break;\n case \"SCALE\":\n if (typeof field.properties.params!.param1 === \"object\") {\n const props: any = field.properties.params!.param1;\n switch (props.function) {\n case \"SUM\":\n case \"MIN\":\n case \"MAX\":\n aggrFields.push({\n type: this.func2aggr(props.function),\n inFieldID: this.toLowerCase(props.params.param1),\n fieldID: this.toLowerCase(field.id)\n });\n break;\n }\n }\n projectTransformations.push({\n type: \"scale\",\n sourceFieldID: this.toLowerCase(field.id),\n fieldID: this.toLowerCase(field.id),\n factor: +field.properties.params!.param2\n });\n break;\n default:\n groupByColumns.push(this.toLowerCase(field.id));\n throw new Error(`Unhandled field function: ${field.properties.function}`);\n }\n } else {\n groupByColumns.push(this.toLowerCase(field.id));\n }\n }\n if (projectTransformations.length) {\n this._ddl2DataviewActivities[viz.id].project.transformations = projectTransformations;\n }\n if (aggrFields.length) {\n this._ddl2DataviewActivities[viz.id].groupBy.groupByIDs = [...groupByColumns];\n this._ddl2DataviewActivities[viz.id].groupBy.aggregates = aggrFields;\n }\n }\n }\n }\n }\n\n func2aggr(func: DDL1.VisualizationFieldFuncitonType): DDL2.IAggregateType {\n switch (func) {\n case \"SUM\":\n return \"sum\";\n case \"AVE\":\n return \"mean\";\n case \"MIN\":\n return \"min\";\n case \"MAX\":\n return \"max\";\n }\n throw new Error(`Unknown DDL1 Function Type: ${func}`);\n }\n\n readMappings() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (DDL1.isFormVisualization(viz)) {\n } else if (DDL1.isPieVisualization(viz)) {\n this.readPieMappings(viz);\n } else if (DDL1.isChoroVisualization(viz)) {\n this.readChoroMappings(viz);\n } else if (DDL1.isLineVisualization(viz)) {\n this.readLineMappings(viz);\n } else if (DDL1.isTableVisualization(viz)) {\n this.readTableMappings(viz);\n } else if (DDL1.isGraphVisualization(viz)) {\n this.readGraphMappings(viz);\n } else if (DDL1.isSliderVisualization(viz)) {\n this.readSliderMappings(viz);\n } else {\n throw new Error(`Unkown DDL1 mapping type: ${viz.type}`);\n }\n }\n }\n }\n\n readPieMappings(viz: DDL1.IPieVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n mappings.transformations.push({\n fieldID: \"weight\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])\n });\n }\n\n readChoroMappings(viz: DDL1.IChoroVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(this.anyChoroMapping2label(viz.source.mappings))\n });\n mappings.transformations.push({\n fieldID: \"weight\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.weight[0])\n });\n }\n\n anyChoroMapping2label(mapping: any) {\n return mapping.state || mapping.county || mapping.geohash;\n }\n\n readLineMappings(viz: DDL1.ILineVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: viz.source.mappings.x[0],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.x[0])\n });\n for (let i = 0; i < viz.source.mappings.y.length; ++i) {\n mappings.transformations.push({\n fieldID: viz.source.mappings.y[i],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.y[i])\n });\n }\n }\n\n readTableMappings(viz: DDL1.ITableVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n for (let i = 0; i < viz.label.length; ++i) {\n mappings.transformations.push({\n fieldID: viz.label[i],\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.value[i])\n });\n }\n }\n\n readGraphEnums(valueMappings?: DDL1.IValueMappings, annotation: boolean = false): DDL2.IMapMapping[] {\n const retVal: DDL2.IMapMapping[] = [];\n if (valueMappings) {\n for (const value in valueMappings) {\n const newValue: { [key: string]: string | number | boolean | undefined } = {};\n for (const key in valueMappings[value]) {\n if (key === \"faChar\") {\n newValue[key] = faCharFix(valueMappings[value][key]);\n } else if (annotation && key.indexOf(\"icon_\") === 0) {\n console.warn(\"Deprecated flag property: \" + key);\n newValue[key.split(\"icon_\")[1]] = valueMappings[value][key];\n } else {\n newValue[key] = valueMappings[value][key];\n }\n }\n // remove v1.x \"0\" annotations as they equated to \"nothing\" ---\n if (!annotation || value !== \"0\") {\n retVal.push({\n value,\n newValue\n });\n }\n }\n }\n return retVal;\n }\n\n readGraphMappings(viz: DDL1.IGraphVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"uid\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.uid)\n });\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n if (viz.icon.fieldid) {\n mappings.transformations.push({\n fieldID: \"icon\",\n type: \"map\",\n sourceFieldID: this.toLowerCase(viz.icon.fieldid),\n default: { fachar: faCharFix(viz.icon.faChar) },\n mappings: this.readGraphEnums(viz.icon.valuemappings)\n });\n }\n let idx = 0;\n if (viz.flag) {\n for (const flag of viz.flag) {\n if (flag.fieldid) {\n mappings.transformations.push({\n fieldID: `annotation_${idx++}`,\n type: \"map\",\n sourceFieldID: this.toLowerCase(flag.fieldid),\n default: {},\n mappings: this.readGraphEnums(flag.valuemappings, true)\n });\n }\n }\n }\n mappings.transformations.push({\n fieldID: \"links\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.link.childfile),\n transformations: [{\n fieldID: \"uid\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.link.mappings.uid)\n }]\n });\n }\n\n readSliderMappings(viz: DDL1.ISliderVisualization) {\n const mappings = this._ddl2DataviewActivities[viz.id].mappings;\n mappings.transformations.push({\n fieldID: \"label\",\n type: \"=\",\n sourceFieldID: this.toLowerCase(viz.source.mappings.label)\n });\n }\n\n readFilters() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if (viz.events) {\n for (const eventID in viz.events) {\n const event = viz.events[eventID];\n for (const update of event.updates) {\n const otherViz = this._ddl2Dataviews[update.visualization];\n const dsFilters = this.getDatasourceFilters(update.datasource, otherViz.id);\n if (update.mappings) {\n if (DDL2.isRoxieServiceRef(otherViz.datasource)) {\n for (const key in update.mappings) {\n otherViz.datasource.request.push({\n source: viz.id,\n remoteFieldID: this.toLowerCase(key),\n localFieldID: this.toLowerCase(update.mappings[key])\n } as DDL2.IRequestField);\n }\n } else {\n const condition: DDL2.IFilterCondition = {\n viewID: viz.id,\n mappings: []\n };\n for (const key in update.mappings) {\n const mapping = update.mappings[key];\n const dsFilter = (mapping && dsFilters[mapping]) ? dsFilters[mapping].filter : undefined;\n if (!dsFilter) {\n console.warn(`Select Mapping \"${mapping}\" in viz \"${viz.id}\" not found in filters for \"${otherViz.id}\"`);\n } else {\n condition.mappings.push({\n remoteFieldID: this.toLowerCase(key),\n localFieldID: this.toLowerCase(update.mappings[key]),\n condition: this.rule2condition(dsFilter.rule),\n nullable: dsFilter.nullable\n });\n }\n }\n this._ddl2DataviewActivities[otherViz.id].filters.conditions.push(condition);\n }\n }\n }\n }\n }\n }\n }\n }\n\n rule2condition(_: DDL1.IFilterRule): DDL2.IMappingConditionType {\n switch (_) {\n case \"set\":\n return \"in\";\n case \"notequals\":\n return \"!=\";\n }\n return _;\n }\n\n readSort() {\n for (const dash of this._ddl.dashboards) {\n for (const viz of dash.visualizations) {\n if ((viz as any).source) {\n if ((viz as any).source.sort) {\n const vizSort = this._ddl2DataviewActivities[viz.id].sort;\n vizSort.conditions = ((viz as any).source.sort as string[]).map(s => {\n if (s.indexOf(\"-\") === 0) {\n return {\n fieldID: this.toLowerCase(s.substr(1)),\n descending: true\n } as DDL2.ISortCondition;\n }\n return {\n fieldID: this.toLowerCase(s),\n descending: false\n } as DDL2.ISortCondition;\n });\n }\n if ((viz as any).source.first) {\n const vizLimit = this._ddl2DataviewActivities[viz.id].limit;\n vizLimit.limit = +(viz as any).source.first;\n }\n }\n }\n }\n }\n\n anyViz2view(viz: DDL1.IAnyVisualization): DDL2.IView {\n const project: DDL2.IProject = {\n type: \"project\",\n transformations: []\n };\n const filters: DDL2.IFilter = {\n type: \"filter\",\n conditions: []\n };\n const groupBy: DDL2.IGroupBy = {\n type: \"groupby\",\n groupByIDs: [],\n aggregates: []\n };\n const sort: DDL2.ISort = {\n type: \"sort\",\n conditions: []\n };\n const limit: DDL2.ILimit = {\n type: \"limit\",\n limit: 0\n };\n const mappings: DDL2.IMappings = {\n type: \"mappings\",\n transformations: []\n };\n this._ddl2DataviewActivities[viz.id] = {\n project,\n filters,\n sort,\n groupBy,\n limit,\n mappings\n };\n const datasourceRef: DDL2.IDatasourceBaseRef | DDL2.IRoxieServiceRef = this.isVizDatasourceRoxie(viz) ? {\n id: this._datasourceUpdates[viz.id].id,\n request: [],\n output: this._datasourceUpdates[viz.id].output\n } : {\n id: this._datasourceUpdates[viz.id].id,\n output: this._datasourceUpdates[viz.id].output\n };\n return {\n id: viz.id,\n datasource: datasourceRef,\n activities: [\n project,\n filters,\n sort,\n groupBy,\n limit\n ],\n visualization: {\n id: viz.id,\n title: viz.title || \"\",\n description: \"\",\n visibility: viz.properties && viz.properties.flyout === true ? \"flyout\" : \"normal\",\n ...this.type2chartType(viz.type),\n mappings,\n properties: (viz.properties || {}) as DDL2.IWidgetProperties\n }\n };\n }\n\n type2chartType(chartType: DDL1.VisualizationType): { chartType: string, __class: string } {\n switch (chartType) {\n case \"LINE\":\n return { chartType: \"Line\", __class: \"chart_Line\" };\n case \"BUBBLE\":\n return { chartType: \"Bubble\", __class: \"chart_Bubble\" };\n case \"PIE\":\n return { chartType: \"Pie\", __class: \"chart_Pie\" };\n case \"BAR\":\n return { chartType: \"Column\", __class: \"chart_Column\" };\n case \"FORM\":\n return { chartType: \"FieldForm\", __class: \"form_FieldForm\" };\n case \"WORD_CLOUD\":\n return { chartType: \"WordCloud\", __class: \"chart_WordCloud\" };\n case \"CHORO\":\n return { chartType: \"ChoroplethStates\", __class: \"map_ChoroplethStates\" };\n case \"SUMMARY\":\n return { chartType: \"Summary\", __class: \"chart_Summary\" };\n case \"SLIDER\":\n return { chartType: \"FieldForm\", __class: \"form_FieldForm\" };\n case \"HEAT_MAP\":\n return { chartType: \"HeatMap\", __class: \"other_HeatMap\" };\n case \"2DCHART\":\n return { chartType: \"Column\", __class: \"chart_Column\" };\n case \"GRAPH\":\n return { chartType: \"AdjacencyGraph\", __class: \"graph_AdjacencyGraph\" };\n case \"TABLE\":\n default:\n return { chartType: \"Table\", __class: \"dgrid_Table\" };\n }\n }\n\n formFields2field(fields?: DDL1.IVisualizationField[], slider: boolean = false): DDL2.IField[] {\n if (!fields) return [];\n return fields.map(field => {\n switch (field.properties.type) {\n case \"range\":\n return {\n type: \"range\",\n id: field.id,\n default: (field.properties.default ? field.properties.default as DDL2.Range : undefined)\n };\n case \"dataset\":\n return {\n type: \"dataset\",\n id: field.id,\n default: [],\n children: []\n };\n default:\n return {\n type: this.formFieldType2fieldType(field.properties.datatype, slider),\n id: field.id,\n default: field.properties.default ? field.properties.default[0] : undefined\n };\n }\n });\n }\n\n formFieldType2fieldType(fieldType: DDL1.VisualizationFieldType, slider: boolean): \"string\" | \"number\" | \"boolean\" {\n switch (fieldType) {\n case \"bool\":\n case \"boolean\":\n return \"boolean\";\n case \"integer\":\n case \"unsigned\":\n case \"float\":\n case \"double\":\n case \"real\":\n return \"number\";\n case \"string\":\n return \"string\";\n default:\n return slider ? \"number\" : \"string\";\n }\n }\n\n output2output(output: DDL1.IOutput, target: DDL2.OutputDict) {\n target[output.from || output.id] = {\n fields: this.filters2fields(output.filter)\n };\n }\n\n filters2fields(filters?: DDL1.IFilter[]): DDL2.IField[] {\n if (!filters) return [];\n return filters.filter(filter => {\n const idParts = filter.fieldid.split(\"-\");\n return idParts.length === 1 || idParts[1] === \"range\";\n }).map(filter => {\n const idParts = filter.fieldid.split(\"-\");\n const retVal: DDL2.IFieldString = {\n type: \"string\",\n id: idParts[0]\n };\n return retVal;\n });\n }\n\n getVizField(vizID: string, fieldID: string): DDL2.IField {\n return {\n type: \"string\",\n id: \"\",\n default: \"\"\n };\n }\n\n writeDatasources(): DDL2.DatasourceType[] {\n const retVal: DDL2.DatasourceType[] = [];\n for (const id in this._ddl2Datasources) {\n retVal.push(this._ddl2Datasources[id]);\n }\n return retVal;\n }\n\n writeDataviews(): DDL2.IView[] {\n const retVal: DDL2.IView[] = [];\n for (const id in this._ddl2Dataviews) {\n retVal.push(this._ddl2Dataviews[id]);\n }\n return retVal;\n }\n\n writeProperties(): DDL2.IProperties | undefined {\n return {\n // TODO\n };\n }\n\n write(): DDL2.Schema {\n return {\n version: \"2.2.1\",\n createdBy: {\n name: PKG_NAME,\n version: PKG_VERSION\n },\n datasources: this.writeDatasources(),\n dataviews: this.writeDataviews(),\n properties: this.writeProperties()\n };\n }\n}\n\nexport function upgrade(ddl: DDL1.IDDL, baseUrl?: string, wuid?: string, toLowerCase: boolean = true, dermatologyJson = {}): DDL2.Schema {\n const ddlUp = new DDLUpgrade(ddl, baseUrl, wuid, toLowerCase);\n const retVal = ddlUp.write();\n retVal.properties = dermatologyUpgrade(retVal, dermatologyJson);\n return retVal;\n}\n","export const PKG_NAME = \"@hpcc-js/ddl-shim\";\nexport const PKG_VERSION = \"2.25.2\";\nexport const BUILD_VERSION = \"2.108.11\";\n","export function merge(...sets:Array<string>):string {\n\tif (sets.length > 1) {\n\t\tsets[0] = sets[0].slice(0, -1);\n\t\tconst xl = sets.length - 1;\n\t\tfor (let x = 1; x < xl; ++x) {\n\t\t\tsets[x] = sets[x].slice(1, -1);\n\t\t}\n\t\tsets[xl] = sets[xl].slice(1);\n\t\treturn sets.join('');\n\t} else {\n\t\treturn sets[0];\n\t}\n}\n\nexport function subexp(str:string):string {\n\treturn \"(?:\" + str + \")\";\n}\n\nexport function typeOf(o:any):string {\n\treturn o === undefined ? \"undefined\" : (o === null ? \"null\" : Object.prototype.toString.call(o).split(\" \").pop().split(\"]\").shift().toLowerCase());\n}\n\nexport function toUpperCase(str:string):string {\n\treturn str.toUpperCase();\n}\n\nexport function toArray(obj:any):Array<any> {\n\treturn obj !== undefined && obj !== null ? (obj instanceof Array ? obj : (typeof obj.length !== \"number\" || obj.split || obj.setInterval || obj.call ? [obj] : Array.prototype.slice.call(obj))) : [];\n}\n\n\nexport function assign(target: object, source: any): any {\n\tconst obj = target as any;\n\tif (source) {\n\t\tfor (const key in source) {\n\t\t\tobj[key] = source[key];\n\t\t}\n\t}\n\treturn obj;\n}","import { URIRegExps } from \"./uri\";\nimport { merge, subexp } from \"./util\";\n\nexport function buildExps(isIRI:boolean):URIRegExps {\n\tconst\n\t\tALPHA$$ = \"[A-Za-z]\",\n\t\tCR$ = \"[\\\\x0D]\",\n\t\tDIGIT$$ = \"[0-9]\",\n\t\tDQUOTE$$ = \"[\\\\x22]\",\n\t\tHEXDIG$$ = merge(DIGIT$$, \"[A-Fa-f]\"), //case-insensitive\n\t\tLF$$ = \"[\\\\x0A]\",\n\t\tSP$$ = \"[\\\\x20]\",\n\t\tPCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)), //expanded\n\t\tGEN_DELIMS$$ = \"[\\\\:\\\\/\\\\?\\\\#\\\\[\\\\]\\\\@]\",\n\t\tSUB_DELIMS$$ = \"[\\\\!\\\\$\\\\&\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\=]\",\n\t\tRESERVED$$ = merge(GEN_DELIMS$$, SUB_DELIMS$$),\n\t\tUCSCHAR$$ = isIRI ? \"[\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF]\" : \"[]\", //subset, excludes bidi control characters\n\t\tIPRIVATE$$ = isIRI ? \"[\\\\uE000-\\\\uF8FF]\" : \"[]\", //subset\n\t\tUNRESERVED$$ = merge(ALPHA$$, DIGIT$$, \"[\\\\-\\\\.\\\\_\\\\~]\", UCSCHAR$$),\n\t\tSCHEME$ = subexp(ALPHA$$ + merge(ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\") + \"*\"),\n\t\tUSERINFO$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\")) + \"*\"),\n\t\tDEC_OCTET$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"[1-9]\" + DIGIT$$) + \"|\" + DIGIT$$),\n\t\tDEC_OCTET_RELAXED$ = subexp(subexp(\"25[0-5]\") + \"|\" + subexp(\"2[0-4]\" + DIGIT$$) + \"|\" + subexp(\"1\" + DIGIT$$ + DIGIT$$) + \"|\" + subexp(\"0?[1-9]\" + DIGIT$$) + \"|0?0?\" + DIGIT$$), //relaxed parsing rules\n\t\tIPV4ADDRESS$ = subexp(DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$ + \"\\\\.\" + DEC_OCTET_RELAXED$),\n\t\tH16$ = subexp(HEXDIG$$ + \"{1,4}\"),\n\t\tLS32$ = subexp(subexp(H16$ + \"\\\\:\" + H16$) + \"|\" + IPV4ADDRESS$),\n\t\tIPV6ADDRESS1$ = subexp( subexp(H16$ + \"\\\\:\") + \"{6}\" + LS32$), // 6( h16 \":\" ) ls32\n\t\tIPV6ADDRESS2$ = subexp( \"\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{5}\" + LS32$), // \"::\" 5( h16 \":\" ) ls32\n\t\tIPV6ADDRESS3$ = subexp(subexp( H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{4}\" + LS32$), //[ h16 ] \"::\" 4( h16 \":\" ) ls32\n\t\tIPV6ADDRESS4$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,1}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{3}\" + LS32$), //[ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n\t\tIPV6ADDRESS5$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,2}\" + H16$) + \"?\\\\:\\\\:\" + subexp(H16$ + \"\\\\:\") + \"{2}\" + LS32$), //[ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n\t\tIPV6ADDRESS6$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,3}\" + H16$) + \"?\\\\:\\\\:\" + H16$ + \"\\\\:\" + LS32$), //[ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n\t\tIPV6ADDRESS7$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,4}\" + H16$) + \"?\\\\:\\\\:\" + LS32$), //[ *4( h16 \":\" ) h16 ] \"::\" ls32\n\t\tIPV6ADDRESS8$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,5}\" + H16$) + \"?\\\\:\\\\:\" + H16$ ), //[ *5( h16 \":\" ) h16 ] \"::\" h16\n\t\tIPV6ADDRESS9$ = subexp(subexp(subexp(H16$ + \"\\\\:\") + \"{0,6}\" + H16$) + \"?\\\\:\\\\:\" ), //[ *6( h16 \":\" ) h16 ] \"::\"\n\t\tIPV6ADDRESS$ = subexp([IPV6ADDRESS1$, IPV6ADDRESS2$, IPV6ADDRESS3$, IPV6ADDRESS4$, IPV6ADDRESS5$, IPV6ADDRESS6$, IPV6ADDRESS7$, IPV6ADDRESS8$, IPV6ADDRESS9$].join(\"|\")),\n\t\tZONEID$ = subexp(subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$) + \"+\"), //RFC 6874\n\t\tIPV6ADDRZ$ = subexp(IPV6ADDRESS$ + \"\\\\%25\" + ZONEID$), //RFC 6874\n\t\tIPV6ADDRZ_RELAXED$ = subexp(IPV6ADDRESS$ + subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + ZONEID$), //RFC 6874, with relaxed parsing rules\n\t\tIPVFUTURE$ = subexp(\"[vV]\" + HEXDIG$$ + \"+\\\\.\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:]\") + \"+\"),\n\t\tIP_LITERAL$ = subexp(\"\\\\[\" + subexp(IPV6ADDRZ_RELAXED$ + \"|\" + IPV6ADDRESS$ + \"|\" + IPVFUTURE$) + \"\\\\]\"), //RFC 6874\n\t\tREG_NAME$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$)) + \"*\"),\n\t\tHOST$ = subexp(IP_LITERAL$ + \"|\" + IPV4ADDRESS$ + \"(?!\" + REG_NAME$ + \")\" + \"|\" + REG_NAME$),\n\t\tPORT$ = subexp(DIGIT$$ + \"*\"),\n\t\tAUTHORITY$ = subexp(subexp(USERINFO$ + \"@\") + \"?\" + HOST$ + subexp(\"\\\\:\" + PORT$) + \"?\"),\n\t\tPCHAR$ = subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@]\")),\n\t\tSEGMENT$ = subexp(PCHAR$ + \"*\"),\n\t\tSEGMENT_NZ$ = subexp(PCHAR$ + \"+\"),\n\t\tSEGMENT_NZ_NC$ = subexp(subexp(PCT_ENCODED$ + \"|\" + merge(UNRESERVED$$, SUB_DELIMS$$, \"[\\\\@]\")) + \"+\"),\n\t\tPATH_ABEMPTY$ = subexp(subexp(\"\\\\/\" + SEGMENT$) + \"*\"),\n\t\tPATH_ABSOLUTE$ = subexp(\"\\\\/\" + subexp(SEGMENT_NZ$ + PATH_ABEMPTY$) + \"?\"), //simplified\n\t\tPATH_NOSCHEME$ = subexp(SEGMENT_NZ_NC$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_ROOTLESS$ = subexp(SEGMENT_NZ$ + PATH_ABEMPTY$), //simplified\n\t\tPATH_EMPTY$ = \"(?!\" + PCHAR$ + \")\",\n\t\tPATH$ = subexp(PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tQUERY$ = subexp(subexp(PCHAR$ + \"|\" + merge(\"[\\\\/\\\\?]\", IPRIVATE$$)) + \"*\"),\n\t\tFRAGMENT$ = subexp(subexp(PCHAR$ + \"|[\\\\/\\\\?]\") + \"*\"),\n\t\tHIER_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$),\n\t\tURI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tRELATIVE_PART$ = subexp(subexp(\"\\\\/\\\\/\" + AUTHORITY$ + PATH_ABEMPTY$) + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$),\n\t\tRELATIVE$ = subexp(RELATIVE_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\" + subexp(\"\\\\#\" + FRAGMENT$) + \"?\"),\n\t\tURI_REFERENCE$ = subexp(URI$ + \"|\" + RELATIVE$),\n\t\tABSOLUTE_URI$ = subexp(SCHEME$ + \"\\\\:\" + HIER_PART$ + subexp(\"\\\\?\" + QUERY$) + \"?\"),\n\n\t\tGENERIC_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tRELATIVE_REF$ = \"^(){0}\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_NOSCHEME$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tABSOLUTE_REF$ = \"^(\" + SCHEME$ + \")\\\\:\" + subexp(subexp(\"\\\\/\\\\/(\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?)\") + \"?(\" + PATH_ABEMPTY$ + \"|\" + PATH_ABSOLUTE$ + \"|\" + PATH_ROOTLESS$ + \"|\" + PATH_EMPTY$ + \")\") + subexp(\"\\\\?(\" + QUERY$ + \")\") + \"?$\",\n\t\tSAMEDOC_REF$ = \"^\" + subexp(\"\\\\#(\" + FRAGMENT$ + \")\") + \"?$\",\n\t\tAUTHORITY_REF$ = \"^\" + subexp(\"(\" + USERINFO$ + \")@\") + \"?(\" + HOST$ + \")\" + subexp(\"\\\\:(\" + PORT$ + \")\") + \"?$\"\n\t;\n\n\treturn {\n\t\tNOT_SCHEME : new RegExp(merge(\"[^]\", ALPHA$$, DIGIT$$, \"[\\\\+\\\\-\\\\.]\"), \"g\"),\n\t\tNOT_USERINFO : new RegExp(merge(\"[^\\\\%\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_HOST : new RegExp(merge(\"[^\\\\%\\\\[\\\\]\\\\:]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH : new RegExp(merge(\"[^\\\\%\\\\/\\\\:\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_PATH_NOSCHEME : new RegExp(merge(\"[^\\\\%\\\\/\\\\@]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tNOT_QUERY : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\", IPRIVATE$$), \"g\"),\n\t\tNOT_FRAGMENT : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, SUB_DELIMS$$, \"[\\\\:\\\\@\\\\/\\\\?]\"), \"g\"),\n\t\tESCAPE : new RegExp(merge(\"[^]\", UNRESERVED$$, SUB_DELIMS$$), \"g\"),\n\t\tUNRESERVED : new RegExp(UNRESERVED$$, \"g\"),\n\t\tOTHER_CHARS : new RegExp(merge(\"[^\\\\%]\", UNRESERVED$$, RESERVED$$), \"g\"),\n\t\tPCT_ENCODED : new RegExp(PCT_ENCODED$, \"g\"),\n\t\tIPV4ADDRESS : new RegExp(\"^(\" + IPV4ADDRESS$ + \")$\"),\n\t\tIPV6ADDRESS : new RegExp(\"^\\\\[?(\" + IPV6ADDRESS$ + \")\" + subexp(subexp(\"\\\\%25|\\\\%(?!\" + HEXDIG$$ + \"{2})\") + \"(\" + ZONEID$ + \")\") + \"?\\\\]?$\") //RFC 6874, with relaxed parsing rules\n\t};\n}\n\nexport default buildExps(false);\n","import { URIRegExps } from \"./uri\";\nimport { buildExps } from \"./regexps-uri\";\n\nexport default buildExps(true);\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7E]/; // non-ASCII chars\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, fn) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = fn(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(string, fn) {\n\tconst parts = string.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tstring = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tstring = string.replace(regexSeparators, '\\x2E');\n\tconst labels = string.split('.');\n\tconst encoded = map(labels, fn).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = array => String.fromCodePoint(...array);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint - 0x30 < 0x0A) {\n\t\treturn codePoint - 0x16;\n\t}\n\tif (codePoint - 0x41 < 0x1A) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint - 0x61 < 0x1A) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tlet oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tlet inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tlet basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue == n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport default punycode;\n","/**\n * URI.js\n *\n * @fileoverview An RFC 3986 compliant, scheme extendable URI parsing/validating/resolving library for JavaScript.\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/uri-js\n */\n\n/**\n * Copyright 2011 Gary Court. All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification, are\n * permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this list of\n * conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice, this list\n * of conditions and the following disclaimer in the documentation and/or other materials\n * provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY GARY COURT ``AS IS'' AND ANY EXPRESS OR IMPLIED\n * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\n * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR\n * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * The views and conclusions contained in the software and documentation are those of the\n * authors and should not be interpreted as representing official policies, either expressed\n * or implied, of Gary Court.\n */\n\nimport URI_PROTOCOL from \"./regexps-uri\";\nimport IRI_PROTOCOL from \"./regexps-iri\";\nimport punycode from \"punycode\";\nimport { toUpperCase, typeOf, assign } from \"./util\";\n\nexport interface URIComponents {\n\tscheme?:string;\n\tuserinfo?:string;\n\thost?:string;\n\tport?:number|string;\n\tpath?:string;\n\tquery?:string;\n\tfragment?:string;\n\treference?:string;\n\terror?:string;\n}\n\nexport interface URIOptions {\n\tscheme?:string;\n\treference?:string;\n\ttolerant?:boolean;\n\tabsolutePath?:boolean;\n\tiri?:boolean;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n}\n\nexport interface URISchemeHandler<Components extends URIComponents = URIComponents, Options extends URIOptions = URIOptions, ParentComponents extends URIComponents = URIComponents> {\n\tscheme:string;\n\tparse(components:ParentComponents, options:Options):Components;\n\tserialize(components:Components, options:Options):ParentComponents;\n\tunicodeSupport?:boolean;\n\tdomainHost?:boolean;\n\tabsolutePath?:boolean;\n}\n\nexport interface URIRegExps {\n\tNOT_SCHEME : RegExp,\n\tNOT_USERINFO : RegExp,\n\tNOT_HOST : RegExp,\n\tNOT_PATH : RegExp,\n\tNOT_PATH_NOSCHEME : RegExp,\n\tNOT_QUERY : RegExp,\n\tNOT_FRAGMENT : RegExp,\n\tESCAPE : RegExp,\n\tUNRESERVED : RegExp,\n\tOTHER_CHARS : RegExp,\n\tPCT_ENCODED : RegExp,\n\tIPV4ADDRESS : RegExp,\n\tIPV6ADDRESS : RegExp,\n}\n\nexport const SCHEMES:{[scheme:string]:URISchemeHandler} = {};\n\nexport function pctEncChar(chr:string):string {\n\tconst c = chr.charCodeAt(0);\n\tlet e:string;\n\n\tif (c < 16) e = \"%0\" + c.toString(16).toUpperCase();\n\telse if (c < 128) e = \"%\" + c.toString(16).toUpperCase();\n\telse if (c < 2048) e = \"%\" + ((c >> 6) | 192).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\telse e = \"%\" + ((c >> 12) | 224).toString(16).toUpperCase() + \"%\" + (((c >> 6) & 63) | 128).toString(16).toUpperCase() + \"%\" + ((c & 63) | 128).toString(16).toUpperCase();\n\n\treturn e;\n}\n\nexport function pctDecChars(str:string):string {\n\tlet newStr = \"\";\n\tlet i = 0;\n\tconst il = str.length;\n\n\twhile (i < il) {\n\t\tconst c = parseInt(str.substr(i + 1, 2), 16);\n\n\t\tif (c < 128) {\n\t\t\tnewStr += String.fromCharCode(c);\n\t\t\ti += 3;\n\t\t}\n\t\telse if (c >= 194 && c < 224) {\n\t\t\tif ((il - i) >= 6) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 6);\n\t\t\t}\n\t\t\ti += 6;\n\t\t}\n\t\telse if (c >= 224) {\n\t\t\tif ((il - i) >= 9) {\n\t\t\t\tconst c2 = parseInt(str.substr(i + 4, 2), 16);\n\t\t\t\tconst c3 = parseInt(str.substr(i + 7, 2), 16);\n\t\t\t\tnewStr += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\n\t\t\t} else {\n\t\t\t\tnewStr += str.substr(i, 9);\n\t\t\t}\n\t\t\ti += 9;\n\t\t}\n\t\telse {\n\t\t\tnewStr += str.substr(i, 3);\n\t\t\ti += 3;\n\t\t}\n\t}\n\n\treturn newStr;\n}\n\nfunction _normalizeComponentEncoding(components:URIComponents, protocol:URIRegExps) {\n\tfunction decodeUnreserved(str:string):string {\n\t\tconst decStr = pctDecChars(str);\n\t\treturn (!decStr.match(protocol.UNRESERVED) ? str : decStr);\n\t}\n\n\tif (components.scheme) components.scheme = String(components.scheme).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_SCHEME, \"\");\n\tif (components.userinfo !== undefined) components.userinfo = String(components.userinfo).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_USERINFO, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.host !== undefined) components.host = String(components.host).replace(protocol.PCT_ENCODED, decodeUnreserved).toLowerCase().replace(protocol.NOT_HOST, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.path !== undefined) components.path = String(components.path).replace(protocol.PCT_ENCODED, decodeUnreserved).replace((components.scheme ? protocol.NOT_PATH : protocol.NOT_PATH_NOSCHEME), pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.query !== undefined) components.query = String(components.query).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_QUERY, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\tif (components.fragment !== undefined) components.fragment = String(components.fragment).replace(protocol.PCT_ENCODED, decodeUnreserved).replace(protocol.NOT_FRAGMENT, pctEncChar).replace(protocol.PCT_ENCODED, toUpperCase);\n\n\treturn components;\n};\n\nfunction _stripLeadingZeros(str:string):string {\n\treturn str.replace(/^0*(.*)/, \"$1\") || \"0\";\n}\n\nfunction _normalizeIPv4(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV4ADDRESS) || [];\n\tconst [, address] = matches;\n\t\n\tif (address) {\n\t\treturn address.split(\".\").map(_stripLeadingZeros).join(\".\");\n\t} else {\n\t\treturn host;\n\t}\n}\n\nfunction _normalizeIPv6(host:string, protocol:URIRegExps):string {\n\tconst matches = host.match(protocol.IPV6ADDRESS) || [];\n\tconst [, address, zone] = matches;\n\n\tif (address) {\n\t\tconst [last, first] = address.toLowerCase().split('::').reverse();\n\t\tconst firstFields = first ? first.split(\":\").map(_stripLeadingZeros) : [];\n\t\tconst lastFields = last.split(\":\").map(_stripLeadingZeros);\n\t\tconst isLastFieldIPv4Address = protocol.IPV4ADDRESS.test(lastFields[lastFields.length - 1]);\n\t\tconst fieldCount = isLastFieldIPv4Address ? 7 : 8;\n\t\tconst lastFieldsStart = lastFields.length - fieldCount;\n\t\tconst fields = Array<string>(fieldCount);\n\n\t\tfor (let x = 0; x < fieldCount; ++x) {\n\t\t\tfields[x] = firstFields[x] || lastFields[lastFieldsStart + x] || '';\n\t\t}\n\n\t\tif (isLastFieldIPv4Address) {\n\t\t\tfields[fieldCount - 1] = _normalizeIPv4(fields[fieldCount - 1], protocol);\n\t\t}\n\n\t\tconst allZeroFields = fields.reduce<Array<{index:number,length:number}>>((acc, field, index) => {\n\t\t\tif (!field || field === \"0\") {\n\t\t\t\tconst lastLongest = acc[acc.length - 1];\n\t\t\t\tif (lastLongest && lastLongest.index + lastLongest.length === index) {\n\t\t\t\t\tlastLongest.length++;\n\t\t\t\t} else {\n\t\t\t\t\tacc.push({ index, length : 1 });\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\n\t\tconst longestZeroFields = allZeroFields.sort((a, b) => b.length - a.length)[0];\n\n\t\tlet newHost:string;\n\t\tif (longestZeroFields && longestZeroFields.length > 1) {\n\t\t\tconst newFirst = fields.slice(0, longestZeroFields.index) ;\n\t\t\tconst newLast = fields.slice(longestZeroFields.index + longestZeroFields.length);\n\t\t\tnewHost = newFirst.join(\":\") + \"::\" + newLast.join(\":\");\n\t\t} else {\n\t\t\tnewHost = fields.join(\":\");\n\t\t}\n\n\t\tif (zone) {\n\t\t\tnewHost += \"%\" + zone;\n\t\t}\n\n\t\treturn newHost;\n\t} else {\n\t\treturn host;\n\t}\n}\n\nconst URI_PARSE = /^(?:([^:\\/?#]+):)?(?:\\/\\/((?:([^\\/?#@]*)@)?(\\[[^\\/?#\\]]+\\]|[^\\/?#:]*)(?:\\:(\\d*))?))?([^?#]*)(?:\\?([^#]*))?(?:#((?:.|\\n|\\r)*))?/i;\nconst NO_MATCH_IS_UNDEFINED = (<RegExpMatchArray>(\"\").match(/(){0}/))[1] === undefined;\n\nexport function parse(uriString:string, options:URIOptions = {}):URIComponents {\n\tconst components:URIComponents = {};\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\n\tif (options.reference === \"suffix\") uriString = (options.scheme ? options.scheme + \":\" : \"\") + \"//\" + uriString;\n\n\tconst matches = uriString.match(URI_PARSE);\n\n\tif (matches) {\n\t\tif (NO_MATCH_IS_UNDEFINED) {\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1];\n\t\t\tcomponents.userinfo = matches[3];\n\t\t\tcomponents.host = matches[4];\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = matches[7];\n\t\t\tcomponents.fragment = matches[8];\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = matches[5];\n\t\t\t}\n\t\t} else { //IE FIX for improper RegExp matching\n\t\t\t//store each component\n\t\t\tcomponents.scheme = matches[1] || undefined;\n\t\t\tcomponents.userinfo = (uriString.indexOf(\"@\") !== -1 ? matches[3] : undefined);\n\t\t\tcomponents.host = (uriString.indexOf(\"//\") !== -1 ? matches[4] : undefined);\n\t\t\tcomponents.port = parseInt(matches[5], 10);\n\t\t\tcomponents.path = matches[6] || \"\";\n\t\t\tcomponents.query = (uriString.indexOf(\"?\") !== -1 ? matches[7] : undefined);\n\t\t\tcomponents.fragment = (uriString.indexOf(\"#\") !== -1 ? matches[8] : undefined);\n\n\t\t\t//fix port number\n\t\t\tif (isNaN(components.port)) {\n\t\t\t\tcomponents.port = (uriString.match(/\\/\\/(?:.|\\n)*\\:(?:\\/|\\?|\\#|$)/) ? matches[4] : undefined);\n\t\t\t}\n\t\t}\n\n\t\tif (components.host) {\n\t\t\t//normalize IP hosts\n\t\t\tcomponents.host = _normalizeIPv6(_normalizeIPv4(components.host, protocol), protocol);\n\t\t}\n\n\t\t//determine reference type\n\t\tif (components.scheme === undefined && components.userinfo === undefined && components.host === undefined && components.port === undefined && !components.path && components.query === undefined) {\n\t\t\tcomponents.reference = \"same-document\";\n\t\t} else if (components.scheme === undefined) {\n\t\t\tcomponents.reference = \"relative\";\n\t\t} else if (components.fragment === undefined) {\n\t\t\tcomponents.reference = \"absolute\";\n\t\t} else {\n\t\t\tcomponents.reference = \"uri\";\n\t\t}\n\n\t\t//check for reference errors\n\t\tif (options.reference && options.reference !== \"suffix\" && options.reference !== components.reference) {\n\t\t\tcomponents.error = components.error || \"URI is not a \" + options.reference + \" reference.\";\n\t\t}\n\n\t\t//find scheme handler\n\t\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t\t//check if scheme can't handle IRIs\n\t\tif (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n\t\t\t//if host component is a domain name\n\t\t\tif (components.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost))) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\tcomponents.host = punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//convert IRI -> URI\n\t\t\t_normalizeComponentEncoding(components, URI_PROTOCOL);\n\t\t} else {\n\t\t\t//normalize encodings\n\t\t\t_normalizeComponentEncoding(components, protocol);\n\t\t}\n\n\t\t//perform scheme specific parsing\n\t\tif (schemeHandler && schemeHandler.parse) {\n\t\t\tschemeHandler.parse(components, options);\n\t\t}\n\t} else {\n\t\tcomponents.error = components.error || \"URI can not be parsed.\";\n\t}\n\n\treturn components;\n};\n\nfunction _recomposeAuthority(components:URIComponents, options:URIOptions):string|undefined {\n\tconst protocol = (options.iri !== false ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\tif (components.userinfo !== undefined) {\n\t\turiTokens.push(components.userinfo);\n\t\turiTokens.push(\"@\");\n\t}\n\n\tif (components.host !== undefined) {\n\t\t//normalize IP hosts, add brackets and escape zone separator for IPv6\n\t\turiTokens.push(_normalizeIPv6(_normalizeIPv4(String(components.host), protocol), protocol).replace(protocol.IPV6ADDRESS, (_, $1, $2) => \"[\" + $1 + ($2 ? \"%25\" + $2 : \"\") + \"]\"));\n\t}\n\n\tif (typeof components.port === \"number\" || typeof components.port === \"string\") {\n\t\turiTokens.push(\":\");\n\t\turiTokens.push(String(components.port));\n\t}\n\n\treturn uriTokens.length ? uriTokens.join(\"\") : undefined;\n};\n\nconst RDS1 = /^\\.\\.?\\//;\nconst RDS2 = /^\\/\\.(\\/|$)/;\nconst RDS3 = /^\\/\\.\\.(\\/|$)/;\nconst RDS4 = /^\\.\\.?$/;\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/;\n\nexport function removeDotSegments(input:string):string {\n\tconst output:Array<string> = [];\n\n\twhile (input.length) {\n\t\tif (input.match(RDS1)) {\n\t\t\tinput = input.replace(RDS1, \"\");\n\t\t} else if (input.match(RDS2)) {\n\t\t\tinput = input.replace(RDS2, \"/\");\n\t\t} else if (input.match(RDS3)) {\n\t\t\tinput = input.replace(RDS3, \"/\");\n\t\t\toutput.pop();\n\t\t} else if (input === \".\" || input === \"..\") {\n\t\t\tinput = \"\";\n\t\t} else {\n\t\t\tconst im = input.match(RDS5);\n\t\t\tif (im) {\n\t\t\t\tconst s = im[0];\n\t\t\t\tinput = input.slice(s.length);\n\t\t\t\toutput.push(s);\n\t\t\t} else {\n\t\t\t\tthrow new Error(\"Unexpected dot segment condition\");\n\t\t\t}\n\t\t}\n\t}\n\n\treturn output.join(\"\");\n};\n\nexport function serialize(components:URIComponents, options:URIOptions = {}):string {\n\tconst protocol = (options.iri ? IRI_PROTOCOL : URI_PROTOCOL);\n\tconst uriTokens:Array<string> = [];\n\n\t//find scheme handler\n\tconst schemeHandler = SCHEMES[(options.scheme || components.scheme || \"\").toLowerCase()];\n\n\t//perform scheme specific serialization\n\tif (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(components, options);\n\n\tif (components.host) {\n\t\t//if host component is an IPv6 address\n\t\tif (protocol.IPV6ADDRESS.test(components.host)) {\n\t\t\t//TODO: normalize IPv6 address as per RFC 5952\n\t\t}\n\n\t\t//if host component is a domain name\n\t\telse if (options.domainHost || (schemeHandler && schemeHandler.domainHost)) {\n\t\t\t//convert IDN via punycode\n\t\t\ttry {\n\t\t\t\tcomponents.host = (!options.iri ? punycode.toASCII(components.host.replace(protocol.PCT_ENCODED, pctDecChars).toLowerCase()) : punycode.toUnicode(components.host));\n\t\t\t} catch (e) {\n\t\t\t\tcomponents.error = components.error || \"Host's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t}\n\t\t}\n\t}\n\n\t//normalize encoding\n\t_normalizeComponentEncoding(components, protocol);\n\n\tif (options.reference !== \"suffix\" && components.scheme) {\n\t\turiTokens.push(components.scheme);\n\t\turiTokens.push(\":\");\n\t}\n\n\tconst authority = _recomposeAuthority(components, options);\n\tif (authority !== undefined) {\n\t\tif (options.reference !== \"suffix\") {\n\t\t\turiTokens.push(\"//\");\n\t\t}\n\n\t\turiTokens.push(authority);\n\n\t\tif (components.path && components.path.charAt(0) !== \"/\") {\n\t\t\turiTokens.push(\"/\");\n\t\t}\n\t}\n\n\tif (components.path !== undefined) {\n\t\tlet s = components.path;\n\n\t\tif (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n\t\t\ts = removeDotSegments(s);\n\t\t}\n\n\t\tif (authority === undefined) {\n\t\t\ts = s.replace(/^\\/\\//, \"/%2F\"); //don't allow the path to start with \"//\"\n\t\t}\n\n\t\turiTokens.push(s);\n\t}\n\n\tif (components.query !== undefined) {\n\t\turiTokens.push(\"?\");\n\t\turiTokens.push(components.query);\n\t}\n\n\tif (components.fragment !== undefined) {\n\t\turiTokens.push(\"#\");\n\t\turiTokens.push(components.fragment);\n\t}\n\n\treturn uriTokens.join(\"\"); //merge tokens into a string\n};\n\nexport function resolveComponents(base:URIComponents, relative:URIComponents, options:URIOptions = {}, skipNormalization?:boolean):URIComponents {\n\tconst target:URIComponents = {};\n\n\tif (!skipNormalization) {\n\t\tbase = parse(serialize(base, options), options); //normalize base components\n\t\trelative = parse(serialize(relative, options), options); //normalize relative components\n\t}\n\toptions = options || {};\n\n\tif (!options.tolerant && relative.scheme) {\n\t\ttarget.scheme = relative.scheme;\n\t\t//target.authority = relative.authority;\n\t\ttarget.userinfo = relative.userinfo;\n\t\ttarget.host = relative.host;\n\t\ttarget.port = relative.port;\n\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\ttarget.query = relative.query;\n\t} else {\n\t\tif (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n\t\t\t//target.authority = relative.authority;\n\t\t\ttarget.userinfo = relative.userinfo;\n\t\t\ttarget.host = relative.host;\n\t\t\ttarget.port = relative.port;\n\t\t\ttarget.path = removeDotSegments(relative.path || \"\");\n\t\t\ttarget.query = relative.query;\n\t\t} else {\n\t\t\tif (!relative.path) {\n\t\t\t\ttarget.path = base.path;\n\t\t\t\tif (relative.query !== undefined) {\n\t\t\t\t\ttarget.query = relative.query;\n\t\t\t\t} else {\n\t\t\t\t\ttarget.query = base.query;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (relative.path.charAt(0) === \"/\") {\n\t\t\t\t\ttarget.path = removeDotSegments(relative.path);\n\t\t\t\t} else {\n\t\t\t\t\tif ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n\t\t\t\t\t\ttarget.path = \"/\" + relative.path;\n\t\t\t\t\t} else if (!base.path) {\n\t\t\t\t\t\ttarget.path = relative.path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget.path = base.path.slice(0, base.path.lastIndexOf(\"/\") + 1) + relative.path;\n\t\t\t\t\t}\n\t\t\t\t\ttarget.path = removeDotSegments(target.path);\n\t\t\t\t}\n\t\t\t\ttarget.query = relative.query;\n\t\t\t}\n\t\t\t//target.authority = base.authority;\n\t\t\ttarget.userinfo = base.userinfo;\n\t\t\ttarget.host = base.host;\n\t\t\ttarget.port = base.port;\n\t\t}\n\t\ttarget.scheme = base.scheme;\n\t}\n\n\ttarget.fragment = relative.fragment;\n\n\treturn target;\n};\n\nexport function resolve(baseURI:string, relativeURI:string, options?:URIOptions):string {\n\tconst schemelessOptions = assign({ scheme : 'null' }, options);\n\treturn serialize(resolveComponents(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true), schemelessOptions);\n};\n\nexport function normalize(uri:string, options?:URIOptions):string;\nexport function normalize(uri:URIComponents, options?:URIOptions):URIComponents;\nexport function normalize(uri:any, options?:URIOptions):any {\n\tif (typeof uri === \"string\") {\n\t\turi = serialize(parse(uri, options), options);\n\t} else if (typeOf(uri) === \"object\") {\n\t\turi = parse(serialize(<URIComponents>uri, options), options);\n\t}\n\n\treturn uri;\n};\n\nexport function equal(uriA:string, uriB:string, options?: URIOptions):boolean;\nexport function equal(uriA:URIComponents, uriB:URIComponents, options?:URIOptions):boolean;\nexport function equal(uriA:any, uriB:any, options?:URIOptions):boolean {\n\tif (typeof uriA === \"string\") {\n\t\turiA = serialize(parse(uriA, options), options);\n\t} else if (typeOf(uriA) === \"object\") {\n\t\turiA = serialize(<URIComponents>uriA, options);\n\t}\n\n\tif (typeof uriB === \"string\") {\n\t\turiB = serialize(parse(uriB, options), options);\n\t} else if (typeOf(uriB) === \"object\") {\n\t\turiB = serialize(<URIComponents>uriB, options);\n\t}\n\n\treturn uriA === uriB;\n};\n\nexport function escapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.ESCAPE : IRI_PROTOCOL.ESCAPE), pctEncChar);\n};\n\nexport function unescapeComponent(str:string, options?:URIOptions):string {\n\treturn str && str.toString().replace((!options || !options.iri ? URI_PROTOCOL.PCT_ENCODED : IRI_PROTOCOL.PCT_ENCODED), pctDecChars);\n};\n","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"http\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\t//report missing host\n\t\tif (!components.host) {\n\t\t\tcomponents.error = components.error || \"HTTP URIs must have a host.\";\n\t\t}\n\n\t\treturn components;\n\t},\n\n\tserialize : function (components:URIComponents, options:URIOptions):URIComponents {\n\t\tconst secure = String(components.scheme).toLowerCase() === \"https\";\n\n\t\t//normalize the default port\n\t\tif (components.port === (secure ? 443 : 80) || components.port === \"\") {\n\t\t\tcomponents.port = undefined;\n\t\t}\n\t\t\n\t\t//normalize the empty path\n\t\tif (!components.path) {\n\t\t\tcomponents.path = \"/\";\n\t\t}\n\n\t\t//NOTE: We do not parse query strings for HTTP URIs\n\t\t//as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n\t\t//and not the HTTP spec.\n\n\t\treturn components;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport http from \"./http\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"https\",\n\tdomainHost : http.domainHost,\n\tparse : http.parse,\n\tserialize : http.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\n\nexport interface WSComponents extends URIComponents {\n\tresourceName?: string;\n\tsecure?: boolean;\n}\n\nfunction isSecure(wsComponents:WSComponents):boolean {\n\treturn typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === \"wss\";\n}\n\n//RFC 6455\nconst handler:URISchemeHandler = {\n\tscheme : \"ws\",\n\n\tdomainHost : true,\n\n\tparse : function (components:URIComponents, options:URIOptions):WSComponents {\n\t\tconst wsComponents = components as WSComponents;\n\n\t\t//indicate if the secure flag is set\n\t\twsComponents.secure = isSecure(wsComponents);\n\n\t\t//construct resouce name\n\t\twsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '');\n\t\twsComponents.path = undefined;\n\t\twsComponents.query = undefined;\n\n\t\treturn wsComponents;\n\t},\n\n\tserialize : function (wsComponents:WSComponents, options:URIOptions):URIComponents {\n\t\t//normalize the default port\n\t\tif (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === \"\") {\n\t\t\twsComponents.port = undefined;\n\t\t}\n\n\t\t//ensure scheme matches secure flag\n\t\tif (typeof wsComponents.secure === 'boolean') {\n\t\t\twsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws');\n\t\t\twsComponents.secure = undefined;\n\t\t}\n\n\t\t//reconstruct path from resource name\n\t\tif (wsComponents.resourceName) {\n\t\t\tconst [path, query] = wsComponents.resourceName.split('?');\n\t\t\twsComponents.path = (path && path !== '/' ? path : undefined);\n\t\t\twsComponents.query = query;\n\t\t\twsComponents.resourceName = undefined;\n\t\t}\n\n\t\t//forbid fragment component\n\t\twsComponents.fragment = undefined;\n\n\t\treturn wsComponents;\n\t}\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport ws from \"./ws\";\n\nconst handler:URISchemeHandler = {\n\tscheme : \"wss\",\n\tdomainHost : ws.domainHost,\n\tparse : ws.parse,\n\tserialize : ws.serialize\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, pctDecChars, unescapeComponent } from \"../uri\";\nimport punycode from \"punycode\";\nimport { merge, subexp, toUpperCase, toArray } from \"../util\";\n\nexport interface MailtoHeaders {\n\t[hfname:string]:string\n}\n\nexport interface MailtoComponents extends URIComponents {\n\tto:Array<string>,\n\theaders?:MailtoHeaders,\n\tsubject?:string,\n\tbody?:string\n}\n\nconst O:MailtoHeaders = {};\nconst isIRI = true;\n\n//RFC 3986\nconst UNRESERVED$$ = \"[A-Za-z0-9\\\\-\\\\.\\\\_\\\\~\" + (isIRI ? \"\\\\xA0-\\\\u200D\\\\u2010-\\\\u2029\\\\u202F-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFEF\" : \"\") + \"]\";\nconst HEXDIG$$ = \"[0-9A-Fa-f]\"; //case-insensitive\nconst PCT_ENCODED$ = subexp(subexp(\"%[EFef]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%[89A-Fa-f]\" + HEXDIG$$ + \"%\" + HEXDIG$$ + HEXDIG$$) + \"|\" + subexp(\"%\" + HEXDIG$$ + HEXDIG$$)); //expanded\n\n//RFC 5322, except these symbols as per RFC 6068: @ : / ? # [ ] & ; =\n//const ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\#\\\\$\\\\%\\\\&\\\\'\\\\*\\\\+\\\\-\\\\/\\\\=\\\\?\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QTEXT$$ = \"[\\\\x01-\\\\x08\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F]\"; //(%d1-8 / %d11-12 / %d14-31 / %d127)\n//const QTEXT$$ = merge(\"[\\\\x21\\\\x23-\\\\x5B\\\\x5D-\\\\x7E]\", OBS_QTEXT$$); //%d33 / %d35-91 / %d93-126 / obs-qtext\n//const VCHAR$$ = \"[\\\\x21-\\\\x7E]\";\n//const WSP$$ = \"[\\\\x20\\\\x09]\";\n//const OBS_QP$ = subexp(\"\\\\\\\\\" + merge(\"[\\\\x00\\\\x0D\\\\x0A]\", OBS_QTEXT$$)); //%d0 / CR / LF / obs-qtext\n//const FWS$ = subexp(subexp(WSP$$ + \"*\" + \"\\\\x0D\\\\x0A\") + \"?\" + WSP$$ + \"+\");\n//const QUOTED_PAIR$ = subexp(subexp(\"\\\\\\\\\" + subexp(VCHAR$$ + \"|\" + WSP$$)) + \"|\" + OBS_QP$);\n//const QUOTED_STRING$ = subexp('\\\\\"' + subexp(FWS$ + \"?\" + QCONTENT$) + \"*\" + FWS$ + \"?\" + '\\\\\"');\nconst ATEXT$$ = \"[A-Za-z0-9\\\\!\\\\$\\\\%\\\\'\\\\*\\\\+\\\\-\\\\^\\\\_\\\\`\\\\{\\\\|\\\\}\\\\~]\";\nconst QTEXT$$ = \"[\\\\!\\\\$\\\\%\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\-\\\\.0-9\\\\<\\\\>A-Z\\\\x5E-\\\\x7E]\";\nconst VCHAR$$ = merge(QTEXT$$, \"[\\\\\\\"\\\\\\\\]\");\nconst DOT_ATOM_TEXT$ = subexp(ATEXT$$ + \"+\" + subexp(\"\\\\.\" + ATEXT$$ + \"+\") + \"*\");\nconst QUOTED_PAIR$ = subexp(\"\\\\\\\\\" + VCHAR$$);\nconst QCONTENT$ = subexp(QTEXT$$ + \"|\" + QUOTED_PAIR$);\nconst QUOTED_STRING$ = subexp('\\\\\"' + QCONTENT$ + \"*\" + '\\\\\"');\n\n//RFC 6068\nconst DTEXT_NO_OBS$$ = \"[\\\\x21-\\\\x5A\\\\x5E-\\\\x7E]\"; //%d33-90 / %d94-126\nconst SOME_DELIMS$$ = \"[\\\\!\\\\$\\\\'\\\\(\\\\)\\\\*\\\\+\\\\,\\\\;\\\\:\\\\@]\";\nconst QCHAR$ = subexp(UNRESERVED$$ + \"|\" + PCT_ENCODED$ + \"|\" + SOME_DELIMS$$);\nconst DOMAIN$ = subexp(DOT_ATOM_TEXT$ + \"|\" + \"\\\\[\" + DTEXT_NO_OBS$$ + \"*\" + \"\\\\]\");\nconst LOCAL_PART$ = subexp(DOT_ATOM_TEXT$ + \"|\" + QUOTED_STRING$);\nconst ADDR_SPEC$ = subexp(LOCAL_PART$ + \"\\\\@\" + DOMAIN$);\nconst TO$ = subexp(ADDR_SPEC$ + subexp(\"\\\\,\" + ADDR_SPEC$) + \"*\");\nconst HFNAME$ = subexp(QCHAR$ + \"*\");\nconst HFVALUE$ = HFNAME$;\nconst HFIELD$ = subexp(HFNAME$ + \"\\\\=\" + HFVALUE$);\nconst HFIELDS2$ = subexp(HFIELD$ + subexp(\"\\\\&\" + HFIELD$) + \"*\");\nconst HFIELDS$ = subexp(\"\\\\?\" + HFIELDS2$);\nconst MAILTO_URI = new RegExp(\"^mailto\\\\:\" + TO$ + \"?\" + HFIELDS$ + \"?$\");\n\nconst UNRESERVED = new RegExp(UNRESERVED$$, \"g\");\nconst PCT_ENCODED = new RegExp(PCT_ENCODED$, \"g\");\nconst NOT_LOCAL_PART = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", '[\\\\\"]', VCHAR$$), \"g\");\nconst NOT_DOMAIN = new RegExp(merge(\"[^]\", ATEXT$$, \"[\\\\.]\", \"[\\\\[]\", DTEXT_NO_OBS$$, \"[\\\\]]\"), \"g\");\nconst NOT_HFNAME = new RegExp(merge(\"[^]\", UNRESERVED$$, SOME_DELIMS$$), \"g\");\nconst NOT_HFVALUE = NOT_HFNAME;\nconst TO = new RegExp(\"^\" + TO$ + \"$\");\nconst HFIELDS = new RegExp(\"^\" + HFIELDS2$ + \"$\");\n\nfunction decodeUnreserved(str:string):string {\n\tconst decStr = pctDecChars(str);\n\treturn (!decStr.match(UNRESERVED) ? str : decStr);\n}\n\nconst handler:URISchemeHandler<MailtoComponents> = {\n\tscheme : \"mailto\",\n\n\tparse : function (components:URIComponents, options:URIOptions):MailtoComponents {\n\t\tconst mailtoComponents = components as MailtoComponents;\n\t\tconst to = mailtoComponents.to = (mailtoComponents.path ? mailtoComponents.path.split(\",\") : []);\n\t\tmailtoComponents.path = undefined;\n\n\t\tif (mailtoComponents.query) {\n\t\t\tlet unknownHeaders = false\n\t\t\tconst headers:MailtoHeaders = {};\n\t\t\tconst hfields = mailtoComponents.query.split(\"&\");\n\n\t\t\tfor (let x = 0, xl = hfields.length; x < xl; ++x) {\n\t\t\t\tconst hfield = hfields[x].split(\"=\");\n\n\t\t\t\tswitch (hfield[0]) {\n\t\t\t\t\tcase \"to\":\n\t\t\t\t\t\tconst toAddrs = hfield[1].split(\",\");\n\t\t\t\t\t\tfor (let x = 0, xl = toAddrs.length; x < xl; ++x) {\n\t\t\t\t\t\t\tto.push(toAddrs[x]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"subject\":\n\t\t\t\t\t\tmailtoComponents.subject = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"body\":\n\t\t\t\t\t\tmailtoComponents.body = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tunknownHeaders = true;\n\t\t\t\t\t\theaders[unescapeComponent(hfield[0], options)] = unescapeComponent(hfield[1], options);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (unknownHeaders) mailtoComponents.headers = headers;\n\t\t}\n\n\t\tmailtoComponents.query = undefined;\n\n\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\tconst addr = to[x].split(\"@\");\n\n\t\t\taddr[0] = unescapeComponent(addr[0]);\n\n\t\t\tif (!options.unicodeSupport) {\n\t\t\t\t//convert Unicode IDN -> ASCII IDN\n\t\t\t\ttry {\n\t\t\t\t\taddr[1] = punycode.toASCII(unescapeComponent(addr[1], options).toLowerCase());\n\t\t\t\t} catch (e) {\n\t\t\t\t\tmailtoComponents.error = mailtoComponents.error || \"Email address's domain name can not be converted to ASCII via punycode: \" + e;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taddr[1] = unescapeComponent(addr[1], options).toLowerCase();\n\t\t\t}\n\n\t\t\tto[x] = addr.join(\"@\");\n\t\t}\n\n\t\treturn mailtoComponents;\n\t},\n\n\tserialize : function (mailtoComponents:MailtoComponents, options:URIOptions):URIComponents {\n\t\tconst components = mailtoComponents as URIComponents;\n\t\tconst to = toArray(mailtoComponents.to);\n\t\tif (to) {\n\t\t\tfor (let x = 0, xl = to.length; x < xl; ++x) {\n\t\t\t\tconst toAddr = String(to[x]);\n\t\t\t\tconst atIdx = toAddr.lastIndexOf(\"@\");\n\t\t\t\tconst localPart = (toAddr.slice(0, atIdx)).replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_LOCAL_PART, pctEncChar);\n\t\t\t\tlet domain = toAddr.slice(atIdx + 1);\n\n\t\t\t\t//convert IDN via punycode\n\t\t\t\ttry {\n\t\t\t\t\tdomain = (!options.iri ? punycode.toASCII(unescapeComponent(domain, options).toLowerCase()) : punycode.toUnicode(domain));\n\t\t\t\t} catch (e) {\n\t\t\t\t\tcomponents.error = components.error || \"Email address's domain name can not be converted to \" + (!options.iri ? \"ASCII\" : \"Unicode\") + \" via punycode: \" + e;\n\t\t\t\t}\n\n\t\t\t\tto[x] = localPart + \"@\" + domain;\n\t\t\t}\n\n\t\t\tcomponents.path = to.join(\",\");\n\t\t}\n\n\t\tconst headers = mailtoComponents.headers = mailtoComponents.headers || {};\n\n\t\tif (mailtoComponents.subject) headers[\"subject\"] = mailtoComponents.subject;\n\t\tif (mailtoComponents.body) headers[\"body\"] = mailtoComponents.body;\n\n\t\tconst fields = [];\n\t\tfor (const name in headers) {\n\t\t\tif (headers[name] !== O[name]) {\n\t\t\t\tfields.push(\n\t\t\t\t\tname.replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFNAME, pctEncChar) +\n\t\t\t\t\t\"=\" +\n\t\t\t\t\theaders[name].replace(PCT_ENCODED, decodeUnreserved).replace(PCT_ENCODED, toUpperCase).replace(NOT_HFVALUE, pctEncChar)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tif (fields.length) {\n\t\t\tcomponents.query = fields.join(\"&\");\n\t\t}\n\n\t\treturn components;\n\t}\n}\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { pctEncChar, SCHEMES } from \"../uri\";\n\nexport interface URNComponents extends URIComponents {\n\tnid?:string;\n\tnss?:string;\n}\n\nexport interface URNOptions extends URIOptions {\n\tnid?:string;\n}\n\nconst NID$ = \"(?:[0-9A-Za-z][0-9A-Za-z\\\\-]{1,31})\";\nconst PCT_ENCODED$ = \"(?:\\\\%[0-9A-Fa-f]{2})\";\nconst TRANS$$ = \"[0-9A-Za-z\\\\(\\\\)\\\\+\\\\,\\\\-\\\\.\\\\:\\\\=\\\\@\\\\;\\\\$\\\\_\\\\!\\\\*\\\\'\\\\/\\\\?\\\\#]\";\nconst NSS$ = \"(?:(?:\" + PCT_ENCODED$ + \"|\" + TRANS$$ + \")+)\";\nconst URN_SCHEME = new RegExp(\"^urn\\\\:(\" + NID$ + \")$\");\nconst URN_PATH = new RegExp(\"^(\" + NID$ + \")\\\\:(\" + NSS$ + \")$\");\nconst URN_PARSE = /^([^\\:]+)\\:(.*)/;\nconst URN_EXCLUDED = /[\\x00-\\x20\\\\\\\"\\&\\<\\>\\[\\]\\^\\`\\{\\|\\}\\~\\x7F-\\xFF]/g;\n\n//RFC 2141\nconst handler:URISchemeHandler<URNComponents,URNOptions> = {\n\tscheme : \"urn\",\n\n\tparse : function (components:URIComponents, options:URNOptions):URNComponents {\n\t\tconst matches = components.path && components.path.match(URN_PARSE);\n\t\tlet urnComponents = components as URNComponents;\n\n\t\tif (matches) {\n\t\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\t\tconst nid = matches[1].toLowerCase();\n\t\t\tconst nss = matches[2];\n\t\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\t\turnComponents.nid = nid;\n\t\t\turnComponents.nss = nss;\n\t\t\turnComponents.path = undefined;\n\n\t\t\tif (schemeHandler) {\n\t\t\t\turnComponents = schemeHandler.parse(urnComponents, options) as URNComponents;\n\t\t\t}\n\t\t} else {\n\t\t\turnComponents.error = urnComponents.error || \"URN can not be parsed.\";\n\t\t}\n\n\t\treturn urnComponents;\n\t},\n\n\tserialize : function (urnComponents:URNComponents, options:URNOptions):URIComponents {\n\t\tconst scheme = options.scheme || urnComponents.scheme || \"urn\";\n\t\tconst nid = urnComponents.nid;\n\t\tconst urnScheme = `${scheme}:${options.nid || nid}`;\n\t\tconst schemeHandler = SCHEMES[urnScheme];\n\n\t\tif (schemeHandler) {\n\t\t\turnComponents = schemeHandler.serialize(urnComponents, options) as URNComponents;\n\t\t}\n\n\t\tconst uriComponents = urnComponents as URIComponents;\n\t\tconst nss = urnComponents.nss;\n\t\turiComponents.path = `${nid || options.nid}:${nss}`;\n\n\t\treturn uriComponents;\n\t},\n};\n\nexport default handler;","import { URISchemeHandler, URIComponents, URIOptions } from \"../uri\";\nimport { URNComponents } from \"./urn\";\nimport { SCHEMES } from \"../uri\";\n\nexport interface UUIDComponents extends URNComponents {\n\tuuid?: string;\n}\n\nconst UUID = /^[0-9A-Fa-f]{8}(?:\\-[0-9A-Fa-f]{4}){3}\\-[0-9A-Fa-f]{12}$/;\nconst UUID_PARSE = /^[0-9A-Fa-f\\-]{36}/;\n\n//RFC 4122\nconst handler:URISchemeHandler<UUIDComponents, URIOptions, URNComponents> = {\n\tscheme : \"urn:uuid\",\n\n\tparse : function (urnComponents:URNComponents, options:URIOptions):UUIDComponents {\n\t\tconst uuidComponents = urnComponents as UUIDComponents;\n\t\tuuidComponents.uuid = uuidComponents.nss;\n\t\tuuidComponents.nss = undefined;\n\n\t\tif (!options.tolerant && (!uuidComponents.uuid || !uuidComponents.uuid.match(UUID))) {\n\t\t\tuuidComponents.error = uuidComponents.error || \"UUID is not valid.\";\n\t\t}\n\n\t\treturn uuidComponents;\n\t},\n\n\tserialize : function (uuidComponents:UUIDComponents, options:URIOptions):URNComponents {\n\t\tconst urnComponents = uuidComponents as URNComponents;\n\t\t//normalize UUID\n\t\turnComponents.nss = (uuidComponents.uuid || \"\").toLowerCase();\n\t\treturn urnComponents;\n\t},\n};\n\nexport default handler;","import { SCHEMES } from \"./uri\";\n\nimport http from \"./schemes/http\";\nSCHEMES[http.scheme] = http;\n\nimport https from \"./schemes/https\";\nSCHEMES[https.scheme] = https;\n\nimport ws from \"./schemes/ws\";\nSCHEMES[ws.scheme] = ws;\n\nimport wss from \"./schemes/wss\";\nSCHEMES[wss.scheme] = wss;\n\nimport mailto from \"./schemes/mailto\";\nSCHEMES[mailto.scheme] = mailto;\n\nimport urn from \"./schemes/urn\";\nSCHEMES[urn.scheme] = urn;\n\nimport uuid from \"./schemes/urn-uuid\";\nSCHEMES[uuid.scheme] = uuid;\n\nexport * from \"./uri\";\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict';\n\n\nmodule.exports = {\n copy: copy,\n checkDataType: checkDataType,\n checkDataTypes: checkDataTypes,\n coerceToTypes: coerceToTypes,\n toHash: toHash,\n getProperty: getProperty,\n escapeQuotes: escapeQuotes,\n equal: require('fast-deep-equal'),\n ucs2length: require('./ucs2length'),\n varOccurences: varOccurences,\n varReplace: varReplace,\n schemaHasRules: schemaHasRules,\n schemaHasRulesExcept: schemaHasRulesExcept,\n schemaUnknownRules: schemaUnknownRules,\n toQuotedString: toQuotedString,\n getPathExpr: getPathExpr,\n getPath: getPath,\n getData: getData,\n unescapeFragment: unescapeFragment,\n unescapeJsonPointer: unescapeJsonPointer,\n escapeFragment: escapeFragment,\n escapeJsonPointer: escapeJsonPointer\n};\n\n\nfunction copy(o, to) {\n to = to || {};\n for (var key in o) to[key] = o[key];\n return to;\n}\n\n\nfunction checkDataType(dataType, data, strictNumbers, negate) {\n var EQUAL = negate ? ' !== ' : ' === '\n , AND = negate ? ' || ' : ' && '\n , OK = negate ? '!' : ''\n , NOT = negate ? '' : '!';\n switch (dataType) {\n case 'null': return data + EQUAL + 'null';\n case 'array': return OK + 'Array.isArray(' + data + ')';\n case 'object': return '(' + OK + data + AND +\n 'typeof ' + data + EQUAL + '\"object\"' + AND +\n NOT + 'Array.isArray(' + data + '))';\n case 'integer': return '(typeof ' + data + EQUAL + '\"number\"' + AND +\n NOT + '(' + data + ' % 1)' +\n AND + data + EQUAL + data +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n case 'number': return '(typeof ' + data + EQUAL + '\"' + dataType + '\"' +\n (strictNumbers ? (AND + OK + 'isFinite(' + data + ')') : '') + ')';\n default: return 'typeof ' + data + EQUAL + '\"' + dataType + '\"';\n }\n}\n\n\nfunction checkDataTypes(dataTypes, data, strictNumbers) {\n switch (dataTypes.length) {\n case 1: return checkDataType(dataTypes[0], data, strictNumbers, true);\n default:\n var code = '';\n var types = toHash(dataTypes);\n if (types.array && types.object) {\n code = types.null ? '(': '(!' + data + ' || ';\n code += 'typeof ' + data + ' !== \"object\")';\n delete types.null;\n delete types.array;\n delete types.object;\n }\n if (types.number) delete types.integer;\n for (var t in types)\n code += (code ? ' && ' : '' ) + checkDataType(t, data, strictNumbers, true);\n\n return code;\n }\n}\n\n\nvar COERCE_TO_TYPES = toHash([ 'string', 'number', 'integer', 'boolean', 'null' ]);\nfunction coerceToTypes(optionCoerceTypes, dataTypes) {\n if (Array.isArray(dataTypes)) {\n var types = [];\n for (var i=0; i<dataTypes.length; i++) {\n var t = dataTypes[i];\n if (COERCE_TO_TYPES[t]) types[types.length] = t;\n else if (optionCoerceTypes === 'array' && t === 'array') types[types.length] = t;\n }\n if (types.length) return types;\n } else if (COERCE_TO_TYPES[dataTypes]) {\n return [dataTypes];\n } else if (optionCoerceTypes === 'array' && dataTypes === 'array') {\n return ['array'];\n }\n}\n\n\nfunction toHash(arr) {\n var hash = {};\n for (var i=0; i<arr.length; i++) hash[arr[i]] = true;\n return hash;\n}\n\n\nvar IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nvar SINGLE_QUOTE = /'|\\\\/g;\nfunction getProperty(key) {\n return typeof key == 'number'\n ? '[' + key + ']'\n : IDENTIFIER.test(key)\n ? '.' + key\n : \"['\" + escapeQuotes(key) + \"']\";\n}\n\n\nfunction escapeQuotes(str) {\n return str.replace(SINGLE_QUOTE, '\\\\$&')\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\f/g, '\\\\f')\n .replace(/\\t/g, '\\\\t');\n}\n\n\nfunction varOccurences(str, dataVar) {\n dataVar += '[^0-9]';\n var matches = str.match(new RegExp(dataVar, 'g'));\n return matches ? matches.length : 0;\n}\n\n\nfunction varReplace(str, dataVar, expr) {\n dataVar += '([^0-9])';\n expr = expr.replace(/\\$/g, '$$$$');\n return str.replace(new RegExp(dataVar, 'g'), expr + '$1');\n}\n\n\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == 'boolean') return !schema;\n for (var key in schema) if (rules[key]) return true;\n}\n\n\nfunction schemaHasRulesExcept(schema, rules, exceptKeyword) {\n if (typeof schema == 'boolean') return !schema && exceptKeyword != 'not';\n for (var key in schema) if (key != exceptKeyword && rules[key]) return true;\n}\n\n\nfunction schemaUnknownRules(schema, rules) {\n if (typeof schema == 'boolean') return;\n for (var key in schema) if (!rules[key]) return key;\n}\n\n\nfunction toQuotedString(str) {\n return '\\'' + escapeQuotes(str) + '\\'';\n}\n\n\nfunction getPathExpr(currentPath, expr, jsonPointers, isNumber) {\n var path = jsonPointers // false by default\n ? '\\'/\\' + ' + expr + (isNumber ? '' : '.replace(/~/g, \\'~0\\').replace(/\\\\//g, \\'~1\\')')\n : (isNumber ? '\\'[\\' + ' + expr + ' + \\']\\'' : '\\'[\\\\\\'\\' + ' + expr + ' + \\'\\\\\\']\\'');\n return joinPaths(currentPath, path);\n}\n\n\nfunction getPath(currentPath, prop, jsonPointers) {\n var path = jsonPointers // false by default\n ? toQuotedString('/' + escapeJsonPointer(prop))\n : toQuotedString(getProperty(prop));\n return joinPaths(currentPath, path);\n}\n\n\nvar JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nvar RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, lvl, paths) {\n var up, jsonPointer, data, matches;\n if ($data === '') return 'rootData';\n if ($data[0] == '/') {\n if (!JSON_POINTER.test($data)) throw new Error('Invalid JSON-pointer: ' + $data);\n jsonPointer = $data;\n data = 'rootData';\n } else {\n matches = $data.match(RELATIVE_JSON_POINTER);\n if (!matches) throw new Error('Invalid JSON-pointer: ' + $data);\n up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer == '#') {\n if (up >= lvl) throw new Error('Cannot access property/index ' + up + ' levels up, current level is ' + lvl);\n return paths[lvl - up];\n }\n\n if (up > lvl) throw new Error('Cannot access data ' + up + ' levels up, current level is ' + lvl);\n data = 'data' + ((lvl - up) || '');\n if (!jsonPointer) return data;\n }\n\n var expr = data;\n var segments = jsonPointer.split('/');\n for (var i=0; i<segments.length; i++) {\n var segment = segments[i];\n if (segment) {\n data += getProperty(unescapeJsonPointer(segment));\n expr += ' && ' + data;\n }\n }\n return expr;\n}\n\n\nfunction joinPaths (a, b) {\n if (a == '\"\"') return b;\n return (a + ' + ' + b).replace(/([^\\\\])' \\+ '/g, '$1');\n}\n\n\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\n\n\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\n\n\nfunction escapeJsonPointer(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n","'use strict';\n\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nmodule.exports = function ucs2length(str) {\n var length = 0\n , len = str.length\n , pos = 0\n , value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xD800 && value <= 0xDBFF && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xFC00) == 0xDC00) pos++; // low surrogate\n }\n }\n return length;\n};\n","'use strict';\n\nvar util = require('./util');\n\nmodule.exports = SchemaObject;\n\nfunction SchemaObject(obj) {\n util.copy(obj, this);\n}\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n","'use strict';\n\nvar URI = require('uri-js')\n , equal = require('fast-deep-equal')\n , util = require('./util')\n , SchemaObject = require('./schema_obj')\n , traverse = require('json-schema-traverse');\n\nmodule.exports = resolve;\n\nresolve.normalizeId = normalizeId;\nresolve.fullPath = getFullPath;\nresolve.url = resolveUrl;\nresolve.ids = resolveIds;\nresolve.inlineRef = inlineRef;\nresolve.schema = resolveSchema;\n\n/**\n * [resolve and compile the references ($ref)]\n * @this Ajv\n * @param {Function} compile reference to schema compilation funciton (localCompile)\n * @param {Object} root object with information about the root schema for the current schema\n * @param {String} ref reference to resolve\n * @return {Object|Function} schema object (if the schema can be inlined) or validation function\n */\nfunction resolve(compile, root, ref) {\n /* jshint validthis: true */\n var refVal = this._refs[ref];\n if (typeof refVal == 'string') {\n if (this._refs[refVal]) refVal = this._refs[refVal];\n else return resolve.call(this, compile, root, refVal);\n }\n\n refVal = refVal || this._schemas[ref];\n if (refVal instanceof SchemaObject) {\n return inlineRef(refVal.schema, this._opts.inlineRefs)\n ? refVal.schema\n : refVal.validate || this._compile(refVal);\n }\n\n var res = resolveSchema.call(this, root, ref);\n var schema, v, baseId;\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n\n if (schema instanceof SchemaObject) {\n v = schema.validate || compile.call(this, schema.schema, root, undefined, baseId);\n } else if (schema !== undefined) {\n v = inlineRef(schema, this._opts.inlineRefs)\n ? schema\n : compile.call(this, schema, root, undefined, baseId);\n }\n\n return v;\n}\n\n\n/**\n * Resolve schema, its root and baseId\n * @this Ajv\n * @param {Object} root root object with properties schema, refVal, refs\n * @param {String} ref reference to resolve\n * @return {Object} object with properties schema, root, baseId\n */\nfunction resolveSchema(root, ref) {\n /* jshint validthis: true */\n var p = URI.parse(ref)\n , refPath = _getFullPath(p)\n , baseId = getFullPath(this._getId(root.schema));\n if (Object.keys(root.schema).length === 0 || refPath !== baseId) {\n var id = normalizeId(refPath);\n var refVal = this._refs[id];\n if (typeof refVal == 'string') {\n return resolveRecursive.call(this, root, refVal, p);\n } else if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n root = refVal;\n } else {\n refVal = this._schemas[id];\n if (refVal instanceof SchemaObject) {\n if (!refVal.validate) this._compile(refVal);\n if (id == normalizeId(ref))\n return { schema: refVal, root: root, baseId: baseId };\n root = refVal;\n } else {\n return;\n }\n }\n if (!root.schema) return;\n baseId = getFullPath(this._getId(root.schema));\n }\n return getJsonPointer.call(this, p, baseId, root.schema, root);\n}\n\n\n/* @this Ajv */\nfunction resolveRecursive(root, ref, parsedRef) {\n /* jshint validthis: true */\n var res = resolveSchema.call(this, root, ref);\n if (res) {\n var schema = res.schema;\n var baseId = res.baseId;\n root = res.root;\n var id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n return getJsonPointer.call(this, parsedRef, baseId, schema, root);\n }\n}\n\n\nvar PREVENT_SCOPE_CHANGE = util.toHash(['properties', 'patternProperties', 'enum', 'dependencies', 'definitions']);\n/* @this Ajv */\nfunction getJsonPointer(parsedRef, baseId, schema, root) {\n /* jshint validthis: true */\n parsedRef.fragment = parsedRef.fragment || '';\n if (parsedRef.fragment.slice(0,1) != '/') return;\n var parts = parsedRef.fragment.split('/');\n\n for (var i = 1; i < parts.length; i++) {\n var part = parts[i];\n if (part) {\n part = util.unescapeFragment(part);\n schema = schema[part];\n if (schema === undefined) break;\n var id;\n if (!PREVENT_SCOPE_CHANGE[part]) {\n id = this._getId(schema);\n if (id) baseId = resolveUrl(baseId, id);\n if (schema.$ref) {\n var $ref = resolveUrl(baseId, schema.$ref);\n var res = resolveSchema.call(this, root, $ref);\n if (res) {\n schema = res.schema;\n root = res.root;\n baseId = res.baseId;\n }\n }\n }\n }\n }\n if (schema !== undefined && schema !== root.schema)\n return { schema: schema, root: root, baseId: baseId };\n}\n\n\nvar SIMPLE_INLINED = util.toHash([\n 'type', 'format', 'pattern',\n 'maxLength', 'minLength',\n 'maxProperties', 'minProperties',\n 'maxItems', 'minItems',\n 'maximum', 'minimum',\n 'uniqueItems', 'multipleOf',\n 'required', 'enum'\n]);\nfunction inlineRef(schema, limit) {\n if (limit === false) return false;\n if (limit === undefined || limit === true) return checkNoRef(schema);\n else if (limit) return countKeys(schema) <= limit;\n}\n\n\nfunction checkNoRef(schema) {\n var item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return false;\n item = schema[key];\n if (typeof item == 'object' && !checkNoRef(item)) return false;\n }\n }\n return true;\n}\n\n\nfunction countKeys(schema) {\n var count = 0, item;\n if (Array.isArray(schema)) {\n for (var i=0; i<schema.length; i++) {\n item = schema[i];\n if (typeof item == 'object') count += countKeys(item);\n if (count == Infinity) return Infinity;\n }\n } else {\n for (var key in schema) {\n if (key == '$ref') return Infinity;\n if (SIMPLE_INLINED[key]) {\n count++;\n } else {\n item = schema[key];\n if (typeof item == 'object') count += countKeys(item) + 1;\n if (count == Infinity) return Infinity;\n }\n }\n }\n return count;\n}\n\n\nfunction getFullPath(id, normalize) {\n if (normalize !== false) id = normalizeId(id);\n var p = URI.parse(id);\n return _getFullPath(p);\n}\n\n\nfunction _getFullPath(p) {\n return URI.serialize(p).split('#')[0] + '#';\n}\n\n\nvar TRAILING_SLASH_HASH = /#\\/?$/;\nfunction normalizeId(id) {\n return id ? id.replace(TRAILING_SLASH_HASH, '') : '';\n}\n\n\nfunction resolveUrl(baseId, id) {\n id = normalizeId(id);\n return URI.resolve(baseId, id);\n}\n\n\n/* @this Ajv */\nfunction resolveIds(schema) {\n var schemaId = normalizeId(this._getId(schema));\n var baseIds = {'': schemaId};\n var fullPaths = {'': getFullPath(schemaId, false)};\n var localRefs = {};\n var self = this;\n\n traverse(schema, {allKeys: true}, function(sch, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (jsonPtr === '') return;\n var id = self._getId(sch);\n var baseId = baseIds[parentJsonPtr];\n var fullPath = fullPaths[parentJsonPtr] + '/' + parentKeyword;\n if (keyIndex !== undefined)\n fullPath += '/' + (typeof keyIndex == 'number' ? keyIndex : util.escapeFragment(keyIndex));\n\n if (typeof id == 'string') {\n id = baseId = normalizeId(baseId ? URI.resolve(baseId, id) : id);\n\n var refVal = self._refs[id];\n if (typeof refVal == 'string') refVal = self._refs[refVal];\n if (refVal && refVal.schema) {\n if (!equal(sch, refVal.schema))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n } else if (id != normalizeId(fullPath)) {\n if (id[0] == '#') {\n if (localRefs[id] && !equal(sch, localRefs[id]))\n throw new Error('id \"' + id + '\" resolves to more than one schema');\n localRefs[id] = sch;\n } else {\n self._refs[id] = fullPath;\n }\n }\n }\n baseIds[jsonPtr] = baseId;\n fullPaths[jsonPtr] = fullPath;\n });\n\n return localRefs;\n}\n","'use strict';\n\nvar resolve = require('./resolve');\n\nmodule.exports = {\n Validation: errorSubclass(ValidationError),\n MissingRef: errorSubclass(MissingRefError)\n};\n\n\nfunction ValidationError(errors) {\n this.message = 'validation failed';\n this.errors = errors;\n this.ajv = this.validation = true;\n}\n\n\nMissingRefError.message = function (baseId, ref) {\n return 'can\\'t resolve reference ' + ref + ' from id ' + baseId;\n};\n\n\nfunction MissingRefError(baseId, ref, message) {\n this.message = message || MissingRefError.message(baseId, ref);\n this.missingRef = resolve.url(baseId, ref);\n this.missingSchema = resolve.normalizeId(resolve.fullPath(this.missingRef));\n}\n\n\nfunction errorSubclass(Subclass) {\n Subclass.prototype = Object.create(Error.prototype);\n Subclass.prototype.constructor = Subclass;\n return Subclass;\n}\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","'use strict';\nmodule.exports = function generate_validate(it, $keyword, $ruleType) {\n var out = '';\n var $async = it.schema.$async === true,\n $refKeywords = it.util.schemaHasRulesExcept(it.schema, it.RULES.all, '$ref'),\n $id = it.self._getId(it.schema);\n if (it.opts.strictKeywords) {\n var $unknownKwd = it.util.schemaUnknownRules(it.schema, it.RULES.keywords);\n if ($unknownKwd) {\n var $keywordsMsg = 'unknown keyword: ' + $unknownKwd;\n if (it.opts.strictKeywords === 'log') it.logger.warn($keywordsMsg);\n else throw new Error($keywordsMsg);\n }\n }\n if (it.isTop) {\n out += ' var validate = ';\n if ($async) {\n it.async = true;\n out += 'async ';\n }\n out += 'function(data, dataPath, parentData, parentDataProperty, rootData) { \\'use strict\\'; ';\n if ($id && (it.opts.sourceCode || it.opts.processCode)) {\n out += ' ' + ('/\\*# sourceURL=' + $id + ' */') + ' ';\n }\n }\n if (typeof it.schema == 'boolean' || !($refKeywords || it.schema.$ref)) {\n var $keyword = 'false schema';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n if (it.schema === false) {\n if (it.isTop) {\n $breakOnError = true;\n } else {\n out += ' var ' + ($valid) + ' = false; ';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'false schema') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'boolean schema is false\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n if (it.isTop) {\n if ($async) {\n out += ' return data; ';\n } else {\n out += ' validate.errors = null; return true; ';\n }\n } else {\n out += ' var ' + ($valid) + ' = true; ';\n }\n }\n if (it.isTop) {\n out += ' }; return validate; ';\n }\n return out;\n }\n if (it.isTop) {\n var $top = it.isTop,\n $lvl = it.level = 0,\n $dataLvl = it.dataLevel = 0,\n $data = 'data';\n it.rootId = it.resolve.fullPath(it.self._getId(it.root.schema));\n it.baseId = it.baseId || it.rootId;\n delete it.isTop;\n it.dataPathArr = [\"\"];\n if (it.schema.default !== undefined && it.opts.useDefaults && it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored in the schema root';\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n out += ' var vErrors = null; ';\n out += ' var errors = 0; ';\n out += ' if (rootData === undefined) rootData = data; ';\n } else {\n var $lvl = it.level,\n $dataLvl = it.dataLevel,\n $data = 'data' + ($dataLvl || '');\n if ($id) it.baseId = it.resolve.url(it.baseId, $id);\n if ($async && !it.async) throw new Error('async schema in sync schema');\n out += ' var errs_' + ($lvl) + ' = errors;';\n }\n var $valid = 'valid' + $lvl,\n $breakOnError = !it.opts.allErrors,\n $closingBraces1 = '',\n $closingBraces2 = '';\n var $errorKeyword;\n var $typeSchema = it.schema.type,\n $typeIsArray = Array.isArray($typeSchema);\n if ($typeSchema && it.opts.nullable && it.schema.nullable === true) {\n if ($typeIsArray) {\n if ($typeSchema.indexOf('null') == -1) $typeSchema = $typeSchema.concat('null');\n } else if ($typeSchema != 'null') {\n $typeSchema = [$typeSchema, 'null'];\n $typeIsArray = true;\n }\n }\n if ($typeIsArray && $typeSchema.length == 1) {\n $typeSchema = $typeSchema[0];\n $typeIsArray = false;\n }\n if (it.schema.$ref && $refKeywords) {\n if (it.opts.extendRefs == 'fail') {\n throw new Error('$ref: validation keywords used in schema at path \"' + it.errSchemaPath + '\" (see option extendRefs)');\n } else if (it.opts.extendRefs !== true) {\n $refKeywords = false;\n it.logger.warn('$ref: keywords ignored in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n if (it.schema.$comment && it.opts.$comment) {\n out += ' ' + (it.RULES.all.$comment.code(it, '$comment'));\n }\n if ($typeSchema) {\n if (it.opts.coerceTypes) {\n var $coerceToTypes = it.util.coerceToTypes(it.opts.coerceTypes, $typeSchema);\n }\n var $rulesGroup = it.RULES.types[$typeSchema];\n if ($coerceToTypes || $typeIsArray || $rulesGroup === true || ($rulesGroup && !$shouldUseGroup($rulesGroup))) {\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type',\n $method = $typeIsArray ? 'checkDataTypes' : 'checkDataType';\n out += ' if (' + (it.util[$method]($typeSchema, $data, it.opts.strictNumbers, true)) + ') { ';\n if ($coerceToTypes) {\n var $dataType = 'dataType' + $lvl,\n $coerced = 'coerced' + $lvl;\n out += ' var ' + ($dataType) + ' = typeof ' + ($data) + '; var ' + ($coerced) + ' = undefined; ';\n if (it.opts.coerceTypes == 'array') {\n out += ' if (' + ($dataType) + ' == \\'object\\' && Array.isArray(' + ($data) + ') && ' + ($data) + '.length == 1) { ' + ($data) + ' = ' + ($data) + '[0]; ' + ($dataType) + ' = typeof ' + ($data) + '; if (' + (it.util.checkDataType(it.schema.type, $data, it.opts.strictNumbers)) + ') ' + ($coerced) + ' = ' + ($data) + '; } ';\n }\n out += ' if (' + ($coerced) + ' !== undefined) ; ';\n var arr1 = $coerceToTypes;\n if (arr1) {\n var $type, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $type = arr1[$i += 1];\n if ($type == 'string') {\n out += ' else if (' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\') ' + ($coerced) + ' = \\'\\' + ' + ($data) + '; else if (' + ($data) + ' === null) ' + ($coerced) + ' = \\'\\'; ';\n } else if ($type == 'number' || $type == 'integer') {\n out += ' else if (' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' === null || (' + ($dataType) + ' == \\'string\\' && ' + ($data) + ' && ' + ($data) + ' == +' + ($data) + ' ';\n if ($type == 'integer') {\n out += ' && !(' + ($data) + ' % 1)';\n }\n out += ')) ' + ($coerced) + ' = +' + ($data) + '; ';\n } else if ($type == 'boolean') {\n out += ' else if (' + ($data) + ' === \\'false\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === null) ' + ($coerced) + ' = false; else if (' + ($data) + ' === \\'true\\' || ' + ($data) + ' === 1) ' + ($coerced) + ' = true; ';\n } else if ($type == 'null') {\n out += ' else if (' + ($data) + ' === \\'\\' || ' + ($data) + ' === 0 || ' + ($data) + ' === false) ' + ($coerced) + ' = null; ';\n } else if (it.opts.coerceTypes == 'array' && $type == 'array') {\n out += ' else if (' + ($dataType) + ' == \\'string\\' || ' + ($dataType) + ' == \\'number\\' || ' + ($dataType) + ' == \\'boolean\\' || ' + ($data) + ' == null) ' + ($coerced) + ' = [' + ($data) + ']; ';\n }\n }\n }\n out += ' else { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } if (' + ($coerced) + ' !== undefined) { ';\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' ' + ($data) + ' = ' + ($coerced) + '; ';\n if (!$dataLvl) {\n out += 'if (' + ($parentData) + ' !== undefined)';\n }\n out += ' ' + ($parentData) + '[' + ($parentDataProperty) + '] = ' + ($coerced) + '; } ';\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n }\n out += ' } ';\n }\n }\n if (it.schema.$ref && !$refKeywords) {\n out += ' ' + (it.RULES.all.$ref.code(it, '$ref')) + ' ';\n if ($breakOnError) {\n out += ' } if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n } else {\n var arr2 = it.RULES;\n if (arr2) {\n var $rulesGroup, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $rulesGroup = arr2[i2 += 1];\n if ($shouldUseGroup($rulesGroup)) {\n if ($rulesGroup.type) {\n out += ' if (' + (it.util.checkDataType($rulesGroup.type, $data, it.opts.strictNumbers)) + ') { ';\n }\n if (it.opts.useDefaults) {\n if ($rulesGroup.type == 'object' && it.schema.properties) {\n var $schema = it.schema.properties,\n $schemaKeys = Object.keys($schema);\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ($sch.default !== undefined) {\n var $passData = $data + it.util.getProperty($propertyKey);\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n } else if ($rulesGroup.type == 'array' && Array.isArray(it.schema.items)) {\n var arr4 = it.schema.items;\n if (arr4) {\n var $sch, $i = -1,\n l4 = arr4.length - 1;\n while ($i < l4) {\n $sch = arr4[$i += 1];\n if ($sch.default !== undefined) {\n var $passData = $data + '[' + $i + ']';\n if (it.compositeRule) {\n if (it.opts.strictDefaults) {\n var $defaultMsg = 'default is ignored for: ' + $passData;\n if (it.opts.strictDefaults === 'log') it.logger.warn($defaultMsg);\n else throw new Error($defaultMsg);\n }\n } else {\n out += ' if (' + ($passData) + ' === undefined ';\n if (it.opts.useDefaults == 'empty') {\n out += ' || ' + ($passData) + ' === null || ' + ($passData) + ' === \\'\\' ';\n }\n out += ' ) ' + ($passData) + ' = ';\n if (it.opts.useDefaults == 'shared') {\n out += ' ' + (it.useDefault($sch.default)) + ' ';\n } else {\n out += ' ' + (JSON.stringify($sch.default)) + ' ';\n }\n out += '; ';\n }\n }\n }\n }\n }\n }\n var arr5 = $rulesGroup.rules;\n if (arr5) {\n var $rule, i5 = -1,\n l5 = arr5.length - 1;\n while (i5 < l5) {\n $rule = arr5[i5 += 1];\n if ($shouldUseRule($rule)) {\n var $code = $rule.code(it, $rule.keyword, $rulesGroup.type);\n if ($code) {\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n $closingBraces1 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces1) + ' ';\n $closingBraces1 = '';\n }\n if ($rulesGroup.type) {\n out += ' } ';\n if ($typeSchema && $typeSchema === $rulesGroup.type && !$coerceToTypes) {\n out += ' else { ';\n var $schemaPath = it.schemaPath + '.type',\n $errSchemaPath = it.errSchemaPath + '/type';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'type') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { type: \\'';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ';\n if ($typeIsArray) {\n out += '' + ($typeSchema.join(\",\"));\n } else {\n out += '' + ($typeSchema);\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (errors === ';\n if ($top) {\n out += '0';\n } else {\n out += 'errs_' + ($lvl);\n }\n out += ') { ';\n $closingBraces2 += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces2) + ' ';\n }\n if ($top) {\n if ($async) {\n out += ' if (errors === 0) return data; ';\n out += ' else throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; ';\n out += ' return errors === 0; ';\n }\n out += ' }; return validate;';\n } else {\n out += ' var ' + ($valid) + ' = errors === errs_' + ($lvl) + ';';\n }\n\n function $shouldUseGroup($rulesGroup) {\n var rules = $rulesGroup.rules;\n for (var i = 0; i < rules.length; i++)\n if ($shouldUseRule(rules[i])) return true;\n }\n\n function $shouldUseRule($rule) {\n return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));\n }\n\n function $ruleImplementsSomeKeyword($rule) {\n var impl = $rule.implements;\n for (var i = 0; i < impl.length; i++)\n if (it.schema[impl[i]] !== undefined) return true;\n }\n return out;\n}\n","'use strict';\n\nvar resolve = require('./resolve')\n , util = require('./util')\n , errorClasses = require('./error_classes')\n , stableStringify = require('fast-json-stable-stringify');\n\nvar validateGenerator = require('../dotjs/validate');\n\n/**\n * Functions below are used inside compiled validations function\n */\n\nvar ucs2length = util.ucs2length;\nvar equal = require('fast-deep-equal');\n\n// this error is thrown by async schemas to return validation errors via exception\nvar ValidationError = errorClasses.Validation;\n\nmodule.exports = compile;\n\n\n/**\n * Compiles schema to validation function\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Object} root object with information about the root schema for this schema\n * @param {Object} localRefs the hash of local references inside the schema (created by resolve.id), used for inline resolution\n * @param {String} baseId base ID for IDs in the schema\n * @return {Function} validation function\n */\nfunction compile(schema, root, localRefs, baseId) {\n /* jshint validthis: true, evil: true */\n /* eslint no-shadow: 0 */\n var self = this\n , opts = this._opts\n , refVal = [ undefined ]\n , refs = {}\n , patterns = []\n , patternsHash = {}\n , defaults = []\n , defaultsHash = {}\n , customRules = [];\n\n function patternCode(i, patterns) {\n var regExpCode = opts.regExp ? 'regExp' : 'new RegExp';\n return 'var pattern' + i + ' = ' + regExpCode + '(' + util.toQuotedString(patterns[i]) + ');';\n }\n\n root = root || { schema: schema, refVal: refVal, refs: refs };\n\n var c = checkCompiling.call(this, schema, root, baseId);\n var compilation = this._compilations[c.index];\n if (c.compiling) return (compilation.callValidate = callValidate);\n\n var formats = this._formats;\n var RULES = this.RULES;\n\n try {\n var v = localCompile(schema, root, localRefs, baseId);\n compilation.validate = v;\n var cv = compilation.callValidate;\n if (cv) {\n cv.schema = v.schema;\n cv.errors = null;\n cv.refs = v.refs;\n cv.refVal = v.refVal;\n cv.root = v.root;\n cv.$async = v.$async;\n if (opts.sourceCode) cv.source = v.source;\n }\n return v;\n } finally {\n endCompiling.call(this, schema, root, baseId);\n }\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var validate = compilation.validate;\n var result = validate.apply(this, arguments);\n callValidate.errors = validate.errors;\n return result;\n }\n\n function localCompile(_schema, _root, localRefs, baseId) {\n var isRoot = !_root || (_root && _root.schema == _schema);\n if (_root.schema != root.schema)\n return compile.call(self, _schema, _root, localRefs, baseId);\n\n var $async = _schema.$async === true;\n\n var sourceCode = validateGenerator({\n isTop: true,\n schema: _schema,\n isRoot: isRoot,\n baseId: baseId,\n root: _root,\n schemaPath: '',\n errSchemaPath: '#',\n errorPath: '\"\"',\n MissingRefError: errorClasses.MissingRef,\n RULES: RULES,\n validate: validateGenerator,\n util: util,\n resolve: resolve,\n resolveRef: resolveRef,\n usePattern: usePattern,\n useDefault: useDefault,\n useCustomRule: useCustomRule,\n opts: opts,\n formats: formats,\n logger: self.logger,\n self: self\n });\n\n sourceCode = vars(refVal, refValCode) + vars(patterns, patternCode)\n + vars(defaults, defaultCode) + vars(customRules, customRuleCode)\n + sourceCode;\n\n if (opts.processCode) sourceCode = opts.processCode(sourceCode, _schema);\n // console.log('\\n\\n\\n *** \\n', JSON.stringify(sourceCode));\n var validate;\n try {\n var makeValidate = new Function(\n 'self',\n 'RULES',\n 'formats',\n 'root',\n 'refVal',\n 'defaults',\n 'customRules',\n 'equal',\n 'ucs2length',\n 'ValidationError',\n 'regExp',\n sourceCode\n );\n\n validate = makeValidate(\n self,\n RULES,\n formats,\n root,\n refVal,\n defaults,\n customRules,\n equal,\n ucs2length,\n ValidationError,\n opts.regExp\n );\n\n refVal[0] = validate;\n } catch(e) {\n self.logger.error('Error compiling schema, function code:', sourceCode);\n throw e;\n }\n\n validate.schema = _schema;\n validate.errors = null;\n validate.refs = refs;\n validate.refVal = refVal;\n validate.root = isRoot ? validate : _root;\n if ($async) validate.$async = true;\n if (opts.sourceCode === true) {\n validate.source = {\n code: sourceCode,\n patterns: patterns,\n defaults: defaults\n };\n }\n\n return validate;\n }\n\n function resolveRef(baseId, ref, isRoot) {\n ref = resolve.url(baseId, ref);\n var refIndex = refs[ref];\n var _refVal, refCode;\n if (refIndex !== undefined) {\n _refVal = refVal[refIndex];\n refCode = 'refVal[' + refIndex + ']';\n return resolvedRef(_refVal, refCode);\n }\n if (!isRoot && root.refs) {\n var rootRefId = root.refs[ref];\n if (rootRefId !== undefined) {\n _refVal = root.refVal[rootRefId];\n refCode = addLocalRef(ref, _refVal);\n return resolvedRef(_refVal, refCode);\n }\n }\n\n refCode = addLocalRef(ref);\n var v = resolve.call(self, localCompile, root, ref);\n if (v === undefined) {\n var localSchema = localRefs && localRefs[ref];\n if (localSchema) {\n v = resolve.inlineRef(localSchema, opts.inlineRefs)\n ? localSchema\n : compile.call(self, localSchema, root, localRefs, baseId);\n }\n }\n\n if (v === undefined) {\n removeLocalRef(ref);\n } else {\n replaceLocalRef(ref, v);\n return resolvedRef(v, refCode);\n }\n }\n\n function addLocalRef(ref, v) {\n var refId = refVal.length;\n refVal[refId] = v;\n refs[ref] = refId;\n return 'refVal' + refId;\n }\n\n function removeLocalRef(ref) {\n delete refs[ref];\n }\n\n function replaceLocalRef(ref, v) {\n var refId = refs[ref];\n refVal[refId] = v;\n }\n\n function resolvedRef(refVal, code) {\n return typeof refVal == 'object' || typeof refVal == 'boolean'\n ? { code: code, schema: refVal, inline: true }\n : { code: code, $async: refVal && !!refVal.$async };\n }\n\n function usePattern(regexStr) {\n var index = patternsHash[regexStr];\n if (index === undefined) {\n index = patternsHash[regexStr] = patterns.length;\n patterns[index] = regexStr;\n }\n return 'pattern' + index;\n }\n\n function useDefault(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n return '' + value;\n case 'string':\n return util.toQuotedString(value);\n case 'object':\n if (value === null) return 'null';\n var valueStr = stableStringify(value);\n var index = defaultsHash[valueStr];\n if (index === undefined) {\n index = defaultsHash[valueStr] = defaults.length;\n defaults[index] = value;\n }\n return 'default' + index;\n }\n }\n\n function useCustomRule(rule, schema, parentSchema, it) {\n if (self._opts.validateSchema !== false) {\n var deps = rule.definition.dependencies;\n if (deps && !deps.every(function(keyword) {\n return Object.prototype.hasOwnProperty.call(parentSchema, keyword);\n }))\n throw new Error('parent schema must have all required keywords: ' + deps.join(','));\n\n var validateSchema = rule.definition.validateSchema;\n if (validateSchema) {\n var valid = validateSchema(schema);\n if (!valid) {\n var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);\n if (self._opts.validateSchema == 'log') self.logger.error(message);\n else throw new Error(message);\n }\n }\n }\n\n var compile = rule.definition.compile\n , inline = rule.definition.inline\n , macro = rule.definition.macro;\n\n var validate;\n if (compile) {\n validate = compile.call(self, schema, parentSchema, it);\n } else if (macro) {\n validate = macro.call(self, schema, parentSchema, it);\n if (opts.validateSchema !== false) self.validateSchema(validate, true);\n } else if (inline) {\n validate = inline.call(self, it, rule.keyword, schema, parentSchema);\n } else {\n validate = rule.definition.validate;\n if (!validate) return;\n }\n\n if (validate === undefined)\n throw new Error('custom keyword \"' + rule.keyword + '\"failed to compile');\n\n var index = customRules.length;\n customRules[index] = validate;\n\n return {\n code: 'customRule' + index,\n validate: validate\n };\n }\n}\n\n\n/**\n * Checks if the schema is currently compiled\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Object} object with properties \"index\" (compilation index) and \"compiling\" (boolean)\n */\nfunction checkCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var index = compIndex.call(this, schema, root, baseId);\n if (index >= 0) return { index: index, compiling: true };\n index = this._compilations.length;\n this._compilations[index] = {\n schema: schema,\n root: root,\n baseId: baseId\n };\n return { index: index, compiling: false };\n}\n\n\n/**\n * Removes the schema from the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n */\nfunction endCompiling(schema, root, baseId) {\n /* jshint validthis: true */\n var i = compIndex.call(this, schema, root, baseId);\n if (i >= 0) this._compilations.splice(i, 1);\n}\n\n\n/**\n * Index of schema compilation in the currently compiled list\n * @this Ajv\n * @param {Object} schema schema to compile\n * @param {Object} root root object\n * @param {String} baseId base schema ID\n * @return {Integer} compilation index\n */\nfunction compIndex(schema, root, baseId) {\n /* jshint validthis: true */\n for (var i=0; i<this._compilations.length; i++) {\n var c = this._compilations[i];\n if (c.schema == schema && c.root == root && c.baseId == baseId) return i;\n }\n return -1;\n}\n\n\nfunction defaultCode(i) {\n return 'var default' + i + ' = defaults[' + i + '];';\n}\n\n\nfunction refValCode(i, refVal) {\n return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';\n}\n\n\nfunction customRuleCode(i) {\n return 'var customRule' + i + ' = customRules[' + i + '];';\n}\n\n\nfunction vars(arr, statement) {\n if (!arr.length) return '';\n var code = '';\n for (var i=0; i<arr.length; i++)\n code += statement(i, arr);\n return code;\n}\n","'use strict';\nmodule.exports = function generate__limit(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $isMax = $keyword == 'maximum',\n $exclusiveKeyword = $isMax ? 'exclusiveMaximum' : 'exclusiveMinimum',\n $schemaExcl = it.schema[$exclusiveKeyword],\n $isDataExcl = it.opts.$data && $schemaExcl && $schemaExcl.$data,\n $op = $isMax ? '<' : '>',\n $notOp = $isMax ? '>' : '<',\n $errorKeyword = undefined;\n if (!($isData || typeof $schema == 'number' || $schema === undefined)) {\n throw new Error($keyword + ' must be number');\n }\n if (!($isDataExcl || $schemaExcl === undefined || typeof $schemaExcl == 'number' || typeof $schemaExcl == 'boolean')) {\n throw new Error($exclusiveKeyword + ' must be number or boolean');\n }\n if ($isDataExcl) {\n var $schemaValueExcl = it.util.getData($schemaExcl.$data, $dataLvl, it.dataPathArr),\n $exclusive = 'exclusive' + $lvl,\n $exclType = 'exclType' + $lvl,\n $exclIsNumber = 'exclIsNumber' + $lvl,\n $opExpr = 'op' + $lvl,\n $opStr = '\\' + ' + $opExpr + ' + \\'';\n out += ' var schemaExcl' + ($lvl) + ' = ' + ($schemaValueExcl) + '; ';\n $schemaValueExcl = 'schemaExcl' + $lvl;\n out += ' var ' + ($exclusive) + '; var ' + ($exclType) + ' = typeof ' + ($schemaValueExcl) + '; if (' + ($exclType) + ' != \\'boolean\\' && ' + ($exclType) + ' != \\'undefined\\' && ' + ($exclType) + ' != \\'number\\') { ';\n var $errorKeyword = $exclusiveKeyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_exclusiveLimit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'' + ($exclusiveKeyword) + ' should be boolean\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($exclType) + ' == \\'number\\' ? ( (' + ($exclusive) + ' = ' + ($schemaValue) + ' === undefined || ' + ($schemaValueExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ') ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValueExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) : ( (' + ($exclusive) + ' = ' + ($schemaValueExcl) + ' === true) ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaValue) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { var op' + ($lvl) + ' = ' + ($exclusive) + ' ? \\'' + ($op) + '\\' : \\'' + ($op) + '=\\'; ';\n if ($schema === undefined) {\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaValueExcl;\n $isData = $isDataExcl;\n }\n } else {\n var $exclIsNumber = typeof $schemaExcl == 'number',\n $opStr = $op;\n if ($exclIsNumber && $isData) {\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ( ' + ($schemaValue) + ' === undefined || ' + ($schemaExcl) + ' ' + ($op) + '= ' + ($schemaValue) + ' ? ' + ($data) + ' ' + ($notOp) + '= ' + ($schemaExcl) + ' : ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' ) || ' + ($data) + ' !== ' + ($data) + ') { ';\n } else {\n if ($exclIsNumber && $schema === undefined) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $schemaValue = $schemaExcl;\n $notOp += '=';\n } else {\n if ($exclIsNumber) $schemaValue = Math[$isMax ? 'min' : 'max']($schemaExcl, $schema);\n if ($schemaExcl === ($exclIsNumber ? $schemaValue : true)) {\n $exclusive = true;\n $errorKeyword = $exclusiveKeyword;\n $errSchemaPath = it.errSchemaPath + '/' + $exclusiveKeyword;\n $notOp += '=';\n } else {\n $exclusive = false;\n $opStr += '=';\n }\n }\n var $opExpr = '\\'' + $opStr + '\\'';\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + ' ' + ($notOp) + ' ' + ($schemaValue) + ' || ' + ($data) + ' !== ' + ($data) + ') { ';\n }\n }\n $errorKeyword = $errorKeyword || $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limit') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { comparison: ' + ($opExpr) + ', limit: ' + ($schemaValue) + ', exclusive: ' + ($exclusive) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be ' + ($opStr) + ' ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxItems' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' ' + ($data) + '.length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxItems') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitLength(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxLength' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n if (it.opts.unicode === false) {\n out += ' ' + ($data) + '.length ';\n } else {\n out += ' ucs2length(' + ($data) + ') ';\n }\n out += ' ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitLength') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be ';\n if ($keyword == 'maxLength') {\n out += 'longer';\n } else {\n out += 'shorter';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' characters\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate__limitProperties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n var $op = $keyword == 'maxProperties' ? '>' : '<';\n out += 'if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'number\\') || ';\n }\n out += ' Object.keys(' + ($data) + ').length ' + ($op) + ' ' + ($schemaValue) + ') { ';\n var $errorKeyword = $keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || '_limitProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have ';\n if ($keyword == 'maxProperties') {\n out += 'more';\n } else {\n out += 'fewer';\n }\n out += ' than ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + ($schema);\n }\n out += ' properties\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\n\nvar ruleModules = require('../dotjs')\n , toHash = require('./util').toHash;\n\nmodule.exports = function rules() {\n var RULES = [\n { type: 'number',\n rules: [ { 'maximum': ['exclusiveMaximum'] },\n { 'minimum': ['exclusiveMinimum'] }, 'multipleOf', 'format'] },\n { type: 'string',\n rules: [ 'maxLength', 'minLength', 'pattern', 'format' ] },\n { type: 'array',\n rules: [ 'maxItems', 'minItems', 'items', 'contains', 'uniqueItems' ] },\n { type: 'object',\n rules: [ 'maxProperties', 'minProperties', 'required', 'dependencies', 'propertyNames',\n { 'properties': ['additionalProperties', 'patternProperties'] } ] },\n { rules: [ '$ref', 'const', 'enum', 'not', 'anyOf', 'oneOf', 'allOf', 'if' ] }\n ];\n\n var ALL = [ 'type', '$comment' ];\n var KEYWORDS = [\n '$schema', '$id', 'id', '$data', '$async', 'title',\n 'description', 'default', 'definitions',\n 'examples', 'readOnly', 'writeOnly',\n 'contentMediaType', 'contentEncoding',\n 'additionalItems', 'then', 'else'\n ];\n var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];\n RULES.all = toHash(ALL);\n RULES.types = toHash(TYPES);\n\n RULES.forEach(function (group) {\n group.rules = group.rules.map(function (keyword) {\n var implKeywords;\n if (typeof keyword == 'object') {\n var key = Object.keys(keyword)[0];\n implKeywords = keyword[key];\n keyword = key;\n implKeywords.forEach(function (k) {\n ALL.push(k);\n RULES.all[k] = true;\n });\n }\n ALL.push(keyword);\n var rule = RULES.all[keyword] = {\n keyword: keyword,\n code: ruleModules[keyword],\n implements: implKeywords\n };\n return rule;\n });\n\n RULES.all.$comment = {\n keyword: '$comment',\n code: ruleModules.$comment\n };\n\n if (group.type) RULES.types[group.type] = group;\n });\n\n RULES.keywords = toHash(ALL.concat(KEYWORDS));\n RULES.custom = {};\n\n return RULES;\n};\n","'use strict';\n\n//all requires must be explicit because browserify won't work with dynamic requires\nmodule.exports = {\n '$ref': require('./ref'),\n allOf: require('./allOf'),\n anyOf: require('./anyOf'),\n '$comment': require('./comment'),\n const: require('./const'),\n contains: require('./contains'),\n dependencies: require('./dependencies'),\n 'enum': require('./enum'),\n format: require('./format'),\n 'if': require('./if'),\n items: require('./items'),\n maximum: require('./_limit'),\n minimum: require('./_limit'),\n maxItems: require('./_limitItems'),\n minItems: require('./_limitItems'),\n maxLength: require('./_limitLength'),\n minLength: require('./_limitLength'),\n maxProperties: require('./_limitProperties'),\n minProperties: require('./_limitProperties'),\n multipleOf: require('./multipleOf'),\n not: require('./not'),\n oneOf: require('./oneOf'),\n pattern: require('./pattern'),\n properties: require('./properties'),\n propertyNames: require('./propertyNames'),\n required: require('./required'),\n uniqueItems: require('./uniqueItems'),\n validate: require('./validate')\n};\n","'use strict';\nmodule.exports = function generate_ref(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $async, $refCode;\n if ($schema == '#' || $schema == '#/') {\n if (it.isRoot) {\n $async = it.async;\n $refCode = 'validate';\n } else {\n $async = it.root.schema.$async === true;\n $refCode = 'root.refVal[0]';\n }\n } else {\n var $refVal = it.resolveRef(it.baseId, $schema, it.isRoot);\n if ($refVal === undefined) {\n var $message = it.MissingRefError.message(it.baseId, $schema);\n if (it.opts.missingRefs == 'fail') {\n it.logger.error($message);\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('$ref') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { ref: \\'' + (it.util.escapeQuotes($schema)) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'can\\\\\\'t resolve reference ' + (it.util.escapeQuotes($schema)) + '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ' + (it.util.toQuotedString($schema)) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n } else if (it.opts.missingRefs == 'ignore') {\n it.logger.warn($message);\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n throw new it.MissingRefError(it.baseId, $schema, $message);\n }\n } else if ($refVal.inline) {\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $refVal.schema;\n $it.schemaPath = '';\n $it.errSchemaPath = $schema;\n var $code = it.validate($it).replace(/validate\\.schema/g, $refVal.code);\n out += ' ' + ($code) + ' ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n }\n } else {\n $async = $refVal.$async === true || (it.async && $refVal.$async !== false);\n $refCode = $refVal.code;\n }\n }\n if ($refCode) {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n if (it.opts.passContext) {\n out += ' ' + ($refCode) + '.call(this, ';\n } else {\n out += ' ' + ($refCode) + '( ';\n }\n out += ' ' + ($data) + ', (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ', rootData) ';\n var __callValidate = out;\n out = $$outStack.pop();\n if ($async) {\n if (!it.async) throw new Error('async schema referenced by sync schema');\n if ($breakOnError) {\n out += ' var ' + ($valid) + '; ';\n }\n out += ' try { await ' + (__callValidate) + '; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = true; ';\n }\n out += ' } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ';\n if ($breakOnError) {\n out += ' ' + ($valid) + ' = false; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($valid) + ') { ';\n }\n } else {\n out += ' if (!' + (__callValidate) + ') { if (vErrors === null) vErrors = ' + ($refCode) + '.errors; else vErrors = vErrors.concat(' + ($refCode) + '.errors); errors = vErrors.length; } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_allOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $allSchemasEmpty = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $allSchemasEmpty = false;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($breakOnError) {\n if ($allSchemasEmpty) {\n out += ' if (true) { ';\n } else {\n out += ' ' + ($closingBraces.slice(0, -1)) + ' ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_anyOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $noEmptySchema = $schema.every(function($sch) {\n return (it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all));\n });\n if ($noEmptySchema) {\n var $currentBaseId = $it.baseId;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = false; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($valid) + ' || ' + ($nextValid) + '; if (!' + ($valid) + ') { ';\n $closingBraces += '}';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('anyOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match some schema in anyOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_comment(it, $keyword, $ruleType) {\n var out = ' ';\n var $schema = it.schema[$keyword];\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $comment = it.util.toQuotedString($schema);\n if (it.opts.$comment === true) {\n out += ' console.log(' + ($comment) + ');';\n } else if (typeof it.opts.$comment == 'function') {\n out += ' self._opts.$comment(' + ($comment) + ', ' + (it.util.toQuotedString($errSchemaPath)) + ', validate.root.schema);';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_const(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!$isData) {\n out += ' var schema' + ($lvl) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ' = equal(' + ($data) + ', schema' + ($lvl) + '); if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('const') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValue: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to constant\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_contains(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId,\n $nonEmptySchema = (it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all));\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($nonEmptySchema) {\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($nextValid) + ' = false; for (var ' + ($idx) + ' = 0; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (' + ($nextValid) + ') break; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($closingBraces) + ' if (!' + ($nextValid) + ') {';\n } else {\n out += ' if (' + ($data) + '.length == 0) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('contains') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should contain a valid item\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n if ($nonEmptySchema) {\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n }\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_dependencies(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $schemaDeps = {},\n $propertyDeps = {},\n $ownProperties = it.opts.ownProperties;\n for ($property in $schema) {\n if ($property == '__proto__') continue;\n var $sch = $schema[$property];\n var $deps = Array.isArray($sch) ? $propertyDeps : $schemaDeps;\n $deps[$property] = $sch;\n }\n out += 'var ' + ($errs) + ' = errors;';\n var $currentErrorPath = it.errorPath;\n out += 'var missing' + ($lvl) + ';';\n for (var $property in $propertyDeps) {\n $deps = $propertyDeps[$property];\n if ($deps.length) {\n out += ' if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n if ($breakOnError) {\n out += ' && ( ';\n var arr1 = $deps;\n if (arr1) {\n var $propertyKey, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $propertyKey = arr1[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ')) { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n } else {\n out += ' ) { ';\n var arr2 = $deps;\n if (arr2) {\n var $propertyKey, i2 = -1,\n l2 = arr2.length - 1;\n while (i2 < l2) {\n $propertyKey = arr2[i2 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('dependencies') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { property: \\'' + (it.util.escapeQuotes($property)) + '\\', missingProperty: \\'' + ($missingProperty) + '\\', depsCount: ' + ($deps.length) + ', deps: \\'' + (it.util.escapeQuotes($deps.length == 1 ? $deps[0] : $deps.join(\", \"))) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should have ';\n if ($deps.length == 1) {\n out += 'property ' + (it.util.escapeQuotes($deps[0]));\n } else {\n out += 'properties ' + (it.util.escapeQuotes($deps.join(\", \")));\n }\n out += ' when property ' + (it.util.escapeQuotes($property)) + ' is present\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n out += ' } ';\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n var $currentBaseId = $it.baseId;\n for (var $property in $schemaDeps) {\n var $sch = $schemaDeps[$property];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if ( ' + ($data) + (it.util.getProperty($property)) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($property)) + '\\') ';\n }\n out += ') { ';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + it.util.getProperty($property);\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($property);\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_enum(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $i = 'i' + $lvl,\n $vSchema = 'schema' + $lvl;\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + ';';\n }\n out += 'var ' + ($valid) + ';';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += '' + ($valid) + ' = false;for (var ' + ($i) + '=0; ' + ($i) + '<' + ($vSchema) + '.length; ' + ($i) + '++) if (equal(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + '])) { ' + ($valid) + ' = true; break; }';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('enum') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { allowedValues: schema' + ($lvl) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be equal to one of the allowed values\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' }';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_format(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n if (it.opts.format === false) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $unknownFormats = it.opts.unknownFormats,\n $allowUnknown = Array.isArray($unknownFormats);\n if ($isData) {\n var $format = 'format' + $lvl,\n $isObject = 'isObject' + $lvl,\n $formatType = 'formatType' + $lvl;\n out += ' var ' + ($format) + ' = formats[' + ($schemaValue) + ']; var ' + ($isObject) + ' = typeof ' + ($format) + ' == \\'object\\' && !(' + ($format) + ' instanceof RegExp) && ' + ($format) + '.validate; var ' + ($formatType) + ' = ' + ($isObject) + ' && ' + ($format) + '.type || \\'string\\'; if (' + ($isObject) + ') { ';\n if (it.async) {\n out += ' var async' + ($lvl) + ' = ' + ($format) + '.async; ';\n }\n out += ' ' + ($format) + ' = ' + ($format) + '.validate; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' (';\n if ($unknownFormats != 'ignore') {\n out += ' (' + ($schemaValue) + ' && !' + ($format) + ' ';\n if ($allowUnknown) {\n out += ' && self._opts.unknownFormats.indexOf(' + ($schemaValue) + ') == -1 ';\n }\n out += ') || ';\n }\n out += ' (' + ($format) + ' && ' + ($formatType) + ' == \\'' + ($ruleType) + '\\' && !(typeof ' + ($format) + ' == \\'function\\' ? ';\n if (it.async) {\n out += ' (async' + ($lvl) + ' ? await ' + ($format) + '(' + ($data) + ') : ' + ($format) + '(' + ($data) + ')) ';\n } else {\n out += ' ' + ($format) + '(' + ($data) + ') ';\n }\n out += ' : ' + ($format) + '.test(' + ($data) + '))))) {';\n } else {\n var $format = it.formats[$schema];\n if (!$format) {\n if ($unknownFormats == 'ignore') {\n it.logger.warn('unknown format \"' + $schema + '\" ignored in schema at path \"' + it.errSchemaPath + '\"');\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else if ($allowUnknown && $unknownFormats.indexOf($schema) >= 0) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n } else {\n throw new Error('unknown format \"' + $schema + '\" is used in schema at path \"' + it.errSchemaPath + '\"');\n }\n }\n var $isObject = typeof $format == 'object' && !($format instanceof RegExp) && $format.validate;\n var $formatType = $isObject && $format.type || 'string';\n if ($isObject) {\n var $async = $format.async === true;\n $format = $format.validate;\n }\n if ($formatType != $ruleType) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n return out;\n }\n if ($async) {\n if (!it.async) throw new Error('async format in sync schema');\n var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';\n out += ' if (!(await ' + ($formatRef) + '(' + ($data) + '))) { ';\n } else {\n out += ' if (! ';\n var $formatRef = 'formats' + it.util.getProperty($schema);\n if ($isObject) $formatRef += '.validate';\n if (typeof $format == 'function') {\n out += ' ' + ($formatRef) + '(' + ($data) + ') ';\n } else {\n out += ' ' + ($formatRef) + '.test(' + ($data) + ') ';\n }\n out += ') { ';\n }\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('format') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { format: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match format \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_if(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $thenSch = it.schema['then'],\n $elseSch = it.schema['else'],\n $thenPresent = $thenSch !== undefined && (it.opts.strictKeywords ? (typeof $thenSch == 'object' && Object.keys($thenSch).length > 0) || $thenSch === false : it.util.schemaHasRules($thenSch, it.RULES.all)),\n $elsePresent = $elseSch !== undefined && (it.opts.strictKeywords ? (typeof $elseSch == 'object' && Object.keys($elseSch).length > 0) || $elseSch === false : it.util.schemaHasRules($elseSch, it.RULES.all)),\n $currentBaseId = $it.baseId;\n if ($thenPresent || $elsePresent) {\n var $ifClause;\n $it.createErrors = false;\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; var ' + ($valid) + ' = true; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n $it.createErrors = true;\n out += ' errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n if ($thenPresent) {\n out += ' if (' + ($nextValid) + ') { ';\n $it.schema = it.schema['then'];\n $it.schemaPath = it.schemaPath + '.then';\n $it.errSchemaPath = it.errSchemaPath + '/then';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'then\\'; ';\n } else {\n $ifClause = '\\'then\\'';\n }\n out += ' } ';\n if ($elsePresent) {\n out += ' else { ';\n }\n } else {\n out += ' if (!' + ($nextValid) + ') { ';\n }\n if ($elsePresent) {\n $it.schema = it.schema['else'];\n $it.schemaPath = it.schemaPath + '.else';\n $it.errSchemaPath = it.errSchemaPath + '/else';\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n out += ' ' + ($valid) + ' = ' + ($nextValid) + '; ';\n if ($thenPresent && $elsePresent) {\n $ifClause = 'ifClause' + $lvl;\n out += ' var ' + ($ifClause) + ' = \\'else\\'; ';\n } else {\n $ifClause = '\\'else\\'';\n }\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('if') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { failingKeyword: ' + ($ifClause) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match \"\\' + ' + ($ifClause) + ' + \\'\" schema\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_items(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $idx = 'i' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $currentBaseId = it.baseId;\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if (Array.isArray($schema)) {\n var $additionalItems = it.schema.additionalItems;\n if ($additionalItems === false) {\n out += ' ' + ($valid) + ' = ' + ($data) + '.length <= ' + ($schema.length) + '; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { limit: ' + ($schema.length) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have more than ' + ($schema.length) + ' items\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n $closingBraces += '}';\n out += ' else { ';\n }\n }\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($i) + ') { ';\n var $passData = $data + '[' + $i + ']';\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n $it.errorPath = it.util.getPathExpr(it.errorPath, $i, it.opts.jsonPointers, true);\n $it.dataPathArr[$dataNxt] = $i;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if (typeof $additionalItems == 'object' && (it.opts.strictKeywords ? (typeof $additionalItems == 'object' && Object.keys($additionalItems).length > 0) || $additionalItems === false : it.util.schemaHasRules($additionalItems, it.RULES.all))) {\n $it.schema = $additionalItems;\n $it.schemaPath = it.schemaPath + '.additionalItems';\n $it.errSchemaPath = it.errSchemaPath + '/additionalItems';\n out += ' ' + ($nextValid) + ' = true; if (' + ($data) + '.length > ' + ($schema.length) + ') { for (var ' + ($idx) + ' = ' + ($schema.length) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n } else if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' for (var ' + ($idx) + ' = ' + (0) + '; ' + ($idx) + ' < ' + ($data) + '.length; ' + ($idx) + '++) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $idx, it.opts.jsonPointers, true);\n var $passData = $data + '[' + $idx + ']';\n $it.dataPathArr[$dataNxt] = $idx;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_multipleOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (!($isData || typeof $schema == 'number')) {\n throw new Error($keyword + ' must be number');\n }\n out += 'var division' + ($lvl) + ';if (';\n if ($isData) {\n out += ' ' + ($schemaValue) + ' !== undefined && ( typeof ' + ($schemaValue) + ' != \\'number\\' || ';\n }\n out += ' (division' + ($lvl) + ' = ' + ($data) + ' / ' + ($schemaValue) + ', ';\n if (it.opts.multipleOfPrecision) {\n out += ' Math.abs(Math.round(division' + ($lvl) + ') - division' + ($lvl) + ') > 1e-' + (it.opts.multipleOfPrecision) + ' ';\n } else {\n out += ' division' + ($lvl) + ' !== parseInt(division' + ($lvl) + ') ';\n }\n out += ' ) ';\n if ($isData) {\n out += ' ) ';\n }\n out += ' ) { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('multipleOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { multipleOf: ' + ($schemaValue) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should be multiple of ';\n if ($isData) {\n out += '\\' + ' + ($schemaValue);\n } else {\n out += '' + ($schemaValue) + '\\'';\n }\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_not(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.createErrors = false;\n var $allErrorsOption;\n if ($it.opts.allErrors) {\n $allErrorsOption = $it.opts.allErrors;\n $it.opts.allErrors = false;\n }\n out += ' ' + (it.validate($it)) + ' ';\n $it.createErrors = true;\n if ($allErrorsOption) $it.opts.allErrors = $allErrorsOption;\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (' + ($nextValid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; } ';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n } else {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('not') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: {} ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT be valid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if ($breakOnError) {\n out += ' if (false) { ';\n }\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_oneOf(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $currentBaseId = $it.baseId,\n $prevValid = 'prevValid' + $lvl,\n $passingSchemas = 'passingSchemas' + $lvl;\n out += 'var ' + ($errs) + ' = errors , ' + ($prevValid) + ' = false , ' + ($valid) + ' = false , ' + ($passingSchemas) + ' = null; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var arr1 = $schema;\n if (arr1) {\n var $sch, $i = -1,\n l1 = arr1.length - 1;\n while ($i < l1) {\n $sch = arr1[$i += 1];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + '[' + $i + ']';\n $it.errSchemaPath = $errSchemaPath + '/' + $i;\n out += ' ' + (it.validate($it)) + ' ';\n $it.baseId = $currentBaseId;\n } else {\n out += ' var ' + ($nextValid) + ' = true; ';\n }\n if ($i) {\n out += ' if (' + ($nextValid) + ' && ' + ($prevValid) + ') { ' + ($valid) + ' = false; ' + ($passingSchemas) + ' = [' + ($passingSchemas) + ', ' + ($i) + ']; } else { ';\n $closingBraces += '}';\n }\n out += ' if (' + ($nextValid) + ') { ' + ($valid) + ' = ' + ($prevValid) + ' = true; ' + ($passingSchemas) + ' = ' + ($i) + '; }';\n }\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += '' + ($closingBraces) + 'if (!' + ($valid) + ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('oneOf') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { passingSchemas: ' + ($passingSchemas) + ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match exactly one schema in oneOf\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n out += '} else { errors = ' + ($errs) + '; if (vErrors !== null) { if (' + ($errs) + ') vErrors.length = ' + ($errs) + '; else vErrors = null; }';\n if (it.opts.allErrors) {\n out += ' } ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_pattern(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $regExpCode = it.opts.regExp ? 'regExp' : 'new RegExp';\n if ($isData) {\n out += ' var ' + ($valid) + ' = true; try { ' + ($valid) + ' = ' + ($regExpCode) + '(' + ($schemaValue) + ').test(' + ($data) + '); } catch(e) { ' + ($valid) + ' = false; } if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($valid) + ') {';\n } else {\n var $regexp = it.usePattern($schema);\n out += ' if ( ';\n if ($isData) {\n out += ' (' + ($schemaValue) + ' !== undefined && typeof ' + ($schemaValue) + ' != \\'string\\') || ';\n }\n out += ' !' + ($regexp) + '.test(' + ($data) + ') ) {';\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('pattern') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { pattern: ';\n if ($isData) {\n out += '' + ($schemaValue);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should match pattern \"';\n if ($isData) {\n out += '\\' + ' + ($schemaValue) + ' + \\'';\n } else {\n out += '' + (it.util.escapeQuotes($schema));\n }\n out += '\"\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + (it.util.toQuotedString($schema));\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += '} ';\n if ($breakOnError) {\n out += ' else { ';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_properties(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl;\n var $schemaKeys = Object.keys($schema || {}).filter(notProto),\n $pProperties = it.schema.patternProperties || {},\n $pPropertyKeys = Object.keys($pProperties).filter(notProto),\n $aProperties = it.schema.additionalProperties,\n $someProperties = $schemaKeys.length || $pPropertyKeys.length,\n $noAdditional = $aProperties === false,\n $additionalIsSchema = typeof $aProperties == 'object' && Object.keys($aProperties).length,\n $removeAdditional = it.opts.removeAdditional,\n $checkAdditional = $noAdditional || $additionalIsSchema || $removeAdditional,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n var $required = it.schema.required;\n if ($required && !(it.opts.$data && $required.$data) && $required.length < it.opts.loopRequired) {\n var $requiredHash = it.util.toHash($required);\n }\n\n function notProto(p) {\n return p !== '__proto__';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($nextValid) + ' = true;';\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined;';\n }\n if ($checkAdditional) {\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n if ($someProperties) {\n out += ' var isAdditional' + ($lvl) + ' = !(false ';\n if ($schemaKeys.length) {\n if ($schemaKeys.length > 8) {\n out += ' || validate.schema' + ($schemaPath) + '.hasOwnProperty(' + ($key) + ') ';\n } else {\n var arr1 = $schemaKeys;\n if (arr1) {\n var $propertyKey, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $propertyKey = arr1[i1 += 1];\n out += ' || ' + ($key) + ' == ' + (it.util.toQuotedString($propertyKey)) + ' ';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr2 = $pPropertyKeys;\n if (arr2) {\n var $pProperty, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $pProperty = arr2[$i += 1];\n out += ' || ' + (it.usePattern($pProperty)) + '.test(' + ($key) + ') ';\n }\n }\n }\n out += ' ); if (isAdditional' + ($lvl) + ') { ';\n }\n if ($removeAdditional == 'all') {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n var $currentErrorPath = it.errorPath;\n var $additionalProperty = '\\' + ' + $key + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n }\n if ($noAdditional) {\n if ($removeAdditional) {\n out += ' delete ' + ($data) + '[' + ($key) + ']; ';\n } else {\n out += ' ' + ($nextValid) + ' = false; ';\n var $currErrSchemaPath = $errSchemaPath;\n $errSchemaPath = it.errSchemaPath + '/additionalProperties';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('additionalProperties') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { additionalProperty: \\'' + ($additionalProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is an invalid additional property';\n } else {\n out += 'should NOT have additional properties';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: false , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n if ($breakOnError) {\n out += ' break; ';\n }\n }\n } else if ($additionalIsSchema) {\n if ($removeAdditional == 'failing') {\n out += ' var ' + ($errs) + ' = errors; ';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n out += ' if (!' + ($nextValid) + ') { errors = ' + ($errs) + '; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete ' + ($data) + '[' + ($key) + ']; } ';\n it.compositeRule = $it.compositeRule = $wasComposite;\n } else {\n $it.schema = $aProperties;\n $it.schemaPath = it.schemaPath + '.additionalProperties';\n $it.errSchemaPath = it.errSchemaPath + '/additionalProperties';\n $it.errorPath = it.opts._errorDataPathProperty ? it.errorPath : it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n }\n }\n it.errorPath = $currentErrorPath;\n }\n if ($someProperties) {\n out += ' } ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n var $useDefaults = it.opts.useDefaults && !it.compositeRule;\n if ($schemaKeys.length) {\n var arr3 = $schemaKeys;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $sch = $schema[$propertyKey];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n var $prop = it.util.getProperty($propertyKey),\n $passData = $data + $prop,\n $hasDefault = $useDefaults && $sch.default !== undefined;\n $it.schema = $sch;\n $it.schemaPath = $schemaPath + $prop;\n $it.errSchemaPath = $errSchemaPath + '/' + it.util.escapeFragment($propertyKey);\n $it.errorPath = it.util.getPath(it.errorPath, $propertyKey, it.opts.jsonPointers);\n $it.dataPathArr[$dataNxt] = it.util.toQuotedString($propertyKey);\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n $code = it.util.varReplace($code, $nextData, $passData);\n var $useData = $passData;\n } else {\n var $useData = $nextData;\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ';\n }\n if ($hasDefault) {\n out += ' ' + ($code) + ' ';\n } else {\n if ($requiredHash && $requiredHash[$propertyKey]) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = false; ';\n var $currentErrorPath = it.errorPath,\n $currErrSchemaPath = $errSchemaPath,\n $missingProperty = it.util.escapeQuotes($propertyKey);\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n $errSchemaPath = it.errSchemaPath + '/required';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n $errSchemaPath = $currErrSchemaPath;\n it.errorPath = $currentErrorPath;\n out += ' } else { ';\n } else {\n if ($breakOnError) {\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { ' + ($nextValid) + ' = true; } else { ';\n } else {\n out += ' if (' + ($useData) + ' !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ' ) { ';\n }\n }\n out += ' ' + ($code) + ' } ';\n }\n }\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n if ($pPropertyKeys.length) {\n var arr4 = $pPropertyKeys;\n if (arr4) {\n var $pProperty, i4 = -1,\n l4 = arr4.length - 1;\n while (i4 < l4) {\n $pProperty = arr4[i4 += 1];\n var $sch = $pProperties[$pProperty];\n if ((it.opts.strictKeywords ? (typeof $sch == 'object' && Object.keys($sch).length > 0) || $sch === false : it.util.schemaHasRules($sch, it.RULES.all))) {\n $it.schema = $sch;\n $it.schemaPath = it.schemaPath + '.patternProperties' + it.util.getProperty($pProperty);\n $it.errSchemaPath = it.errSchemaPath + '/patternProperties/' + it.util.escapeFragment($pProperty);\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' if (' + (it.usePattern($pProperty)) + '.test(' + ($key) + ')) { ';\n $it.errorPath = it.util.getPathExpr(it.errorPath, $key, it.opts.jsonPointers);\n var $passData = $data + '[' + $key + ']';\n $it.dataPathArr[$dataNxt] = $key;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n if ($breakOnError) {\n out += ' if (!' + ($nextValid) + ') break; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else ' + ($nextValid) + ' = true; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' if (' + ($nextValid) + ') { ';\n $closingBraces += '}';\n }\n }\n }\n }\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_propertyNames(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $errs = 'errs__' + $lvl;\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n out += 'var ' + ($errs) + ' = errors;';\n if ((it.opts.strictKeywords ? (typeof $schema == 'object' && Object.keys($schema).length > 0) || $schema === false : it.util.schemaHasRules($schema, it.RULES.all))) {\n $it.schema = $schema;\n $it.schemaPath = $schemaPath;\n $it.errSchemaPath = $errSchemaPath;\n var $key = 'key' + $lvl,\n $idx = 'idx' + $lvl,\n $i = 'i' + $lvl,\n $invalidName = '\\' + ' + $key + ' + \\'',\n $dataNxt = $it.dataLevel = it.dataLevel + 1,\n $nextData = 'data' + $dataNxt,\n $dataProperties = 'dataProperties' + $lvl,\n $ownProperties = it.opts.ownProperties,\n $currentBaseId = it.baseId;\n if ($ownProperties) {\n out += ' var ' + ($dataProperties) + ' = undefined; ';\n }\n if ($ownProperties) {\n out += ' ' + ($dataProperties) + ' = ' + ($dataProperties) + ' || Object.keys(' + ($data) + '); for (var ' + ($idx) + '=0; ' + ($idx) + '<' + ($dataProperties) + '.length; ' + ($idx) + '++) { var ' + ($key) + ' = ' + ($dataProperties) + '[' + ($idx) + ']; ';\n } else {\n out += ' for (var ' + ($key) + ' in ' + ($data) + ') { ';\n }\n out += ' var startErrs' + ($lvl) + ' = errors; ';\n var $passData = $key;\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it);\n $it.baseId = $currentBaseId;\n if (it.util.varOccurences($code, $nextData) < 2) {\n out += ' ' + (it.util.varReplace($code, $nextData, $passData)) + ' ';\n } else {\n out += ' var ' + ($nextData) + ' = ' + ($passData) + '; ' + ($code) + ' ';\n }\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' if (!' + ($nextValid) + ') { for (var ' + ($i) + '=startErrs' + ($lvl) + '; ' + ($i) + '<errors; ' + ($i) + '++) { vErrors[' + ($i) + '].propertyName = ' + ($key) + '; } var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('propertyNames') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { propertyName: \\'' + ($invalidName) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'property name \\\\\\'' + ($invalidName) + '\\\\\\' is invalid\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n if ($breakOnError) {\n out += ' break; ';\n }\n out += ' } }';\n }\n if ($breakOnError) {\n out += ' ' + ($closingBraces) + ' if (' + ($errs) + ' == errors) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_required(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $vSchema = 'schema' + $lvl;\n if (!$isData) {\n if ($schema.length < it.opts.loopRequired && it.schema.properties && Object.keys(it.schema.properties).length) {\n var $required = [];\n var arr1 = $schema;\n if (arr1) {\n var $property, i1 = -1,\n l1 = arr1.length - 1;\n while (i1 < l1) {\n $property = arr1[i1 += 1];\n var $propertySch = it.schema.properties[$property];\n if (!($propertySch && (it.opts.strictKeywords ? (typeof $propertySch == 'object' && Object.keys($propertySch).length > 0) || $propertySch === false : it.util.schemaHasRules($propertySch, it.RULES.all)))) {\n $required[$required.length] = $property;\n }\n }\n }\n } else {\n var $required = $schema;\n }\n }\n if ($isData || $required.length) {\n var $currentErrorPath = it.errorPath,\n $loopRequired = $isData || $required.length >= it.opts.loopRequired,\n $ownProperties = it.opts.ownProperties;\n if ($breakOnError) {\n out += ' var missing' + ($lvl) + '; ';\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n out += ' var ' + ($valid) + ' = true; ';\n if ($isData) {\n out += ' if (schema' + ($lvl) + ' === undefined) ' + ($valid) + ' = true; else if (!Array.isArray(schema' + ($lvl) + ')) ' + ($valid) + ' = false; else {';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { ' + ($valid) + ' = ' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] !== undefined ';\n if ($ownProperties) {\n out += ' && Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += '; if (!' + ($valid) + ') break; } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n } else {\n out += ' if ( ';\n var arr2 = $required;\n if (arr2) {\n var $propertyKey, $i = -1,\n l2 = arr2.length - 1;\n while ($i < l2) {\n $propertyKey = arr2[$i += 1];\n if ($i) {\n out += ' || ';\n }\n var $prop = it.util.getProperty($propertyKey),\n $useData = $data + $prop;\n out += ' ( ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') && (missing' + ($lvl) + ' = ' + (it.util.toQuotedString(it.opts.jsonPointers ? $propertyKey : $prop)) + ') ) ';\n }\n }\n out += ') { ';\n var $propertyPath = 'missing' + $lvl,\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.opts.jsonPointers ? it.util.getPathExpr($currentErrorPath, $propertyPath, true) : $currentErrorPath + ' + ' + $propertyPath;\n }\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } else { ';\n }\n } else {\n if ($loopRequired) {\n if (!$isData) {\n out += ' var ' + ($vSchema) + ' = validate.schema' + ($schemaPath) + '; ';\n }\n var $i = 'i' + $lvl,\n $propertyPath = 'schema' + $lvl + '[' + $i + ']',\n $missingProperty = '\\' + ' + $propertyPath + ' + \\'';\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPathExpr($currentErrorPath, $propertyPath, it.opts.jsonPointers);\n }\n if ($isData) {\n out += ' if (' + ($vSchema) + ' && !Array.isArray(' + ($vSchema) + ')) { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if (' + ($vSchema) + ' !== undefined) { ';\n }\n out += ' for (var ' + ($i) + ' = 0; ' + ($i) + ' < ' + ($vSchema) + '.length; ' + ($i) + '++) { if (' + ($data) + '[' + ($vSchema) + '[' + ($i) + ']] === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', ' + ($vSchema) + '[' + ($i) + ']) ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ';\n if ($isData) {\n out += ' } ';\n }\n } else {\n var arr3 = $required;\n if (arr3) {\n var $propertyKey, i3 = -1,\n l3 = arr3.length - 1;\n while (i3 < l3) {\n $propertyKey = arr3[i3 += 1];\n var $prop = it.util.getProperty($propertyKey),\n $missingProperty = it.util.escapeQuotes($propertyKey),\n $useData = $data + $prop;\n if (it.opts._errorDataPathProperty) {\n it.errorPath = it.util.getPath($currentErrorPath, $propertyKey, it.opts.jsonPointers);\n }\n out += ' if ( ' + ($useData) + ' === undefined ';\n if ($ownProperties) {\n out += ' || ! Object.prototype.hasOwnProperty.call(' + ($data) + ', \\'' + (it.util.escapeQuotes($propertyKey)) + '\\') ';\n }\n out += ') { var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('required') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { missingProperty: \\'' + ($missingProperty) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'';\n if (it.opts._errorDataPathProperty) {\n out += 'is a required property';\n } else {\n out += 'should have required property \\\\\\'' + ($missingProperty) + '\\\\\\'';\n }\n out += '\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } ';\n }\n }\n }\n }\n it.errorPath = $currentErrorPath;\n } else if ($breakOnError) {\n out += ' if (true) {';\n }\n return out;\n}\n","'use strict';\nmodule.exports = function generate_uniqueItems(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n if (($schema || $isData) && it.opts.uniqueItems !== false) {\n if ($isData) {\n out += ' var ' + ($valid) + '; if (' + ($schemaValue) + ' === false || ' + ($schemaValue) + ' === undefined) ' + ($valid) + ' = true; else if (typeof ' + ($schemaValue) + ' != \\'boolean\\') ' + ($valid) + ' = false; else { ';\n }\n out += ' var i = ' + ($data) + '.length , ' + ($valid) + ' = true , j; if (i > 1) { ';\n var $itemType = it.schema.items && it.schema.items.type,\n $typeIsArray = Array.isArray($itemType);\n if (!$itemType || $itemType == 'object' || $itemType == 'array' || ($typeIsArray && ($itemType.indexOf('object') >= 0 || $itemType.indexOf('array') >= 0))) {\n out += ' outer: for (;i--;) { for (j = i; j--;) { if (equal(' + ($data) + '[i], ' + ($data) + '[j])) { ' + ($valid) + ' = false; break outer; } } } ';\n } else {\n out += ' var itemIndices = {}, item; for (;i--;) { var item = ' + ($data) + '[i]; ';\n var $method = 'checkDataType' + ($typeIsArray ? 's' : '');\n out += ' if (' + (it.util[$method]($itemType, 'item', it.opts.strictNumbers, true)) + ') continue; ';\n if ($typeIsArray) {\n out += ' if (typeof item == \\'string\\') item = \\'\"\\' + item; ';\n }\n out += ' if (typeof itemIndices[item] == \\'number\\') { ' + ($valid) + ' = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ';\n }\n out += ' } ';\n if ($isData) {\n out += ' } ';\n }\n out += ' if (!' + ($valid) + ') { ';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ('uniqueItems') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { i: i, j: j } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should NOT have duplicate items (items ## \\' + j + \\' and \\' + i + \\' are identical)\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: ';\n if ($isData) {\n out += 'validate.schema' + ($schemaPath);\n } else {\n out += '' + ($schema);\n }\n out += ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n } else {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n }\n return out;\n}\n","'use strict';\n\nvar MissingRefError = require('./error_classes').MissingRef;\n\nmodule.exports = compileAsync;\n\n\n/**\n * Creates validating function for passed schema with asynchronous loading of missing schemas.\n * `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped\n * @param {Function} callback an optional node-style callback, it is called with 2 parameters: error (or null) and validating function.\n * @return {Promise} promise that resolves with a validating function.\n */\nfunction compileAsync(schema, meta, callback) {\n /* eslint no-shadow: 0 */\n /* global Promise */\n /* jshint validthis: true */\n var self = this;\n if (typeof this._opts.loadSchema != 'function')\n throw new Error('options.loadSchema should be a function');\n\n if (typeof meta == 'function') {\n callback = meta;\n meta = undefined;\n }\n\n var p = loadMetaSchemaOf(schema).then(function () {\n var schemaObj = self._addSchema(schema, undefined, meta);\n return schemaObj.validate || _compileAsync(schemaObj);\n });\n\n if (callback) {\n p.then(\n function(v) { callback(null, v); },\n callback\n );\n }\n\n return p;\n\n\n function loadMetaSchemaOf(sch) {\n var $schema = sch.$schema;\n return $schema && !self.getSchema($schema)\n ? compileAsync.call(self, { $ref: $schema }, true)\n : Promise.resolve();\n }\n\n\n function _compileAsync(schemaObj) {\n try { return self._compile(schemaObj); }\n catch(e) {\n if (e instanceof MissingRefError) return loadMissingSchema(e);\n throw e;\n }\n\n\n function loadMissingSchema(e) {\n var ref = e.missingSchema;\n if (added(ref)) throw new Error('Schema ' + ref + ' is loaded but ' + e.missingRef + ' cannot be resolved');\n\n var schemaPromise = self._loadingSchemas[ref];\n if (!schemaPromise) {\n schemaPromise = self._loadingSchemas[ref] = self._opts.loadSchema(ref);\n schemaPromise.then(removePromise, removePromise);\n }\n\n return schemaPromise.then(function (sch) {\n if (!added(ref)) {\n return loadMetaSchemaOf(sch).then(function () {\n if (!added(ref)) self.addSchema(sch, ref, undefined, meta);\n });\n }\n }).then(function() {\n return _compileAsync(schemaObj);\n });\n\n function removePromise() {\n delete self._loadingSchemas[ref];\n }\n\n function added(ref) {\n return self._refs[ref] || self._schemas[ref];\n }\n }\n }\n}\n","'use strict';\n\nvar IDENTIFIER = /^[a-z_$][a-z0-9_$-]*$/i;\nvar customRuleCode = require('./dotjs/custom');\nvar definitionSchema = require('./definition_schema');\n\nmodule.exports = {\n add: addKeyword,\n get: getKeyword,\n remove: removeKeyword,\n validate: validateKeyword\n};\n\n\n/**\n * Define custom keyword\n * @this Ajv\n * @param {String} keyword custom keyword, should be unique (including different from all standard, custom and macro keywords).\n * @param {Object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`.\n * @return {Ajv} this for method chaining\n */\nfunction addKeyword(keyword, definition) {\n /* jshint validthis: true */\n /* eslint no-shadow: 0 */\n var RULES = this.RULES;\n if (RULES.keywords[keyword])\n throw new Error('Keyword ' + keyword + ' is already defined');\n\n if (!IDENTIFIER.test(keyword))\n throw new Error('Keyword ' + keyword + ' is not a valid identifier');\n\n if (definition) {\n this.validateKeyword(definition, true);\n\n var dataType = definition.type;\n if (Array.isArray(dataType)) {\n for (var i=0; i<dataType.length; i++)\n _addRule(keyword, dataType[i], definition);\n } else {\n _addRule(keyword, dataType, definition);\n }\n\n var metaSchema = definition.metaSchema;\n if (metaSchema) {\n if (definition.$data && this._opts.$data) {\n metaSchema = {\n anyOf: [\n metaSchema,\n { '$ref': 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n definition.validateSchema = this.compile(metaSchema, true);\n }\n }\n\n RULES.keywords[keyword] = RULES.all[keyword] = true;\n\n\n function _addRule(keyword, dataType, definition) {\n var ruleGroup;\n for (var i=0; i<RULES.length; i++) {\n var rg = RULES[i];\n if (rg.type == dataType) {\n ruleGroup = rg;\n break;\n }\n }\n\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.push(ruleGroup);\n }\n\n var rule = {\n keyword: keyword,\n definition: definition,\n custom: true,\n code: customRuleCode,\n implements: definition.implements\n };\n ruleGroup.rules.push(rule);\n RULES.custom[keyword] = rule;\n }\n\n return this;\n}\n\n\n/**\n * Get keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.\n */\nfunction getKeyword(keyword) {\n /* jshint validthis: true */\n var rule = this.RULES.custom[keyword];\n return rule ? rule.definition : this.RULES.keywords[keyword] || false;\n}\n\n\n/**\n * Remove keyword\n * @this Ajv\n * @param {String} keyword pre-defined or custom keyword.\n * @return {Ajv} this for method chaining\n */\nfunction removeKeyword(keyword) {\n /* jshint validthis: true */\n var RULES = this.RULES;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n delete RULES.custom[keyword];\n for (var i=0; i<RULES.length; i++) {\n var rules = RULES[i].rules;\n for (var j=0; j<rules.length; j++) {\n if (rules[j].keyword == keyword) {\n rules.splice(j, 1);\n break;\n }\n }\n }\n return this;\n}\n\n\n/**\n * Validate keyword definition\n * @this Ajv\n * @param {Object} definition keyword definition object.\n * @param {Boolean} throwError true to throw exception if definition is invalid\n * @return {boolean} validation result\n */\nfunction validateKeyword(definition, throwError) {\n validateKeyword.errors = null;\n var v = this._validateKeyword = this._validateKeyword\n || this.compile(definitionSchema, true);\n\n if (v(definition)) return true;\n validateKeyword.errors = v.errors;\n if (throwError)\n throw new Error('custom keyword definition is invalid: ' + this.errorsText(v.errors));\n else\n return false;\n}\n","'use strict';\nmodule.exports = function generate_custom(it, $keyword, $ruleType) {\n var out = ' ';\n var $lvl = it.level;\n var $dataLvl = it.dataLevel;\n var $schema = it.schema[$keyword];\n var $schemaPath = it.schemaPath + it.util.getProperty($keyword);\n var $errSchemaPath = it.errSchemaPath + '/' + $keyword;\n var $breakOnError = !it.opts.allErrors;\n var $errorKeyword;\n var $data = 'data' + ($dataLvl || '');\n var $valid = 'valid' + $lvl;\n var $errs = 'errs__' + $lvl;\n var $isData = it.opts.$data && $schema && $schema.$data,\n $schemaValue;\n if ($isData) {\n out += ' var schema' + ($lvl) + ' = ' + (it.util.getData($schema.$data, $dataLvl, it.dataPathArr)) + '; ';\n $schemaValue = 'schema' + $lvl;\n } else {\n $schemaValue = $schema;\n }\n var $rule = this,\n $definition = 'definition' + $lvl,\n $rDef = $rule.definition,\n $closingBraces = '';\n var $compile, $inline, $macro, $ruleValidate, $validateCode;\n if ($isData && $rDef.$data) {\n $validateCode = 'keywordValidate' + $lvl;\n var $validateSchema = $rDef.validateSchema;\n out += ' var ' + ($definition) + ' = RULES.custom[\\'' + ($keyword) + '\\'].definition; var ' + ($validateCode) + ' = ' + ($definition) + '.validate;';\n } else {\n $ruleValidate = it.useCustomRule($rule, $schema, it.schema, it);\n if (!$ruleValidate) return;\n $schemaValue = 'validate.schema' + $schemaPath;\n $validateCode = $ruleValidate.code;\n $compile = $rDef.compile;\n $inline = $rDef.inline;\n $macro = $rDef.macro;\n }\n var $ruleErrs = $validateCode + '.errors',\n $i = 'i' + $lvl,\n $ruleErr = 'ruleErr' + $lvl,\n $asyncKeyword = $rDef.async;\n if ($asyncKeyword && !it.async) throw new Error('async keyword in sync schema');\n if (!($inline || $macro)) {\n out += '' + ($ruleErrs) + ' = null;';\n }\n out += 'var ' + ($errs) + ' = errors;var ' + ($valid) + ';';\n if ($isData && $rDef.$data) {\n $closingBraces += '}';\n out += ' if (' + ($schemaValue) + ' === undefined) { ' + ($valid) + ' = true; } else { ';\n if ($validateSchema) {\n $closingBraces += '}';\n out += ' ' + ($valid) + ' = ' + ($definition) + '.validateSchema(' + ($schemaValue) + '); if (' + ($valid) + ') { ';\n }\n }\n if ($inline) {\n if ($rDef.statements) {\n out += ' ' + ($ruleValidate.validate) + ' ';\n } else {\n out += ' ' + ($valid) + ' = ' + ($ruleValidate.validate) + '; ';\n }\n } else if ($macro) {\n var $it = it.util.copy(it);\n var $closingBraces = '';\n $it.level++;\n var $nextValid = 'valid' + $it.level;\n $it.schema = $ruleValidate.validate;\n $it.schemaPath = '';\n var $wasComposite = it.compositeRule;\n it.compositeRule = $it.compositeRule = true;\n var $code = it.validate($it).replace(/validate\\.schema/g, $validateCode);\n it.compositeRule = $it.compositeRule = $wasComposite;\n out += ' ' + ($code);\n } else {\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n out += ' ' + ($validateCode) + '.call( ';\n if (it.opts.passContext) {\n out += 'this';\n } else {\n out += 'self';\n }\n if ($compile || $rDef.schema === false) {\n out += ' , ' + ($data) + ' ';\n } else {\n out += ' , ' + ($schemaValue) + ' , ' + ($data) + ' , validate.schema' + (it.schemaPath) + ' ';\n }\n out += ' , (dataPath || \\'\\')';\n if (it.errorPath != '\"\"') {\n out += ' + ' + (it.errorPath);\n }\n var $parentData = $dataLvl ? 'data' + (($dataLvl - 1) || '') : 'parentData',\n $parentDataProperty = $dataLvl ? it.dataPathArr[$dataLvl] : 'parentDataProperty';\n out += ' , ' + ($parentData) + ' , ' + ($parentDataProperty) + ' , rootData ) ';\n var def_callRuleValidate = out;\n out = $$outStack.pop();\n if ($rDef.errors === false) {\n out += ' ' + ($valid) + ' = ';\n if ($asyncKeyword) {\n out += 'await ';\n }\n out += '' + (def_callRuleValidate) + '; ';\n } else {\n if ($asyncKeyword) {\n $ruleErrs = 'customErrors' + $lvl;\n out += ' var ' + ($ruleErrs) + ' = null; try { ' + ($valid) + ' = await ' + (def_callRuleValidate) + '; } catch (e) { ' + ($valid) + ' = false; if (e instanceof ValidationError) ' + ($ruleErrs) + ' = e.errors; else throw e; } ';\n } else {\n out += ' ' + ($ruleErrs) + ' = null; ' + ($valid) + ' = ' + (def_callRuleValidate) + '; ';\n }\n }\n }\n if ($rDef.modifying) {\n out += ' if (' + ($parentData) + ') ' + ($data) + ' = ' + ($parentData) + '[' + ($parentDataProperty) + '];';\n }\n out += '' + ($closingBraces);\n if ($rDef.valid) {\n if ($breakOnError) {\n out += ' if (true) { ';\n }\n } else {\n out += ' if ( ';\n if ($rDef.valid === undefined) {\n out += ' !';\n if ($macro) {\n out += '' + ($nextValid);\n } else {\n out += '' + ($valid);\n }\n } else {\n out += ' ' + (!$rDef.valid) + ' ';\n }\n out += ') { ';\n $errorKeyword = $rule.keyword;\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = '';\n var $$outStack = $$outStack || [];\n $$outStack.push(out);\n out = ''; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n var __err = out;\n out = $$outStack.pop();\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError([' + (__err) + ']); ';\n } else {\n out += ' validate.errors = [' + (__err) + ']; return false; ';\n }\n } else {\n out += ' var err = ' + (__err) + '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n }\n var def_customError = out;\n out = $$outStack.pop();\n if ($inline) {\n if ($rDef.errors) {\n if ($rDef.errors != 'full') {\n out += ' for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } ';\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (' + ($errs) + ' == errors) { ' + (def_customError) + ' } else { for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; if (' + ($ruleErr) + '.schemaPath === undefined) { ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; } ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } ';\n }\n }\n } else if ($macro) {\n out += ' var err = '; /* istanbul ignore else */\n if (it.createErrors !== false) {\n out += ' { keyword: \\'' + ($errorKeyword || 'custom') + '\\' , dataPath: (dataPath || \\'\\') + ' + (it.errorPath) + ' , schemaPath: ' + (it.util.toQuotedString($errSchemaPath)) + ' , params: { keyword: \\'' + ($rule.keyword) + '\\' } ';\n if (it.opts.messages !== false) {\n out += ' , message: \\'should pass \"' + ($rule.keyword) + '\" keyword validation\\' ';\n }\n if (it.opts.verbose) {\n out += ' , schema: validate.schema' + ($schemaPath) + ' , parentSchema: validate.schema' + (it.schemaPath) + ' , data: ' + ($data) + ' ';\n }\n out += ' } ';\n } else {\n out += ' {} ';\n }\n out += '; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ';\n if (!it.compositeRule && $breakOnError) {\n /* istanbul ignore if */\n if (it.async) {\n out += ' throw new ValidationError(vErrors); ';\n } else {\n out += ' validate.errors = vErrors; return false; ';\n }\n }\n } else {\n if ($rDef.errors === false) {\n out += ' ' + (def_customError) + ' ';\n } else {\n out += ' if (Array.isArray(' + ($ruleErrs) + ')) { if (vErrors === null) vErrors = ' + ($ruleErrs) + '; else vErrors = vErrors.concat(' + ($ruleErrs) + '); errors = vErrors.length; for (var ' + ($i) + '=' + ($errs) + '; ' + ($i) + '<errors; ' + ($i) + '++) { var ' + ($ruleErr) + ' = vErrors[' + ($i) + ']; if (' + ($ruleErr) + '.dataPath === undefined) ' + ($ruleErr) + '.dataPath = (dataPath || \\'\\') + ' + (it.errorPath) + '; ' + ($ruleErr) + '.schemaPath = \"' + ($errSchemaPath) + '\"; ';\n if (it.opts.verbose) {\n out += ' ' + ($ruleErr) + '.schema = ' + ($schemaValue) + '; ' + ($ruleErr) + '.data = ' + ($data) + '; ';\n }\n out += ' } } else { ' + (def_customError) + ' } ';\n }\n }\n out += ' } ';\n if ($breakOnError) {\n out += ' else { ';\n }\n }\n return out;\n}\n","'use strict';\n\nvar metaSchema = require('./refs/json-schema-draft-07.json');\n\nmodule.exports = {\n $id: 'https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js',\n definitions: {\n simpleTypes: metaSchema.definitions.simpleTypes\n },\n type: 'object',\n dependencies: {\n schema: ['validate'],\n $data: ['validate'],\n statements: ['inline'],\n valid: {not: {required: ['macro']}}\n },\n properties: {\n type: metaSchema.properties.type,\n schema: {type: 'boolean'},\n statements: {type: 'boolean'},\n dependencies: {\n type: 'array',\n items: {type: 'string'}\n },\n metaSchema: {type: 'object'},\n modifying: {type: 'boolean'},\n valid: {type: 'boolean'},\n $data: {type: 'boolean'},\n async: {type: 'boolean'},\n errors: {\n anyOf: [\n {type: 'boolean'},\n {const: 'full'}\n ]\n }\n }\n};\n","'use strict';\n\nvar compileSchema = require('./compile')\n , resolve = require('./compile/resolve')\n , Cache = require('./cache')\n , SchemaObject = require('./compile/schema_obj')\n , stableStringify = require('fast-json-stable-stringify')\n , formats = require('./compile/formats')\n , rules = require('./compile/rules')\n , $dataMetaSchema = require('./data')\n , util = require('./compile/util');\n\nmodule.exports = Ajv;\n\nAjv.prototype.validate = validate;\nAjv.prototype.compile = compile;\nAjv.prototype.addSchema = addSchema;\nAjv.prototype.addMetaSchema = addMetaSchema;\nAjv.prototype.validateSchema = validateSchema;\nAjv.prototype.getSchema = getSchema;\nAjv.prototype.removeSchema = removeSchema;\nAjv.prototype.addFormat = addFormat;\nAjv.prototype.errorsText = errorsText;\n\nAjv.prototype._addSchema = _addSchema;\nAjv.prototype._compile = _compile;\n\nAjv.prototype.compileAsync = require('./compile/async');\nvar customKeyword = require('./keyword');\nAjv.prototype.addKeyword = customKeyword.add;\nAjv.prototype.getKeyword = customKeyword.get;\nAjv.prototype.removeKeyword = customKeyword.remove;\nAjv.prototype.validateKeyword = customKeyword.validate;\n\nvar errorClasses = require('./compile/error_classes');\nAjv.ValidationError = errorClasses.Validation;\nAjv.MissingRefError = errorClasses.MissingRef;\nAjv.$dataMetaSchema = $dataMetaSchema;\n\nvar META_SCHEMA_ID = 'http://json-schema.org/draft-07/schema';\n\nvar META_IGNORE_OPTIONS = [ 'removeAdditional', 'useDefaults', 'coerceTypes', 'strictDefaults' ];\nvar META_SUPPORT_DATA = ['/properties'];\n\n/**\n * Creates validator instance.\n * Usage: `Ajv(opts)`\n * @param {Object} opts optional options\n * @return {Object} ajv instance\n */\nfunction Ajv(opts) {\n if (!(this instanceof Ajv)) return new Ajv(opts);\n opts = this._opts = util.copy(opts) || {};\n setLogger(this);\n this._schemas = {};\n this._refs = {};\n this._fragments = {};\n this._formats = formats(opts.format);\n\n this._cache = opts.cache || new Cache;\n this._loadingSchemas = {};\n this._compilations = [];\n this.RULES = rules();\n this._getId = chooseGetId(opts);\n\n opts.loopRequired = opts.loopRequired || Infinity;\n if (opts.errorDataPath == 'property') opts._errorDataPathProperty = true;\n if (opts.serialize === undefined) opts.serialize = stableStringify;\n this._metaOpts = getMetaSchemaOptions(this);\n\n if (opts.formats) addInitialFormats(this);\n if (opts.keywords) addInitialKeywords(this);\n addDefaultMetaSchema(this);\n if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta);\n if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}});\n addInitialSchemas(this);\n}\n\n\n\n/**\n * Validate data using schema\n * Schema will be compiled and cached (using serialized JSON as key. [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize.\n * @this Ajv\n * @param {String|Object} schemaKeyRef key, ref or schema object\n * @param {Any} data to be validated\n * @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`).\n */\nfunction validate(schemaKeyRef, data) {\n var v;\n if (typeof schemaKeyRef == 'string') {\n v = this.getSchema(schemaKeyRef);\n if (!v) throw new Error('no schema with key or ref \"' + schemaKeyRef + '\"');\n } else {\n var schemaObj = this._addSchema(schemaKeyRef);\n v = schemaObj.validate || this._compile(schemaObj);\n }\n\n var valid = v(data);\n if (v.$async !== true) this.errors = v.errors;\n return valid;\n}\n\n\n/**\n * Create validating function for passed schema.\n * @this Ajv\n * @param {Object} schema schema object\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally to compile meta schemas of custom keywords.\n * @return {Function} validating function\n */\nfunction compile(schema, _meta) {\n var schemaObj = this._addSchema(schema, undefined, _meta);\n return schemaObj.validate || this._compile(schemaObj);\n}\n\n\n/**\n * Adds schema to the instance.\n * @this Ajv\n * @param {Object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored.\n * @param {String} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n * @param {Boolean} _skipValidation true to skip schema validation. Used internally, option validateSchema should be used instead.\n * @param {Boolean} _meta true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n * @return {Ajv} this for method chaining\n */\nfunction addSchema(schema, key, _skipValidation, _meta) {\n if (Array.isArray(schema)){\n for (var i=0; i<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);\n return this;\n }\n var id = this._getId(schema);\n if (id !== undefined && typeof id != 'string')\n throw new Error('schema id must be string');\n key = resolve.normalizeId(key || id);\n checkUnique(this, key);\n this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);\n return this;\n}\n\n\n/**\n * Add schema that will be used to validate other schemas\n * options in META_IGNORE_OPTIONS are alway set to false\n * @this Ajv\n * @param {Object} schema schema object\n * @param {String} key optional schema key\n * @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema\n * @return {Ajv} this for method chaining\n */\nfunction addMetaSchema(schema, key, skipValidation) {\n this.addSchema(schema, key, skipValidation, true);\n return this;\n}\n\n\n/**\n * Validate schema\n * @this Ajv\n * @param {Object} schema schema to validate\n * @param {Boolean} throwOrLogError pass true to throw (or log) an error if invalid\n * @return {Boolean} true if schema is valid\n */\nfunction validateSchema(schema, throwOrLogError) {\n var $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != 'string')\n throw new Error('$schema must be a string');\n $schema = $schema || this._opts.defaultMeta || defaultMeta(this);\n if (!$schema) {\n this.logger.warn('meta-schema not available');\n this.errors = null;\n return true;\n }\n var valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n var message = 'schema is invalid: ' + this.errorsText();\n if (this._opts.validateSchema == 'log') this.logger.error(message);\n else throw new Error(message);\n }\n return valid;\n}\n\n\nfunction defaultMeta(self) {\n var meta = self._opts.meta;\n self._opts.defaultMeta = typeof meta == 'object'\n ? self._getId(meta) || meta\n : self.getSchema(META_SCHEMA_ID)\n ? META_SCHEMA_ID\n : undefined;\n return self._opts.defaultMeta;\n}\n\n\n/**\n * Get compiled schema from the instance by `key` or `ref`.\n * @this Ajv\n * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).\n * @return {Function} schema validating function (with property `schema`).\n */\nfunction getSchema(keyRef) {\n var schemaObj = _getSchemaObj(this, keyRef);\n switch (typeof schemaObj) {\n case 'object': return schemaObj.validate || this._compile(schemaObj);\n case 'string': return this.getSchema(schemaObj);\n case 'undefined': return _getSchemaFragment(this, keyRef);\n }\n}\n\n\nfunction _getSchemaFragment(self, ref) {\n var res = resolve.schema.call(self, { schema: {} }, ref);\n if (res) {\n var schema = res.schema\n , root = res.root\n , baseId = res.baseId;\n var v = compileSchema.call(self, schema, root, undefined, baseId);\n self._fragments[ref] = new SchemaObject({\n ref: ref,\n fragment: true,\n schema: schema,\n root: root,\n baseId: baseId,\n validate: v\n });\n return v;\n }\n}\n\n\nfunction _getSchemaObj(self, keyRef) {\n keyRef = resolve.normalizeId(keyRef);\n return self._schemas[keyRef] || self._refs[keyRef] || self._fragments[keyRef];\n}\n\n\n/**\n * Remove cached schema(s).\n * If no parameter is passed all schemas but meta-schemas are removed.\n * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n * @this Ajv\n * @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object\n * @return {Ajv} this for method chaining\n */\nfunction removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n _removeAllSchemas(this, this._schemas, schemaKeyRef);\n _removeAllSchemas(this, this._refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case 'undefined':\n _removeAllSchemas(this, this._schemas);\n _removeAllSchemas(this, this._refs);\n this._cache.clear();\n return this;\n case 'string':\n var schemaObj = _getSchemaObj(this, schemaKeyRef);\n if (schemaObj) this._cache.del(schemaObj.cacheKey);\n delete this._schemas[schemaKeyRef];\n delete this._refs[schemaKeyRef];\n return this;\n case 'object':\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;\n this._cache.del(cacheKey);\n var id = this._getId(schemaKeyRef);\n if (id) {\n id = resolve.normalizeId(id);\n delete this._schemas[id];\n delete this._refs[id];\n }\n }\n return this;\n}\n\n\nfunction _removeAllSchemas(self, schemas, regex) {\n for (var keyRef in schemas) {\n var schemaObj = schemas[keyRef];\n if (!schemaObj.meta && (!regex || regex.test(keyRef))) {\n self._cache.del(schemaObj.cacheKey);\n delete schemas[keyRef];\n }\n }\n}\n\n\n/* @this Ajv */\nfunction _addSchema(schema, skipValidation, meta, shouldAddSchema) {\n if (typeof schema != 'object' && typeof schema != 'boolean')\n throw new Error('schema should be object or boolean');\n var serialize = this._opts.serialize;\n var cacheKey = serialize ? serialize(schema) : schema;\n var cached = this._cache.get(cacheKey);\n if (cached) return cached;\n\n shouldAddSchema = shouldAddSchema || this._opts.addUsedSchema !== false;\n\n var id = resolve.normalizeId(this._getId(schema));\n if (id && shouldAddSchema) checkUnique(this, id);\n\n var willValidate = this._opts.validateSchema !== false && !skipValidation;\n var recursiveMeta;\n if (willValidate && !(recursiveMeta = id && id == resolve.normalizeId(schema.$schema)))\n this.validateSchema(schema, true);\n\n var localRefs = resolve.ids.call(this, schema);\n\n var schemaObj = new SchemaObject({\n id: id,\n schema: schema,\n localRefs: localRefs,\n cacheKey: cacheKey,\n meta: meta\n });\n\n if (id[0] != '#' && shouldAddSchema) this._refs[id] = schemaObj;\n this._cache.put(cacheKey, schemaObj);\n\n if (willValidate && recursiveMeta) this.validateSchema(schema, true);\n\n return schemaObj;\n}\n\n\n/* @this Ajv */\nfunction _compile(schemaObj, root) {\n if (schemaObj.compiling) {\n schemaObj.validate = callValidate;\n callValidate.schema = schemaObj.schema;\n callValidate.errors = null;\n callValidate.root = root ? root : callValidate;\n if (schemaObj.schema.$async === true)\n callValidate.$async = true;\n return callValidate;\n }\n schemaObj.compiling = true;\n\n var currentOpts;\n if (schemaObj.meta) {\n currentOpts = this._opts;\n this._opts = this._metaOpts;\n }\n\n var v;\n try { v = compileSchema.call(this, schemaObj.schema, root, schemaObj.localRefs); }\n catch(e) {\n delete schemaObj.validate;\n throw e;\n }\n finally {\n schemaObj.compiling = false;\n if (schemaObj.meta) this._opts = currentOpts;\n }\n\n schemaObj.validate = v;\n schemaObj.refs = v.refs;\n schemaObj.refVal = v.refVal;\n schemaObj.root = v.root;\n return v;\n\n\n /* @this {*} - custom context, see passContext option */\n function callValidate() {\n /* jshint validthis: true */\n var _validate = schemaObj.validate;\n var result = _validate.apply(this, arguments);\n callValidate.errors = _validate.errors;\n return result;\n }\n}\n\n\nfunction chooseGetId(opts) {\n switch (opts.schemaId) {\n case 'auto': return _get$IdOrId;\n case 'id': return _getId;\n default: return _get$Id;\n }\n}\n\n/* @this Ajv */\nfunction _getId(schema) {\n if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);\n return schema.id;\n}\n\n/* @this Ajv */\nfunction _get$Id(schema) {\n if (schema.id) this.logger.warn('schema id ignored', schema.id);\n return schema.$id;\n}\n\n\nfunction _get$IdOrId(schema) {\n if (schema.$id && schema.id && schema.$id != schema.id)\n throw new Error('schema $id is different from id');\n return schema.$id || schema.id;\n}\n\n\n/**\n * Convert array of error message objects to string\n * @this Ajv\n * @param {Array<Object>} errors optional array of validation errors, if not passed errors from the instance are used.\n * @param {Object} options optional options with properties `separator` and `dataVar`.\n * @return {String} human readable string with all errors descriptions\n */\nfunction errorsText(errors, options) {\n errors = errors || this.errors;\n if (!errors) return 'No errors';\n options = options || {};\n var separator = options.separator === undefined ? ', ' : options.separator;\n var dataVar = options.dataVar === undefined ? 'data' : options.dataVar;\n\n var text = '';\n for (var i=0; i<errors.length; i++) {\n var e = errors[i];\n if (e) text += dataVar + e.dataPath + ' ' + e.message + separator;\n }\n return text.slice(0, -separator.length);\n}\n\n\n/**\n * Add custom format\n * @this Ajv\n * @param {String} name format name\n * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)\n * @return {Ajv} this for method chaining\n */\nfunction addFormat(name, format) {\n if (typeof format == 'string') format = new RegExp(format);\n this._formats[name] = format;\n return this;\n}\n\n\nfunction addDefaultMetaSchema(self) {\n var $dataSchema;\n if (self._opts.$data) {\n $dataSchema = require('./refs/data.json');\n self.addMetaSchema($dataSchema, $dataSchema.$id, true);\n }\n if (self._opts.meta === false) return;\n var metaSchema = require('./refs/json-schema-draft-07.json');\n if (self._opts.$data) metaSchema = $dataMetaSchema(metaSchema, META_SUPPORT_DATA);\n self.addMetaSchema(metaSchema, META_SCHEMA_ID, true);\n self._refs['http://json-schema.org/schema'] = META_SCHEMA_ID;\n}\n\n\nfunction addInitialSchemas(self) {\n var optsSchemas = self._opts.schemas;\n if (!optsSchemas) return;\n if (Array.isArray(optsSchemas)) self.addSchema(optsSchemas);\n else for (var key in optsSchemas) self.addSchema(optsSchemas[key], key);\n}\n\n\nfunction addInitialFormats(self) {\n for (var name in self._opts.formats) {\n var format = self._opts.formats[name];\n self.addFormat(name, format);\n }\n}\n\n\nfunction addInitialKeywords(self) {\n for (var name in self._opts.keywords) {\n var keyword = self._opts.keywords[name];\n self.addKeyword(name, keyword);\n }\n}\n\n\nfunction checkUnique(self, id) {\n if (self._schemas[id] || self._refs[id])\n throw new Error('schema with key or id \"' + id + '\" already exists');\n}\n\n\nfunction getMetaSchemaOptions(self) {\n var metaOpts = util.copy(self._opts);\n for (var i=0; i<META_IGNORE_OPTIONS.length; i++)\n delete metaOpts[META_IGNORE_OPTIONS[i]];\n return metaOpts;\n}\n\n\nfunction setLogger(self) {\n var logger = self._opts.logger;\n if (logger === false) {\n self.logger = {log: noop, warn: noop, error: noop};\n } else {\n if (logger === undefined) logger = console;\n if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))\n throw new Error('logger must implement log, warn and error methods');\n self.logger = logger;\n }\n}\n\n\nfunction noop() {}\n","'use strict';\n\n\nvar Cache = module.exports = function Cache() {\n this._cache = {};\n};\n\n\nCache.prototype.put = function Cache_put(key, value) {\n this._cache[key] = value;\n};\n\n\nCache.prototype.get = function Cache_get(key) {\n return this._cache[key];\n};\n\n\nCache.prototype.del = function Cache_del(key) {\n delete this._cache[key];\n};\n\n\nCache.prototype.clear = function Cache_clear() {\n this._cache = {};\n};\n","'use strict';\n\nvar util = require('./util');\n\nvar DATE = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/;\nvar DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31];\nvar TIME = /^(\\d\\d):(\\d\\d):(\\d\\d)(\\.\\d+)?(z|[+-]\\d\\d(?::?\\d\\d)?)?$/i;\nvar HOSTNAME = /^(?=.{1,253}\\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\\.?$/i;\nvar URI = /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\\?(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\nvar URIREF = /^(?:[a-z][a-z0-9+\\-.]*:)?(?:\\/?\\/(?:(?:[a-z0-9\\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\\.[a-z0-9\\-._~!$&'()*+,;=:]+)\\]|(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|(?:[a-z0-9\\-._~!$&'\"()*+,;=]|%[0-9a-f]{2})*)(?::\\d*)?(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*|\\/(?:(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})+(?:\\/(?:[a-z0-9\\-._~!$&'\"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\\?(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\\-._~!$&'\"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;\n// uri-template: https://tools.ietf.org/html/rfc6570\nvar URITEMPLATE = /^(?:(?:[^\\x00-\\x20\"'<>%\\\\^`{|}]|%[0-9a-f]{2})|\\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\\*)?)*\\})*$/i;\n// For the source: https://gist.github.com/dperini/729294\n// For test cases: https://mathiasbynens.be/demo/url-regex\n// @todo Delete current URL in favour of the commented out URL rule when this issue is fixed https://github.com/eslint/eslint/issues/7983.\n// var URL = /^(?:(?:https?|ftp):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\nvar URL = /^(?:(?:http[s\\u017F]?|ftp):\\/\\/)(?:(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+(?::(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?@)?(?:(?!10(?:\\.[0-9]{1,3}){3})(?!127(?:\\.[0-9]{1,3}){3})(?!169\\.254(?:\\.[0-9]{1,3}){2})(?!192\\.168(?:\\.[0-9]{1,3}){2})(?!172\\.(?:1[6-9]|2[0-9]|3[01])(?:\\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)(?:\\.(?:(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+-)*(?:[0-9a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])+)*(?:\\.(?:(?:[a-z\\xA1-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\\/(?:[\\0-\\x08\\x0E-\\x1F!-\\x9F\\xA1-\\u167F\\u1681-\\u1FFF\\u200B-\\u2027\\u202A-\\u202E\\u2030-\\u205E\\u2060-\\u2FFF\\u3001-\\uD7FF\\uE000-\\uFEFE\\uFF00-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*)?$/i;\nvar UUID = /^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;\nvar JSON_POINTER = /^(?:\\/(?:[^~/]|~0|~1)*)*$/;\nvar JSON_POINTER_URI_FRAGMENT = /^#(?:\\/(?:[a-z0-9_\\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;\nvar RELATIVE_JSON_POINTER = /^(?:0|[1-9][0-9]*)(?:#|(?:\\/(?:[^~/]|~0|~1)*)*)$/;\n\n\nmodule.exports = formats;\n\nfunction formats(mode) {\n mode = mode == 'full' ? 'full' : 'fast';\n return util.copy(formats[mode]);\n}\n\n\nformats.fast = {\n // date: http://tools.ietf.org/html/rfc3339#section-5.6\n date: /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d$/,\n // date-time: http://tools.ietf.org/html/rfc3339#section-5.6\n time: /^(?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)?$/i,\n 'date-time': /^\\d\\d\\d\\d-[0-1]\\d-[0-3]\\d[t\\s](?:[0-2]\\d:[0-5]\\d:[0-5]\\d|23:59:60)(?:\\.\\d+)?(?:z|[+-]\\d\\d(?::?\\d\\d)?)$/i,\n // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js\n uri: /^(?:[a-z][a-z0-9+\\-.]*:)(?:\\/?\\/)?[^\\s]*$/i,\n 'uri-reference': /^(?:(?:[a-z][a-z0-9+\\-.]*:)?\\/?\\/)?(?:[^\\\\\\s#][^\\s#]*)?(?:#[^\\\\\\s]*)?$/i,\n 'uri-template': URITEMPLATE,\n url: URL,\n // email (sources from jsen validator):\n // http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address#answer-8829363\n // http://www.w3.org/TR/html5/forms.html#valid-e-mail-address (search for 'willful violation')\n email: /^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,\n hostname: HOSTNAME,\n // optimized https://www.safaribooksonline.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n // optimized http://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n // uuid: http://tools.ietf.org/html/rfc4122\n uuid: UUID,\n // JSON-pointer: https://tools.ietf.org/html/rfc6901\n // uri fragment: https://tools.ietf.org/html/rfc3986#appendix-A\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n // relative JSON-pointer: http://tools.ietf.org/html/draft-luff-relative-json-pointer-00\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nformats.full = {\n date: date,\n time: time,\n 'date-time': date_time,\n uri: uri,\n 'uri-reference': URIREF,\n 'uri-template': URITEMPLATE,\n url: URL,\n email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,\n hostname: HOSTNAME,\n ipv4: /^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipv6: /^\\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(?:%.+)?\\s*$/i,\n regex: regex,\n uuid: UUID,\n 'json-pointer': JSON_POINTER,\n 'json-pointer-uri-fragment': JSON_POINTER_URI_FRAGMENT,\n 'relative-json-pointer': RELATIVE_JSON_POINTER\n};\n\n\nfunction isLeapYear(year) {\n // https://tools.ietf.org/html/rfc3339#appendix-C\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\n\nfunction date(str) {\n // full-date from http://tools.ietf.org/html/rfc3339#section-5.6\n var matches = str.match(DATE);\n if (!matches) return false;\n\n var year = +matches[1];\n var month = +matches[2];\n var day = +matches[3];\n\n return month >= 1 && month <= 12 && day >= 1 &&\n day <= (month == 2 && isLeapYear(year) ? 29 : DAYS[month]);\n}\n\n\nfunction time(str, full) {\n var matches = str.match(TIME);\n if (!matches) return false;\n\n var hour = matches[1];\n var minute = matches[2];\n var second = matches[3];\n var timeZone = matches[5];\n return ((hour <= 23 && minute <= 59 && second <= 59) ||\n (hour == 23 && minute == 59 && second == 60)) &&\n (!full || timeZone);\n}\n\n\nvar DATE_TIME_SEPARATOR = /t|\\s/i;\nfunction date_time(str) {\n // http://tools.ietf.org/html/rfc3339#section-5.6\n var dateTime = str.split(DATE_TIME_SEPARATOR);\n return dateTime.length == 2 && date(dateTime[0]) && time(dateTime[1], true);\n}\n\n\nvar NOT_URI_FRAGMENT = /\\/|:/;\nfunction uri(str) {\n // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required \".\"\n return NOT_URI_FRAGMENT.test(str) && URI.test(str);\n}\n\n\nvar Z_ANCHOR = /[^\\\\]\\\\Z/;\nfunction regex(str) {\n if (Z_ANCHOR.test(str)) return false;\n try {\n new RegExp(str);\n return true;\n } catch(e) {\n return false;\n }\n}\n","'use strict';\n\nvar KEYWORDS = [\n 'multipleOf',\n 'maximum',\n 'exclusiveMaximum',\n 'minimum',\n 'exclusiveMinimum',\n 'maxLength',\n 'minLength',\n 'pattern',\n 'additionalItems',\n 'maxItems',\n 'minItems',\n 'uniqueItems',\n 'maxProperties',\n 'minProperties',\n 'required',\n 'additionalProperties',\n 'enum',\n 'format',\n 'const'\n];\n\nmodule.exports = function (metaSchema, keywordsJsonPointers) {\n for (var i=0; i<keywordsJsonPointers.length; i++) {\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n var segments = keywordsJsonPointers[i].split('/');\n var keywords = metaSchema;\n var j;\n for (j=1; j<segments.length; j++)\n keywords = keywords[segments[j]];\n\n for (j=0; j<KEYWORDS.length; j++) {\n var key = KEYWORDS[j];\n var schema = keywords[key];\n if (schema) {\n keywords[key] = {\n anyOf: [\n schema,\n { $ref: 'https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#' }\n ]\n };\n }\n }\n }\n\n return metaSchema;\n};\n","import * as _Ajv from \"ajv\";\nimport * as DDL from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\n\nconst Ajv = (_Ajv as any).default || _Ajv;\n\nexport const ddl2Schema: object = _ddl2Schema;\n\nconst options: _Ajv.Options = {\n allErrors: false,\n verbose: true,\n jsonPointers: false\n};\n\nfunction doValidate(ddl: DDL.DDLSchema | DDL2.Schema, schema: DDL.DDLSchema | DDL2.Schema) {\n const ajv: _Ajv.Ajv = new Ajv(options);\n const validate = ajv.compile(schema);\n const success = validate(ddl);\n return {\n success,\n errors: validate.errors\n };\n}\n\n/* Not needed ---\n// @ts-ignore\nimport * as ddlSchema from \"../schema/v1.json\";\n\nexport function validate(ddl: DDL.DDLSchema) {\n return doValidate(ddl, ddlSchema);\n}\n*/\n\n// @ts-ignore\nimport * as _ddl2Schema from \"../schema/v2.json\";\n\nexport function validate2(ddl: DDL2.Schema) {\n return doValidate(ddl, _ddl2Schema);\n}\n","export * from \"./__package__\";\nimport * as DDL1 from \"./ddl/v1\";\nimport * as DDL2 from \"./ddl/v2\";\nexport * from \"./upgrade\";\nexport * from \"./validate\";\n\nexport { DDL1, DDL2 };\n\nexport function isDDL2Schema(ref: DDL1.DDLSchema | DDL2.Schema): ref is DDL2.Schema {\n return (ref as DDL2.Schema).version !== undefined && (ref as DDL2.Schema).datasources !== undefined && (ref as DDL2.Schema).dataviews !== undefined;\n}\n","import { PropertyExt, publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { Element, ElementContainer } from \"../model/element\";\nimport { Activity, IActivityError, ReferencedFields } from \"./activity\";\n\nfunction createFilter(condition: DDL2.IMappingConditionType, lf: string, val: string | number): (localRow: any) => boolean {\n const isString = typeof val === \"string\";\n switch (condition) {\n case \"==\":\n return (localRow) => isString && typeof localRow[lf] === \"string\" ? localRow[lf].trim() === val : localRow[lf] === val;\n case \"!=\":\n return (localRow) => isString && typeof localRow[lf] === \"string\" ? localRow[lf].trim() !== val : localRow[lf] !== val;\n case \"<\":\n return (localRow) => localRow[lf] < val;\n case \"<=\":\n return (localRow) => localRow[lf] <= val;\n case \">\":\n return (localRow) => localRow[lf] > val;\n case \">=\":\n return (localRow) => localRow[lf] >= val;\n default:\n throw new Error(`Unknown filter condition: ${condition}`);\n }\n}\n\nexport class ColumnMapping extends PropertyExt {\n private _owner: RemoteFilter;\n\n @publish(null, \"set\", \"Filter Fields\", function (this: ColumnMapping) { return this.sourceOutFields(); }, {\n optional: true,\n disable: (w: ColumnMapping): boolean => !w._owner.source(),\n validate: (w: ColumnMapping): boolean => w.sourceOutFields().indexOf(w.remoteField()) >= 0\n })\n remoteField: publish<this, string>;\n remoteField_exists: () => boolean;\n remoteField_valid: () => boolean;\n @publish(null, \"set\", \"Local Fields\", function (this: ColumnMapping) { return this.localFields(); }, {\n optional: true,\n disable: (w: ColumnMapping): boolean => !w._owner.source(),\n validate: (w: ColumnMapping): boolean => w.localFields().indexOf(w.localField()) >= 0\n })\n localField: publish<this, string>;\n localField_exists: () => boolean;\n localField_valid: () => boolean;\n @publish(\"==\", \"set\", \"Filter Fields\", [\"==\", \"!=\", \">\", \">=\", \"<\", \"<=\", \"range\", \"in\"])\n condition: publish<this, DDL2.IMappingConditionType>;\n @publish(false, \"boolean\", \"Ignore null filters\")\n nullable: publish<this, boolean>;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.remoteField_valid()) {\n retVal.push({\n source: `${prefix}.remoteField`,\n msg: `Invalid remoteField: \"${this.remoteField()}\"`,\n hint: `expected: ${JSON.stringify(this.sourceOutFields())}`\n });\n }\n if (!this.localField_valid()) {\n retVal.push({\n source: `${prefix}.localField`,\n msg: `Invalid localField: \"${this.localField()}\"`,\n hint: `expected: ${JSON.stringify(this.localFields())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): RemoteFilter;\n owner(_: RemoteFilter): this;\n owner(_?: RemoteFilter): RemoteFilter | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return this.localField_exists() || this.remoteField_exists();\n }\n\n toDDL(): DDL2.IMapping {\n return {\n remoteFieldID: this.remoteField(),\n localFieldID: this.localField(),\n condition: this.condition(),\n nullable: this.nullable()\n };\n }\n\n fromDDL(ddl: DDL2.IMapping): this {\n return this\n .remoteField(ddl.remoteFieldID)\n .localField(ddl.localFieldID)\n .condition(ddl.condition)\n .nullable(ddl.nullable)\n ;\n }\n\n static fromDDL(ddl: DDL2.IMapping): ColumnMapping {\n return new ColumnMapping().fromDDL(ddl);\n }\n\n hash() {\n return hashSum({\n remoteField: this.remoteField(),\n localField: this.localField(),\n condition: this.condition(),\n nullable: this.nullable()\n });\n }\n\n localFields(): string[] {\n return this._owner.inFields().map(field => field.id);\n }\n\n sourceOutFields(): string[] {\n return this._owner.sourceOutFields().map(field => field.id);\n }\n\n remoteValues(filterSelection: any[]): Array<number | string> {\n const rf = this.remoteField();\n return filterSelection.map(sel => {\n const retVal = sel[rf];\n if (typeof retVal === \"string\") {\n return retVal.trim();\n }\n return retVal;\n });\n }\n\n createFilterDescription(filterSelection: any[]): string {\n switch (this.condition()) {\n case \"in\":\n case \"range\":\n return `${this.localField()} ${this.condition()} [${this.remoteValues(filterSelection).join(\", \")}]`;\n default:\n return `${this.localField()} ${this.condition()} ${this.remoteValues(filterSelection)[0]}`;\n }\n }\n\n createFilter(filterSelection: any[]): (localRow: any) => boolean {\n const lf = this.localField();\n const fsArr = this.remoteValues(filterSelection);\n switch (this.condition()) {\n case \"range\":\n if (this.nullable() && (fsArr.length < 2 || fsArr[0] === fsArr[1])) {\n return (localRow) => true;\n }\n return (localRow) => localRow[lf] >= fsArr[0] && localRow[lf] <= fsArr[1];\n case \"in\":\n if (this.nullable() && fsArr.length === 0) {\n return (localRow) => true;\n }\n return (localRow) => fsArr.some(fs => typeof localRow[lf] === \"string\" ? localRow[lf].trim() === fs : localRow[lf] === fs);\n default:\n const fs0 = fsArr[0];\n if (this.nullable() && (fs0 === undefined || fs0 === null || fs0 === \"\")) {\n return (localRow) => true;\n }\n return createFilter(this.condition(), lf, fs0);\n }\n }\n}\nColumnMapping.prototype._class += \" ColumnMapping\";\n\nexport class RemoteFilter extends PropertyExt {\n private _owner: Filters;\n\n @publish(null, \"set\", \"Activity\", function (this: RemoteFilter) { return this.visualizationIDs(); }, {\n optional: true,\n validate: (w: RemoteFilter): boolean => w.visualizationIDs().indexOf(w.source()) >= 0\n })\n source: publish<this, string>;\n source_exists: () => boolean;\n source_valid: () => boolean;\n @publish([], \"propertyArray\", \"Mappings\", null, { autoExpand: ColumnMapping })\n mappings: publish<this, ColumnMapping[]>;\n\n validate(prefix: string): IActivityError[] {\n let retVal: IActivityError[] = [];\n if (!this.source_valid()) {\n retVal.push({\n source: `${prefix}.source.${this.source()}`,\n msg: `Invalid source: \"${this.source()}\"`,\n hint: `expected: ${JSON.stringify(this.visualizationIDs())}`\n });\n }\n if (this.source_exists() && this.validMappings().length === 0) {\n retVal.push({\n source: `${prefix}.source.${this.source()}`,\n msg: `Invalid mappings: \"${this.source()}\"`,\n hint: \"expected minimum of 1 mapping\"\n });\n }\n for (const mapping of this.validMappings()) {\n retVal = retVal.concat(mapping.validate(`${prefix}.${this.source()}.mappings`));\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): Filters;\n owner(_: Filters): this;\n owner(_?: Filters): Filters | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.source() && this.validMappings().length > 0;\n }\n\n toDDL(): DDL2.IFilterCondition {\n return {\n viewID: this.source(),\n mappings: this.ddlMappings()\n };\n }\n\n fromDDL(ddl: DDL2.IFilterCondition): this {\n return this\n .source(ddl.viewID)\n .ddlMappings(ddl.mappings)\n ;\n }\n\n static fromDDL(ddl: DDL2.IFilterCondition): RemoteFilter {\n return new RemoteFilter().fromDDL(ddl);\n }\n\n ddlMappings(): DDL2.IMapping[];\n ddlMappings(_: DDL2.IMapping[]): this;\n ddlMappings(_?: DDL2.IMapping[]): DDL2.IMapping[] | this {\n if (!arguments.length) return this.validMappings().map(mapping => mapping.toDDL());\n this.mappings(_.map(mapping => ColumnMapping.fromDDL(mapping)));\n return this;\n }\n\n visualizationIDs() {\n return this._owner.visualizationIDs();\n }\n\n hash(): string {\n return hashSum({\n source: this.source(),\n mappings: this.validMappings().map(mapping => mapping.hash()),\n selection: this.sourceSelection()\n });\n }\n\n validMappings(): ColumnMapping[] {\n return this.mappings().filter(mapping => mapping.valid());\n }\n\n appendMappings(mappings: Array<{ remoteField: string, localField: string, condition: DDL2.IMappingConditionType }>): this {\n for (const mapping of mappings) {\n this.mappings().push(new ColumnMapping()\n .owner(this)\n .remoteField(mapping.remoteField)\n .localField(mapping.localField)\n .condition(mapping.condition)\n );\n }\n return this;\n }\n\n inFields(): ReadonlyArray<DDL2.IField> {\n return this._owner.inFields();\n }\n\n sourceViz(): Element {\n return this._owner.visualization(this.source());\n }\n\n sourceOutFields(): ReadonlyArray<DDL2.IField> {\n return this.sourceViz().hipiePipeline().selectionFields();\n }\n\n sourceSelection(): any[] {\n return this.sourceViz().selection();\n }\n\n createFilter(): (localRow: any) => boolean {\n const selection = this.sourceSelection();\n const mappingFilters = this.validMappings().map(mapping => mapping.createFilter(selection));\n return (row: object): boolean => mappingFilters.every(mappingFilter => mappingFilter(row));\n }\n\n createFilterDescription(): string {\n const selection = this.sourceSelection();\n const mappingFilterDescs = this.validMappings().map(mapping => mapping.createFilterDescription(selection));\n return mappingFilterDescs.join(\", \");\n }\n}\nRemoteFilter.prototype._class += \" Filter\";\n\nexport class StaticFilter extends PropertyExt {\n private _owner: Filters;\n\n @publish(null, \"set\", \"Local Fields\", function (this: ColumnMapping) { return this.localFields(); }, {\n optional: true,\n validate: (w: StaticFilter): boolean => w.localFields().indexOf(w.localField()) >= 0\n })\n localField: publish<this, string>;\n localField_exists: () => boolean;\n localField_valid: () => boolean;\n @publish(\"==\", \"set\", \"Filter Fields\", [\"==\", \"!=\", \">\", \">=\", \"<\", \"<=\"])\n condition: publish<this, DDL2.IMappingConditionType>;\n @publish(\"\", \"any\", \"Static Value\")\n value: publish<this, string | number | boolean>;\n value_exists: () => boolean;\n value_valid: () => boolean;\n @publish(\"number\", \"set\", \"Static Value Type\", [\"number\", \"string\"])\n valueType: publish<this, \"number\" | \"string\">;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.localField_valid()) {\n retVal.push({\n source: `${prefix}.localField`,\n msg: `Invalid localField: \"${this.localField()}\"`,\n hint: `expected: ${JSON.stringify(this.localFields())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): Filters;\n owner(_: Filters): this;\n owner(_?: Filters): Filters | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n coerceValue(): string | number;\n coerceValue(_: string | number): this;\n coerceValue(_?: string | number): string | number | this {\n if (arguments.length === 0) {\n switch (this.valueType()) {\n case \"number\":\n return +this.value();\n case \"string\":\n default:\n return \"\" + this.value();\n }\n }\n this.value(_);\n if (typeof _ === \"number\") {\n this.valueType(\"number\");\n } else {\n this.valueType(\"string\");\n }\n return this;\n }\n\n valid(): boolean {\n return this.localField_exists() && this.value_exists();\n }\n\n toDDL(): DDL2.IFilterStaticCondition {\n return {\n localFieldID: this.localField(),\n condition: this.condition(),\n value: this.coerceValue()\n };\n }\n\n fromDDL(ddl: DDL2.IFilterStaticCondition): this {\n return this\n .localField(ddl.localFieldID)\n .condition(ddl.condition)\n .coerceValue(ddl.value)\n ;\n }\n\n static fromDDL(ddl: DDL2.IFilterStaticCondition): StaticFilter {\n return new StaticFilter().fromDDL(ddl);\n }\n\n hash() {\n return hashSum({\n localField: this.localField(),\n condition: this.condition(),\n value: this.value(),\n valueType: this.valueType()\n });\n }\n\n localFields(): string[] {\n return this._owner.inFields().map(field => field.id);\n }\n\n createFilterDescription(): string {\n return `${this.localField()} ${this.condition()} ${this.coerceValue()}`;\n }\n\n createFilter(): (localRow: any) => boolean {\n return createFilter(this.condition(), this.localField(), this.coerceValue());\n }\n}\nStaticFilter.prototype._class += \" StaticFilter\";\n\ntype FilterT = RemoteFilter | StaticFilter;\n\nexport class Filters extends Activity {\n static Filter = RemoteFilter;\n static Mapping = ColumnMapping;\n\n @publish([], \"propertyArray\", \"Remote Filter\", null, { autoExpand: RemoteFilter })\n remoteFilter: publish<this, RemoteFilter[]>;\n\n @publish([], \"propertyArray\", \"Static Filter\", null, { autoExpand: StaticFilter })\n staticFilter: publish<this, StaticFilter[]>;\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const filter of this.validFilters()) {\n retVal = retVal.concat(filter.validate(\"filter\"));\n }\n return retVal;\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n }\n\n toDDL(): DDL2.IFilter {\n return {\n type: \"filter\",\n conditions: this.conditions()\n };\n }\n\n fromDDL(ddl: DDL2.IFilter): this {\n return this\n .conditions(ddl.conditions)\n ;\n }\n\n static fromDDL(ec: ElementContainer, ddl: DDL2.IFilter): Filters {\n return new Filters(ec).fromDDL(ddl);\n }\n\n conditions(): DDL2.FilterCondition[];\n conditions(_: DDL2.FilterCondition[]): this;\n conditions(_?: DDL2.FilterCondition[]): DDL2.FilterCondition[] | this {\n if (!arguments.length) return this.validFilters().map(filter => filter.toDDL());\n const remoteFilters: RemoteFilter[] = [];\n const staticFilters: StaticFilter[] = [];\n _.forEach(fc => {\n if (DDL2.isIFilterCondition(fc)) {\n remoteFilters.push(RemoteFilter.fromDDL(fc));\n } else {\n staticFilters.push(StaticFilter.fromDDL(fc));\n }\n });\n this.remoteFilter(remoteFilters);\n this.staticFilter(staticFilters);\n return this;\n }\n\n visualizationIDs(): string[] {\n return this._ec.elementIDs();\n }\n\n visualization(sourceID: string | PropertyExt): Element {\n return this._ec.element(sourceID);\n }\n\n // Activity overrides ---\n hash(): string {\n return hashSum(this.validFilters().map(f => {\n return {\n filter: f.hash()\n };\n }));\n }\n\n exists(): boolean {\n return this.validFilters().length > 0;\n }\n\n updatedBy(): string[] {\n return this.validRemoteFilters().map(filter => filter.source());\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const localFieldIDs: string[] = [];\n for (const filter of this.validRemoteFilters()) {\n const filterSource = filter.sourceViz().hipiePipeline();\n const remoteFieldIDs: string[] = [];\n for (const mapping of filter.validMappings()) {\n localFieldIDs.push(mapping.localField());\n remoteFieldIDs.push(mapping.remoteField());\n }\n filterSource.resolveFields(refs, remoteFieldIDs);\n }\n super.resolveInFields(refs, localFieldIDs);\n }\n\n exec(): Promise<void> {\n return super.exec();\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n if (data.length === 0 || !this.exists()) return data;\n const filters = this.validFilters().map(filter => filter.createFilter());\n return data.filter(row => {\n return filters.every(filter => filter(row));\n });\n }\n\n // --- --- ---\n validRemoteFilters(): RemoteFilter[] {\n return this.remoteFilter().filter(filter => filter.valid());\n }\n\n validStaticFilters(): StaticFilter[] {\n return this.staticFilter().filter(filter => filter.valid());\n }\n\n validFilters(): FilterT[] {\n return [...this.validRemoteFilters(), ...this.validStaticFilters()];\n }\n}\nFilters.prototype._class += \" Filters\";\n","import { PropertyExt, publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { deviation as d3Deviation, max as d3Max, mean as d3Mean, median as d3Median, min as d3Min, sum as d3Sum, variance as d3Variance } from \"d3-array\";\nimport { nest as d3Nest } from \"d3-collection\";\nimport { Activity, IActivityError, ReferencedFields } from \"./activity\";\n\nexport class GroupByColumn extends PropertyExt {\n private _owner: GroupBy;\n\n @publish(undefined, \"set\", \"Field\", function (this: GroupByColumn) { return this.columns(); }, {\n optional: true,\n validate: (w: GroupByColumn): boolean => w.columns().indexOf(w.label()) >= 0\n })\n label: publish<this, string>;\n label_valid: () => boolean;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.label_valid()) {\n retVal.push({\n source: `${prefix}.label`,\n msg: `Invalid label: \"${this.label()}\"`,\n hint: `expected ${JSON.stringify(this.columns())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): GroupBy;\n owner(_: GroupBy): this;\n owner(_?: GroupBy): GroupBy | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.label();\n }\n\n toDDL(): string {\n return this.label();\n }\n\n fromDDL(label: string): this {\n return this\n .label(label)\n ;\n }\n\n static fromDDL(label: string): GroupByColumn {\n return new GroupByColumn().fromDDL(label);\n }\n\n hash(): string {\n return hashSum(this.label());\n }\n\n columns() {\n return this._owner.inFieldIDs();\n }\n}\nGroupByColumn.prototype._class += \" GroupByColumn\";\n\n// ===========================================================================\nexport type AggrFuncCallback = (item: any) => number;\nexport type AggrFunc = (leaves: any[], callback: AggrFuncCallback) => number;\nfunction localCount(leaves: any[], callback: AggrFuncCallback): number {\n return leaves.length;\n}\n\nconst d3Aggr: { [key: string]: AggrFunc } = {\n count: localCount,\n min: d3Min,\n max: d3Max,\n mean: d3Mean,\n median: d3Median,\n variance: d3Variance,\n deviation: d3Deviation,\n sum: d3Sum\n};\n\nexport type AggregateType = \"count\" | \"min\" | \"max\" | \"sum\" | \"mean\" | \"median\" | \"variance\" | \"deviation\";\nexport class AggregateField extends PropertyExt {\n private _owner: GroupBy;\n\n @publish(null, \"string\", \"new Field ID\", null, { optional: true, disable: (w: AggregateField) => !w.hasColumn() })\n fieldID: publish<this, string>;\n @publish(\"count\", \"set\", \"Aggregation Type\", [\"count\", \"min\", \"max\", \"sum\", \"mean\", \"median\", \"variance\", \"deviation\"], { optional: true, disable: (w: AggregateField) => !w.fieldID() })\n aggrType: publish<this, AggregateType>;\n @publish(null, \"set\", \"Aggregation Field\", function (this: AggregateField) { return this.columns(); }, {\n optional: true,\n disable: (w: AggregateField) => w.disableAggrColumn(),\n validate: (w: AggregateField): boolean => w.columns().indexOf(w.aggrColumn()) >= 0\n })\n aggrColumn: publish<this, string>;\n aggrColumn_valid: () => boolean;\n @publish(null, \"set\", \"Base Count Field\", function (this: AggregateField) { return this.columns(); }, {\n optional: true,\n disable: (w: AggregateField) => w.disableBaseCountColumn(),\n validate: (w: AggregateField): boolean => w.columns().indexOf(w.baseCountColumn()) >= 0\n })\n baseCountColumn: publish<this, string>;\n baseCountColumn_valid: () => boolean;\n\n disableAggrColumn(): boolean {\n return !this.fieldID() || !this.aggrType() || this.aggrType() === \"count\";\n }\n\n disableBaseCountColumn(): boolean {\n return !this.fieldID() || !this.aggrType() || this.aggrType() !== \"mean\";\n }\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.aggrColumn_valid()) {\n retVal.push({\n source: `${prefix}.${this.fieldID()}.aggrColumn`,\n msg: `Invalid aggrColumn: \"${this.aggrColumn()}\"`,\n hint: `expected ${JSON.stringify(this.columns())}`\n });\n }\n if (!this.baseCountColumn_valid()) {\n retVal.push({\n source: `${prefix}.${this.fieldID()}.aggrColumn`,\n msg: `Invalid baseCountColumn: \"${this.baseCountColumn()}\"`,\n hint: `expected ${JSON.stringify(this.columns())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): GroupBy;\n owner(_: GroupBy): this;\n owner(_?: GroupBy): GroupBy | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.fieldID();\n }\n\n toDDL(): DDL2.IAggregate | DDL2.ICount {\n if (this.aggrType() === \"count\") {\n return {\n fieldID: this.fieldID(),\n type: \"count\"\n };\n }\n return {\n fieldID: this.fieldID(),\n type: this.aggrType() as DDL2.IAggregateType,\n inFieldID: this.aggrColumn(),\n baseCountFieldID: this.baseCountColumn()\n };\n }\n\n fromDDL(ddl: DDL2.IAggregate | DDL2.ICount): this {\n const retVal = this\n .fieldID(ddl.fieldID)\n .aggrType(ddl.type)\n ;\n if (ddl.type !== \"count\") {\n retVal.aggrColumn(ddl.inFieldID);\n retVal.baseCountColumn(ddl.baseCountFieldID);\n }\n return retVal;\n }\n\n static fromDDL(ddl: DDL2.IAggregate | DDL2.ICount): AggregateField {\n return new AggregateField().fromDDL(ddl);\n }\n\n hash(): string {\n return hashSum({\n label: this.fieldID(),\n aggrType: this.aggrType(),\n aggrColumn: this.aggrColumn()\n });\n }\n\n columns() {\n return this._owner.inFieldIDs();\n }\n\n hasColumn() {\n return this.columns().length;\n }\n\n aggregate(values: Array<{ [key: string]: any }>) {\n return d3Aggr[this.aggrType() as string](values, leaf => +leaf[this.aggrColumn()]);\n }\n\n aggrFunc(): (leaves: any[]) => number {\n const aggrFunc = d3Aggr[this.aggrType() as string];\n const aggrColumn = this.aggrColumn();\n const baseCountColumn = this.baseCountColumn();\n if (baseCountColumn) {\n return (values: any[]) => {\n return aggrFunc(values, leaf => +leaf[aggrColumn] / +leaf[baseCountColumn]);\n };\n } else {\n return (values: any[]) => {\n return aggrFunc(values, leaf => +leaf[aggrColumn]);\n };\n }\n }\n}\nAggregateField.prototype._class += \" AggregateField\";\n\n// ===========================================================================\nexport class GroupBy extends Activity {\n\n @publish([], \"propertyArray\", \"Source Columns\", null, { autoExpand: GroupByColumn })\n column: publish<this, GroupByColumn[]>;\n @publish([], \"propertyArray\", \"Computed Fields\", null, { autoExpand: AggregateField })\n computedFields: publish<this, AggregateField[]>;\n @publish(false, \"boolean\", \"Show details\")\n details: publish<this, boolean>;\n @publish(false, \"boolean\", \"Show groupBy fileds in details\")\n fullDetails: publish<this, boolean>;\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const gbColumn of this.validGroupBy()) {\n retVal = retVal.concat(gbColumn.validate(\"GroupBy.column\"));\n }\n for (const cfs of this.validComputedFields()) {\n retVal = retVal.concat(cfs.validate(\"GroupBy.computedFields\"));\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.IGroupBy {\n return {\n type: \"groupby\",\n groupByIDs: this.fieldIDs(),\n aggregates: this.aggregates()\n };\n }\n\n fromDDL(ddl: DDL2.IGroupBy): this {\n return this\n .fieldIDs(ddl.groupByIDs)\n .aggregates(ddl.aggregates)\n ;\n }\n\n static fromDDL(ddl: DDL2.IGroupBy): GroupBy {\n return new GroupBy().fromDDL(ddl);\n }\n\n fieldIDs(): string[];\n fieldIDs(_: string[]): this;\n fieldIDs(_?: string[]): string[] | this {\n if (!arguments.length) return this.validGroupBy().map(gb => gb.toDDL());\n this.column(_.map(fieldID => GroupByColumn.fromDDL(fieldID)));\n return this;\n }\n\n aggregates(): DDL2.AggregateType[];\n aggregates(_: DDL2.AggregateType[]): this;\n aggregates(_?: DDL2.AggregateType[]): DDL2.AggregateType[] | this {\n if (!arguments.length) return this.validComputedFields().map(cf => cf.toDDL());\n this.computedFields(_.map(aggrType => AggregateField.fromDDL(aggrType)));\n return this;\n }\n\n // Activity\n hash(): string {\n return hashSum({\n groupBy: this.column().map(gb => gb.hash()),\n computedFields: this.computedFields().map(cf => cf.hash())\n });\n }\n\n appendGroupBys(columns: [{ field: string }]): this {\n for (const column of columns) {\n this.column().push(new GroupByColumn()\n .owner(this)\n .label(column.field)\n );\n }\n return this;\n }\n\n validGroupBy(): GroupByColumn[] {\n return this.column().filter(groupBy => groupBy.valid());\n }\n\n exists(): boolean {\n return this.validGroupBy().length > 0;\n }\n\n inFieldIDs(): string[] {\n return this.inFields().map(field => field.id);\n }\n\n field(fieldID: string): DDL2.IField | null {\n for (const field of this.inFields()) {\n if (field.id === fieldID) {\n return field;\n }\n }\n return null;\n }\n\n appendComputedFields(aggregateFields: [{ label: string, type: AggregateType, column?: string }]): this {\n for (const aggregateField of aggregateFields) {\n const aggrField = new AggregateField()\n .owner(this)\n .fieldID(aggregateField.label)\n .aggrType(aggregateField.type)\n ;\n if (aggregateField.column !== void 0) {\n aggrField.aggrColumn(aggregateField.column);\n }\n this.computedFields().push(aggrField);\n }\n return this;\n }\n\n validComputedFields() {\n return this.computedFields().filter(computedField => computedField.valid());\n }\n\n hasComputedFields(): boolean {\n return this.validComputedFields().length > 0;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n if (!this.exists()) return super.computeFields(inFields);\n const retVal: DDL2.IField[] = [];\n const groups: GroupByColumn[] = this.validGroupBy();\n for (const groupBy of groups) {\n const groupByField = this.field(groupBy.label());\n const field = {\n type: groupByField ? groupByField.type : \"string\",\n id: groupBy.label()\n } as DDL2.IField;\n retVal.push(field);\n }\n for (const cf of this.computedFields()) {\n if (cf.fieldID()) {\n const computedField: DDL2.IField = {\n id: cf.fieldID(),\n type: \"number\"\n };\n retVal.push(computedField);\n }\n }\n if (this.details()) {\n let detailsTarget: DDL2.IField[] = retVal;\n if (this.exists()) {\n const rows: DDL2.IField = {\n id: \"values\",\n type: \"dataset\",\n children: []\n };\n retVal.push(rows);\n detailsTarget = rows.children;\n }\n const columns = groups.map(groupBy => groupBy.label());\n detailsTarget.push(...this.inFields().filter(field => {\n return this.fullDetails() || columns.indexOf(field.id) < 0;\n }));\n }\n return () => retVal;\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const fieldIDs: string[] = [];\n for (const gb of this.validGroupBy()) {\n fieldIDs.push(gb.label());\n }\n for (const cf of this.validComputedFields()) {\n if (cf.aggrColumn()) {\n fieldIDs.push(cf.aggrColumn());\n }\n }\n super.resolveInFields(refs, fieldIDs);\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n if (data.length === 0 || !this.exists()) return data;\n const columnLabels: string[] = this.validGroupBy().map(gb => gb.label());\n const computedFields = this.validComputedFields().map(cf => {\n return { label: cf.fieldID(), aggrFunc: cf.aggrFunc() };\n });\n const retVal = d3Nest()\n .key((row: { [key: string]: any }) => {\n let key = \"\";\n for (const groupByLabel of columnLabels) {\n key += \":\" + row[groupByLabel];\n }\n return key;\n })\n .entries(data as object[]).map(_row => {\n const row: {\n [key: string]: any\n } = _row;\n delete row.key;\n for (const groupByLabel of columnLabels) {\n row[groupByLabel] = row.values[0][groupByLabel];\n }\n for (const cf of computedFields) {\n row[cf.label] = cf.aggrFunc(row.values);\n }\n return row;\n })\n ;\n const outFields = this.outFields();\n return retVal.map(row => {\n const retVal = {};\n for (const field of outFields) {\n retVal[field.id] = row[field.id];\n }\n return retVal;\n });\n }\n}\nGroupBy.prototype._class += \" GroupBy\";\n","import { publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { Activity } from \"./activity\";\n\nexport class Limit extends Activity {\n\n @publish(undefined, \"number\", \"Limit output\")\n rows: publish<this, number | undefined>;\n rows_exists: () => boolean;\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.ILimit {\n return {\n type: \"limit\",\n limit: this.rows()\n };\n }\n\n fromDDL(ddl: DDL2.ILimit): this {\n return this\n .rows(ddl.limit)\n ;\n }\n\n static fromDDL(ddl: DDL2.ILimit): Limit {\n return new Limit().fromDDL(ddl);\n }\n\n hash(): string {\n return hashSum({\n limit: this.rows()\n });\n }\n\n exists(): boolean {\n return this.rows_exists() && this.rows() > 0;\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n if (data.length === 0 || !this.exists()) return data;\n return data.slice(0, Math.min(this.rows(), data.length));\n }\n}\nLimit.prototype._class += \" Limit\";\n","import { PropertyExt, publish, Utility } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum, isArray } from \"@hpcc-js/util\";\nimport { Activity, IActivityError, ReferencedFields } from \"./activity\";\n\nexport class ComputedMapping extends PropertyExt {\n protected _owner: ComputedField;\n\n @publish(null, \"any\", \"Compare Value\", undefined, {\n validate: (w: ComputedMapping): boolean => (!w.value() && !w.newValue()) || (!!w.value() && !!w.newValue())\n })\n value: publish<this, any>;\n value_valid: () => boolean;\n @publish(null, \"any\", \"New Value\", undefined, {\n validate: (w: ComputedMapping): boolean => (!w.value() && !w.newValue()) || (!!w.value() && !!w.newValue())\n })\n newValue: publish<this, any>;\n newValue_valid: () => boolean;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.value_valid()) {\n retVal.push({\n source: `${prefix}.value`,\n msg: `Invalid value: \"${this.value()}\"`,\n hint: 'expected: \"any\"'\n });\n }\n if (!this.newValue_valid()) {\n retVal.push({\n source: `${prefix}.newValue`,\n msg: `Invalid value: \"${this.newValue()}\"`,\n hint: 'expected: \"any\"'\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): ComputedField;\n owner(_: ComputedField): this;\n owner(_?: ComputedField): ComputedField | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.value() && !!this.newValue();\n }\n\n toDDL(): DDL2.IMapMapping {\n return {\n value: this.value(),\n newValue: this.newValue()\n };\n }\n\n fromDDL(ddl: DDL2.IMapMapping): this {\n return this\n .value(ddl.value)\n .newValue(ddl.newValue)\n ;\n }\n\n static fromDDL(ddl: DDL2.IMapMapping): ComputedMapping {\n return new ComputedMapping().fromDDL(ddl);\n }\n}\nComputedMapping.prototype._class += \" ComputedMapping\";\n\nexport type ComputedType = \"=\" | \"*\" | \"/\" | \"+\" | \"-\" | \"scale\" | \"template\" | \"map\";\n\nexport interface IComputedFieldOwner extends PropertyExt {\n fieldIDs(): string[];\n field(fieldID: string): DDL2.IField | null;\n}\n\nexport class ComputedField extends PropertyExt {\n private _owner: IComputedFieldOwner;\n\n @publish(null, \"string\", \"Label\", null, { optional: true })\n label: publish<this, string>;\n @publish(\"mapping\", \"set\", \"Project type\", [\"=\", \"*\", \"/\", \"+\", \"-\", \"scale\", \"template\", \"map\"], { optional: true, disable: w => !w.label() })\n type: publish<this, ComputedType>;\n @publish(null, \"set\", \"Param 1\", function (this: ComputedField) { return this.columns(); }, {\n optional: true,\n disable: (w: ComputedField) => w.disableColumn1(),\n validate: (w: ComputedField): boolean => w.columns().indexOf(w.column1()) >= 0\n })\n column1: publish<this, string>;\n column1_valid: () => boolean;\n @publish(null, \"set\", \"Param 2\", function (this: ComputedField) { return this.columns(); }, {\n optional: true,\n disable: (w: ComputedField) => w.disableColumn2(),\n validate: (w: ComputedField): boolean => w.columns().indexOf(w.column2()) >= 0\n })\n column2: publish<this, string>;\n column2_valid: () => boolean;\n @publish(null, \"number\", \"Const value\", null, { optional: true, disable: (w: ComputedField) => !w.label() || [\"scale\"].indexOf(w.type()) < 0 })\n constValue: publish<this, number>;\n @publish(null, \"string\", \"template\", null, { optional: true, disable: (w: ComputedField) => !w.label() || [\"template\"].indexOf(w.type()) < 0 })\n template: publish<this, string>;\n @publish(null, \"any\", \"Default Value\", null, { optional: true, disable: (w: ComputedField) => !w.label() || [\"map\"].indexOf(w.type()) < 0 })\n default: publish<this, any>;\n @publish([], \"propertyArray\", \"Mapped Values\", null, { autoExpand: ComputedMapping, disable: (w: ComputedField) => w.disableMapping() })\n mapping: publish<this, ComputedMapping[]>;\n @publish([], \"propertyArray\", \"Child Fields\", null, { autoExpand: ComputedField, disable: (w: ComputedField) => w.disableChildField() })\n childField: publish<this, ComputedField[]>;\n\n disableColumn1(): boolean {\n return !this.label() || [\"=\", \"*\", \"/\", \"+\", \"-\", \"scale\", \"map\"].indexOf(this.type()) < 0;\n }\n\n disableColumn2(): boolean {\n return !this.label() || [\"*\", \"/\", \"+\", \"-\"].indexOf(this.type()) < 0;\n }\n\n disableMapping(): boolean {\n return !this.label() || [\"map\"].indexOf(this.type()) < 0;\n }\n\n disableChildField(): boolean {\n return !this.hasChildren();\n }\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.column1_valid()) {\n retVal.push({\n source: `${prefix}.${this.label()}`,\n msg: `Invalid column1: \"${this.column1()}\"`,\n hint: `expected: ${JSON.stringify(this.columns())}`\n });\n }\n if (!this.column2_valid()) {\n retVal.push({\n source: `${prefix}.${this.label()}`,\n msg: `Invalid column2: \"${this.column2()}\"`,\n hint: `expected: ${JSON.stringify(this.columns())}`\n });\n }\n if (!this.disableMapping()) {\n this.validComputedMappings().forEach(cm => cm.validate(`${prefix}.mapping`));\n }\n if (!this.disableChildField()) {\n this.validChildFields().forEach(cf => cf.validate(`${prefix}.childField`));\n }\n return retVal;\n }\n\n hasChildren() {\n if (!this.label()) return false;\n if (this.type() !== \"=\") return false;\n if (!this.column1()) return false;\n const field = (this._owner as ProjectBase).field(this.column1());\n if (field && field.type === \"dataset\" && field.children) {\n return true;\n }\n return false;\n }\n\n children(): DDL2.IField[] {\n const field = (this._owner as ProjectBase).field(this.column1());\n if (field && field.type === \"dataset\") {\n return field.children;\n }\n return [];\n }\n\n constructor() {\n super();\n }\n\n owner(): IComputedFieldOwner;\n owner(_: IComputedFieldOwner): this;\n owner(_?: IComputedFieldOwner): IComputedFieldOwner | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.label();\n }\n\n validComputedMappings(): ComputedMapping[] {\n return this.mapping().filter(cf => cf.valid());\n }\n\n validChildFields() {\n return this.childField().filter(cf => cf.valid());\n }\n\n hasChildFields() {\n return this.validChildFields().length;\n }\n\n toDDL(): DDL2.MultiTransformationType {\n switch (this.type()) {\n case \"scale\":\n return {\n fieldID: this.label(),\n type: \"scale\",\n sourceFieldID: this.column1(),\n factor: this.constValue()\n };\n case \"template\":\n return {\n fieldID: this.label(),\n type: \"template\",\n template: this.template()\n };\n case \"=\":\n const transformations = this.validChildFields().map(cf => cf.toDDL());\n return {\n fieldID: this.label(),\n type: \"=\",\n sourceFieldID: this.column1(),\n transformations: transformations.length ? transformations : undefined\n };\n case \"map\":\n return {\n fieldID: this.label(),\n type: \"map\",\n sourceFieldID: this.column1(),\n default: this.default(),\n mappings: this.validComputedMappings().map(cm => cm.toDDL())\n };\n default:\n return {\n fieldID: this.label(),\n type: this.type() as DDL2.ICalculatedType,\n sourceFieldID1: this.column1(),\n sourceFieldID2: this.column2()\n };\n }\n }\n\n fromDDL(ddl: DDL2.MultiTransformationType): this {\n const retVal = this\n .label(ddl.fieldID)\n .type(ddl.type)\n ;\n switch (ddl.type) {\n case \"scale\":\n retVal\n .column1(ddl.sourceFieldID)\n .constValue(ddl.factor)\n ;\n break;\n case \"template\":\n retVal\n .template(ddl.template)\n ;\n break;\n case \"=\":\n retVal\n .column1(ddl.sourceFieldID)\n .childField(ddl.transformations ? ddl.transformations.map(transformation => ComputedField.fromDDL(transformation)) : [])\n ;\n break;\n case \"map\":\n retVal\n .column1(ddl.sourceFieldID)\n .default(ddl.default)\n .mapping(ddl.mappings ? ddl.mappings.map(mapping => ComputedMapping.fromDDL(mapping)) : [])\n ;\n break;\n default:\n retVal\n .column1(ddl.sourceFieldID1)\n .column2(ddl.sourceFieldID2)\n ;\n }\n return retVal;\n }\n\n static fromDDL(ddl: DDL2.MultiTransformationType): ComputedField {\n return new ComputedField().fromDDL(ddl);\n }\n\n hash(): string {\n return hashSum(this.toDDL());\n }\n\n columns(): string[] {\n return this._owner.fieldIDs();\n }\n\n computedField(): DDL2.IField {\n switch (this.type()) {\n case \"=\":\n let validChildFields = this.validChildFields();\n if (validChildFields.length === 0 && this.hasChildren()) {\n // Has children but no mappings - include all children by default...\n validChildFields = this.children().map((child: DDL2.IField) => {\n return new ComputedField()\n .owner(this)\n .label(child.id)\n .type(\"=\")\n .column1(child.id)\n ;\n });\n }\n return {\n ...this._owner.field(this.column1()),\n id: this.label(),\n children: validChildFields.length ? validChildFields.map(cf => cf.computedField()) : undefined\n } as DDL2.IField;\n case \"*\":\n case \"/\":\n case \"+\":\n case \"-\":\n case \"scale\":\n return { id: this.label(), type: \"number\" };\n case \"template\":\n return { id: this.label(), type: \"string\" };\n case \"map\":\n return { id: this.label(), type: \"object\" } as DDL2.IFieldObject;\n }\n return { id: this.label(), type: \"string\" };\n }\n\n projection(trim: boolean): (row: object) => object {\n const hasComputedFields = this.hasChildFields();\n const computedFields = this.validChildFields().map(cf => {\n return {\n label: cf.label(),\n func: cf.computeFunc(trim)\n };\n });\n return (row: object) => {\n const retVal = trim && hasComputedFields ? {} : { ...row };\n for (const cf of computedFields) {\n retVal[cf.label] = cf.func(row);\n }\n if (trim && hasComputedFields) {\n retVal[\"__lparam\"] = row;\n }\n return retVal;\n };\n }\n\n computeFunc(trim: boolean): (row: any) => any {\n const column1 = this.column1();\n const column2 = this.column2();\n switch (this.type()) {\n case \"=\":\n if (this.hasChildFields()) {\n return (row: object) => {\n // TODO Move to function factory ---\n const r = row[column1].Row && isArray(row[column1].Row) ? row[column1].Row : row[column1];\n return r.map(this.projection(trim));\n };\n }\n return (row: object) => {\n return row[column1];\n };\n case \"*\":\n return (row: any) => {\n return +row[column1] * +row[column2];\n };\n case \"/\":\n return (row: any) => {\n return +row[column1] / +row[column2];\n };\n case \"+\":\n return (row: any) => {\n return +row[column1] + +row[column2];\n };\n case \"-\":\n return (row: any) => {\n return +row[column1] - +row[column2];\n };\n case \"scale\":\n const constValue = this.constValue();\n return (row: any) => {\n return +row[column1] * constValue;\n };\n case \"template\":\n const template = this.template();\n return (row: any) => {\n return Utility.template(template, row);\n };\n case \"map\":\n const defValue = this.default();\n const mappings = {};\n for (const mapping of this.mapping()) {\n mappings[mapping.value()] = mapping.newValue();\n }\n return (row: any) => {\n return mappings[row[column1]] || defValue;\n };\n default:\n return (row: any) => {\n return row[column1];\n };\n }\n }\n\n // IComputedFieldOwner ---\n fieldIDs(): string[] {\n const field = (this._owner as ProjectBase).field(this.column1());\n if (field) {\n switch (field.type) {\n case \"dataset\":\n return field.children.map(field => field.id);\n case \"object\":\n return Object.keys(field.fields);\n }\n }\n return [];\n }\n\n field(fieldID: string): DDL2.IField | undefined {\n const field = (this._owner as ProjectBase).field(this.column1());\n if (field) {\n switch (field.type) {\n case \"dataset\":\n for (const f of field.children) {\n if (f.id === fieldID) {\n return f;\n }\n }\n break;\n case \"object\":\n return field.fields[fieldID];\n }\n }\n return undefined;\n }\n}\nComputedField.prototype._class += \" ComputedField\";\n// ===========================================================================\nexport class MultiField extends PropertyExt implements IComputedFieldOwner {\n private _owner: IComputedFieldOwner;\n\n @publish(\"\", \"string\", \"Label\")\n label: publish<this, string>;\n @publish([], \"propertyArray\", \"Multi Fields\", null, { autoExpand: ComputedField })\n multiFields: publish<this, ComputedField[]>;\n\n constructor() {\n super();\n }\n\n hash() {\n return hashSum(this.toDDL());\n }\n\n owner(): IComputedFieldOwner;\n owner(_: IComputedFieldOwner): this;\n owner(_?: IComputedFieldOwner): IComputedFieldOwner | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.label() && this.validMultiFields().length > 0;\n }\n\n validate(prefix: string): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const cf of this.validMultiFields()) {\n retVal = retVal.concat(cf.validate(`${prefix}.computedFields`));\n }\n return retVal;\n }\n\n toDDL(): DDL2.IMulti {\n return {\n fieldID: this.label(),\n type: \"multi\",\n transformations: this.transformations()\n };\n }\n\n fromDDL(ddl: DDL2.IMulti): this {\n return this\n .label(ddl.fieldID)\n .transformations(ddl.transformations)\n ;\n }\n\n static fromDDL(ddl: DDL2.IMulti): MultiField {\n return new MultiField().fromDDL(ddl);\n }\n\n validMultiFields(): ComputedField[] {\n return this.multiFields().filter(computedField => computedField.valid());\n }\n\n transformations(): DDL2.MultiTransformationType[];\n transformations(_: DDL2.MultiTransformationType[]): this;\n transformations(_?: DDL2.MultiTransformationType[]): DDL2.MultiTransformationType[] | this {\n if (!arguments.length) return this.validMultiFields().map(cf => cf.toDDL());\n this.multiFields(_.map(transformation => ComputedField.fromDDL(transformation)));\n return this;\n }\n\n // IComputedFieldOwner ---\n fieldIDs(): string[] {\n return this._owner.fieldIDs();\n }\n\n field(fieldID: string): DDL2.IField | null {\n return this._owner.field(fieldID);\n }\n}\nMultiField.prototype._class += \" MultiField\";\n// ===========================================================================\nexport class ProjectBase extends Activity {\n static ComputedField = ComputedField;\n\n _includeLParam = false;\n _trim = false;\n\n @publish([], \"propertyArray\", \"Computed Fields\", null, { autoExpand: ComputedField, noDeserialize: true })\n computedFields: publish<this, Array<ComputedField | MultiField>>;\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const cf of this.validComputedFields()) {\n retVal = retVal.concat(cf.validate(`${this.classID()}.computedFields`));\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n transformations(): DDL2.ProjectTransformationType[];\n transformations(_: DDL2.ProjectTransformationType[]): this;\n transformations(_?: DDL2.ProjectTransformationType[]): DDL2.ProjectTransformationType[] | this {\n if (!arguments.length) return this.validComputedFields().map(cf => cf.toDDL());\n this.computedFields(_.map(transformation => {\n switch (transformation.type) {\n case \"multi\":\n return MultiField.fromDDL(transformation);\n default:\n return ComputedField.fromDDL(transformation);\n }\n }));\n return this;\n }\n\n exists(): boolean {\n return this.validComputedFields().length > 0;\n }\n\n // IComputedFieldOwner ---\n fieldIDs(): string[] {\n return this.inFields().map(field => field.id);\n }\n\n field(fieldID: string): DDL2.IField | null {\n for (const field of this.inFields()) {\n if (field.id === fieldID) {\n return field;\n }\n }\n return null;\n }\n // ---\n\n clearComputedFields() {\n this.computedFields([]);\n }\n\n appendComputedFields(computedFields: [{ label: string, type: ComputedType, column?: string }]): this {\n for (const aggregateField of computedFields) {\n const aggrField = new ComputedField()\n .owner(this)\n .label(aggregateField.label)\n .type(aggregateField.type)\n ;\n if (aggregateField.column !== void 0) {\n aggrField.column1(aggregateField.column);\n }\n this.computedFields().push(aggrField);\n }\n return this;\n }\n\n validComputedFields() {\n return this.computedFields().filter(computedField => computedField.valid());\n }\n\n hasComputedFields() {\n return this.validComputedFields().length;\n }\n\n computeFields(inFields: ReadonlyArray<DDL2.IField>): () => ReadonlyArray<DDL2.IField> {\n if (!this.exists()) return super.computeFields(inFields);\n let retVal: DDL2.IField[] = [];\n const retValMap: { [key: string]: boolean } = {};\n for (const cf of this.validComputedFields()) {\n if (cf instanceof MultiField) {\n for (const cf2 of cf.validMultiFields()) {\n const computedField = cf2.computedField();\n retVal.push(computedField);\n retValMap[computedField.id] = true;\n }\n } else {\n const computedField = cf.computedField();\n retVal.push(computedField);\n retValMap[computedField.id] = true;\n }\n }\n if (this._trim && this.hasComputedFields()) {\n if (this._includeLParam) {\n const computedField = {\n id: \"__lparam\",\n type: \"object\"\n } as DDL2.IField;\n retVal.push(computedField);\n retValMap[computedField.id] = true;\n }\n } else {\n retVal = retVal.concat(inFields.filter(field => !retValMap[field.id]));\n }\n return () => retVal;\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n const fieldIDs: string[] = [];\n for (const cf of this.validComputedFields()) {\n if (cf instanceof MultiField) {\n for (const cf2 of cf.validMultiFields()) {\n fieldIDs.push(cf2.column1());\n if (cf2.column2()) {\n fieldIDs.push(cf2.column2());\n }\n }\n } else {\n if (cf.type() === \"template\") {\n for (const fieldID of Utility.templateFields(cf.template())) {\n fieldIDs.push(fieldID);\n }\n } else {\n fieldIDs.push(cf.column1());\n if (cf.column2()) {\n fieldIDs.push(cf.column2());\n }\n }\n }\n }\n super.resolveInFields(refs, fieldIDs);\n }\n\n projection(): (row: object) => object {\n const trim = this._trim;\n const hasComputedFields = this.hasComputedFields();\n const computedFields = [];\n for (const cf of this.validComputedFields()) {\n if (cf instanceof MultiField) {\n for (const cf2 of cf.validMultiFields()) {\n computedFields.push({\n label: cf2.label(),\n func: cf2.computeFunc(trim)\n });\n }\n } else {\n computedFields.push({\n label: cf.label(),\n func: cf.computeFunc(trim)\n });\n }\n }\n return (row: object) => {\n const retVal = trim && hasComputedFields ? {} : { ...row };\n for (const cf of computedFields) {\n retVal[cf.label] = cf.func(row);\n }\n if (trim && hasComputedFields) {\n if (this._includeLParam) {\n retVal[\"__lparam\"] = row;\n }\n }\n return retVal;\n };\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n if (data.length === 0 || !this.exists()) return data;\n return data.map(this.projection());\n }\n}\n\nexport class Project extends ProjectBase {\n\n toDDL(): DDL2.IProject {\n return {\n type: \"project\",\n transformations: this.transformations()\n };\n }\n\n fromDDL(ddl: DDL2.IProject): this {\n return this.transformations(ddl.transformations);\n }\n\n static fromDDL(ddl: DDL2.IProject): Project {\n return new Project().fromDDL(ddl);\n }\n\n hash(more: object = {}): string {\n return super.hash({\n ddl: this.toDDL(),\n ...more\n });\n }\n}\nProject.prototype._class += \" Project\";\n\nexport class Mappings extends ProjectBase {\n\n constructor() {\n super();\n this._trim = true;\n this._includeLParam = true;\n }\n\n toDDL(): DDL2.IMappings {\n return {\n type: \"mappings\",\n transformations: this.transformations()\n };\n }\n\n fromDDL(_ddl: DDL2.IMappings): this {\n const ddl = _ddl || { transformations: [] };\n return this\n .transformations(ddl.transformations)\n ;\n }\n\n static fromDDL(ddl: DDL2.IMappings): Mappings {\n return new Mappings().fromDDL(ddl);\n }\n\n hash(more: object = {}): string {\n return super.hash({\n ddl: this.toDDL(),\n ...more\n });\n }\n\n referencedFields(refs: ReferencedFields): void {\n if (this.hasComputedFields()) {\n return super.referencedFields(refs);\n }\n this.resolveInFields(refs, this.inFields().filter(f => f.id !== \"__lparam\").map(f => f.id));\n }\n}\nMappings.prototype._class += \" Mappings\";\n","import { PropertyExt, publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { ascending as d3Ascending, descending as d3Descending } from \"d3-array\";\nimport { Activity, IActivityError, ReferencedFields } from \"./activity\";\n\nexport class SortColumn extends PropertyExt {\n private _owner: Sort;\n\n @publish(null, \"set\", \"Sort Field\", function (this: SortColumn) { return this.fieldIDs(); }, {\n optional: true,\n validate: (w: SortColumn): boolean => w.fieldIDs().indexOf(w.fieldID()) >= 0\n })\n fieldID: publish<this, string>;\n fieldID_valid: () => boolean;\n @publish(false, \"boolean\", \"Sort Field\")\n descending: publish<this, boolean>;\n\n validate(prefix: string): IActivityError[] {\n const retVal: IActivityError[] = [];\n if (!this.fieldID_valid()) {\n retVal.push({\n source: `${prefix}.fieldID`,\n msg: `Invalid fieldID: ${this.fieldID()}`,\n hint: `expected ${JSON.stringify(this.fieldIDs())}`\n });\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n owner(): Sort;\n owner(_: Sort): this;\n owner(_?: Sort): Sort | this {\n if (!arguments.length) return this._owner;\n this._owner = _;\n return this;\n }\n\n valid(): boolean {\n return !!this.fieldID();\n }\n\n toDDL(): DDL2.ISortCondition {\n return {\n fieldID: this.fieldID(),\n descending: this.descending()\n };\n }\n\n fromDDL(ddl: DDL2.ISortCondition): this {\n return this\n .fieldID(ddl.fieldID)\n .descending(ddl.descending)\n ;\n }\n\n static fromDDL(ddl: DDL2.ISortCondition): SortColumn {\n return new SortColumn().fromDDL(ddl);\n }\n\n hash(): string {\n return hashSum({\n sortColumn: this.fieldID(),\n descending: this.descending()\n });\n }\n\n fieldIDs() {\n return this._owner.fieldIDs();\n }\n\n field(id: string): DDL2.IField | undefined {\n return this._owner.inFields().filter(field =>\n field.id === id\n )[0];\n }\n}\nSortColumn.prototype._class += \" SortColumn\";\n\n// ===========================================================================\nexport class Sort extends Activity {\n static Column = SortColumn;\n\n @publish([], \"propertyArray\", \"Source Columns\", null, { autoExpand: SortColumn })\n column: publish<this, SortColumn[]>;\n\n validate(): IActivityError[] {\n let retVal: IActivityError[] = [];\n for (const sb of this.validSortBy()) {\n retVal = retVal.concat(sb.validate(\"Sort.column\"));\n }\n return retVal;\n }\n\n constructor() {\n super();\n }\n\n toDDL(): DDL2.ISort {\n return {\n type: \"sort\",\n conditions: this.conditions()\n };\n }\n\n fromDDL(ddl: DDL2.ISort): this {\n this.conditions(ddl.conditions);\n return this;\n }\n\n static fromDDL(ddl: DDL2.ISort) {\n return new Sort().fromDDL(ddl);\n }\n\n conditions(): DDL2.ISortCondition[];\n conditions(_: DDL2.ISortCondition[]): this;\n conditions(_?: DDL2.ISortCondition[]): DDL2.ISortCondition[] | this {\n if (!arguments.length) return this.validSortBy().map(column => column.toDDL());\n this.column(_.map(condition => SortColumn.fromDDL(condition)));\n return this;\n }\n\n // Activitiy ---\n hash(): string {\n return hashSum({\n Sort: this.column().map(sb => sb.hash())\n });\n }\n\n referencedFields(refs: ReferencedFields): void {\n super.referencedFields(refs);\n super.resolveInFields(refs, this.validSortBy().map(sortBy => sortBy.fieldID()));\n }\n\n validSortBy(): SortColumn[] {\n return this.column().filter(sortBy => sortBy.fieldID());\n }\n\n exists(): boolean {\n return this.validSortBy().length > 0;\n }\n\n fieldIDs(): string[] {\n return this.inFields().map(field => field.id);\n }\n\n computeData(): ReadonlyArray<object> {\n const data = super.computeData();\n const sortByArr: Array<{ compare: (l, r) => number, id: string }> = [];\n for (const sortBy of this.validSortBy()) {\n sortByArr.push({\n compare: sortBy.descending() ? d3Descending : d3Ascending,\n id: sortBy.fieldID()\n });\n }\n\n if (sortByArr.length) {\n return [...data].sort((l: any, r: any) => {\n for (const item of sortByArr) {\n const retVal2 = item.compare(l[item.id], r[item.id]);\n if (retVal2 !== 0) {\n return retVal2;\n }\n }\n return 0;\n });\n\n }\n return data;\n }\n}\nSort.prototype._class += \" Sort\";\n","import { publish } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { ElementContainer } from \"../model/element\";\nimport { Activity, ActivityPipeline } from \"./activity\";\nimport { DatasourceRefType } from \"./datasource\";\nimport { DSPicker } from \"./dspicker\";\nimport { Filters } from \"./filter\";\nimport { GroupBy } from \"./groupby\";\nimport { Limit } from \"./limit\";\nimport { Project } from \"./project\";\nimport { Sort } from \"./sort\";\n\nexport class HipiePipeline extends ActivityPipeline {\n\n @publish(null, \"widget\", \"Data Source 2\")\n _datasource: DSPicker | DatasourceRefType;\n datasource(): DSPicker | DatasourceRefType;\n datasource(_: DSPicker | DatasourceRefType): this;\n datasource(_?: DSPicker | DatasourceRefType): DSPicker | DatasourceRefType | this {\n if (!arguments.length) return this._datasource;\n this._datasource = _;\n this.updateSequence();\n return this;\n }\n\n @publish(null, \"widget\", \"Client Filters\")\n _filters: Filters;\n filters(): Filters;\n filters(_: Filters): this;\n filters(_?: Filters): Filters | this {\n if (!arguments.length) return this._filters;\n this._filters = _;\n this.updateSequence();\n return this;\n }\n\n @publish(null, \"widget\", \"Project\")\n _project: Project;\n project(): Project;\n project(_: Project): this;\n project(_?: Project): Project | this {\n if (!arguments.length) return this._project;\n this._project = _;\n this.updateSequence();\n return this;\n }\n\n @publish(null, \"widget\", \"Group By\")\n _groupBy: GroupBy;\n groupBy(): GroupBy;\n groupBy(_: GroupBy): this;\n groupBy(_?: GroupBy): GroupBy | this {\n if (!arguments.length) return this._groupBy;\n this._groupBy = _;\n this.updateSequence();\n return this;\n }\n\n @publish(null, \"widget\", \"Sort\")\n _sort: Sort;\n sort(): Sort;\n sort(_: Sort): this;\n sort(_?: Sort): Sort | this {\n if (!arguments.length) return this._sort;\n this._sort = _;\n this.updateSequence();\n return this;\n }\n\n @publish(null, \"widget\", \"Limit output\")\n _limit: Limit;\n limit(): Limit;\n limit(_: Limit): this;\n limit(_?: Limit): Limit | this {\n if (!arguments.length) return this._limit;\n this._limit = _;\n this.updateSequence();\n return this;\n }\n\n constructor(private _ec: ElementContainer, viewID: string) {\n super();\n this._id = viewID;\n this._datasource = new DSPicker(this._ec);\n this._filters = new Filters(this._ec);\n this._project = new Project();\n this._groupBy = new GroupBy();\n this._sort = new Sort();\n this._limit = new Limit();\n this.updateSequence();\n }\n\n activities(): Activity[];\n activities(_: Activity[]): this;\n activities(_?: Activity[]): Activity[] | this {\n const retVal = super.activities.apply(this, arguments);\n return retVal;\n }\n\n private updateSequence() {\n this.activities([\n this.datasource() as Activity,\n this.filters(),\n this.project(),\n this.groupBy(),\n this.sort(),\n this.limit()\n ]);\n }\n\n selectionFields(): ReadonlyArray<DDL2.IField> {\n return this.last().outFields();\n }\n}\n","import { HipiePipeline } from \"./hipiepipeline\";\n\nexport class NullView extends HipiePipeline {\n hash(): string {\n return super.hash();\n }\n\n _fetch(from: number, count: number): Promise<any[]> {\n return Promise.resolve([]);\n }\n}\nNullView.prototype._class += \" NullView\";\n","import { Spacer, ToggleButton, Widget } from \"@hpcc-js/common\";\nimport { ChartPanel, Modal } from \"@hpcc-js/layout\";\n\nexport interface IVizPopupPanelOwner {\n vizActivation(viz);\n}\n\nexport class VizPopupPanel extends Modal {\n\n private _owner: IVizPopupPanelOwner;\n private _ownerLParam;\n\n constructor(owner: IVizPopupPanelOwner, ownerLParam) {\n super();\n this._owner = owner;\n this._ownerLParam = ownerLParam;\n this._drawStartPos = \"origin\";\n this.visible(false);\n this.minHeight_default(\"240px\");\n this.minWidth_default(\"320px\");\n this.overflowY_default(\"hidden\");\n }\n\n private _host: VizChartPanel;\n host(_?: VizChartPanel): VizChartPanel | this {\n if (!arguments.length) return this._host;\n if (this._host && this._host !== _) {\n this._host._togglePopup\n .selected(false)\n .render()\n ;\n }\n this._host = _;\n this._owner.vizActivation(this._ownerLParam);\n return this;\n }\n\n enter(domNode, element) {\n domNode.parentElement.style.position = \"absolute\";\n const widgetTitle = (this.widget() as ChartPanel).title();\n if (widgetTitle) {\n this.title(widgetTitle);\n (this.widget() as ChartPanel).titleVisible(false);\n }\n super.enter(domNode, element);\n }\n\n update(domNode, element) {\n this.fixedTop(this._pos.y + \"px\");\n this.fixedLeft(this._pos.x + \"px\");\n super.update(domNode, element);\n }\n\n exit(domNode, element) {\n super.exit(domNode, element);\n const widgetTitle = (this.widget() as ChartPanel).title();\n if (widgetTitle) {\n (this.widget() as ChartPanel).titleVisible(true);\n }\n }\n\n closeModal() {\n super.closeModal();\n if (this._host) {\n this._host._togglePopup\n .selected(false)\n .render()\n ;\n }\n }\n}\nVizPopupPanel.prototype._class += \" marshaller_VizPopupPanel\";\n\nexport interface VizPopupPanel {\n widget(_: Widget): this;\n widget(): Widget;\n widget_exists(): boolean;\n minHeight_default(_: string);\n minWidth_default(_: string);\n overflowY_default(_: string);\n}\n\n// ===========================================================================\n\nexport interface VizChartPanel {\n}\n\nexport class VizChartPanel extends ChartPanel {\n\n private _popup: VizPopupPanel;\n _togglePopup = new ToggleButton().faChar(\"fa-filter\").tooltip(\"Filter\")\n .on(\"click\", () => {\n this._popup.host(this);\n const dp = this.locateClosestAncestor([\"marshaller_DashboardDockPanel\", \"marshaller_DashboardGrid\"]);\n const dpBBox = dp.getBBox(true);\n const cp = this._popup.widget() as VizChartPanel;\n const tbBBox = this._togglePopup.getBBox();\n this._popup\n .pos({\n x: -dpBBox.x + tbBBox.x + tbBBox.width - cp.minWidth(),\n y: -dpBBox.y + tbBBox.y + tbBBox.height\n })\n .resize({ width: cp.minWidth(), height: cp.minHeight() })\n .visible(this._togglePopup.selected())\n .render((popup: any) => {\n const widgetSelector = \"#\" + popup.id() + \" .layout_Carousel .common_Widget\";\n const node = popup.element().node();\n if (node) {\n const { height, width } = node.querySelector(widgetSelector).getBoundingClientRect();\n popup.resizeBodySync(width, height);\n }\n })\n ;\n });\n\n private _origButtons: Widget[];\n private _filterButtons: Widget[];\n\n constructor() {\n super();\n\n this._origButtons = this.buttons();\n this._filterButtons = [this._togglePopup, new Spacer(), ...this._origButtons];\n }\n\n popup(_?: VizPopupPanel): VizPopupPanel | this {\n if (!arguments.length) return this._popup;\n this._popup = _;\n if (!this._popup) {\n this._togglePopup.selected(false);\n }\n this.buttons(this._popup ? this._filterButtons : this._origButtons);\n return this;\n }\n}\nVizChartPanel.prototype._class += \" marshaller_VizChartPanel\";\n\nexport interface VizChartPanel {\n minWidth(): number;\n minWidth(_: number): this;\n minWidth(_: number): this;\n minWidth_exists(): boolean;\n minHeight(): number;\n minHeight(_: number): this;\n minHeight_exists(): boolean;\n}\nVizChartPanel.prototype.publish(\"descriptionTemplate\", \"\", \"string\");\nVizChartPanel.prototype.publish(\"minWidth\", 320, \"number\", \"Min Width\");\nVizChartPanel.prototype.publish(\"minHeight\", 240, \"number\", \"Min Height\");\n","import { Area, Bar, Bubble, Column, Contour, HexBin, Line, Pie, Radar, RadialBar, Scatter, Step, WordCloud } from \"@hpcc-js/chart\";\nimport { Database, EntityRectList, InputField, PropertyExt, publish, publishProxy, Widget } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { FieldForm } from \"@hpcc-js/form\";\nimport { AdjacencyGraph, DataGraph } from \"@hpcc-js/graph\";\nimport { ChoroplethCounties, ChoroplethStates, Leaflet } from \"@hpcc-js/map\";\nimport { isArray } from \"@hpcc-js/util\";\nimport { HipiePipeline } from \"../activities/hipiepipeline\";\nimport { ComputedField, Mappings, MultiField } from \"../activities/project\";\nimport { ElementContainer } from \"./element\";\nimport { VizChartPanel } from \"./vizChartPanel\";\n\nexport type VizType = \"Table\" | \"FieldForm\" |\n \"Area\" | \"Bubble\" | \"Bar\" | \"Column\" | \"Contour\" | \"HexBin\" | \"Line\" | \"Pie\" | \"WordCloud\" | \"Radar\" | \"RadialBar\" | \"Scatter\" | \"Step\" |\n \"USCountiesChoropleth\" | \"USStatesChoropleth\" | \"ClusterPins\" |\n \"EntityRectList\" | \"AdjacencyGraph\" | \"DataGraph\";\nconst VizTypeMap: { [key: string]: new (...args: any[]) => object } = {\n Table, FieldForm,\n Area, Bubble, Bar, Column, Contour, HexBin, Line, Pie, Radar, RadialBar, Scatter, Step, WordCloud,\n USCountiesChoropleth: ChoroplethCounties, USStatesChoropleth: ChoroplethStates, ClusterPins: Leaflet.ClusterPins,\n EntityRectList, AdjacencyGraph, DataGraph\n};\nexport const VizTypeSet = [];\nfor (const key in VizTypeMap) {\n VizTypeSet.push(key);\n}\n\nfunction typeClass(type: VizType): any {\n const retVal = VizTypeMap[type];\n return retVal || Table;\n}\n\nfunction typeNew(type: VizType): Widget {\n const ChartClass = VizTypeMap[type];\n const retVal = new (ChartClass || Table)() as Widget;\n\n // Override default properties as needed ---\n if (retVal instanceof FieldForm) {\n retVal\n .validate(false)\n .allowEmptyRequest(true)\n ;\n } else if (retVal instanceof AdjacencyGraph) {\n retVal\n .uidColumn(\"uid\")\n .labelColumn(\"label\")\n .iconColumn(\"icon\")\n .linksColumn(\"links\")\n .linkUidColumn(\"uid\")\n .linkLabelColumn(\"label\")\n ;\n }\n return retVal;\n}\n\nfunction typeInputs(type: VizType): InputField[] {\n return typeClass(type).__inputs || [];\n}\n\nexport class Visualization extends PropertyExt {\n @publishProxy(\"_chartPanel\")\n title: publish<this, string>;\n @publishProxy(\"_chartPanel\")\n description: publish<this, string>;\n @publish(DDL2.VisibilitySet[0], \"set\", \"Type\", DDL2.VisibilitySet)\n _visibility: DDL2.VisibilityType;\n visibility(): DDL2.VisibilityType;\n visibility(_: DDL2.VisibilityType): this;\n visibility(_?: DDL2.VisibilityType): DDL2.VisibilityType | this {\n if (!arguments.length) return this._visibility;\n if (this._visibility !== _) {\n this.chartPanel().target(null);\n }\n this._visibility = _;\n return this;\n }\n\n @publish(\"Table\", \"set\", \"Type\", VizTypeSet)\n _chartType: VizType;\n chartType(): VizType;\n chartType(_: VizType, props?: { [prop: string]: any }): this;\n chartType(_?: VizType, props?: { [prop: string]: any }): VizType | this {\n if (!arguments.length) return this._chartType;\n if (VizTypeSet.indexOf(_) === -1) {\n _ = \"Table\";\n }\n this._chartType = _;\n this.typeChanged();\n if (props) {\n const widget = this.chartPanel().widget();\n for (const prop in props) {\n if (typeof widget[prop] === \"function\") {\n widget[prop](props[prop]);\n }\n }\n }\n return this;\n }\n\n @publish(null, \"set\", \"Secondary Data View (e.g. graph edges)\", function (this: Visualization) { return this.visualizationIDs(); }, { optional: true })\n secondaryDataviewID: publish<this, string>;\n secondaryDataviewID_exists: () => boolean;\n secondaryDataviewID_valid: () => boolean;\n\n @publish(null, \"widget\", \"Mappings\", undefined, { render: false, internal: true })\n mappings: publish<this, Mappings>;\n @publish([], \"widget\", \"Widget\")\n _chartPanel: VizChartPanel;\n chartPanel(): VizChartPanel;\n chartPanel(_: VizChartPanel): this;\n chartPanel(_?: VizChartPanel): VizChartPanel | this {\n if (!arguments.length) return this._chartPanel;\n this._chartPanel = _;\n this._chartPanel\n .on(\"click\", (row: any, col: string, sel: boolean, more) => this.click(row, col, sel, more))\n .on(\"vertex_click\", (row: any, col: string, sel: boolean) => this.vertex_click(row, col, sel))\n ;\n for (const key in VizTypeMap) {\n if (this._chartPanel.widget() instanceof VizTypeMap[key]) {\n this._chartType = key as VizType;\n break;\n }\n }\n return this;\n }\n\n protected _hipiePipeline: HipiePipeline;\n constructor(protected _ec: ElementContainer, hipiePipeline: HipiePipeline) {\n super();\n this._hipiePipeline = hipiePipeline;\n this.mappings(new Mappings());\n this.chartPanel(new VizChartPanel());\n this.typeChanged();\n }\n\n visualizationIDs(): string[] {\n return this._ec.elementIDs().filter(id => id !== this.id());\n }\n\n _prevChartType;\n typeChanged() {\n if (this._prevChartType !== this._chartType) {\n this._prevChartType = this._chartType;\n this.refreshMappings();\n const chart = typeNew(this._chartType);\n this.chartPanel().widget(chart);\n }\n }\n\n properties(): DDL2.IWidgetProperties;\n properties(_: DDL2.IWidgetProperties): this;\n properties(_?: DDL2.IWidgetProperties): DDL2.IWidgetProperties | this {\n if (!arguments.length) return this.chartPanel().serialize();\n this.chartPanel().deserialize(_);\n\n return this;\n }\n\n refreshMappings(): this {\n const mappings = this.mappings();\n mappings.sourceActivity(this._hipiePipeline);\n const cfs = mappings.validComputedFields();\n const inFields = mappings.inFields();\n const taken = {};\n mappings.computedFields(typeInputs(this._chartType).map((input, idx) => {\n let retVal: MultiField | ComputedField = cfs[idx];\n if (retVal) {\n if (retVal instanceof MultiField) {\n } else {\n retVal.label(input.id);\n }\n } else {\n if (input.multi) {\n retVal = new MultiField()\n .owner(mappings)\n .label(input.id)\n ;\n const computedFields: ComputedField[] = [];\n for (const inField of inFields) {\n if ((input.type === \"any\" || input.type === inField.type) && !taken[inField.id]) {\n taken[inField.id] = true;\n computedFields.push(new ComputedField()\n .label(inField.id)\n .type(\"=\")\n .column1(inField.id)\n );\n }\n }\n retVal.multiFields(computedFields);\n } else {\n retVal = new ComputedField()\n .owner(mappings)\n .label(input.id)\n .type(\"=\")\n ;\n for (const inField of inFields) {\n if ((input.type === \"any\" || input.type === inField.type) && !taken[inField.id]) {\n taken[inField.id] = true;\n retVal.column1(inField.id);\n break;\n }\n }\n }\n }\n return retVal;\n }));\n return this;\n }\n\n _prevFields: ReadonlyArray<DDL2.IField> = [];\n _prevLinkFields: ReadonlyArray<DDL2.IField> = [];\n _prevData: ReadonlyArray<object> = [];\n refreshData(): Promise<void> {\n const mappings = this.mappings();\n\n const fields = mappings.outFields();\n const dbFields = this.toDBFields(fields);\n let linkFields: ReadonlyArray<DDL2.IField>;\n let dbLinkFields = [];\n const se = this._ec.element(this.secondaryDataviewID());\n if (se) {\n linkFields = se.mappings().outFields();\n dbLinkFields = this.toDBFields(linkFields);\n }\n\n const fieldsChanged = this._prevFields !== fields || this._prevLinkFields !== linkFields;\n if (fieldsChanged) {\n this._prevFields = fields;\n if (this.chartType() === \"DataGraph\") {\n const dataGraph = this.chartPanel().widget() as DataGraph;\n dataGraph.vertexColumns(dbFields.map(f => f.label()));\n dataGraph.edgeColumns(dbLinkFields.map(f => f.label()));\n } else {\n this.chartPanel().fields(dbFields.filter(f => f.id() !== \"__lparam\"));\n }\n } else {\n console.warn(`***${this.id()} Immutable Fields***`);\n }\n\n const data = mappings.outData();\n const dataChanged = this._prevData !== data;\n if (dataChanged) {\n this._prevData = data;\n const mappedData = this.toDBData(dbFields, data);\n if (this.chartType() === \"DataGraph\") {\n const dataGraph = this.chartPanel().widget() as DataGraph;\n dataGraph.vertices(mappedData);\n if (se) {\n const linkData = se.mappings().outData();\n const mappedLinkData = this.toDBData(dbLinkFields, linkData);\n dataGraph.edges(mappedLinkData);\n }\n } else {\n this.chartPanel().data(mappedData);\n }\n } else {\n console.warn(`${this.id()} Immutable Data!`);\n }\n\n if (fieldsChanged || dataChanged) {\n return this.chartPanel().renderPromise().then(() => { });\n }\n return Promise.resolve();\n }\n\n private fieldTypeTodbFieldType(type: DDL2.IFieldType): Database.FieldType {\n switch (type) {\n case \"dataset\":\n return \"nested\";\n case \"boolean\":\n return \"boolean\";\n case \"number\":\n return \"number\";\n case \"string\":\n default:\n return \"string\";\n }\n }\n\n toDBFields(fields: ReadonlyArray<DDL2.IField>): Database.Field[] {\n const retVal: Database.Field[] = [];\n for (const field of fields || []) {\n const f = new Database.Field()\n .type(this.fieldTypeTodbFieldType(field.type))\n .id(field.id)\n .label(field.id)\n ;\n switch (field.type) {\n case \"dataset\":\n f.children(this.toDBFields(field.children));\n break;\n case \"object\":\n // TODO: For __lparam we should do nothing - not 100% if that is correct for \"real\" data (we don't really support \"object\" anyway)?\n break;\n }\n retVal.push(f);\n }\n return retVal;\n }\n\n toDBData(fields: Database.Field[], data: ReadonlyArray<object> | Readonly<object>) {\n const _data: ReadonlyArray<object> = isArray(data) ? data : [data];\n return _data.map((row: any) => {\n const retVal = [];\n for (const field of fields) {\n if (field.type() === \"nested\") {\n retVal.push(this.toDBData(field.children() as Database.Field[], row[field.id()].Row || row[field.id()]));\n } else {\n retVal.push(row[field.label()]);\n }\n }\n return retVal;\n });\n }\n\n exec(): Promise<void[]> {\n const promises = [];\n if (this.secondaryDataviewID_exists()) {\n const secondaryElementID = this.secondaryDataviewID();\n const secondaryElement = this._ec.element(secondaryElementID);\n if (secondaryElement) {\n promises.push(secondaryElement.visualization().exec());\n }\n }\n\n const mappings = this.mappings();\n mappings.sourceActivity(this._hipiePipeline);\n promises.push(mappings.refreshMeta().then(() => {\n return mappings.exec();\n }));\n\n return Promise.all(promises);\n }\n\n refresh(): Promise<void> {\n this.chartPanel().startProgress && this.chartPanel().startProgress();\n return this.exec().then(() => {\n this.chartPanel().finishProgress && this.chartPanel().finishProgress();\n return this.refreshData();\n });\n }\n\n // Events ---\n click(row: any, col: string, sel: boolean, more?) {\n }\n\n vertex_click(row: any, col: string, sel: boolean) {\n }\n}\nVisualization.prototype._class += \" Visualization\";\n","import { PropertyExt, publish, Widget } from \"@hpcc-js/common\";\nimport { IOptionsSend } from \"@hpcc-js/comms\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { find, hashSum, isArray } from \"@hpcc-js/util\";\nimport { Activity, IActivityError } from \"../activities/activity\";\nimport { emptyDatabomb } from \"../activities/databomb\";\nimport { DatasourceRefType } from \"../activities/datasource\";\nimport { HipiePipeline } from \"../activities/hipiepipeline\";\nimport { Mappings } from \"../activities/project\";\nimport { Visualization } from \"./visualization\";\nimport { VizChartPanel } from \"./vizChartPanel\";\n\nexport class State extends PropertyExt {\n\n constructor() {\n super();\n this.selection([]);\n }\n\n set(_: Array<{ [key: string]: any }>): boolean {\n const currSelHash = hashSum(this.selection());\n const newSelHash = hashSum(_);\n if (currSelHash !== newSelHash) {\n this.selection(_);\n return true;\n }\n return false;\n }\n\n removeInvalid(data: ReadonlyArray<object>): boolean {\n const currSelection = this.selection();\n const newSelection: object[] = [];\n for (const selRow of currSelection) {\n if (find(data, (row: { [key: string]: any }, index): boolean => {\n for (const column in selRow) {\n if (selRow[column] !== row[column]) {\n return false;\n }\n }\n return true;\n })) {\n newSelection.push(selRow);\n }\n }\n if (newSelection.length !== currSelection.length) {\n this.selection(newSelection);\n return true;\n }\n return false;\n }\n}\nState.prototype._class += \" State\";\nexport interface State {\n selection(): Array<{ [key: string]: any }>;\n selection(_: Array<{ [key: string]: any }>): this;\n}\nState.prototype.publish(\"selection\", [], \"array\", \"State\");\n\nlet vizID = 0;\nexport class Element extends PropertyExt {\n private _vizChartPanel: Visualization;\n\n // @publishProxy(\"_MultiChartPanel\")\n // title: publish<this, string>;\n @publish(null, \"widget\", \"Data View\")\n hipiePipeline: publish<this, HipiePipeline>;\n @publish(null, \"widget\", \"Visualization\")\n _visualization: Visualization;\n visualization(): Visualization;\n visualization(_: Visualization): this;\n visualization(_?: Visualization): Visualization | this {\n if (!arguments.length) return this._visualization;\n this._visualization = _;\n this._visualization\n .on(\"click\", (_row: object | object[], col: string, sel: boolean, more?) => {\n if (more && more.selection) {\n this.selection(sel ? more.selection.map(r => r.__lparam || r) : []);\n } else {\n const row: any[] = isArray(_row) ? _row : [_row];\n this.selection(sel ? row.map(r => r.__lparam || r) : []);\n }\n })\n .on(\"vertex_click\", (_row: object | object[], col: string, sel: boolean) => {\n const row: any[] = isArray(_row) ? _row : [_row];\n this.selection(sel ? row.map(r => r.__lparam || r) : []);\n })\n ;\n return this;\n }\n @publish(null, \"widget\", \"State\")\n state: publish<this, State>;\n\n constructor(private _ec: ElementContainer) {\n super();\n while (true) {\n vizID++;\n this._id = `e_${vizID}`;\n if (!this._ec.elementExists(this._id)) {\n break;\n }\n }\n const view = new HipiePipeline(this._ec, this._id);\n this.hipiePipeline(view);\n this._vizChartPanel = new Visualization(this._ec, this.hipiePipeline())\n .id(`viz_${vizID}`)\n .title(`Element ${vizID}`)\n ;\n this._vizChartPanel.chartPanel().id(`cp_${vizID}`);\n this.visualization(this._vizChartPanel);\n this.state(new State());\n }\n\n id(): string;\n id(_: string): this;\n id(_?: string): string | this {\n const retVal = super.id.apply(this, arguments);\n if (arguments.length) {\n this._vizChartPanel.id(_);\n }\n return retVal;\n }\n\n chartType(): string {\n return this._vizChartPanel.chartType();\n }\n\n chartPanel(): VizChartPanel;\n chartPanel(_: VizChartPanel): this;\n chartPanel(_?: VizChartPanel): VizChartPanel | this {\n if (!arguments.length) return this._vizChartPanel.chartPanel();\n this._vizChartPanel.chartPanel(_);\n return this;\n }\n\n chart(): Widget {\n return this._vizChartPanel.chartPanel().widget();\n }\n\n mappings(): Mappings;\n mappings(_: Mappings): this;\n mappings(_?: Mappings): Mappings | this {\n if (!arguments.length) return this._vizChartPanel.mappings();\n this._vizChartPanel.mappings(_);\n return this;\n }\n\n pipeline(activities: Activity[]): this {\n this.hipiePipeline()\n .activities(activities)\n ;\n return this;\n }\n\n updatedBy(): string[] {\n const retVal = this.hipiePipeline().updatedBy();\n if (this.visualization().secondaryDataviewID_exists()) {\n retVal.push(this.visualization().secondaryDataviewID());\n }\n return retVal;\n }\n\n dataProps(): PropertyExt {\n return this.hipiePipeline();\n }\n\n vizProps(): Widget {\n return this.visualization().chartPanel();\n }\n\n stateProps(): PropertyExt {\n return this.state();\n }\n\n private _errors: IElementError[] = [];\n errors(): IElementError[] {\n return this._errors;\n }\n\n validate(): IElementError[] {\n if (!this._initialized) {\n return [];\n }\n this._errors = [];\n const pipeline = this.hipiePipeline();\n for (const activity of [...pipeline.activities(), this.mappings()]) {\n for (const error of activity.validate()) {\n this._errors.push({\n elementID: this.id(),\n ...error\n });\n }\n }\n return this._errors;\n }\n\n private _initialized = false;\n refresh(): Promise<void> {\n const filters = this.hipiePipeline().filters().validFilters();\n const desc: string[] = filters.map(f => f.createFilterDescription());\n this.visualization().chartPanel().description(desc.join(\", \"));\n return this.visualization().refresh().then(() => {\n this._initialized = true;\n const data = this.hipiePipeline().outData();\n if (this.visualization().chartType() === \"FieldForm\") {\n if (this.state().set([...data])) {\n this.selectionChanged();\n }\n } else {\n if (this.state().removeInvalid(data)) {\n this.selectionChanged();\n }\n }\n });\n }\n\n // Selection ---\n selection(): object[];\n selection(_: object[]): this;\n selection(_?: object[]): object[] | this {\n if (!arguments.length) return this.state().selection();\n this.state().selection(_);\n this.selectionChanged();\n return this;\n }\n\n // Events ---\n selectionChanged() {\n const promises: Array<Promise<void>> = [];\n for (const filteredViz of this._ec.filteredBy(this.id())) {\n promises.push(filteredViz.refresh());\n }\n Promise.all(promises).then(() => {\n this._ec.vizStateChanged(this);\n });\n }\n\n monitor(func: (id: string, newVal: any, oldVal: any, source: PropertyExt) => void): { remove: () => void; } {\n return this.hipiePipeline().monitor(func);\n }\n}\nElement.prototype._class += \" Viz\";\n\nexport interface IPersist {\n ddl: DDL2.Schema;\n layout: any;\n}\n\nexport interface IElementError extends IActivityError {\n elementID: string;\n}\n\nexport class ElementContainer extends PropertyExt {\n\n private _nullElement;\n\n private _datasources: DatasourceRefType[] = [emptyDatabomb];\n private _elements: Element[] = [];\n\n @publish(10, \"number\", \"Number of samples\")\n samples: publish<this, number>;\n @publish(100, \"number\", \"Sample size\")\n sampleSize: publish<this, number>;\n\n constructor() {\n super();\n this.clear();\n this._nullElement = new Element(this);\n }\n\n clear(eid?: string) {\n this._datasources = eid === undefined ? [emptyDatabomb] : this._datasources;\n this._elements = eid === undefined ? [] : this._elements.filter(d => d.id() !== eid);\n }\n\n private _hookSend: IOptionsSend;\n hookSend(): IOptionsSend;\n hookSend(_: IOptionsSend): this;\n hookSend(_?: IOptionsSend): IOptionsSend | this {\n if (!arguments.length) return this._hookSend;\n this._hookSend = _;\n return this;\n }\n\n datasources(): DatasourceRefType[];\n datasources(_: DatasourceRefType[]): this;\n datasources(_?: DatasourceRefType[]): DatasourceRefType[] | this {\n if (!arguments.length) return this._datasources;\n this._datasources = _;\n return this;\n }\n\n datasource(id): DatasourceRefType {\n return this._datasources.filter(ds => ds.id() === id)[0];\n }\n\n appendDatasource(ds: DatasourceRefType): this {\n this._datasources.push(ds);\n return this;\n }\n\n removeDatasource(ds: DatasourceRefType): this {\n this._datasources = this._datasources.filter(row => row !== ds);\n return this;\n }\n\n elements(): Element[] {\n return [...this._elements];\n }\n\n element(w: string | PropertyExt | VizChartPanel): Element {\n let retVal: Element[];\n if (typeof w === \"string\") {\n retVal = this._elements.filter(viz => viz.id() === w);\n } else if (w instanceof VizChartPanel) {\n retVal = this._elements.filter(v => v.chartPanel() === w);\n } else {\n retVal = this._elements.filter(v => v.vizProps() === w);\n }\n if (retVal.length) {\n return retVal[0];\n }\n return this._nullElement;\n }\n\n elementExists(w: string | PropertyExt): boolean {\n return this.element(w) !== this._nullElement;\n }\n\n elementIDs() {\n return this._elements.map(viz => viz.id());\n }\n\n append(element: Element): this {\n this._elements.push(element);\n return this;\n }\n\n filteredBy(elemID: string): Element[] {\n return this._elements.filter(otherViz => {\n const filterIDs = otherViz.updatedBy();\n return filterIDs.indexOf(elemID) >= 0;\n });\n }\n\n views(): HipiePipeline[] {\n return this._elements.map(viz => viz.hipiePipeline());\n }\n\n view(id: string): HipiePipeline | undefined {\n return this.views().filter(view => view.id() === id)[0];\n }\n\n normalizePersist(seri: any): { [key: string]: { [key: string]: any } } {\n const ret = {};\n seri.__properties.content.map((n) => {\n const _is_MegaChart = !!n.__properties.widget.__properties.chart;\n const _cell = n;\n const _panel = n.__properties.widget;\n const _widget = _is_MegaChart ? n.__properties.widget.__properties.chart : n.__properties.widget.__properties.widget;\n const _id = n.__properties.widget.__id ? n.__properties.widget.__id : n.__properties.widget.__properties.widget.__id;\n ret[_id] = {\n id: _id,\n package: _widget.__class.split(\"_\")[0],\n object: _widget.__class.split(\"_\")[1],\n cell: _get_params(_cell, [\"chart\", \"widget\", \"fields\"]),\n panel: _get_params(_panel, [\"chart\", \"widget\", \"fields\"]),\n widget: _get_params(_widget, [\"fields\"])\n };\n });\n return ret;\n function _get_params(_o, exclude_list) {\n const ret = {};\n Object.keys(_o.__properties)\n .filter(n => exclude_list.indexOf(n) === -1)\n .forEach(n => ret[n] = _o.__properties[n]);\n return ret;\n }\n }\n\n validate(): IElementError[] {\n let retVal: IElementError[] = [];\n this._elements.forEach(elem => {\n retVal = retVal.concat(elem.validate());\n });\n return retVal;\n }\n\n refresh(): Promise<this> {\n return Promise.all(this.elements().map(element => element.refresh())).then(() => {\n return this;\n });\n }\n\n // Events ---\n vizStateChanged(viz: Element) {\n }\n}\nElementContainer.prototype._class += \" dashboard_ElementContainer\";\n","function responseText(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n return response.text();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseText);\n}\n","import { IMonitorHandle, Widget } from \"@hpcc-js/common\";\nimport { compare } from \"@hpcc-js/util\";\nimport { ElementContainer } from \"./model/element\";\nimport { IVizPopupPanelOwner, VizChartPanel, VizPopupPanel } from \"./model/vizChartPanel\";\n\nexport class PopupManager extends Widget implements IVizPopupPanelOwner {\n protected _ec: ElementContainer;\n protected _popups: VizPopupPanel[] = [];\n protected _popupIdx: {\n [id: string]: {\n panel: VizPopupPanel,\n monitorHandle: IMonitorHandle\n }\n } = {};\n\n popupPanels(): VizPopupPanel[] {\n if (!this._popups) this._popups = [];\n if (!this._popupIdx) this._popupIdx = {};\n return this._popups;\n }\n\n popupChartPanels(): VizChartPanel[] {\n return this.popupPanels().map(p => p.widget() as VizChartPanel);\n }\n\n addPopup(cp: VizChartPanel) {\n const elem = this._ec.element(cp);\n const targetNode = this.element().node();\n const pp = new VizPopupPanel(this, elem)\n .target(targetNode)\n .widget(cp)\n .relativeTargetId(this.id())\n .size({\n width: cp.minWidth(),\n height: cp.minHeight()\n });\n this._popups.push(pp);\n this._popupIdx[cp.id()] = {\n panel: pp,\n monitorHandle: cp.monitor((id) => {\n switch (id) {\n case \"minWidth\":\n case \"minHeight\":\n pp\n .resize({ width: cp.minWidth(), height: cp.minHeight() })\n .render()\n ;\n break;\n }\n })\n };\n this._ec.filteredBy(elem.id()).forEach(otherElem => {\n otherElem.visualization().chartPanel().popup(pp);\n });\n }\n\n removePopup(cp: VizChartPanel) {\n const elem = this._ec.element(cp);\n this._ec.filteredBy(elem.id()).forEach(otherElem => {\n otherElem.visualization().chartPanel().popup(null);\n });\n this._popupIdx[cp.id()].panel.target(null);\n this._popupIdx[cp.id()].monitorHandle.remove();\n cp.target(null);\n delete this._popupIdx[cp.id()];\n this._popups = this._popups.filter(p => p.widget() !== cp);\n }\n\n syncPopups() {\n const prevPopups = this.popupChartPanels();\n const diffPopups = compare(prevPopups, this._ec.elements()\n .filter(e => e.visualization().visibility() === \"flyout\")\n .map((elem: any) => elem.visualization().chartPanel()))\n ;\n\n for (const w of diffPopups.exit) {\n this.removePopup(w);\n }\n\n for (const w of diffPopups.enter) {\n this.addPopup(w);\n }\n\n return this;\n }\n\n vizActivation() {\n }\n}\n","import { Widget } from \"@hpcc-js/common\";\nimport { DockPanel, IClosable, WidgetAdapter } from \"@hpcc-js/phosphor\";\nimport { compare } from \"@hpcc-js/util\";\nimport { select as d3Select } from \"d3-selection\";\nimport { Element, ElementContainer } from \"./model/element\";\nimport { IVizPopupPanelOwner } from \"./model/vizChartPanel\";\nimport { PopupManager } from \"./PopupManager\";\n\nexport class DashboardDockPanel extends DockPanel implements IClosable, IVizPopupPanelOwner {\n\n constructor(private _ec: ElementContainer) {\n super();\n\n }\n\n tabTitle(element: Element): string {\n if (this.hideSingleTabs()) {\n return element.visualization().title ? element.visualization().title() : element.visualization().id();\n }\n return element.id();\n }\n\n titleClassed(wa: WidgetAdapter, classID: string, include: boolean) {\n let classes = wa.title.className.split(\" \");\n if (include && classes.indexOf(classID) < 0) {\n classes.push(classID);\n } else if (!include && classes.indexOf(classID) > 0) {\n classes = classes.filter(c => c !== classID);\n }\n wa.title.className = classes.join(\" \");\n }\n\n updateTitle(w: Widget) {\n const wa: WidgetAdapter = this.getWidgetAdapter(w);\n const element: Element = this._ec.element(w);\n const errors = element.validate();\n wa.title.label = this.tabTitle(element);\n this.titleClassed(wa, \"error\", errors.length > 0);\n wa.title.caption = errors.map(err => `${err.source}: ${err.msg}`).join(\"\\n\");\n }\n\n activate(element: Element) {\n const wa = this.getWidgetAdapter(element.visualization().chartPanel());\n if (wa) {\n wa.activate();\n }\n }\n\n syncMinSize(w: any): boolean {\n if (w.minWidth_exists() || w.minHeight_exists()) {\n const wa = this.getWidgetAdapter(w);\n d3Select(wa.node)\n .style(\"min-width\", `${w.minWidth()}px`)\n .style(\"min-height\", `${w.minHeight()}px`)\n ;\n return true;\n }\n return false;\n }\n\n syncWidgets() {\n const prevWidgets = this.widgets();\n const diffWidgets = compare(prevWidgets, this._ec.elements().filter(e => e.visualization().visibility() === \"normal\").map(viz => viz.visualization().chartPanel()));\n\n let refit = false;\n for (const w of diffWidgets.exit) {\n this.removeWidget(w);\n }\n\n for (const w of diffWidgets.enter) {\n const element: Element = this._ec.element(w);\n this.addWidget(w, this.tabTitle(element), \"split-bottom\", undefined, this.hideSingleTabs() ? undefined : this);\n refit = this.syncMinSize(w) || refit; // ensure syncMinSize is called\n }\n\n for (const w of diffWidgets.update) {\n this.updateTitle(w);\n refit = this.syncMinSize(w) || refit; // ensure syncMinSize is called\n }\n\n if (refit) {\n this.refit();\n }\n\n return this;\n }\n\n // Events ---\n childActivation(w: Widget, wa: WidgetAdapter) {\n super.childActivation(w, wa);\n this.vizActivation(this._ec.element(w));\n for (const wa2 of this.widgetAdapters()) {\n if (wa2 === wa) {\n wa2.addClass(\"active\");\n this.titleClassed(wa2, \"active\", true);\n wa2.title.iconClass = \"active\";\n } else {\n wa2.removeClass(\"active\");\n this.titleClassed(wa2, \"active\", false);\n wa2.title.iconClass = \"\";\n }\n }\n }\n\n vizActivation(viz: Element) {\n }\n\n // IClosable ---\n canClose(w: Widget, wa: WidgetAdapter): boolean {\n const id = this._ec.element(w).id();\n const retVal = window.confirm(`Remove Widget \"${id}\"?`);\n if (retVal) {\n this._ec.clear(id);\n this.syncWidgets();\n this.vizActivation(undefined);\n }\n return retVal;\n }\n\n syncPopups() { }\n}\nDashboardDockPanel.prototype._class += \" marshaller_DashboardDockPanel\";\nDashboardDockPanel.prototype.mixin(PopupManager);\n","import { Widget } from \"@hpcc-js/common\";\nimport { Cell, Grid } from \"@hpcc-js/layout\";\nimport { IClosable, WidgetAdapter } from \"@hpcc-js/phosphor\";\nimport { compare } from \"@hpcc-js/util\";\nimport { IDockPanel } from \"./dashboard\";\nimport { Element, ElementContainer } from \"./model/element\";\nimport { IVizPopupPanelOwner } from \"./model/vizChartPanel\";\nimport { PopupManager } from \"./PopupManager\";\n\nexport class DashboardGrid extends Grid implements IClosable, IVizPopupPanelOwner, IDockPanel {\n private _layoutCache = [];\n constructor(private _ec: ElementContainer) {\n super();\n\n this.designMode(false);\n this.surfacePadding(\"0\");\n this.surfaceBorderWidth(0);\n }\n updateGrid(resize, transitionDuration: number = 0, _noRender: boolean = false) {\n super.updateGrid(resize, transitionDuration, _noRender);\n this._layoutCache = this.content().map(cellWidget => {\n return {\n id: cellWidget.widget().id(),\n position: [\n cellWidget.gridCol(),\n cellWidget.gridRow(),\n cellWidget.gridColSpan(),\n cellWidget.gridRowSpan()\n ]\n };\n });\n }\n layoutObj(_: object | null): this {\n if (_) {\n if ((_ as any).main) {\n const convertedLayout = ddl2_layout(_, 10, 10);\n this._layoutCache = convertedLayout;\n } else if (_ instanceof Array) {\n this._layoutCache = _;\n }\n }\n return this;\n\n function ddl2_layout(layoutObject, rows, cols) {\n const ret = [];\n dive(layoutObject.main, 0, 0, rows, cols);\n return ret;\n function dive(o, x, y, w, h) {\n if (o.children) {\n if (o.type === \"split-area\") {\n if (o.orientation === \"horizontal\") {\n o.children.forEach((child, i) => {\n const _w = o.sizes[i] * w;\n const _h = h;\n const _x = i === 0 ? x : x + o.sizes[0] * w;\n const _y = y;\n dive(o.children[i], _x, _y, _w, _h);\n });\n } else if (o.orientation === \"vertical\") {\n o.children.forEach((child, i) => {\n const _w = w;\n const _h = o.sizes[i] * h;\n const _x = x;\n const _y = i === 0 ? y : y + o.sizes[0] * h;\n dive(o.children[i], _x, _y, _w, _h);\n });\n } else {\n console.error(\"wtf\");\n }\n } else if (o.type === \"tab-area\") {\n o.children.forEach((child, i) => {\n const _w = w;\n const _h = o.sizes[i] * h;\n const _x = x;\n const _y = i === 0 ? y : y + o.sizes[0] * h;\n dive(o.children[i], _x, _y, _w, _h);\n });\n }\n } else {\n ret.push([x, y, w, h].map(Math.round));\n }\n }\n }\n }\n layout() {\n return this._layoutCache;\n }\n widgets() {\n return this.content().map(c => c.widget());\n }\n hideSingleTabs() {\n return true;\n }\n getWidgetAdapter() {\n }\n\n tabTitle(element: Element): string {\n if (this.hideSingleTabs()) {\n return element.visualization().title ? element.visualization().title() : element.visualization().id();\n }\n return element.id();\n }\n\n updateTitle(w: Widget) {\n const cell: Cell = this.getWidgetCell(w.id());\n const element: Element = this._ec.element(w);\n const tabTitle = this.tabTitle(element);\n (cell.widget() as any)\n .title(tabTitle)\n ;\n }\n\n activate(element: Element) {\n }\n\n removeWidget(w: Widget) {\n const cell = this.getWidgetCell(w.id());\n this.clearContent(cell);\n }\n\n syncMinSize(w: any): boolean {\n if (w.minWidth_exists() || w.minHeight_exists()) {\n const cell: Cell = this.getWidgetCell(w.id());\n cell.element()\n .style(\"min-width\", `${w.minWidth()}px`)\n .style(\"min-height\", `${w.minHeight()}px`)\n ;\n return true;\n }\n return false;\n }\n\n syncWidgets() {\n const prevWidgets = this.widgets();\n const diffWidgets = compare(prevWidgets, this._ec.elements().filter(e => e.visualization().visibility() === \"normal\").map(viz => viz.visualization().chartPanel()));\n\n for (const w of diffWidgets.exit) {\n this.removeWidget(w);\n }\n let maxX = 0;\n let maxY = 0;\n const no_layout_added = [];\n for (const widget of diffWidgets.enter) {\n const element: Element = this._ec.element(widget);\n const i = this.content().length;\n if (this._layoutCache && this._layoutCache[i]) {\n const layout = (this._layoutCache as any).find(n => n.id === widget.id());\n if (layout) {\n const [x, y, w, h] = layout.position;\n this.setContent(y, x, element.visualization().chartPanel(), \"\", h, w);\n if (x + w > maxX) maxX = x + w;\n if (y + h > maxY) maxY = y + h;\n } else {\n no_layout_added.push(element.visualization().chartPanel());\n }\n } else {\n no_layout_added.push(element.visualization().chartPanel());\n }\n }\n let freeRow = this.content().reduce((prev, curr) => Math.max(prev, curr.gridRow() + curr.gridRowSpan()), 0);\n no_layout_added.forEach(cp => {\n this.setContent(freeRow, 0, cp, \"\", 3, 3);\n freeRow += 3;\n });\n for (const w of diffWidgets.update) {\n this.updateTitle(w);\n }\n return this;\n }\n\n // Events ---\n childActivation(w: Widget, wa?: WidgetAdapter) {\n this.vizActivation(this._ec.element(w));\n }\n\n postSelectionChange() {\n super.postSelectionChange();\n const selected = this._selectionBag.get();\n if (selected.length > 0) {\n this.childActivation(selected[0].widget.widget());\n }\n }\n\n vizActivation(viz: Element) {\n }\n\n // IClosable ---\n canClose(w: Widget, wa: WidgetAdapter): boolean {\n const id = this._ec.element(w).id();\n const retVal = window.confirm(`Remove Widget \"${id}\"?`);\n if (retVal) {\n this._ec.clear(id);\n this.syncWidgets();\n this.vizActivation(undefined);\n }\n return retVal;\n }\n\n syncPopups() { }\n}\nDashboardGrid.prototype._class += \" marshaller_DashboardGrid\";\nDashboardGrid.prototype.mixin(PopupManager);\n","import { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { scopedLogger } from \"@hpcc-js/util\";\nimport { BUILD_VERSION, PKG_NAME, PKG_VERSION } from \"../__package__\";\nimport { ActivityPipeline, ReferencedFields } from \"./activities/activity\";\nimport { Databomb } from \"./activities/databomb\";\nimport { DatasourceRef, DatasourceRefType, DatasourceType } from \"./activities/datasource\";\nimport { DSPicker } from \"./activities/dspicker\";\nimport { Filters } from \"./activities/filter\";\nimport { Form } from \"./activities/form\";\nimport { GroupBy } from \"./activities/groupby\";\nimport { Limit } from \"./activities/limit\";\nimport { LogicalFile } from \"./activities/logicalfile\";\nimport { Mappings, Project } from \"./activities/project\";\nimport { Param, RestResult, RestResultRef, RestService } from \"./activities/rest\";\nimport { HipieResultRef, RoxieResult, RoxieResultRef, RoxieService } from \"./activities/roxie\";\nimport { Sort } from \"./activities/sort\";\nimport { WU, WUResult, WUResultRef } from \"./activities/wuresult\";\nimport { Dashboard } from \"./dashboard\";\nimport { Element, ElementContainer } from \"./model/element\";\nimport { Visualization } from \"./model/visualization\";\n\nconst logger = scopedLogger(\"marshaller/ddl2/ddl\");\n\ntype DatasourceRefTypeMap = { [key: string]: { refType: DatasourceRefType, ref: DatasourceRef } };\ntype ServerRefTypeMap = { [key: string]: { ds: DatasourceType, result: DatasourceRefTypeMap } };\n\nclass DDLDatasourceAdapter {\n private _dsDedup: ServerRefTypeMap;\n\n constructor() {\n }\n\n clear() {\n this._dsDedup = {};\n }\n\n id(dsT: DatasourceType): string {\n if (dsT instanceof WU) {\n return `${dsT.url()}/${dsT.wuid()}`;\n } else if (dsT instanceof RoxieService) {\n return `${dsT.url()}/${dsT.querySet()}/${dsT.queryID()}`;\n } else if (dsT instanceof RestService) {\n return `${dsT.url()}/${dsT.action()}`;\n }\n return dsT.id();\n }\n\n _resolveID(dsT: DatasourceType): string {\n return this._dsDedup[this.id(dsT)].ds.id();\n }\n\n resolveID(dsRef: DatasourceRef): string | undefined {\n if (dsRef instanceof WUResultRef) {\n return this._resolveID(dsRef.datasource().wu());\n } else if (dsRef instanceof RoxieResultRef) {\n return this._resolveID(dsRef.datasource().service());\n } else if (dsRef instanceof HipieResultRef) {\n return this._resolveID(dsRef.datasource().service());\n } else if (dsRef instanceof RestResultRef) {\n return this._resolveID(dsRef.datasource().service());\n }\n }\n\n append(pDS: DSPicker | DatasourceRefType) {\n const refType: DatasourceRefType = pDS instanceof DSPicker ? pDS.datasource() : pDS;\n const ref: DatasourceRef = pDS instanceof DSPicker ? pDS.datasourceRef() : undefined;\n const dsTID = refType.id();\n const ds: DatasourceType = refType instanceof WUResult ? refType.wu() : refType instanceof RoxieResult ? refType.service() : refType instanceof RestResult ? refType.service() : refType;\n const dsID = this.id(ds);\n if (!this._dsDedup[dsID]) {\n this._dsDedup[dsID] = {\n ds,\n result: {}\n };\n }\n if (!this._dsDedup[dsID].result[dsTID]) {\n this._dsDedup[dsID].result[dsTID] = {\n refType,\n ref\n };\n }\n }\n\n getAll(): DDL2.DatasourceType[] {\n const retVal: DDL2.DatasourceType[] = [];\n for (const key in this._dsDedup) {\n const ddl = this._dsDedup[key].ds.toDDL();\n\n // Inputs ---\n if (ddl.type === \"roxie\" || ddl.type === \"hipie\" || ddl.type === \"rest\") {\n const inputs: { [fieldID: string]: DDL2.IField } = {};\n for (const key2 in this._dsDedup[key].result) {\n const ddl2 = this._dsDedup[key].result[key2].refType.toDDL();\n const refs: ReferencedFields = {\n inputs: {},\n outputs: {}\n };\n this._dsDedup[key].result[key2].ref.referencedFields(refs);\n for (const inElementID in refs.inputs) {\n refs.inputs[inElementID].forEach(fieldID => {\n inputs[fieldID] = (ddl2 as any).inputs.filter(row => row.id === fieldID)[0];\n });\n }\n }\n ddl.inputs = [];\n for (const key in inputs) {\n ddl.inputs.push(inputs[key]);\n }\n }\n\n // Outputs ---\n if (ddl.type === \"wuresult\" || ddl.type === \"roxie\" || ddl.type === \"hipie\" || ddl.type === \"rest\") {\n const outputs: { [fieldID: string]: DDL2.IOutput } = {};\n for (const key2 in this._dsDedup[key].result) {\n const ddl2 = this._dsDedup[key].result[key2].refType.toDDL();\n if (ddl2.type === \"wuresult\" || ddl2.type === \"roxie\" || ddl2.type === \"hipie\" || ddl2.type === \"rest\") {\n for (const outputID in ddl2.outputs) {\n outputs[outputID] = ddl2.outputs[outputID];\n }\n }\n }\n ddl.outputs = {};\n for (const key in outputs) {\n ddl.outputs[key] = outputs[key];\n }\n }\n retVal.push(ddl);\n }\n return retVal;\n }\n}\n\nexport class DDLAdapter {\n private _dashboard: Dashboard;\n private _ec: ElementContainer;\n private _dsWriteDedup: DDLDatasourceAdapter = new DDLDatasourceAdapter();\n private _dsReadDedup: { [id: string]: WU | RoxieService | RestService } = {};\n\n constructor(dashboard: Dashboard) {\n this._dashboard = dashboard;\n this._ec = this._dashboard.elementContainer();\n }\n\n writeDatasources(): DDL2.DatasourceType[] {\n for (const viz of this._ec.elements()) {\n this._dsWriteDedup.append(viz.hipiePipeline().datasource());\n }\n return this._dsWriteDedup.getAll();\n }\n\n writeFilters(filters: Filters): DDL2.IFilter {\n if (!filters.exists()) return undefined;\n return filters.toDDL();\n }\n\n readFilters(ddlFilter: DDL2.IFilter, ec: ElementContainer): Filters {\n return Filters.fromDDL(ec, ddlFilter);\n }\n\n writeProject(project: Project): DDL2.IProject {\n if (!project.exists()) return undefined;\n return project.toDDL();\n }\n\n readProject(ddlProject: DDL2.IProject): Project {\n return Project.fromDDL(ddlProject);\n }\n\n writeMappings(mappings: Mappings): DDL2.IMappings {\n if (!mappings.exists()) return { type: \"mappings\", transformations: [] };\n return mappings.toDDL();\n }\n\n readMappings(ddlProject: DDL2.IMappings): Mappings {\n return Mappings.fromDDL(ddlProject);\n }\n\n writeGroupBy(gb: GroupBy): DDL2.IGroupBy {\n if (!gb.exists()) return undefined;\n return gb.toDDL();\n }\n\n readGroupBy(ddlGB: DDL2.IGroupBy): GroupBy {\n return GroupBy.fromDDL(ddlGB);\n }\n\n writeSort(sort: Sort): DDL2.ISort {\n if (!sort.exists()) return undefined;\n return sort.toDDL();\n }\n\n readSort(ddlSort: DDL2.ISort): Sort {\n return Sort.fromDDL(ddlSort);\n }\n\n writeLimit(limit: Limit): DDL2.ILimit {\n if (!limit.exists()) return undefined;\n return limit.toDDL();\n }\n\n readLimit(ddlLimit: DDL2.ILimit): Limit {\n return Limit.fromDDL(ddlLimit);\n }\n\n readDatasourceRef(ddlDSRef: DDL2.IDatasourceRef, dsPicker: DSPicker, elementContainer: ElementContainer): this {\n if (DDL2.isWUResultRef(ddlDSRef)) {\n const wu = this._dsReadDedup[ddlDSRef.id] as WU;\n dsPicker.datasourceID(wu.output(ddlDSRef.output).id());\n } else if (DDL2.isRoxieServiceRef(ddlDSRef)) {\n dsPicker.datasourceID(`${ddlDSRef.id}_${ddlDSRef.output}`);\n const dsRef = dsPicker.datasourceRef() as RoxieResultRef | RestResultRef;\n dsRef\n .request(ddlDSRef.request.map(rf => {\n return Param.fromDDL(this._ec, rf);\n }))\n ;\n } else {\n dsPicker.datasourceID(ddlDSRef.id);\n }\n return this;\n }\n\n writeActivities(view: ActivityPipeline): DDL2.ActivityType[] {\n return view.activities().map(activity => {\n if (activity instanceof Filters) {\n return this.writeFilters(activity);\n } else if (activity instanceof Project) {\n return this.writeProject(activity);\n } else if (activity instanceof GroupBy) {\n return this.writeGroupBy(activity);\n } else if (activity instanceof Sort) {\n return this.writeSort(activity);\n } else if (activity instanceof Limit) {\n return this.writeLimit(activity);\n } else if (activity instanceof Mappings) {\n return this.writeMappings(activity);\n } else if (activity instanceof DSPicker) {\n // Fall through ---\n } else {\n logger.warning(`Unknown activity type: ${activity.classID()}`);\n }\n }).filter(activity => !!activity);\n }\n\n writeVisualization(visualization: Visualization): DDL2.IVisualization {\n return {\n id: visualization.chartPanel().id(),\n title: visualization.title(),\n description: visualization.description(),\n visibility: visualization.visibility(),\n chartType: visualization.chartType(),\n __class: visualization.chartPanel().widget().classID(),\n mappings: this.writeMappings(visualization.mappings()),\n properties: visualization.properties(),\n secondaryDataviewID: visualization.secondaryDataviewID()\n };\n }\n\n readVisualization(ddlViz: DDL2.IVisualization, visualization: Visualization): this {\n const mappings = this.readMappings(ddlViz.mappings);\n visualization.chartPanel().id(ddlViz.id);\n visualization\n .title(ddlViz.title)\n .description(ddlViz.description)\n .visibility(ddlViz.visibility)\n .chartType(ddlViz.chartType as any)\n .properties(ddlViz.properties)\n .mappings(mappings)\n .secondaryDataviewID(ddlViz.secondaryDataviewID)\n ;\n return this;\n }\n\n writeViewDatasource(dsRef: DatasourceRef) {\n const retVal = dsRef.toDDL();\n retVal.id = this._dsWriteDedup.resolveID(dsRef) || retVal.id;\n return retVal;\n }\n\n writeDDLViews(): DDL2.IView[] {\n // Gather referenced fields ---\n const refFields: ReferencedFields = { inputs: {}, outputs: {} };\n for (const element of this._ec.elements()) {\n element.visualization().mappings().referencedFields(refFields);\n }\n\n return this._ec.elements().map(element => {\n const view = element.hipiePipeline();\n const dsPicker = view.datasource();\n if (dsPicker instanceof DSPicker) {\n const dsRef = dsPicker.datasourceRef();\n const retVal = {\n id: element.id(),\n datasource: this.writeViewDatasource(dsRef),\n activities: this.writeActivities(view),\n visualization: this.writeVisualization(element.visualization())\n };\n return retVal;\n }\n throw new Error(\"Missing DSPicker?\");\n });\n }\n\n writeProperties(): DDL2.IProperties {\n return {\n name: PKG_NAME,\n version: PKG_VERSION,\n buildVersion: BUILD_VERSION,\n layout: this._dashboard.layout() as any\n };\n }\n\n readDDLViews(ddlViews: DDL2.IView[]) {\n for (const ddlView of ddlViews) {\n const element = new Element(this._ec).id(ddlView.id);\n this._ec.append(element);\n const hipiePipeline = element.hipiePipeline();\n this.readDatasourceRef(ddlView.datasource, hipiePipeline.datasource() as DSPicker, this._ec);\n for (const activity of ddlView.activities) {\n if (DDL2.isProjectActivity(activity)) {\n const project = this.readProject(activity);\n hipiePipeline.project(project);\n }\n if (DDL2.isFilterActivity(activity)) {\n const filters = this.readFilters(activity, this._ec);\n hipiePipeline.filters(filters);\n }\n if (DDL2.isGroupByActivity(activity)) {\n const groupBy = this.readGroupBy(activity);\n hipiePipeline.groupBy(groupBy);\n }\n if (DDL2.isSortActivity(activity)) {\n const sort = this.readSort(activity);\n hipiePipeline.sort(sort);\n }\n if (DDL2.isLimitActivity(activity)) {\n const limit = this.readLimit(activity);\n hipiePipeline.limit(limit);\n }\n }\n this.readVisualization(ddlView.visualization, element.visualization());\n }\n }\n\n readProperties(properties: DDL2.IProperties) {\n if (properties && properties.layout) {\n this._dashboard.layoutObj(properties.layout as object);\n }\n }\n\n write(): DDL2.Schema {\n this._dsWriteDedup.clear();\n const retVal: DDL2.Schema = {\n version: \"2.2.1\",\n createdBy: {\n name: PKG_NAME,\n version: PKG_VERSION\n },\n datasources: this.writeDatasources(),\n dataviews: this.writeDDLViews(),\n properties: this.writeProperties(),\n hipieProperties: this._dashboard.hipieProps()\n };\n return retVal;\n }\n\n read(ddl: DDL2.Schema) {\n this._dsWriteDedup.clear();\n for (const ddlDS of ddl.datasources) {\n switch (ddlDS.type) {\n case \"databomb\":\n this._ec.appendDatasource(Databomb.fromDDL(ddlDS));\n break;\n case \"form\":\n this._ec.appendDatasource(Form.fromDDL(ddlDS));\n break;\n case \"logicalfile\":\n this._ec.appendDatasource(LogicalFile.fromDDL(this._ec, ddlDS));\n break;\n case \"wuresult\":\n const wu = WU.fromDDL(this._ec, ddlDS);\n this._dsReadDedup[wu.id()] = wu;\n for (const resultName in ddlDS.outputs) {\n this._ec.appendDatasource(wu.output(resultName));\n }\n break;\n case \"roxie\":\n case \"hipie\":\n const rs = RoxieService.fromDDL(this._ec, ddlDS);\n this._dsReadDedup[rs.id()] = rs;\n for (const resultName in ddlDS.outputs) {\n this._ec.appendDatasource(RoxieResult.fromDDL(this._ec, rs, resultName));\n }\n break;\n case \"rest\":\n const rs2 = RestService.fromDDL(this._ec, ddlDS);\n this._dsReadDedup[rs2.id()] = rs2;\n for (const resultName in ddlDS.outputs) {\n this._ec.appendDatasource(RestResult.fromDDL(this._ec, rs2, resultName));\n }\n break;\n default:\n logger.warning(`Unknown ddl datasource type: ${(ddlDS as any).type} `);\n }\n }\n this.readDDLViews(ddl.dataviews);\n this.readProperties(ddl.properties);\n this._dashboard.hipieProps(ddl.hipieProperties);\n }\n}\n","import { PropertyExt } from \"@hpcc-js/common\";\nimport { DDL2 } from \"@hpcc-js/ddl-shim\";\nimport { classID2Meta, ClassMeta, isArray } from \"@hpcc-js/util\";\nimport { Activity, stringify } from \"./activities/activity\";\nimport { Dashboard } from \"./dashboard\";\nimport { DDLAdapter } from \"./ddl\";\nimport { ElementContainer } from \"./model/element\";\n\ntype WidgetImport = { [moduleID: string]: { [classID: string]: boolean } };\n\nclass Imports {\n _moduleMap: WidgetImport = {};\n\n append(widgetMeta: ClassMeta) {\n if (!this._moduleMap[widgetMeta.module]) {\n this._moduleMap[widgetMeta.module] = {};\n }\n this._moduleMap[widgetMeta.module][widgetMeta.class] = true;\n }\n\n write(): string {\n const importJS: string[] = [];\n for (const moduleID in this._moduleMap) {\n const classIDs: string[] = [];\n for (const classID in this._moduleMap[moduleID]) {\n classIDs.push(classID);\n }\n classIDs.sort();\n importJS.push(`import { ${classIDs.join(\", \")} } from \"${moduleID}\";`);\n }\n return importJS.join(\"\\n\");\n }\n}\n\nexport function createProps(pe: PropertyExt): { [key: string]: any } {\n const retVal: { [key: string]: any } = {};\n for (const meta of pe.publishedProperties()) {\n if (pe[meta.id + \"_modified\"]() && meta.id !== \"fields\") {\n const val = pe[meta.id]();\n switch (meta.type) {\n case \"propertyArray\":\n const serialization = val.map(createProps);\n if (serialization) {\n retVal[meta.id] = serialization;\n }\n break;\n default:\n retVal[meta.id] = val;\n }\n }\n }\n return retVal;\n}\n\nexport class JavaScriptAdapter {\n private _dashboard: Dashboard;\n private _ec: ElementContainer;\n private _ddlAdapter: DDLAdapter;\n private _ddlSchema: DDL2.Schema;\n\n constructor(dashboard: Dashboard) {\n this._dashboard = dashboard;\n this._ec = this._dashboard.elementContainer();\n this._ddlAdapter = new DDLAdapter(this._dashboard);\n this._ddlSchema = this._ddlAdapter.write();\n }\n\n createProps(prefix: string, pe: PropertyExt, postfix: string = \"\"): string[] {\n let retVal: string[] = [];\n for (const meta of pe.publishedProperties()) {\n if ((pe as any)[meta.id + \"_exists\"]()) {\n switch (meta.type) {\n case \"string\":\n case \"set\":\n retVal.push(`${prefix}.${meta.id}(\"${(pe as any)[meta.id]()}\")${postfix};`);\n break;\n case \"number\":\n case \"boolean\":\n retVal.push(`${prefix}.${meta.id}(${(pe as any)[meta.id]()})${postfix};`);\n break;\n case \"widget\":\n retVal = retVal.concat(this.createProps(`${prefix}.${meta.id}()`, (pe as any)[meta.id]()));\n break;\n case \"propertyArray\":\n if (meta.ext)\n retVal.push(`${prefix}.${meta.id}([${(pe as any)[meta.id]()}])${postfix};`);\n break;\n default:\n break;\n }\n }\n }\n return retVal;\n }\n\n writeMeta(dsDetails: Activity) {\n return \"\";\n }\n\n private safeID(id: string): string {\n if (!id) return id;\n return id.replace(/ /g, \"_\").replace(/\\./g, \"_\");\n }\n\n private datasourceRefID(view: DDL2.IView): string {\n const datasourceRef = view.datasource;\n if (DDL2.isRoxieServiceRef(datasourceRef)) {\n return `${this.safeID(datasourceRef.id)}_${this.safeID(datasourceRef.output)}_${this.safeID(view.id)}`;\n } else if (DDL2.isWUResultRef(datasourceRef)) {\n return `${this.safeID(datasourceRef.id)}_${this.safeID(datasourceRef.output)}`;\n }\n return `${this.safeID(datasourceRef.id)}`;\n }\n\n _dedup: { [key: string]: boolean } = {};\n private writeDatasource(view: DDL2.IView): string[] {\n const datasourceRef = view.datasource;\n const retVal: string[] = [];\n const datasource = this._ddlSchema.datasources.filter(ds => ds.id === datasourceRef.id)[0];\n const outputID = (datasourceRef as any).output;\n const id = this.datasourceRefID(view);\n if (!this._dedup[id]) {\n this._dedup[id] = true;\n switch (datasource.type) {\n case \"wuresult\":\n const wuID = this.safeID(view.datasource.id);\n if (!this._dedup[wuID]) {\n this._dedup[wuID] = true;\n retVal.push(` export const ${wuID} = new marshaller.WU()\n .url(\"${datasource.url}\")\n .wuid(\"${datasource.wuid}\")\n ;`);\n }\n retVal.push(` export const ${id} = new marshaller.WUResult()\n .wu(${wuID})\n .resultName(\"${outputID}\")\n .responseFields(${stringify(datasource.outputs[outputID].fields)})\n ;`);\n break;\n case \"logicalfile\":\n retVal.push(` export const ${id} = new marshaller.LogicalFile()\n .url(\"${datasource.url}\")\n .logicalFile(\"${datasource.logicalFile}\")\n .responseFields(${stringify(datasource.fields)})\n ;`);\n break;\n case \"hipie\":\n case \"roxie\":\n const serviceID = this.safeID(view.datasource.id);\n if (!this._dedup[serviceID]) {\n this._dedup[serviceID] = true;\n retVal.push(` export const ${serviceID} = new marshaller.RoxieService(ec)\n .url(\"${datasource.url}\")\n .querySet(\"${datasource.querySet}\")\n .queryID(\"${datasource.queryID}\")\n .requestFields(${stringify(datasource.inputs)})\n ;`);\n }\n const resultID = serviceID + \"_\" + this.safeID(outputID);\n if (!this._dedup[resultID]) {\n this._dedup[resultID] = true;\n retVal.push(` export const ${resultID} = new marshaller.RoxieResult(ec)\n .service(${serviceID})\n .resultName(\"${outputID}\")\n .responseFields(${stringify(datasource.outputs[outputID].fields)})\n ;`);\n }\n retVal.push(` export const ${id} = new marshaller.HipieResultRef(ec)\n .datasource(${resultID})\n .requestFieldRefs(${stringify((datasourceRef as DDL2.IRoxieServiceRef).request)})\n ;`);\n break;\n case \"databomb\":\n {\n retVal.push(` export const ${id} = new marshaller.Databomb()\n .format(\"${datasource.format}\")\n .payload(${JSON.stringify(datasource.payload)})\n ;`);\n }\n break;\n case \"form\":\n {\n const fromFields: string[] = [];\n for (const field of datasource.fields) {\n fromFields.push(`new marshaller.FormField().fieldID(\"${field.id}\").default(\"${field.default || \"\"}\")`);\n }\n retVal.push(` export const ${id} = new marshaller.Form()\n .formFields([\n ${fromFields.join(\",\\n \")}\n ])\n ;`);\n }\n break;\n }\n }\n return retVal;\n }\n\n private writeActivity(activity: DDL2.ActivityType): string {\n switch (activity.type) {\n case \"filter\":\n return `new marshaller.Filters(ec).conditions(${stringify(activity.conditions)})`;\n case \"project\":\n return `new marshaller.Project().transformations(${stringify(activity.transformations)})`;\n case \"groupby\":\n return `new marshaller.GroupBy().fieldIDs(${JSON.stringify(activity.groupByIDs)}).aggregates(${stringify(activity.aggregates)})`;\n case \"sort\":\n return `new marshaller.Sort().conditions(${stringify(activity.conditions)})`;\n case \"limit\":\n return `new marshaller.Limit().rows(${activity.limit})`;\n case \"mappings\":\n return `new marshaller.Mappings().transformations(${stringify(activity.transformations)})`;\n }\n }\n\n writeWidgetProps(pe: PropertyExt): string[] {\n const retVal: string[] = [];\n for (const meta of pe.publishedProperties()) {\n if ((pe as any)[meta.id + \"_modified\"]() && meta.id !== \"fields\") {\n retVal.push(`.${meta.id}(${JSON.stringify((pe as any)[meta.id]())})`);\n }\n }\n return retVal;\n }\n\n private joinWithPrefix(props: DDL2.IWidgetProperties, imports: Imports, joinStr: string, postFix: string): string {\n let retVal: string = \"\";\n let meta: ClassMeta;\n if (props.__class) {\n meta = classID2Meta(props.__class);\n imports.append(meta);\n retVal += `new ${meta.class}()`;\n }\n for (const prop in props) {\n if (prop === \"__class\") {\n } else if (isArray(props[prop])) {\n const arr = `${(props[prop] as any[]).map(item => this.joinWithPrefix(item, imports, joinStr + \" \", \"\")).join(`,${joinStr} `)}`;\n if (arr) {\n retVal += `${joinStr} .${prop}([${joinStr} ${arr}${joinStr} ])${postFix}`;\n }\n } else {\n retVal += `${joinStr} .${prop}(${JSON.stringify(props[prop])})${postFix}`;\n }\n }\n return retVal;\n }\n\n private writeWidget(dataview: DDL2.IView, imports: Imports): string {\n return ` export const ${dataview.visualization.id} = new marshaller.VizChartPanel()\n .id(\"${dataview.visualization.id}\")\n .title(\"${dataview.visualization.title}\")\n .widget(${this.joinWithPrefix(dataview.visualization.properties[\"widget\"] as any, imports, \"\\n \", \"\")})\n ;`;\n }\n\n private writeElement(dataview: DDL2.IView) {\n const activities: string[] = [`data.${this.datasourceRefID(dataview)}`];\n for (const activity of dataview.activities) {\n activities.push(this.writeActivity(activity));\n }\n const updates: string[] = [];\n for (const filteredViz of this._ec.filteredBy(dataview.id)) {\n updates.push(`${filteredViz.id()}.refresh();`);\n }\n return `\nconst ${dataview.id} = new marshaller.Element(ec)\n .id(\"${dataview.id}\")\n .pipeline([\n ${activities.join(\",\\n \")}\n ])\n .mappings(new marshaller.Mappings().transformations(${stringify(dataview.visualization.mappings.transformations)}))\n .chartPanel(viz.${dataview.visualization.id})\n .on(\"selectionChanged\", () => {\n ${updates.join(\"\\n \")}\n }, true)\n ;\n${dataview.id}.visualization()\n .visibility(\"${dataview.visualization.visibility}\")\n .secondaryDataviewID(\"${dataview.visualization.secondaryDataviewID || \"\"}\")\n ;\nec.append(${dataview.id});\n`;\n }\n\n private writeDatasources(): string[] {\n let retVal: string[] = [];\n for (const dataview of this._ddlSchema.dataviews) {\n retVal = retVal.concat(this.writeDatasource(dataview));\n }\n return retVal;\n }\n\n private writeWidgets(): { widgetImports: string, widgetDefs: string } {\n const jsDef: string[] = [];\n const imports = new Imports();\n for (const dataview of this._ddlSchema.dataviews) {\n jsDef.push(this.writeWidget(dataview, imports));\n }\n return {\n widgetImports: imports.write(),\n widgetDefs: jsDef.join(\"\\n\\n\")\n };\n }\n\n private writeElements(): string {\n let retVal = \"\";\n for (const dataview of this._ddlSchema.dataviews) {\n retVal += this.writeElement(dataview);\n }\n return retVal;\n }\n\n createJavaScript(): string {\n const widgets = this.writeWidgets();\n\n return `\\\n${widgets.widgetImports}\nimport * as marshaller from \"@hpcc-js/marshaller\";\n\n// Dashboard Element Container (Model) ---\nconst ec = new marshaller.ElementContainer();\n\nnamespace data {\n${this.writeDatasources().join(\"\\n\")}\n}\n\nnamespace viz {\n${widgets.widgetDefs}\n}\n\n// Dashboard Elements (Controller) ---\n${this.writeElements().trim()}\n\nec.refresh();\n\n// Optional ---\nconst errors = ec.validate();\nfor (const error of errors) {\n console.error(error.elementID + \" (\" + error.source + \"): \" + error.msg);\n}\n\nexport const dashboard = new marshaller.Dashboard(ec)\n .target(\"placeholder\")\n .titleVisible(false)\n .hideSingleTabs(true)\n .layoutObj(${stringify(this._dashboard.layout())})\n .render()\n ;\n\n// @ts-ignore\nconst ddl = ${JSON.stringify(this._ddlSchema)};\n`;\n }\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import { Button, Spacer, ToggleButton, Widget } from \"@hpcc-js/common\";\nimport { DDL1, DDL2, isDDL2Schema, upgrade } from \"@hpcc-js/ddl-shim\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { text as d3Text } from \"d3-fetch\";\nimport { Activity } from \"./activities/activity\";\nimport { Databomb } from \"./activities/databomb\";\nimport { DSPicker } from \"./activities/dspicker\";\nimport { Filters } from \"./activities/filter\";\nimport { Form, FormField } from \"./activities/form\";\nimport { GroupBy } from \"./activities/groupby\";\nimport { Limit } from \"./activities/limit\";\nimport { Project } from \"./activities/project\";\nimport { Sort } from \"./activities/sort\";\nimport { DashboardDockPanel } from \"./dashboardDockPanel\";\nimport { DashboardGrid } from \"./dashboardGrid\";\nimport { DDLAdapter } from \"./ddl\";\nimport { JavaScriptAdapter } from \"./javascriptadapter\";\nimport { Element, ElementContainer } from \"./model/element\";\n\nimport \"../../src/ddl2/dashboard.css\";\n\nexport interface IDockPanel {\n layoutObj(_: object | null): this;\n layout();\n widgets();\n activate(element: Element);\n hideSingleTabs(bool?: boolean);\n syncWidgets();\n syncPopups();\n}\n\nexport class Dashboard extends ChartPanel {\n\n private _dockPanel: IDockPanel;\n\n private _designModeButton = new ToggleButton().faChar(\"fa-object-group\").tooltip(\"Design Mode...\")\n .selected(true)\n .on(\"click\", () => {\n if (this._dockPanel instanceof DashboardGrid) {\n this._dockPanel\n .designMode(this._designModeButton.selected())\n .lazyRender()\n ;\n }\n });\n\n private _addButton = new Button().faChar(\"fa-plus\").tooltip(\"Add...\")\n .on(\"click\", () => {\n const newElem = new Element(this._ec);\n this._ec.append(newElem);\n this.renderPromise().then(() => {\n newElem.refresh().then(() => {\n this.activate(newElem);\n });\n });\n });\n\n private _removeButton = new Button().faChar(\"fa-minus\").tooltip(\"Remove...\")\n .enabled(false)\n .on(\"click\", () => {\n const elem = this._prevActive;\n if (elem && window.confirm(`Remove Widget \"${elem.id()}\"?`)) {\n this._ec.clear(elem.id());\n this.renderPromise().then(() => {\n this.vizActivation(undefined);\n });\n }\n });\n\n private _reloadButton = new Button().faChar(\"fa-refresh\").tooltip(\"Reload...\")\n .on(\"click\", () => {\n const json = this.save();\n this._ec.clear();\n this.vizActivation(undefined);\n this.renderPromise().then(() => {\n this.restore(json);\n this.renderPromise().then(() => {\n this._ec.refresh().then(() => {\n });\n });\n });\n });\n\n private _addSamples = new Button().faChar(\"fa-database\").tooltip(\"Add Samples\")\n .on(\"click\", () => {\n Promise.all([\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/trunk/utils/data/data/airports.csv\"),\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/trunk/utils/data/data/carriers.csv\"),\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/trunk/utils/data/data/stats.csv\")\n ]).then(([airports, carriers, stats]) => {\n const popupElement = this.addForm(\"popup\", {\n type: \"form\",\n id: \"global_filter\",\n fields: [{\n type: \"string\",\n id: \"Airport\"\n }, {\n type: \"string\",\n id: \"Airline\"\n }]\n });\n popupElement.visualization()\n .title(\"Global Filter\")\n .visibility(\"flyout\")\n .chartType(\"FieldForm\")\n ;\n const airportsElement = this.addDatabomb(\"airports\", airports, \"csv\",\n [\n new FormField().fieldID(\"code\").type(\"string\"),\n new FormField().fieldID(\"name\").type(\"string\"),\n new FormField().fieldID(\"count\").type(\"number\")\n ],\n new Filters(this._ec).remoteFilter([\n new Filters.Filter().source(popupElement.id()).mappings([new Filters.Mapping().remoteField(\"Airport\").localField(\"code\").nullable(true)])\n ]),\n new Sort().column([new Sort.Column().fieldID(\"count\").descending(true)])\n );\n airportsElement.chartPanel().title(\"Airports\");\n const carrierElement = this.addDatabomb(\"carriers\", carriers, \"csv\",\n [\n new FormField().fieldID(\"code\").type(\"string\"),\n new FormField().fieldID(\"name\").type(\"string\"),\n new FormField().fieldID(\"count\").type(\"number\")\n ],\n new Filters(this._ec).remoteFilter([\n new Filters.Filter().source(popupElement.id()).mappings([new Filters.Mapping().remoteField(\"Airline\").localField(\"code\").nullable(true)])\n ]),\n new Sort().column([new Sort.Column().fieldID(\"count\").descending(true)])\n );\n carrierElement.chartPanel().title(\"Airlines\");\n const statsElement = this.addDatabomb(\"stats\", stats, \"csv\",\n [],\n new Filters(this._ec).remoteFilter([\n new Filters.Filter().source(airportsElement.id()).mappings([new Filters.Mapping().remoteField(\"code\").localField(\"airport\")]),\n new Filters.Filter().source(carrierElement.id()).mappings([new Filters.Mapping().remoteField(\"code\").localField(\"carrier\").nullable(true)])\n ]));\n statsElement.chartPanel().title(\"Stats\");\n return Promise.all([\n popupElement.refresh(),\n airportsElement.refresh(),\n carrierElement.refresh(),\n statsElement.refresh()\n ]);\n }).then(() => {\n this.render();\n });\n });\n\n addDatabomb(label: string, payload: string, format: \"csv\" | \"tsv\" | \"json\" = \"csv\", databombFields: FormField[], ...activities: Activity[]): Element {\n const databomb = new Databomb().id(label).format(format).payload(payload);\n if (databombFields.length > 0) {\n databomb.databombFields(databombFields);\n }\n this._ec.appendDatasource(databomb);\n const newElem = new Element(this._ec);\n const ds = newElem.hipiePipeline().datasource();\n if (ds instanceof DSPicker) {\n ds.datasourceID(databomb.id());\n }\n for (const activity of activities) {\n if (activity instanceof Filters) {\n newElem.hipiePipeline().filters(activity);\n } else if (activity instanceof Project) {\n newElem.hipiePipeline().project(activity);\n } else if (activity instanceof GroupBy) {\n newElem.hipiePipeline().groupBy(activity);\n } else if (activity instanceof Sort) {\n newElem.hipiePipeline().sort(activity);\n } else if (activity instanceof Limit) {\n newElem.hipiePipeline().limit(activity);\n }\n }\n this._ec.append(newElem);\n return newElem;\n }\n\n addForm(label: string, ddl: DDL2.IForm): Element {\n const databomb = new Form().id(label).fromDDL(ddl);\n this._ec.appendDatasource(databomb);\n const newElem = new Element(this._ec);\n const ds = newElem.hipiePipeline().datasource();\n if (ds instanceof DSPicker) {\n ds.datasourceID(databomb.id());\n }\n this._ec.append(newElem);\n return newElem;\n }\n\n static create(target: string, ddl: DDL2.Schema): Promise<Dashboard> {\n return new Promise((resolve, reject) => {\n const ec = new ElementContainer();\n const dashboard = new Dashboard(ec)\n .target(target)\n .hideSingleTabs(true)\n .titleVisible(false)\n .restore(ddl)\n .render(w => {\n ec.refresh().then(() => {\n resolve(dashboard);\n });\n });\n });\n }\n\n constructor(private _ec: ElementContainer) {\n super();\n this._ec.on(\"vizStateChanged\", (viz) => {\n this.vizStateChanged(viz);\n });\n this.buttons([this._designModeButton, new Spacer(), this._addButton, this._removeButton, new Spacer(), this._reloadButton, new Spacer(), this._addSamples]);\n this.ensureDockPanel(\"dock\");\n }\n\n ensureDockPanel(mode: \"dock\" | \"grid\" = \"dock\") {\n if ((mode === \"dock\" && !(this._dockPanel instanceof DashboardDockPanel)) || (mode === \"grid\" && !(this._dockPanel instanceof DashboardGrid))) {\n this._dockPanel = (mode === \"dock\" ? new DashboardDockPanel(this._ec) : new DashboardGrid(this._ec).designMode(this.titleVisible()))\n .on(\"vizActivation\", (elem: Element) => {\n this.vizActivation(elem);\n })\n ;\n this.widget(this._dockPanel as any);\n }\n }\n\n elementContainer(): ElementContainer {\n return this._ec;\n }\n\n private _hipieProps;\n hipieProps(): DDL2.IProperties;\n hipieProps(_: DDL2.IProperties): this;\n hipieProps(_?: DDL2.IProperties): DDL2.IProperties | this {\n if (!arguments.length) return this._hipieProps;\n this._hipieProps = _;\n return this;\n }\n\n ddl(): DDL2.Schema;\n ddl(_: DDL2.Schema): this;\n ddl(_?: DDL2.Schema): DDL2.Schema | this {\n const ddlAdapter = new DDLAdapter(this);\n if (!arguments.length) return ddlAdapter.write();\n this._ec.clear();\n ddlAdapter.read(_);\n return this;\n }\n\n // Used to delay load a layout after a render...\n layoutObj(_: object | null): this {\n this._dockPanel.layoutObj(_);\n return this;\n }\n\n save(): DDL2.Schema {\n const ddlAdapter = new DDLAdapter(this);\n return ddlAdapter.write();\n }\n\n restore(_: DDL2.Schema, render: boolean = false): this {\n this.ensureDockPanel(_ && _.properties && _.properties.layout instanceof Array ? \"grid\" : \"dock\");\n const ddlAdapter = new DDLAdapter(this);\n ddlAdapter.read(_);\n if (render) {\n this.renderPromise().then(() => {\n this._ec.refresh();\n });\n }\n return this;\n }\n\n importDDL(ddl: DDL1.DDLSchema | DDL2.Schema, baseUrl?: string, wuid?: string, dermatologyJson: object = {}): this {\n const ddl2: DDL2.Schema = isDDL2Schema(ddl) ? ddl : upgrade(ddl, baseUrl, wuid, true, dermatologyJson);\n return this.restore(ddl2, true);\n }\n\n javascript(): string {\n const jsAdapter = new JavaScriptAdapter(this);\n return jsAdapter.createJavaScript();\n }\n\n layout() {\n return this._dockPanel.layout();\n }\n\n widgets(): Widget[] {\n return this._dockPanel.widgets();\n }\n\n activate(element: Element) {\n this._dockPanel.activate(element);\n }\n\n hideSingleTabs(): boolean;\n hideSingleTabs(_: boolean): this;\n hideSingleTabs(_?: boolean): boolean | this {\n if (!arguments.length) return this._dockPanel.hideSingleTabs();\n this._dockPanel.hideSingleTabs(_);\n return this;\n }\n\n updateButtonState() {\n this._designModeButton.enabled(this._dockPanel instanceof DashboardGrid).render();\n this._removeButton.enabled(this._prevActive !== undefined).render();\n }\n\n update(domNode: HTMLElement, element) {\n this._dockPanel.syncWidgets();\n super.update(domNode, element);\n this.updateButtonState();\n }\n\n private _prevActive: Element;\n vizActivation(viz: Element) {\n this._prevActive = viz;\n this._removeButton.enabled(viz !== undefined).render();\n }\n\n vizStateChanged(viz: Element) {\n }\n\n render(callback?): this {\n this._dockPanel.syncPopups();\n return super.render(w => {\n if (callback) {\n callback(w);\n }\n });\n }\n}\nDashboard.prototype._class += \" dashboard_dashboard\";\n","import { JSONEditor } from \"@hpcc-js/codemirror\";\nimport { DDL2, validate2 } from \"@hpcc-js/ddl-shim\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { SplitPanel } from \"@hpcc-js/phosphor\";\n\nimport \"../../src/ddl2/ddleditor.css\";\n\nexport class DDLEditor extends SplitPanel {\n summary: string = \"0 Errors\";\n _ddlEditor = new JSONEditor().on(\"changes\", (changes) => {\n this.checkSyntax();\n });\n _errorTable = new Table()\n .columns([\"dataPath\", \"keyword\", \"message\", \"params\"])\n ;\n\n ddl(): object;\n ddl(_: object): this;\n ddl(_?: object): object | this {\n if (!arguments.length) return this._ddlEditor.json();\n this._ddlEditor.json(_);\n this.checkSyntax();\n return this;\n }\n\n checkSyntax() {\n try {\n const json = this.ddl();\n try {\n const { success, errors } = validate2(json as DDL2.Schema);\n if (success) {\n this._errorTable.data([]);\n } else {\n this._errorTable.data(errors.map(error => [error.dataPath, error.keyword, error.message, JSON.stringify(error.params)]));\n }\n } catch (e) {\n this._errorTable.data([[\"\", \"Validation Failed\", \"\", \"\"]]);\n }\n } catch (e) {\n this._errorTable.data([[\"ALL\", \"Invalid JSON\", \"\", \"\"]]);\n }\n if (this._renderCount) {\n this._errorTable.lazyRender();\n }\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this\n .addWidget(this._ddlEditor)\n .addWidget(this._errorTable)\n ;\n }\n\n update(domNode, _element) {\n super.update(domNode, _element);\n }\n\n}\nDDLEditor.prototype._class += \" codemirror_DDLEditor\";\n","import { Widget } from \"@hpcc-js/common\";\nimport { Edge, IGraphData, Lineage, Subgraph, Vertex } from \"@hpcc-js/graph\";\nimport { Activity } from \"./activities/activity\";\nimport { Databomb } from \"./activities/databomb\";\nimport { DSPicker } from \"./activities/dspicker\";\nimport { Form } from \"./activities/form\";\nimport { LogicalFile } from \"./activities/logicalfile\";\nimport { RestResult, RestResultRef } from \"./activities/rest\";\nimport { RoxieResult, RoxieResultRef } from \"./activities/roxie\";\nimport { WUResult } from \"./activities/wuresult\";\nimport { Element, ElementContainer, State } from \"./model/element\";\nimport { Visualization } from \"./model/visualization\";\nimport { VizChartPanel } from \"./model/vizChartPanel\";\n\nexport interface VertexData {\n view?: Element;\n activity?: Activity;\n visualization?: Visualization;\n chartPanel?: VizChartPanel;\n state?: State;\n}\n\nexport class GraphAdapter {\n private subgraphMap: { [key: string]: Subgraph } = {};\n private vertexMap: { [key: string]: Vertex } = {};\n private edgeMap: { [key: string]: Edge } = {};\n private hierarchy: Lineage[] = [];\n private vertices: Widget[] = [];\n private edges: Edge[] = [];\n\n constructor(private _ec: ElementContainer) {\n }\n\n clear() {\n this.subgraphMap = {};\n this.vertexMap = {};\n this.edgeMap = {};\n\n this.hierarchy = [];\n this.vertices = [];\n this.edges = [];\n }\n\n createSubgraph(id: string, label: string, data?: VertexData): Subgraph {\n let retVal: Subgraph = this.subgraphMap[id];\n if (!retVal) {\n retVal = new Subgraph()\n // .classed({ subgraph: true })\n // .showIcon(false)\n .columns([\"DS\"])\n .data([[data]])\n ;\n this.subgraphMap[id] = retVal;\n }\n this.vertices.push(retVal);\n retVal.title(`${label}`);\n retVal.getBBox(true);\n return retVal;\n }\n\n createVertex(id: string, label: string, data?: VertexData, tooltip: string = \"\", fillColor: string = \"#dcf1ff\"): Vertex {\n let retVal: Vertex = this.vertexMap[id];\n if (!retVal) {\n retVal = new Vertex()\n .columns([\"DS\"])\n .data([[data]])\n .icon_diameter(0)\n ;\n this.vertexMap[id] = retVal;\n }\n this.vertices.push(retVal);\n retVal\n .textbox_shape_colorFill(fillColor)\n .text(tooltip ? `${label}\\n${tooltip}` : `${label}`)\n .tooltip(tooltip)\n ;\n retVal.getBBox(true);\n return retVal;\n }\n\n createEdge(sourceID: string, targetID: string) {\n const edgeID = `${sourceID}->${targetID}`;\n let retVal = this.edgeMap[edgeID];\n if (!retVal) {\n retVal = new Edge()\n .sourceVertex(this.vertexMap[sourceID])\n .targetVertex(this.vertexMap[targetID])\n ;\n this.edgeMap[edgeID] = retVal;\n }\n this.edges.push(retVal);\n return retVal;\n }\n\n createDatasource(dsDetails: Activity): string {\n if (dsDetails instanceof DSPicker) {\n dsDetails = dsDetails.selection().datasource();\n }\n if (dsDetails instanceof WUResult) {\n const serverID = `${dsDetails.url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const wuID = `${dsDetails.url()}/${dsDetails.wuid()}`;\n const wu: Subgraph = this.createSubgraph(wuID, `${dsDetails.wuid()}`);\n this.hierarchy.push({ parent: server, child: wu });\n const resultID = `${wuID}/${dsDetails.resultName()}`;\n const result: Vertex = this.createVertex(resultID, dsDetails.resultName(), { activity: dsDetails });\n this.hierarchy.push({ parent: wu, child: result });\n return resultID;\n } else if (dsDetails instanceof LogicalFile) {\n const serverID = `${dsDetails.url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const lfID = `${serverID}/${dsDetails.logicalFile()}`;\n const lf: Vertex = this.createVertex(lfID, dsDetails.logicalFile(), { activity: dsDetails });\n this.hierarchy.push({ parent: server, child: lf });\n return lfID;\n } else if (dsDetails instanceof RoxieResultRef) {\n const serverID = `${dsDetails.url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const surfaceID = dsDetails.serviceID(); // `${dsDetails.url()}/${dsDetails.querySet()}`;\n const surface: Subgraph = this.createSubgraph(surfaceID, dsDetails.querySet());\n this.hierarchy.push({ parent: server, child: surface });\n const roxieID = surfaceID;\n this.hierarchy.push({\n parent: surface,\n child: this.createVertex(roxieID, dsDetails.queryID())\n });\n const roxieResultID = `${surfaceID}/${dsDetails.resultName()}`;\n this.hierarchy.push({\n parent: surface,\n child: this.createVertex(roxieResultID, dsDetails.resultName(), { activity: dsDetails })\n });\n this.createEdge(roxieID, roxieResultID);\n return roxieResultID;\n } else if (dsDetails instanceof RoxieResult) {\n const serverID = `${dsDetails.service().url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const querySetID = dsDetails.serviceID();\n const querySet: Subgraph = this.createSubgraph(querySetID, dsDetails.service().querySet());\n this.hierarchy.push({ parent: server, child: querySet });\n const queryID = `${querySetID}/${dsDetails.service().queryID()}`;\n const query: Subgraph = this.createSubgraph(queryID, dsDetails.service().queryID());\n this.hierarchy.push({ parent: querySet, child: query });\n const resultID = `${queryID}/${dsDetails.resultName()}`;\n this.hierarchy.push({\n parent: query,\n child: this.createVertex(resultID, dsDetails.resultName(), { activity: dsDetails })\n });\n this.createEdge(queryID, resultID);\n return resultID;\n } else if (dsDetails instanceof RestResultRef) {\n const serverID = `${dsDetails.url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const surfaceID = dsDetails.serviceID();\n const surface: Subgraph = this.createSubgraph(surfaceID, dsDetails.action());\n this.hierarchy.push({ parent: server, child: surface });\n const roxieID = surfaceID;\n this.hierarchy.push({\n parent: surface,\n child: this.createVertex(roxieID, dsDetails.action())\n });\n const roxieResultID = `${surfaceID}/${dsDetails.resultName()}`;\n this.hierarchy.push({\n parent: surface,\n child: this.createVertex(roxieResultID, dsDetails.resultName(), { activity: dsDetails })\n });\n this.createEdge(roxieID, roxieResultID);\n return roxieResultID;\n } else if (dsDetails instanceof RestResult) {\n const serverID = `${dsDetails.service().url()}`;\n const server: Subgraph = this.createSubgraph(serverID, `${serverID}`);\n const serviceID = dsDetails.serviceID();\n const actionID = `${serverID}/${dsDetails.service().action()}`;\n const action: Subgraph = this.createSubgraph(serviceID, dsDetails.service().action());\n this.hierarchy.push({ parent: server, child: action });\n const resultID = `${actionID}/${dsDetails.resultName()}`;\n this.hierarchy.push({\n parent: action,\n child: this.createVertex(resultID, dsDetails.resultName(), { activity: dsDetails })\n });\n this.createEdge(actionID, resultID);\n return resultID;\n } else if (dsDetails instanceof Form) {\n const id = dsDetails.hash();\n this.createVertex(id, dsDetails.label(), { activity: dsDetails });\n return id;\n } else if (dsDetails instanceof Databomb) {\n const id = dsDetails.id();\n this.createVertex(id, dsDetails.label(), { activity: dsDetails });\n return id;\n } else {\n const id = dsDetails.hash();\n this.createVertex(id, dsDetails.label(), { activity: dsDetails });\n return id;\n }\n }\n\n createActivity(sourceID: string, view: Element, activity: Activity, label?: string): string {\n const surface: Subgraph = this.createSubgraph(view.id(), `${view.id()}`, { view });\n let fillColor = null;\n let tooltip = \"\";\n if (activity.exists()) {\n const errors = activity.validate();\n if (errors.length) {\n fillColor = \"pink\";\n tooltip = errors.map(error => `${error.source}: ${error.msg}`).join(\"\\n\");\n }\n } else {\n fillColor = \"lightgrey\";\n }\n const vertex: Vertex = this.createVertex(activity.id(), label || `${activity.classID()}`, { view, activity }, tooltip, fillColor);\n if (sourceID) {\n this.createEdge(sourceID, activity.id());\n }\n this.hierarchy.push({ parent: surface, child: vertex });\n return activity.id();\n }\n\n createGraph(): IGraphData {\n this.hierarchy = [];\n this.vertices = [];\n this.edges = [];\n\n this._ec.elements().forEach(e => {\n this.createDatasource(e.hipiePipeline().datasource());\n });\n\n const lastID: { [key: string]: string } = {};\n for (const view of this._ec.elements()) {\n const pipeline = view.hipiePipeline();\n let prevID = this.createDatasource(pipeline.datasource());\n for (const activity of pipeline.activities()) {\n prevID = this.createActivity(prevID, view, activity);\n }\n const visualization = view.visualization();\n const mappings = visualization.mappings();\n const mappingVertexID = this.createActivity(prevID, view, mappings, \"Mappings\");\n const vizSubgraphID = `${visualization.id()}-sg`;\n const surface: Subgraph = this.createSubgraph(vizSubgraphID, \"Visualization\", { visualization });\n this.hierarchy.push({\n parent: this.subgraphMap[view.id()],\n child: surface\n });\n this.hierarchy.push({\n parent: surface,\n child: this.vertexMap[mappings.id()]\n });\n const vizVertexID = `${visualization.id()}-viz`;\n const widgetVertex: Vertex = this.createVertex(vizVertexID, visualization.chartPanel().widget().classID(), { view, chartPanel: visualization.chartPanel() });\n this.createEdge(mappingVertexID, vizVertexID);\n this.hierarchy.push({\n parent: surface,\n child: widgetVertex\n });\n const stateVertexID = `${visualization.id()}-state`;\n const stateVertex: Vertex = this.createVertex(stateVertexID, \"Selection\", { view, state: view.state() });\n this.createEdge(vizVertexID, stateVertexID)\n .weight(10)\n .strokeDasharray(\"1,5\")\n .text(\"updates\")\n ;\n this.createEdge(prevID, stateVertexID);\n this.hierarchy.push({\n parent: this.subgraphMap[view.id()],\n child: stateVertex\n });\n prevID = stateVertexID;\n lastID[pipeline.id()] = prevID;\n }\n\n // Mapping Secondary Sources ---\n for (const view of this._ec.elements()) {\n const visualization = view.visualization();\n const secondaryElement = this._ec.element(visualization.secondaryDataviewID());\n if (secondaryElement) {\n const mappings = secondaryElement.visualization().mappings();\n this.createEdge(mappings.id(), `${visualization.id()}-viz`);\n }\n }\n\n for (const viz of this._ec.elements()) {\n const view = viz.hipiePipeline();\n for (const updateInfo of view.updatedByGraph()) {\n this.createEdge(lastID[this._ec.element(updateInfo.from).hipiePipeline().id()], updateInfo.to.id())\n .weight(10)\n .strokeDasharray(\"1,5\")\n .text(\"updates\")\n ;\n }\n }\n\n return {\n vertices: this.vertices,\n edges: this.edges,\n hierarchy: this.hierarchy\n };\n }\n}\n","import { Button, Spacer } from \"@hpcc-js/common\";\nimport { Table } from \"@hpcc-js/dgrid\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { CommandRegistry, ContextMenu } from \"@hpcc-js/phosphor\";\nimport { text as d3Text } from \"d3-fetch\";\nimport { Databomb } from \"./activities/databomb\";\nimport { DatasourceRefType } from \"./activities/datasource\";\nimport { DSPicker } from \"./activities/dspicker\";\nimport { Form, FormField } from \"./activities/form\";\nimport { LogicalFile } from \"./activities/logicalfile\";\nimport { RestField, RestResult, RestService } from \"./activities/rest\";\nimport { RoxieResult, RoxieService } from \"./activities/roxie\";\nimport { WU, WUResult } from \"./activities/wuresult\";\nimport { ElementContainer } from \"./model/element\";\n\nexport class DSTable extends ChartPanel {\n\n private _addButton = new Button().faChar(\"fa-plus\").tooltip(\"Add...\")\n .on(\"click\", () => {\n const node = this._addButton.element().node();\n const rect = node.getBoundingClientRect();\n if (this._contextMenu.open({\n target: node,\n currentTarget: node,\n clientX: rect.left,\n clientY: rect.bottom\n })) {\n }\n });\n\n private _removeButton = new Button().faChar(\"fa-minus\").tooltip(\"Remove...\")\n .enabled(false)\n .on(\"click\", () => {\n this.remove();\n });\n\n private _cloneButton = new Button().faChar(\"fa-clone\").tooltip(\"Clone...\")\n .enabled(false)\n .on(\"click\", () => {\n if (this._selectedDS2) {\n if (this._selectedDS2 instanceof Databomb) {\n this.add(Databomb.fromDDL(this._selectedDS2.toDDL(), true));\n } else if (this._selectedDS2 instanceof Form) {\n this.add(Form.fromDDL(this._selectedDS2.toDDL(), true));\n } else if (this._selectedDS2 instanceof LogicalFile) {\n this.add(LogicalFile.fromDDL(this._ec, this._selectedDS2.toDDL(), true));\n } else if (this._selectedDS2 instanceof RestResult) {\n this.add(new RestResult(this._ec)\n .service(RestService.fromDDL(this._ec, this._selectedDS2.service().toDDL(), true))\n .resultName(this._selectedDS2.resultName())\n );\n } else if (this._selectedDS2 instanceof WUResult) {\n this.add(new WUResult(this._ec)\n .wu(WU.fromDDL(this._ec, this._selectedDS2.wu().toDDL(), true))\n .resultName(this._selectedDS2.resultName())\n );\n } else if (this._selectedDS2 instanceof RoxieResult) {\n this.add(new RoxieResult(this._ec)\n .service(RoxieService.fromDDL(this._ec, this._selectedDS2.service().toDDL(), true))\n .resultName(this._selectedDS2.resultName())\n );\n } else {\n console.warn(\"Unknown datasoure type\");\n }\n }\n });\n\n private _addSamples = new Button().faChar(\"fa-database\").tooltip(\"Add Samples\")\n .on(\"click\", () => {\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/trunk/utils/data/data/airports.csv\").then(csv => {\n this.add(new Databomb().format(\"csv\").payload(csv));\n });\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/trunk/utils/data/data/carriers.csv\").then(csv => {\n this.add(new Databomb().format(\"csv\").payload(csv));\n });\n d3Text(\"https://raw.githubusercontent.com/hpcc-systems/Visualization/trunk/utils/data/data/stats.csv\").then(csv => {\n this.add(new Databomb().format(\"csv\").payload(csv));\n });\n this.add(new RestResult(this._ec)\n .service(new RestService(this._ec)\n .url(\"https://cmsapi.pulselive.com/\")\n .action(\"rugby/rankings/mru\")\n .requestFields([\n new RestField().fieldID(\"xxx\"),\n new RestField().fieldID(\"date\")\n ]))\n .resultName(\"entries\")\n );\n this.add(new WUResult(this._ec)\n .wu(new WU(this._ec).url(\"https://play.hpccsystems.com:18010\").wuid(\"W20200206-140840\"))\n .resultName(\"Result 1\")\n );\n this.add(new LogicalFile(this._ec)\n .url(\"https://play.hpccsystems.com:18010\")\n .logicalFile(\"yelp::lc::clean::review\")\n );\n const vmRoxie = new RoxieService(this._ec)\n .url(\"https://play.hpccsystems.com:18002\")\n .querySet(\"roxie\")\n .queryID(\"h3testcities\")\n ;\n this.add(new RoxieResult(this._ec)\n .service(vmRoxie)\n .resultName(\"Result\")\n );\n this.add(new Form()\n .formFields([\n new FormField().type(\"number\").fieldID(\"id\").value(8),\n new FormField().fieldID(\"first_name\").value(\"John\"),\n new FormField().fieldID(\"last_name\").value(\"Doe\"),\n new FormField().fieldID(\"gender\").default(\"M\"),\n new FormField().type(\"number\").fieldID(\"age\")\n ])\n );\n this.render();\n });\n\n private _dstable = new Table();\n private _selectedDS;\n private _selectedDS2;\n\n private _contextMenu;\n\n constructor(private _ec: ElementContainer) {\n super();\n this\n .buttons([this._addButton, this._removeButton, new Spacer(), this._cloneButton, new Spacer(), this._addSamples])\n .widget(this._dstable)\n .columns([\"ID\", \"Type\", \"References\"])\n .on(\"click\", (row, col, sel) => {\n this._selectedDS2 = row.__lparam;\n if (sel && row.References === 0 && row.ID !== \"Empty\") {\n this._selectedDS = row.__lparam;\n } else {\n delete this._selectedDS;\n }\n this._removeButton.enabled(this._selectedDS !== undefined).render();\n this._cloneButton.enabled(this._selectedDS2 !== undefined).render();\n })\n ;\n\n this.initMenu();\n }\n\n initMenu() {\n const commands = new CommandRegistry();\n\n // Dashboard Commands ---\n commands.addCommand(\"add_wu_result\", {\n label: \"Workunit Result\",\n execute: () => {\n this.add(new WUResult(this._ec));\n }\n });\n\n commands.addCommand(\"add_logicalfile\", {\n label: \"Logical File\",\n execute: () => {\n this.add(new LogicalFile(this._ec));\n }\n });\n\n commands.addCommand(\"add_roxie\", {\n label: \"Roxie Service\",\n execute: () => {\n this.add(new RoxieResult(this._ec));\n }\n });\n\n commands.addCommand(\"add_rest\", {\n label: \"Rest\",\n execute: () => {\n this.add(new RestResult(this._ec));\n }\n });\n\n commands.addCommand(\"add_databomb\", {\n label: \"Databomb\",\n execute: () => {\n this.add(new Databomb());\n }\n });\n\n commands.addCommand(\"add_form\", {\n label: \"Form\",\n execute: () => {\n this.add(new Form());\n }\n });\n\n this._contextMenu = new ContextMenu({ commands });\n this._contextMenu.addItem({ command: \"add_wu_result\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_logicalfile\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_roxie\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_rest\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_databomb\", selector: \".common_Button\" });\n this._contextMenu.addItem({ command: \"add_form\", selector: \".common_Button\" });\n }\n\n add(ds: DatasourceRefType) {\n this._ec.appendDatasource(ds);\n this.render();\n }\n\n remove() {\n if (this._selectedDS) {\n this._ec.removeDatasource(this._selectedDS);\n this.render();\n }\n }\n\n private _prevDataID;\n render(callback?) {\n const refs = {};\n this._ec.elements().forEach(e => {\n let ds = e.hipiePipeline().datasource();\n if (ds instanceof DSPicker) {\n ds = ds.datasource();\n }\n if (refs[ds.id()] === undefined) {\n refs[ds.id()] = 0;\n }\n refs[ds.id()]++;\n });\n const data = this._ec.datasources().filter(ds => ds.id() !== \"Empty\").map(ds => {\n if (refs[ds.id()] === undefined) {\n refs[ds.id()] = 0;\n }\n return [ds.id(), ds.classID(), refs[ds.id()] || 0, ds];\n });\n const dataID = JSON.stringify(refs);\n if (this._prevDataID !== dataID) {\n this._prevDataID = dataID;\n this.data(data);\n }\n return super.render(callback);\n }\n}\n","import { Table } from \"@hpcc-js/dgrid\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { hashSum } from \"@hpcc-js/util\";\nimport { ElementContainer } from \"./model/element\";\n\nexport class DVTable extends ChartPanel {\n\n private _dvtable = new Table();\n\n constructor(private _ec: ElementContainer) {\n super();\n this\n .titleVisible(false)\n .widget(this._dvtable)\n .columns([\"ID\", \"Title\"])\n ;\n }\n\n private _prevDataID;\n render(callback?) {\n const data = this._ec.elements().map(elem => {\n return [elem.id(), elem.visualization().title(), elem];\n });\n const dataID = hashSum(data.map(row => row[0]));\n if (this._prevDataID !== dataID) {\n this._prevDataID = dataID;\n this.data(data);\n }\n return super.render(callback);\n }\n}\n","import { JSONEditor } from \"@hpcc-js/codemirror\";\nimport { Button, PropertyExt, publish, publishProxy, SelectionBar, SelectionButton, Spacer } from \"@hpcc-js/common\";\nimport { DatasourceTable } from \"@hpcc-js/dgrid\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { PropertyEditor } from \"@hpcc-js/other\";\nimport { SplitPanel, TabPanel } from \"@hpcc-js/phosphor\";\nimport { Activity } from \"./activities/activity\";\nimport { DatasourceAdapt } from \"./activities/databomb\";\nimport { Datasource } from \"./activities/datasource\";\nimport { DSPicker } from \"./activities/dspicker\";\nimport { Filters } from \"./activities/filter\";\nimport { GroupBy } from \"./activities/groupby\";\nimport { Limit } from \"./activities/limit\";\nimport { Mappings, Project } from \"./activities/project\";\nimport { Sort } from \"./activities/sort\";\nimport { Element as ModelElement, IElementError, State } from \"./model/element\";\nimport { Visualization } from \"./model/visualization\";\n\nimport \"../../src/ddl2/pipelinePanel.css\";\n\nclass PipelineSelectionButton extends SelectionButton {\n\n _label: string;\n label(): string;\n label(_: string): this;\n label(_?: string): string | this {\n if (!arguments.length) return this._label;\n this._label = _;\n this.tooltip(_);\n return this;\n }\n\n _elementErrors: IElementError[] = [];\n errors(): IElementError[];\n errors(_: IElementError[]): this;\n errors(_?: IElementError[]): IElementError[] | this {\n if (!arguments.length) return this._elementErrors;\n this._elementErrors = _;\n this.classed(\"error\", _.length > 0);\n // this.element().classed(\"error\", _.length > 0);\n if (_.length) {\n this.tooltip(_.map(err => {\n const errSourceParts = err.source.split(\".\");\n errSourceParts.splice(0, 1);\n return `${errSourceParts.join(\".\")}: ${err.msg}`;\n }).join(\"\\n\"));\n } else {\n this.tooltip(this._label);\n }\n this.render();\n return this;\n }\n}\n\nclass PipelinePanel extends ChartPanel {\n _owner: PipelineSplitPanel;\n\n datasource = new PipelineSelectionButton().faChar(\"fa-database\").label(\"Datasource\").selected(true);\n filter = new PipelineSelectionButton().faChar(\"fa-filter\").label(\"Filter\");\n project = new PipelineSelectionButton().faChar(\"fa-random\").label(\"Project\");\n groupBy = new PipelineSelectionButton().faChar(\"fa-object-group\").label(\"Group By\");\n sort = new PipelineSelectionButton().faChar(\"fa-sort-alpha-asc\").label(\"Sort\");\n limit = new PipelineSelectionButton().faChar(\"fa-list-ol\").label(\"Limit\");\n mappings = new PipelineSelectionButton().faChar(\"fa-random\").label(\"Mappings\");\n chartPanel = new PipelineSelectionButton().faChar(\"fa-area-chart\").label(\"Visualization\");\n state = new PipelineSelectionButton().faChar(\"fa-check-square-o\").label(\"State\");\n debug = new PipelineSelectionButton().faChar(\"fa-bug\").label(\"Debug\");\n all = new PipelineSelectionButton().faChar(\"fa-list\").label(\"All\");\n\n _propEditor: PropertyEditor = new PropertyEditor()\n .show_header(false)\n .show_settings(false)\n .showFields(false)\n ;\n\n private _buttons = [\n this.datasource,\n this.filter,\n this.project,\n this.groupBy,\n this.sort,\n this.limit,\n new Spacer(),\n this.mappings,\n this.chartPanel,\n new Spacer(),\n this.state,\n this.debug,\n new Spacer(),\n this.all\n ];\n _pipelineButton: PipelineSelectionButton = this.datasource;\n private _pipelineSelection = new SelectionBar()\n .buttons(this._buttons).on(\"selected\", sb => {\n this._pipelineButton = sb;\n this.title(sb.label()).render();\n });\n\n @publish([], \"array\", \"Disabled pipeline items\")\n disableActivities: publish<this, string[]>;\n\n constructor(owner: PipelineSplitPanel) {\n super();\n this._owner = owner;\n this.buttons([this._pipelineSelection]);\n this.title(this.datasource.label());\n super.widget(this._propEditor);\n this._propEditor.monitor((id: string, newValue: any, oldValue: any, source: PropertyExt) => {\n if (source !== this._propEditor) {\n this.propChanged(id, newValue, oldValue, source);\n this.updateState();\n }\n });\n }\n\n selectionButtons(): PipelineSelectionButton[] {\n return this._pipelineSelection.buttons().filter(b => b instanceof PipelineSelectionButton) as PipelineSelectionButton[];\n }\n\n private _propExt: PropertyExt;\n propExt(): PropertyExt;\n propExt(_: PropertyExt): this;\n propExt(_?: PropertyExt): PropertyExt | this {\n if (!arguments.length) return this._propExt;\n this._propExt = _;\n return this;\n }\n\n private peAsDatasource(): Datasource {\n if (this._propExt instanceof Datasource) {\n return this._propExt;\n } else if (this._propExt instanceof DSPicker) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().datasource();\n }\n }\n\n private peAsFilter(): Filters {\n if (this._propExt instanceof Filters) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().filters();\n }\n }\n\n private peAsProject(): Project {\n if (this._propExt instanceof Project) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().project();\n }\n }\n\n private peAsGroupBy(): GroupBy {\n if (this._propExt instanceof GroupBy) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().groupBy();\n }\n }\n\n private peAsSort(): Sort {\n if (this._propExt instanceof Sort) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().sort();\n }\n }\n\n private peAsLimit(): Limit {\n if (this._propExt instanceof Limit) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.hipiePipeline().limit();\n }\n }\n\n private peAsMappings(): Mappings {\n if (this._propExt instanceof Mappings) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.visualization().mappings();\n } else if (this._propExt instanceof Visualization) {\n return this._propExt.mappings();\n }\n }\n\n private peAsChartPanel(): ChartPanel | Visualization {\n if (this._propExt instanceof ChartPanel) {\n return this._propExt;\n } else if (this._propExt instanceof Visualization) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.visualization();\n }\n }\n\n private peAsState(): State {\n if (this._propExt instanceof State) {\n return this._propExt;\n } else if (this._propExt instanceof ModelElement) {\n return this._propExt.state();\n }\n }\n\n selectionButton(): PipelineSelectionButton {\n if (this._pipelineButton && this._pipelineButton.enabled()) {\n return this._pipelineButton;\n }\n for (const pb of this.selectionButtons()) {\n if (pb.enabled()) {\n pb.selected(true);\n return pb;\n }\n }\n return undefined;\n }\n\n _prevPropExt: PropertyExt;\n _prevPipelineButton: SelectionButton;\n update(domNode, element) {\n super.update(domNode, element);\n this.updateState();\n const pipelineButton = this.selectionButton();\n if (this._prevPropExt !== this._propExt || this._prevPipelineButton !== pipelineButton) {\n this._prevPropExt = this._propExt;\n this._prevPipelineButton = pipelineButton;\n if (this._propExt && pipelineButton) {\n switch (pipelineButton) {\n case this.datasource:\n this._propEditor.widget(this.peAsDatasource());\n break;\n case this.filter:\n this._propEditor.widget(this.peAsFilter());\n break;\n case this.project:\n this._propEditor.widget(this.peAsProject());\n break;\n case this.groupBy:\n this._propEditor.widget(this.peAsGroupBy());\n break;\n case this.sort:\n this._propEditor.widget(this.peAsSort());\n break;\n case this.limit:\n this._propEditor.widget(this.peAsLimit());\n break;\n case this.mappings:\n this._propEditor.widget(this.peAsMappings());\n break;\n case this.chartPanel:\n this._propEditor.widget(this.peAsChartPanel());\n break;\n case this.state:\n this._propEditor.widget(this.peAsState());\n break;\n case this.all:\n this._propEditor.widget(this._propExt);\n break;\n }\n } else {\n this._propEditor.widget(undefined);\n }\n this._owner.loadPreview(this._propEditor.widget());\n }\n }\n\n updateButtonState(pe, sb) {\n sb.enabled(!!pe);\n sb.errors(!!pe && pe.validate() || []);\n }\n\n updateState() {\n this.selectionButtons().forEach(sb => {\n if (sb instanceof PipelineSelectionButton) {\n if (this.disableActivities().indexOf(sb.label()) >= 0) {\n this.updateButtonState(undefined, sb);\n return;\n }\n }\n\n switch (sb) {\n case this.datasource:\n this.updateButtonState(this.peAsDatasource(), sb);\n break;\n case this.filter:\n this.updateButtonState(this.peAsFilter(), sb);\n break;\n case this.project:\n this.updateButtonState(this.peAsProject(), sb);\n break;\n case this.groupBy:\n this.updateButtonState(this.peAsGroupBy(), sb);\n break;\n case this.sort:\n this.updateButtonState(this.peAsSort(), sb);\n break;\n case this.limit:\n this.updateButtonState(this.peAsLimit(), sb);\n break;\n case this.mappings:\n this.updateButtonState(this.peAsMappings(), sb);\n break;\n case this.chartPanel:\n const cp = this.peAsChartPanel();\n sb.enabled(!!cp);\n break;\n case this.state:\n const st = this.peAsState();\n sb.enabled(!!st);\n break;\n case this.debug:\n sb.enabled(false);\n break;\n case this.all:\n sb.enabled(!!this._propExt);\n break;\n }\n if (sb.selected()) {\n this.title(sb.enabled() ? sb.label() : \"\");\n }\n });\n }\n\n // Events ---\n propChanged(id: string, newValue: any, oldValue: any, source: PropertyExt) {\n }\n}\nPipelinePanel.prototype._class += \" marshaller_PipelinePanel\";\n\nclass DDLPreview extends ChartPanel {\n\n private _save = new Button().faChar(\"fa-save\").tooltip(\"Save\")\n .on(\"click\", () => {\n const activity = this.activity();\n if (activity && (activity as any).fromDDL) {\n (activity as any).fromDDL(this._jsonEditor.json());\n }\n this.updateToolbar();\n });\n\n private _reset = new Button().faChar(\"fa-undo\").tooltip(\"Reset\")\n .on(\"click\", () => {\n this._jsonEditor\n .text(this.jsonText())\n .lazyRender()\n ;\n this.updateToolbar();\n });\n\n private _jsonEditor = new JSONEditor()\n .on(\"changes\", (changes: object[]) => {\n this.updateToolbar();\n });\n\n constructor() {\n super();\n this._titleBar.buttons([this._save, this._reset]);\n this.widget(this._jsonEditor);\n }\n\n private _activity: PropertyExt;\n activity(_: PropertyExt): this;\n activity(): PropertyExt;\n activity(_?: PropertyExt): PropertyExt | this {\n if (_ === void 0) return this._activity;\n if (this._activity !== _) {\n this._activity = _;\n delete this._prevJson;\n }\n return this;\n }\n\n jsonText(): string {\n const activity = this.activity();\n return activity && (activity as any).toDDL ? JSON.stringify((activity as any).toDDL(), undefined, 4) : \"\";\n }\n\n private _prevJson: string;\n update(domNode, element) {\n super.update(domNode, element);\n const json = this.jsonText();\n const editorJson = this._jsonEditor.text();\n if ((this._prevJson === undefined || this._prevJson === editorJson) && this._prevJson !== json) {\n this._prevJson = json;\n this._jsonEditor.text(json);\n }\n this.updateToolbar();\n }\n\n updateToolbar() {\n const activity = this.activity() as any;\n const json = this.jsonText();\n const editorJson = this._jsonEditor.text();\n this._save.enabled(activity && activity.fromDDL && json !== editorJson).lazyRender();\n this._reset.enabled(json !== editorJson).lazyRender();\n }\n}\n\nexport class PipelineSplitPanel extends SplitPanel {\n private _rhsPropsPanel = new PipelinePanel(this).on(\"propChanged\", (id: string, newValue: any, oldValue: any, source: PropertyExt) => {\n this.propChanged(id, newValue, oldValue, source);\n });\n private _previewPanel = new TabPanel();\n private _rhsDDLPreview = new DDLPreview();\n private _rhsDataPreview = new DatasourceTable().pagination(true);\n\n @publishProxy(\"_rhsPropsPanel\")\n disableActivities: publish<this, string[]>;\n\n constructor() {\n super();\n this._previewPanel\n .addWidget(this._rhsDataPreview, \"Data\")\n .addWidget(this._rhsDDLPreview, \"DDL\")\n ;\n this\n .addWidget(this._rhsPropsPanel)\n .addWidget(this._previewPanel)\n ;\n }\n\n loadDataProps(pe: PropertyExt) {\n this._rhsPropsPanel\n .propExt(pe)\n .render()\n ;\n }\n\n loadPreview(activity: undefined | PropertyExt) {\n activity = activity instanceof Visualization ? activity.mappings() : activity;\n this._rhsDataPreview\n .datasource(new DatasourceAdapt(activity instanceof Activity ? activity : undefined))\n .lazyRender()\n ;\n this._rhsDDLPreview\n .activity(activity) // instanceof DSPicker ? activity.datasourceRef() : activity)\n .lazyRender()\n ;\n }\n\n refreshPreview() {\n const ds = this._rhsDataPreview.datasource() as DatasourceAdapt;\n if (ds) {\n ds.exec().then(() => {\n this._rhsDataPreview\n .invalidate()\n .lazyRender()\n ;\n this._rhsDDLPreview\n .lazyRender()\n ;\n });\n } else {\n this._rhsDDLPreview\n .lazyRender()\n ;\n }\n }\n\n // Events ---\n propChanged(id: string, newValue: any, oldValue: any, source: PropertyExt) {\n }\n}\n","import { JSEditor, JSONEditor } from \"@hpcc-js/codemirror\";\nimport { Button, PropertyExt, publish, publishProxy, Utility, Widget } from \"@hpcc-js/common\";\nimport { DDL1, DDL2, ddl2Schema, isDDL2Schema, upgrade } from \"@hpcc-js/ddl-shim\";\nimport { Graph } from \"@hpcc-js/graph\";\nimport { ChartPanel } from \"@hpcc-js/layout\";\nimport { CommandPalette, CommandRegistry, ContextMenu, SplitPanel, TabPanel, WidgetAdapter } from \"@hpcc-js/phosphor\";\nimport { scopedLogger } from \"@hpcc-js/util\";\nimport { Activity } from \"./ddl2/activities/activity\";\nimport { Databomb } from \"./ddl2/activities/databomb\";\nimport { DSPicker } from \"./ddl2/activities/dspicker\";\nimport { Dashboard } from \"./ddl2/dashboard\";\nimport { DSTable } from \"./ddl2/dsTable\";\nimport { DVTable } from \"./ddl2/dvTable\";\nimport { GraphAdapter, VertexData } from \"./ddl2/graphadapter\";\nimport { Element, ElementContainer, State } from \"./ddl2/model/element\";\nimport { Visualization } from \"./ddl2/model/visualization\";\nimport { VizChartPanel } from \"./ddl2/model/vizChartPanel\";\nimport { PipelineSplitPanel } from \"./ddl2/pipelinePanel\";\n\nconst logger = scopedLogger(\"marshaller/dashy\");\n\nimport \"../src/dashy.css\";\n\nexport type FocusType = Element | Activity | Visualization | VizChartPanel | State | undefined;\n\nclass DDLPreview extends ChartPanel {\n\n private _save = new Button().faChar(\"fa-save\").tooltip(\"Save\")\n .on(\"click\", () => {\n const obj = JSON.parse(this._jsonEditor.text());\n this._dashy.importDDL(obj);\n this.updateToolbar();\n });\n\n private _reset = new Button().faChar(\"fa-undo\").tooltip(\"Reset\")\n .on(\"click\", () => {\n this._jsonEditor\n .text(this._ddl)\n .lazyRender()\n ;\n this.updateToolbar();\n });\n\n private _jsonEditor = new JSONEditor()\n .on(\"changes\", (changes: object[]) => {\n this.updateToolbar();\n });\n\n constructor(private _dashy: Dashy) {\n super();\n this._titleBar.buttons([this._save, this._reset]);\n this.widget(this._jsonEditor);\n }\n\n private _ddl;\n ddl(_: DDL2.Schema): this {\n this._ddl = JSON.stringify(_, undefined, 4);\n return this;\n }\n\n private _prevJson: string;\n update(domNode, element) {\n super.update(domNode, element);\n if (this._prevJson !== this._ddl) {\n this._prevJson = this._ddl;\n this._jsonEditor.text(this._ddl);\n }\n this.updateToolbar();\n }\n\n updateToolbar() {\n const editorJson = this._jsonEditor.text();\n this._save.enabled(this._ddl !== editorJson).lazyRender();\n this._reset.enabled(this._ddl !== editorJson).lazyRender();\n }\n}\n\nexport class Dashy extends SplitPanel {\n\n private _elementContainer: ElementContainer = new ElementContainer();\n\n private _lhsSheet = new TabPanel();\n private _lhsDashboard: Dashboard = new Dashboard(this._elementContainer)\n .on(\"vizActivation\", (elem: Element, wa: WidgetAdapter) => {\n this.focus(this._lhsDashboard, elem);\n })\n .on(\"vizStateChanged\", (elem: Element) => {\n for (const filteredViz of this._elementContainer.filteredBy(elem.id())) {\n if (this.focus() === filteredViz) {\n this._rhsSplitView.refreshPreview();\n }\n }\n })\n ;\n private _lhsDataviews: DVTable = new DVTable(this._elementContainer)\n .on(\"click\", (row: any, col: string, sel: boolean, ext: any) => {\n this.focus(this._lhsDataviews, row.__lparam);\n this._rhsSplitView.refreshPreview();\n })\n ;\n private _lhsDatasources: DSTable = new DSTable(this._elementContainer)\n .on(\"click\", (row: any, col: string, sel: boolean, ext: any) => {\n this.focus(this._lhsDatasources, row.__lparam);\n this._rhsSplitView.refreshPreview();\n })\n ;\n private _graphAdapter = new GraphAdapter(this._elementContainer);\n private _lhsPipeline: Graph = new Graph()\n .layout(\"Hierarchy\")\n .allowDragging(false)\n .applyScaleOnLayout(true)\n .on(\"vertex_click\", (row: any, col: string, sel: boolean, ext: any) => {\n const obj: VertexData = row.__lparam[0] || {};\n this.focus(this._lhsPipeline, obj.state || obj.chartPanel || obj.visualization || obj.activity || obj.view);\n })\n .on(\"vertex_contextmenu\", (row: any, col: string, sel: boolean, ext: any) => {\n })\n ;\n private _lhsDebugSheet = new TabPanel();\n private _lhsDebugDDLEditor = new DDLPreview(this);\n private _lhsDebugDDLSchema = new JSONEditor().json(ddl2Schema);\n private _lhsDebugJSEditor = new JSEditor();\n private _lhsDebugCloneEC: ElementContainer = new ElementContainer();\n private _lhsDebugClone: Dashboard = new Dashboard(this._lhsDebugCloneEC).hideSingleTabs(true).titleVisible(false);\n private _lhsDebugDDLv1 = new JSONEditor();\n private _lhsDebugDDLv2 = new JSONEditor();\n\n private _rhsSplitView = new PipelineSplitPanel();\n\n @publishProxy(\"_rhsSplitView\")\n disableActivities: publish<this, string[]>;\n\n private _fileOpen;\n\n static create(target: string, ddl?: DDL1.DDLSchema | DDL2.Schema, baseUrl?: string, wuid?: string): Promise<Dashy> {\n return new Promise((resolve, reject) => {\n const dashy = new Dashy()\n .target(target)\n .render((w: Dashy) => {\n if (ddl) {\n w.importDDL(ddl, baseUrl, wuid).then(() => {\n resolve(dashy);\n });\n } else {\n resolve(dashy);\n }\n });\n });\n }\n\n constructor() {\n super(\"horizontal\");\n }\n\n elementContainer(): ElementContainer {\n return this._elementContainer;\n }\n\n clear(): Promise<void> {\n this._lhsDebugSheet.removeWidget(this._lhsDebugDDLv1);\n this._lhsDebugSheet.removeWidget(this._lhsDebugDDLv2);\n this._elementContainer.clear();\n this._graphAdapter.clear();\n this.focus(this._lhsDashboard, undefined);\n return this.loadDashboard().then(() => {\n return this._elementContainer.refresh();\n }).then(ec => {\n return;\n });\n }\n\n save(): DDL2.Schema {\n return this._lhsDashboard.save();\n }\n\n restore(json: DDL2.Schema): Promise<void> {\n this._lhsSheet.active(this._lhsDashboard);\n return this.clear().then(() => {\n this._lhsDashboard.restore(json);\n this._lhsDataviews.render();\n this._lhsDatasources.render();\n return this._lhsDashboard.renderPromise().then(() => {\n const elements = this._elementContainer.elements();\n if (elements.length) {\n this._lhsDashboard.activate(elements[0]);\n }\n return this._elementContainer.refresh();\n }).then(() => {\n let hasError = false;\n for (const error of this._elementContainer.validate()) {\n hasError = true;\n logger.warning(error.elementID + \" (\" + error.source + \"): \" + error.msg);\n }\n if (hasError) {\n // Re-render to highlight errrors ---\n this._lhsDashboard.renderPromise();\n }\n });\n });\n }\n\n importDDL(ddl: DDL1.DDLSchema | DDL2.Schema, baseUrl?: string, wuid?: string, dermatologyJson: object = {}): Promise<void> {\n const ddl2: DDL2.Schema = isDDL2Schema(ddl) ? ddl : upgrade(ddl, baseUrl, wuid, true, dermatologyJson);\n const retVal = this.restore(ddl2);\n if (isDDL2Schema(ddl)) {\n this._lhsDebugDDLv2.json(ddl2);\n this._lhsDebugSheet\n .addWidget(this._lhsDebugDDLv2, \"orig v2\")\n ;\n } else {\n this._lhsDebugDDLv1.json(ddl);\n this._lhsDebugDDLv2.json(ddl2);\n this._lhsDebugSheet\n .addWidget(this._lhsDebugDDLv1, \"v1\")\n .addWidget(this._lhsDebugDDLv2, \"v1 -> v2\")\n ;\n }\n return retVal;\n }\n\n activeLHS(): Widget {\n let retVal = this._lhsSheet.active();\n if (retVal === this._lhsDebugSheet) {\n retVal = this._lhsDebugSheet.active();\n }\n return retVal;\n }\n\n activeRHS(): Widget {\n return this._rhsSplitView;\n }\n\n private _currSelection: { [sourceID: string]: FocusType } = {};\n\n private focusAsElement(): Element | undefined {\n const currSelection = this.focus();\n return currSelection instanceof Element ? currSelection : undefined;\n }\n\n private focus(): FocusType;\n private focus(source: Widget, item: FocusType): this;\n private focus(source?: Widget, item?: FocusType): FocusType | this {\n if (!arguments.length) return this._currSelection[this.activeLHS().id()];\n if (this._currSelection[source.id()] !== item) {\n this._currSelection[source.id()] = item;\n this.loadRHSSplit();\n }\n return this;\n }\n\n loadRHSSplit() {\n this._rhsSplitView.loadDataProps(this.focus());\n }\n\n loadDataviews(): Promise<Widget | undefined> {\n if (this.activeLHS() === this._lhsDataviews) {\n return this._lhsDataviews.renderPromise();\n }\n return Promise.resolve(undefined);\n }\n\n loadDatasources(): Promise<Widget | undefined> {\n if (this.activeLHS() === this._lhsDatasources) {\n return this._lhsDatasources.renderPromise();\n }\n return Promise.resolve(undefined);\n }\n\n loadDashboard(): Promise<Widget | undefined> {\n if (this.activeLHS() === this._lhsDashboard) {\n this._elementContainer.validate();\n return this._lhsDashboard.renderPromise();\n }\n return Promise.resolve(undefined);\n }\n\n loadGraph() {\n this._lhsPipeline\n .data({ ...this._graphAdapter.createGraph() }, true)\n ;\n if (this.activeLHS() === this._lhsPipeline) {\n this._lhsPipeline\n .lazyRender()\n ;\n }\n }\n\n loadDDL() {\n this._lhsDebugDDLEditor\n .ddl(this._lhsDashboard.ddl())\n ;\n if (this.activeLHS() === this._lhsDebugDDLEditor) {\n this._lhsDebugDDLEditor\n .lazyRender()\n ;\n }\n }\n\n loadJavaScript() {\n this._lhsDebugJSEditor\n .javascript(this._lhsDashboard.javascript())\n ;\n if (this.activeLHS() === this._lhsDebugJSEditor) {\n this._lhsDebugJSEditor\n .lazyRender()\n ;\n }\n }\n\n loadClone() {\n const json = this.save();\n this._lhsDebugCloneEC.clear();\n this._lhsDebugClone.renderPromise().then(() => {\n this._lhsDebugClone.restore(json);\n this._lhsDebugClone.renderPromise().then(() => {\n return this._lhsDebugCloneEC.refresh();\n }).then(() => {\n for (const error of this._lhsDebugCloneEC.validate()) {\n logger.warning(error.elementID + \" (\" + error.source + \"): \" + error.msg);\n }\n });\n });\n }\n\n initMenu() {\n const commands = new CommandRegistry();\n\n // Dashboard Commands ---\n commands.addCommand(\"dash_add\", {\n label: \"Add View\",\n execute: () => {\n const newElem = new Element(this._elementContainer);\n this._elementContainer.append(newElem);\n this.loadDashboard().then(() => {\n newElem.refresh().then(() => {\n this._lhsDashboard.activate(newElem);\n });\n });\n }\n });\n\n commands.addCommand(\"dash_clear\", {\n label: \"Clear\",\n execute: () => {\n this.clear();\n }\n });\n\n commands.addCommand(\"dash_save\", {\n label: \"Save\",\n execute: () => {\n const text = JSON.stringify(this.save(), null, \" \");\n Utility.downloadString(\"JSON\", text, \"dashy\");\n }\n });\n\n commands.addCommand(\"dash_load\", {\n label: \"Open\",\n execute: () => {\n this._fileOpen.property(\"accept\", \".dashy,.json\");\n this._fileOpen.node().click();\n }\n });\n\n // Model Commands ---\n const palette = new CommandPalette({ commands });\n palette.addItem({ command: \"addWUResult\", category: \"Notebook\" });\n palette.addItem({ command: \"addView\", category: \"Notebook\" });\n palette.addItem({ command: \"remove\", category: \"Notebook\" });\n palette.id = \"palette\";\n\n const contextMenu = new ContextMenu({ commands });\n\n contextMenu.addItem({ command: \"dash_add\", selector: `#${this._lhsDashboard.id()}` });\n contextMenu.addItem({ command: \"dash_clear\", selector: `#${this._lhsDashboard.id()}` });\n contextMenu.addItem({ type: \"separator\", selector: `#${this._lhsDashboard.id()}` });\n\n contextMenu.addItem({ command: \"dash_load\", selector: `#${this.id()}` });\n contextMenu.addItem({ command: \"dash_save\", selector: `#${this.id()}` });\n\n document.addEventListener(\"contextmenu\", (event: MouseEvent) => {\n if (contextMenu.open(event)) {\n event.preventDefault();\n }\n });\n }\n\n addDatabomb(label: string, payload: string, format: \"csv\" | \"tsv\" | \"json\") {\n const databomb = new Databomb().id(label).format(format).payload(payload);\n this._elementContainer.appendDatasource(databomb);\n const newElem = new Element(this._elementContainer);\n const ds = newElem.hipiePipeline().datasource();\n if (ds instanceof DSPicker) {\n ds.datasourceID(databomb.id());\n }\n this._elementContainer.append(newElem);\n this.loadDashboard().then(() => {\n newElem.refresh().then(() => {\n this._lhsDashboard.activate(newElem);\n });\n });\n }\n\n enter(domNode, element) {\n super.enter(domNode, element);\n this\n .addWidget(this._lhsSheet)\n .addWidget(this._rhsSplitView)\n ;\n this._lhsSheet\n .addWidget(this._lhsDashboard, \"Dashboard\")\n .addWidget(this._lhsDataviews, \"Dataviews\")\n .addWidget(this._lhsDatasources, \"Datasources\")\n .addWidget(this._lhsPipeline, \"Pipeline\")\n .addWidget(this._lhsDebugSheet, \"Debug\")\n .on(\"childActivation\", (w: Widget) => {\n switch (w) {\n case this._lhsDataviews:\n this.loadRHSSplit();\n break;\n case this._lhsDatasources:\n this.loadRHSSplit();\n break;\n case this._lhsDashboard:\n this.loadRHSSplit();\n break;\n case this._lhsPipeline:\n this.loadRHSSplit();\n this.loadGraph();\n break;\n case this._lhsDebugSheet:\n this._lhsDebugSheet.childActivation(this._lhsDebugSheet.active());\n break;\n }\n })\n ;\n this._lhsDebugSheet\n .addWidget(this._lhsDebugDDLEditor, \"v2\")\n .addWidget(this._lhsDebugDDLSchema, \"Schema\")\n .addWidget(this._lhsDebugJSEditor, \"TS\")\n .addWidget(this._lhsDebugClone, \"Clone\")\n .on(\"childActivation\", (w: Widget) => {\n switch (w) {\n case this._lhsDebugDDLEditor:\n this.loadRHSSplit();\n this.loadDDL();\n break;\n case this._lhsDebugJSEditor:\n this.loadRHSSplit();\n this.loadJavaScript();\n break;\n case this._lhsDebugClone:\n this.loadClone();\n break;\n }\n })\n ;\n\n this.initMenu();\n this._rhsSplitView.on(\"propChanged\", (id: string, newValue: any, oldValue: any, source: PropertyExt) => {\n const currElement = this.focusAsElement();\n if (currElement) {\n currElement.refresh().then(() => {\n this._rhsSplitView.refreshPreview();\n });\n } else {\n this._rhsSplitView.refreshPreview();\n }\n switch (this.activeLHS()) {\n case this._lhsDashboard:\n this.loadDashboard();\n break;\n case this._lhsDatasources:\n this._elementContainer.refresh();\n break;\n case this._lhsPipeline:\n this.loadGraph();\n break;\n case this._lhsDebugDDLEditor:\n this.loadDDL();\n break;\n case this._lhsDebugClone:\n this.loadClone();\n break;\n }\n });\n\n const context = this;\n this._fileOpen = element.append(\"input\")\n .attr(\"type\", \"file\")\n .property(\"accept\", \".dashy,.json\")\n .style(\"display\", \"none\")\n .on(\"change\", function () {\n let i = 0;\n let f = this.files[i];\n while (f) {\n const reader = new FileReader();\n reader.onload = (function (theFile) {\n return function (e) {\n try {\n const result = Array.isArray(e.target.result) ? e.target.result[0] : e.target.result;\n const json = JSON.parse(result);\n context.importDDL(json);\n } catch (ex) {\n alert(\"ex when trying to parse json = \" + ex);\n }\n };\n })(f);\n reader.readAsText(f);\n f = this.files[++i];\n break;\n }\n })\n ;\n }\n\n update(domNode, element) {\n super.update(domNode, element);\n }\n}\nDashy.prototype._class += \" composite_Dashy\";\n"],"mappings":"2hCAAO,IAAMA,EAAW,sBACXC,EAAc,UACdC,EAAgB,WCczBC,EAAgB,SAASC,EAAGC,GAI9B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,GAAI,EAC7FP,EAAcC,EAAGC,EAC1B,EAEO,SAASS,EAAUV,EAAGC,GAC3B,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIU,UAAU,uBAAyBC,OAAOX,GAAK,iCAE7D,SAASY,IAAOC,KAAKC,YAAcf,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOc,OAAOf,IAAMY,EAAGN,UAAYN,EAAEM,UAAW,IAAIM,EACjF,CAEO,IAAII,EAAW,WAQpB,OAPAA,EAAWf,OAAOgB,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAIf,KADTc,EAAIG,UAAUF,GACOnB,OAAOK,UAAUC,eAAeC,KAAKW,EAAGd,KAAIa,EAAEb,GAAKc,EAAEd,IAE9E,OAAOa,CACX,EACOF,EAASQ,MAAMX,KAAMS,UAC9B,EAcO,SAASG,EAAWC,EAAYC,EAAQC,EAAKC,GAClD,IAA2H9B,EAAvH+B,EAAIR,UAAUC,OAAQQ,EAAID,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAO5B,OAAO+B,yBAAyBL,EAAQC,GAAOC,EACrH,GAAuB,iBAAZI,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASR,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIT,EAAIM,EAAWH,OAAS,EAAGH,GAAK,EAAGA,KAASrB,EAAI2B,EAAWN,MAAIW,GAAKD,EAAI,EAAI/B,EAAEgC,GAAKD,EAAI,EAAI/B,EAAE4B,EAAQC,EAAKG,GAAKhC,EAAE4B,EAAQC,KAASG,GAChJ,OAAOD,EAAI,GAAKC,GAAK9B,OAAOkC,eAAeR,EAAQC,EAAKG,GAAIA,CAC9D,CAmDO,SAASK,EAAWC,EAAaC,GACtC,GAAuB,iBAAZL,SAAoD,mBAArBA,QAAQM,SAAyB,OAAON,QAAQM,SAASF,EAAaC,EAClH,CAEO,SAASE,EAAUC,EAASC,EAAYC,EAAGC,GAEhD,OAAO,IAAKD,IAAMA,EAAIE,UAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,GAAS,CAAE,MAAOG,GAAKL,EAAOK,EAAI,CAAE,CAC1F,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,GAAS,CAAE,MAAOG,GAAKL,EAAOK,EAAI,CAAE,CAC7F,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,EAAE,SAAUG,GAAWA,EAAQG,EAAQ,IAIjBO,KAAKR,EAAWK,EAAW,CAC7GH,GAAMN,EAAYA,EAAUpB,MAAMiB,EAASC,GAAc,KAAKS,OAClE,EACF,CAEO,SAASM,EAAYhB,EAASiB,GACnC,IAAsGC,EAAGC,EAAG1C,EAAxG2C,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAP7C,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAG8C,KAAM,GAAIC,IAAK,IAAeC,EAAIjE,OAAOc,QAA4B,mBAAboD,SAA0BA,SAAWlE,QAAQK,WACtL,OAAO4D,EAAEf,KAAOiB,EAAK,GAAIF,EAAS,MAAIE,EAAK,GAAIF,EAAU,OAAIE,EAAK,GAAsB,mBAAXC,SAA0BH,EAAEG,OAAOC,UAAY,WAAa,OAAOzD,IAAM,GAAIqD,EAC1J,SAASE,EAAK/C,GAAK,OAAO,SAAUkD,GAAK,OACzC,SAAcC,GACV,GAAIb,EAAG,MAAM,IAAIjD,UAAU,mCAC3B,KAAOwD,IAAMA,EAAI,EAAGM,EAAG,KAAOX,EAAI,IAAKA,OACnC,GAAIF,EAAI,EAAGC,IAAM1C,EAAY,EAARsD,EAAG,GAASZ,EAAU,OAAIY,EAAG,GAAKZ,EAAS,SAAO1C,EAAI0C,EAAU,SAAM1C,EAAEV,KAAKoD,GAAI,GAAKA,EAAET,SAAWjC,EAAIA,EAAEV,KAAKoD,EAAGY,EAAG,KAAKjB,KAAM,OAAOrC,EAE3J,OADI0C,EAAI,EAAG1C,IAAGsD,EAAK,CAAS,EAARA,EAAG,GAAQtD,EAAE+B,QACzBuB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGtD,EAAIsD,EAAI,MACxB,KAAK,EAAc,OAAXX,EAAEC,QAAgB,CAAEb,MAAOuB,EAAG,GAAIjB,MAAM,GAChD,KAAK,EAAGM,EAAEC,QAASF,EAAIY,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKX,EAAEI,IAAIQ,MAAOZ,EAAEG,KAAKS,MAAO,SACxC,QACI,KAAMvD,EAAI2C,EAAEG,MAAM9C,EAAIA,EAAEK,OAAS,GAAKL,EAAEA,EAAEK,OAAS,KAAkB,IAAViD,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEX,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVW,EAAG,MAActD,GAAMsD,EAAG,GAAKtD,EAAE,IAAMsD,EAAG,GAAKtD,EAAE,IAAM,CAAE2C,EAAEC,MAAQU,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYX,EAAEC,MAAQ5C,EAAE,GAAI,CAAE2C,EAAEC,MAAQ5C,EAAE,GAAIA,EAAIsD,EAAI,KAAO,CACpE,GAAItD,GAAK2C,EAAEC,MAAQ5C,EAAE,GAAI,CAAE2C,EAAEC,MAAQ5C,EAAE,GAAI2C,EAAEI,IAAIS,KAAKF,GAAK,KAAO,CAC9DtD,EAAE,IAAI2C,EAAEI,IAAIQ,MAChBZ,EAAEG,KAAKS,MAAO,SAEtBD,EAAKd,EAAKlD,KAAKiC,EAASoB,EAC5B,CAAE,MAAOT,GAAKoB,EAAK,CAAC,EAAGpB,GAAIQ,EAAI,CAAG,CAAC,QAAWD,EAAIzC,EAAI,CAAG,CACzD,GAAY,EAARsD,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEvB,MAAOuB,EAAG,GAAKA,EAAG,QAAK,EAAQjB,MAAM,EAC9E,CAtBgDL,CAAK,CAAC7B,EAAGkD,GAAK,CAAG,CAuBnE,CA+DO,SAASI,EAAcC,EAAIC,EAAMC,GACtC,GAAIA,GAA6B,IAArBxD,UAAUC,OAAc,IAAK,IAA4BwD,EAAxB3D,EAAI,EAAG4D,EAAIH,EAAKtD,OAAYH,EAAI4D,EAAG5D,KACxE2D,GAAQ3D,KAAKyD,IACRE,IAAIA,EAAK3E,MAAME,UAAU2E,MAAMzE,KAAKqE,EAAM,EAAGzD,IAClD2D,EAAG3D,GAAKyD,EAAKzD,IAGrB,OAAOwD,EAAGM,OAAOH,GAAM3E,MAAME,UAAU2E,MAAMzE,KAAKqE,GACpD,CCxNM,SAAUM,EAAUC,GACtB,GAAIhF,MAAMiF,QAAQD,GAEd,MAAO,IAAMA,EAAcE,IAAIH,GAAWI,KAAK,MAAQ,IAE3D,GAA6B,iBAAlBH,GAAP,MAAqCA,EAErC,OAAOI,KAAKL,UAAUC,GAI1B,IAAMK,EAAQxF,OACTyF,KAAKN,GACLE,IAAI,SAAA1D,GAAO,SAAAsD,OAAGtD,EAAG,MAAAsD,OAAKC,EAAUC,EAAcxD,IAAnC,GACX2D,KAAK,MACV,MAAO,KAAAL,OAAKO,EAAK,KACrB,CAEM,SAAUE,EAAsBC,GAClC,OAAQA,GACJ,IAAK,UACD,MAAO,UACX,IAAK,UACL,IAAK,YACL,IAAK,aACL,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,iBACL,IAAK,mBACL,IAAK,kBACL,IAAK,SACD,MAAO,SACX,IAAK,aACL,IAAK,UACL,IAAK,qBACL,IAAK,wBACL,IAAK,wBACL,IAAK,qBACL,IAAK,kBACD,MAAO,WACX,IAAK,SACD,MAAO,SACX,IAAK,QACD,MAAO,QAEf,MAAO,QACX,CAEM,SAAUC,EAAiBC,GAC7B,OAAIA,EAAIC,WAAaD,EAAIC,UAAUxE,OACxB,CACHqE,KAAM,UACNI,GAAIF,EAAIG,KACRC,SAAUJ,EAAIC,UAAUT,IAAIO,IAGzB,CACHG,GAAIF,EAAIG,KACRL,KAAMD,EAAsBG,EAAIF,MAG5C,CDoQkD,mBAApBO,iBAAiCA,gBC5O/D,IAAAC,EAAA,SAAAC,GAAA,SAAAD,I,qDA4DYE,EAAAC,aAA2C,GAqDnDD,EAAAE,WAAoC,GAS5BF,EAAAG,cAAwB,GACxBH,EAAAI,YAAqC,GACrCJ,EAAAK,UAAmC,G,CAc/C,QA1IuClG,EAAA2F,EAAAC,GAGnCD,EAAA9F,UAAAsG,SAAA,SAASC,GACL,IAAKA,GAAwB,IAAhBA,EAAKtF,OAAc,MAAO,GACvC,IAAMuF,EAAcjG,KAAKkG,YAAYC,OAAO,SAAAC,GACxC,OAAQA,EAAMrB,MACV,IAAK,SAED,MAAoC,iBAAtBiB,EAAK,GAAGI,EAAMjB,IAChC,IAAK,WACD,OAAO,EAEf,OAAO,CACX,GACA,OAAIc,EAAYvF,OACLsF,EAAKvB,IAAI,SAAAQ,GACZ,IAAyB,IAAAoB,EAAA,EAAAC,EAAAL,EAAAI,EAAAC,EAAA5F,OAAA2F,IAAa,CAAjC,IAAME,EAAUD,EAAAD,GACjBpB,EAAIsB,EAAWpB,KAAOF,EAAIsB,EAAWpB,GACzC,CACA,OAAOF,CACX,GAEGe,CACX,EAIAT,EAAA9F,UAAA+G,eAAA,SAAexD,GACX,OAAKvC,UAAUC,QACfV,KAAKyG,gBAAkBzD,EAChBhD,MAFuBA,KAAKyG,eAGvC,EAEAlB,EAAA9F,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMC,UAAOzG,EAAA,GACPwG,GAEX,EAEApB,EAAA9F,UAAAoH,YAAA,WACI,OAAO7G,KAAKyG,gBAAkBzG,KAAKyG,gBAAgBI,cAAgB7E,QAAQC,SAC/E,EAEAsD,EAAA9F,UAAAqH,OAAA,WACI,OAAO,CACX,EAEAvB,EAAA9F,UAAAsH,SAAA,WACI,MAAO,EACX,EAEAxB,EAAA9F,UAAAwD,MAAA,WACI,OAAOjD,KAAKmF,IAChB,EAEAI,EAAA9F,UAAAuH,UAAA,WACI,MAAO,EACX,EAGAzB,EAAA9F,UAAAwH,SAAA,WACI,OAAOjH,KAAKyG,gBAAkBzG,KAAKyG,gBAAgBP,YAAclG,KAAK0F,YAC1E,EAEAH,EAAA9F,UAAAyH,cAAA,SAAcD,GACV,OAAO,WAAM,OAAAA,CAAA,CACjB,EAEA1B,EAAA9F,UAAAyG,UAAA,WACI,OAAOlG,KAAKkH,cAAclH,KAAKiH,WAAxBjH,EACX,EAEAuF,EAAA9F,UAAA0H,YAAA,WACI,IAAMC,EAAapH,KAAKiH,WAAWxC,IAAI,SAAA2B,GAAS,OAAAA,EAAMjB,EAAN,GAChD,OAAOnF,KAAKkG,YAAYC,OAAO,SAAAC,GAAS,OAAAgB,EAAWC,QAAQjB,EAAMjB,IAAM,CAA/B,EAC5C,EAEAI,EAAA9F,UAAA6H,YAAA,SAAYC,GACR,OAAIvH,KAAKmH,cAAchB,OAAO,SAAAC,GAAS,OAAAA,EAAMjB,KAAOoC,CAAb,GAAsB7G,OAClDV,KACAA,KAAKwG,iBACLxG,KAAKwG,iBAAiBc,YAAYC,GAEtC,IACX,EAEAhC,EAAA9F,UAAA+H,cAAA,SAAcC,EAAwBC,GAClC,IAAsB,IAAArB,EAAA,EAAAsB,EAAAD,EAAArB,EAAAsB,EAAAjH,OAAA2F,IAAU,CAA3B,IAAMkB,EAAOI,EAAAtB,GACRiB,EAActH,KAAKsH,YAAYC,GACjCD,IACKG,EAAKG,QAAQN,EAAYnC,QAC1BsC,EAAKG,QAAQN,EAAYnC,MAAQ,IAEjCsC,EAAKG,QAAQN,EAAYnC,MAAMkC,QAAQE,GAAW,GAClDE,EAAKG,QAAQN,EAAYnC,MAAMtB,KAAK0D,GAGhD,CACJ,EAEAhC,EAAA9F,UAAAoI,gBAAA,SAAgBJ,EAAwBC,GACpC,OAAO1H,KAAKyG,iBAAmBzG,KAAKyG,gBAAgBe,cAAcC,EAAMC,EAC5E,EAEAnC,EAAA9F,UAAAqI,iBAAA,SAAiBL,GACbzH,KAAKyG,iBAAmBzG,KAAKyG,gBAAgBqB,iBAAiBL,EAClE,EAEAlC,EAAA9F,UAAAsI,KAAA,WACI,OAAO/H,KAAKyG,gBAAkBzG,KAAKyG,gBAAgBsB,OAAS/F,QAAQC,SACxE,EAGAsD,EAAA9F,UAAAuI,OAAA,WACI,OAAOhI,KAAKyG,iBAAkBzG,KAAKyG,gBAAgBwB,WAA+BjI,KAAK2F,UAC3F,EAEAJ,EAAA9F,UAAAyI,YAAA,WACI,OAAOlI,KAAKgI,QAChB,EAKQzC,EAAA9F,UAAA0I,kBAAR,SAA0BH,GACtB,IAAMtB,EAAO1G,KAAK0G,OAMlB,OALI1G,KAAK4F,gBAAkBc,GAAQ1G,KAAK6F,cAAgBmC,IACpDhI,KAAK4F,cAAgBc,EACrB1G,KAAK6F,YAAcmC,EACnBhI,KAAK8F,UAAYsC,SAAOpI,KAAK8F,UAAW9F,KAAKkI,gBAE1ClI,KAAK8F,SAChB,EAEAP,EAAA9F,UAAAwI,QAAA,WACI,OAAOjI,KAAKmI,kBAAkBnI,KAAKgI,SACvC,EACJzC,CAAA,CA1IA,CAAuC8C,eA4IvCC,EAAA,SAAA9C,GAAA,SAAA8C,I,qDACY7C,EAAA8C,YAA0B,G,CAStC,QAVmC3I,EAAA0I,EAAA9C,GAK/B8C,EAAA7I,UAAA+I,WAAA,SAAWxF,GACP,OAAKvC,UAAUC,QACfV,KAAKuI,YAAcvF,EACZhD,MAFuBA,KAAKuI,WAGvC,EACJD,CAAA,CAVA,CAAmC/C,GAWnC+C,EAAc7I,UAAUgJ,QAAU,iBAElC,IAAAC,EAAA,SAAAlD,GAAA,SAAAkD,I,8CA6GA,QA7GsC9I,EAAA8I,EAAAlD,GAIlCkD,EAAAjJ,UAAA+I,WAAA,SAAWxF,GACP,IAAKvC,UAAUC,OAAQ,OAAO8E,EAAA/F,UAAM+I,WAAU7I,KAAAK,MAE9C,IAAI2I,EADJnD,EAAA/F,UAAM+I,WAAU7I,KAAAK,KAACgD,GAEjB,IAAuB,IAAAqD,EAAA,EAAAuC,EAAA5F,EAAAqD,EAAAuC,EAAAlI,OAAA2F,IAAG,CAArB,IAAMwC,EAAQD,EAAAvC,GACXsC,GACAE,EAASrC,eAAemC,GAE5BA,EAAeE,CACnB,CACA,OAAO7I,IACX,EAEA0I,EAAAjJ,UAAAqJ,MAAA,WAEI,OADe9I,KAAKwI,aACN,EAClB,EAEAE,EAAAjJ,UAAAsJ,KAAA,WACI,IAAMC,EAAShJ,KAAKwI,aACpB,OAAOQ,EAAOA,EAAOtI,OAAS,EAClC,EAEUgI,EAAAjJ,UAAAwJ,iBAAV,SAA2BJ,GACvB,OAAOA,EAAS7B,YAAYvC,IAAI,SAAAyE,GAC5B,MAAO,CACHlF,KAAMkF,EACNnF,GAAI8E,EAEZ,EACJ,EAEAH,EAAAjJ,UAAA0J,eAAA,WAEI,IADA,IAAIH,EAAgD,GAC7B3C,EAAA,EAAA+C,EAAApJ,KAAKwI,aAALnC,EAAA+C,EAAA1I,OAAA2F,IAAmB,CAArC,IAAMwC,EAAQO,EAAA/C,GACf2C,EAASA,EAAO3E,OAAOrE,KAAKiJ,iBAAiBJ,GACjD,CACA,OAAOG,CACX,EAEAN,EAAAjJ,UAAA4J,MAAA,SAAMrF,EAAkBsF,GAAxB,IAAA7D,EAAAzF,KACI,YADE,IAAAgE,MAAA,QAAkB,IAAAsF,MAAgBC,OAAOC,WACpCxJ,KAAK+H,OAAOpF,KAAK,WACpB,IAAMqD,EAAOP,EAAKwC,UAClB,OAAa,IAATjE,GAAcgC,EAAKtF,QAAU4I,EACtBtD,EAEJA,EAAK5B,MAAMJ,EAAMA,EAAOsF,EACnC,EACJ,EAGAZ,EAAAjJ,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMC,UAAOzG,EAAA,CACVqI,WAAY,CAACxI,KAAKwI,aAAa/D,IAAI,SAAAoE,GAAY,OAAAA,EAASnC,MAAT,KAC5CC,GAEX,EAEA+B,EAAAjJ,UAAAoH,YAAA,WACI,OAAO7G,KAAK+I,OAAOlC,aACvB,EAEA6B,EAAAjJ,UAAAuH,UAAA,WAEI,IADA,IAAIgC,EAAmB,GACA3C,EAAA,EAAA+C,EAAApJ,KAAKwI,aAALnC,EAAA+C,EAAA1I,OAAA2F,IAAmB,CAArC,IAAMwC,EAAQO,EAAA/C,GACf2C,EAASA,EAAO3E,OAAOwE,EAAS7B,YACpC,CACA,OAAOgC,CACX,EAEAN,EAAAjJ,UAAAwH,SAAA,WACI,OAAOjH,KAAK8I,QAAQ7B,UACxB,EAEAyB,EAAAjJ,UAAAyG,UAAA,WACI,OAAOlG,KAAK+I,OAAO7C,WACvB,EAEAwC,EAAAjJ,UAAA0H,YAAA,WACI,OAAOnH,KAAK+I,OAAO5B,aACvB,EAEAuB,EAAAjJ,UAAA6H,YAAA,SAAYC,GACR,OAAOvH,KAAK+I,OAAOzB,YAAYC,EACnC,EAEAmB,EAAAjJ,UAAAqI,iBAAA,SAAiBL,GACbzH,KAAK+I,OAAOjB,iBAAiBL,EACjC,EAEAiB,EAAAjJ,UAAAoI,gBAAA,SAAgBJ,EAAwBC,GACpC1H,KAAK+I,OAAOlB,gBAAgBJ,EAAMC,EACtC,EAEAgB,EAAAjJ,UAAA+H,cAAA,SAAcC,EAAwBC,GAClC1H,KAAK+I,OAAOvB,cAAcC,EAAMC,EACpC,EAEAgB,EAAAjJ,UAAAsI,KAAA,WACI,OAAO/H,KAAK+I,OAAOhB,MACvB,EAEAW,EAAAjJ,UAAAwI,QAAA,WACI,OAAOjI,KAAK+I,OAAOd,SACvB,EACJS,CAAA,CA7GA,CAAsCJ,GA8GtCI,EAAiBjJ,UAAUgJ,QAAU,oBAErC,IAAAgB,EAAA,SAAAjE,GAAA,SAAAiE,I,8CAyEA,QAzEuC7J,EAAA6J,EAAAjE,GAMnCiE,EAAAhK,UAAAiK,UAAA,SAAU1G,GAAV,IAAAyC,EAAAzF,KACI,YAAU2J,IAAN3G,EAAwBhD,KAAK4J,YAC7B5J,KAAK6J,gBACL7J,KAAK6J,eAAeC,SAExB9J,KAAK4J,WAAa5G,EAClBhD,KAAK6J,eAAiB7G,EAAE+G,QAAQ,SAAC5E,EAAI6E,EAAQC,GACzCxE,EAAKyE,UAAU/E,EAAI6E,EAAQC,EAAQjH,EACvC,GACOhD,KACX,EAGAyJ,EAAAhK,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMC,UAAOzG,EAAA,CACVuJ,UAAW1J,KAAK0J,YAAYhD,QACzBC,GAEX,EAEA8C,EAAAhK,UAAAwD,MAAA,WACI,OAAOjD,KAAK0J,YAAYzG,OAC5B,EAEAwG,EAAAhK,UAAAoH,YAAA,WACI,OAAO7G,KAAK0J,YAAY7C,aAC5B,EAEA4C,EAAAhK,UAAAuH,UAAA,WACI,OAAOhH,KAAK0J,YAAY1C,WAC5B,EAEAyC,EAAAhK,UAAAwH,SAAA,WACI,OAAOjH,KAAK0J,YAAYzC,UAC5B,EAEAwC,EAAAhK,UAAAyG,UAAA,WACI,OAAOlG,KAAK0J,YAAYxD,WAC5B,EAEAuD,EAAAhK,UAAA0H,YAAA,WACI,OAAOnH,KAAK0J,YAAYvC,aAC5B,EAEAsC,EAAAhK,UAAA6H,YAAA,SAAYC,GACR,OAAOvH,KAAK0J,YAAYpC,YAAYC,EACxC,EAEAkC,EAAAhK,UAAAqI,iBAAA,SAAiBL,GACbzH,KAAK0J,YAAY5B,iBAAiBL,EACtC,EAEAgC,EAAAhK,UAAAoI,gBAAA,SAAgBJ,EAAwBC,GACpC1H,KAAK0J,YAAY7B,gBAAgBJ,EAAMC,EAC3C,EAEA+B,EAAAhK,UAAA+H,cAAA,SAAcC,EAAwBC,GAClC1H,KAAK0J,YAAYlC,cAAcC,EAAMC,EACzC,EAEA+B,EAAAhK,UAAAsI,KAAA,WACI,OAAO/H,KAAK0J,YAAY3B,MAC5B,EAEA0B,EAAAhK,UAAAwI,QAAA,WACI,OAAOjI,KAAK0J,YAAYzB,SAC5B,EACJwB,CAAA,CAzEA,CAAuCnB,GA0EvCmB,EAAkBhK,UAAUgJ,QAAU,qBCpatC,IAAI0B,EAAe,EACnBC,EAAA,SAAA5E,GAEI,SAAA4E,IACI,IAAA3E,EAAAD,EAAK7F,KAAAK,OAAEA,K,OACPyF,EAAK4E,IAAM,MAAAhG,SAAQ8F,G,CACvB,CACJ,OANgCvK,EAAAwK,EAAA5E,GAMhC4E,CAAA,CANA,CAAgC7E,GAWhC+E,EAAA,SAAA9E,GAYI,SAAA8E,IACI,OAAA9E,EAAK7F,KAAAK,OAAEA,IACX,CAcJ,OA5BmCJ,EAAA0K,EAAA9E,GAK/B8E,EAAA7K,UAAA8K,WAAA,SAAWvH,GACP,OAAKvC,UAAUC,QACfV,KAAKwK,YAAcxH,EACnBhD,KAAKwG,eAAexD,GACbhD,MAHuBA,KAAKwK,WAIvC,EAMAF,EAAA7K,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMnB,EAAA/F,UAAMiH,KAAI/G,KAAAK,KAAAG,EAAA,CACboK,WAAYvK,KAAKwK,YAAcxK,KAAKwK,YAAY9D,KAAKC,QAAQgD,GAC1DhD,GAEX,EAEA2D,EAAA7K,UAAAgL,MAAA,WACI,MAAO,CACHtF,GAAInF,KAAKuK,aAAapF,KAE9B,EAzBAvE,EAAA,CADC8J,UAAQ,KAAM,SAAU,uBAAwB,KAAM,CAAEC,UAAU,I,yBACpCL,EAAA7K,UAAA,sBA0BnC6K,C,CA5BA,CAAmC/E,GA6BnC+E,EAAc7K,UAAUgJ,QAAU,iBC7ClC,IAAAmC,EAAA,SAAApF,GAuBI,SAAAoF,IACI,OAAApF,EAAK7F,KAAAK,OAAEA,IACX,CAmDJ,OA5E+BJ,EAAAgL,EAAApF,GAmB3BoF,EAAAnL,UAAAoL,kBAAA,WACI,MAAuB,YAAhB7K,KAAK+E,MAChB,EAMA6F,EAAAnL,UAAAgL,MAAA,WACI,MAAO,CACH1F,KAAM/E,KAAK+E,OACXI,GAAInF,KAAKuH,UACTuD,QAAS9K,KAAK8K,UACdzF,SAA0B,YAAhBrF,KAAK+E,OAAuB/E,KAAK+K,cAActG,IAAI,SAAAuG,GAAM,OAAAA,EAAGP,OAAH,QAAcd,EAEzF,EAEAiB,EAAAnL,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KACF+E,KAAKmG,EAAInG,MACTwC,QAAQ2D,EAAI/F,IACZ2F,QAAQI,EAAIJ,SACZC,YAAyB,YAAbG,EAAInG,MAAsBmG,EAAI7F,SAAW6F,EAAI7F,SAASZ,IAAImG,EAAUK,SAAW,GAEpG,EAEOL,EAAAK,QAAP,SAAeC,GACX,OAAO,IAAIN,GAAYK,QAAQC,EACnC,EAIAN,EAAAnL,UAAA0L,MAAA,SAAMnI,GACF,OAAKvC,UAAUC,QACfV,KAAKoL,OAASpI,EACPhD,MAFuBA,KAAKoL,MAGvC,EAEAR,EAAAnL,UAAA4L,MAAA,WACI,QAASrL,KAAK+E,UAAY/E,KAAKuH,SACnC,EAEAqD,EAAAnL,UAAA6L,WAAA,WACI,OAAQtL,KAAK+E,QACT,IAAK,UACD,OAAO,SAAAwG,GAAQ,QAAEA,CAAF,EACnB,IAAK,SACD,OAAO,SAAAA,GAAQ,OAACA,CAAD,EACnB,IAAK,SACD,OAAO,SAAAA,GAAQ,SAAKA,CAAL,EAEvB,OAAO,SAAAA,GAAQ,OAAAA,CAAA,CACnB,EAEAX,EAAAnL,UAAA+L,UAAA,WACI,OAAOxL,KAAKyL,eAAiBzL,KAAKoC,QAAUpC,KAAK8K,SACrD,EAvEAlK,EAAA,CADC8J,UAAQ,GAAI,SAAU,mB,2BACQE,EAAAnL,UAAA,kBAG/BmB,EAAA,CADC8J,UAAQ,SAAU,MAAO,iBAAkB,CAAC,UAAW,SAAU,SAAU,Y,2BACXE,EAAAnL,UAAA,eAGjEmB,EAAA,CADC8J,UAAQ,KAAM,MAAO,gBAAiB,KAAM,CAAEgB,UAAU,I,2BACCd,EAAAnL,UAAA,kBAG1DmB,EAAA,CADC8J,UAAQ,KAAM,MAAO,gBAAiB,KAAM,CAAEgB,UAAU,I,2BACTd,EAAAnL,UAAA,gBAIhDmB,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,eAAgB,KAAM,CAAEiB,WAAYf,EAAWgB,QAAS,SAACC,GAAiB,OAAAA,EAAEhB,mBAAF,I,2BAChED,EAAAnL,UAAA,sBA2D5CmL,C,CA5EA,CAA+BvC,eA8E/ByD,EAAA,SAAAtG,GAII,SAAAsG,IACI,OAAAtG,EAAK7F,KAAAK,OAAEA,IACX,CA6DJ,OAnE0BJ,EAAAkM,EAAAtG,GAQtBsG,EAAArM,UAAAgL,MAAA,WACI,MAAO,CACH1F,KAAM,OACNI,GAAInF,KAAKmF,KACT4G,OAAQ/L,KAAKgM,cAAcvH,IAAI,SAAA3B,GAAK,OAAAA,EAAE2H,OAAF,GAE5C,EAEAqB,EAAArM,UAAAwL,QAAA,SAAQC,EAAiBe,GAIrB,YAJqB,IAAAA,OAAA,IACpBA,EAASjM,KAAOA,KAAKmF,GAAG+F,EAAI/F,KACxB+G,WAAWhB,EAAIa,OAAOtH,IAAImG,EAAUK,UAElCjL,IACX,EAEO8L,EAAAb,QAAP,SAAeC,EAAiBe,GAC5B,YAD4B,IAAAA,OAAA,IACrB,IAAIH,GAAOb,QAAQC,EAAKe,EACnC,EAEAH,EAAArM,UAAAuM,YAAA,WACI,OAAOhM,KAAKkM,aAAa/F,OAAO,SAAArD,GAAK,OAAAA,EAAEuI,OAAF,EACzC,EAEAS,EAAArM,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMnB,EAAA/F,UAAMiH,KAAI/G,KAAAK,KAAAG,EAAA,CACb+K,IAAKlL,KAAKyK,SACP9D,GAEX,EAEAmF,EAAArM,UAAAoH,YAAA,WACI,OAAO7E,QAAQC,SACnB,EAEA6J,EAAArM,UAAAwD,MAAA,WACI,MAAO,MACX,EAEA6I,EAAArM,UAAAyH,cAAA,SAAcD,GACV,IAAM+B,EAAwBhJ,KAAKgM,cAAcvH,IAAI,SAAA3B,GAAK,OAAAA,EAAE2H,OAAF,GAC1D,OAAO,WAAM,OAAAzB,CAAA,CACjB,EAEA8C,EAAArM,UAAAsI,KAAA,WACI,OAAO/F,QAAQC,SACnB,EAEA6J,EAAArM,UAAAyI,YAAA,WACI,IAAMc,EAAS,GAIf,OAHAhJ,KAAKgM,cAAcG,QAAQ,SAAArJ,GACvBkG,EAAOlG,EAAEyE,WAAazE,EAAE0I,WAC5B,GACO,CAACxC,EACZ,EAGA8C,EAAArM,UAAA2M,MAAA,WACI,OAAO,CACX,EAhEAxL,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,eAAgB,KAAM,CAAEiB,WAAYf,I,2BAC3BkB,EAAArM,UAAA,qBAiE3CqM,C,CAnEA,CAA0B1B,GC5E1B,SAASiC,EAAUjG,GACf,GAAI5B,UAAQ4B,GACR,MAAO,UAEX,IAAMrB,SAAcqB,EACpB,OAAQrB,GACJ,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,SACD,OAAOA,EAEf,MAAO,QACX,CAEM,SAAUuH,EAAYrH,EAAasH,GAErC,IAAMvD,EAAwB,G,WACnBjI,GACP,IAAMqF,EAAQ,CACVrB,KAAMsH,EAAUpH,EAAIlE,IACpBoE,GAAIpE,GAER,OAAQqF,EAAMrB,MACV,IAAK,SACD,IAAkB,IAAAsB,EAAA,EAAAmG,EAAAD,EAAAlG,EAAAmG,EAAA9L,OAAA2F,IAAW,CAAxB,IAAMoG,EAAGD,EAAAnG,GACNqG,GAAQ,EACZ,IAAK,IAAMC,KAAaF,EAAI1L,GAAM,CAC9B,IAAM6L,EAAYN,EAAYG,EAAI1L,GAAM,CAAC0L,EAAI1L,KAC7CqF,EAAM2F,OAAS,GACXa,EAAUlM,SACVkM,EAAUT,QAAQ,SAAAU,GAAM,OAAAzG,EAAM2F,OAAOc,EAAG1H,IAAM0H,CAAtB,GACxBH,GAAQ,GAEZ,KACJ,CACA,GAAIA,EAAO,KACf,CACA,MACJ,IAAK,UACD,IAAkB,IAAAtD,EAAA,EAAA0D,EAAAP,EAAAnD,EAAA0D,EAAApM,OAAA0I,IAAW,CAAxB,IAAM2D,EAAGD,EAAA1D,GACV,GAAI2D,EAAIhM,IAAQgM,EAAIhM,GAAKL,OAAQ,CAC7B0F,EAAMf,SAAWiH,EAAYS,EAAIhM,GAAK,GAAIgM,EAAIhM,IAC9C,KACJ,CACJ,EAGRiI,EAAOnF,KAAKuC,E,EA9BhB,IAAK,IAAMrF,KAAOkE,E,EAAPlE,GAgCX,OAAOiI,CACX,CD6FA8C,EAAKrM,UAAUgJ,QAAU,QC3FzB,IAAAuE,EAAA,SAAAxH,GAII,SAAAwH,IACI,IAAAvH,EAAAD,EAAK7F,KAAAK,OAAEA,K,OAHHyF,EAAA8G,UAAmC,G,CAI3C,CAgGJ,OAtG8B3M,EAAAoN,EAAAxH,GAQ1BwH,EAAAvN,UAAAgL,MAAA,SAAMwC,GACF,YADE,IAAAA,OAAA,GACK,CACHlI,KAAM,WACNI,GAAInF,KAAKmF,KACT+H,OAAQlN,KAAKkN,SACbC,QAASF,OAActD,EAAY3J,KAAKmN,UACxCpB,OAAQ/L,KAAKgM,cAAcvH,IAAI,SAAA3B,GAAK,OAAAA,EAAE2H,OAAF,GAE5C,EAEAuC,EAAAvN,UAAAwL,QAAA,SAAQC,EAAqBe,GAMzB,YANyB,IAAAA,OAAA,IACxBA,EAASjM,KAAOA,KAAKmF,GAAG+F,EAAI/F,KACxB+H,OAAOhC,EAAIgC,QACXC,QAAQjC,EAAIiC,SACZC,eAAelC,EAAIa,OAAOtH,IAAImG,EAAUK,UAEtCjL,IACX,EAEOgN,EAAA/B,QAAP,SAAeC,EAAqBe,GAChC,YADgC,IAAAA,OAAA,IACzB,IAAIe,GAAW/B,QAAQC,EAAKe,EACvC,EAEAe,EAAAvN,UAAAuM,YAAA,WACI,OAAOhM,KAAKoN,iBAAiBjH,OAAO,SAAArD,GAAK,OAAAA,EAAEuI,OAAF,EAC7C,EAEA2B,EAAAvN,UAAA4N,eAAA,WACI,IACI,OAAQrN,KAAKkN,UACT,IAAK,MACDlN,KAAKuM,UAAYe,WAAWtN,KAAKmN,WACjC,MACJ,IAAK,MACDnN,KAAKuM,UAAYgB,WAAWvN,KAAKmN,WACjC,MAEJ,QACInN,KAAKuM,UAAY5H,KAAK6I,MAAMxN,KAAKmN,WAGzCnN,KAAKoN,eAAepN,KAAKyN,gBAAgBhJ,IAAImG,EAAUK,SAC3D,CAAE,MAAO1I,GACLvC,KAAKoN,eAAe,IACpBpN,KAAKuM,UAAY,EACrB,CACJ,EAEAS,EAAAvN,UAAAiH,KAAA,SAAKC,GACD,OAAOnB,EAAA/F,UAAMiH,KAAI/G,KAAAK,KAAAG,EAAA,CACb+K,IAAKlL,KAAKyK,OAAM,IACb9D,IACF3G,KAAKmN,SACd,EAEAH,EAAAvN,UAAAoH,YAAA,WACI,OAAO7E,QAAQC,SACnB,EAEA+K,EAAAvN,UAAAwD,MAAA,WACI,MAAO,UACX,EAEQ+J,EAAAvN,UAAAgO,cAAR,WACI,OAA8B,IAA1BzN,KAAKuM,UAAU7L,OAAqB,GACjC4L,EAAYtM,KAAKuM,UAAU,GAAIvM,KAAKuM,UAC/C,EAEAS,EAAAvN,UAAAyH,cAAA,SAAcD,GAAd,IAAAxB,EAAAzF,KACI,OAAO,WAAM,OAAAyF,EAAKuG,cAAcvH,IAAI,SAAA3B,GAAK,OAAAA,EAAE2H,OAAF,EAA5B,CACjB,EAEAuC,EAAAvN,UAAAsI,KAAA,WACI,OAAO/F,QAAQC,SACnB,EAEA+K,EAAAvN,UAAAyI,YAAA,WACI,IAAMwF,EAAgB,GAItB,OAHA1N,KAAKgM,cAAcG,QAAQ,SAAA/F,GACvBsH,EAActH,EAAMmB,WAAanB,EAAMkF,YAC3C,GACOtL,KAAKuM,UAAU9H,IAAI,SAAAQ,GACtB,IAAM+D,EAAS,GACf,IAAK,IAAMjI,KAAO2M,EACd1E,EAAOjI,GAAO2M,EAAc3M,GAAKkE,EAAIlE,IAEzC,OAAOiI,CACX,EACJ,EAGAgE,EAAAvN,UAAA2M,MAAA,WACI,OAAOpM,KAAKuM,UAAU7L,MAC1B,EACJsM,CAAA,CAtGA,CAA8B5C,GAuG9B4C,EAASvN,UAAUgJ,QAAU,YAW7BuE,EAASvN,UAAUiL,QAAQ,SAAU,OAAQ,MAAO,kBAAmB,CAAC,OAAQ,MAAO,QACvFsC,EAASvN,UAAUiL,QAAQ,UAAW,GAAI,SAAU,iBAAkB,KAAM,CAAEiD,WAAW,IACzFX,EAASvN,UAAUiL,QAAQ,iBAAkB,GAAI,gBAAiB,eAAgB,KAAM,CAAEiB,WAAYf,IAEtG,IAAMgD,EAAgBZ,EAASvN,UAAUyN,OACzCF,EAASvN,UAAUyN,OAAS,SAA0BlK,GAClD,IAAMgG,EAAS4E,EAAcjN,MAAMX,KAAMS,WAIzC,OAHIA,UAAUC,QACVV,KAAKqN,iBAEFrE,CACX,EAEA,IAAM6E,EAAsBb,EAASvN,UAAU0N,QAC/CH,EAASvN,UAAU0N,QAAU,SAA0BnK,GACnD,IAAMgG,EAAS6E,EAAoBlN,MAAMX,KAAMS,WAI/C,OAHIA,UAAUC,QACVV,KAAKqN,iBAEFrE,CACX,EAEO,IAAM8E,GAAgB,IAAId,GAAW7H,GAAG,SAASgI,QAAQ,MAEhEY,EAAA,WAGI,SAAAA,EAAYlF,GACR7I,KAAKgO,UAAYnF,GAAYiF,CACjC,CAgCJ,OA9BIC,EAAAtO,UAAAsI,KAAA,eAAAtC,EAAAzF,KACI,OAAOA,KAAKgO,UAAUnH,cAAclE,KAAK,WACrC,OAAO8C,EAAKuI,UAAUjG,MAC1B,EACJ,EAEAgG,EAAAtO,UAAA0F,GAAA,WACI,OAAOnF,KAAKgO,UAAU7I,IAC1B,EACA4I,EAAAtO,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACM3G,KAAKgO,UAAUtH,KAAKC,EAC/B,EACAoH,EAAAtO,UAAAwD,MAAA,WACI,OAAOjD,KAAKgO,UAAU/K,OAC1B,EACA8K,EAAAtO,UAAAyG,UAAA,WACI,OAAOlG,KAAKgO,WAAahO,KAAKgO,UAAU9H,UAAYlG,KAAKgO,UAAU9H,YAA+B,EACtG,EACA6H,EAAAtO,UAAA2M,MAAA,WACI,OAAOpM,KAAKgO,UAAYhO,KAAKgO,UAAU/F,UAAUvH,OAAS,CAC9D,EACAqN,EAAAtO,UAAA4J,MAAA,SAAMrF,EAAcsF,GAApB,IAAA7D,EAAAzF,KACI,OAAOA,KAAK+H,OAAOpF,KAAK,WACpB,IAAMqD,EAAOP,EAAKuI,UAAU/F,UAC5B,OAAa,IAATjE,GAAcgC,EAAKtF,QAAU4I,EACtBtH,QAAQC,QAAQ+D,GAEpBhE,QAAQC,QAAQ+D,EAAK5B,MAAMJ,EAAMA,EAAOsF,GACnD,EACJ,EACJyE,CAAA,CArCA,GC/LAE,EAAA,SAAAzI,GAYI,SAAAyI,EAAsBC,GAClB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADWyF,EAAAyI,MAVZzI,EAAA0I,QAAwB,GACxB1I,EAAA2I,MAAuB,GAEzB3I,EAAA4I,MAA+B,GAsE/B5I,EAAA6I,MAAQC,WAAS,WACrB,OAAI9I,EAAK+I,gBAAkB/I,EAAKiB,QAC5BjB,EAAK+I,cAAgB/I,EAAKiB,OACnBlB,EAAA/F,UAAMsI,KAAIpI,KAAA8F,GAAG9C,KAAK,WACrB,OAAO8C,EAAKgJ,QAChB,GAAG9L,KAAK,SAAA+L,GACJjJ,EAAK4I,MAAQ5I,EAAKM,SAAS2I,EAC/B,GAAGC,MAAM,SAAApM,GACLkD,EAAK4I,MAAQ,EACjB,IAEOrM,QAAQC,SAEvB,GAsBQwD,EAAAmJ,QAAU,IAAIC,oBAYdpJ,EAAAgJ,OAASF,WAAS,SAACO,EAAkCC,QAAlC,IAAAD,MAAkBrJ,EAAKqJ,gBAAW,IAAAC,MAAqBtJ,EAAKsJ,cACnF,IAAMC,EAA+B,GACrC,GAAIF,EAAUC,GAActJ,EAAK2G,QAC7B4C,EAAMnL,KAAK4B,EAAKwJ,OAAO,EAAGxJ,EAAK2G,eAG/B,IADA,IAAM8C,EAAWzJ,EAAK2G,QAAU2C,EACvBxO,EAAI,EAAGA,EAAIuO,IAAWvO,EAC3ByO,EAAMnL,KAAK4B,EAAKwJ,OAAOE,KAAKC,MAAM7O,EAAI2O,EAAWJ,GAAUC,IAGnE,OAAO/M,QAAQqN,IAAIL,GAAOrM,KAAK,SAAA2M,GAE3B,IADA,IAAIC,EAAiB,GACElJ,EAAA,EAAAmJ,EAAAF,EAAAjJ,EAAAmJ,EAAA9O,OAAA2F,IAAW,CAA7B,IAAMqI,EAAQc,EAAAnJ,GACfkJ,EAAUA,EAAQlL,OAAOqK,EAC7B,CACA,OAAOa,CACX,EACJ,GA7HI9J,EACKqJ,QAAQrJ,EAAKyI,IAAIY,WACjBC,WAAWtJ,EAAKyI,IAAIa,c,CAE7B,CA0HJ,OA5IwCnP,EAAAqO,EAAAzI,GAoBpCyI,EAAAxO,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMC,UAAOzG,EAAA,CACV2O,QAAS9O,KAAK8O,UACdC,WAAY/O,KAAK+O,cACdpI,GAEX,EAMAsH,EAAAxO,UAAAoH,YAAA,eAAApB,EAAAzF,KAsBI,OArBIA,KAAKyP,gBAAkBzP,KAAK0G,SAC5B1G,KAAKyP,cAAgBzP,KAAK0G,cACnB1G,KAAK0P,oBAEX1P,KAAK0P,qBACN1P,KAAK0P,mBAAqBlK,EAAA/F,UAAMoH,YAAWlH,KAAAK,MAAG2C,KAAK,WAE/C,GADA8C,EAAKkK,QAAUlK,EAAKmK,gBAChBnK,EAAKkK,QACL,OAAOlK,EAAKkK,QAAQE,UAExB,MAAM,IAAIC,MAAM,kBACpB,GAAGnN,KAAK,SAAAF,GACJgD,EAAKsK,OAAStN,EAAOuN,MACrBvK,EAAK0I,QAAU1L,EAAOsJ,SACtBtG,EAAK2I,MAAQ3I,EAAK2I,OAAS3I,EAAK2I,MAAM1N,OAAS+E,EAAK2I,MAAQ3I,EAAK0I,QAAQ1J,IAAIO,EACjF,GAAG2J,MAAM,SAAApM,GACLkD,EAAKsK,OAAS,EACdtK,EAAK0I,QAAU,GACf1I,EAAK2I,MAAQ,EACjB,IAEGpO,KAAK0P,kBAChB,EAIAzB,EAAAxO,UAAAwQ,eAAA,SAAejN,GACX,OAAKvC,UAAUC,QACfV,KAAKoO,MAAQpL,EACbhD,KAAK6G,cACE7G,MAHuBA,KAAKoO,KAIvC,EAEAH,EAAAxO,UAAAyH,cAAA,SAAcD,GAAd,IAAAxB,EAAAzF,KACI,OAAO,WAAM,OAAAyF,EAAKwK,gBAAL,CACjB,EAEAhC,EAAAxO,UAAAsI,KAAA,WACI,OAAO/H,KAAKsO,OAChB,EAkBAL,EAAAxO,UAAAuI,OAAA,WACI,OAAOhI,KAAKqO,KAChB,EAEAJ,EAAAxO,UAAAyI,YAAA,WACI,OAAOlI,KAAKqO,KAChB,EAEAJ,EAAAxO,UAAA2M,MAAA,WACI,OAAOpM,KAAK+P,MAChB,EAGM9B,EAAAxO,UAAA4J,MAAN,SAAYrF,EAAcsF,G,iEACtB,OAAIA,EAAQtJ,KAAK8O,UAAY9O,KAAK+O,aAC9B,GAAO/O,KAAKyO,UAEhB,GAAOzO,KAAKiP,OAAOjL,EAAMsF,G,IAC5B,EAGO2E,EAAAxO,UAAAwP,OAAR,SAAejL,EAAcsF,GACzB,OAAOtJ,KAAK4O,QAAQ/K,KAChB7D,KAAK2P,QAAU3P,KAAK2P,QACfO,UAAUlM,EAAMsF,GAChBqF,MAAM,SAAApM,GACH,MAAO,EACX,GACAP,QAAQC,QAAQ,IAE5B,EAhHArB,EAAA,CADC8J,UAAQ,GAAI,SAAU,qB,2BACQuD,EAAAxO,UAAA,kBAE/BmB,EAAA,CADC8J,UAAQ,IAAK,SAAU,e,2BACUuD,EAAAxO,UAAA,qBAkItCwO,C,CA5IA,CAAwC7D,GA6IxC6D,EAAUxO,UAAUgJ,QAAU,aAE9B,IAAA0H,EAAA,SAAA3K,GA4BI,SAAA2K,EAAYjC,GACR,IAAAzI,EAAAD,EAAK7F,KAAAK,KAACkO,IAAIlO,K,OACVyF,EAAK2K,IAAM,IAAIC,EAAG5K,EAAKyI,K,CAC3B,CA6DJ,OA5F8BtO,EAAAuQ,EAAA3K,GAM1B2K,EAAA1Q,UAAA6Q,GAAA,SAAGtN,GACC,OAAKvC,UAAUC,QACfV,KAAKoQ,IAAMpN,EACXhD,KAAKoQ,IAAIvJ,cACF7G,MAHuBA,KAAKoQ,GAIvC,EAQAD,EAAA1Q,UAAA8Q,WAAA,SAAWvN,GACP,YAAU,IAANA,EAAqBhD,KAAKwQ,aAC1BxQ,KAAKwQ,cAAgBxN,IACrBhD,KAAKwQ,YAAcxN,EACnBhD,KAAKiQ,eAAe,KAEjBjQ,KACX,EAOAmQ,EAAA1Q,UAAAgR,IAAA,WACI,OAAOzQ,KAAKoQ,IAAIK,KACpB,EAEAN,EAAA1Q,UAAAiR,KAAA,WACI,OAAO1Q,KAAKoQ,IAAIM,MACpB,EAEAP,EAAA1Q,UAAAgL,MAAA,W,MACI,MAAO,CACH1F,KAAM,WACNI,GAAInF,KAAKmF,KACTsL,IAAKzQ,KAAKoQ,IAAIK,MACdC,KAAM1Q,KAAK0Q,OACX9I,SAAOwB,EAAA,GACHA,EAACpJ,KAAKuQ,cAAe,CACjBxE,OAAQ/L,KAAKiQ,kBAEpB7G,GAET,EAEA+G,EAAA1Q,UAAAwL,QAAA,SAAQC,EAAqBe,GACzB,OAAIf,EAAItD,QAAQ5H,KAAKuQ,cACVvQ,KAAKiQ,eAAe/E,EAAItD,QAAQ5H,KAAKuQ,cAAcxE,QAEvD/L,IACX,EAEOmQ,EAAAlF,QAAP,SAAe0F,EAAsBzF,EAAqBoF,EAAQC,EAAoBtE,GAClF,OAAO,IAAIkE,EAASQ,GACfL,GAAGA,GACHC,WAAWA,GACXtF,QAAQC,EAEjB,EAEAiF,EAAA1Q,UAAAmQ,cAAA,WACI,GAAI5P,KAAKoQ,IAAIK,OAASzQ,KAAK0Q,QAAU1Q,KAAKuQ,aACtC,OAAOK,SAAOC,OAAO,CAAEC,QAAS9Q,KAAKoQ,IAAIK,MAAOM,SAAU/Q,KAAKkO,IAAI6C,YAAc/Q,KAAK0Q,OAAQ1Q,KAAKuQ,aAG3G,EAEAJ,EAAA1Q,UAAAuR,WAAA,WACI,OAAOxL,EAAA/F,UAAMiH,KAAI/G,KAAAK,KAAC,CACd0Q,KAAM1Q,KAAK0Q,QAEnB,EAEAP,EAAA1Q,UAAAiH,KAAA,SAAKC,GACD,OAAOnB,EAAA/F,UAAMiH,KAAI/G,KAAAK,KAAC,CACdkL,IAAKlL,KAAKyK,SAElB,EAEA0F,EAAA1Q,UAAAwD,MAAA,WACI,MAAO,GAAAoB,OAAGrE,KAAK0Q,OAAM,MAAArM,OAAKrE,KAAKuQ,aACnC,EAxFA3P,EAAA,CADC8J,UAAQ,KAAM,SAAU,Y,gBACpB2F,IAAGF,EAAA1Q,UAAA,cAaRmB,EAAA,CAHC8J,UAAQ,GAAI,MAAO,cAAe,WAC/B,YAAoBf,IAAb3J,KAAKoQ,IAAoBpQ,KAAKoQ,IAAIa,cAAgB,EAC7D,G,yBACoBd,EAAA1Q,UAAA,sBA4ExB0Q,C,CA5FA,CAA8BlC,GA6F9BkC,EAAS1Q,UAAUgJ,QAAU,YAE7B,IAAA4H,EAAA,SAAA7K,GA0BI,SAAA6K,EAAoBnC,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,MAFVzI,EAAAyL,SAAuC,GA0EzCzL,EAAA0L,aAAyB,G,CAtEjC,CA8FJ,OA1HwBvR,EAAAyQ,EAAA7K,GAKpB6K,EAAA5Q,UAAAgR,IAAA,SAAIzN,GACA,OAAKvC,UAAUC,QACfV,KAAKoR,KAAOpO,EACZhD,KAAK6G,cACE7G,MAHuBA,KAAKoR,IAIvC,EAMAf,EAAA5Q,UAAAiR,KAAA,SAAK1N,GACD,OAAKvC,UAAUC,QACfV,KAAKqR,MAAQrO,EACbhD,KAAK6G,cACE7G,MAHuBA,KAAKqR,KAIvC,EASAhB,EAAA5Q,UAAAgL,MAAA,WACI,IAAM6G,EAA8B,GACpC,IAAK,IAAMf,KAAcvQ,KAAKkR,SAC1BI,EAAWf,GAAc,CACrBxE,OAAQ/L,KAAKkR,SAASX,GAAYN,kBAG1C,MAAO,CACHlL,KAAM,WACNI,GAAInF,KAAKmF,KACTsL,IAAKzQ,KAAKyQ,MACVC,KAAM1Q,KAAK0Q,OACX9I,QAAS0J,EAEjB,EAEAjB,EAAA5Q,UAAAwL,QAAA,SAAQC,EAAqBe,QAAA,IAAAA,OAAA,IACxBA,EAASjM,KAAOA,KAAKmF,GAAG+F,EAAI/F,KACxBsL,IAAIvF,EAAIuF,KACRC,KAAKxF,EAAIwF,MAEd,IAAMa,EAAwC,GAC9C,IAAK,IAAMhB,KAAcrF,EAAItD,QACzB2J,EAAUhB,GAAcJ,EAASlF,QAAQjL,KAAKkO,IAAKhD,EAAKlL,KAAMuQ,GAGlE,OADAvQ,KAAKkR,SAAWK,EACTvR,IACX,EAEOqQ,EAAApF,QAAP,SAAeuG,EAAoCtG,EAAqBe,GACpE,YADoE,IAAAA,OAAA,GAC7D,IAAIoE,EAAGmB,GAAkBvG,QAAQC,EAAKe,EACjD,EAEAoE,EAAA5Q,UAAAiH,KAAA,WACI,OAAOE,UAAQ,CACX6J,IAAKzQ,KAAKyQ,MACVC,KAAM1Q,KAAK0Q,QAEnB,EAEAL,EAAA5Q,UAAAwD,MAAA,WACI,OAAOjD,KAAK0Q,MAChB,EAEAL,EAAA5Q,UAAAmI,QAAA,WACI,IAAMoB,EAAS,GACf,IAAK,IAAMuH,KAAcvQ,KAAKkR,SAC1BlI,EAAOnF,KAAK7D,KAAKkR,SAASX,IAE9B,OAAOvH,CACX,EAEAqH,EAAA5Q,UAAAgS,UAAA,WACI,IAAMzI,EAA0B,GAChC,IAAK,IAAMuH,KAAcvQ,KAAKkR,SAC1BlI,EAAOuH,GAAc,CACjBxE,OAAQ/L,KAAKkR,SAASX,GAAYrK,aAG1C,OAAO8C,CACX,EAEAqH,EAAA5Q,UAAAiS,OAAA,SAAOvM,GACH,OAAOnF,KAAKkR,SAAS/L,EACzB,EAKAkL,EAAA5Q,UAAAoH,YAAA,eAAApB,EAAAzF,KACI,OAAKA,KAAKyQ,OAAUzQ,KAAK0Q,QAGrB1Q,KAAK2R,kBAAoB3R,KAAK0G,SAC9B1G,KAAK2R,gBAAkB3R,KAAK0G,cACrB1G,KAAK0P,oBAEX1P,KAAK0P,qBACN1P,KAAK0P,mBAAqBlK,EAAA/F,UAAMoH,YAAWlH,KAAAK,MAAG2C,KAAK,WAE/C,OADA8C,EAAKmM,UAAYC,WAAShB,OAAO,CAAEC,QAASrL,EAAKgL,MAAOM,SAAUtL,EAAKyI,IAAI6C,YAActL,EAAKiL,QACvFjL,EAAKmM,UAAUE,cAC1B,GAAGnP,KAAK,SAAAoP,GACJtM,EAAK0L,aAAeY,EAAQtN,IAAI,SAAAvD,GAAK,OAAAA,EAAE8Q,IAAF,EACzC,GAAGrD,MAAM,SAAApM,GACT,IAEGvC,KAAK0P,oBAfD1N,QAAQC,SAgBvB,EAEAoO,EAAA5Q,UAAAwR,YAAA,WACI,OAAOjR,KAAKmR,YAChB,EAvHAvQ,EAAA,CADC8J,UAAQ,GAAI,SAAU,iC,yBACV2F,EAAA5Q,UAAA,eAWbmB,EAAA,CADC8J,UAAQ,GAAI,SAAU,e,yBACT2F,EAAA5Q,UAAA,gBA6GlB4Q,C,CA1HA,CAAwBjG,GA2HxBiG,EAAG5Q,UAAUgJ,QAAU,MAEvB,IAAAwJ,EAAA,SAAAzM,GAAA,SAAAyM,I,8CAsBA,QAtBiCrS,EAAAqS,EAAAzM,GAI7ByM,EAAAxS,UAAA8K,WAAA,SAAWvH,GACP,OAAOwC,EAAA/F,UAAM8K,WAAW5J,MAAMX,KAAMS,UACxC,EAIAwR,EAAAxS,UAAA8Q,WAAA,SAAWvN,GACP,OAAKvC,UAAUC,QACfV,KAAKuK,aAAagG,WAAWvN,GACtBhD,MAFuBA,KAAKuK,aAAagG,YAGpD,EAEA0B,EAAAxS,UAAAgL,MAAA,WACI,MAAO,CACHtF,GAAInF,KAAKuK,aAAa+F,KAAKnL,KAC3BuM,OAAQ1R,KAAKuQ,aAErB,EACJ0B,CAAA,CAtBA,CAAiC3H,GAuBjC2H,EAAYxS,UAAUgJ,QAAU,eCpYhC,IAAAyJ,EAAA,SAAA1M,GASI,SAAA0M,EAAYhE,GACR,OAAA1I,EAAK7F,KAAAK,KAACkO,IAAIlO,IACd,CA2CJ,OAtDiCJ,EAAAsS,EAAA1M,GAa7B0M,EAAAzS,UAAAgL,MAAA,WACI,MAAO,CACH1F,KAAM,cACNI,GAAInF,KAAKmF,KACTsL,IAAKzQ,KAAKyQ,MACV0B,YAAanS,KAAKmS,cAClBpG,OAAQ/L,KAAKiQ,iBAErB,EAEAiC,EAAAzS,UAAAwL,QAAA,SAAQC,EAAwBe,GAK5B,YAL4B,IAAAA,OAAA,IAC3BA,EAASjM,KAAOA,KAAKmF,GAAG+F,EAAI/F,KACxBsL,IAAIvF,EAAIuF,KACR0B,YAAYjH,EAAIiH,aAEdnS,IACX,EAEOkS,EAAAjH,QAAP,SAAe0F,EAAsBzF,EAAwBe,GACzD,YADyD,IAAAA,OAAA,GAClD,IAAIiG,EAAYvB,GAAI1F,QAAQC,EAAKe,EAC5C,EAEAiG,EAAAzS,UAAAmQ,cAAA,WACI,OAAOgB,SAAOwB,kBAAkB,CAAEtB,QAAS9Q,KAAKyQ,MAAOM,SAAU/Q,KAAKkO,IAAI6C,YAAc/Q,KAAKqS,YAAarS,KAAKmS,cACnH,EAEAD,EAAAzS,UAAAuR,WAAA,WACI,OAAOxL,EAAA/F,UAAMiH,KAAI/G,KAAAK,KAAC,CACdmS,YAAanS,KAAKmS,eAE1B,EAEAD,EAAAzS,UAAAiH,KAAA,SAAKC,GACD,OAAOnB,EAAA/F,UAAMiH,KAAI/G,KAAAK,KAAC,CACdkL,IAAKlL,KAAKyK,SAElB,EAEAyH,EAAAzS,UAAAwD,MAAA,WACI,MAAO,GAAAoB,OAAGrE,KAAKmS,cACnB,EAlDAvR,EAAA,CADC8J,UAAQ,GAAI,SAAU,iC,2BACIwH,EAAAzS,UAAA,cAE3BmB,EAAA,CADC8J,UAAQ,GAAI,SAAU,c,2BACUwH,EAAAzS,UAAA,oBAEjCmB,EAAA,CADC8J,UAAQ,GAAI,SAAU,qB,2BACYwH,EAAAzS,UAAA,sBA+CvCyS,C,CAtDA,CAAiCjE,GAuDjCiE,EAAYzS,UAAUgJ,QAAU,eCpDhC,IAAA6J,EAAA,SAAA9M,GAMI,SAAA8M,IACI,OAAA9M,EAAK7F,KAAAK,OAAEA,IACX,CA8BJ,OAtC+BJ,EAAA0S,EAAA9M,GAU3B8M,EAAA7S,UAAAgL,MAAA,WACI,MAAO,CACH1F,KAAM,SACNI,GAAInF,KAAKuH,UAEjB,EAEA+K,EAAA7S,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KACFuH,QAAQ2D,EAAI/F,GAErB,EAEOmN,EAAArH,QAAP,SAAeC,GACX,OAAO,IAAIoH,GAAYrH,QAAQC,EACnC,EAIAoH,EAAA7S,UAAA0L,MAAA,SAAMnI,GACF,OAAKvC,UAAUC,QACfV,KAAKoL,OAASpI,EACPhD,MAFuBA,KAAKoL,MAGvC,EAEAkH,EAAA7S,UAAA4L,MAAA,WACI,QAASrL,KAAKuH,SAClB,EAjCA3G,EAAA,CADC8J,UAAQ,GAAI,SAAU,mB,2BACQ4H,EAAA7S,UAAA,kBAkCnC6S,C,CAtCA,CAA+BjK,eAwC/BkK,EAAA,SAAA/M,GAaI,SAAA+M,EAAqBrE,GACjB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADUyF,EAAAyI,MAXbzI,EAAA+M,gBAAyD,GAuEzD/M,EAAAgN,SAAW,IAAI5D,oB,CA1DvB,CAsFJ,OArGiCjP,EAAA2S,EAAA/M,GAiB7B+M,EAAA9S,UAAAgL,MAAA,WACI,MAAO,CACH1F,KAAM,OACNI,GAAInF,KAAKmF,KACTsL,IAAKzQ,KAAKyQ,MACViC,OAAQ1S,KAAK0S,SACbC,KAAM3S,KAAK2S,OACXC,OAAQ5S,KAAK6S,qBAAqBpO,IAAI,SAAAoI,GAAM,OAAAA,EAAGpC,OAAH,GAC5C7C,QAAS5H,KAAKyR,YAEtB,EAEAc,EAAA9S,UAAAwL,QAAA,SAAQC,EAAwBe,GAO5B,IAAK,IAAMlL,UAPiB,IAAAkL,OAAA,IAC3BA,EAASjM,KAAOA,KAAKmF,GAAG+F,EAAI/F,KACxBsL,IAAIvF,EAAIuF,KACRiC,OAAOxH,EAAIwH,QACXC,KAAKzH,EAAIyH,MAAQ,OACjBG,cAAc5H,EAAI0H,OAAOnO,IAAI6N,EAAUrH,UAE1BC,EAAItD,QAClB5H,KAAKiQ,eAAelP,EAAKmK,EAAItD,QAAQ7G,GAAKgL,QAE9C,OAAO/L,IACX,EAEOuS,EAAAtH,QAAP,SAAe0F,EAAsBzF,EAAwBe,GACzD,YADyD,IAAAA,OAAA,GAClD,IAAIsG,EAAY5B,GAAI1F,QAAQC,EAAKe,EAC5C,EAEAsG,EAAA9S,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMC,UAAOzG,EAAA,CACVsQ,IAAKzQ,KAAKyQ,MACViC,OAAQ1S,KAAK0S,SACbC,KAAM3S,KAAK2S,QACRhM,GAEX,EAEA4L,EAAA9S,UAAAwD,MAAA,WACI,OAAOjD,KAAK0S,QAChB,EAIAH,EAAA9S,UAAAwQ,eAAA,SAAeM,EAAoBvN,GAC/B,OAAyB,IAArBvC,UAAUC,OAAqBV,KAAKwS,gBAAgBjC,IAAe,IACvEvQ,KAAKwS,gBAAgBjC,GAAcvN,EAC5BhD,KACX,EAEAuS,EAAA9S,UAAAoT,mBAAA,WACI,OAAO7S,KAAK8S,gBAAgB3M,OAAO,SAAArD,GAAK,OAAAA,EAAEuI,OAAF,EAC5C,EAKAkH,EAAA9S,UAAAsT,OAAA,SAAOC,GACH,IAAMC,EAAcrM,UAAQoM,GAC5B,IAAKhT,KAAKkT,cAAgBlT,KAAKmT,mBAAqBF,EAAa,CAC7DjT,KAAKmT,iBAAmBF,EACxB,IAAMG,EAAOC,mBAAiB,CAAEvC,QAAS9Q,KAAKyQ,MAAO1L,KAAM/E,KAAK2S,SAChE3S,KAAKkT,aAAelT,KAAKyS,SAAS5O,KAAKuP,EAAKE,KAAKtT,KAAK0S,SAAUM,GACpE,CACA,OAAOhT,KAAKkT,YAChB,EAEAX,EAAA9S,UAAAwR,YAAA,WACI,IAAMjI,EAAmB,GACzB,IAAK,IAAMjI,KAAOf,KAAKwS,gBACnBxJ,EAAOnF,KAAK9C,GAEhB,OAAOiI,CACX,EAEAuJ,EAAA9S,UAAAgS,UAAA,eAAAhM,EAAAzF,KACUgJ,EAA0B,GAMhC,OALAhJ,KAAKiR,cAAc9E,QAAQ,SAAAoE,GACvBvH,EAAOuH,GAAc,CACjBxE,OAAQtG,EAAK+M,gBAAgBjC,GAErC,GACOvH,CACX,EA/FApI,EAAA,CADC8J,UAAQ,GAAI,SAAU,Y,2BACI6H,EAAA9S,UAAA,cAE3BmB,EAAA,CADC8J,UAAQ,GAAI,SAAU,a,2BACO6H,EAAA9S,UAAA,iBAE9BmB,EAAA,CADC8J,UAAQ,MAAO,MAAO,eAAgB,CAAC,MAAO,S,2BACX6H,EAAA9S,UAAA,eAEpCmB,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,eAAgB,KAAM,CAAEiB,WAAY2G,I,2BACxBC,EAAA9S,UAAA,wBA0F9C8S,C,CArGA,CAAiCnI,GAsGjCmI,EAAY9S,UAAUgJ,QAAU,eAEhC,IAAA8K,EAAA,SAAA/N,GAgBI,SAAA+N,EAAoBrF,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,MAbpBzI,EAAA+N,SAAwB,IAAIjB,EAAY9M,EAAKyI,KAsErCzI,EAAA8G,UAAsB,G,CAvD9B,CA8FJ,OAhHgC3M,EAAA2T,EAAA/N,GAM5B+N,EAAA9T,UAAAgU,QAAA,SAAQzQ,GACJ,OAAKvC,UAAUC,QACfV,KAAKwT,SAAWxQ,EAChBhD,KAAKwT,SAAS3M,cACP7G,MAHuBA,KAAKwT,QAIvC,EASAD,EAAA9T,UAAAoT,mBAAA,WACI,OAAO7S,KAAKyT,UAAUZ,oBAC1B,EAEAU,EAAA9T,UAAAgL,MAAA,WACI,OAAOzK,KAAKyT,UAAUhJ,OAC1B,EAEA8I,EAAA9T,UAAAwL,QAAA,SAAQC,GAEJ,OADAlL,KAAKyT,UAAUxI,QAAQC,GAChBlL,IACX,EAEOuT,EAAAtI,QAAP,SAAe0F,EAAsB+C,EAAiBnD,GAClD,OAAO,IAAIgD,EAAW5C,GACjBxL,GAAG,GAAAd,OAAGqP,EAAGvO,KAAI,KAAAd,OAAIkM,IACjBkD,QAAQC,GACRnD,WAAWA,EAEpB,EAEAgD,EAAA9T,UAAAkU,UAAA,WACI,MAAO,GAAAtP,OAAGrE,KAAKyT,UAAUhD,MAAK,KAAApM,OAAIrE,KAAKyT,UAAUf,SAAQ,IAC7D,EAEAa,EAAA9T,UAAAuR,WAAA,WACI,OAAOhR,KAAKyT,UAAU/M,MAC1B,EAEA6M,EAAA9T,UAAAqT,cAAA,WACI,OAAO9S,KAAKyT,UAAUX,gBAAgBrO,IAAI,SAAAoI,GAAM,OAAAA,EAAGpC,OAAH,EACpD,EAIA8I,EAAA9T,UAAAwQ,eAAA,SAAejN,GACX,OAAKvC,UAAUC,QACfV,KAAKyT,UAAUxD,eAAejQ,KAAKuQ,aAAcvN,GAC1ChD,MAFuBA,KAAKyT,UAAUxD,eAAejQ,KAAKuQ,aAGrE,EAEAgD,EAAA9T,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMC,UAAOzG,EAAA,CACV+I,OAAQlJ,KAAKgR,aACbT,WAAYvQ,KAAKuQ,cACd5J,GAEX,EAEA4M,EAAA9T,UAAAwD,MAAA,WACI,MAAO,GAAAoB,OAAGrE,KAAKyT,UAAUxQ,QAAO,MAAAoB,OAAKrE,KAAKuQ,aAC9C,EAGQgD,EAAA9T,UAAAmU,eAAR,WACI,IAAK5T,KAAKuM,YAAcvM,KAAKuM,UAAU7L,OAAQ,MAAO,GACtD,IAAMsI,EAASsD,EAAYtM,KAAKuM,UAAU,GAAIvM,KAAKuM,WAEnD,OADAvM,KAAKiQ,eAAejH,GACbA,CACX,EAEAuK,EAAA9T,UAAAyH,cAAA,SAAcD,GAAd,IAAAxB,EAAAzF,KACI,OAAO,WAAM,OAAAyF,EAAKmO,gBAAL,CACjB,EAEAL,EAAA9T,UAAAyI,YAAA,WACI,OAAOlI,KAAKuM,SAChB,EAEAgH,EAAA9T,UAAAsT,OAAA,SAAOC,GAAP,IAAAvN,EAAAzF,KACI,OAAOA,KAAKyT,UAAUV,OAAOC,GAASrQ,KAAK,SAAA+L,GAGvC,IAFA,IAAM6B,EAAa9K,EAAK8K,aAEJlK,EAAA,EAAAwN,EADCtD,EAAaA,EAAWuD,MAAM,KAAO,GACtCzN,EAAAwN,EAAAnT,OAAA2F,IAAc,CAC9BqI,GAAYA,GAAY,IADZmF,EAAAxN,GAEhB,CAEA,OADAZ,EAAK8G,UAAYmC,EACVA,CACX,EACJ,EAEA6E,EAAA9T,UAAAsU,cAAA,WACI,IAAMf,EAAU,GAIhB,OAHAhT,KAAKyT,UAAUZ,qBAAqB1G,QAAQ,SAAArJ,GACxCkQ,EAAQlQ,EAAEyE,WAAa,EAC3B,GACOyL,CACX,EAEAO,EAAA9T,UAAAsI,KAAA,WACI,OAAO/H,KAAK+S,OAAO/S,KAAK+T,iBAAiBpR,KAAK,SAAA+L,GAAc,EAChE,EA5GA9N,EAAA,CADC8J,UAAQ,KAAM,SAAU,gB,gBACf6H,IAAwCgB,EAAA9T,UAAA,mBAWlDmB,EAAA,CADC8J,UAAQ,GAAI,SAAU,e,2BACW6I,EAAA9T,UAAA,qBAkGtC8T,C,CAhHA,CAAgCnJ,GAiHhCmJ,EAAW9T,UAAUgJ,QAAU,cAE/B,IAAAuL,EAAA,SAAAxO,GA2DI,SAAAwO,EAAoB9F,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,M,CAEpB,CAiEJ,OA9H2BtO,EAAAoU,EAAAxO,GAiCvBwO,EAAAvU,UAAAsH,SAAA,SAASkN,GACL,IAAMjL,EAA2B,GAsBjC,OArBKhJ,KAAKkU,gBACNlL,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,YAAA5P,OAAWrE,KAAKkJ,UACjCiL,IAAK,qBAAA9P,OAAqBrE,KAAKkJ,SAAQ,KACvCkL,KAAM,cAAA/P,OAAcM,KAAKL,UAAUtE,KAAKqU,uBAG3CrU,KAAKsU,qBACNtL,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,gBACjBE,IAAK,0BAAA9P,OAA0BrE,KAAKuU,cAAa,KACjDH,KAAM,cAAA/P,OAAcM,KAAKL,UAAUtE,KAAKwU,sBAG3CxU,KAAKyU,eACNzL,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,UACjBE,IAAK,oBAAA9P,OAAoBrE,KAAKoC,QAAO,KACrCgS,KAAM,0BAGPpL,CACX,EAMAgL,EAAAvU,UAAAgL,MAAA,WACI,MAAO,CACHvB,OAAQlJ,KAAKkJ,SACbwL,cAAe1U,KAAKuU,cACpBI,aAAc3U,KAAK4U,aACnBxS,MAAOpC,KAAKoC,QAEpB,EAEA4R,EAAAvU,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KACFkJ,OAAOgC,EAAIhC,QACXqL,YAAYrJ,EAAIwJ,eAChBE,WAAW1J,EAAIyJ,cACfvS,MAAM8I,EAAI9I,MAEnB,EAEO4R,EAAA/I,QAAP,SAAe0F,EAAsBzF,GACjC,OAAO,IAAI8I,EAAMrD,GAAI1F,QAAQC,EACjC,EAEA8I,EAAAvU,UAAAiH,KAAA,WACI,OAAOE,UAAQ,CACX3D,MAAOjD,KAAK4U,aACZ1L,OAAQlJ,KAAKkJ,SACb2L,YAAa7U,KAAKuU,eAE1B,EAEAP,EAAAvU,UAAA4U,iBAAA,WACI,OAAOrU,KAAKkO,IAAI4G,YACpB,EAEAd,EAAAvU,UAAAsV,aAAA,WACI,OAAO/U,KAAKwU,kBAAkB/P,IAAI,SAAA2B,GAAS,OAAAA,EAAMjB,EAAN,EAC/C,EAEA6O,EAAAvU,UAAAuV,UAAA,WACI,OAAOhV,KAAKkO,IAAI+G,QAAQjV,KAAKkJ,SACjC,EAEA8K,EAAAvU,UAAA+U,gBAAA,WACI,OAAOxU,KAAKgV,YAAYE,gBAAgBC,iBAC5C,EAEAnB,EAAAvU,UAAA2V,gBAAA,WACI,OAAOpV,KAAKgV,YAAYtL,WAC5B,EAEAsK,EAAAvU,UAAA+L,UAAA,eAAA/F,EAAAzF,KACI,OAAIA,KAAKqV,iBAAmBrV,KAAKsV,qBACLtV,KAAKoV,kBACN3Q,IAAI,SAAAQ,GAAO,OAAAA,EAAIQ,EAAK8O,cAAT,GAC3BvU,KAAKyL,eACL,CAACzL,KAAKoC,SAEV,CAAC,GACZ,EAEA4R,EAAAvU,UAAAqH,OAAA,WACI,OAAO9G,KAAKuV,sBAAyBvV,KAAKqV,iBAAmBrV,KAAKsV,sBAAyBtV,KAAKyL,eACpG,EA1HA7K,EAAA,CADC8J,UAAQ,KAAM,SAAU,S,2BACSsJ,EAAAvU,UAAA,qBAOlCmB,EAAA,CALC8J,UAAQ,KAAM,MAAO,WAAY,WAAyB,OAAO1K,KAAKqU,kBAAoB,EAAG,CAC1F3I,UAAU,EACVE,QAAS,SAACC,GAAsB,OAAAA,EAAEJ,cAAF,EAChC1E,SAAU,SAAC8E,GAAsB,OAAAA,EAAE2J,mBAAqB3J,EAAEwI,mBAAmBhN,QAAQwE,EAAE3C,WAAa,CAAnE,I,2BAEP8K,EAAAvU,UAAA,iBAS9BmB,EAAA,CALC8J,UAAQ,KAAM,MAAO,eAAgB,WAAyB,OAAO1K,KAAK+U,cAAgB,EAAG,CAC1FrJ,UAAU,EACVE,QAAS,SAACC,GAAsB,OAACA,EAAEwJ,iBAAmBxJ,EAAEJ,cAAxB,EAChC1E,SAAU,SAAC8E,GAAsB,OAAAA,EAAE4J,wBAA0B5J,EAAEkJ,eAAe1N,QAAQwE,EAAE0I,gBAAkB,CAAzE,I,2BAEFP,EAAAvU,UAAA,sBASnCmB,EAAA,CALC8J,UAAQ,KAAM,SAAU,eAAgB,KAAM,CAC3CgB,UAAU,EACVE,QAAS,SAACC,GAAsB,OAAAA,EAAEwJ,eAAF,EAChCtO,SAAU,SAAC8E,GAAsB,OAAAA,EAAE6J,kBAAoB7J,EAAEJ,cAAxB,I,2BAERuI,EAAAvU,UAAA,gBAkGjCuU,C,CA9HA,CAA2B3L,eA+H3B2L,EAAMvU,UAAUgJ,QAAU,SAE1B,IAAAkN,EAAA,SAAAnQ,GA4CI,SAAAmQ,EAAoBzH,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,MAtCZzI,EAAA4I,MAA+B,G,CAwCvC,CA2HJ,OAzKmCzO,EAAA+V,EAAAnQ,GAE/BmQ,EAAAlW,UAAAkU,UAAA,WACI,OAAO3T,KAAKuK,aAAaoJ,WAC7B,EAMAgC,EAAAlW,UAAA8K,WAAA,SAAWvH,GACP,OAAOwC,EAAA/F,UAAM8K,WAAW5J,MAAMX,KAAMS,UACxC,EAEAkV,EAAAlW,UAAAgR,IAAA,WACI,OAAOzQ,KAAKuK,aAAakJ,UAAUhD,KACvC,EAEAkF,EAAAlW,UAAAiT,OAAA,WACI,OAAO1S,KAAKuK,aAAakJ,UAAUf,QACvC,EAEAiD,EAAAlW,UAAA8Q,WAAA,WACI,OAAOvQ,KAAKuK,aAAagG,YAC7B,EAMAoF,EAAAlW,UAAAuT,QAAA,SAAQhQ,GACJ,OAAKvC,UAAUC,QACfV,KAAK4V,SAAW5S,EACThD,MAFuBA,KAAK4V,QAGvC,EAEAD,EAAAlW,UAAAsH,SAAA,WAEI,IADA,IAAIiC,EAA2B,GACV3C,EAAA,EAAA+C,EAAApJ,KAAK6V,cAALxP,EAAA+C,EAAA1I,OAAA2F,IAAoB,CAApC,IAAMF,EAAMiD,EAAA/C,GACb2C,EAASA,EAAO3E,OAAO8B,EAAOY,SAAS,WAC3C,CACA,OAAOiC,CACX,EAMA2M,EAAAlW,UAAAgL,MAAA,WACI,MAAO,CACHtF,GAAInF,KAAKuK,aAAakJ,UAAUtO,KAChCuM,OAAQ1R,KAAKuQ,aACbyC,QAAShT,KAAK6V,cAAcpR,IAAI,SAACqR,GAC7B,MAAO,CACH5M,OAAQ4M,EAAG5M,SACXwL,cAAeoB,EAAGvB,cAClBI,aAAcmB,EAAGlB,aACjBxS,MAAO0T,EAAG1T,QAElB,GAER,EAEAuT,EAAAlW,UAAAuR,WAAA,WACI,OAAOhR,KAAKuK,aAAa7D,MAC7B,EAIAiP,EAAAlW,UAAAsW,iBAAA,SAAiB/S,GAAjB,IAAAyC,EAAAzF,KACI,OAAKS,UAAUC,QACfV,KAAKgT,QAAQhQ,EAAEyB,IAAI,SAAAuR,GAAM,OAAAhC,EAAM/I,QAAQxF,EAAKyI,IAAK8H,EAAxB,IAClBhW,MAFuBA,KAAK6V,cAAcpR,IAAI,SAAAwR,GAAS,OAAAA,EAAMxL,OAAN,EAGlE,EAEAkL,EAAAlW,UAAAqT,cAAA,WACI,OAAO9S,KAAKuK,aAAauI,eAC7B,EAEA6C,EAAAlW,UAAAwQ,eAAA,WACI,OAAOjQ,KAAKuK,aAAa0F,gBAC7B,EAEA0F,EAAAlW,UAAAiH,KAAA,WACI,OAAO1G,KAAKuK,aAAa7D,KAAK,CAC1B6J,WAAYvQ,KAAKuQ,aACjByC,QAAShT,KAAK+T,iBAEtB,EAEA4B,EAAAlW,UAAAwD,MAAA,WACI,MAAO,GAAAoB,OAAGrE,KAAKuK,aAAatH,QAAO,MAAAoB,OAAKrE,KAAKuK,aAAagG,aAC9D,EAEAoF,EAAAlW,UAAAqV,WAAA,WACI,OAAO9U,KAAKkO,IAAI4G,YACpB,EAEAa,EAAAlW,UAAAwV,QAAA,SAAQ/L,GACJ,OAAOlJ,KAAKkO,IAAI+G,QAAQ/L,EAC5B,EAEAyM,EAAAlW,UAAAqI,iBAAA,SAAiBL,GACbjC,EAAA/F,UAAMqI,iBAAgBnI,KAAAK,KAACyH,GAEvB,IADA,IACoBpB,EAAA,EAAA+C,EAAApJ,KAAK6V,cAALxP,EAAA+C,EAAA1I,OAAA2F,IAAoB,CAAnC,IAAM4P,EAAK7M,EAAA/C,GACN6P,EAAeD,EAAMjB,YAAYE,gBAClCzN,EAAKmL,OAAO5S,KAAKmF,QAClBsC,EAAKmL,OAAO5S,KAAKmF,MAAQ,IAE7BsC,EAAKmL,OAAO5S,KAAKmF,MAAMtB,KAAKoS,EAAMrB,cAClCsB,EAAa1O,cAAcC,EAAM,CAACwO,EAAM1B,eAC5C,CACA/O,EAAA/F,UAAM+H,cAAa7H,KAAAK,KAACyH,EATY,GAUpC,EAEAkO,EAAAlW,UAAAoW,YAAA,WACI,OAAO7V,KAAKgT,UAAU7M,OAAO,SAAA8P,GAAS,OAAAA,EAAMnP,QAAN,EAC1C,EAEA6O,EAAAlW,UAAAoH,YAAA,eAAApB,EAAAzF,KACI,OAAOA,KAAKuK,aAAa1D,cAAclE,KAAK,WACxC,IAAMwT,EAAY1Q,EAAKuN,UACjBoD,EAAQC,UAAQF,EAAU1R,IAAI,SAAAjF,GAAK,OAAAA,EAAEoV,YAAF,GAAiBnP,EAAK8E,aAAasI,qBAAqBpO,IAAI,SAAA6R,GAAM,OAAAA,EAAG/O,SAAH,IACrGgP,EAAYJ,EAAUhQ,OAAO,SAAAxC,GAAM,OAAAyS,EAAMhO,OAAOf,QAAQ1D,EAAGiR,eAAiB,CAAzC,GACzCnP,EAAKuN,QAAQuD,EAAUlS,OAAO+R,EAAMI,MAAM/R,IAAI,SAAAxB,GAAS,WAAI+Q,EAAMvO,EAAKyI,KAAK0G,WAAW3R,EAA/B,IAC3D,EACJ,EAEA0S,EAAAlW,UAAAuH,UAAA,WACI,OAAOhH,KAAK6V,cAAcpR,IAAI,SAAAwR,GAAS,OAAAA,EAAM/M,QAAN,EAC3C,EAEAyM,EAAAlW,UAAAyH,cAAA,SAAcD,GACV,OAAOjH,KAAKuK,aAAarD,cAAcD,EAC3C,EAEA0O,EAAAlW,UAAAsU,cAAA,WACI,IAAMf,EAAUhT,KAAKuK,aAAawJ,gBAMlC,OALA/T,KAAKgT,UAAU7G,QAAQ,SAAArJ,QACa6G,IAA5BqJ,EAAQlQ,EAAE8R,gBACV5B,EAAQlQ,EAAE8R,cAAgB9R,EAAE0I,aAAewH,EAAQlQ,EAAE8R,cAE7D,GACO5B,CACX,EAIA2C,EAAAlW,UAAAsI,KAAA,eAAAtC,EAAAzF,KACUgT,EAAUhT,KAAK+T,gBACfd,EAAcrM,UAAQ,CAAEF,KAAM1G,KAAK0G,OAAQsM,QAAOA,IAQxD,OAPIhT,KAAKmT,mBAAqBF,IAC1BjT,KAAKmT,iBAAmBF,EACxBjT,KAAKyW,oBAAsBzW,KAAKuK,aAAawI,OAAOC,GAASrQ,KAAK,SAAC+L,GAE/D,OADAjJ,EAAK4I,MAAQ5I,EAAKM,SAAS2I,GACpBjJ,EAAK4I,KAChB,IAEGrO,KAAKyW,mBAChB,EAEAd,EAAAlW,UAAAuI,OAAA,WACI,OAAOhI,KAAKqO,KAChB,EAEAsH,EAAAlW,UAAAyI,YAAA,WACI,OAAOlI,KAAKqO,KAChB,EA7IAzN,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,kB,wBACZiL,EAAAlW,UAAA,mBA8ItBkW,C,CAzKA,CAAmCrL,GA0KnCqL,EAAclW,UAAUgJ,QAAU,iBCrhBlC,IAAAiO,EAAA,SAAAlR,GAiBI,SAAAkR,EAAoBxI,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,MAdZzI,EAAA+M,gBAAyD,GACzD/M,EAAAkR,MAA2B,QAgH3BlR,EAAAgN,SAAW,IAAI5D,oB,CAjGvB,CA4HJ,OA/IkCjP,EAAA8W,EAAAlR,GAqB9BkR,EAAAjX,UAAAgL,MAAA,WACI,MAAO,CACH1F,KAAM/E,KAAK2W,MACXxR,GAAInF,KAAKmF,KACTsL,IAAKzQ,KAAKyQ,MACVmG,SAAU5W,KAAK4W,WACfC,QAAS7W,KAAK6W,UACdjE,OAAQ5S,KAAK8S,gBACblL,QAAS5H,KAAKyR,YAEtB,EAEAiF,EAAAjX,UAAAwL,QAAA,SAAQC,EAA8Ce,GAUlD,IAAK,IAAMlL,UAVuC,IAAAkL,OAAA,GAClDjM,KAAK2W,MAAQzL,EAAInG,MAChBkH,EAASjM,KAAOA,KAAKmF,GAAG+F,EAAI/F,KACxBsL,IAAIvF,EAAIuF,KACRmG,SAAS1L,EAAI0L,UACbC,QAAQ3L,EAAI2L,SAEb3L,EAAI0H,QAAU1H,EAAI0H,OAAOlS,QACzBV,KAAK8S,cAAc5H,EAAI0H,QAET1H,EAAItD,QAClB5H,KAAKiQ,eAAelP,EAAKmK,EAAItD,QAAQ7G,GAAKgL,QAE9C,OAAO/L,IACX,EAEO0W,EAAAzL,QAAP,SAAe0F,EAAsBzF,EAA8Ce,GAC/E,YAD+E,IAAAA,OAAA,GACxE,IAAIyK,EAAa/F,GAAI1F,QAAQC,EAAKe,EAC7C,EAEAyK,EAAAjX,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMC,UAAOzG,EAAA,CACVsQ,IAAKzQ,KAAKyQ,MACVmG,SAAU5W,KAAK4W,WACfE,QAAS9W,KAAK6W,UACdE,mBAAoB/W,KAAK+W,qBACzBC,oBAAqBhX,KAAKgX,uBACvBrQ,GAEX,EAEA+P,EAAAjX,UAAAwD,MAAA,WACI,OAAOjD,KAAK6W,SAChB,EAIAH,EAAAjX,UAAAoH,YAAA,eAAApB,EAAAzF,KAKI,GAJIA,KAAK2R,kBAAoB3R,KAAK0G,SAC9B1G,KAAK2R,gBAAkB3R,KAAK0G,cACrB1G,KAAK0P,qBAEX1P,KAAK0P,mBAAoB,CAC1B,IAAMuH,IAAYjX,KAAKkX,eACvBlX,KAAK0P,mBAAqB,IAAI1N,QAAoB,SAACC,EAASC,GACxD,IAAMiV,EAAQC,QAAWvG,OAAO,CAAEC,QAASrL,EAAKgL,MAAOM,SAAUtL,EAAKyI,IAAI6C,YAActL,EAAKmR,WAAYnR,EAAKoR,aACzGI,GAAWxR,EAAKsR,sBAAwBtR,EAAKuR,wBAC9C/U,EAAQkV,EAAMtH,WAElB5N,EAAQkV,EACZ,GAAGxU,KAAK,SAACwU,GACL1R,EAAK4R,OAASF,EACTF,IAAWxR,EAAKsR,uBACjBtR,EAAKyR,eAAiBC,EAAMrE,gBAAgB3M,OAAO,SAAAlB,GAAO,MAAe,UAAfQ,EAAKkR,UAhG3DW,EAgGgGrS,EAAIE,IA/FpGzE,QAAU,GAAK4W,EAAajQ,QAAQ,cAAgBiQ,EAAa5W,OAAS,GADlG,IAAwB4W,CAgGsD,IAEzDL,IAAWxR,EAAKuR,uBACjBG,EAAMlG,cAAc9K,OAAO,SAAAoK,GAAc,MAAe,UAAf9K,EAAKkR,QA/FlE,SAAyBpG,GACrB,OAAQA,EAAW7P,QAAU,GAAK6P,EAAWlJ,QAAQ,cAAgBkJ,EAAW7P,OAAS,GACpF,CAAC,YAAa,mBAAoB,gBAAgB2G,QAAQkJ,IAAe,CAElF,CA2FwFgH,CAAgBhH,EAA3C,GAAwDpE,QAAQ,SAAAoE,GACrG9K,EAAK+M,gBAAgBjC,GAAc4G,EAAMK,aAAajH,EAC1D,EAER,EACJ,CACA,OAAOvQ,KAAK0P,kBAChB,EAIAgH,EAAAjX,UAAAqT,cAAA,SAAc9P,GACV,OAAKvC,UAAUC,QACfV,KAAKkX,eAAiBlU,EACfhD,MAFuBA,KAAKkX,gBAAkB,EAGzD,EAIAR,EAAAjX,UAAAwQ,eAAA,SAAeM,EAAoBvN,GAC/B,OAAyB,IAArBvC,UAAUC,OAAqBV,KAAKwS,gBAAgBjC,IAAe,IACvEvQ,KAAKwS,gBAAgBjC,GAAcvN,EAC5BhD,KACX,EAKA0W,EAAAjX,UAAAsT,OAAA,SAAOC,GACH,IAAMC,EAAcrM,UAAQoM,GAK5B,OAJKhT,KAAKkT,cAAgBlT,KAAKmT,mBAAqBF,IAChDjT,KAAKmT,iBAAmBF,EACxBjT,KAAKkT,aAAelT,KAAKyS,SAAS5O,KAAK7D,KAAKqX,OAAOtE,OAAOC,KAEvDhT,KAAKkT,YAChB,EAEAwD,EAAAjX,UAAAwR,YAAA,WACI,IAAMjI,EAAmB,GACzB,IAAK,IAAMjI,KAAOf,KAAKwS,gBACnBxJ,EAAOnF,KAAK9C,GAEhB,OAAOiI,CACX,EAEA0N,EAAAjX,UAAAgS,UAAA,eAAAhM,EAAAzF,KACUgJ,EAA0B,GAMhC,OALAhJ,KAAKiR,cAAc9E,QAAQ,SAAAoE,GACvBvH,EAAOuH,GAAc,CACjBxE,OAAQtG,EAAK+M,gBAAgBjC,GAErC,GACOvH,CACX,EAvIApI,EAAA,CADC8J,UAAQ,GAAI,SAAU,iC,2BACIgM,EAAAjX,UAAA,cAE3BmB,EAAA,CADC8J,UAAQ,GAAI,SAAU,a,2BACSgM,EAAAjX,UAAA,mBAEhCmB,EAAA,CADC8J,UAAQ,GAAI,SAAU,Y,2BACQgM,EAAAjX,UAAA,kBAE/BmB,EAAA,CADC8J,WAAQ,EAAO,UAAW,+B,2BACgBgM,EAAAjX,UAAA,6BAE3CmB,EAAA,CADC8J,WAAQ,EAAO,UAAW,gC,2BACiBgM,EAAAjX,UAAA,8BAgIhDiX,C,CA/IA,CAAkCtM,GAgJlCsM,EAAajX,UAAUgJ,QAAU,gBAEjC,IAAAgP,GAAA,SAAAjS,GAkBI,SAAAiS,EAAoBvJ,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,MAfpBzI,EAAA+N,SAAyB,IAAIkD,EAAajR,EAAKyI,K,CAiB/C,CA8DJ,OAlFiCtO,EAAA6X,EAAAjS,GAM7BiS,EAAAhY,UAAAgU,QAAA,SAAQzQ,GACJ,OAAKvC,UAAUC,QACfV,KAAKwT,SAAWxQ,EAChBhD,KAAKwT,SAAS3M,cACP7G,MAHuBA,KAAKwT,QAIvC,EAWAiE,EAAAhY,UAAAgL,MAAA,WACI,OAAOzK,KAAKyT,UAAUhJ,OAC1B,EAEAgN,EAAAhY,UAAAwL,QAAA,SAAQC,GAEJ,OADAlL,KAAKyT,UAAUxI,QAAQC,GAChBlL,IACX,EAEOyX,EAAAxM,QAAP,SAAe0F,EAAsB+C,EAAkBnD,GACnD,OAAO,IAAIkH,EAAY9G,GAClBxL,GAAG,GAAAd,OAAGqP,EAAGvO,KAAI,KAAAd,OAAIkM,IACjBkD,QAAQC,GACRnD,WAAWA,EAEpB,EAEAkH,EAAAhY,UAAAkU,UAAA,WACI,MAAO,GAAAtP,OAAGrE,KAAKyT,UAAUhD,MAAK,KAAApM,OAAIrE,KAAKyT,UAAUmD,WAAU,KAAAvS,OAAIrE,KAAKyT,UAAUoD,UAClF,EAEAY,EAAAhY,UAAAuR,WAAA,WACI,OAAOhR,KAAKyT,UAAU/M,MAC1B,EAEA+Q,EAAAhY,UAAAqT,cAAA,WACI,OAAO9S,KAAKyT,UAAUX,eAC1B,EAIA2E,EAAAhY,UAAAwQ,eAAA,SAAejN,GACX,OAAKvC,UAAUC,QACfV,KAAKyT,UAAUxD,eAAejQ,KAAKuQ,aAAcvN,GAC1ChD,MAFuBA,KAAKyT,UAAUxD,eAAejQ,KAAKuQ,aAGrE,EAEAkH,EAAAhY,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMC,UAAOzG,EAAA,CACV+I,OAAQlJ,KAAKgR,aACbT,WAAYvQ,KAAKuQ,cACd5J,GAEX,EAEA8Q,EAAAhY,UAAAwD,MAAA,WACI,MAAO,GAAAoB,OAAGrE,KAAKyT,UAAUxQ,QAAO,MAAAoB,OAAKrE,KAAKuQ,aAC9C,EAEAkH,EAAAhY,UAAAyH,cAAA,SAAcD,GAAd,IAAAxB,EAAAzF,KACI,OAAO,WAAM,OAAAyF,EAAKgO,UAAUxD,eAAexK,EAAK8K,aAAnC,CACjB,EAEAkH,EAAAhY,UAAAoH,YAAA,WACI,OAAO7G,KAAKyT,UAAU5M,aAC1B,EAEA4Q,EAAAhY,UAAAsT,OAAA,SAAOC,GACH,OAAOhT,KAAKyT,UAAUV,OAAOC,EACjC,EA9EApS,EAAA,CADC8J,UAAQ,KAAM,SAAU,iB,gBACfgM,IAA0Ce,EAAAhY,UAAA,mBAapDmB,EAAA,CAHC8J,UAAQ,GAAI,MAAO,cAAe,WAC/B,YAAyBf,IAAlB3J,KAAKwT,SAAyBxT,KAAKwT,SAASvC,cAAgB,EACvE,G,2BACkCwG,EAAAhY,UAAA,qBAkEtCgY,C,CAlFA,CAAiCrN,GAmFjCqN,GAAYhY,UAAUgJ,QAAU,eAEhC,IAAAiP,GAAA,SAAAlS,GAgDI,SAAAkS,EAAoBxJ,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,MA1CZzI,EAAA4I,MAA+B,G,CA4CvC,CAuJJ,OAzMoCzO,EAAA8X,EAAAlS,GAEhCkS,EAAAjY,UAAAkU,UAAA,WACI,OAAO3T,KAAKuK,aAAaoJ,WAC7B,EAMA+D,EAAAjY,UAAA8K,WAAA,SAAWvH,GACP,OAAOwC,EAAA/F,UAAM8K,WAAW5J,MAAMX,KAAMS,UACxC,EAEAiX,EAAAjY,UAAAgR,IAAA,WACI,OAAOzQ,KAAKuK,aAAakJ,UAAUhD,KACvC,EAEAiH,EAAAjY,UAAAmX,SAAA,WACI,OAAO5W,KAAKuK,aAAakJ,UAAUmD,UACvC,EAEAc,EAAAjY,UAAAoX,QAAA,WACI,OAAO7W,KAAKuK,aAAakJ,UAAUoD,SACvC,EAEAa,EAAAjY,UAAA8Q,WAAA,WACI,OAAOvQ,KAAKuK,aAAagG,YAC7B,EAMAmH,EAAAjY,UAAAuT,QAAA,SAAQhQ,GACJ,OAAKvC,UAAUC,QACfV,KAAK4V,SAAW5S,EACThD,MAFuBA,KAAK4V,QAGvC,EAEA8B,EAAAjY,UAAAsH,SAAA,WAEI,IADA,IAAIiC,EAA2B,GACV3C,EAAA,EAAA+C,EAAApJ,KAAK6V,cAALxP,EAAA+C,EAAA1I,OAAA2F,IAAoB,CAApC,IAAMF,EAAMiD,EAAA/C,GACb2C,EAASA,EAAO3E,OAAO8B,EAAOY,SAAS,WAC3C,CACA,OAAOiC,CACX,EAMA0O,EAAAjY,UAAAgL,MAAA,WACI,MAAO,CACHtF,GAAInF,KAAKuK,aAAakJ,UAAUtO,KAChCuM,OAAQ1R,KAAKuQ,aACbyC,QAAShT,KAAK6V,cAAcpR,IAAI,SAACqR,GAC7B,MAAO,CACH5M,OAAQ4M,EAAG5M,SACXwL,cAAeoB,EAAGvB,cAClBI,aAAcmB,EAAGlB,aACjBxS,MAAO0T,EAAG1T,QAElB,GAER,EAEAsV,EAAAjY,UAAAuR,WAAA,WACI,OAAOhR,KAAKuK,aAAa7D,MAC7B,EAIAgR,EAAAjY,UAAAsW,iBAAA,SAAiB/S,GAAjB,IAAAyC,EAAAzF,KACI,OAAKS,UAAUC,QACfV,KAAKgT,QAAQhQ,EAAEyB,IAAI,SAAAuR,GAAM,OAAAhC,EAAM/I,QAAQxF,EAAKyI,IAAK8H,EAAxB,IAClBhW,MAFuBA,KAAK6V,cAAcpR,IAAI,SAAAwR,GAAS,OAAAA,EAAMxL,OAAN,EAGlE,EAEAiN,EAAAjY,UAAAqT,cAAA,WACI,OAAO9S,KAAKuK,aAAauI,eAC7B,EAEA4E,EAAAjY,UAAAwQ,eAAA,WACI,OAAOjQ,KAAKuK,aAAa0F,gBAC7B,EAEAyH,EAAAjY,UAAAiH,KAAA,WACI,OAAO1G,KAAKuK,aAAa7D,KAAK,CAC1B6J,WAAYvQ,KAAKuQ,aACjBoH,OAAQ3X,KAAKgT,UAAUvO,IAAI,SAAAwR,GAAS,OAAAA,EAAMvP,MAAN,GACpCsM,QAAShT,KAAK+T,iBAEtB,EAEA2D,EAAAjY,UAAAwD,MAAA,WACI,MAAO,GAAAoB,OAAGrE,KAAKuK,aAAatH,QAAO,MAAAoB,OAAKrE,KAAKuK,aAAagG,aAC9D,EAEAmH,EAAAjY,UAAAqV,WAAA,WACI,OAAO9U,KAAKkO,IAAI4G,YACpB,EAEA4C,EAAAjY,UAAAwV,QAAA,SAAQ/L,GACJ,OAAOlJ,KAAKkO,IAAI+G,QAAQ/L,EAC5B,EAEAwO,EAAAjY,UAAAqI,iBAAA,SAAiBL,GACbjC,EAAA/F,UAAMqI,iBAAgBnI,KAAAK,KAACyH,GAEvB,IADA,IAAMmQ,EAA0B,GACZvR,EAAA,EAAA+C,EAAApJ,KAAK6V,cAALxP,EAAA+C,EAAA1I,OAAA2F,IAAoB,CAAnC,IAAM4P,EAAK7M,EAAA/C,GACZuR,EAAc/T,KAAKoS,EAAMrB,cACzB,IAAMsB,EAAeD,EAAMjB,YAAYE,gBAClCzN,EAAKmL,OAAO5S,KAAKmF,QAClBsC,EAAKmL,OAAO5S,KAAKmF,MAAQ,IAE7BsC,EAAKmL,OAAO5S,KAAKmF,MAAMtB,KAAKoS,EAAMrB,cAClCsB,EAAa1O,cAAcC,EAAM,CAACwO,EAAM1B,eAC5C,CACA/O,EAAA/F,UAAM+H,cAAa7H,KAAAK,KAACyH,EAAMmQ,EAC9B,EAEAF,EAAAjY,UAAAoW,YAAA,WACI,OAAO7V,KAAKgT,UAAU7M,OAAO,SAAA8P,GAAS,OAAAA,EAAMnP,QAAN,EAC1C,EAEA4Q,EAAAjY,UAAAoH,YAAA,eAAApB,EAAAzF,KACI,OAAOA,KAAKuK,aAAa1D,cAAclE,KAAK,WACxC,IAAMwT,EAAY1Q,EAAKuN,UACjBoD,EAAQC,UAAQF,EAAU1R,IAAI,SAAAjF,GAAK,OAAAA,EAAEoV,YAAF,GAAiBnP,EAAK8E,aAAauI,gBAAgBrO,IAAI,SAAA6R,GAAM,OAAAA,EAAGnR,EAAH,IAChGoR,EAAYJ,EAAUhQ,OAAO,SAAAxC,GAAM,OAAAyS,EAAMhO,OAAOf,QAAQ1D,EAAGiR,eAAiB,CAAzC,GACzCnP,EAAKuN,QAAQuD,EAAUlS,OAAO+R,EAAMI,MAAM/R,IAAI,SAAAxB,GAAS,WAAI+Q,EAAMvO,EAAKyI,KAAK0G,WAAW3R,EAA/B,IAC3D,EACJ,EAEAyU,EAAAjY,UAAAuH,UAAA,WACI,OAAOhH,KAAK6V,cAAcpR,IAAI,SAAAwR,GAAS,OAAAA,EAAM/M,QAAN,EAC3C,EAEAwO,EAAAjY,UAAAyH,cAAA,SAAcD,GAAd,IAAAxB,EAAAzF,KACI,OAAO,WAAM,OAAAyF,EAAK8E,aAAa0F,gBAAlB,CACjB,EAEAyH,EAAAjY,UAAAsU,cAAA,WAII,IAHA,IAAMf,EAAkC,GACpC6E,GAAa,EACX9L,EAAS/L,KAAKuK,aAAauI,gB,WACtBmD,GACP,IAAM6B,EAAS7B,EAAMzK,YAEjBpJ,OAAK,OAQKuH,KANVvH,EADe,QAFL2J,EAAO5F,OAAO,SAAAlB,GAAO,OAAAA,EAAIE,KAAO8Q,EAAMrB,YAAjB,GAA+B,GAExD7P,KACE,CACJgT,KAAMD,GAGFA,EAAO,MAGf9E,EAAQiD,EAAMrB,cAAgBxS,GAElCyV,GAAa,C,EAdGxR,EAAA,EAAA+C,EAAApJ,KAAK6V,cAALxP,EAAA+C,EAAA1I,OAAA2F,IAAkB,C,EAAtB+C,EAAA/C,GAef,CAID,OAHKwR,IACD7E,EAAQnD,SAAU,GAEfmD,CACX,EAIA0E,EAAAjY,UAAAsI,KAAA,eAAAtC,EAAAzF,KACI,OAAOwF,EAAA/F,UAAMsI,KAAIpI,KAAAK,MAAG2C,KAAK,WACrB,IAAMqQ,EAAUvN,EAAKsO,gBACfd,EAAcrM,UAAQ,CAAEF,KAAMjB,EAAKiB,OAAQsM,QAAOA,IAcxD,OAbIvN,EAAK0N,mBAAqBF,IAC1BxN,EAAK0N,iBAAmBF,EACxBxN,EAAKgR,oBAAsBhR,EAAK8E,aAAawI,OAAOC,GAASrQ,KAAK,SAAC+L,GAC/D,IAAM6B,EAAa9K,EAAK8E,aAAagG,aACjC9N,EAASiM,EAAS6B,GAMtB,OALK9N,IAGDA,EAASiM,EAAS6B,EAAWyH,cAAcC,QAAQ,KAAM,OAEtDxS,EAAKM,SAAStD,EACzB,IAEGgD,EAAKgR,mBAChB,GAAG9T,KAAK,SAAAqD,GACJP,EAAK4I,MAAQrI,CACjB,EACJ,EAEA0R,EAAAjY,UAAAuI,OAAA,WACI,OAAOhI,KAAKqO,KAChB,EAEAqJ,EAAAjY,UAAAyI,YAAA,WACI,OAAOlI,KAAKqO,KAChB,EAzKAzN,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,kB,wBACZgN,EAAAjY,UAAA,mBA0KtBiY,C,CAzMA,CAAoCpN,GA0MpCoN,GAAejY,UAAUgJ,QAAU,kBAEnC,IAAAyP,GAAA,SAAA1S,GAAA,SAAA0S,I,8CAmBA,QAnBoCtY,EAAAsY,EAAA1S,GAEhC0S,EAAAzY,UAAA0Y,QAAA,SAAQnV,GACJ,IAAMoV,EA/cd,SAAkBpV,GAEd,IAAMqV,EAAQrV,EAAE8Q,MAAM,wBACtB,GAAIuE,EAAM3X,OAAS,EAAG,MAAM,IAAIoP,MAAM,uBAAAzL,OAAuBrB,IAC7D,IAAMsV,EAAWD,EAAM,GAAGvE,MAAM,KAChC,GAAIwE,EAAS5X,OAAS,EAAG,MAAM,IAAIoP,MAAM,uBAAAzL,OAAuBrB,IAChE,IAAMuV,EAAaF,EAAM,GAAGvE,MAAM,KAClC,GAAIyE,EAAW7X,OAAS,EAAG,MAAM,IAAIoP,MAAM,uBAAAzL,OAAuBrB,IAClE,MAAO,CACHyN,IAAK,GAAApM,OAAGiU,EAAS,GAAE,KAAAjU,OAAIiU,EAAS,GAAE,KAAAjU,OAAoB,UAAhBiU,EAAS,GAAiB,QAAU,QAC1E1B,SAAU2B,EAAW,GACrB1B,QAAS0B,EAAW,GAE5B,CAkcqBC,CAASxV,GAItB,OAHAhD,KAAKuK,aAAakJ,UAAUhD,IAAI2H,EAAK3H,KACrCzQ,KAAKuK,aAAakJ,UAAUmD,SAASwB,EAAKxB,UAC1C5W,KAAKuK,aAAakJ,UAAUoD,QAAQuB,EAAKvB,SAClC7W,IACX,EAEAkY,EAAAzY,UAAAsU,cAAA,WACI,IAAM6B,EAAWpQ,EAAA/F,UAAMsU,cAAapU,KAAAK,MAC9BgT,EAAkC,GACxC,IAAK,IAAMjS,KAAO6U,EACd5C,EAAQjS,GAAO6U,EAAS7U,GACxBiS,EAAQ,GAAA3O,OAAGtD,EAAG,cAAc,EAEhC,OAAOiS,CACX,EACJkF,CAAA,CAnBA,CAAoCR,IAoBpCQ,GAAezY,UAAUgJ,QAAU,kBC7dnC,IAAIgQ,GAAa,EACjBC,GAAA,SAAAlT,GA8DI,SAAAkT,EAAoBxK,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,KADSyF,EAAAyI,MA7DZzI,EAAAkT,gBAAkB7K,EA+DtBrI,EAAK4E,IAAM,MAAAhG,SAAQoU,IACnB,IAAMG,EAAKnT,EAAKyI,IAAI2K,cAAc,G,OAClCpT,EAAK0E,aAAayO,EAAGzT,M,CACzB,CAwBJ,OA3F8BvF,EAAA8Y,EAAAlT,GAO1BkT,EAAAjZ,UAAA0K,aAAA,SAAanH,GACT,OAAKvC,UAAUC,QACXV,KAAK8Y,gBAAkB9V,IACvBhD,KAAK8Y,cAAgB9V,EACrBhD,KAAK+Y,WAAW/V,IAEbhD,MALuBA,KAAK8Y,aAMvC,EAMAJ,EAAAjZ,UAAAuZ,cAAA,SAAchW,GACV,OAAOwC,EAAA/F,UAAMiK,UAAU/I,MAAMX,KAAMS,UACvC,EAEAiY,EAAAjZ,UAAA8K,WAAA,WACI,OAAOvK,KAAKgZ,gBAAgBzO,YAChC,EAEAmO,EAAAjZ,UAAAsZ,WAAA,SAAW5T,GACP,IAAMyT,EAAwB5Y,KAAKkO,IAAI3D,WAAWpF,GAC9CyT,aAAc5L,GAEP4L,aAAc9M,GAEd8M,aAAc1G,GAEd0G,aAAclC,EALrB1W,KAAK0J,WAAU,IAAIY,GAAgBC,WAAWqO,IAOvCA,aAAczI,EACrBnQ,KAAK0J,WAAU,IAAIuI,GAAc1H,WAAWqO,IACrCA,aAAcnB,GACrBzX,KAAK0J,UAAU,IAAIwO,GAAelY,KAAKkO,KAAK3D,WAAWqO,IAChDA,aAAcrF,GACrBvT,KAAK0J,UAAU,IAAIiM,EAAc3V,KAAKkO,KAAK3D,WAAWqO,GAE9D,EAIAF,EAAAjZ,UAAAiK,UAAA,SAAU1G,GACN,IAAMgG,EAASxD,EAAA/F,UAAMiK,UAAU/I,MAAMX,KAAMS,WAC3C,OAAKA,UAAUC,QACXV,KAAK8Y,gBAAkB9V,EAAEuH,aAAapF,OACtCnF,KAAK8Y,cAAgB9V,EAAEuH,aAAapF,MAEjCnF,MAJuBgJ,GAAUhJ,KAAK2Y,eAKjD,EAEAD,EAAAjZ,UAAAsH,SAAA,WACI,OAAO/G,KAAK0J,YAAY3C,UAC5B,EASA2R,EAAAjZ,UAAAgL,MAAA,WACI,OAAAtK,IAAA,GACOH,KAAKgZ,gBAAgBvO,SAAO,CAC/BtF,GAAInF,KAAKmK,gBAEjB,EAGAuO,EAAAjZ,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMnB,EAAA/F,UAAMiH,KAAI/G,KAAAK,KAAAG,EAAA,GACVwG,GAEX,EAEA+R,EAAAjZ,UAAAwZ,cAAA,WACI,OAAOjZ,KAAKkO,IAAI2K,cAAcpU,IAAI,SAAAmU,GAC9B,MAAO,CACHxW,MAAOwW,EAAGzT,KACV+T,KAAM,GAAA7U,OAAGuU,EAAG3V,QAAO,KAAAoB,OAAIuU,EAAGzT,OAASyT,EAAG3V,QAAU,KAAAoB,OAAKuU,EAAGzT,KAAI,KAAM,IAE1E,EACJ,EAtFAvE,EAAA,CADC8J,UAAQ,GAAI,MAAO,WAAY,WAA4B,OAAO1K,KAAKiZ,eAAiB,EAAG,CAAEvN,UAAU,I,yBAClFgN,EAAAjZ,UAAA,wBAatBmB,EAAA,CADC8J,UAAQ,GAAI,SAAU,Y,gBACPJ,IAAcoO,EAAAjZ,UAAA,yBA0ElCiZ,C,CA3FA,CAA8BjP,G,wSA4F9BiP,GAASjZ,UAAUgJ,QAAU,YC7EvB,SAAU0Q,GAAqBC,GACjC,YAA6CzP,IAArCyP,EAA4BC,IACxC,CAKM,SAAUC,GAAqBF,GACjC,OAAiD,IAAzCA,EAA4BG,QACxC,CAiKM,SAAUC,GAAmBC,GAC/B,MAA2C,QAAnCA,EAA0B1U,MAAsD,QAAnC0U,EAA0B1U,IACnF,CAMM,SAAU2U,GAAoBD,GAChC,MAA4C,SAApCA,EAA2B1U,IACvC,CAUM,SAAU4U,GAAqBF,GACjC,MAA6C,UAArCA,EAA4B1U,IACxC,CAOM,SAAU6U,GAAqBH,GACjC,MAA6C,UAArCA,EAA4B1U,IACxC,CAOM,SAAU8U,GAAsBJ,GAClC,MAA8C,WAAtCA,EAA6B1U,IACzC,CAsBM,SAAU+U,GAAqBL,GACjC,MAA6C,UAArCA,EAA4B1U,IACxC,CAaM,SAAUgV,GAAoBN,GAChC,MAA4C,SAApCA,EAA2B1U,IACvC,CC/GM,SAAUiV,GAAcZ,GAC1B,YAAwCzP,IAAhCyP,EAAqB1H,SAAyBuI,GAAkBb,EAC5E,CAEM,SAAUa,GAAkBb,GAC9B,YAA6CzP,IAArCyP,EAAyBpG,OACrC,CAwKO,I,+CAAwC,CAAC,SAAU,U,cAlLpD,SAAwBoG,GAC1B,OAAQY,GAAcZ,KAASa,GAAkBb,EACrD,E,iBA+CM,SAA2BvQ,GAC7B,MAAyB,WAAlBA,EAAS9D,IACpB,E,kBAsFM,SAA4B8D,GAC9B,MAAyB,YAAlBA,EAAS9D,IACpB,E,mBAlGM,SAA6BiR,GAC/B,QAAUA,EAAwBkE,MACtC,E,gBAqHM,SAA0BrR,GAC5B,MAAyB,UAAlBA,EAAS9D,IACpB,E,mBAjDM,SAA6B8D,GAC/B,MAAyB,aAAlBA,EAAS9D,IACpB,E,kBATM,SAA4B8D,GAC9B,MAAyB,YAAlBA,EAAS9D,IACpB,E,oCA2CM,SAAyB8D,GAC3B,MAAyB,SAAlBA,EAAS9D,IACpB,E,mBX5RW5E,GAAW,WAQpB,OAPAA,GAAWf,OAAOgB,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAIf,KADTc,EAAIG,UAAUF,GACOnB,OAAOK,UAAUC,eAAeC,KAAKW,EAAGd,KAAIa,EAAEb,GAAKc,EAAEd,IAE9E,OAAOa,CACX,EACOF,GAASQ,MAAMX,KAAMS,UAC9B,EA6KO,SAASqD,GAAcC,EAAIC,EAAMC,GACF,IAAK,IAA4BC,EAAxB3D,EAAI,EAAG4D,EAAIH,EAAKtD,OAAYH,EAAI4D,EAAG5D,KACxE2D,GAAQ3D,KAAKyD,IACRE,IAAIA,EAAK3E,MAAME,UAAU2E,MAAMzE,KAAKqE,EAAM,EAAGzD,IAClD2D,EAAG3D,GAAKyD,EAAKzD,IAGrB,OAAOwD,EAAGM,OAAOH,GAAM3E,MAAME,UAAU2E,MAAMzE,KAAKqE,GACpD,CA0GkD,mBAApBsB,iBAAiCA,gBYrU/D,IAAM6U,GAAqB,CACvBC,YAAa,YACbC,eAAgB,eAChBC,YAAa,YACbC,aAAc,aACdC,aAAc,aACdC,YAAa,YACbC,eAAgB,eAChBC,YAAa,YACbC,aAAc,aACdC,aAAc,aACdC,WAAY,YACZC,cAAe,eACfC,WAAY,YACZC,YAAa,aACbC,YAAa,aACbC,YAAa,eAEXC,GAAwB,CAC1BC,mBAAoB,CAChB,CAAEjW,KAAM,mBAAoBkW,UAAW,SAAC9a,GAAW,iBACnD,CAAE4E,KAAM,qBAAsBkW,UAAW,SAAC9a,GAAW,OAAAA,CAAA,IAEzD+a,kBAAmB,CACfnW,KAAM,qBAEVoW,mBAAoB,CAChBpW,KAAM,sBAEVqW,kBAAmB,CACfrW,KAAM,qBAEVsW,mBAAoB,CAChBtW,KAAM,sBAEVuW,YAAa,CACTvW,KAAM,wBAEVwW,YAAa,CACTxW,KAAM,cACNkW,UAAW,SAAC9a,GACR,OAAU,IAANA,EAAoB,SACjB,YACX,GAEJqb,YAAa,CACTzW,KAAM,eAEV0W,KAAM,CACF1W,KAAM,cACNkW,UAAW,SAAC9a,GAAW,OAAAA,EAAI,WAAa,YAAjB,GAE3Bub,WAAY,CACR3W,KAAM,cAEV4W,qBAAsB,CAClB5W,KAAM,wBAEV6W,qBAAsB,CAClB7W,KAAM,wBAEV8W,YAAa,CACT9W,KAAM,sBAEV+W,QAAS,CACL/W,KAAM,gBAEVgX,UAAW,CACPhX,KAAM,mBAEViX,UAAW,CACPjX,KAAM,mBAEVkX,eAAgB,CACZlX,KAAM,aAEVmX,IAAK,CACDnX,KAAM,kBAEVoX,KAAM,CACFpX,KAAM,mBAEVqX,YAAa,CACTrX,KAAM,0BAEVsX,gBAAiB,CACbtX,KAAM,0BAEVuX,YAAa,CACTvX,KAAM,gBAEVwX,QAAS,CACLxX,KAAM,0BAId,SAASyX,GAAWC,EAAa/b,EAAUgc,GACvC,IAAI3a,EAEJ,IAAK,IAAM4a,KAAKF,EAAQ,CACpB,GAAIE,IAAMjc,GAAO+b,EAAOE,KAAOD,EAAK,CAChC3a,EAAQ0a,EACR,KACJ,CACA,GAAIA,EAAOE,IAA2B,iBAAdF,EAAOE,SAEbrT,KADdvH,EAAQya,GAAWC,EAAOE,GAAIjc,EAAKgc,IAE/B,KAGZ,CACA,OAAO3a,CACX,CAEA,SAAS6a,GAAmBC,EAAmBC,GAE3CD,EAAKE,UAAUjR,QAEf,SAA2BkR,GACvB,IAAMC,EAAWD,EAAGlY,GACdoY,EAAoBV,GAAWM,EAAS,OAAQG,GACtD,GAAIC,EAAc,CACd,IAAMC,EAAsBD,EAAaE,aACnCC,EAAqBH,EAAaE,aAAaE,MAAQJ,EAAaE,aAAaE,MAAQJ,EAAaE,aAAaG,OACnHC,EAAuBH,EAAcD,cAW/C,SAA6BC,GACzBL,EAAGS,cAAcC,QAAUC,EAA0BN,EAAcK,SACnEV,EAAGS,cAAcG,WAAWF,QAAU,2BACjCV,EAAGS,cAAcG,WAAWL,SAAQP,EAAGS,cAAcG,WAAWL,OAAS,IAG9E,SAASI,EAA0BvV,GAC/B,OAAO0R,GAAc1R,GAAU0R,GAAc1R,GAAUA,CAC3D,CAJA4U,EAAGS,cAAcG,WAAWL,OAAOG,QAAUV,EAAGS,cAAcC,OAKlE,CAnBIG,CAAoBR,GAoBxB,SAAsCF,EAAqBK,GAKvD,IAAK,IAAMM,KAJXd,EAAGS,cAAcM,MAAQZ,EAAeY,OAAS,GACjDf,EAAGS,cAAcO,YAAc,GAC/BhB,EAAGS,cAAcQ,WAA6C,WAAhCjB,EAAGS,cAAcQ,WAA0B,SAAW,SACpFjB,EAAGS,cAAcS,UAAYlB,EAAGS,cAAcC,QAAQjK,MAAM,KAAK,GAC1C0J,EACnB,QAA0C,IAA/BpC,GAAiB+C,GAA2B,CACnD,IAAMK,EAAcpD,GAAiB+C,GAAU/Y,KAEK,mBAAzCgW,GAAiB+C,GAAU7C,UAClC+B,EAAGS,cAAcG,WAAWO,GAAepD,GAAiB+C,GAAU7C,UAAUkC,EAAeW,IAE/Fd,EAAGS,cAAcG,WAAWO,GAAehB,EAAeW,EAGlE,CAEAN,GAAmBA,EAAgBY,YAAcpB,EAAGS,cAAcG,aAClEZ,EAAGS,cAAcG,WAAWS,eAAgB,EAEpD,CAvCIC,CAA6BnB,EAAgBK,GAwCjD,SAAuCL,EAAqBK,GACxDR,EAAGS,cAAcM,MAAQf,EAAGS,cAAcM,OAASP,EAAgBO,OAAS,GAC5Ef,EAAGS,cAAcO,YAAc,GAC/BhB,EAAGS,cAAcQ,WAA6C,WAAhCjB,EAAGS,cAAcQ,WAA0B,SAAW,SACpFjB,EAAGS,cAAcS,UAAYlB,EAAGS,cAAcC,QAAQjK,MAAM,KAAK,GACtD,IAAA8K,EAAA,SAAAT,GACP,QAA0C,IAA/B/C,GAAiB+C,GACxB,GAAI/C,GAAiB+C,aAAqB5e,MACtC6b,GAAiB+C,GAAUhS,QAAQ,SAAC3M,GAChC,IAAMgf,EAAchf,EAAE4F,KACtBiY,EAAGS,cAAcG,WAAWL,OAAOY,GAAehf,EAAE8b,UAAUuC,EAAgBM,IAC1B,mBAAzC/C,GAAiB+C,GAAU7C,UAClC+B,EAAGS,cAAcG,WAAWL,OAAOY,GAAepD,GAAiB+C,GAAU7C,UAAUuC,EAAgBM,IAEvGd,EAAGS,cAAcG,WAAWL,OAAOY,GAAeX,EAAgBM,EAE1E,OACG,CACH,IAAMK,EAAcpD,GAAiB+C,GAAU/Y,KAC/CiY,EAAGS,cAAcG,WAAWL,OAAOY,GAAepD,GAAiB+C,GAAU7C,UAAUuC,EAAgBM,GAC3G,C,EAfR,IAAK,IAAMA,KAAYN,EAAZe,EAAAT,EAkBf,CA9DIU,CAA8BrB,EAAgBK,GAC1CR,EAAGS,cAAcG,WAAWM,YAC5BlB,EAAGS,cAAcG,WAAWa,UAAYzB,EAAGS,cAAcG,WAAWM,UAE5E,MACIQ,QAAQC,KAAK1B,EAAW,wBA0DhC,EACJ,CClLA,SAAS2B,GAAUC,GAIf,OAAOA,CACX,CAEA,IAAAC,GAAA,WAyBI,SAAAA,EAAYjU,EAAgB4F,EAA2CJ,EAAuBsH,QAAlE,IAAAlH,MAAA,8BAA2C,IAAAJ,MAAA,aAAuB,IAAAsH,OAAA,GAnB9FhY,KAAAof,aAAsD,GACtDpf,KAAAqf,mBAAwE,GACxErf,KAAAsf,gBAA4D,GAE5Dtf,KAAAuf,iBAA0D,GAC1Dvf,KAAAwf,sBAAwG,GAExGxf,KAAAyf,eAA+C,GAC/Czf,KAAA0f,wBASI,GAGA1f,KAAK2f,KAAOzU,EACZlL,KAAK4f,SAAW9O,EAChB9Q,KAAKqR,MAAQX,EACb1Q,KAAK6f,aAAe7H,EAEpBhY,KAAK8f,WACL9f,KAAK+f,SACT,CA+pBJ,OA7pBIZ,EAAA1f,UAAAuY,YAAA,SAAY1X,GACR,OAAON,KAAK6f,aAAevf,EAAE0X,cAAgB1X,CACjD,EAEA6e,EAAA1f,UAAAugB,qBAAA,SAAqBvG,GACjB,GAAKA,EAAYvQ,QHpBnB,SAA4BkQ,GAC9B,YAAyCzP,IAAjCyP,EAAyB6G,GACrC,CGoBgBC,CADOlgB,KAAKof,aAAc3F,EAAYvQ,OAAO/D,KAE7C,OAAO,EAGf,OAAO,CACX,EAEAga,EAAA1f,UAAA0gB,qBAAA,SAAqBC,EAAcC,GAG/B,IAFA,IAAMrX,EAA8B,GAC9BuB,EAAavK,KAAKof,aAAagB,GAChB/Z,EAAA,EAAA+C,EAAAmB,EAAW3C,QAAXvB,EAAA+C,EAAA1I,OAAA2F,IAAoB,CAApC,IAAMqL,EAAMtI,EAAA/C,GACb,GAAIqL,EAAO4O,OACP,IAAqB,IAAAC,EAAA,EAAAC,EAAA9O,EAAO4O,OAAPC,EAAAC,EAAA9f,OAAA6f,IAAe,CAAnBC,EAAAD,KACEF,GACXrX,EAAOnF,KAAK,CACR0G,WAAUA,EACVmH,OAAMA,GAGlB,CAER,CACA,OAAO1I,CACX,EAEAmW,EAAA1f,UAAAghB,qBAAA,SAAqBL,EAAcC,GAE/B,IADA,IAAMrX,EAAoD,GACtC3C,EAAA,EAAA+C,EAAApJ,KAAKmgB,qBAAqBC,EAAMC,GAAhCha,EAAA+C,EAAA1I,OAAA2F,IAAwC,CAAvD,IAAMqa,EAAKtX,EAAA/C,GACZ,GAAIqa,EAAMhP,OAAOvL,OACb,IAAqB,IAAAoa,EAAA,EAAAC,EAAAE,EAAMhP,OAAOvL,OAAboa,EAAAC,EAAA9f,OAAA6f,IAAqB,CAArC,IAAMpa,EAAMqa,EAAAD,GACbvX,EAAO7C,EAAOwa,SAAW,CACrBpW,WAAYmW,EAAMnW,WAClBmH,OAAQgP,EAAMhP,OACdvL,OAAMA,EAEd,CAER,CACA,OAAO6C,CACX,EAEAmW,EAAA1f,UAAAqgB,SAAA,WACI,IAAmB,IAAAzZ,EAAA,EAAA+C,EAAApJ,KAAK2f,KAAKiB,WAAVva,EAAA+C,EAAA1I,OAAA2F,IACf,IADC,IACiBka,EAAA,EAAAC,EADPpX,EAAA/C,GACYwa,eAALN,EAAAC,EAAA9f,OAAA6f,IAAqB,CAAlC,IAAM9G,EAAG+G,EAAAD,GACVvgB,KAAKsf,gBAAgB7F,EAAItU,IAAMsU,CACnC,CAGJ,IAAiB,IAAAqH,EAAA,EAAAC,EAAA/gB,KAAK2f,KAAK9G,YAAViI,EAAAC,EAAArgB,OAAAogB,IAAuB,CAAnC,IAAMlI,EAAEmI,EAAAD,GACT9gB,KAAKof,aAAaxG,EAAGzT,IAAMyT,EAC3B,IAAqB,IAAAoI,EAAA,EAAAC,EAAArI,EAAGhR,QAAHoZ,EAAAC,EAAAvgB,OAAAsgB,IAAY,CAA5B,IAAMtP,EAAMuP,EAAAD,GACb,GAAItP,EAAO4O,OACP,IAAqB,IAAAY,EAAA,EAAAC,EAAAzP,EAAO4O,OAAPY,EAAAC,EAAAzgB,OAAAwgB,IAAe,CAA/B,IAAMZ,EAAMa,EAAAD,GACblhB,KAAKqf,mBAAmBiB,GAAU,CAC9Bnb,GAAIyT,EAAGzT,GACPuM,OAAQA,EAAO1N,MAAQ0N,EAAOvM,GAEtC,CAER,CACJ,CACJ,EAEAga,EAAA1f,UAAAsgB,QAAA,WACI,IAAiB,IAAA1Z,EAAA,EAAA+C,EAAApJ,KAAK2f,KAAK9G,YAAVxS,EAAA+C,EAAA1I,OAAA2F,IAAuB,CAAnC,IAAMuS,EAAExP,EAAA/C,GACT,GAAI+a,GAA0BxI,GAAK,CAQ/B,IAPA,IAAMyI,EAAyB,CAC3Btc,KAAM,WACNI,GAAIyT,EAAGzT,GACPsL,IAAKzQ,KAAK4f,SACVlP,KAAM1Q,KAAKqR,MACXzJ,QAAS,IAEQ2Y,EAAA,EAAAC,EAAA5H,EAAGhR,QAAH2Y,EAAAC,EAAA9f,OAAA6f,IAAY,CAA5B,IAAM7O,EAAM8O,EAAAD,GACbvgB,KAAKshB,cAAc5P,EAAQ2P,EAAOzZ,QACtC,CACA5H,KAAKuf,iBAAiB3G,EAAGzT,IAAMkc,CACnC,MAAO,GAAIE,GAA0B3I,QAC9B,CAaH,IAZA,IAAMN,EAAWM,EAAGqH,IAAKnM,MAAM,wBACzB0N,EAAYlJ,EAAS,GACrBC,EAAaD,EAAS,GAAGxE,MAAM,KAUhBgN,GATfO,EAA6B,CAC/Btc,KAAM,QACNI,GAAIyT,EAAGzT,GACPsL,IAAK+Q,EACL5K,SAAU2B,EAAW,GACrB1B,QAAS0B,EAAW,GACpB3F,OAAQ,GACRhL,QAAS,IAEQ,GAAAmZ,EAAAnI,EAAGhR,QAAHkZ,EAAAC,EAAArgB,OAAAogB,IAAY,CAAtBpP,EAAMqP,EAAAD,GACb9gB,KAAKshB,cAAc5P,EAAQ2P,EAAOzZ,QACtC,CACA5H,KAAKuf,iBAAiB3G,EAAGzT,IAAMkc,CACnC,CACJ,CACA,IAAmB,IAAAL,EAAA,EAAAC,EAAAjhB,KAAK2f,KAAKiB,WAAVI,EAAAC,EAAAvgB,OAAAsgB,IACf,IADC,IACiBE,EAAA,EAAAC,EADPF,EAAAD,GACYH,eAALK,EAAAC,EAAAzgB,OAAAwgB,IAAqB,CAAlC,IAAMzH,EAAG0H,EAAAD,GACO,SAAbzH,EAAI1U,MACJ/E,KAAKuf,iBAAiB9F,EAAItU,IAAM,CAC5BJ,KAAM,OACNI,GAAIsU,EAAItU,GACR4G,OAAQ/L,KAAKyhB,iBAAiBhI,EAAI1N,SAEtC/L,KAAKqf,mBAAmB5F,EAAItU,IAAM,CAAEA,GAAIsU,EAAItU,KACxB,WAAbsU,EAAI1U,OACX/E,KAAKuf,iBAAiB9F,EAAItU,IAAM,CAC5BJ,KAAM,OACNI,GAAIsU,EAAItU,GACR4G,OAAQ/L,KAAKyhB,iBAAiBhI,EAAI1N,QAAQ,IAE9C/L,KAAKqf,mBAAmB5F,EAAItU,IAAM,CAAEA,GAAIsU,EAAItU,KAGhDnF,KAAKyf,eAAehG,EAAItU,IAAMnF,KAAK0hB,YAAYjI,EACnD,CAGJzZ,KAAK2hB,cACL3hB,KAAK4hB,cACL5hB,KAAK6hB,WACL7hB,KAAK8hB,cACT,EAEA3C,EAAA1f,UAAAkiB,YAAA,WACI,IAAmB,IAAAtb,EAAA,EAAA+C,EAAApJ,KAAK2f,KAAKiB,WAAVva,EAAA+C,EAAA1I,OAAA2F,IACf,IADC,IACiBka,EAAA,EAAAC,EADPpX,EAAA/C,GACYwa,eAALN,EAAAC,EAAA9f,OAAA6f,IAAqB,CAAlC,IAAM9G,EAAG+G,EAAAD,GACV,GAAI9G,EAAI1N,OAAQ,CAIZ,IAHA,IAAMgW,EAA2D,GAC3DC,EAA2B,GAC3BC,EAAgC,GAClBnB,EAAA,EAAAC,EAAAtH,EAAI1N,OAAJ+U,EAAAC,EAAArgB,OAAAogB,IAAY,CAA3B,IAAM1a,EAAK2a,EAAAD,GACZ,GAAI1a,EAAM6X,YAAc7X,EAAM6X,WAAWiE,SACrC,OAAQ9b,EAAM6X,WAAWiE,UACrB,IAAK,MACL,IAAK,MACL,IAAK,MACDD,EAAWpe,KAAK,CACZkB,KAAM/E,KAAKmiB,UAAU/b,EAAM6X,WAAWiE,UACtCE,UAAWpiB,KAAKgY,YAAY5R,EAAM6X,WAAWtG,OAAQ0K,QACrD9a,QAASvH,KAAKgY,YAAY5R,EAAMjB,MAEpC,MACJ,IAAK,MACD8c,EAAWpe,KAAK,CACZkB,KAAM/E,KAAKmiB,UAAU/b,EAAM6X,WAAWiE,UACtCE,UAAWpiB,KAAKgY,YAAY5R,EAAM6X,WAAWtG,OAAQ0K,QACrDC,iBAAkBlc,EAAM6X,WAAWtG,OAAQ4K,OAASviB,KAAKgY,YAAY5R,EAAM6X,WAAWtG,OAAQ4K,aAAU5Y,EACxGpC,QAASvH,KAAKgY,YAAY5R,EAAMjB,MAEpC,MACJ,IAAK,QACD,GAA+C,iBAApCiB,EAAM6X,WAAWtG,OAAQ0K,OAAqB,CACrD,IAAMzd,EAAawB,EAAM6X,WAAWtG,OAAQ0K,OAC5C,OAAQzd,EAAMsd,UACV,IAAK,MACL,IAAK,MACL,IAAK,MACDD,EAAWpe,KAAK,CACZkB,KAAM/E,KAAKmiB,UAAUvd,EAAMsd,UAC3BE,UAAWpiB,KAAKgY,YAAYpT,EAAM+S,OAAO0K,QACzC9a,QAASvH,KAAKgY,YAAY5R,EAAMjB,MAIhD,CACA4c,EAAuBle,KAAK,CACxBkB,KAAM,QACNyd,cAAexiB,KAAKgY,YAAY5R,EAAMjB,IACtCoC,QAASvH,KAAKgY,YAAY5R,EAAMjB,IAChCsd,QAASrc,EAAM6X,WAAWtG,OAAQ4K,SAEtC,MACJ,QAEI,MADAP,EAAene,KAAK7D,KAAKgY,YAAY5R,EAAMjB,KACrC,IAAI2K,MAAM,6BAAAzL,OAA6B+B,EAAM6X,WAAWiE,gBAGtEF,EAAene,KAAK7D,KAAKgY,YAAY5R,EAAMjB,IAEnD,CACI4c,EAAuBrhB,SACvBV,KAAK0f,wBAAwBjG,EAAItU,IAAIud,QAAQC,gBAAkBZ,GAE/DE,EAAWvhB,SACXV,KAAK0f,wBAAwBjG,EAAItU,IAAIyd,QAAQC,WAAU/e,GAAA,GAAOke,GAC9DhiB,KAAK0f,wBAAwBjG,EAAItU,IAAIyd,QAAQE,WAAab,EAElE,CACJ,CAER,EAEA9C,EAAA1f,UAAA0iB,UAAA,SAAUY,GACN,OAAQA,GACJ,IAAK,MACD,MAAO,MACX,IAAK,MACD,MAAO,OACX,IAAK,MACD,MAAO,MACX,IAAK,MACD,MAAO,MAEf,MAAM,IAAIjT,MAAM,gCAAAzL,OAAgC0e,GACpD,EAEA5D,EAAA1f,UAAAqiB,aAAA,WACI,IAAmB,IAAAzb,EAAA,EAAA+C,EAAApJ,KAAK2f,KAAKiB,WAAVva,EAAA+C,EAAA1I,OAAA2F,IACf,IADC,IACiBka,EAAA,EAAAC,EADPpX,EAAA/C,GACYwa,eAALN,EAAAC,EAAA9f,OAAA6f,IAAqB,CAAlC,IAAM9G,EAAG+G,EAAAD,GACV,GAAIyC,GAAyBvJ,SACtB,GAAIwJ,GAAwBxJ,GAC/BzZ,KAAKkjB,gBAAgBzJ,QAClB,GAAI0J,GAA0B1J,GACjCzZ,KAAKojB,kBAAkB3J,QACpB,GAAI4J,GAAyB5J,GAChCzZ,KAAKsjB,iBAAiB7J,QACnB,GAAI8J,GAA0B9J,GACjCzZ,KAAKwjB,kBAAkB/J,QACpB,GAAIgK,GAA0BhK,GACjCzZ,KAAK0jB,kBAAkBjK,OACpB,KAAIkK,GAA2BlK,GAGlC,MAAM,IAAI3J,MAAM,8BAAAzL,OAA8BoV,EAAI1U,OAFlD/E,KAAK4jB,mBAAmBnK,EAG5B,CACJ,CAER,EAEA0F,EAAA1f,UAAAyjB,gBAAA,SAAgBzJ,GACZ,IAAMoK,EAAW7jB,KAAK0f,wBAAwBjG,EAAItU,IAAI0e,SACtDA,EAASlB,gBAAgB9e,KAAK,CAC1B0D,QAAS,QACTxC,KAAM,IACNyd,cAAexiB,KAAKgY,YAAYyB,EAAIvQ,OAAO2a,SAAS5gB,SAExD4gB,EAASlB,gBAAgB9e,KAAK,CAC1B0D,QAAS,SACTxC,KAAM,IACNyd,cAAexiB,KAAKgY,YAAYyB,EAAIvQ,OAAO2a,SAASC,OAAO,KAEnE,EAEA3E,EAAA1f,UAAA2jB,kBAAA,SAAkB3J,GACd,IAAMoK,EAAW7jB,KAAK0f,wBAAwBjG,EAAItU,IAAI0e,SACtDA,EAASlB,gBAAgB9e,KAAK,CAC1B0D,QAAS,QACTxC,KAAM,IACNyd,cAAexiB,KAAKgY,YAAYhY,KAAK+jB,sBAAsBtK,EAAIvQ,OAAO2a,aAE1EA,EAASlB,gBAAgB9e,KAAK,CAC1B0D,QAAS,SACTxC,KAAM,IACNyd,cAAexiB,KAAKgY,YAAYyB,EAAIvQ,OAAO2a,SAASC,OAAO,KAEnE,EAEA3E,EAAA1f,UAAAskB,sBAAA,SAAsBC,GAClB,OAAOA,EAAQC,OAASD,EAAQE,QAAUF,EAAQG,OACtD,EAEAhF,EAAA1f,UAAA6jB,iBAAA,SAAiB7J,GACb,IAAMoK,EAAW7jB,KAAK0f,wBAAwBjG,EAAItU,IAAI0e,SACtDA,EAASlB,gBAAgB9e,KAAK,CAC1B0D,QAASkS,EAAIvQ,OAAO2a,SAASO,EAAE,GAC/Brf,KAAM,IACNyd,cAAexiB,KAAKgY,YAAYyB,EAAIvQ,OAAO2a,SAASO,EAAE,MAE1D,IAAK,IAAI7jB,EAAI,EAAGA,EAAIkZ,EAAIvQ,OAAO2a,SAAS9gB,EAAErC,SAAUH,EAChDsjB,EAASlB,gBAAgB9e,KAAK,CAC1B0D,QAASkS,EAAIvQ,OAAO2a,SAAS9gB,EAAExC,GAC/BwE,KAAM,IACNyd,cAAexiB,KAAKgY,YAAYyB,EAAIvQ,OAAO2a,SAAS9gB,EAAExC,KAGlE,EAEA4e,EAAA1f,UAAA+jB,kBAAA,SAAkB/J,GAEd,IADA,IAAMoK,EAAW7jB,KAAK0f,wBAAwBjG,EAAItU,IAAI0e,SAC7CtjB,EAAI,EAAGA,EAAIkZ,EAAIxW,MAAMvC,SAAUH,EACpCsjB,EAASlB,gBAAgB9e,KAAK,CAC1B0D,QAASkS,EAAIxW,MAAM1C,GACnBwE,KAAM,IACNyd,cAAexiB,KAAKgY,YAAYyB,EAAIvQ,OAAO2a,SAASzhB,MAAM7B,KAGtE,EAEA4e,EAAA1f,UAAA4kB,eAAA,SAAeC,EAAqCC,QAAA,IAAAA,OAAA,GAChD,IAAMvb,EAA6B,GACnC,GAAIsb,EACA,IAAK,IAAMliB,KAASkiB,EAAe,CAC/B,IAAME,EAAqE,GAC3E,IAAK,IAAMzjB,KAAOujB,EAAcliB,GAChB,WAARrB,EACAyjB,EAASzjB,GAAOke,GAAUqF,EAAcliB,GAAOrB,IACxCwjB,GAAuC,IAAzBxjB,EAAIsG,QAAQ,UACjC0X,QAAQC,KAAK,8BAAgCje,GAC7CyjB,EAASzjB,EAAI+S,MAAM,SAAS,IAAMwQ,EAAcliB,GAAOrB,IAEvDyjB,EAASzjB,GAAOujB,EAAcliB,GAAOrB,GAIxCwjB,GAAwB,MAAVniB,GACf4G,EAAOnF,KAAK,CACRzB,MAAKA,EACLoiB,SAAQA,GAGpB,CAEJ,OAAOxb,CACX,EAEAmW,EAAA1f,UAAAikB,kBAAA,SAAkBjK,GACd,IAAMoK,EAAW7jB,KAAK0f,wBAAwBjG,EAAItU,IAAI0e,SACtDA,EAASlB,gBAAgB9e,KAAK,CAC1B0D,QAAS,MACTxC,KAAM,IACNyd,cAAexiB,KAAKgY,YAAYyB,EAAIvQ,OAAO2a,SAASY,OAExDZ,EAASlB,gBAAgB9e,KAAK,CAC1B0D,QAAS,QACTxC,KAAM,IACNyd,cAAexiB,KAAKgY,YAAYyB,EAAIvQ,OAAO2a,SAAS5gB,SAEpDwW,EAAIiL,KAAK/D,SACTkD,EAASlB,gBAAgB9e,KAAK,CAC1B0D,QAAS,OACTxC,KAAM,MACNyd,cAAexiB,KAAKgY,YAAYyB,EAAIiL,KAAK/D,SACzC7V,QAAS,CAAE6Z,OAAkBlL,EAAIiL,KAAKxF,QACtC2E,SAAU7jB,KAAKqkB,eAAe5K,EAAIiL,KAAKE,iBAG/C,IAAIC,EAAM,EACV,GAAIpL,EAAIqL,KACJ,IAAmB,IAAAze,EAAA,EAAA+C,EAAAqQ,EAAIqL,KAAJze,EAAA+C,EAAA1I,OAAA2F,IAAU,CAAxB,IAAMye,EAAI1b,EAAA/C,GACPye,EAAKnE,SACLkD,EAASlB,gBAAgB9e,KAAK,CAC1B0D,QAAS,cAAAlD,OAAcwgB,KACvB9f,KAAM,MACNyd,cAAexiB,KAAKgY,YAAY8M,EAAKnE,SACrC7V,QAAS,GACT+Y,SAAU7jB,KAAKqkB,eAAeS,EAAKF,eAAe,IAG9D,CAEJf,EAASlB,gBAAgB9e,KAAK,CAC1B0D,QAAS,QACTxC,KAAM,IACNyd,cAAexiB,KAAKgY,YAAYyB,EAAIvQ,OAAO6b,KAAKC,WAChDrC,gBAAiB,CAAC,CACdpb,QAAS,MACTxC,KAAM,IACNyd,cAAexiB,KAAKgY,YAAYyB,EAAIvQ,OAAO6b,KAAKlB,SAASY,QAGrE,EAEAtF,EAAA1f,UAAAmkB,mBAAA,SAAmBnK,GACEzZ,KAAK0f,wBAAwBjG,EAAItU,IAAI0e,SAC7ClB,gBAAgB9e,KAAK,CAC1B0D,QAAS,QACTxC,KAAM,IACNyd,cAAexiB,KAAKgY,YAAYyB,EAAIvQ,OAAO2a,SAAS5gB,QAE5D,EAEAkc,EAAA1f,UAAAmiB,YAAA,WACI,IAAmB,IAAAvb,EAAA,EAAA+C,EAAApJ,KAAK2f,KAAKiB,WAAVva,EAAA+C,EAAA1I,OAAA2F,IACf,IADC,IACiBka,EAAA,EAAAC,EADPpX,EAAA/C,GACYwa,eAALN,EAAAC,EAAA9f,OAAA6f,IAAqB,CAAlC,IAAM9G,EAAG+G,EAAAD,GACV,GAAI9G,EAAIwL,OACJ,IAAK,IAAMC,KAAWzL,EAAIwL,OAEtB,IADA,IACqBnE,EAAA,EAAAC,EADPtH,EAAIwL,OAAOC,GACEC,QAANrE,EAAAC,EAAArgB,OAAAogB,IAAe,CAA/B,IAAM1Y,EAAM2Y,EAAAD,GACPsE,EAAWplB,KAAKyf,eAAerX,EAAO0V,eACtCuH,EAAYrlB,KAAKygB,qBAAqBrY,EAAOmC,WAAY6a,EAASjgB,IACxE,GAAIiD,EAAOyb,SACP,GAAIyB,GAAuBF,EAAS7a,YAChC,IAAK,IAAMxJ,KAAOqH,EAAOyb,SACrBuB,EAAS7a,WAAWyI,QAAQnP,KAAK,CAC7BqF,OAAQuQ,EAAItU,GACZuP,cAAe1U,KAAKgY,YAAYjX,GAChC4T,aAAc3U,KAAKgY,YAAY5P,EAAOyb,SAAS9iB,UAGpD,CACH,IAAMwkB,EAAmC,CACrCrL,OAAQT,EAAItU,GACZ0e,SAAU,IAEd,IAAK,IAAM9iB,KAAOqH,EAAOyb,SAAU,CAC/B,IAAMG,EAAU5b,EAAOyb,SAAS9iB,GAC1BykB,EAAYxB,GAAWqB,EAAUrB,GAAYqB,EAAUrB,GAAS7d,YAASwD,EAC1E6b,EAGDD,EAAU1B,SAAShgB,KAAK,CACpB6Q,cAAe1U,KAAKgY,YAAYjX,GAChC4T,aAAc3U,KAAKgY,YAAY5P,EAAOyb,SAAS9iB,IAC/CwkB,UAAWvlB,KAAKylB,eAAeD,EAASE,MACxCC,SAAUH,EAASG,WANvB5G,QAAQC,KAAK,mBAAA3a,OAAmB2f,EAAO,cAAA3f,OAAaoV,EAAItU,GAAE,gCAAAd,OAA+B+gB,EAASjgB,GAAE,KAS5G,CACAnF,KAAK0f,wBAAwB0F,EAASjgB,IAAIygB,QAAQC,WAAWhiB,KAAK0hB,EACtE,CAER,CAGZ,CAER,EAEApG,EAAA1f,UAAAgmB,eAAA,SAAeziB,GACX,OAAQA,GACJ,IAAK,MACD,MAAO,KACX,IAAK,YACD,MAAO,KAEf,OAAOA,CACX,EAEAmc,EAAA1f,UAAAoiB,SAAA,WACI,IADJ,IAAApc,EAAAzF,KACuBqG,EAAA,EAAA+C,EAAApJ,KAAK2f,KAAKiB,WAAVva,EAAA+C,EAAA1I,OAAA2F,IACf,IADC,IACiBka,EAAA,EAAAC,EADPpX,EAAA/C,GACYwa,eAALN,EAAAC,EAAA9f,OAAA6f,IAAqB,CAAlC,IAAM9G,EAAG+G,EAAAD,GACV,GAAK9G,EAAYvQ,OAAQ,CACrB,GAAKuQ,EAAYvQ,OAAO4c,KACJ9lB,KAAK0f,wBAAwBjG,EAAItU,IAAI2gB,KAC7CD,WAAepM,EAAYvQ,OAAO4c,KAAkBrhB,IAAI,SAAAnE,GAC5D,OAAuB,IAAnBA,EAAE+G,QAAQ,KACH,CACHE,QAAS9B,EAAKuS,YAAY1X,EAAEylB,OAAO,IACnCC,YAAY,GAGb,CACHze,QAAS9B,EAAKuS,YAAY1X,GAC1B0lB,YAAY,EAEpB,GAEJ,GAAKvM,EAAYvQ,OAAOJ,MACH9I,KAAK0f,wBAAwBjG,EAAItU,IAAI8gB,MAC7CA,OAAUxM,EAAYvQ,OAAOJ,KAE9C,CACJ,CAER,EAEAqW,EAAA1f,UAAAiiB,YAAA,SAAYjI,GACR,IAAMiJ,EAAyB,CAC3B3d,KAAM,UACN4d,gBAAiB,IAEfiD,EAAwB,CAC1B7gB,KAAM,SACN8gB,WAAY,IAEVjD,EAAyB,CAC3B7d,KAAM,UACN8d,WAAY,GACZC,WAAY,IAEVgD,EAAmB,CACrB/gB,KAAM,OACN8gB,WAAY,IAEVI,EAAqB,CACvBlhB,KAAM,QACNkhB,MAAO,GAELpC,EAA2B,CAC7B9e,KAAM,WACN4d,gBAAiB,IAErB3iB,KAAK0f,wBAAwBjG,EAAItU,IAAM,CACnCud,QAAOA,EACPkD,QAAOA,EACPE,KAAIA,EACJlD,QAAOA,EACPqD,MAAKA,EACLpC,SAAQA,GAEZ,IAAM7K,EAAiEhZ,KAAKggB,qBAAqBvG,GAAO,CACpGtU,GAAInF,KAAKqf,mBAAmB5F,EAAItU,IAAIA,GACpC6N,QAAS,GACTtB,OAAQ1R,KAAKqf,mBAAmB5F,EAAItU,IAAIuM,QACxC,CACAvM,GAAInF,KAAKqf,mBAAmB5F,EAAItU,IAAIA,GACpCuM,OAAQ1R,KAAKqf,mBAAmB5F,EAAItU,IAAIuM,QAE5C,MAAO,CACHvM,GAAIsU,EAAItU,GACRoF,WAAYyO,EACZxQ,WAAY,CACRka,EACAkD,EACAE,EACAlD,EACAqD,GAEJnI,cAAa3d,MAAA,CACTgF,GAAIsU,EAAItU,GACRiZ,MAAO3E,EAAI2E,OAAS,GACpBC,YAAa,GACbC,WAAY7E,EAAIwE,aAAwC,IAA1BxE,EAAIwE,WAAWiI,OAAkB,SAAW,UACvElmB,KAAKmmB,eAAe1M,EAAI1U,OAAK,CAChC8e,SAAQA,EACR5F,WAAaxE,EAAIwE,YAAc,KAG3C,EAEAkB,EAAA1f,UAAA0mB,eAAA,SAAe5H,GACX,OAAQA,GACJ,IAAK,OACD,MAAO,CAAEA,UAAW,OAAQR,QAAS,cACzC,IAAK,SACD,MAAO,CAAEQ,UAAW,SAAUR,QAAS,gBAC3C,IAAK,MACD,MAAO,CAAEQ,UAAW,MAAOR,QAAS,aACxC,IAAK,MAcL,IAAK,UACD,MAAO,CAAEQ,UAAW,SAAUR,QAAS,gBAb3C,IAAK,OAQL,IAAK,SACD,MAAO,CAAEQ,UAAW,YAAaR,QAAS,kBAP9C,IAAK,aACD,MAAO,CAAEQ,UAAW,YAAaR,QAAS,mBAC9C,IAAK,QACD,MAAO,CAAEQ,UAAW,mBAAoBR,QAAS,wBACrD,IAAK,UACD,MAAO,CAAEQ,UAAW,UAAWR,QAAS,iBAG5C,IAAK,WACD,MAAO,CAAEQ,UAAW,UAAWR,QAAS,iBAG5C,IAAK,QACD,MAAO,CAAEQ,UAAW,iBAAkBR,QAAS,wBAEnD,QACI,MAAO,CAAEQ,UAAW,QAASR,QAAS,eAElD,EAEAoB,EAAA1f,UAAAgiB,iBAAA,SAAiB1V,EAAqCqa,GAAtD,IAAA3gB,EAAAzF,KACI,YADkD,IAAAomB,OAAA,GAC7Cra,EACEA,EAAOtH,IAAI,SAAA2B,GACd,OAAQA,EAAM6X,WAAWlZ,MACrB,IAAK,QACD,MAAO,CACHA,KAAM,QACNI,GAAIiB,EAAMjB,GACV2F,QAAU1E,EAAM6X,WAAWnT,QAAU1E,EAAM6X,WAAWnT,aAAwBnB,GAEtF,IAAK,UACD,MAAO,CACH5E,KAAM,UACNI,GAAIiB,EAAMjB,GACV2F,QAAS,GACTzF,SAAU,IAElB,QACI,MAAO,CACHN,KAAMU,EAAK4gB,wBAAwBjgB,EAAM6X,WAAWqI,SAAUF,GAC9DjhB,GAAIiB,EAAMjB,GACV2F,QAAS1E,EAAM6X,WAAWnT,QAAU1E,EAAM6X,WAAWnT,QAAQ,QAAKnB,GAGlF,GAvBoB,EAwBxB,EAEAwV,EAAA1f,UAAA4mB,wBAAA,SAAwBha,EAAwC+Z,GAC5D,OAAQ/Z,GACJ,IAAK,OACL,IAAK,UACD,MAAO,UACX,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACD,MAAO,SACX,IAAK,SACD,MAAO,SACX,QACI,OAAO+Z,EAAS,SAAW,SAEvC,EAEAjH,EAAA1f,UAAA6hB,cAAA,SAAc5P,EAAsB5Q,GAChCA,EAAO4Q,EAAO1N,MAAQ0N,EAAOvM,IAAM,CAC/B4G,OAAQ/L,KAAKumB,eAAe7U,EAAOvL,QAE3C,EAEAgZ,EAAA1f,UAAA8mB,eAAA,SAAeX,GACX,OAAKA,EACEA,EAAQzf,OAAO,SAAAA,GAClB,IAAMqgB,EAAUrgB,EAAOwa,QAAQ7M,MAAM,KACrC,OAA0B,IAAnB0S,EAAQ9lB,QAA+B,UAAf8lB,EAAQ,EAC3C,GAAG/hB,IAAI,SAAA0B,GAMH,MAJkC,CAC9BpB,KAAM,SACNI,GAHYgB,EAAOwa,QAAQ7M,MAAM,KAGrB,GAGpB,GAXqB,EAYzB,EAEAqL,EAAA1f,UAAAgnB,YAAA,SAAYpG,EAAe9Y,GACvB,MAAO,CACHxC,KAAM,SACNI,GAAI,GACJ2F,QAAS,GAEjB,EAEAqU,EAAA1f,UAAAinB,iBAAA,WACI,IAAM1d,EAAgC,GACtC,IAAK,IAAM7D,KAAMnF,KAAKuf,iBAClBvW,EAAOnF,KAAK7D,KAAKuf,iBAAiBpa,IAEtC,OAAO6D,CACX,EAEAmW,EAAA1f,UAAAknB,eAAA,WACI,IAAM3d,EAAuB,GAC7B,IAAK,IAAM7D,KAAMnF,KAAKyf,eAClBzW,EAAOnF,KAAK7D,KAAKyf,eAAeta,IAEpC,OAAO6D,CACX,EAEAmW,EAAA1f,UAAAmnB,gBAAA,WACI,MAAO,CAEN,CACL,EAEAzH,EAAA1f,UAAAonB,MAAA,WACI,MAAO,CACHC,QAAS,QACTC,UAAW,CACP3hB,KC9sBQ,oBD+sBR0hB,QC9sBW,UDgtBfjO,YAAa7Y,KAAK0mB,mBAClBtJ,UAAWpd,KAAK2mB,iBAChB1I,WAAYje,KAAK4mB,kBAEzB,EACJzH,CAAA,CAhsBA,GAksBM,SAAU6H,GAAQ9b,EAAgB4F,EAAkBJ,EAAesH,EAA6BiP,QAAA,IAAAA,MAAA,IAClG,IDxfuC9J,ECyfjCnU,EADQ,IAAImW,GAAWjU,EAAK4F,EAASJ,EAAMsH,GAC5B6O,QAErB,OADA7d,EAAOiV,YDzfPhB,GCyfuCjU,ED1fAmU,EC0fQ8J,GD/gBnD,SAAoC/J,EAAmBC,GACnD,IAAMnU,EAAwB,CAC1Bke,OAAQ,IAEZ,GAAK/J,GAAYA,EAAQM,aAczB,OAbAN,EAAQM,aAAa0J,QAAQhb,QAAQ,SAACZ,GAClC,IAAM6b,EAA6B,CAE/BjiB,GAAIoG,EAAKkS,aAAaG,OAAOyJ,KAC7BC,SAAU,CACN/b,EAAKkS,aAAa8J,QAClBhc,EAAKkS,aAAa+J,QAClBjc,EAAKkS,aAAagK,YAClBlc,EAAKkS,aAAaiK,cAG1B1e,EAAOke,OAAOrjB,KAAKujB,EACvB,GACOpe,CACX,CAIW2e,CAA2BzK,EAAMC,ICyfjCnU,CACX,C;yIE7tBA,SAAA4e,IAAyBC,6BAAzBtoB,MAAAuoB,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAF,EAAAE,GAAAtnB,UAAAsnB,GACKF,KAAKnnB,OAAS,EAAG,CACfmnB,EAAA,GAAKA,EAAK,GAAGzjB,MAAM,GAAG,G,IACrB4jB,MAAKH,EAAKnnB,OAAS,EAChB0jB,EAAI,EAAGA,EAAI4D,IAAM5D,EACpBA,KAAKyD,EAAKzD,GAAGhgB,MAAM,GAAG,GAGrByjB,OADFG,KAAMH,EAAKG,GAAI5jB,MAAM,GACnByjB,EAAKnjB,KAAK,G,CAEVmjB,SAAK,E,CAId,SAAAI,EAAuBC,G,MACf,MAAQA,EAAM,G,CAGtB,SAAAC,EAAuBC,GACfA,YAAMze,IAANye,EAAkB,YAAqB,OAANA,EAAa,OAAShpB,OAAOK,UAAU4oB,SAAS1oB,KAAKyoB,GAAGtU,MAAM,KAAKlQ,MAAMkQ,MAAM,KAAKwU,QAAQtQ,a,CAGrI,SAAAuQ,EAA4BL,GACpBA,SAAIK,a,CAGZ,SAAAC,EAAwBC,GAChBA,eAAqCA,aAAelpB,MAAQkpB,EAA6B,iBAAfA,EAAI/nB,QAAuB+nB,EAAI3U,OAAS2U,EAAIC,aAAeD,EAAI9oB,KAAO,CAAC8oB,GAAOlpB,MAAME,UAAU2E,MAAMzE,KAAK8oB,GAAS,E,CAIpM,SAAAroB,EAAuBU,EAAgBoI,GAChCuf,MAAM3nB,EACRoI,K,IACE,IAAMnI,KAAOmI,EACbnI,KAAOmI,EAAOnI,G,OAGb0nB,C,CCnCR,SAAAE,EAA0BC,GAExBC,MAAU,WAEVC,EAAU,QAEVC,EAAWnB,EAAMkB,EAAS,YAG1BE,EAAef,EAAOA,EAAO,UAAYc,EAAW,IAAMA,EAAWA,EAAW,IAAMA,EAAWA,GAAY,IAAMd,EAAO,cAAgBc,EAAW,IAAMA,EAAWA,GAAY,IAAMd,EAAO,IAAMc,EAAWA,IAEhNE,EAAe,sCACfC,EAAatB,EAFE,0BAEkBqB,G,EAEpBL,EAAQ,oBAAsB,KAC5BhB,IAAMiB,EAASC,EAAS,iBAF3BF,EAAQ,8EAAgF,MAG1FX,EAAOY,EAAUjB,EAAMiB,EAASC,EAAS,eAAiB,KACxDb,EAAOA,EAAOe,EAAe,IAAMpB,EAAMuB,EAAcF,EAAc,UAAY,KAC7FG,IACAC,EAAqBpB,EAAOA,EAAO,WAAa,IAAMA,EAAO,SAAWa,GAAW,IAAMb,EAAO,IAAMa,EAAUA,GAAW,IAAMb,EAAO,UAAYa,GAAW,QAAUA,GAC1Jb,IAAOoB,EAAqB,MAAQA,EAAqB,MAAQA,EAAqB,MAAQA,GAC7GC,EAAOrB,EAAOc,EAAW,SACzBQ,EAAQtB,EAAOA,EAAOqB,EAAO,MAAQA,GAAQ,IAAME,GACnDC,EAAgBxB,EAAmEA,EAAOqB,EAAO,OAAS,MAAQC,GAClGtB,IAAwD,SAAWA,EAAOqB,EAAO,OAAS,MAAQC,GAClGtB,IAAOA,EAAwCqB,GAAQ,UAAYrB,EAAOqB,EAAO,OAAS,MAAQC,GAClGtB,IAAOA,EAAOA,EAAOqB,EAAO,OAAS,QAAUA,GAAQ,UAAYrB,EAAOqB,EAAO,OAAS,MAAQC,GAClGtB,IAAOA,EAAOA,EAAOqB,EAAO,OAAS,QAAUA,GAAQ,UAAYrB,EAAOqB,EAAO,OAAS,MAAQC,GAClGtB,IAAOA,EAAOA,EAAOqB,EAAO,OAAS,QAAUA,GAAQ,UAAmBA,EAAO,MAAiBC,GAClGtB,IAAOA,EAAOA,EAAOqB,EAAO,OAAS,QAAUA,GAAQ,UAA2CC,GAClGtB,IAAOA,EAAOA,EAAOqB,EAAO,OAAS,QAAUA,GAAQ,UAA2CA,GAClGrB,IAAOA,EAAOA,EAAOqB,EAAO,OAAS,QAAUA,GAAQ,W,EACxDrB,EAAO,CAACwB,EAAeC,EAAeC,EAAeC,EAAeC,EAAeC,EAAeC,EAAeC,EAAeC,GAAevlB,KAAK,MACnKwlB,EAAUjC,EAAOA,EAAOkB,EAAe,IAAMH,GAAgB,KAGhDf,EAAO,OAASc,EAAW,OAASnB,EAAMuB,EAAcF,EAAc,SAAW,KAElFhB,EAAOA,EAAOe,EAAe,IAAMpB,EAAMuB,EAAcF,IAAiB,KACpFkB,IAGAC,EAASnC,EAAOe,EAAe,IAAMpB,EAAMuB,EAAcF,EAAc,aA0BjE,OAvBWhB,EAAOA,EAAOe,EAAe,IAAMpB,EAAMuB,EAAcF,EAAc,UAAY,KAOzFhB,EAAOA,EAAOmC,EAAS,IAAMxC,EAAM,WAAYyC,IAAe,KAgBjE,CACOC,WAAA,IAAIC,OAAO3C,EAAM,MAAOiB,EAASC,EAAS,eAAgB,KACxD0B,aAAA,IAAID,OAAO3C,EAAM,YAAauB,EAAcF,GAAe,KAC/DwB,SAAA,IAAIF,OAAO3C,EAAM,kBAAmBuB,EAAcF,GAAe,KACjEyB,SAAA,IAAIH,OAAO3C,EAAM,kBAAmBuB,EAAcF,GAAe,KACxD0B,kBAAA,IAAIJ,OAAO3C,EAAM,eAAgBuB,EAAcF,GAAe,KACtE2B,UAAA,IAAIL,OAAO3C,EAAM,SAAUuB,EAAcF,EAAc,iBAAkBoB,GAAa,KACnFQ,aAAA,IAAIN,OAAO3C,EAAM,SAAUuB,EAAcF,EAAc,kBAAmB,KAChF6B,OAAA,IAAIP,OAAO3C,EAAM,MAAOuB,EAAcF,GAAe,KACjD8B,WAAA,IAAIR,OAAOpB,EAAc,KACxB6B,YAAA,IAAIT,OAAO3C,EAAM,SAAUuB,EAAcD,GAAa,KACtD+B,YAAA,IAAIV,OAAOvB,EAAc,KACzBkC,YAAA,IAAIX,OAAO,KAAOf,EAAe,M,YACjC,IAAIe,OAAO,SAAWY,EAAe,IAAMlD,EAAOA,EAAO,eAAiBc,EAAW,QAAU,IAAMmB,EAAU,KAAO,U,CAItI,IAAAkB,EAAezC,GAAU,GCrFzB0C,EAAe1C,GAAU,G,+hBCAnB2C,EAAS,WAGTC,EAAO,GACPC,EAAO,EACPC,EAAO,GACPC,EAAO,GACPC,EAAO,IACPC,EAAc,GACdC,EAAW,IACXC,EAAY,IAGZC,EAAgB,QAChBC,EAAgB,aAChBC,EAAkB,4BAGlBC,EAAS,C,SACF,kD,YACC,iDACI,iCAIZC,EAAgBZ,EAAOC,EACvBpc,EAAQD,KAAKC,MACbgd,EAAqBtsB,OAAOusB,aAUlC,SAASC,EAAMvnB,GACR,UAAIwnB,WAAWL,EAAOnnB,G,CAW7B,SAASN,EAAI+nB,EAAOC,GAGZ/rB,IAFD+B,MAAS,GACX/B,EAAS8rB,EAAM9rB,OACZA,KACCA,KAAU+rB,EAAGD,EAAM9rB,I,OAEpB+B,C,CAaR,SAASiqB,EAAUC,EAAQF,GACpBpU,MAAQsU,EAAO7Y,MAAM,KACvBrR,EAAS,GAWNA,OAVH4V,EAAM3X,OAAS,I,EAGT2X,EAAM,GAAK,IACXA,IAAM,IAMT5V,EADSgC,GAFPkoB,IAAO1U,QAAQgU,EAAiB,MACnBnY,MAAM,KACA2Y,GAAI/nB,KAAK,I,CAiBtC,SAASkoB,EAAWD,GAIZE,IAHDnb,MAAS,GACXmb,EAAU,EACRnsB,EAASisB,EAAOjsB,OACfmsB,EAAUnsB,GAAQ,CAClB0B,MAAQuqB,EAAOG,WAAWD,KAC5BzqB,MAAS,OAAUA,GAAS,OAAUyqB,EAAUnsB,EAAQ,CAErDqsB,MAAQJ,EAAOG,WAAWD,KACR,QAAX,MAARE,GACGlpB,SAAe,KAARzB,IAAkB,KAAe,KAAR2qB,GAAiB,QAIjDlpB,OAAKzB,G,UAINyB,OAAKzB,E,QAGPsP,C,CAWR,IAWMsb,EAAe,SAASC,GACzBA,SAAY,GAAO,GACfA,EAAY,GAEhBA,EAAY,GAAO,GACfA,EAAY,GAEhBA,EAAY,GAAO,GACfA,EAAY,GAEb1B,CAVR,EAwBM2B,EAAe,SAASC,EAAOrI,GAG7BqI,SAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARrI,IAAc,EAHzD,EAWMsI,EAAQ,SAASC,EAAOC,EAAWC,GACpCvQ,MAAI,EAGsBqQ,IAFtBE,IAAYne,EAAMie,EAAQ1B,GAAQ0B,GAAS,EAC1Cje,KAAMie,EAAQC,GACOD,EAAQlB,EAAgBV,GAAQ,EAAGzO,GAAKuO,EAC7Dnc,IAAMie,EAAQlB,GAEhB/c,SAAM4N,GAAKmP,EAAgB,GAAKkB,GAASA,EAAQ3B,GAPzD,EAiBM8B,EAAS,SAASC,GAEjB/b,MAAS,GACTgc,EAAcD,EAAM/sB,OACtBH,EAAI,EACJC,EAAIqrB,EACJ8B,EAAO/B,EAMPgC,EAAQH,EAAMI,YAAY/B,GAC1B8B,EAAQ,I,EACH,G,IAGJ,IAAIE,EAAI,EAAGA,EAAIF,IAASE,EAExBL,EAAMX,WAAWgB,IAAM,KACpBC,EAAA,aAEAlqB,OAAK4pB,EAAMX,WAAWgB,IAMzB,QAAIE,EAAQJ,EAAQ,EAAIA,EAAQ,EAAI,EAAGI,EAAQN,GAAwC,C,IAOvFO,MAAO1tB,EACFsL,EAAI,EAAGmR,EAAIuO,GAA0BvO,GAAKuO,EAAM,CAEpDyC,GAASN,GACNK,EAAA,iBAGDZ,MAAQH,EAAaS,EAAMX,WAAWkB,OAExCb,GAAS5B,GAAQ4B,EAAQ/d,GAAOkc,EAAS/qB,GAAKsL,KAC3CkiB,EAAA,YAGFZ,KAAQthB,EACPxL,MAAI2c,GAAK2Q,EAAOnC,EAAQxO,GAAK2Q,EAAOlC,EAAOA,EAAOzO,EAAI2Q,EAExDR,KAAQ9sB,E,MAIN6tB,MAAa3C,EAAOlrB,EACtBwL,EAAIuD,EAAMkc,EAAS4C,IAChBH,EAAA,Y,GAGFG,C,CAIAC,MAAMzc,EAAOhR,OAAS,EACrB0sB,IAAM7sB,EAAI0tB,EAAME,EAAa,GAARF,GAIxB7e,EAAM7O,EAAI4tB,GAAO7C,EAAS9qB,GACvButB,EAAA,YAGF3e,KAAM7O,EAAI4tB,G,GACVA,EAGEC,SAAO7tB,IAAK,EAAGC,E,QAIhBV,OAAOuuB,cAAP1tB,MAAAb,OAAwB4R,EAjFhC,EA2FM4c,EAAS,SAASb,GACjB/b,MAAS,GAMXgc,GAHId,IAAWa,IAGK/sB,OAGpBF,EAAIqrB,EACJwB,EAAQ,EACRM,EAAO/B,E,uBAGgB6B,QAA3Bc,EAA2Bd,IAA3BjqB,OAAAC,cAAA+qB,GAAAD,EAAAE,EAAAnsB,QAAAI,MAAA8rB,GAAA,EAAkC,C,IAAvBE,EAAuBH,EAAAnsB,MAC7BssB,EAAe,KACX7qB,OAAKuoB,EAAmBsC,G,+EAI7BC,MAAcjd,EAAOhR,OACrBkuB,EAAiBD,EAWdC,IALHD,GACI9qB,OAAKioB,GAIN8C,EAAiBlB,GAAa,CAIhCmB,MAAIvD,E,uBACmBmC,QAA3BqB,EAA2BrB,IAA3BjqB,OAAAC,cAAAsrB,GAAAD,EAAAE,EAAA1sB,QAAAI,MAAAqsB,GAAA,EAAkC,C,IAAvBL,EAAuBI,EAAA1sB,MAC7BssB,GAAgBluB,GAAKkuB,EAAeG,I,EACnCH,E,+EAMAO,MAAwBL,EAAiB,EAC3CC,EAAIruB,EAAI4O,GAAOkc,EAAS+B,GAAS4B,IAC9BlB,EAAA,YAGEV,IAACwB,EAAIruB,GAAKyuB,E,EACfJ,E,2BAEuBpB,QAA3ByB,EAA2BzB,IAA3BjqB,OAAAC,cAAA0rB,GAAAD,EAAAE,EAAA9sB,QAAAI,MAAAysB,GAAA,EAAkC,C,IAAvBT,EAAuBQ,EAAA9sB,MAI7BssB,GAHAA,EAAeluB,KAAO6sB,EAAQ/B,GAC3ByC,EAAA,YAEHW,GAAgBluB,EAAG,CAGjB,IADD6uB,MAAIhC,EACCrQ,EAAIuO,GAA0BvO,GAAKuO,EAAM,CAC3ClrB,MAAI2c,GAAK2Q,EAAOnC,EAAQxO,GAAK2Q,EAAOlC,EAAOA,EAAOzO,EAAI2Q,EACxD0B,KAAIhvB,E,MAGFivB,MAAUD,EAAIhvB,EACd6tB,EAAa3C,EAAOlrB,EACnBwD,OACNuoB,EAAmBc,EAAa7sB,EAAIivB,EAAUpB,EAAY,KAEvD9e,IAAMkgB,EAAUpB,E,CAGdrqB,OAAKuoB,EAAmBc,EAAamC,EAAG,KACxCjC,IAAMC,EAAO4B,EAAuBL,GAAkBD,G,EACrD,IACNC,C,kFAIFvB,IACA7sB,C,CAGIkR,SAAOhN,KAAK,GArFpB,EAmGM6qB,EAAY,SAAS9B,GACnBf,SAAUe,EAAO,SAASd,GACzBZ,SAAcyD,KAAK7C,GACvBa,EAAOb,EAAOvoB,MAAM,GAAG4T,eACvB2U,C,EAJL,EAmBM8C,EAAU,SAAShC,GACjBf,SAAUe,EAAO,SAASd,GACzBX,SAAcwD,KAAK7C,GACvB,OAAS2B,EAAO3B,GAChBA,C,EAJL,EAWM+C,EAAW,C,QAML,QAQHC,KAAA,C,OACG/C,EACAgD,OA3SO,SAAApD,G,OAAS1sB,OAAOuuB,cAAP1tB,MAAAb,OAAA+vB,EAAwBrD,GAApD,G,OA6SWgB,E,OACAc,E,QACCmB,EACEF,aC5VDO,EAA6C,GAE1D,SAAAC,EAA2BC,GACpB/uB,MAAI+uB,EAAIlD,WAAW,G,OAGrB7rB,EAAI,GAAQ,KAAOA,EAAEonB,SAAS,IAAIE,cAC7BtnB,EAAI,IAAS,IAAMA,EAAEonB,SAAS,IAAIE,cAClCtnB,EAAI,KAAU,KAAQA,GAAK,EAAK,KAAKonB,SAAS,IAAIE,cAAgB,KAAY,GAAJtnB,EAAU,KAAKonB,SAAS,IAAIE,cACtG,KAAQtnB,GAAK,GAAM,KAAKonB,SAAS,IAAIE,cAAgB,KAAStnB,GAAK,EAAK,GAAM,KAAKonB,SAAS,IAAIE,cAAgB,KAAY,GAAJtnB,EAAU,KAAKonB,SAAS,IAAIE,a,CAK9J,SAAA0H,EAA4B/H,GAKpB3nB,IAJH2vB,MAAS,GACT3vB,EAAI,EACF4vB,EAAKjI,EAAIxnB,OAERH,EAAI4vB,GAAI,CACRlvB,MAAImvB,SAASlI,EAAInC,OAAOxlB,EAAI,EAAG,GAAI,IAErCU,KAAI,IACGnB,UAAOusB,aAAaprB,G,GACzB,OAED,GAAIA,GAAK,KAAOA,EAAI,IAAK,CACxBkvB,KAAK5vB,GAAM,EAAG,CACZ8vB,MAAKD,SAASlI,EAAInC,OAAOxlB,EAAI,EAAG,GAAI,IAChCT,UAAOusB,cAAmB,GAAJprB,IAAW,EAAW,GAALovB,E,MAEvCnI,KAAInC,OAAOxlB,EAAG,G,GAEpB,CAPD,MASA,GAAIU,GAAK,IAAK,CACbkvB,KAAK5vB,GAAM,EAAG,CACZ8vB,MAAKD,SAASlI,EAAInC,OAAOxlB,EAAI,EAAG,GAAI,IACpC+vB,EAAKF,SAASlI,EAAInC,OAAOxlB,EAAI,EAAG,GAAI,IAChCT,UAAOusB,cAAmB,GAAJprB,IAAW,IAAa,GAALovB,IAAY,EAAW,GAALC,E,MAE3DpI,KAAInC,OAAOxlB,EAAG,G,GAEpB,C,MAGK2nB,KAAInC,OAAOxlB,EAAG,G,GACnB,C,QAIA2vB,C,CAGR,SAAAK,EAAqCC,EAA0BC,G,SAC/DC,EAA2BxI,GACnByI,MAASV,EAAY/H,G,OAClByI,EAAOC,MAAMH,EAAS1F,YAAoB4F,EAANzI,C,QAG1CsI,EAAWK,SAAQL,EAAWK,OAAS/wB,OAAO0wB,EAAWK,QAAQ5Y,QAAQwY,EAASxF,YAAayF,GAAkB1Y,cAAcC,QAAQwY,EAASnG,WAAY,UACpI3gB,IAAxB6mB,EAAWM,WAAwBN,EAAWM,SAAWhxB,OAAO0wB,EAAWM,UAAU7Y,QAAQwY,EAASxF,YAAayF,GAAkBzY,QAAQwY,EAASjG,aAAcuF,GAAY9X,QAAQwY,EAASxF,YAAa1C,SAC1L5e,IAApB6mB,EAAWO,OAAoBP,EAAWO,KAAOjxB,OAAO0wB,EAAWO,MAAM9Y,QAAQwY,EAASxF,YAAayF,GAAkB1Y,cAAcC,QAAQwY,EAAShG,SAAUsF,GAAY9X,QAAQwY,EAASxF,YAAa1C,SACxL5e,IAApB6mB,EAAWQ,OAAoBR,EAAWQ,KAAOlxB,OAAO0wB,EAAWQ,MAAM/Y,QAAQwY,EAASxF,YAAayF,GAAkBzY,QAASuY,EAAWK,OAASJ,EAAS/F,SAAW+F,EAAS9F,kBAAoBoF,GAAY9X,QAAQwY,EAASxF,YAAa1C,SAC5N5e,IAArB6mB,EAAWrZ,QAAqBqZ,EAAWrZ,MAAQrX,OAAO0wB,EAAWrZ,OAAOc,QAAQwY,EAASxF,YAAayF,GAAkBzY,QAAQwY,EAAS7F,UAAWmF,GAAY9X,QAAQwY,EAASxF,YAAa1C,SAC1K5e,IAAxB6mB,EAAWS,WAAwBT,EAAWS,SAAWnxB,OAAO0wB,EAAWS,UAAUhZ,QAAQwY,EAASxF,YAAayF,GAAkBzY,QAAQwY,EAAS5F,aAAckF,GAAY9X,QAAQwY,EAASxF,YAAa1C,IAE3MiI,C,CAGR,SAAAU,EAA4BhJ,GACpBA,SAAIjQ,QAAQ,UAAW,OAAS,G,CAGxC,SAAAkZ,EAAwBJ,EAAaN,GAC9BW,MAAUL,EAAKH,MAAMH,EAASvF,cAAgB,GAC3CmG,E,EAAWD,EAFrB,MAIKC,SACIA,EAAQvd,MAAM,KAAKrP,IAAIysB,GAAoBxsB,KAAK,KAEhDqsB,C,CAIT,SAAAO,EAAwBP,EAAaN,GAC9BW,MAAUL,EAAKH,MAAMH,EAASc,cAAgB,G,IAC1BH,EAF3B,GAEUC,EAFVG,EAAA,GAEmBC,EAFnBD,EAAA,GAIKH,KAAS,C,IACUA,QAAQrZ,cAAclE,MAAM,MAAM4d,U,SAAjD3oB,EADK4oB,EAAA,GACC7oB,EADD6oB,EAAA,GAENC,EAAc9oB,EAAQA,EAAMgL,MAAM,KAAKrP,IAAIysB,GAAsB,GACjEW,EAAa9oB,EAAK+K,MAAM,KAAKrP,IAAIysB,GACjCY,EAAyBrB,EAASvF,YAAYsE,KAAKqC,EAAWA,EAAWnxB,OAAS,IAClFqxB,EAAaD,EAAyB,EAAI,EAC1CE,EAAkBH,EAAWnxB,OAASqxB,EACtChmB,EAASxM,MAAcwyB,GAEpB3N,EAAI,EAAGA,EAAI2N,IAAc3N,EAC1BA,KAAKwN,EAAYxN,IAAMyN,EAAWG,EAAkB5N,IAAM,GAG9D0N,IACIC,IAAa,GAAKZ,EAAeplB,EAAOgmB,EAAa,GAAItB,I,IAe3DwB,EAZgBlmB,EAAOmmB,OAA4C,SAACC,EAAK/rB,EAAO4nB,GACjF,IAAC5nB,GAAmB,MAAVA,EAAe,CACtBgsB,MAAcD,EAAIA,EAAIzxB,OAAS,GACjC0xB,GAAeA,EAAYpE,MAAQoE,EAAY1xB,SAAWstB,EACjDttB,WAERmD,OAAK,CAAEmqB,QAAOttB,OAAS,G,QAGtByxB,CATc,EAUnB,IAEqCrM,KAAK,SAACuM,EAAGlzB,GAAMA,SAAEuB,OAAS2xB,EAAE3xB,MAA1C,GAAkD,GAExE4xB,SACAL,MAAqBA,EAAkBvxB,OAAS,EAAG,CAChD6xB,MAAWxmB,EAAO3H,MAAM,EAAG6tB,EAAkBjE,OAC7CwE,EAAUzmB,EAAO3H,MAAM6tB,EAAkBjE,MAAQiE,EAAkBvxB,QAC/D6xB,IAAS7tB,KAAK,KAAO,KAAO8tB,EAAQ9tB,KAAK,I,MAEzCqH,IAAOrH,KAAK,K,OAGnB+sB,IACQa,GAAA,IAAMb,GAGXa,C,QAEAvB,C,CAIT,IAAM0B,EAAY,kIACZC,OAAuE/oB,IAA3B,GAAIinB,MAAM,SAAU,GAEtE,SAAApjB,EAAsBmlB,GAAkBC,MAAxCnyB,UAAAC,OAAA,QAAAiJ,IAAAlJ,UAAA,GAAAA,UAAA,GAA6D,GACtD+vB,EAA2B,GAC3BC,GAA4B,IAAhBmC,EAAQC,IAAgBxH,EAAeD,EAE/B,WAAtBwH,EAAQE,YAAwBH,GAAaC,EAAQ/B,OAAS+B,EAAQ/B,OAAS,IAAM,IAAM,KAAO8B,GAEhGvB,MAAUuB,EAAU/B,MAAM6B,GAE5BrB,KAAS,CACRsB,GAEQ7B,SAASO,EAAQ,GACjBN,WAAWM,EAAQ,GACnBL,OAAOK,EAAQ,GACf2B,OAAO3C,SAASgB,EAAQ,GAAI,IAC5BJ,OAAOI,EAAQ,IAAM,GACrBja,QAAQia,EAAQ,GAChBH,WAAWG,EAAQ,GAG1B4B,MAAMxC,EAAWuC,QACTA,OAAO3B,EAAQ,MAIhBP,SAASO,EAAQ,SAAMznB,EACvBmnB,YAAuC,IAA3B6B,EAAUtrB,QAAQ,KAAc+pB,EAAQ,QAAKznB,EACzDonB,QAAoC,IAA5B4B,EAAUtrB,QAAQ,MAAe+pB,EAAQ,QAAKznB,EACtDopB,OAAO3C,SAASgB,EAAQ,GAAI,IAC5BJ,OAAOI,EAAQ,IAAM,GACrBja,SAAoC,IAA3Bwb,EAAUtrB,QAAQ,KAAc+pB,EAAQ,QAAKznB,EACtDsnB,YAAuC,IAA3B0B,EAAUtrB,QAAQ,KAAc+pB,EAAQ,QAAKznB,EAGhEqpB,MAAMxC,EAAWuC,QACTA,OAAQJ,EAAU/B,MAAM,iCAAmCQ,EAAQ,QAAKznB,IAIjF6mB,EAAWO,OAEHA,OAAOO,EAAeH,EAAeX,EAAWO,KAAMN,GAAWA,SAInD9mB,IAAtB6mB,EAAWK,aAAgDlnB,IAAxB6mB,EAAWM,eAA8CnnB,IAApB6mB,EAAWO,WAA0CpnB,IAApB6mB,EAAWuC,MAAuBvC,EAAWQ,WAA6BrnB,IAArB6mB,EAAWrZ,WAE5IxN,IAAtB6mB,EAAWK,OACViC,YAAY,gBACWnpB,IAAxB6mB,EAAWS,SACV6B,YAAY,WAEZA,YAAY,MANZA,YAAY,gBAUpBF,EAAQE,WAAmC,WAAtBF,EAAQE,WAA0BF,EAAQE,YAActC,EAAWsC,Y,EAChFxG,MAAQkE,EAAWlE,OAAS,gBAAkBsG,EAAQE,UAAY,eAIxEG,MAAgBnD,GAAS8C,EAAQ/B,QAAUL,EAAWK,QAAU,IAAI7Y,eAGtE,GAAC4a,EAAQM,gBAAoBD,GAAkBA,EAAcC,eAcpC1C,IAAYC,OAdyC,CAE7ED,KAAWO,OAAS6B,EAAQO,YAAeF,GAAiBA,EAAcE,YAEzE,IACQpC,OAAOrB,EAASD,QAAQe,EAAWO,KAAK9Y,QAAQwY,EAASxF,YAAagF,GAAajY,c,CAC7F,MAAOzV,GACG+pB,QAAQkE,EAAWlE,OAAS,kEAAoE/pB,C,CAIjFiuB,IAAYpF,E,CAOrC6H,GAAiBA,EAAczlB,OACpBA,QAAMgjB,EAAYoC,E,MAGtBtG,QAAQkE,EAAWlE,OAAS,yB,OAGjCkE,C,CAGR,SAAA4C,EAA6B5C,EAA0BoC,GAChDnC,OAA4B,IAAhBmC,EAAQC,IAAgBxH,EAAeD,EACnDiI,EAA0B,G,YAEJ1pB,IAAxB6mB,EAAWM,W,EACJjtB,KAAK2sB,EAAWM,UAChBjtB,OAAK,WAGQ8F,IAApB6mB,EAAWO,MAEJltB,OAAKytB,EAAeH,EAAerxB,OAAO0wB,EAAWO,MAAON,GAAWA,GAAUxY,QAAQwY,EAASc,YAAa,SAACvuB,EAAGswB,EAAIC,G,MAAO,IAAMD,GAAMC,EAAK,MAAQA,EAAK,IAAM,GAA7J,IAGe,iBAApB/C,EAAWuC,MAAgD,iBAApBvC,EAAWuC,OAClDlvB,OAAK,KACLA,OAAK/D,OAAO0wB,EAAWuC,QAG3BM,EAAU3yB,OAAS2yB,EAAU3uB,KAAK,SAAMiF,C,CAGhD,IAAM6pB,EAAO,WACPC,EAAO,cACPC,EAAO,gBAEPC,GAAO,yBAEb,SAAAC,GAAkCnG,GAG1BA,IAFD/b,MAAuB,GAEtB+b,EAAM/sB,QACR+sB,KAAMmD,MAAM4C,GACP/F,IAAMxV,QAAQub,EAAM,SACtB,GAAI/F,EAAMmD,MAAM6C,GACdhG,IAAMxV,QAAQwb,EAAM,UACtB,GAAIhG,EAAMmD,MAAM8C,GACdjG,IAAMxV,QAAQyb,EAAM,KACrB9vB,aACD,GAAc,MAAV6pB,GAA2B,OAAVA,E,EACnB,OACF,CACAoG,MAAKpG,EAAMmD,MAAM+C,IACnBE,M,MAKG,IAAI/jB,MAAM,oCAJVxP,MAAIuzB,EAAG,GACLpG,IAAMrpB,MAAM9D,EAAEI,QACfmD,OAAKvD,E,CAORoR,SAAOhN,KAAK,G,CAGpB,SAAAovB,GAA0BtD,GAA0BoC,MAApDnyB,UAAAC,OAAA,QAAAiJ,IAAAlJ,UAAA,GAAAA,UAAA,GAAyE,GAClEgwB,EAAYmC,EAAQC,IAAMxH,EAAeD,EACzCiI,EAA0B,GAG1BJ,EAAgBnD,GAAS8C,EAAQ/B,QAAUL,EAAWK,QAAU,IAAI7Y,eAKtEwY,GAFAyC,GAAiBA,EAAca,WAAWb,EAAca,UAAUtD,EAAYoC,GAE9EpC,EAAWO,KAEVN,KAASc,YAAY/B,KAAKgB,EAAWO,YAKpC,GAAI6B,EAAQO,YAAeF,GAAiBA,EAAcE,WAE1D,IACQpC,OAAS6B,EAAQC,IAAmGnD,EAASH,UAAUiB,EAAWO,MAA3HrB,EAASD,QAAQe,EAAWO,KAAK9Y,QAAQwY,EAASxF,YAAagF,GAAajY,c,CAC7G,MAAOzV,GACG+pB,QAAQkE,EAAWlE,OAAS,+CAAkDsG,EAAQC,IAAgB,UAAV,SAAuB,kBAAoBtwB,C,CAMzHiuB,IAAYC,GAEd,WAAtBmC,EAAQE,WAA0BtC,EAAWK,S,EACtChtB,KAAK2sB,EAAWK,QAChBhtB,OAAK,MAGVkwB,MAAYX,EAAoB5C,EAAYoC,GAa9CpC,QAZc7mB,IAAdoqB,IACuB,WAAtBnB,EAAQE,WACDjvB,OAAK,MAGNA,OAAKkwB,GAEXvD,EAAWQ,MAAsC,MAA9BR,EAAWQ,KAAKgD,OAAO,IACnCnwB,OAAK,WAIO8F,IAApB6mB,EAAWQ,KAAoB,CAC9B1wB,MAAIkwB,EAAWQ,KAEd4B,EAAQqB,cAAkBhB,GAAkBA,EAAcgB,eAC1DL,KAAkBtzB,SAGLqJ,IAAdoqB,IACCzzB,IAAE2X,QAAQ,QAAS,SAGdpU,OAAKvD,E,CAaT+yB,YAVkB1pB,IAArB6mB,EAAWrZ,QACJtT,OAAK,K,EACLA,KAAK2sB,EAAWrZ,aAGCxN,IAAxB6mB,EAAWS,WACJptB,OAAK,K,EACLA,KAAK2sB,EAAWS,WAGpBoC,EAAU3uB,KAAK,G,CAGvB,SAAAwvB,GAAkC3I,EAAoB4I,GAAwBvB,MAA9EnyB,UAAAC,OAAA,QAAAiJ,IAAAlJ,UAAA,GAAAA,UAAA,GAAmG,GAC5FK,EAAuB,G,OAD9BL,UAAA,K,EAIS+M,EAAMsmB,GAAUvI,EAAMqH,GAAUA,G,EAC5BplB,EAAMsmB,GAAUK,EAAUvB,GAAUA,MAEtCA,KAAW,IAERwB,UAAYD,EAAStD,Q,EAC1BA,OAASsD,EAAStD,O,EAElBC,SAAWqD,EAASrD,S,EACpBC,KAAOoD,EAASpD,K,EAChBgC,KAAOoB,EAASpB,KAChB/B,OAAO4C,GAAkBO,EAASnD,MAAQ,I,EAC1C7Z,MAAQgd,EAAShd,aAEExN,IAAtBwqB,EAASrD,eAA4CnnB,IAAlBwqB,EAASpD,WAAwCpnB,IAAlBwqB,EAASpB,M,EAEvEjC,SAAWqD,EAASrD,S,EACpBC,KAAOoD,EAASpD,K,EAChBgC,KAAOoB,EAASpB,KAChB/B,OAAO4C,GAAkBO,EAASnD,MAAQ,I,EAC1C7Z,MAAQgd,EAAShd,QAEnBgd,EAASnD,MAQmB,MAA5BmD,EAASnD,KAAKgD,OAAO,GACjBhD,OAAO4C,GAAkBO,EAASnD,YAElBrnB,IAAlB4hB,EAAKuF,eAAwCnnB,IAAd4hB,EAAKwF,WAAoCpnB,IAAd4hB,EAAKwH,MAAwBxH,EAAKyF,KAErFzF,EAAKyF,KAGTA,OAAOzF,EAAKyF,KAAK5sB,MAAM,EAAGmnB,EAAKyF,KAAKnD,YAAY,KAAO,GAAKsG,EAASnD,K,EAFrEA,KAAOmD,EAASnD,KAFhBA,OAAO,IAAMmD,EAASnD,KAMvBA,OAAO4C,GAAkB9yB,EAAOkwB,O,EAEjC7Z,MAAQgd,EAAShd,Q,EAnBjB6Z,KAAOzF,EAAKyF,UACIrnB,IAAnBwqB,EAAShd,M,EACLA,MAAQgd,EAAShd,M,EAEjBA,MAAQoU,EAAKpU,O,EAkBf2Z,SAAWvF,EAAKuF,S,EAChBC,KAAOxF,EAAKwF,K,EACZgC,KAAOxH,EAAKwH,M,EAEblC,OAAStF,EAAKsF,Q,EAGfI,SAAWkD,EAASlD,SAEpBnwB,C,CAGR,SAAAmB,GAAwBoyB,EAAgBC,EAAoB1B,GACrD2B,MAAoBn0B,EAAO,CAAEywB,OAAS,QAAU+B,GAC/CkB,UAAUI,GAAkB1mB,EAAM6mB,EAASE,GAAoB/mB,EAAM8mB,EAAaC,GAAoBA,GAAmB,GAAOA,E,CAKxI,SAAAC,GAA0BC,EAAS7B,G,MACf,iBAAR6B,EACJX,KAAUtmB,EAAMinB,EAAK7B,GAAUA,GACX,WAAhBzK,EAAOsM,KACXjnB,IAAMsmB,GAAyBW,EAAK7B,GAAUA,IAG9C6B,C,CAKR,SAAAC,GAAsBC,EAAUC,EAAUhC,GAalC+B,MAZa,iBAATA,EACHb,KAAUtmB,EAAMmnB,EAAM/B,GAAUA,GACZ,WAAjBzK,EAAOwM,KACVb,KAAyBa,EAAM/B,IAGnB,iBAATgC,EACHd,KAAUtmB,EAAMonB,EAAMhC,GAAUA,GACZ,WAAjBzK,EAAOyM,KACVd,KAAyBc,EAAMhC,IAGhC+B,IAASC,C,CAGjB,SAAAC,GAAgC3M,EAAY0K,GACpC1K,UAAOA,EAAIG,WAAWpQ,QAAU2a,GAAYA,EAAQC,IAA4BxH,EAAaP,OAAnCM,EAAaN,OAA+BiF,E,CAG9G,SAAA+E,GAAkC5M,EAAY0K,GACtC1K,UAAOA,EAAIG,WAAWpQ,QAAU2a,GAAYA,EAAQC,IAAiCxH,EAAaJ,YAAxCG,EAAaH,YAAyCgF,EACvH,CCziBD,IAAM8E,GAA2B,C,OACvB,O,YAEI,EAELvnB,MAAA,SAAUgjB,EAA0BoC,G,OAEtCpC,EAAWO,OACJzE,QAAQkE,EAAWlE,OAAS,+BAGjCkE,CAXwB,EAcpBsD,UAAA,SAAUtD,EAA0BoC,GACzCoC,MAAqD,UAA5Cl1B,OAAO0wB,EAAWK,QAAQ7Y,c,OAGrCwY,EAAWuC,QAAUiC,EAAS,IAAM,KAA2B,KAApBxE,EAAWuC,OAC9CA,YAAOppB,GAId6mB,EAAWQ,OACJA,OAAO,KAOZR,C,GC9BHuE,GAA2B,C,OACvB,QACIE,cAAK9B,WACV8B,SAAKznB,MACDynB,aAAKnB,WCAlB,SAAAoB,GAAkBC,GACV,MAA+B,kBAAxBA,EAAaH,OAAuBG,EAAaH,OAAuD,QAA9Cl1B,OAAOq1B,EAAatE,QAAQ7Y,a,CAIrG,IAAM+c,GAA2B,C,OACvB,K,YAEI,EAELvnB,MAAA,SAAUgjB,EAA0BoC,GACrCuC,MAAe3E,E,OAGRwE,SAASE,GAASC,GAGlBC,gBAAgBD,EAAanE,MAAQ,MAAQmE,EAAahe,MAAQ,IAAMge,EAAahe,MAAQ,IAC7F6Z,YAAOrnB,EACPwN,aAAQxN,EAEdwrB,CAhBwB,EAmBpBrB,UAAA,SAAUqB,EAA2BvC,GAa5CuC,GAXAA,EAAapC,QAAUmC,GAASC,GAAgB,IAAM,KAA6B,KAAtBA,EAAapC,OAChEA,YAAOppB,GAIc,kBAAxBwrB,EAAaH,SACVnE,SAAUsE,EAAaH,OAAS,MAAQ,KACxCA,cAASrrB,GAInBwrB,EAAaC,aAAc,CACRD,QAAaC,aAAathB,MAAM,K,SAA/Ckd,EADuBqE,EAAA,GACjBle,EADiBke,EAAA,GAEjBrE,OAAQA,GAAiB,MAATA,EAAeA,OAAOrnB,EACtCwN,QAAQA,EACRie,oBAAezrB,C,QAIhBsnB,gBAAWtnB,EAEjBwrB,C,GCnDHJ,GAA2B,C,OACvB,MACIO,cAAGnC,WACRmC,SAAG9nB,MACC8nB,aAAGxB,WCSVyB,GAAkB,GAIlBpM,GAAe,mGACfJ,GAAW,cACXC,GAAef,EAAOA,EAAO,UAAYc,GAAW,IAAMA,GAAWA,GAAW,IAAMA,GAAWA,IAAY,IAAMd,EAAO,cAAgBc,GAAW,IAAMA,GAAWA,IAAY,IAAMd,EAAO,IAAMc,GAAWA,KAahNyM,GAAU,wDAEVC,GAAU7N,EADA,6DACe,aAQzB8N,GAAgB,sCAahB3K,GAAa,IAAIR,OAAOpB,GAAc,KACtC8B,GAAc,IAAIV,OAAOvB,GAAc,KACvC2M,GAAiB,IAAIpL,OAAO3C,EAAM,MAAO4N,GAAS,QAAS,QAASC,IAAU,KAE9EG,GAAa,IAAIrL,OAAO3C,EAAM,MAAOuB,GAAcuM,IAAgB,KACnEG,GAAcD,GAEpB,SAEAlF,GAA0BxI,GACnByI,MAASV,EAAY/H,G,OAClByI,EAAOC,MAAM7F,IAAoB4F,EAANzI,C,CAGrC,IAAM6M,GAA8C,C,OAC1C,SAEDvnB,MAAA,SAAUgjB,EAA0BoC,GACrCkD,MAAmBtF,EACnBzsB,EAAK+xB,EAAiB/xB,GAAM+xB,EAAiB9E,KAAO8E,EAAiB9E,KAAKld,MAAM,KAAO,GAGzFgiB,GAFa9E,YAAOrnB,EAEpBmsB,EAAiB3e,MAAO,CAKtB,IAJD4e,OAAiB,EACfC,EAAwB,GACxBC,EAAUH,EAAiB3e,MAAMrD,MAAM,KAEpCsQ,EAAI,EAAG4D,EAAKiO,EAAQv1B,OAAQ0jB,EAAI4D,IAAM5D,EAAG,CAC3C8R,MAASD,EAAQ7R,GAAGtQ,MAAM,KAExBoiB,SAAO,I,IACT,KAEC,IADCC,MAAUD,EAAO,GAAGpiB,MAAM,KACvBsQ,EAAI,EAAG4D,EAAKmO,EAAQz1B,OAAQ0jB,EAAI4D,IAAM5D,EAC3CvgB,OAAKsyB,EAAQ/R,I,UAGb,UACagS,UAAUtB,GAAkBoB,EAAO,GAAItD,G,UAEpD,OACa/vB,OAAOiyB,GAAkBoB,EAAO,GAAItD,G,iBAGpC,EACTkC,KAAkBoB,EAAO,GAAItD,IAAYkC,GAAkBoB,EAAO,GAAItD,G,CAK7EmD,IAAgBD,EAAiBE,QAAUA,E,CAG/B7e,aAAQxN,EAEpB,QAAIya,EAAI,EAAG4D,EAAKjkB,EAAGrD,OAAQ0jB,EAAI4D,IAAM5D,EAAG,CACtCiS,MAAOtyB,EAAGqgB,GAAGtQ,MAAM,K,GAEpBuiB,EAAA,GAAKvB,GAAkBuB,EAAK,IAE5BzD,EAAQM,eAQPmD,EAAA,GAAKvB,GAAkBuB,EAAK,GAAIzD,GAAS5a,mBAN1C,IACEqe,EAAA,GAAK3G,EAASD,QAAQqF,GAAkBuB,EAAK,GAAIzD,GAAS5a,c,CAC9D,MAAOzV,GACS+pB,QAAQwJ,EAAiBxJ,OAAS,2EAA6E/pB,C,CAM/H6hB,KAAKiS,EAAK3xB,KAAK,I,QAGZoxB,CA5D2C,EA+DvChC,UAAA,SAAUgC,EAAmClD,GAClDpC,MAAasF,EACb/xB,EAAKykB,EAAQsN,EAAiB/xB,IAChCA,KAAI,CACF,QAAIqgB,EAAI,EAAG4D,EAAKjkB,EAAGrD,OAAQ0jB,EAAI4D,IAAM5D,EAAG,CACtCkS,MAASx2B,OAAOiE,EAAGqgB,IACnBmS,EAAQD,EAAOzI,YAAY,KAC3B2I,EAAaF,EAAOlyB,MAAM,EAAGmyB,GAAQte,QAAQgT,GAAayF,IAAkBzY,QAAQgT,GAAa1C,GAAatQ,QAAQ0d,GAAgB5F,GACxI0G,EAASH,EAAOlyB,MAAMmyB,EAAQ,GAG9B,IACOE,EAAC7D,EAAQC,IAA2EnD,EAASH,UAAUkH,GAAxF/G,EAASD,QAAQqF,GAAkB2B,EAAQ7D,GAAS5a,c,CAC5E,MAAOzV,GACG+pB,QAAQkE,EAAWlE,OAAS,wDAA2DsG,EAAQC,IAAgB,UAAV,SAAuB,kBAAoBtwB,C,CAGzJ6hB,KAAKoS,EAAY,IAAMC,C,CAGhBzF,OAAOjtB,EAAGW,KAAK,I,CAGrBsxB,MAAUF,EAAiBE,QAAUF,EAAiBE,SAAW,GAEnEF,EAAiBM,UAASJ,EAAA,QAAqBF,EAAiBM,SAChEN,EAAiBjzB,OAAMmzB,EAAA,KAAkBF,EAAiBjzB,MAExDkJ,MAAS,G,IACV,IAAM3G,KAAQ4wB,EACdA,EAAQ5wB,KAAUmwB,GAAEnwB,IAChBvB,OACNuB,EAAK6S,QAAQgT,GAAayF,IAAkBzY,QAAQgT,GAAa1C,GAAatQ,QAAQ2d,GAAY7F,GAClG,IACAiG,EAAQ5wB,GAAM6S,QAAQgT,GAAayF,IAAkBzY,QAAQgT,GAAa1C,GAAatQ,QAAQ4d,GAAa9F,I,OAI3GhkB,EAAOrL,SACCyW,QAAQpL,EAAOrH,KAAK,MAGzB8rB,C,GC/JHkG,GAAY,kBAIZ3B,GAAqD,C,OACjD,MAEDvnB,MAAA,SAAUgjB,EAA0BoC,GACrCxB,MAAUZ,EAAWQ,MAAQR,EAAWQ,KAAKJ,MAAM8F,IACrDC,EAAgBnG,EAEhBY,KAAS,CACNP,MAAS+B,EAAQ/B,QAAU8F,EAAc9F,QAAU,MACnD+F,EAAMxF,EAAQ,GAAGpZ,cACjB6e,EAAMzF,EAAQ,GACd0F,EAAejG,EAAf,KAAyB+B,EAAQgE,KAAOA,GACxC3D,EAAgBnD,EAAQgH,GAEhBF,MAAMA,EACNC,MAAMA,EACN7F,YAAOrnB,EAEjBspB,IACaA,IAAczlB,MAAMmpB,EAAe/D,G,MAGtCtG,QAAQqK,EAAcrK,OAAS,yB,OAGvCqK,CAzBkD,EA4B9C7C,UAAA,SAAU6C,EAA6B/D,GAC5C/B,MAAS+B,EAAQ/B,QAAU8F,EAAc9F,QAAU,MACnD+F,EAAMD,EAAcC,IACpBE,EAAejG,EAAf,KAAyB+B,EAAQgE,KAAOA,GACxC3D,EAAgBnD,EAAQgH,GAE1B7D,IACaA,IAAca,UAAU6C,EAAe/D,IAGlDmE,MAAgBJ,EAChBE,EAAMF,EAAcE,I,OACZ7F,QAAU4F,GAAOhE,EAAQgE,KAAvC,IAA8CC,EAEvCE,C,GCxDHC,GAAO,2DAIPjC,GAAsE,C,OAClE,WAEDvnB,MAAA,SAAUmpB,EAA6B/D,GACxCqE,MAAiBN,E,SACRO,KAAOD,EAAeJ,IACtBA,WAAMltB,EAEhBipB,EAAQwB,UAAc6C,EAAeC,MAASD,EAAeC,KAAKtG,MAAMoG,MAC7D1K,QAAQ2K,EAAe3K,OAAS,sBAGzC2K,CAZmE,EAe/DnD,UAAA,SAAUmD,EAA+BrE,GAC9C+D,MAAgBM,E,SAERJ,KAAOI,EAAeC,MAAQ,IAAIlf,cACzC2e,C,GC5BT7G,EAAQmF,GAAKpE,QAAUoE,GAGvBnF,EAAQqH,GAAMtG,QAAUsG,GAGxBrH,EAAQwF,GAAGzE,QAAUyE,GAGrBxF,EAAQsH,GAAIvG,QAAUuG,GAGtBtH,EAAQuH,GAAOxG,QAAUwG,GAGzBvH,EAAQwH,GAAIzG,QAAUyG,GAGtBxH,EAAQoH,GAAKrG,QAAUqG,G,8SCfvBK,GAAiB,SAAS7C,EAAMrC,EAAGlzB,GACjC,GAAIkzB,IAAMlzB,EAAG,OAAO,EAEpB,GAAIkzB,GAAKlzB,GAAiB,iBAALkzB,GAA6B,iBAALlzB,EAAe,CAC1D,GAAIkzB,EAAEpyB,cAAgBd,EAAEc,YAAa,OAAO,EAE5C,IAAIS,EAAQH,EAAGsE,EACf,GAAItF,MAAMiF,QAAQ6tB,GAAI,CAEpB,IADA3xB,EAAS2xB,EAAE3xB,SACGvB,EAAEuB,OAAQ,OAAO,EAC/B,IAAKH,EAAIG,EAAgB,IAARH,KACf,IAAKm0B,EAAMrC,EAAE9xB,GAAIpB,EAAEoB,IAAK,OAAO,EACjC,OAAO,CACb,CAII,GAAI8xB,EAAEpyB,cAAgBsqB,OAAQ,OAAO8H,EAAEnpB,SAAW/J,EAAE+J,QAAUmpB,EAAEmF,QAAUr4B,EAAEq4B,MAC5E,GAAInF,EAAEoF,UAAYr4B,OAAOK,UAAUg4B,QAAS,OAAOpF,EAAEoF,YAAct4B,EAAEs4B,UACrE,GAAIpF,EAAEhK,WAAajpB,OAAOK,UAAU4oB,SAAU,OAAOgK,EAAEhK,aAAelpB,EAAEkpB,WAIxE,IADA3nB,GADAmE,EAAOzF,OAAOyF,KAAKwtB,IACL3xB,UACCtB,OAAOyF,KAAK1F,GAAGuB,OAAQ,OAAO,EAE7C,IAAKH,EAAIG,EAAgB,IAARH,KACf,IAAKnB,OAAOK,UAAUC,eAAeC,KAAKR,EAAG0F,EAAKtE,IAAK,OAAO,EAEhE,IAAKA,EAAIG,EAAgB,IAARH,KAAY,CAC3B,IAAIQ,EAAM8D,EAAKtE,GAEf,IAAKm0B,EAAMrC,EAAEtxB,GAAM5B,EAAE4B,IAAO,OAAO,CACzC,CAEI,OAAO,CACX,CAGE,OAAOsxB,GAAIA,GAAKlzB,GAAIA,CACtB,G,iCCTA,SAASu4B,EAAcC,EAAU3xB,EAAM4xB,EAAeC,GACpD,IAAIC,EAAQD,EAAS,QAAU,QAC3BE,EAAMF,EAAS,OAAS,OACxBG,EAAKH,EAAS,IAAM,GACpBI,EAAMJ,EAAS,GAAK,IACxB,OAAQF,GACN,IAAK,OAAQ,OAAO3xB,EAAO8xB,EAAQ,OACnC,IAAK,QAAS,OAAOE,EAAK,iBAAmBhyB,EAAO,IACpD,IAAK,SAAU,MAAO,IAAMgyB,EAAKhyB,EAAO+xB,EAClB,UAAY/xB,EAAO8xB,EAAQ,WAAaC,EACxCE,EAAM,iBAAmBjyB,EAAO,KACtD,IAAK,UAAW,MAAO,WAAaA,EAAO8xB,EAAQ,WAAaC,EACzCE,EAAM,IAAMjyB,EAAO,QACnB+xB,EAAM/xB,EAAO8xB,EAAQ9xB,GACpB4xB,EAAiBG,EAAMC,EAAK,YAAchyB,EAAO,IAAO,IAAM,IACtF,IAAK,SAAU,MAAO,WAAaA,EAAO8xB,EAAQ,IAAMH,EAAW,KAC5CC,EAAiBG,EAAMC,EAAK,YAAchyB,EAAO,IAAO,IAAM,IACrF,QAAS,MAAO,UAAYA,EAAO8xB,EAAQ,IAAMH,EAAW,IAEhE,C,KApDAO,GAAiB,CACfC,KAyBF,SAAc/P,EAAGrkB,GAEf,IAAK,IAAIhD,KADTgD,EAAKA,GAAM,GACKqkB,EAAGrkB,EAAGhD,GAAOqnB,EAAErnB,GAC/B,OAAOgD,CACT,EA5BE2zB,cAAeA,EACfU,eAoDF,SAAwBC,EAAWryB,EAAM4xB,GACvC,GACO,IADCS,EAAU33B,OACR,OAAOg3B,EAAcW,EAAU,GAAIryB,EAAM4xB,GAAe,GAE9D,IAAIU,EAAO,GACPC,EAAQC,EAAOH,GASnB,IAAK,IAAIh4B,KARLk4B,EAAM/L,OAAS+L,EAAMzb,SACvBwb,EAAOC,EAAME,KAAO,IAAK,KAAOzyB,EAAO,OACvCsyB,GAAQ,UAAYtyB,EAAO,wBACpBuyB,EAAME,YACNF,EAAM/L,aACN+L,EAAMzb,QAEXyb,EAAMG,eAAeH,EAAMI,QACjBJ,EACZD,IAASA,EAAO,OAAS,IAAOZ,EAAcr3B,EAAG2F,EAAM4xB,GAAe,GAExE,OAAOU,CAEb,EAtEEM,cA0EF,SAAuBC,EAAmBR,GACxC,GAAI94B,MAAMiF,QAAQ6zB,GAAY,CAE5B,IADA,IAAIE,EAAQ,GACHh4B,EAAE,EAAGA,EAAE83B,EAAU33B,OAAQH,IAAK,CACrC,IAAIF,EAAIg4B,EAAU93B,IACdu4B,EAAgBz4B,IACW,UAAtBw4B,GAAuC,UAANx4B,KADlBk4B,EAAMA,EAAM73B,QAAUL,EAEpD,CACI,GAAIk4B,EAAM73B,OAAQ,OAAO63B,CAC7B,KAAS,IAAIO,EAAgBT,GACzB,MAAO,CAACA,GACH,GAA0B,UAAtBQ,GAA+C,UAAdR,EAC1C,MAAO,CAAC,QACZ,CACA,EAvFEG,OAAQA,EACRO,YAAaA,EACbC,aAAcA,EACdtE,MAAOuE,KACPC,W,YCRFA,GAAiB,SAAoBhR,GAKnC,IAJA,IAGI9lB,EAHA1B,EAAS,EACTy4B,EAAMjR,EAAIxnB,OACV04B,EAAM,EAEHA,EAAMD,GACXz4B,KACA0B,EAAQ8lB,EAAI4E,WAAWsM,OACV,OAAUh3B,GAAS,OAAUg3B,EAAMD,GAGtB,QAAX,OADb/2B,EAAQ8lB,EAAI4E,WAAWsM,MACSA,IAGpC,OAAO14B,CACT,GDNE24B,cAgHF,SAAuBnR,EAAKoR,GAC1BA,GAAW,SACX,IAAIlI,EAAUlJ,EAAI0I,MAAM,IAAIrG,OAAO+O,EAAS,MAC5C,OAAOlI,EAAUA,EAAQ1wB,OAAS,CACpC,EAnHE64B,WAsHF,SAAoBrR,EAAKoR,EAASE,GAGhC,OAFAF,GAAW,WACXE,EAAOA,EAAKvhB,QAAQ,MAAO,QACpBiQ,EAAIjQ,QAAQ,IAAIsS,OAAO+O,EAAS,KAAME,EAAO,KACtD,EAzHEC,eA4HF,SAAwBC,EAAQC,GAC9B,GAAqB,kBAAVD,EAAqB,OAAQA,EACxC,IAAK,IAAI34B,KAAO24B,EAAQ,GAAIC,EAAM54B,GAAM,OAAO,CACjD,EA9HE64B,qBAiIF,SAA8BF,EAAQC,EAAOE,GAC3C,GAAqB,kBAAVH,EAAqB,OAAQA,GAA2B,OAAjBG,EAClD,IAAK,IAAI94B,KAAO24B,EAAQ,GAAI34B,GAAO84B,GAAiBF,EAAM54B,GAAM,OAAO,CACzE,EAnIE+4B,mBAsIF,SAA4BJ,EAAQC,GAClC,GAAqB,kBAAVD,EAAqB,OAChC,IAAK,IAAI34B,KAAO24B,EAAQ,IAAKC,EAAM54B,GAAM,OAAOA,CAClD,EAxIEg5B,eAAgBA,EAChBC,YA+IF,SAAqBC,EAAaT,EAAMU,EAAcC,GAIpD,OAAOC,EAAUH,EAHNC,EACG,SAAaV,GAAQW,EAAW,GAAK,8CACpCA,EAAW,SAAaX,EAAO,SAAa,YAAiBA,EAAO,YAErF,EAnJEa,QAsJF,SAAiBJ,EAAaK,EAAMJ,GAClC,IAAIlJ,EACU+I,EADHG,EACkB,IAAMK,EAAkBD,GACxBvB,EAAYuB,IACzC,OAAOF,EAAUH,EAAajJ,EAChC,EA1JEwJ,QA+JF,SAAiBC,EAAOC,EAAKC,GAC3B,IAAIC,EAAIC,EAAa70B,EAAMorB,EAC3B,GAAc,KAAVqJ,EAAc,MAAO,WACzB,GAAgB,KAAZA,EAAM,GAAW,CACnB,IAAKK,EAAatL,KAAKiL,GAAQ,MAAM,IAAI3qB,MAAM,yBAA2B2qB,GAC1EI,EAAcJ,EACdz0B,EAAO,UACX,KAAS,CAEL,KADAorB,EAAUqJ,EAAM7J,MAAMmK,IACR,MAAM,IAAIjrB,MAAM,yBAA2B2qB,GAGzD,GAFAG,GAAMxJ,EAAQ,GAEK,MADnByJ,EAAczJ,EAAQ,IACE,CACtB,GAAIwJ,GAAMF,EAAK,MAAM,IAAI5qB,MAAM,gCAAkC8qB,EAAK,gCAAkCF,GACxG,OAAOC,EAAMD,EAAME,EACzB,CAEI,GAAIA,EAAKF,EAAK,MAAM,IAAI5qB,MAAM,sBAAwB8qB,EAAK,gCAAkCF,GAE7F,GADA10B,EAAO,QAAW00B,EAAME,GAAO,KAC1BC,EAAa,OAAO70B,CAC7B,CAIE,IAFA,IAAIwzB,EAAOxzB,EACPg1B,EAAWH,EAAY/mB,MAAM,KACxBvT,EAAE,EAAGA,EAAEy6B,EAASt6B,OAAQH,IAAK,CACpC,IAAI06B,EAAUD,EAASz6B,GACnB06B,IAEFzB,GAAQ,QADRxzB,GAAQ+yB,EAAYmC,EAAoBD,KAG9C,CACE,OAAOzB,CACT,EA9LE2B,iBAuMF,SAA0BjT,GACxB,OAAOgT,EAAoBE,mBAAmBlT,GAChD,EAxMEgT,oBAAqBA,EACrBG,eA0MF,SAAwBnT,GACtB,OAAOoT,mBAAmBf,EAAkBrS,GAC9C,EA3MEqS,kBAAmBA,GAuDrB,IAAIzB,EAAkBN,EAAO,CAAE,SAAU,SAAU,UAAW,UAAW,SAkBzE,SAASA,EAAO+C,GAEd,IADA,IAAI70B,EAAO,GACFnG,EAAE,EAAGA,EAAEg7B,EAAI76B,OAAQH,IAAKmG,EAAK60B,EAAIh7B,KAAM,EAChD,OAAOmG,CACT,CAGA,IAAI80B,EAAa,wBACbC,EAAe,QACnB,SAAS1C,EAAYh4B,GACnB,MAAqB,iBAAPA,EACJ,IAAMA,EAAM,IACZy6B,EAAWhM,KAAKzuB,GACd,IAAMA,EACN,KAAOi4B,EAAaj4B,GAAO,IACzC,CAGA,SAASi4B,EAAa9Q,GACpB,OAAOA,EAAIjQ,QAAQwjB,EAAc,QACtBxjB,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,MAC5B,CAmCA,SAAS8hB,EAAe7R,GACtB,MAAO,IAAO8Q,EAAa9Q,GAAO,GACpC,CAmBA,IAAI4S,EAAe,sBACfC,EAAwB,mCAoC5B,SAASX,EAAW/H,EAAGlzB,GACrB,MAAS,MAALkzB,EAAkBlzB,GACdkzB,EAAI,MAAQlzB,GAAG8Y,QAAQ,iBAAkB,KACnD,CAaA,SAASsiB,EAAkBrS,GACzB,OAAOA,EAAIjQ,QAAQ,KAAM,MAAMA,QAAQ,MAAO,KAChD,CAGA,SAASijB,EAAoBhT,GAC3B,OAAOA,EAAIjQ,QAAQ,MAAO,KAAKA,QAAQ,MAAO,IAChD,C,6CE5OA,IAAIigB,EAAOe,K,OAEXyC,GAEA,SAAsBjT,GACpByP,EAAKC,KAAK1P,EAAKzoB,KACjB,C,iGCNA,IAAI27B,EAAWC,GAAAC,QAAiB,SAAUnC,EAAQoC,EAAMC,GAEnC,mBAARD,IACTC,EAAKD,EACLA,EAAO,IAOTE,EAAUF,EAHc,mBADxBC,EAAKD,EAAKC,IAAMA,GACsBA,EAAKA,EAAGE,KAAO,WAAW,EACrDF,EAAGG,MAAQ,WAAW,EAENxC,EAAQ,GAAIA,EACzC,EAgDA,SAASsC,EAAUF,EAAMG,EAAKC,EAAMxC,EAAQyC,EAASC,EAAYC,EAAeC,EAAeC,EAAcC,GAC3G,GAAI9C,GAA2B,iBAAVA,IAAuBn6B,MAAMiF,QAAQk1B,GAAS,CAEjE,IAAK,IAAI34B,KADTk7B,EAAIvC,EAAQyC,EAASC,EAAYC,EAAeC,EAAeC,EAAcC,GAC7D9C,EAAQ,CACtB,IAAI+C,EAAM/C,EAAO34B,GACjB,GAAIxB,MAAMiF,QAAQi4B,IAChB,GAAI17B,KAAO46B,EAASe,cAClB,IAAK,IAAIn8B,EAAE,EAAGA,EAAEk8B,EAAI/7B,OAAQH,IAC1By7B,EAAUF,EAAMG,EAAKC,EAAMO,EAAIl8B,GAAI47B,EAAU,IAAMp7B,EAAM,IAAMR,EAAG67B,EAAYD,EAASp7B,EAAK24B,EAAQn5B,QAEnG,GAAIQ,KAAO46B,EAASgB,eACzB,GAAIF,GAAqB,iBAAPA,EAChB,IAAK,IAAInC,KAAQmC,EACfT,EAAUF,EAAMG,EAAKC,EAAMO,EAAInC,GAAO6B,EAAU,IAAMp7B,EAAM,IAAM67B,EAActC,GAAO8B,EAAYD,EAASp7B,EAAK24B,EAAQY,QAEpHv5B,KAAO46B,EAASkB,UAAaf,EAAKgB,WAAa/7B,KAAO46B,EAASoB,gBACxEf,EAAUF,EAAMG,EAAKC,EAAMO,EAAKN,EAAU,IAAMp7B,EAAKq7B,EAAYD,EAASp7B,EAAK24B,EAEvF,CACIwC,EAAKxC,EAAQyC,EAASC,EAAYC,EAAeC,EAAeC,EAAcC,EAClF,CACA,CAGA,SAASI,EAAc1U,GACrB,OAAOA,EAAIjQ,QAAQ,KAAM,MAAMA,QAAQ,MAAO,KAChD,C,OAvEA0jB,EAASkB,SAAW,CAClBG,iBAAiB,EACjBC,OAAO,EACPC,UAAU,EACVC,sBAAsB,EACtBC,eAAe,EACfC,KAAK,GAGP1B,EAASe,cAAgB,CACvBO,OAAO,EACPK,OAAO,EACPC,OAAO,EACPC,OAAO,GAGT7B,EAASgB,cAAgB,CACvBc,aAAa,EACbxf,YAAY,EACZyf,mBAAmB,EACnBC,cAAc,GAGhBhC,EAASoB,aAAe,CACtBjyB,SAAS,EACT8yB,MAAM,EACNC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,SAAS,EACTC,kBAAkB,EAClBC,kBAAkB,EAClBC,YAAY,EACZC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTpxB,QAAQ,EACRqxB,UAAU,EACVC,UAAU,EACVC,aAAa,EACbC,eAAe,EACfC,eAAe,G,8CCxDjB,IAAIC,EAAM3F,KACNvE,EAAQmK,KACR3G,EAAO4G,KACPC,EAAeC,KACfrD,EAAWsD,KAmBf,SAASh9B,EAAQi9B,EAASC,EAAM/lB,GAE9B,IAAIgmB,EAASp/B,KAAKq/B,MAAMjmB,GACxB,GAAqB,iBAAVgmB,EAAoB,CAC7B,IAAIp/B,KAAKq/B,MAAMD,GACV,OAAOn9B,EAAQtC,KAAKK,KAAMk/B,EAASC,EAAMC,GADtBA,EAASp/B,KAAKq/B,MAAMD,EAEhD,CAGE,IADAA,EAASA,GAAUp/B,KAAKs/B,SAASlmB,cACX2lB,EACpB,OAAOQ,EAAUH,EAAO1F,OAAQ15B,KAAKw/B,MAAMC,YACjCL,EAAO1F,OACP0F,EAAOr4B,UAAY/G,KAAK0/B,SAASN,GAG7C,IACI1F,EAAQh2B,EAAGi8B,EADXC,EAAMC,EAAclgC,KAAKK,KAAMm/B,EAAM/lB,GAgBzC,OAdIwmB,IACFlG,EAASkG,EAAIlG,OACbyF,EAAOS,EAAIT,KACXQ,EAASC,EAAID,QAGXjG,aAAkBqF,EACpBr7B,EAAIg2B,EAAO3yB,UAAYm4B,EAAQv/B,KAAKK,KAAM05B,EAAOA,OAAQyF,OAAMx1B,EAAWg2B,QACtDh2B,IAAX+vB,IACTh2B,EAAI67B,EAAU7F,EAAQ15B,KAAKw/B,MAAMC,YAC3B/F,EACAwF,EAAQv/B,KAAKK,KAAM05B,EAAQyF,OAAMx1B,EAAWg2B,IAG7Cj8B,CACT,CAUA,SAASm8B,EAAcV,EAAM/lB,GAE3B,IAAI5Z,EAAIo/B,EAAIpxB,MAAM4L,GACd0mB,EAAUC,EAAavgC,GACvBmgC,EAASK,EAAYhgC,KAAKigC,OAAOd,EAAKzF,SAC1C,GAAwC,IAApCt6B,OAAOyF,KAAKs6B,EAAKzF,QAAQh5B,QAAgBo/B,IAAYH,EAAQ,CAC/D,IAAIx6B,EAAK+6B,EAAYJ,GACjBV,EAASp/B,KAAKq/B,MAAMl6B,GACxB,GAAqB,iBAAVi6B,EACT,OAAOe,EAAiBxgC,KAAKK,KAAMm/B,EAAMC,EAAQ5/B,GAC5C,GAAI4/B,aAAkBL,EACtBK,EAAOr4B,UAAU/G,KAAK0/B,SAASN,GACpCD,EAAOC,MACF,CAEL,MADAA,EAASp/B,KAAKs/B,SAASn6B,cACD45B,GAMpB,OAJA,GADKK,EAAOr4B,UAAU/G,KAAK0/B,SAASN,GAChCj6B,GAAM+6B,EAAY9mB,GACpB,MAAO,CAAEsgB,OAAQ0F,EAAQD,KAAMA,EAAMQ,OAAQA,GAC/CR,EAAOC,CAIf,CACI,IAAKD,EAAKzF,OAAQ,OAClBiG,EAASK,EAAYhgC,KAAKigC,OAAOd,EAAKzF,QAC1C,CACE,OAAO0G,EAAezgC,KAAKK,KAAMR,EAAGmgC,EAAQR,EAAKzF,OAAQyF,EAC3D,CAIA,SAASgB,EAAiBhB,EAAM/lB,EAAKinB,GAEnC,IAAIT,EAAMC,EAAclgC,KAAKK,KAAMm/B,EAAM/lB,GACzC,GAAIwmB,EAAK,CACP,IAAIlG,EAASkG,EAAIlG,OACbiG,EAASC,EAAID,OACjBR,EAAOS,EAAIT,KACX,IAAIh6B,EAAKnF,KAAKigC,OAAOvG,GAErB,OADIv0B,IAAIw6B,EAASW,EAAWX,EAAQx6B,IAC7Bi7B,EAAezgC,KAAKK,KAAMqgC,EAAWV,EAAQjG,EAAQyF,EAChE,CACA,CAtGAoB,GAAiBt+B,EAEjBA,EAAQi+B,YAAcA,EACtBj+B,EAAQu+B,SAAWR,EACnB/9B,EAAQwO,IAAM6vB,EACdr+B,EAAQw+B,IA0NR,SAAoB/G,GAClB,IAAIgH,EAAWR,EAAYlgC,KAAKigC,OAAOvG,IACnCiH,EAAU,CAAC,GAAID,GACfE,EAAY,CAAC,GAAIZ,EAAYU,GAAU,IACvCG,EAAY,GACZC,EAAO9gC,KAgCX,OA9BA27B,EAASjC,EAAQ,CAACoD,SAAS,GAAO,SAASL,EAAKN,EAASC,EAAYC,EAAeC,EAAeC,EAAcC,GAC/G,GAAgB,KAAZL,EAAJ,CACA,IAAIh3B,EAAK27B,EAAKb,OAAOxD,GACjBkD,EAASgB,EAAQtE,GACjBmE,EAAWI,EAAUvE,GAAiB,IAAMC,EAIhD,QAHiB3yB,IAAb6yB,IACFgE,GAAY,KAA0B,iBAAZhE,EAAuBA,EAAWtE,EAAKmD,eAAemB,KAEjE,iBAANr3B,EAAgB,CACzBA,EAAKw6B,EAASO,EAAYP,EAASf,EAAI38B,QAAQ09B,EAAQx6B,GAAMA,GAE7D,IAAIi6B,EAAS0B,EAAKzB,MAAMl6B,GAExB,GADqB,iBAAVi6B,IAAoBA,EAAS0B,EAAKzB,MAAMD,IAC/CA,GAAUA,EAAO1F,QACnB,IAAKhF,EAAM+H,EAAK2C,EAAO1F,QACrB,MAAM,IAAI5pB,MAAM,OAAS3K,EAAK,2CAC3B,GAAIA,GAAM+6B,EAAYM,GAC3B,GAAa,KAATr7B,EAAG,GAAW,CAChB,GAAI07B,EAAU17B,KAAQuvB,EAAM+H,EAAKoE,EAAU17B,IACzC,MAAM,IAAI2K,MAAM,OAAS3K,EAAK,sCAChC07B,EAAU17B,GAAMs3B,CAC1B,MACUqE,EAAKzB,MAAMl6B,GAAMq7B,CAG3B,CACIG,EAAQxE,GAAWwD,EACnBiB,EAAUzE,GAAWqE,CA1BD,CA2BxB,GAESK,CACT,EA/PA5+B,EAAQs9B,UAAYA,EACpBt9B,EAAQy3B,OAASmG,EAkGjB,IAAIkB,EAAuB7I,EAAKM,OAAO,CAAC,aAAc,oBAAqB,OAAQ,eAAgB,gBAEnG,SAAS4H,EAAeC,EAAWV,EAAQjG,EAAQyF,GAGjD,GADAkB,EAAUpP,SAAWoP,EAAUpP,UAAY,GACN,KAAjCoP,EAAUpP,SAAS7sB,MAAM,EAAE,GAA/B,CAGA,IAFA,IAAIiU,EAAQgoB,EAAUpP,SAASnd,MAAM,KAE5BvT,EAAI,EAAGA,EAAI8X,EAAM3X,OAAQH,IAAK,CACrC,IAAIygC,EAAO3oB,EAAM9X,GACjB,GAAIygC,EAAM,CAGR,QAAer3B,KADf+vB,EAASA,EADTsH,EAAO9I,EAAKiD,iBAAiB6F,KAEH,MAC1B,IAAI77B,EACJ,IAAK47B,EAAqBC,MACxB77B,EAAKnF,KAAKigC,OAAOvG,MACTiG,EAASW,EAAWX,EAAQx6B,IAChCu0B,EAAOuH,MAAM,CACf,IAAIA,EAAOX,EAAWX,EAAQjG,EAAOuH,MACjCrB,EAAMC,EAAclgC,KAAKK,KAAMm/B,EAAM8B,GACrCrB,IACFlG,EAASkG,EAAIlG,OACbyF,EAAOS,EAAIT,KACXQ,EAASC,EAAID,OAEzB,CAEA,CACA,CACE,YAAeh2B,IAAX+vB,GAAwBA,IAAWyF,EAAKzF,OACnC,CAAEA,OAAQA,EAAQyF,KAAMA,EAAMQ,OAAQA,QAD/C,CAzB0C,CA2B5C,CAGA,IAAIuB,EAAiBhJ,EAAKM,OAAO,CAC/B,OAAQ,SAAU,UAClB,YAAa,YACb,gBAAiB,gBACjB,WAAY,WACZ,UAAW,UACX,cAAe,aACf,WAAY,SAEd,SAAS+G,EAAU7F,EAAQzT,GACzB,OAAc,IAAVA,SACUtc,IAAVsc,IAAiC,IAAVA,EAAuBkb,EAAWzH,GACpDzT,EAAcmb,EAAU1H,IAAWzT,OAAvC,EACP,CAGA,SAASkb,EAAWzH,GAClB,IAAI2H,EACJ,GAAI9hC,MAAMiF,QAAQk1B,IAChB,IAAK,IAAIn5B,EAAE,EAAGA,EAAEm5B,EAAOh5B,OAAQH,IAE7B,GAAmB,iBADnB8gC,EAAO3H,EAAOn5B,MACkB4gC,EAAWE,GAAO,OAAO,OAG3D,IAAK,IAAItgC,KAAO24B,EAAQ,CACtB,GAAW,QAAP34B,EAAe,OAAO,EAE1B,GAAmB,iBADnBsgC,EAAO3H,EAAO34B,MACkBogC,EAAWE,GAAO,OAAO,CAC/D,CAEE,OAAO,CACT,CAGA,SAASD,EAAU1H,GACjB,IAAe2H,EAAX/3B,EAAQ,EACZ,GAAI/J,MAAMiF,QAAQk1B,IAChB,IAAK,IAAIn5B,EAAE,EAAGA,EAAEm5B,EAAOh5B,OAAQH,IAG7B,GADmB,iBADnB8gC,EAAO3H,EAAOn5B,MACe+I,GAAS83B,EAAUC,IAC5C/3B,GAASg4B,IAAU,OAAOA,SAGhC,IAAK,IAAIvgC,KAAO24B,EAAQ,CACtB,GAAW,QAAP34B,EAAe,OAAOugC,IAC1B,GAAIJ,EAAengC,GACjBuI,SAIA,GADmB,iBADnB+3B,EAAO3H,EAAO34B,MACeuI,GAAS83B,EAAUC,GAAQ,GACpD/3B,GAASg4B,IAAU,OAAOA,GAEtC,CAEE,OAAOh4B,CACT,CAGA,SAAS02B,EAAY76B,EAAIqvB,GAGvB,OAFkB,IAAdA,IAAqBrvB,EAAK+6B,EAAY/6B,IAEnC46B,EADCnB,EAAIpxB,MAAMrI,GAEpB,CAGA,SAAS46B,EAAavgC,GACpB,OAAOo/B,EAAI9K,UAAUt0B,GAAGsU,MAAM,KAAK,GAAK,GAC1C,CAGA,IAAIytB,EAAsB,QAC1B,SAASrB,EAAY/6B,GACnB,OAAOA,EAAKA,EAAG8S,QAAQspB,EAAqB,IAAM,EACpD,CAGA,SAASjB,EAAWX,EAAQx6B,GAE1B,OADAA,EAAK+6B,EAAY/6B,GACVy5B,EAAI38B,QAAQ09B,EAAQx6B,EAC7B,C,6CCjOA,IAAIlD,EAAUg3B,KAoBd,SAASuI,EAAgB7B,EAAQvmB,EAAKqoB,GACpCzhC,KAAKyhC,QAAUA,GAAWD,EAAgBC,QAAQ9B,EAAQvmB,GAC1DpZ,KAAK0hC,WAAaz/B,EAAQwO,IAAIkvB,EAAQvmB,GACtCpZ,KAAK2hC,cAAgB1/B,EAAQi+B,YAAYj+B,EAAQu+B,SAASxgC,KAAK0hC,YACjE,CAGA,SAASE,EAAcC,GAGrB,OAFAA,EAASpiC,UAAYL,OAAOc,OAAO4P,MAAMrQ,WACzCoiC,EAASpiC,UAAUQ,YAAc4hC,EAC1BA,CACT,C,OA7BAC,GAAiB,CACfC,WAAYH,EAKd,SAAyB1V,GACvBlsB,KAAKyhC,QAAU,oBACfzhC,KAAKksB,OAASA,EACdlsB,KAAKgiC,IAAMhiC,KAAKiiC,YAAa,CAC/B,GAREC,WAAYN,EAAcJ,IAW5BA,EAAgBC,QAAU,SAAU9B,EAAQvmB,GAC1C,MAAO,2BAA8BA,EAAM,YAAcumB,CAC3D,E,kCCjBAwC,GAAiB,SAAUn8B,EAAM81B,GACxBA,IAAMA,EAAO,IACE,mBAATA,IAAqBA,EAAO,CAAEsG,IAAKtG,IAC9C,IAEiCh5B,EAF7Bu/B,EAAiC,kBAAhBvG,EAAKuG,QAAwBvG,EAAKuG,OAEnDD,EAAMtG,EAAKsG,MAAkBt/B,EAQ9Bg5B,EAAKsG,IAPG,SAAUE,GACb,OAAO,SAAUjQ,EAAGlzB,GAChB,IAAIojC,EAAO,CAAExhC,IAAKsxB,EAAGjwB,MAAOkgC,EAAKjQ,IAC7BmQ,EAAO,CAAEzhC,IAAK5B,EAAGiD,MAAOkgC,EAAKnjC,IACjC,OAAO2D,EAAEy/B,EAAMC,EAC/B,CACA,GAGQC,EAAO,GACX,OAAO,SAAUn+B,EAAWg+B,GAKxB,GAJIA,GAAQA,EAAKI,QAAiC,mBAAhBJ,EAAKI,SACnCJ,EAAOA,EAAKI,eAGH/4B,IAAT24B,EAAJ,CACA,GAAmB,iBAARA,EAAkB,OAAOK,SAASL,GAAQ,GAAKA,EAAO,OACjE,GAAoB,iBAATA,EAAmB,OAAO39B,KAAKL,UAAUg+B,GAEpD,IAAI/hC,EAAG4tB,EACP,GAAI5uB,MAAMiF,QAAQ89B,GAAO,CAErB,IADAnU,EAAM,IACD5tB,EAAI,EAAGA,EAAI+hC,EAAK5hC,OAAQH,IACrBA,IAAG4tB,GAAO,KACdA,GAAO7pB,EAAUg+B,EAAK/hC,KAAO,OAEjC,OAAO4tB,EAAM,GACzB,CAEQ,GAAa,OAATmU,EAAe,MAAO,OAE1B,IAA2B,IAAvBG,EAAKp7B,QAAQi7B,GAAc,CAC3B,GAAID,EAAQ,OAAO19B,KAAKL,UAAU,aAClC,MAAM,IAAIzE,UAAU,wCAChC,CAEQ,IAAI+iC,EAAYH,EAAK5+B,KAAKy+B,GAAQ,EAC9Bz9B,EAAOzF,OAAOyF,KAAKy9B,GAAMxc,KAAKsc,GAAOA,EAAIE,IAE7C,IADAnU,EAAM,GACD5tB,EAAI,EAAGA,EAAIsE,EAAKnE,OAAQH,IAAK,CAC9B,IAAIQ,EAAM8D,EAAKtE,GACX6B,EAAQkC,EAAUg+B,EAAKvhC,IAEtBqB,IACD+rB,IAAKA,GAAO,KAChBA,GAAOxpB,KAAKL,UAAUvD,GAAO,IAAMqB,EAC/C,CAEQ,OADAqgC,EAAKrU,OAAOwU,EAAW,GAChB,IAAMzU,EAAM,GAjCK,CAkC3B,CAvCM,CAuCJnoB,EACP,G,kCCzDAe,GAAiB,SAA2B87B,EAAIC,EAAUC,GACxD,IAAI5U,EAAM,GACN6U,GAA8B,IAArBH,EAAGnJ,OAAOsJ,OACrBC,EAAeJ,EAAG3K,KAAK0B,qBAAqBiJ,EAAGnJ,OAAQmJ,EAAGK,MAAM7zB,IAAK,QACrE8zB,EAAMN,EAAG/B,KAAKb,OAAO4C,EAAGnJ,QAC1B,GAAImJ,EAAG/G,KAAKsH,eAAgB,CAC1B,IAAIC,EAAcR,EAAG3K,KAAK4B,mBAAmB+I,EAAGnJ,OAAQmJ,EAAGK,MAAMrG,UACjE,GAAIwG,EAAa,CACf,IAAIC,EAAe,oBAAsBD,EACzC,GAA+B,QAA3BR,EAAG/G,KAAKsH,eACP,MAAM,IAAItzB,MAAMwzB,GADiBT,EAAGU,OAAOvkB,KAAKskB,EAE3D,CACA,CAYE,GAXIT,EAAGW,QACLrV,GAAO,mBACH6U,IACFH,EAAGY,OAAQ,EACXtV,GAAO,UAETA,GAAO,sFACHgV,IAAQN,EAAG/G,KAAK4H,YAAcb,EAAG/G,KAAK6H,eACxCxV,GAAO,kBAA2BgV,EAA3B,SAGa,kBAAbN,EAAGnJ,SAAyBuJ,IAAgBJ,EAAGnJ,OAAOuH,KAAO,CAClE6B,EAAW,eAAf,IACIc,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UAEzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EACvB,IAAkB,IAAdf,EAAGnJ,OAAkB,CACnBmJ,EAAGW,MACLa,GAAgB,EAEhBlW,GAAO,QAAO,EAAc,cAE1BqW,EAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,6DAAiG0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,kBAC9J,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,0CAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,mDAAsD0U,EAAa,WAAI,YAAW,EAAa,KAExG1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,8EAEzC,MACU0U,EAAGW,MAEHrV,GADE6U,EACK,iBAEA,yCAGT7U,GAAO,QAAO,EAAc,YAMhC,OAHI0U,EAAGW,QACLrV,GAAO,yBAEFA,CACX,CACE,GAAI0U,EAAGW,MAAO,CACZ,IAAIsB,EAAOjC,EAAGW,MACZI,EAAOf,EAAGgB,MAAQ,EAClBC,EAAWjB,EAAGkB,UAAY,EAC1BtJ,EAAQ,OAKV,GAJAoI,EAAGkC,OAASlC,EAAG5gC,QAAQu+B,SAASqC,EAAG/B,KAAKb,OAAO4C,EAAG1D,KAAKzF,SACvDmJ,EAAGlD,OAASkD,EAAGlD,QAAUkD,EAAGkC,cACrBlC,EAAGW,MACVX,EAAGmC,YAAc,CAAC,SACQr7B,IAAtBk5B,EAAGnJ,OAAO5uB,SAAyB+3B,EAAG/G,KAAKmJ,aAAepC,EAAG/G,KAAKoJ,eAAgB,CACpF,IAAIC,EAAc,wCAClB,GAA+B,QAA3BtC,EAAG/G,KAAKoJ,eACP,MAAM,IAAIp1B,MAAMq1B,GADiBtC,EAAGU,OAAOvkB,KAAKmmB,EAE3D,CACIhX,GAAO,wBACPA,GAAO,wBACPA,GAAO,gDACX,KAAS,CACDyV,EAAOf,EAAGgB,MAEZpJ,EAAQ,SADRqJ,EAAWjB,EAAGkB,YACgB,IAEhC,GADIZ,IAAKN,EAAGlD,OAASkD,EAAG5gC,QAAQwO,IAAIoyB,EAAGlD,OAAQwD,IAC3CH,IAAWH,EAAGY,MAAO,MAAM,IAAI3zB,MAAM,+BACzCqe,GAAO,aAAY,EAAY,YACnC,CACMoW,EAAS,QAAUX,EACrBS,GAAiBxB,EAAG/G,KAAKwI,UAD3B,IAEEc,EAAkB,GAClBC,EAAkB,GAEhBC,EAAczC,EAAGnJ,OAAO30B,KAC1BwgC,EAAehmC,MAAMiF,QAAQ8gC,GAa/B,GAZIA,GAAezC,EAAG/G,KAAKnW,WAAmC,IAAvBkd,EAAGnJ,OAAO/T,WAC3C4f,GACiC,GAA/BD,EAAYj+B,QAAQ,UAAei+B,EAAcA,EAAYjhC,OAAO,SAChD,QAAfihC,IACTA,EAAc,CAACA,EAAa,QAC5BC,GAAe,IAGfA,GAAsC,GAAtBD,EAAY5kC,SAC9B4kC,EAAcA,EAAY,GAC1BC,GAAe,GAEb1C,EAAGnJ,OAAOuH,MAAQgC,EAAc,CAClC,GAA0B,QAAtBJ,EAAG/G,KAAK0J,WACV,MAAM,IAAI11B,MAAM,qDAAuD+yB,EAAGuB,cAAgB,8BAC1D,IAAvBvB,EAAG/G,KAAK0J,aACjBvC,GAAe,EACfJ,EAAGU,OAAOvkB,KAAK,6CAA+C6jB,EAAGuB,cAAgB,KAEvF,CAIE,GAHIvB,EAAGnJ,OAAO+L,UAAY5C,EAAG/G,KAAK2J,WAChCtX,GAAO,IAAO0U,EAAGK,MAAM7zB,IAAIo2B,SAASnN,KAAKuK,EAAI,aAE3CyC,EAAa,CACf,GAAIzC,EAAG/G,KAAK4J,YACV,IAAIC,EAAiB9C,EAAG3K,KAAKU,cAAciK,EAAG/G,KAAK4J,YAAaJ,GAElE,IAAIM,EAAc/C,EAAGK,MAAM3K,MAAM+M,GACjC,GAAIK,GAAkBJ,IAAgC,IAAhBK,GAAyBA,IAAgBC,EAAgBD,GAAe,CACxG3B,EAAcpB,EAAGqB,WAAa,QAChCC,EAAiBtB,EAAGuB,cAAgB,QAClCH,EAAcpB,EAAGqB,WAAa,QAChCC,EAAiBtB,EAAGuB,cAAgB,QAHtC,IAIE0B,EAAUP,EAAe,iBAAmB,gBAE9C,GADApX,GAAO,QAAW0U,EAAG3K,KAAK4N,GAASR,EAAa7K,EAAOoI,EAAG/G,KAAKlE,eAAe,GAAS,OACnF+N,EAAgB,CAClB,IAAII,EAAY,WAAanC,EAC3BoC,EAAW,UAAYpC,EACzBzV,GAAO,QAAO,EAAiB,aAAY,EAAa,SAAQ,EAAgB,iBACrD,SAAvB0U,EAAG/G,KAAK4J,cACVvX,GAAO,QAAO,EAAiB,iCAAkC,EAAa,QAAO,EAAa,mBAAkB,EAAa,MAAK,EAAa,QAAO,EAAiB,aAAY,EAAa,SAAY0U,EAAG3K,KAAKR,cAAcmL,EAAGnJ,OAAO30B,KAAM01B,EAAOoI,EAAG/G,KAAKlE,eAAkB,KAAI,EAAgB,MAAK,EAAa,QAE/TzJ,GAAO,QAAO,EAAgB,qBAC9B,IAAI8X,EAAON,EACX,GAAIM,EAGF,IAFA,IAAIC,EAAOC,GAAK,EACdC,EAAKH,EAAKvlC,OAAS,EACdylC,EAAKC,GAEG,WADbF,EAAQD,EAAKE,GAAM,IAEjBhY,GAAO,aAAY,EAAiB,mBAAoB,EAAiB,kBAAmB,EAAgB,WAAY,EAAa,cAAa,EAAa,cAAa,EAAgB,UAC1K,UAAT+X,GAA8B,WAATA,GAC9B/X,GAAO,aAAY,EAAiB,oBAAqB,EAAa,iBAAgB,EAAiB,mBAAoB,EAAa,OAAM,EAAa,QAAO,EAAa,IAClK,WAAT+X,IACF/X,GAAO,SAAQ,EAAa,SAE9BA,GAAO,MAAK,EAAgB,OAAM,EAAa,MAC7B,WAAT+X,EACT/X,GAAO,aAAY,EAAa,mBAAoB,EAAa,aAAY,EAAa,cAAa,EAAgB,sBAAqB,EAAa,kBAAmB,EAAa,WAAU,EAAgB,YACjM,QAAT+X,EACT/X,GAAO,aAAY,EAAa,cAAe,EAAa,aAAY,EAAa,eAAc,EAAgB,YACnF,SAAvB0U,EAAG/G,KAAK4J,aAAmC,SAATQ,IAC3C/X,GAAO,aAAY,EAAiB,mBAAoB,EAAiB,mBAAoB,EAAiB,oBAAqB,EAAa,aAAY,EAAgB,OAAM,EAAa,OAIrMA,GAAO,cACHqW,EAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,qDAAyF0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,uBAE7KhW,GADEoX,EACK,GAAMD,EAAY5gC,KAAK,KAEvB,GAAE,EAEXypB,GAAO,QACkB,IAArB0U,EAAG/G,KAAK4I,WACVvW,GAAO,0BAELA,GADEoX,EACK,GAAMD,EAAY5gC,KAAK,KAEvB,GAAE,EAEXypB,GAAO,MAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAELyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,UAAS,EAAgB,sBAChC,IAAIkY,EAAcvC,EAAW,QAAWA,EAAW,GAAM,IAAM,aAE/D3V,GAAO,IAAG,EAAa,MAAK,EAAgB,KACvC2V,IACH3V,GAAO,OAAM,EAAmB,mBAElCA,GAAO,IAAG,EAAmB,KALL2V,EAAWjB,EAAGmC,YAAYlB,GAAY,sBAKH,OAAM,EAAgB,MACzF,KAAa,EACDU,EAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,qDAAyF0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,uBAE7KhW,GADEoX,EACK,GAAMD,EAAY5gC,KAAK,KAEvB,GAAE,EAEXypB,GAAO,QACkB,IAArB0U,EAAG/G,KAAK4I,WACVvW,GAAO,0BAELA,GADEoX,EACK,GAAMD,EAAY5gC,KAAK,KAEvB,GAAE,EAEXypB,GAAO,MAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAELyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,8EAE3C,CACMA,GAAO,KACb,CACA,CACE,GAAI0U,EAAGnJ,OAAOuH,OAASgC,EACrB9U,GAAO,IAAO0U,EAAGK,MAAM7zB,IAAI4xB,KAAK3I,KAAKuK,EAAI,QAAW,IAChDwB,IACFlW,GAAO,qBAELA,GADE2W,EACK,IAEA,QAAO,EAEhB3W,GAAO,OACPkX,GAAmB,SAEhB,CACL,IAAIiB,EAAOzD,EAAGK,MACd,GAAIoD,EAGF,IAFA,IAAiBC,GAAK,EACpBC,EAAKF,EAAK5lC,OAAS,EACd6lC,EAAKC,GAEV,GAAIX,EADJD,EAAcU,EAAKC,GAAM,IACS,CAIhC,GAHIX,EAAY7gC,OACdopB,GAAO,QAAW0U,EAAG3K,KAAKR,cAAckO,EAAY7gC,KAAM01B,EAAOoI,EAAG/G,KAAKlE,eAAkB,QAEzFiL,EAAG/G,KAAKmJ,YACV,GAAwB,UAApBW,EAAY7gC,MAAoB89B,EAAGnJ,OAAOzb,WAAY,CACpD+lB,EAAUnB,EAAGnJ,OAAOzb,WAAxB,IAEIwoB,EADYrnC,OAAOyF,KAAKm/B,GAE5B,GAAIyC,EAGF,IAFA,IAAIC,EAAcC,GAAK,EACrBC,EAAKH,EAAK/lC,OAAS,EACdimC,EAAKC,GAAI,CAGd,QAAqBj9B,KADjBk9B,EAAO7C,EADX0C,EAAeD,EAAKE,GAAM,KAEjB77B,QAAuB,CAC9B,IAAIg8B,EAAYrM,EAAQoI,EAAG3K,KAAKa,YAAY2N,GAC5C,GAAI7D,EAAGgC,eACL,GAAIhC,EAAG/G,KAAKoJ,eAAgB,CACtBC,EAAc,2BAA6B2B,EAC/C,GAA+B,QAA3BjE,EAAG/G,KAAKoJ,eACP,MAAM,IAAIp1B,MAAMq1B,GADiBtC,EAAGU,OAAOvkB,KAAKmmB,EAE7E,OAEsBhX,GAAO,QAAO,EAAiB,kBACJ,SAAvB0U,EAAG/G,KAAKmJ,cACV9W,GAAO,OAAM,EAAiB,gBAAe,EAAiB,YAEhEA,GAAO,MAAK,EAAiB,MACF,UAAvB0U,EAAG/G,KAAKmJ,YACV9W,GAAO,IAAO0U,EAAGkE,WAAWF,EAAK/7B,SAAY,IAE7CqjB,GAAO,IAAOxpB,KAAKL,UAAUuiC,EAAK/7B,SAAY,IAEhDqjB,GAAO,IAE7B,CACA,CAEA,MAAmB,GAAwB,SAApByX,EAAY7gC,MAAmBxF,MAAMiF,QAAQq+B,EAAGnJ,OAAOuD,OAAQ,CACxE,IAAI+J,EAAOnE,EAAGnJ,OAAOuD,MACrB,GAAI+J,EACF,CAAUb,GAAK,EAEf,IAFA,IAAIU,EACFI,EAAKD,EAAKtmC,OAAS,EACdylC,EAAKc,GAEV,QAAqBt9B,KADrBk9B,EAAOG,EAAKb,GAAM,IACTr7B,QAAuB,CAC1Bg8B,EAAYrM,EAAQ,IAAM0L,EAAK,IACnC,GAAItD,EAAGgC,eACL,GAAIhC,EAAG/G,KAAKoJ,eAAgB,CACtBC,EAAc,2BAA6B2B,EAC/C,GAA+B,QAA3BjE,EAAG/G,KAAKoJ,eACP,MAAM,IAAIp1B,MAAMq1B,GADiBtC,EAAGU,OAAOvkB,KAAKmmB,EAE7E,OAEsBhX,GAAO,QAAO,EAAiB,kBACJ,SAAvB0U,EAAG/G,KAAKmJ,cACV9W,GAAO,OAAM,EAAiB,gBAAe,EAAiB,YAEhEA,GAAO,MAAK,EAAiB,MACF,UAAvB0U,EAAG/G,KAAKmJ,YACV9W,GAAO,IAAO0U,EAAGkE,WAAWF,EAAK/7B,SAAY,IAE7CqjB,GAAO,IAAOxpB,KAAKL,UAAUuiC,EAAK/7B,SAAY,IAEhDqjB,GAAO,IAE7B,CAxBsC,CA2BtC,CAEU,IAAI+Y,EAAOtB,EAAYjM,MACvB,GAAIuN,EAGF,IAFA,IAAIC,EAAOC,GAAK,EACdC,EAAKH,EAAKxmC,OAAS,EACd0mC,EAAKC,GAEV,GAAIC,EADJH,EAAQD,EAAKE,GAAM,IACQ,CACzB,IAAIG,EAAQJ,EAAM7O,KAAKuK,EAAIsE,EAAMK,QAAS5B,EAAY7gC,MAClDwiC,IACFpZ,GAAO,IAAG,EAAa,IACnBkW,IACFe,GAAmB,KAGvC,CAOU,GAJIf,IACFlW,GAAO,IAAG,EAAuB,IACjCiX,EAAkB,IAEhBQ,EAAY7gC,OACdopB,GAAO,MACHmX,GAAeA,IAAgBM,EAAY7gC,OAAS4gC,GAAgB,CACtExX,GAAO,WACP,IAEIqW,EAFAP,EAAcpB,EAAGqB,WAAa,QAChCC,EAAiBtB,EAAGuB,cAAgB,SAClCI,EAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,qDAAyF0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,uBAE7KhW,GADEoX,EACK,GAAMD,EAAY5gC,KAAK,KAEvB,GAAE,EAEXypB,GAAO,QACkB,IAArB0U,EAAG/G,KAAK4I,WACVvW,GAAO,0BAELA,GADEoX,EACK,GAAMD,EAAY5gC,KAAK,KAEvB,GAAE,EAEXypB,GAAO,MAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAELyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,KACrB,CAEckW,IACFlW,GAAO,mBAELA,GADE2W,EACK,IAEA,QAAO,EAEhB3W,GAAO,OACPkX,GAAmB,IAE/B,CAGA,CAiBE,SAASQ,EAAgBD,GAEvB,IADA,IAAIjM,EAAQiM,EAAYjM,MACfp5B,EAAI,EAAGA,EAAIo5B,EAAMj5B,OAAQH,IAChC,GAAI+mC,EAAe3N,EAAMp5B,IAAK,OAAO,CAC3C,CAEE,SAAS+mC,EAAeH,GACtB,YAAoCx9B,IAA7Bk5B,EAAGnJ,OAAOyN,EAAMK,UAA2BL,EAAMM,YAG1D,SAAoCN,GAElC,IADA,IAAIO,EAAOP,EAAMM,WACRlnC,EAAI,EAAGA,EAAImnC,EAAKhnC,OAAQH,IAC/B,QAA2BoJ,IAAvBk5B,EAAGnJ,OAAOgO,EAAKnnC,IAAmB,OAAO,CACnD,CAP0EonC,CAA2BR,EACrG,CAOE,OA/BI9C,IACFlW,GAAO,IAAG,EAAuB,KAE/B2W,GACE9B,GACF7U,GAAO,6CACPA,GAAO,+CAEPA,GAAO,+BACPA,GAAO,gCAETA,GAAO,wBAEPA,GAAO,QAAO,EAAc,sBAAqB,EAAY,IAkBxDA,CACT,G,sCC/dA,IAAIlsB,EAAUg3B,KACVf,EAAO2G,KACP+I,EAAe9I,KACf+I,EAAkB7I,KAElB8I,EAAoB7I,KAMpB/F,EAAahB,EAAKgB,WAClBxE,EAAQqT,KAGRC,EAAkBJ,EAAa7F,WAgTnC,SAASkG,EAAevO,EAAQyF,EAAMQ,GAEpC,IAAI3R,EAAQka,EAAUvoC,KAAKK,KAAM05B,EAAQyF,EAAMQ,GAC/C,OAAI3R,GAAS,EAAU,CAAEA,MAAOA,EAAOma,WAAW,IAClDna,EAAQhuB,KAAKooC,cAAc1nC,OAC3BV,KAAKooC,cAAcpa,GAAS,CAC1B0L,OAAQA,EACRyF,KAAMA,EACNQ,OAAQA,GAEH,CAAE3R,MAAOA,EAAOma,WAAW,GACpC,CAUA,SAASE,EAAa3O,EAAQyF,EAAMQ,GAElC,IAAIp/B,EAAI2nC,EAAUvoC,KAAKK,KAAM05B,EAAQyF,EAAMQ,GACvCp/B,GAAK,GAAGP,KAAKooC,cAAcha,OAAO7tB,EAAG,EAC3C,CAWA,SAAS2nC,EAAUxO,EAAQyF,EAAMQ,GAE/B,IAAK,IAAIp/B,EAAE,EAAGA,EAAEP,KAAKooC,cAAc1nC,OAAQH,IAAK,CAC9C,IAAIU,EAAIjB,KAAKooC,cAAc7nC,GAC3B,GAAIU,EAAEy4B,QAAUA,GAAUz4B,EAAEk+B,MAAQA,GAAQl+B,EAAE0+B,QAAUA,EAAQ,OAAOp/B,CAC3E,CACE,OAAO,CACT,CAGA,SAAS+nC,EAAY/nC,GACnB,MAAO,cAAgBA,EAAI,eAAiBA,EAAI,IAClD,CAGA,SAASgoC,EAAWhoC,EAAG6+B,GACrB,YAAqBz1B,IAAdy1B,EAAO7+B,GAAmB,GAAK,aAAeA,EAAI,aAAeA,EAAI,IAC9E,CAGA,SAASioC,EAAejoC,GACtB,MAAO,iBAAmBA,EAAI,kBAAoBA,EAAI,IACxD,CAGA,SAASkoC,EAAKlN,EAAKmN,GACjB,IAAKnN,EAAI76B,OAAQ,MAAO,GAExB,IADA,IAAI43B,EAAO,GACF/3B,EAAE,EAAGA,EAAEg7B,EAAI76B,OAAQH,IAC1B+3B,GAAQoQ,EAAUnoC,EAAGg7B,GACvB,OAAOjD,CACT,C,OAjXAqQ,GAYA,SAASzJ,EAAQxF,EAAQyF,EAAM0B,EAAWlB,GAGxC,IAAImB,EAAO9gC,KACP87B,EAAO97B,KAAKw/B,MACZJ,EAAS,MAAEz1B,GACXlC,EAAO,GACPmhC,EAAW,GACXC,EAAe,GACfC,EAAW,GACXC,EAAe,GACfC,EAAc,GAElB,SAASC,EAAY1oC,EAAGqoC,GAEtB,MAAO,cAAgBroC,EAAI,OADVu7B,EAAKoN,OAAS,SAAW,cACM,IAAMhR,EAAK6B,eAAe6O,EAASroC,IAAM,IAC7F,CAEE4+B,EAAOA,GAAQ,CAAEzF,OAAQA,EAAQ0F,OAAQA,EAAQ33B,KAAMA,GAEvD,IAAIxG,EAAIgnC,EAAetoC,KAAKK,KAAM05B,EAAQyF,EAAMQ,GAC5CwJ,EAAcnpC,KAAKooC,cAAcnnC,EAAE+sB,OACvC,GAAI/sB,EAAEknC,UAAW,OAAQgB,EAAYC,aAwBrC,SAASA,IAEP,IAAIriC,EAAWoiC,EAAYpiC,SACvBtE,EAASsE,EAASpG,MAAMX,KAAMS,WAElC,OADA2oC,EAAald,OAASnlB,EAASmlB,OACxBzpB,CACX,EA5BE,IAAI4mC,EAAUrpC,KAAKspC,SACfpG,EAAQljC,KAAKkjC,MAEjB,IACE,IAAIx/B,EAAI6lC,EAAa7P,EAAQyF,EAAM0B,EAAWlB,GAC9CwJ,EAAYpiC,SAAWrD,EACvB,IAAI8lC,EAAKL,EAAYC,aAUrB,OATII,IACFA,EAAG9P,OAASh2B,EAAEg2B,OACd8P,EAAGtd,OAAS,KACZsd,EAAG/hC,KAAO/D,EAAE+D,KACZ+hC,EAAGpK,OAAS17B,EAAE07B,OACdoK,EAAGrK,KAAOz7B,EAAEy7B,KACZqK,EAAGxG,OAASt/B,EAAEs/B,OACVlH,EAAK4H,aAAY8F,EAAGtgC,OAASxF,EAAEwF,SAE9BxF,CACX,CAAG,QACC2kC,EAAa1oC,KAAKK,KAAM05B,EAAQyF,EAAMQ,EAC1C,CAWE,SAAS4J,EAAap7B,EAASs7B,EAAO5I,EAAWlB,GAC/C,IAAI+J,GAAUD,GAAUA,GAASA,EAAM/P,QAAUvrB,EACjD,GAAIs7B,EAAM/P,QAAUyF,EAAKzF,OACvB,OAAOwF,EAAQv/B,KAAKmhC,EAAM3yB,EAASs7B,EAAO5I,EAAWlB,GAEvD,IAgCI54B,EAhCAi8B,GAA4B,IAAnB70B,EAAQ60B,OAEjBU,EAAaoE,EAAkB,CACjCtE,OAAO,EACP9J,OAAQvrB,EACRu7B,OAAQA,EACR/J,OAAQA,EACRR,KAAMsK,EACNvF,WAAY,GACZE,cAAe,IACfuF,UAAW,KACXnI,gBAAiBoG,EAAa1F,WAC9BgB,MAAOA,EACPn8B,SAAU+gC,EACV5P,KAAMA,EACNj2B,QAASA,EACT2nC,WAAYA,EACZC,WAAYA,EACZ9C,WAAYA,EACZ+C,cAAeA,EACfhO,KAAMA,EACNuN,QAASA,EACT9F,OAAQzC,EAAKyC,OACbzC,KAAMA,IAGR4C,EAAa+E,EAAKrJ,EAAQmJ,GAAcE,EAAKG,EAAUK,GACtCR,EAAKK,EAAUR,GAAeG,EAAKO,EAAaR,GAChD9E,EAEb5H,EAAK6H,cAAaD,EAAa5H,EAAK6H,YAAYD,EAAYv1B,IAGhE,IAgBEpH,EAfmB,IAAIgjC,SACrB,OACA,QACA,UACA,OACA,SACA,WACA,cACA,QACA,aACA,kBACA,SACArG,EAGSsG,CACTlJ,EACAoC,EACAmG,EACAlK,EACAC,EACA0J,EACAE,EACAtU,EACAwE,EACA8O,EACAlM,EAAKoN,QAGP9J,EAAO,GAAKr4B,CAClB,CAAM,MAAMxE,GAEN,MADAu+B,EAAKyC,OAAOjX,MAAM,yCAA0CoX,GACtDnhC,CACZ,CAgBI,OAdAwE,EAAS2yB,OAASvrB,EAClBpH,EAASmlB,OAAS,KAClBnlB,EAASU,KAAOA,EAChBV,EAASq4B,OAASA,EAClBr4B,EAASo4B,KAAOuK,EAAS3iC,EAAW0iC,EAChCzG,IAAQj8B,EAASi8B,QAAS,IACN,IAApBlH,EAAK4H,aACP38B,EAASmC,OAAS,CAChBovB,KAAMoL,EACNkF,SAAUA,EACVE,SAAUA,IAIP/hC,CACX,CAEE,SAAS6iC,EAAWjK,EAAQvmB,EAAKswB,GAC/BtwB,EAAMnX,EAAQwO,IAAIkvB,EAAQvmB,GAC1B,IACI6wB,EAASC,EADTC,EAAW1iC,EAAK2R,GAEpB,QAAiBzP,IAAbwgC,EAGF,OAAOC,EAFPH,EAAU7K,EAAO+K,GACjBD,EAAU,UAAYC,EAAW,KAGnC,IAAKT,GAAUvK,EAAK13B,KAAM,CACxB,IAAI4iC,EAAYlL,EAAK13B,KAAK2R,GAC1B,QAAkBzP,IAAd0gC,EAGF,OAAOD,EAFPH,EAAU9K,EAAKC,OAAOiL,GACtBH,EAAUI,EAAYlxB,EAAK6wB,GAGnC,CAEIC,EAAUI,EAAYlxB,GACtB,IAAI1V,EAAIzB,EAAQtC,KAAKmhC,EAAMyI,EAAcpK,EAAM/lB,GAC/C,QAAUzP,IAANjG,EAAiB,CACnB,IAAI6mC,EAAc1J,GAAaA,EAAUznB,GACrCmxB,IACF7mC,EAAIzB,EAAQs9B,UAAUgL,EAAazO,EAAK2D,YAClC8K,EACArL,EAAQv/B,KAAKmhC,EAAMyJ,EAAapL,EAAM0B,EAAWlB,GAE/D,CAEI,QAAUh2B,IAANjG,EAIF,OAeJ,SAAyB0V,EAAK1V,GAC5B,IAAI8mC,EAAQ/iC,EAAK2R,GACjBgmB,EAAOoL,GAAS9mC,CACpB,CAnBM+mC,CAAgBrxB,EAAK1V,GACd0mC,EAAY1mC,EAAGwmC,IAW1B,SAAwB9wB,UACf3R,EAAK2R,EAChB,CAhBMsxB,CAAetxB,EAKrB,CAEE,SAASkxB,EAAYlxB,EAAK1V,GACxB,IAAI8mC,EAAQpL,EAAO1+B,OAGnB,OAFA0+B,EAAOoL,GAAS9mC,EAChB+D,EAAK2R,GAAOoxB,EACL,SAAWA,CACtB,CAWE,SAASJ,EAAYhL,EAAQ9G,GAC3B,MAAwB,iBAAV8G,GAAuC,kBAAVA,EACjC,CAAE9G,KAAMA,EAAMoB,OAAQ0F,EAAQuL,QAAQ,GACtC,CAAErS,KAAMA,EAAM0K,OAAQ5D,KAAYA,EAAO4D,OACvD,CAEE,SAAS6G,EAAWe,GAClB,IAAI5c,EAAQ6a,EAAa+B,GAKzB,YAJcjhC,IAAVqkB,IACFA,EAAQ6a,EAAa+B,GAAYhC,EAASloC,OAC1CkoC,EAAS5a,GAAS4c,GAEb,UAAY5c,CACvB,CAEE,SAAS+Y,EAAW3kC,GAClB,cAAeA,GACb,IAAK,UACL,IAAK,SACH,MAAO,GAAKA,EACd,IAAK,SACH,OAAO81B,EAAK6B,eAAe33B,GAC7B,IAAK,SACH,GAAc,OAAVA,EAAgB,MAAO,OAC3B,IAAIyoC,EAAWhD,EAAgBzlC,GAC3B4rB,EAAQ+a,EAAa8B,GAKzB,YAJclhC,IAAVqkB,IACFA,EAAQ+a,EAAa8B,GAAY/B,EAASpoC,OAC1CooC,EAAS9a,GAAS5rB,GAEb,UAAY4rB,EAE3B,CAEE,SAAS8b,EAAcpkB,EAAMgU,EAAQ6C,EAAcsG,GACjD,IAAkC,IAA9B/B,EAAKtB,MAAMsL,eAA0B,CACvC,IAAIC,EAAOrlB,EAAKslB,WAAWrN,aAC3B,GAAIoN,IAASA,EAAKE,MAAM,SAASzD,GAC/B,OAAOpoC,OAAOK,UAAUC,eAAeC,KAAK48B,EAAciL,EAClE,GACQ,MAAM,IAAI13B,MAAM,kDAAoDi7B,EAAKrmC,KAAK,MAEhF,IAAIomC,EAAiBplB,EAAKslB,WAAWF,eACrC,GAAIA,EAEF,IADYA,EAAepR,GACf,CACV,IAAI+H,EAAU,8BAAgCX,EAAKoK,WAAWJ,EAAe5e,QAC7E,GAAiC,OAA7B4U,EAAKtB,MAAMsL,eACV,MAAM,IAAIh7B,MAAM2xB,GADmBX,EAAKyC,OAAOjX,MAAMmV,EAEpE,CAEA,CAEI,IAII16B,EAJAm4B,EAAUxZ,EAAKslB,WAAW9L,QAC1ByL,EAASjlB,EAAKslB,WAAWL,OACzBQ,EAAQzlB,EAAKslB,WAAWG,MAG5B,GAAIjM,EACFn4B,EAAWm4B,EAAQv/B,KAAKmhC,EAAMpH,EAAQ6C,EAAcsG,QAC/C,GAAIsI,EACTpkC,EAAWokC,EAAMxrC,KAAKmhC,EAAMpH,EAAQ6C,EAAcsG,IACtB,IAAxB/G,EAAKgP,gBAA0BhK,EAAKgK,eAAe/jC,GAAU,QAC5D,GAAI4jC,EACT5jC,EAAW4jC,EAAOhrC,KAAKmhC,EAAM+B,EAAInd,EAAK8hB,QAAS9N,EAAQ6C,QAGvD,KADAx1B,EAAW2e,EAAKslB,WAAWjkC,UACZ,OAGjB,QAAiB4C,IAAb5C,EACF,MAAM,IAAI+I,MAAM,mBAAqB4V,EAAK8hB,QAAU,sBAEtD,IAAIxZ,EAAQgb,EAAYtoC,OAGxB,OAFAsoC,EAAYhb,GAASjnB,EAEd,CACLuxB,KAAM,aAAetK,EACrBjnB,SAAUA,EAEhB,CACA,E,uOCrTAqkC,GAAiB,SAAyBvI,EAAIC,EAAUC,GACtD,IAUEsI,EAVEld,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UAEzB7J,EAAQ,QAAUqJ,GAAY,IAC9BwH,EAAUzI,EAAG/G,KAAKrB,OAASuJ,GAAWA,EAAQvJ,MAE9C6Q,GACFnd,GAAO,cAAa,EAAY,MAAS0U,EAAG3K,KAAKsC,QAAQwJ,EAAQvJ,MAAOqJ,EAAUjB,EAAGmC,aAAgB,KACrGqG,EAAe,SAAWzH,GAE1ByH,EAAerH,EAEjB,IAAIuH,EAAqB,WAAZzI,EACX0I,EAAoBD,EAAS,mBAAqB,mBAClDE,EAAc5I,EAAGnJ,OAAO8R,GACxBE,EAAc7I,EAAG/G,KAAKrB,OAASgR,GAAeA,EAAYhR,MAC1DkR,EAAMJ,EAAS,IAAM,IACrBK,EAASL,EAAS,IAAM,IACxBM,OAAgBliC,EAClB,IAAM2hC,GAA6B,iBAAXtH,QAAmCr6B,IAAZq6B,EAC7C,MAAM,IAAIl0B,MAAMgzB,EAAW,mBAE7B,IAAM4I,QAA+B/hC,IAAhB8hC,GAAmD,iBAAfA,GAAiD,kBAAfA,EACzF,MAAM,IAAI37B,MAAM07B,EAAoB,8BAEtC,GAAIE,EAAa,CACf,IAAII,EAAmBjJ,EAAG3K,KAAKsC,QAAQiR,EAAYhR,MAAOqJ,EAAUjB,EAAGmC,aACrE+G,EAAa,YAAcnI,EAC3BoI,EAAY,WAAapI,EACzBqI,EAAgB,eAAiBrI,EAEjCsI,EAAS,QADTC,EAAU,KAAOvI,GACY,OAC/BzV,GAAO,kBAAiB,EAAY,MAAK,EAAwB,KAEjEA,GAAO,QAAO,EAAkB,SAAQ,EAAiB,cADzD2d,EAAmB,aAAelI,GAC2D,SAAQ,EAAiB,oBAAqB,EAAiB,sBAAuB,EAAiB,mBACpM,IACIY,EADAqH,EAAgBL,GAChBhH,EAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,iBAAoB0d,GAAiB,mBAAqB,oCAA0ChJ,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,kBACjK,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,gBAAgB,EAAyB,wBAE9C0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,gBACHmd,IACFnd,GAAO,KAAI,EAAoB,4BAA2B,EAAoB,qBAEhFA,GAAO,IAAG,EAAiB,qBAAsB,EAAkB,MAAK,EAAoB,qBAAoB,EAAwB,IAAG,EAAW,KAAI,EAAoB,OAAM,EAAa,IAAG,EAAc,KAAI,EAAwB,MAAK,EAAa,IAAG,EAAc,IAAG,EAAoB,WAAU,EAAkB,MAAK,EAAwB,gBAAe,EAAa,IAAG,EAAc,KAAI,EAAoB,MAAK,EAAa,IAAG,EAAc,IAAG,EAAoB,SAAQ,EAAa,QAAO,EAAa,aAAY,EAAY,MAAK,EAAkB,OAAO,EAAW,QAAS,EAAW,YAC9kBxkB,IAAZq6B,IACF6H,EAAgBL,EAChBrH,EAAiBtB,EAAGuB,cAAgB,IAAMoH,EAC1CH,EAAeS,EACfR,EAAUI,EAEhB,KAAS,CAEHQ,EAASP,EACX,IAFIM,EAAsC,iBAAfR,IAENH,EAAS,CAC5B,IAAIa,EAAU,IAAOD,EAAS,IAC9B/d,GAAO,SACHmd,IACFnd,GAAO,KAAI,EAAoB,4BAA2B,EAAoB,qBAEhFA,GAAO,MAAK,EAAoB,qBAAoB,EAAmB,IAAG,EAAW,KAAI,EAAoB,MAAK,EAAa,IAAG,EAAc,KAAI,EAAmB,MAAK,EAAa,IAAG,EAAc,IAAG,EAAoB,SAAQ,EAAa,QAAO,EAAa,MAChR,KAAW,CACD8d,QAA6BtiC,IAAZq6B,GACnB+H,GAAa,EACbF,EAAgBL,EAChBrH,EAAiBtB,EAAGuB,cAAgB,IAAMoH,EAC1CH,EAAeI,EACfG,GAAU,MAENK,IAAeZ,EAAel8B,KAAKo8B,EAAS,MAAQ,OAAOE,EAAazH,IACxEyH,MAAiBQ,GAAgBZ,IACnCU,GAAa,EACbF,EAAgBL,EAChBrH,EAAiBtB,EAAGuB,cAAgB,IAAMoH,EAC1CI,GAAU,MAEVG,GAAa,EACbG,GAAU,MAGVC,EAAU,IAAOD,EAAS,IAC9B/d,GAAO,SACHmd,IACFnd,GAAO,KAAI,EAAoB,4BAA2B,EAAoB,qBAEhFA,GAAO,IAAG,EAAa,IAAG,EAAc,IAAG,EAAoB,OAAM,EAAa,QAAO,EAAa,MAC5G,CACA,CACE0d,EAAgBA,GAAiB/I,GAC7B0B,EAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,iBAAoB0d,GAAiB,UAAY,oCAA0ChJ,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,4BAA2B,EAAe,YAAW,EAAoB,gBAAe,EAAkB,OAClQ,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,0BAA0B,EAAc,IAE7CA,GADEmd,EACK,OAAO,EAEL,EAAoB,KAG7BzI,EAAG/G,KAAK6I,UACVxW,GAAO,eAELA,GADEmd,EACK,kBAAiB,EAEjB,GAAE,EAEXnd,GAAO,2CAA8C0U,EAAa,WAAI,YAAW,EAAa,KAEhG1U,GAAO,OAEPA,GAAO,OAELyW,EAAQzW,EAgBZ,OAfAA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,MACHkW,IACFlW,GAAO,YAEFA,CACT,G,kCCjKAie,GAAiB,SAA8BvJ,EAAIC,EAAUC,GAC3D,IAUEsI,EAVEld,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UAEzB7J,EAAQ,QAAUqJ,GAAY,IAC9BwH,EAAUzI,EAAG/G,KAAKrB,OAASuJ,GAAWA,EAAQvJ,MAQlD,GANI6Q,GACFnd,GAAO,cAAa,EAAY,MAAS0U,EAAG3K,KAAKsC,QAAQwJ,EAAQvJ,MAAOqJ,EAAUjB,EAAGmC,aAAgB,KACrGqG,EAAe,SAAWzH,GAE1ByH,EAAerH,GAEXsH,GAA6B,iBAAXtH,EACtB,MAAM,IAAIl0B,MAAMgzB,EAAW,mBAG7B3U,GAAO,QACHmd,IACFnd,GAAO,KAAI,EAAoB,4BAA2B,EAAoB,qBAEhFA,GAAO,IAAG,EAAa,YALD,YAAZ2U,EAAyB,IAAM,KAKG,IAAG,EAAoB,OACnE,IAAI+I,EAAgB/I,EAChB0B,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,iBAAoB0d,GAAiB,eAAiB,oCAA0ChJ,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,uBAAsB,EAAoB,OACvM,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,gCAELA,GADc,YAAZ2U,EACK,OAEA,QAET3U,GAAO,SAELA,GADEmd,EACK,OAAO,EAAoB,OAE3B,GAAE,EAEXnd,GAAO,YAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,eAELA,GADEmd,EACK,kBAAiB,EAEjB,GAAE,EAEXnd,GAAO,2CAA8C0U,EAAa,WAAI,YAAW,EAAa,KAEhG1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EAgBZ,OAfAA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,KACHkW,IACFlW,GAAO,YAEFA,CACT,G,kCC9EAke,GAAiB,SAA+BxJ,EAAIC,EAAUC,GAC5D,IAUEsI,EAVEld,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UAEzB7J,EAAQ,QAAUqJ,GAAY,IAC9BwH,EAAUzI,EAAG/G,KAAKrB,OAASuJ,GAAWA,EAAQvJ,MAQlD,GANI6Q,GACFnd,GAAO,cAAa,EAAY,MAAS0U,EAAG3K,KAAKsC,QAAQwJ,EAAQvJ,MAAOqJ,EAAUjB,EAAGmC,aAAgB,KACrGqG,EAAe,SAAWzH,GAE1ByH,EAAerH,GAEXsH,GAA6B,iBAAXtH,EACtB,MAAM,IAAIl0B,MAAMgzB,EAAW,mBAE7B,IAAI6I,EAAkB,aAAZ7I,EAA0B,IAAM,IAC1C3U,GAAO,QACHmd,IACFnd,GAAO,KAAI,EAAoB,4BAA2B,EAAoB,sBAExD,IAApB0U,EAAG/G,KAAKwQ,QACVne,GAAO,IAAG,EAAa,WAEvBA,GAAO,eAAc,EAAa,KAEpCA,GAAO,IAAG,EAAW,IAAG,EAAoB,OAC5C,IAAI0d,EAAgB/I,EAChB0B,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,iBAAoB0d,GAAiB,gBAAkB,oCAA0ChJ,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,uBAAsB,EAAoB,OACxM,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,8BAELA,GADc,aAAZ2U,EACK,SAEA,UAET3U,GAAO,SAELA,GADEmd,EACK,OAAO,EAAoB,OAE3B,GAAE,EAEXnd,GAAO,iBAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,eAELA,GADEmd,EACK,kBAAiB,EAEjB,GAAE,EAEXnd,GAAO,2CAA8C0U,EAAa,WAAI,YAAW,EAAa,KAEhG1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EAgBZ,OAfAA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,KACHkW,IACFlW,GAAO,YAEFA,CACT,G,kCCnFAoe,GAAiB,SAAmC1J,EAAIC,EAAUC,GAChE,IAUEsI,EAVEld,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UAEzB7J,EAAQ,QAAUqJ,GAAY,IAC9BwH,EAAUzI,EAAG/G,KAAKrB,OAASuJ,GAAWA,EAAQvJ,MAQlD,GANI6Q,GACFnd,GAAO,cAAa,EAAY,MAAS0U,EAAG3K,KAAKsC,QAAQwJ,EAAQvJ,MAAOqJ,EAAUjB,EAAGmC,aAAgB,KACrGqG,EAAe,SAAWzH,GAE1ByH,EAAerH,GAEXsH,GAA6B,iBAAXtH,EACtB,MAAM,IAAIl0B,MAAMgzB,EAAW,mBAG7B3U,GAAO,QACHmd,IACFnd,GAAO,KAAI,EAAoB,4BAA2B,EAAoB,qBAEhFA,GAAO,gBAAe,EAAa,aALb,iBAAZ2U,EAA8B,IAAM,KAKW,IAAG,EAAoB,OAChF,IAAI+I,EAAgB/I,EAChB0B,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,iBAAoB0d,GAAiB,oBAAsB,oCAA0ChJ,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,uBAAsB,EAAoB,OAC5M,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,gCAELA,GADc,iBAAZ2U,EACK,OAEA,QAET3U,GAAO,SAELA,GADEmd,EACK,OAAO,EAAoB,OAE3B,GAAE,EAEXnd,GAAO,iBAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,eAELA,GADEmd,EACK,kBAAiB,EAEjB,GAAE,EAEXnd,GAAO,2CAA8C0U,EAAa,WAAI,YAAW,EAAa,KAEhG1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EAgBZ,OAfAA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,KACHkW,IACFlW,GAAO,YAEFA,CACT,G,sCC7EA,IAAIqe,G,UCCJC,GAAiB,CACfxL,M,UCHF7nB,GAAiB,SAAsBypB,EAAIC,EAAUC,GACnD,IAQIC,EAAQ0J,EARRve,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EAEvB,GAAe,KAAXI,GAA6B,MAAXA,EAChBnB,EAAG6G,QACL1G,EAASH,EAAGY,MACZiJ,EAAW,aAEX1J,GAAmC,IAA1BH,EAAG1D,KAAKzF,OAAOsJ,OACxB0J,EAAW,sBAER,CACL,IAAIC,EAAU9J,EAAG+G,WAAW/G,EAAGlD,OAAQqE,EAASnB,EAAG6G,QACnD,QAAgB//B,IAAZgjC,EAAuB,CACzB,IAAIC,EAAW/J,EAAGrB,gBAAgBC,QAAQoB,EAAGlD,OAAQqE,GACrD,GAA2B,QAAvBnB,EAAG/G,KAAK+Q,YAAuB,CACjChK,EAAGU,OAAOjX,MAAMsgB,IACZpI,EAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,qDAAwE0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,sBAA0BtB,EAAG3K,KAAKc,aAAagL,GAAY,QAChM,IAArBnB,EAAG/G,KAAK4I,WACVvW,GAAO,0CAA+C0U,EAAG3K,KAAKc,aAAagL,GAAY,MAErFnB,EAAG/G,KAAK6I,UACVxW,GAAO,cAAiB0U,EAAG3K,KAAK6B,eAAeiK,GAAY,mCAAsCnB,EAAa,WAAI,YAAW,EAAa,KAE5I1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAE/BkW,IACFlW,GAAO,iBAEjB,KAAa,IAA2B,UAAvB0U,EAAG/G,KAAK+Q,YAMjB,MAAM,IAAIhK,EAAGrB,gBAAgBqB,EAAGlD,OAAQqE,EAAS4I,GALjD/J,EAAGU,OAAOvkB,KAAK4tB,GACXvI,IACFlW,GAAO,gBAIjB,CACA,MAAW,GAAIwe,EAAQhC,OAAQ,CACzB,IAAImC,EAAMjK,EAAG3K,KAAKC,KAAK0K,GACvBiK,EAAIjJ,QACJ,IAAIkJ,EAAa,QAAUD,EAAIjJ,MAC/BiJ,EAAIpT,OAASiT,EAAQjT,OACrBoT,EAAI5I,WAAa,GACjB4I,EAAI1I,cAAgBJ,EAEpB7V,GAAO,IADK0U,EAAG97B,SAAS+lC,GAAK70B,QAAQ,oBAAqB00B,EAAQrU,MAC3C,IACnB+L,IACFlW,GAAO,QAAO,EAAkB,OAExC,MACM6U,GAA4B,IAAnB2J,EAAQ3J,QAAoBH,EAAGY,QAA4B,IAAnBkJ,EAAQ3J,OACzD0J,EAAWC,EAAQrU,IAEzB,CACE,GAAIoU,EAAU,CACZ,IAAIlI,KAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,GACF0U,EAAG/G,KAAKkR,YACV7e,GAAO,IAAG,EAAgB,eAE1BA,GAAO,IAAG,EAAgB,KAE5BA,GAAO,IAAG,EAAa,qBACH,MAAhB0U,EAAG8G,YACLxb,GAAO,MAAS0U,EAAY,WAK9B,IAAIoK,EADJ9e,GAAO,OAFW2V,EAAW,QAAWA,EAAW,GAAM,IAAM,cAEhC,OADPA,EAAWjB,EAAGmC,YAAYlB,GAAY,sBACC,gBAG/D,GADA3V,EAAMqW,EAAW5gC,MACbo/B,EAAQ,CACV,IAAKH,EAAGY,MAAO,MAAM,IAAI3zB,MAAM,0CAC3Bu0B,IACFlW,GAAO,QAAO,EAAc,MAE9BA,GAAO,gBAAe,EAAsB,KACxCkW,IACFlW,GAAO,IAAG,EAAc,aAE1BA,GAAO,4KACHkW,IACFlW,GAAO,IAAG,EAAc,cAE1BA,GAAO,MACHkW,IACFlW,GAAO,QAAO,EAAc,OAEpC,MACMA,GAAO,SAAQ,EAAsB,uCAAsC,EAAgB,0CAAyC,EAAgB,wCAChJkW,IACFlW,GAAO,WAGf,CACE,OAAOA,CACT,G,IDtHEmP,O,UEJFA,GAAiB,SAAwBuF,EAAIC,EAAUC,GACrD,IAAI5U,EAAM,IACN6V,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzBwI,EAAMjK,EAAG3K,KAAKC,KAAK0K,GACnBqK,EAAiB,GACrBJ,EAAIjJ,QACJ,IAAIkJ,EAAa,QAAUD,EAAIjJ,MAC3BsJ,EAAiBL,EAAInN,OACvByN,GAAmB,EACjBnH,EAAOjC,EACX,GAAIiC,EAGF,IAFA,IAAIY,EAAMV,GAAK,EACbC,EAAKH,EAAKvlC,OAAS,EACdylC,EAAKC,GACVS,EAAOZ,EAAKE,GAAM,IACbtD,EAAG/G,KAAKsH,eAAiC,iBAARyD,GAAoBznC,OAAOyF,KAAKgiC,GAAMnmC,OAAS,IAAe,IAATmmC,EAAiBhE,EAAG3K,KAAKuB,eAAeoN,EAAMhE,EAAGK,MAAM7zB,QAChJ+9B,GAAmB,EACnBN,EAAIpT,OAASmN,EACbiG,EAAI5I,WAAaD,EAAc,IAAMkC,EAAK,IAC1C2G,EAAI1I,cAAgBD,EAAiB,IAAMgC,EAC3ChY,GAAO,KAAQ0U,EAAG97B,SAAS+lC,GAAQ,IACnCA,EAAInN,OAASwN,EACT9I,IACFlW,GAAO,QAAO,EAAkB,OAChC+e,GAAkB,MAY1B,OAPI7I,IAEAlW,GADEif,EACK,gBAEA,IAAOF,EAAe9oC,MAAM,GAAG,GAAO,KAG1C+pB,CACT,G,IFnCEoP,O,UGLFA,GAAiB,SAAwBsF,EAAIC,EAAUC,GACrD,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EACnByJ,EAAQ,SAAWzJ,EACnBkJ,EAAMjK,EAAG3K,KAAKC,KAAK0K,GACnBqK,EAAiB,GACrBJ,EAAIjJ,QACJ,IAAIkJ,EAAa,QAAUD,EAAIjJ,MAC3ByJ,EAAiBtJ,EAAQiH,MAAM,SAASpE,GAC1C,OAAQhE,EAAG/G,KAAKsH,eAAiC,iBAARyD,GAAoBznC,OAAOyF,KAAKgiC,GAAMnmC,OAAS,IAAe,IAATmmC,EAAiBhE,EAAG3K,KAAKuB,eAAeoN,EAAMhE,EAAGK,MAAM7zB,IACzJ,GACE,GAAIi+B,EAAgB,CAClB,IAAIH,EAAiBL,EAAInN,OACzBxR,GAAO,QAAO,EAAa,kBAAiB,EAAc,cAC1D,IAAIof,EAAgB1K,EAAGgC,cACvBhC,EAAGgC,cAAgBiI,EAAIjI,eAAgB,EACvC,IAAIoB,EAAOjC,EACX,GAAIiC,EAGF,IAFA,IAAIY,EAAMV,GAAK,EACbC,EAAKH,EAAKvlC,OAAS,EACdylC,EAAKC,GACVS,EAAOZ,EAAKE,GAAM,GAClB2G,EAAIpT,OAASmN,EACbiG,EAAI5I,WAAaD,EAAc,IAAMkC,EAAK,IAC1C2G,EAAI1I,cAAgBD,EAAiB,IAAMgC,EAC3ChY,GAAO,KAAQ0U,EAAG97B,SAAS+lC,GAAQ,IACnCA,EAAInN,OAASwN,EACbhf,GAAO,IAAG,EAAc,MAAK,EAAc,OAAM,EAAkB,UAAS,EAAc,OAC1F+e,GAAkB,IAGtBrK,EAAGgC,cAAgBiI,EAAIjI,cAAgB0I,EACvCpf,GAAO,IAAG,EAAsB,SAAQ,EAAc,sBAC9B,IAApB0U,EAAG4B,cACLtW,GAAO,sDAAyE0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,kBACtI,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,oDAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACF0U,EAAGgC,eAAiBR,IAEnBxB,EAAGY,MACLtV,GAAO,wCAEPA,GAAO,8CAGXA,GAAO,uBAAsB,EAAa,iCAAgC,EAAa,sBAAqB,EAAa,4BACrH0U,EAAG/G,KAAKwI,YACVnW,GAAO,MAEb,MACQkW,IACFlW,GAAO,iBAGX,OAAOA,CACT,G,IHjEEsX,U,UINF+H,GAAiB,SAA0B3K,EAAIC,EAAUC,GACvD,IAAI5U,EAAM,IACN6V,EAAUnB,EAAGnJ,OAAOoJ,GACpBqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EACzBD,EAAG/G,KAAKwI,UAC7B,IAAImB,EAAW5C,EAAG3K,KAAK6B,eAAeiK,GAMtC,OALyB,IAArBnB,EAAG/G,KAAK2J,SACVtX,GAAO,gBAAe,EAAgB,KACF,mBAApB0U,EAAG/G,KAAK2J,WACxBtX,GAAO,wBAAuB,EAAgB,KAAQ0U,EAAG3K,KAAK6B,eAAeoK,GAAmB,4BAE3FhW,CACT,G,IJLE0P,O,UKPF4P,GAAiB,SAAwB5K,EAAIC,EAAUC,GACrD,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EACnB0H,EAAUzI,EAAG/G,KAAKrB,OAASuJ,GAAWA,EAAQvJ,MAE9C6Q,IACFnd,GAAO,cAAa,EAAY,MAAS0U,EAAG3K,KAAKsC,QAAQwJ,EAAQvJ,MAAOqJ,EAAUjB,EAAGmC,aAAgB,MAKlGsG,IACHnd,GAAO,cAAa,EAAY,qBAAoB,EAAmB,KAEzEA,GAAO,OAAM,EAAc,YAAW,EAAa,WAAU,EAAY,WAAU,EAAc,SACjG,IAAIqW,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,sDAAyE0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,oCAAmC,EAAY,OACrL,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,8CAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EAgBZ,OAfAA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,KACHkW,IACFlW,GAAO,YAEFA,CACT,G,IL9CE+O,U,UMRFA,GAAiB,SAA2B2F,EAAIC,EAAUC,GACxD,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EACnByJ,EAAQ,SAAWzJ,EACnBkJ,EAAMjK,EAAG3K,KAAKC,KAAK0K,GAEvBiK,EAAIjJ,QACJ,IAAIkJ,EAAa,QAAUD,EAAIjJ,MAC3B6J,EAAO,IAAM9J,EACf+J,EAAWb,EAAI/I,UAAYlB,EAAGkB,UAAY,EAC1C6J,EAAY,OAASD,EACrBR,EAAiBtK,EAAGlD,OACpBkO,EAAmBhL,EAAG/G,KAAKsH,eAAoC,iBAAXY,GAAuB5kC,OAAOyF,KAAKm/B,GAAStjC,OAAS,IAAkB,IAAZsjC,EAAoBnB,EAAG3K,KAAKuB,eAAeuK,EAASnB,EAAGK,MAAM7zB,KAE9K,GADA8e,GAAO,OAAM,EAAa,iBAAgB,EAAc,IACpD0f,EAAiB,CACnB,IAAIN,EAAgB1K,EAAGgC,cACvBhC,EAAGgC,cAAgBiI,EAAIjI,eAAgB,EACvCiI,EAAIpT,OAASsK,EACb8I,EAAI5I,WAAaD,EACjB6I,EAAI1I,cAAgBD,EACpBhW,GAAO,QAAO,EAAkB,sBAAqB,EAAY,SAAQ,EAAY,MAAK,EAAa,YAAW,EAAY,SAC9H2e,EAAInD,UAAY9G,EAAG3K,KAAK8B,YAAY6I,EAAG8G,UAAW+D,EAAM7K,EAAG/G,KAAK5B,cAAc,GAC9E,IAAI4M,EAAYrM,EAAQ,IAAMiT,EAAO,IACrCZ,EAAI9H,YAAY2I,GAAYD,EAC5B,IAAInG,EAAQ1E,EAAG97B,SAAS+lC,GACxBA,EAAInN,OAASwN,EACTtK,EAAG3K,KAAKmB,cAAckO,EAAOqG,GAAa,EAC5Czf,GAAO,IAAO0U,EAAG3K,KAAKqB,WAAWgO,EAAOqG,EAAW9G,GAAc,IAEjE3Y,GAAO,QAAO,EAAiB,MAAK,EAAiB,KAAI,EAAa,IAExEA,GAAO,QAAO,EAAkB,eAChC0U,EAAGgC,cAAgBiI,EAAIjI,cAAgB0I,EACvCpf,GAAO,UAAiC,EAAkB,KAC9D,MACIA,GAAO,QAAO,EAAa,kBAE7B,IAAIqW,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,yDAA4E0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,kBACzI,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,8CAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EAmBZ,OAlBAA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,aACH0f,IACF1f,GAAO,cAAa,EAAa,iCAAgC,EAAa,sBAAqB,EAAa,6BAE9G0U,EAAG/G,KAAKwI,YACVnW,GAAO,OAEFA,CACT,G,INtEEwP,c,UOTFA,GAAiB,SAA+BkF,EAAIC,EAAUC,GAC5D,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BuJ,EAAQ,SAAWzJ,EACnBkJ,EAAMjK,EAAG3K,KAAKC,KAAK0K,GACnBqK,EAAiB,GACrBJ,EAAIjJ,QACJ,IAAIkJ,EAAa,QAAUD,EAAIjJ,MAC3BiK,EAAc,GAChBC,EAAgB,GAChBC,EAAiBnL,EAAG/G,KAAKmS,cAC3B,IAAKC,KAAalK,EAChB,GAAiB,aAAbkK,EAAJ,CACA,IAAIrH,EAAO7C,EAAQkK,GACfC,EAAQ5uC,MAAMiF,QAAQqiC,GAAQkH,EAAgBD,EAClDK,EAAMD,GAAarH,CAHW,CAKhC1Y,GAAO,OAAM,EAAa,aAC1B,IAAIigB,EAAoBvL,EAAG8G,UAE3B,IAAK,IAAIuE,KADT/f,GAAO,cAAa,EAAY,IACV4f,EAEpB,IADAI,EAAQJ,EAAcG,IACZxtC,OAAQ,CAKhB,GAJAytB,GAAO,SAAQ,EAAc0U,EAAG3K,KAAKa,YAAYmV,GAAc,kBAC3DF,IACF7f,GAAO,4CAA2C,EAAa,MAAU0U,EAAG3K,KAAKc,aAAakV,GAAc,OAE1G7J,EAAe,CACjBlW,GAAO,SACP,IAAI8X,EAAOkI,EACX,GAAIlI,EAGF,IAFA,IAAkBE,GAAK,EACrBC,EAAKH,EAAKvlC,OAAS,EACdylC,EAAKC,GACVM,EAAeT,EAAKE,GAAM,GACtBA,IACFhY,GAAO,QAITA,GAAO,SADLkgB,EAAW5T,GADT6T,EAAQzL,EAAG3K,KAAKa,YAAY2N,KAEF,kBAC1BsH,IACF7f,GAAO,8CAA6C,EAAa,MAAU0U,EAAG3K,KAAKc,aAAa0N,GAAiB,OAEnHvY,GAAO,gBAAe,EAAY,MAAS0U,EAAG3K,KAAK6B,eAAe8I,EAAG/G,KAAK5B,aAAewM,EAAe4H,GAAU,OAGtHngB,GAAO,SACP,IAAIogB,EAAgB,UAAY3K,EAC9B4K,EAAmB,OAAUD,EAAgB,OAC3C1L,EAAG/G,KAAK2S,yBACV5L,EAAG8G,UAAY9G,EAAG/G,KAAK5B,aAAe2I,EAAG3K,KAAK8B,YAAYoU,EAAmBG,GAAe,GAAQH,EAAoB,MAAQG,GAElI,IAAI/J,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,6DAAgF0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,2BAA+BtB,EAAG3K,KAAKc,aAAakV,GAAc,wBAAyB,EAAwB,iBAAqBC,EAAY,OAAI,YAAgBtL,EAAG3K,KAAKc,aAA6B,GAAhBmV,EAAMztC,OAAcytC,EAAM,GAAKA,EAAMzpC,KAAK,OAAU,QAC9X,IAArBm+B,EAAG/G,KAAK4I,WACVvW,GAAO,4BACa,GAAhBggB,EAAMztC,OACRytB,GAAO,YAAe0U,EAAG3K,KAAKc,aAAamV,EAAM,IAEjDhgB,GAAO,cAAiB0U,EAAG3K,KAAKc,aAAamV,EAAMzpC,KAAK,OAE1DypB,GAAO,kBAAqB0U,EAAG3K,KAAKc,aAAakV,GAAc,iBAE7DrL,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,8EAE3C,KAAa,CACLA,GAAO,QACP,IAAImY,EAAO6H,EACX,GAAI7H,EAGF,IAFA,IAAII,EAAcH,GAAK,EACrBC,EAAKF,EAAK5lC,OAAS,EACd6lC,EAAKC,GAAI,CACdE,EAAeJ,EAAKC,GAAM,GAC1B,IAAI+H,EAAQzL,EAAG3K,KAAKa,YAAY2N,GAE9B2H,GADAG,EAAmB3L,EAAG3K,KAAKc,aAAa0N,GAC7BjM,EAAQ6T,GACjBzL,EAAG/G,KAAK2S,yBACV5L,EAAG8G,UAAY9G,EAAG3K,KAAKmC,QAAQ+T,EAAmB1H,EAAc7D,EAAG/G,KAAK5B,eAE1E/L,GAAO,SAAQ,EAAgB,kBAC3B6f,IACF7f,GAAO,8CAA6C,EAAa,MAAU0U,EAAG3K,KAAKc,aAAa0N,GAAiB,OAEnHvY,GAAO,qBACiB,IAApB0U,EAAG4B,cACLtW,GAAO,6DAAgF0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,2BAA+BtB,EAAG3K,KAAKc,aAAakV,GAAc,wBAAyB,EAAwB,iBAAqBC,EAAY,OAAI,YAAgBtL,EAAG3K,KAAKc,aAA6B,GAAhBmV,EAAMztC,OAAcytC,EAAM,GAAKA,EAAMzpC,KAAK,OAAU,QAC9X,IAArBm+B,EAAG/G,KAAK4I,WACVvW,GAAO,4BACa,GAAhBggB,EAAMztC,OACRytB,GAAO,YAAe0U,EAAG3K,KAAKc,aAAamV,EAAM,IAEjDhgB,GAAO,cAAiB0U,EAAG3K,KAAKc,aAAamV,EAAMzpC,KAAK,OAE1DypB,GAAO,kBAAqB0U,EAAG3K,KAAKc,aAAakV,GAAc,iBAE7DrL,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACnB,CAEA,CACMA,GAAO,QACHkW,IACF6I,GAAkB,IAClB/e,GAAO,WAEf,CAEE0U,EAAG8G,UAAYyE,EACf,IAAIjB,EAAiBL,EAAInN,OACzB,IAAK,IAAIuO,KAAaJ,EAChBjH,EAAOiH,EAAYI,IAClBrL,EAAG/G,KAAKsH,eAAiC,iBAARyD,GAAoBznC,OAAOyF,KAAKgiC,GAAMnmC,OAAS,IAAe,IAATmmC,EAAiBhE,EAAG3K,KAAKuB,eAAeoN,EAAMhE,EAAGK,MAAM7zB,QAChJ8e,GAAO,IAAG,EAAkB,iBAAgB,EAAc0U,EAAG3K,KAAKa,YAAYmV,GAAc,kBACxFF,IACF7f,GAAO,4CAA2C,EAAa,MAAU0U,EAAG3K,KAAKc,aAAakV,GAAc,OAE9G/f,GAAO,OACP2e,EAAIpT,OAASmN,EACbiG,EAAI5I,WAAaD,EAAcpB,EAAG3K,KAAKa,YAAYmV,GACnDpB,EAAI1I,cAAgBD,EAAiB,IAAMtB,EAAG3K,KAAKmD,eAAe6S,GAClE/f,GAAO,KAAQ0U,EAAG97B,SAAS+lC,GAAQ,IACnCA,EAAInN,OAASwN,EACbhf,GAAO,OACHkW,IACFlW,GAAO,QAAO,EAAkB,OAChC+e,GAAkB,MAOxB,OAHI7I,IACFlW,GAAO,MAAK,EAAsB,QAAO,EAAa,iBAEjDA,CACT,G,IP5JEyP,M,UQVF8Q,GAAiB,SAAuB7L,EAAIC,EAAUC,GACpD,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EACnB0H,EAAUzI,EAAG/G,KAAKrB,OAASuJ,GAAWA,EAAQvJ,MAE9C6Q,IACFnd,GAAO,cAAa,EAAY,MAAS0U,EAAG3K,KAAKsC,QAAQwJ,EAAQvJ,MAAOqJ,EAAUjB,EAAGmC,aAAgB,MAKvG,IAAImB,EAAK,IAAMvC,EACb+K,EAAW,SAAW/K,EACnB0H,IACHnd,GAAO,QAAO,EAAgB,qBAAoB,EAAmB,KAEvEA,GAAO,OAAM,EAAc,IACvBmd,IACFnd,GAAO,cAAa,EAAY,mBAAkB,EAAc,0CAAyC,EAAY,MAAK,EAAc,oBAE1IA,GAAS,EAAc,qBAAoB,EAAU,OAAM,EAAU,IAAG,EAAgB,YAAW,EAAU,iBAAgB,EAAa,KAAI,EAAgB,IAAG,EAAU,SAAQ,EAAc,oBAC7Lmd,IACFnd,GAAO,SAETA,GAAO,SAAQ,EAAc,SAC7B,IAAIqW,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,qDAAwE0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,qCAAoC,EAAY,OACrL,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,+DAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EAgBZ,OAfAA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,KACHkW,IACFlW,GAAO,YAEFA,CACT,G,IRrDEjhB,Q,USXFA,GAAiB,SAAyB21B,EAAIC,EAAUC,GACtD,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAClC,IAAuB,IAAnBjB,EAAG/G,KAAK5uB,OAIV,OAHIm3B,IACFlW,GAAO,iBAEFA,EAET,IACEkd,EADEC,EAAUzI,EAAG/G,KAAKrB,OAASuJ,GAAWA,EAAQvJ,MAE9C6Q,GACFnd,GAAO,cAAa,EAAY,MAAS0U,EAAG3K,KAAKsC,QAAQwJ,EAAQvJ,MAAOqJ,EAAUjB,EAAGmC,aAAgB,KACrGqG,EAAe,SAAWzH,GAE1ByH,EAAerH,EAEjB,IAAI4K,EAAkB/L,EAAG/G,KAAK+S,eAC5BC,EAAgBvvC,MAAMiF,QAAQoqC,GAChC,GAAItD,EAIFnd,GAAO,SAHH4gB,EAAU,SAAWnL,GAGI,cAAa,EAAoB,WAF5DoL,EAAY,WAAapL,GAE6D,aAAY,EAAe,qBAAsB,EAAe,0BAAyB,EAAe,mBAD9LqL,EAAc,aAAerL,GACqM,MAAK,EAAiB,OAAM,EAAe,0BAA2B,EAAiB,OACvTf,EAAGY,QACLtV,GAAO,aAAY,EAAY,MAAK,EAAe,YAErDA,GAAO,IAAG,EAAe,MAAK,EAAe,sBACzCmd,IACFnd,GAAO,KAAI,EAAoB,4BAA2B,EAAoB,qBAEhFA,GAAO,KACgB,UAAnBygB,IACFzgB,GAAO,KAAI,EAAoB,QAAO,EAAe,IACjD2gB,IACF3gB,GAAO,yCAAwC,EAAoB,YAErEA,GAAO,SAETA,GAAO,KAAI,EAAe,OAAM,EAAmB,QAAQ,EAAiB,iBAAiB,EAAe,oBACxG0U,EAAGY,MACLtV,GAAO,UAAS,EAAY,YAAW,EAAe,IAAG,EAAa,OAAM,EAAe,IAAG,EAAa,MAE3GA,GAAO,IAAG,EAAe,IAAG,EAAa,KAE3CA,GAAO,MAAK,EAAe,SAAQ,EAAa,cAC3C,CACL,IAAI4gB,EACJ,KADIA,EAAUlM,EAAGwG,QAAQrF,IACX,CACZ,GAAuB,UAAnB4K,EAKF,OAJA/L,EAAGU,OAAOvkB,KAAK,mBAAqBglB,EAAU,gCAAkCnB,EAAGuB,cAAgB,KAC/FC,IACFlW,GAAO,iBAEFA,EACF,GAAI2gB,GAAiBF,EAAgBvnC,QAAQ28B,IAAY,EAI9D,OAHIK,IACFlW,GAAO,iBAEFA,EAEP,MAAM,IAAIre,MAAM,mBAAqBk0B,EAAU,gCAAkCnB,EAAGuB,cAAgB,IAE5G,CACI,IAAI4K,EACAC,GADAD,EAA8B,iBAAXD,KAAyBA,aAAmBxkB,SAAWwkB,EAAQhoC,WACvDgoC,EAAQhqC,MAAQ,SAC/C,GAAIiqC,EAAW,CACb,IAAIhM,GAA2B,IAAlB+L,EAAQtL,MACrBsL,EAAUA,EAAQhoC,QACxB,CACI,GAAIkoC,GAAelM,EAIjB,OAHIsB,IACFlW,GAAO,iBAEFA,EAET,GAAI6U,EAAQ,CACV,IAAKH,EAAGY,MAAO,MAAM,IAAI3zB,MAAM,+BAE/Bqe,GAAO,iBADH+gB,EAAa,UAAYrM,EAAG3K,KAAKa,YAAYiL,GAAW,aACpB,IAAG,EAAa,QAC9D,KAAW,CACL7V,GAAO,UACP,IAAI+gB,EAAa,UAAYrM,EAAG3K,KAAKa,YAAYiL,GAC7CgL,IAAWE,GAAc,aAE3B/gB,GADoB,mBAAX4gB,EACF,IAAG,EAAkB,IAAG,EAAa,KAErC,IAAG,EAAkB,SAAQ,EAAa,KAEnD5gB,GAAO,MACb,CACA,CACE,IAAIqW,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,uDAA0E0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,yBAE9JhW,GADEmd,EACK,GAAE,EAEF,GAAMzI,EAAG3K,KAAK6B,eAAeiK,GAEtC7V,GAAO,QACkB,IAArB0U,EAAG/G,KAAK4I,WACVvW,GAAO,sCAELA,GADEmd,EACK,OAAO,EAAoB,OAE3B,GAAMzI,EAAG3K,KAAKc,aAAagL,GAEpC7V,GAAO,QAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,eAELA,GADEmd,EACK,kBAAiB,EAEjB,GAAMzI,EAAG3K,KAAK6B,eAAeiK,GAEtC7V,GAAO,2CAA8C0U,EAAa,WAAI,YAAW,EAAa,KAEhG1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EAgBZ,OAfAA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,MACHkW,IACFlW,GAAO,YAEFA,CACT,G,ITxIEghB,I,UUZFC,GAAiB,SAAqBvM,EAAIC,EAAUC,GAClD,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EACnByJ,EAAQ,SAAWzJ,EACnBkJ,EAAMjK,EAAG3K,KAAKC,KAAK0K,GACvBiK,EAAIjJ,QACJ,IAAIkJ,EAAa,QAAUD,EAAIjJ,MAC3BwL,EAAWxM,EAAGnJ,OAAa,KAC7B4V,EAAWzM,EAAGnJ,OAAa,KAC3B6V,OAA4B5lC,IAAb0lC,IAA2BxM,EAAG/G,KAAKsH,eAAqC,iBAAZiM,GAAwBjwC,OAAOyF,KAAKwqC,GAAU3uC,OAAS,IAAmB,IAAb2uC,EAAqBxM,EAAG3K,KAAKuB,eAAe4V,EAAUxM,EAAGK,MAAM7zB,MACvMmgC,OAA4B7lC,IAAb2lC,IAA2BzM,EAAG/G,KAAKsH,eAAqC,iBAAZkM,GAAwBlwC,OAAOyF,KAAKyqC,GAAU5uC,OAAS,IAAmB,IAAb4uC,EAAqBzM,EAAG3K,KAAKuB,eAAe6V,EAAUzM,EAAGK,MAAM7zB,MACvM89B,EAAiBL,EAAInN,OACvB,GAAI4P,GAAgBC,EAAc,CAChC,IAAIC,EACJ3C,EAAIrI,cAAe,EACnBqI,EAAIpT,OAASsK,EACb8I,EAAI5I,WAAaD,EACjB6I,EAAI1I,cAAgBD,EACpBhW,GAAO,QAAO,EAAa,kBAAiB,EAAc,aAC1D,IAAIof,EAAgB1K,EAAGgC,cACvBhC,EAAGgC,cAAgBiI,EAAIjI,eAAgB,EACvC1W,GAAO,KAAQ0U,EAAG97B,SAAS+lC,GAAQ,IACnCA,EAAInN,OAASwN,EACbL,EAAIrI,cAAe,EACnBtW,GAAO,cAAa,EAAa,iCAAgC,EAAa,sBAAqB,EAAa,6BAChH0U,EAAGgC,cAAgBiI,EAAIjI,cAAgB0I,EACnCgC,GACFphB,GAAO,QAAO,EAAkB,QAChC2e,EAAIpT,OAASmJ,EAAGnJ,OAAa,KAC7BoT,EAAI5I,WAAarB,EAAGqB,WAAa,QACjC4I,EAAI1I,cAAgBvB,EAAGuB,cAAgB,QACvCjW,GAAO,KAAQ0U,EAAG97B,SAAS+lC,GAAQ,IACnCA,EAAInN,OAASwN,EACbhf,GAAO,IAAG,EAAc,MAAK,EAAkB,KAC3CohB,GAAgBC,EAElBrhB,GAAO,SADPshB,EAAY,WAAa7L,GACM,cAE/B6L,EAAY,SAEdthB,GAAO,MACHqhB,IACFrhB,GAAO,aAGTA,GAAO,SAAQ,EAAkB,OAE/BqhB,IACF1C,EAAIpT,OAASmJ,EAAGnJ,OAAa,KAC7BoT,EAAI5I,WAAarB,EAAGqB,WAAa,QACjC4I,EAAI1I,cAAgBvB,EAAGuB,cAAgB,QACvCjW,GAAO,KAAQ0U,EAAG97B,SAAS+lC,GAAQ,IACnCA,EAAInN,OAASwN,EACbhf,GAAO,IAAG,EAAc,MAAK,EAAkB,KAC3CohB,GAAgBC,EAElBrhB,GAAO,SADPshB,EAAY,WAAa7L,GACM,cAE/B6L,EAAY,SAEdthB,GAAO,OAETA,GAAO,SAAQ,EAAc,sBACL,IAApB0U,EAAG4B,cACLtW,GAAO,mDAAsE0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,gCAA+B,EAAiB,OACnL,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,mCAAmC,EAAiB,mBAEzD0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACF0U,EAAGgC,eAAiBR,IAEnBxB,EAAGY,MACLtV,GAAO,wCAEPA,GAAO,8CAGXA,GAAO,QACHkW,IACFlW,GAAO,WAEb,MACQkW,IACFlW,GAAO,iBAGX,OAAOA,CACT,G,IVxFE8O,O,UWbFA,GAAiB,SAAwB4F,EAAIC,EAAUC,GACrD,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EACnByJ,EAAQ,SAAWzJ,EACnBkJ,EAAMjK,EAAG3K,KAAKC,KAAK0K,GACnBqK,EAAiB,GACrBJ,EAAIjJ,QACJ,IAAIkJ,EAAa,QAAUD,EAAIjJ,MAC3B6J,EAAO,IAAM9J,EACf+J,EAAWb,EAAI/I,UAAYlB,EAAGkB,UAAY,EAC1C6J,EAAY,OAASD,EACrBR,EAAiBtK,EAAGlD,OAEtB,GADAxR,GAAO,OAAM,EAAa,iBAAgB,EAAc,IACpD5uB,MAAMiF,QAAQw/B,GAAU,CAC1B,IAAI0L,EAAmB7M,EAAGnJ,OAAOsD,gBACjC,IAAyB,IAArB0S,EAA4B,CAC9BvhB,GAAO,IAAG,EAAc,MAAK,EAAa,cAAiB6V,EAAc,OAAI,KAC7E,IAAI2L,EAAqBxL,EACzBA,EAAiBtB,EAAGuB,cAAgB,mBACpCjW,GAAO,UAAS,EAAc,SAC9B,IAAIqW,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,gEAAmF0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,uBAA0BH,EAAc,OAAI,OAC5L,IAArBnB,EAAG/G,KAAK4I,WACVvW,GAAO,0CAA8C6V,EAAc,OAAI,YAErEnB,EAAG/G,KAAK6I,UACVxW,GAAO,mDAAsD0U,EAAa,WAAI,YAAW,EAAa,KAExG1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,MACPgW,EAAiBwL,EACbtL,IACF6I,GAAkB,IAClB/e,GAAO,WAEf,CACI,IAAI8X,EAAOjC,EACX,GAAIiC,EAGF,IAFA,IAAIY,EAAMV,GAAK,EACbC,EAAKH,EAAKvlC,OAAS,EACdylC,EAAKC,GAEV,GADAS,EAAOZ,EAAKE,GAAM,GACbtD,EAAG/G,KAAKsH,eAAiC,iBAARyD,GAAoBznC,OAAOyF,KAAKgiC,GAAMnmC,OAAS,IAAe,IAATmmC,EAAiBhE,EAAG3K,KAAKuB,eAAeoN,EAAMhE,EAAGK,MAAM7zB,KAAO,CACvJ8e,GAAO,IAAG,EAAkB,gBAAe,EAAa,aAAY,EAAU,OAC9E,IAAI2Y,EAAYrM,EAAQ,IAAM0L,EAAK,IACnC2G,EAAIpT,OAASmN,EACbiG,EAAI5I,WAAaD,EAAc,IAAMkC,EAAK,IAC1C2G,EAAI1I,cAAgBD,EAAiB,IAAMgC,EAC3C2G,EAAInD,UAAY9G,EAAG3K,KAAK8B,YAAY6I,EAAG8G,UAAWxD,EAAItD,EAAG/G,KAAK5B,cAAc,GAC5E4S,EAAI9H,YAAY2I,GAAYxH,EAC5B,IAAIoB,EAAQ1E,EAAG97B,SAAS+lC,GACxBA,EAAInN,OAASwN,EACTtK,EAAG3K,KAAKmB,cAAckO,EAAOqG,GAAa,EAC5Czf,GAAO,IAAO0U,EAAG3K,KAAKqB,WAAWgO,EAAOqG,EAAW9G,GAAc,IAEjE3Y,GAAO,QAAO,EAAiB,MAAK,EAAiB,KAAI,EAAa,IAExEA,GAAO,OACHkW,IACFlW,GAAO,QAAO,EAAkB,OAChC+e,GAAkB,IAE9B,CAGmC,iBAApBwC,IAAiC7M,EAAG/G,KAAKsH,eAA6C,iBAApBsM,GAAgCtwC,OAAOyF,KAAK6qC,GAAkBhvC,OAAS,IAA2B,IAArBgvC,EAA6B7M,EAAG3K,KAAKuB,eAAeiW,EAAkB7M,EAAGK,MAAM7zB,QACvOy9B,EAAIpT,OAASgW,EACb5C,EAAI5I,WAAarB,EAAGqB,WAAa,mBACjC4I,EAAI1I,cAAgBvB,EAAGuB,cAAgB,mBACvCjW,GAAO,IAAG,EAAkB,gBAAe,EAAa,aAAgB6V,EAAc,OAAI,iBAAgB,EAAY,MAASA,EAAc,OAAI,KAAI,EAAY,MAAK,EAAa,YAAW,EAAY,SAC1M8I,EAAInD,UAAY9G,EAAG3K,KAAK8B,YAAY6I,EAAG8G,UAAW+D,EAAM7K,EAAG/G,KAAK5B,cAAc,GAC1E4M,EAAYrM,EAAQ,IAAMiT,EAAO,IACrCZ,EAAI9H,YAAY2I,GAAYD,EACxBnG,EAAQ1E,EAAG97B,SAAS+lC,GACxBA,EAAInN,OAASwN,EACTtK,EAAG3K,KAAKmB,cAAckO,EAAOqG,GAAa,EAC5Czf,GAAO,IAAO0U,EAAG3K,KAAKqB,WAAWgO,EAAOqG,EAAW9G,GAAc,IAEjE3Y,GAAO,QAAO,EAAiB,MAAK,EAAiB,KAAI,EAAa,IAEpEkW,IACFlW,GAAO,SAAQ,EAAkB,aAEnCA,GAAO,SACHkW,IACFlW,GAAO,QAAO,EAAkB,OAChC+e,GAAkB,KAG1B,MAAcrK,EAAG/G,KAAKsH,eAAoC,iBAAXY,GAAuB5kC,OAAOyF,KAAKm/B,GAAStjC,OAAS,IAAkB,IAAZsjC,EAAoBnB,EAAG3K,KAAKuB,eAAeuK,EAASnB,EAAGK,MAAM7zB,QACnKy9B,EAAIpT,OAASsK,EACb8I,EAAI5I,WAAaD,EACjB6I,EAAI1I,cAAgBD,EACpBhW,GAAO,cAAa,EAAb,SAA2C,EAAY,MAAK,EAAa,YAAW,EAAY,SACvG2e,EAAInD,UAAY9G,EAAG3K,KAAK8B,YAAY6I,EAAG8G,UAAW+D,EAAM7K,EAAG/G,KAAK5B,cAAc,GAC1E4M,EAAYrM,EAAQ,IAAMiT,EAAO,IACrCZ,EAAI9H,YAAY2I,GAAYD,EACxBnG,EAAQ1E,EAAG97B,SAAS+lC,GACxBA,EAAInN,OAASwN,EACTtK,EAAG3K,KAAKmB,cAAckO,EAAOqG,GAAa,EAC5Czf,GAAO,IAAO0U,EAAG3K,KAAKqB,WAAWgO,EAAOqG,EAAW9G,GAAc,IAEjE3Y,GAAO,QAAO,EAAiB,MAAK,EAAiB,KAAI,EAAa,IAEpEkW,IACFlW,GAAO,SAAQ,EAAkB,aAEnCA,GAAO,MAKT,OAHIkW,IACFlW,GAAO,IAAG,EAAsB,QAAO,EAAa,iBAE/CA,CACT,G,IX5HE4P,QAAS6R,KACT5R,QAAS4R,KACTrR,SAAUsR,KACVrR,SAAUqR,KACVzR,UAAW0R,KACXzR,UAAWyR,KACXpR,cAAeqR,KACfpR,cAAeoR,KACf5R,Y,UYtBFA,GAAiB,SAA6B0E,EAAIC,EAAUC,GAC1D,IASEsI,EATEld,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BwH,EAAUzI,EAAG/G,KAAKrB,OAASuJ,GAAWA,EAAQvJ,MAQlD,GANI6Q,GACFnd,GAAO,cAAa,EAAY,MAAS0U,EAAG3K,KAAKsC,QAAQwJ,EAAQvJ,MAAOqJ,EAAUjB,EAAGmC,aAAgB,KACrGqG,EAAe,SAAWzH,GAE1ByH,EAAerH,GAEXsH,GAA6B,iBAAXtH,EACtB,MAAM,IAAIl0B,MAAMgzB,EAAW,mBAE7B3U,GAAO,eAAc,EAAY,QAC7Bmd,IACFnd,GAAO,IAAG,EAAoB,8BAA6B,EAAoB,oBAEjFA,GAAO,aAAY,EAAY,MAAK,EAAa,MAAK,EAAoB,KACtE0U,EAAG/G,KAAKkU,oBACV7hB,GAAO,gCAA+B,EAAY,eAAc,EAAY,UAAa0U,EAAG/G,KAAwB,oBAAI,IAExH3N,GAAO,YAAW,EAAY,yBAAwB,EAAY,KAEpEA,GAAO,MACHmd,IACFnd,GAAO,SAETA,GAAO,UACP,IAAIqW,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,2DAA8E0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,4BAA2B,EAAoB,OAC1L,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,sCAELA,GADEmd,EACK,OAAO,EAEL,EAAoB,KAG7BzI,EAAG/G,KAAK6I,UACVxW,GAAO,eAELA,GADEmd,EACK,kBAAiB,EAEjB,GAAE,EAEXnd,GAAO,2CAA8C0U,EAAa,WAAI,YAAW,EAAa,KAEhG1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EAgBZ,OAfAA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,KACHkW,IACFlW,GAAO,YAEFA,CACT,G,IZvDEkP,K,UavBFA,GAAiB,SAAsBwF,EAAIC,EAAUC,GACnD,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BuJ,EAAQ,SAAWzJ,EACnBkJ,EAAMjK,EAAG3K,KAAKC,KAAK0K,GACvBiK,EAAIjJ,QACJ,IAAIkJ,EAAa,QAAUD,EAAIjJ,MAC/B,GAAKhB,EAAG/G,KAAKsH,eAAoC,iBAAXY,GAAuB5kC,OAAOyF,KAAKm/B,GAAStjC,OAAS,IAAkB,IAAZsjC,EAAoBnB,EAAG3K,KAAKuB,eAAeuK,EAASnB,EAAGK,MAAM7zB,KAAO,CACnKy9B,EAAIpT,OAASsK,EACb8I,EAAI5I,WAAaD,EACjB6I,EAAI1I,cAAgBD,EACpBhW,GAAO,QAAO,EAAa,eAC3B,IAGI8hB,EAHA1C,EAAgB1K,EAAGgC,cACvBhC,EAAGgC,cAAgBiI,EAAIjI,eAAgB,EACvCiI,EAAIrI,cAAe,EAEfqI,EAAIhR,KAAKwI,YACX2L,EAAmBnD,EAAIhR,KAAKwI,UAC5BwI,EAAIhR,KAAKwI,WAAY,GAEvBnW,GAAO,IAAO0U,EAAG97B,SAAS+lC,GAAQ,IAClCA,EAAIrI,cAAe,EACfwL,IAAkBnD,EAAIhR,KAAKwI,UAAY2L,GAC3CpN,EAAGgC,cAAgBiI,EAAIjI,cAAgB0I,EACvCpf,GAAO,QAAO,EAAkB,SAChC,IAAIqW,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,oDAAuE0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,kBACpI,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,sCAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,uBAAsB,EAAa,iCAAgC,EAAa,sBAAqB,EAAa,4BACrH0U,EAAG/G,KAAKwI,YACVnW,GAAO,MAEb,MACIA,GAAO,kBACiB,IAApB0U,EAAG4B,cACLtW,GAAO,oDAAuE0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,kBACpI,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,sCAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAETA,GAAO,+EACHkW,IACFlW,GAAO,kBAGX,OAAOA,CACT,G,Ib1DEqP,O,UcxBFA,GAAiB,SAAwBqF,EAAIC,EAAUC,GACrD,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EACnByJ,EAAQ,SAAWzJ,EACnBkJ,EAAMjK,EAAG3K,KAAKC,KAAK0K,GACnBqK,EAAiB,GACrBJ,EAAIjJ,QACJ,IAAIkJ,EAAa,QAAUD,EAAIjJ,MAC3BsJ,EAAiBL,EAAInN,OACvBuQ,EAAa,YAActM,EAC3BuM,EAAkB,iBAAmBvM,EACvCzV,GAAO,OAAM,EAAa,eAAc,EAAkB,cAAa,EAAc,cAAa,EAAuB,YACzH,IAAIof,EAAgB1K,EAAGgC,cACvBhC,EAAGgC,cAAgBiI,EAAIjI,eAAgB,EACvC,IAAIoB,EAAOjC,EACX,GAAIiC,EAGF,IAFA,IAAIY,EAAMV,GAAK,EACbC,EAAKH,EAAKvlC,OAAS,EACdylC,EAAKC,GACVS,EAAOZ,EAAKE,GAAM,IACbtD,EAAG/G,KAAKsH,eAAiC,iBAARyD,GAAoBznC,OAAOyF,KAAKgiC,GAAMnmC,OAAS,IAAe,IAATmmC,EAAiBhE,EAAG3K,KAAKuB,eAAeoN,EAAMhE,EAAGK,MAAM7zB,OAChJy9B,EAAIpT,OAASmN,EACbiG,EAAI5I,WAAaD,EAAc,IAAMkC,EAAK,IAC1C2G,EAAI1I,cAAgBD,EAAiB,IAAMgC,EAC3ChY,GAAO,KAAQ0U,EAAG97B,SAAS+lC,GAAQ,IACnCA,EAAInN,OAASwN,GAEbhf,GAAO,QAAO,EAAkB,YAE9BgY,IACFhY,GAAO,QAAO,EAAkB,OAAM,EAAkB,OAAM,EAAc,aAAY,EAAuB,OAAM,EAAuB,KAAI,EAAU,eAC1J+e,GAAkB,KAEpB/e,GAAO,QAAO,EAAkB,OAAM,EAAc,MAAK,EAAkB,YAAW,EAAuB,MAAK,EAAU,MA8BhI,OA3BA0U,EAAGgC,cAAgBiI,EAAIjI,cAAgB0I,EACvCpf,GAAS,EAAsB,QAAO,EAAc,sBAC5B,IAApB0U,EAAG4B,cACLtW,GAAO,sDAAyE0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,gCAA+B,EAAuB,OAC5L,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,2DAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACF0U,EAAGgC,eAAiBR,IAEnBxB,EAAGY,MACLtV,GAAO,wCAEPA,GAAO,8CAGXA,GAAO,sBAAqB,EAAa,iCAAgC,EAAa,sBAAqB,EAAa,2BACpH0U,EAAG/G,KAAKwI,YACVnW,GAAO,OAEFA,CACT,G,Id9CEmQ,S,UezBFA,GAAiB,SAA0BuE,EAAIC,EAAUC,GACvD,IAUEsI,EAVEld,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EACnB0H,EAAUzI,EAAG/G,KAAKrB,OAASuJ,GAAWA,EAAQvJ,MAE9C6Q,GACFnd,GAAO,cAAa,EAAY,MAAS0U,EAAG3K,KAAKsC,QAAQwJ,EAAQvJ,MAAOqJ,EAAUjB,EAAGmC,aAAgB,KACrGqG,EAAe,SAAWzH,GAE1ByH,EAAerH,EAEjB,IAAIoM,EAAcvN,EAAG/G,KAAKoN,OAAS,SAAW,aAC1CoC,GACFnd,GAAO,QAAO,EAAc,kBAAiB,EAAc,MAAK,EAAmB,IAAG,EAAoB,UAAS,EAAa,mBAAkB,EAAc,oBAC5Jmd,IACFnd,GAAO,KAAI,EAAoB,4BAA2B,EAAoB,qBAEhFA,GAAO,KAAI,EAAc,QAGzBA,GAAO,SACHmd,IACFnd,GAAO,KAAI,EAAoB,4BAA2B,EAAoB,qBAEhFA,GAAO,KALO0U,EAAGgH,WAAW7F,GAKF,SAAQ,EAAa,SAEjD,IAAIQ,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,wDAA2E0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,0BAE/JhW,GADEmd,EACK,GAAE,EAEF,GAAMzI,EAAG3K,KAAK6B,eAAeiK,GAEtC7V,GAAO,QACkB,IAArB0U,EAAG/G,KAAK4I,WACVvW,GAAO,uCAELA,GADEmd,EACK,OAAO,EAAoB,OAE3B,GAAMzI,EAAG3K,KAAKc,aAAagL,GAEpC7V,GAAO,QAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,eAELA,GADEmd,EACK,kBAAiB,EAEjB,GAAMzI,EAAG3K,KAAK6B,eAAeiK,GAEtC7V,GAAO,2CAA8C0U,EAAa,WAAI,YAAW,EAAa,KAEhG1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EAgBZ,OAfAA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,KACHkW,IACFlW,GAAO,YAEFA,CACT,G,IfzDElQ,Y,UgB1BFA,GAAiB,SAA6B4kB,EAAIC,EAAUC,GAC1D,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BuJ,EAAQ,SAAWzJ,EACnBkJ,EAAMjK,EAAG3K,KAAKC,KAAK0K,GACnBqK,EAAiB,GACrBJ,EAAIjJ,QACJ,IAAIkJ,EAAa,QAAUD,EAAIjJ,MAC3BwM,EAAO,MAAQzM,EACjB8J,EAAO,MAAQ9J,EACf+J,EAAWb,EAAI/I,UAAYlB,EAAGkB,UAAY,EAC1C6J,EAAY,OAASD,EACrB2C,EAAkB,iBAAmB1M,EACnC2M,EAAcnxC,OAAOyF,KAAKm/B,GAAW,IAAI79B,OAAOqqC,GAClDC,EAAe5N,EAAGnJ,OAAOgE,mBAAqB,GAC9CgT,EAAiBtxC,OAAOyF,KAAK4rC,GAActqC,OAAOqqC,GAClDG,EAAe9N,EAAGnJ,OAAOyD,qBACzByT,EAAkBL,EAAY7vC,QAAUgwC,EAAehwC,OACvDmwC,GAAiC,IAAjBF,EAChBG,EAA6C,iBAAhBH,GAA4BvxC,OAAOyF,KAAK8rC,GAAcjwC,OACnFqwC,EAAoBlO,EAAG/G,KAAKkV,iBAC5BC,EAAmBJ,GAAiBC,GAAuBC,EAC3D/C,EAAiBnL,EAAG/G,KAAKmS,cACzBd,EAAiBtK,EAAGlD,OAClBuR,EAAYrO,EAAGnJ,OAAOoE,SAC1B,GAAIoT,KAAerO,EAAG/G,KAAKrB,QAASyW,EAAUzW,QAAUyW,EAAUxwC,OAASmiC,EAAG/G,KAAKqV,aACjF,IAAIC,EAAgBvO,EAAG3K,KAAKM,OAAO0Y,GAGrC,SAASV,EAAShxC,GAChB,MAAa,cAANA,CACX,CAKE,GAJA2uB,GAAO,OAAM,EAAa,iBAAgB,EAAkB,WACxD6f,IACF7f,GAAO,QAAO,EAAuB,iBAEnC8iB,EAAkB,CAMpB,GAJE9iB,GADE6f,EACK,IAAG,EAAuB,MAAK,EAAuB,mBAAkB,EAAa,eAAc,EAAY,OAAM,EAAY,IAAG,EAAuB,YAAW,EAAY,aAAY,EAAY,MAAK,EAAuB,IAAG,EAAY,MAErP,aAAY,EAAY,OAAM,EAAa,OAEhD4C,EAAiB,CAEnB,GADAziB,GAAO,oBAAmB,EAAY,cAClCoiB,EAAY7vC,OACd,GAAI6vC,EAAY7vC,OAAS,EACvBytB,GAAO,sBAAqB,EAAmB,mBAAkB,EAAY,SACxE,CACL,IAAI8X,EAAOsK,EACX,GAAItK,EAGF,IAFA,IAAkBoL,GAAK,EACrBjL,EAAKH,EAAKvlC,OAAS,EACd2wC,EAAKjL,GACVM,EAAeT,EAAKoL,GAAM,GAC1BljB,GAAO,OAAM,EAAY,OAAU0U,EAAG3K,KAAK6B,eAAe2M,GAAiB,GAGzF,CAEM,GAAIgK,EAAehwC,OAAQ,CACzB,IAAI4lC,EAAOoK,EACX,GAAIpK,EAGF,IAFA,IAAgBH,GAAK,EACnBK,EAAKF,EAAK5lC,OAAS,EACdylC,EAAKK,GACV8K,GAAahL,EAAKH,GAAM,GACxBhY,GAAO,OAAU0U,EAAGgH,WAAWyH,IAAe,SAAQ,EAAY,IAG9E,CACMnjB,GAAO,uBAAsB,EAAY,MAC/C,CACI,GAAyB,OAArB4iB,EACF5iB,GAAO,WAAU,EAAa,IAAG,EAAY,UACxC,CACL,IAAIigB,EAAoBvL,EAAG8G,UACvB4H,EAAsB,OAAUlB,EAAO,OAI3C,GAHIxN,EAAG/G,KAAK2S,yBACV5L,EAAG8G,UAAY9G,EAAG3K,KAAK8B,YAAY6I,EAAG8G,UAAW0G,EAAMxN,EAAG/G,KAAK5B,eAE7D2W,EACF,GAAIE,EACF5iB,GAAO,WAAU,EAAa,IAAG,EAAY,UACxC,CACLA,GAAO,IAAG,EAAkB,aAC5B,IAAIwhB,EAAqBxL,EACzBA,EAAiBtB,EAAGuB,cAAgB,yBAChCI,GAAaA,IAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,qEAAwF0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,qCAAqC,EAA2B,QACrN,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,gBACH0U,EAAG/G,KAAK2S,uBACVtgB,GAAO,oCAEPA,GAAO,wCAETA,GAAO,MAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,mDAAsD0U,EAAa,WAAI,YAAW,EAAa,KAExG1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EACZA,EAAMqW,GAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCgW,EAAiBwL,EACbtL,IACFlW,GAAO,WAEnB,MACa,GAAI2iB,EACT,GAAyB,WAArBC,EAAgC,CAClC5iB,GAAO,QAAO,EAAa,eAC3B,IAAIof,EAAgB1K,EAAGgC,cACvBhC,EAAGgC,cAAgBiI,EAAIjI,eAAgB,EACvCiI,EAAIpT,OAASiX,EACb7D,EAAI5I,WAAarB,EAAGqB,WAAa,wBACjC4I,EAAI1I,cAAgBvB,EAAGuB,cAAgB,wBACvC0I,EAAInD,UAAY9G,EAAG/G,KAAK2S,uBAAyB5L,EAAG8G,UAAY9G,EAAG3K,KAAK8B,YAAY6I,EAAG8G,UAAW0G,EAAMxN,EAAG/G,KAAK5B,cAChH,IAAI4M,EAAYrM,EAAQ,IAAM4V,EAAO,IACrCvD,EAAI9H,YAAY2I,GAAY0C,EAC5B,IAAI9I,EAAQ1E,EAAG97B,SAAS+lC,GACxBA,EAAInN,OAASwN,EACTtK,EAAG3K,KAAKmB,cAAckO,EAAOqG,GAAa,EAC5Czf,GAAO,IAAO0U,EAAG3K,KAAKqB,WAAWgO,EAAOqG,EAAW9G,GAAc,IAEjE3Y,GAAO,QAAO,EAAiB,MAAK,EAAiB,KAAI,EAAa,IAExEA,GAAO,SAAQ,EAAkB,gBAAe,EAAa,wHAAuH,EAAa,IAAG,EAAY,SAChN0U,EAAGgC,cAAgBiI,EAAIjI,cAAgB0I,CACjD,MACUT,EAAIpT,OAASiX,EACb7D,EAAI5I,WAAarB,EAAGqB,WAAa,wBACjC4I,EAAI1I,cAAgBvB,EAAGuB,cAAgB,wBACvC0I,EAAInD,UAAY9G,EAAG/G,KAAK2S,uBAAyB5L,EAAG8G,UAAY9G,EAAG3K,KAAK8B,YAAY6I,EAAG8G,UAAW0G,EAAMxN,EAAG/G,KAAK5B,cAC5G4M,EAAYrM,EAAQ,IAAM4V,EAAO,IACrCvD,EAAI9H,YAAY2I,GAAY0C,EACxB9I,EAAQ1E,EAAG97B,SAAS+lC,GACxBA,EAAInN,OAASwN,EACTtK,EAAG3K,KAAKmB,cAAckO,EAAOqG,GAAa,EAC5Czf,GAAO,IAAO0U,EAAG3K,KAAKqB,WAAWgO,EAAOqG,EAAW9G,GAAc,IAEjE3Y,GAAO,QAAO,EAAiB,MAAK,EAAiB,KAAI,EAAa,IAEpEkW,IACFlW,GAAO,SAAQ,EAAkB,aAIvC0U,EAAG8G,UAAYyE,CACrB,CACQwC,IACFziB,GAAO,OAETA,GAAO,OACHkW,IACFlW,GAAO,QAAO,EAAkB,OAChC+e,GAAkB,IAExB,CACE,IAAIsE,EAAe3O,EAAG/G,KAAKmJ,cAAgBpC,EAAGgC,cAC9C,GAAI0L,EAAY7vC,OAAQ,CACtB,IAAI+lC,EAAO8J,EACX,GAAI9J,EAGF,IAFA,IAAIC,EAAcC,GAAK,EACrBC,EAAKH,EAAK/lC,OAAS,EACdimC,EAAKC,GAAI,CAEd,IAAIC,EAAO7C,EADX0C,EAAeD,EAAKE,GAAM,IAE1B,GAAK9D,EAAG/G,KAAKsH,eAAiC,iBAARyD,GAAoBznC,OAAOyF,KAAKgiC,GAAMnmC,OAAS,IAAe,IAATmmC,EAAiBhE,EAAG3K,KAAKuB,eAAeoN,EAAMhE,EAAGK,MAAM7zB,KAAO,CACvJ,IAAIi/B,EAAQzL,EAAG3K,KAAKa,YAAY2N,GAE9B+K,IADA3K,EAAYrM,EAAQ6T,EACNkD,QAAiC7nC,IAAjBk9B,EAAK/7B,SAQrC,GAPAgiC,EAAIpT,OAASmN,EACbiG,EAAI5I,WAAaD,EAAcqK,EAC/BxB,EAAI1I,cAAgBD,EAAiB,IAAMtB,EAAG3K,KAAKmD,eAAeqL,GAClEoG,EAAInD,UAAY9G,EAAG3K,KAAKmC,QAAQwI,EAAG8G,UAAWjD,EAAc7D,EAAG/G,KAAK5B,cACpE4S,EAAI9H,YAAY2I,GAAY9K,EAAG3K,KAAK6B,eAAe2M,GAC/Ca,EAAQ1E,EAAG97B,SAAS+lC,GACxBA,EAAInN,OAASwN,EACTtK,EAAG3K,KAAKmB,cAAckO,EAAOqG,GAAa,EAAG,CAC/CrG,EAAQ1E,EAAG3K,KAAKqB,WAAWgO,EAAOqG,EAAW9G,GAC7C,IAAIuH,GAAWvH,CAC3B,MACgBuH,GAAWT,EACfzf,GAAO,QAAO,EAAiB,MAAK,EAAiB,KAEvD,GAAIsjB,GACFtjB,GAAO,IAAG,EAAa,QAClB,CACL,GAAIijB,GAAiBA,EAAc1K,GAAe,CAChDvY,GAAO,SAAQ,GAAgB,kBAC3B6f,IACF7f,GAAO,8CAA6C,EAAa,MAAU0U,EAAG3K,KAAKc,aAAa0N,GAAiB,OAEnHvY,GAAO,OAAM,EAAkB,aAC3BigB,EAAoBvL,EAAG8G,UACzBgG,EAAqBxL,EADvB,IAOIK,GALFgK,GAAmB3L,EAAG3K,KAAKc,aAAa0N,GACtC7D,EAAG/G,KAAK2S,yBACV5L,EAAG8G,UAAY9G,EAAG3K,KAAKmC,QAAQ+T,EAAmB1H,EAAc7D,EAAG/G,KAAK5B,eAE1EiK,EAAiBtB,EAAGuB,cAAgB,aAChCI,GAAaA,IAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,yDAA4E0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,kCAAkC,GAAwB,QACnM,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,gBACH0U,EAAG/G,KAAK2S,uBACVtgB,GAAO,yBAEPA,GAAO,oCAAoC,GAAwB,MAErEA,GAAO,MAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAELyW,EAAQzW,EACZA,EAAMqW,GAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCgW,EAAiBwL,EACjB9M,EAAG8G,UAAYyE,EACfjgB,GAAO,YACrB,MACkBkW,GACFlW,GAAO,SAAQ,GAAgB,kBAC3B6f,IACF7f,GAAO,8CAA6C,EAAa,MAAU0U,EAAG3K,KAAKc,aAAa0N,GAAiB,OAEnHvY,GAAO,OAAM,EAAkB,uBAE/BA,GAAO,QAAO,GAAgB,kBAC1B6f,IACF7f,GAAO,8CAA6C,EAAa,MAAU0U,EAAG3K,KAAKc,aAAa0N,GAAiB,OAEnHvY,GAAO,SAGXA,GAAO,IAAG,EAAa,KACnC,CACA,CACYkW,IACFlW,GAAO,QAAO,EAAkB,OAChC+e,GAAkB,IAE5B,CAEA,CACE,GAAIwD,EAAehwC,OAAQ,CACzB,IAAIsmC,GAAO0J,EACX,GAAI1J,GAGF,IAFA,IAAIsK,GAAYI,IAAK,EACnBzK,GAAKD,GAAKtmC,OAAS,EACdgxC,GAAKzK,IAENJ,EAAO4J,EADXa,GAAatK,GAAK0K,IAAM,KAEnB7O,EAAG/G,KAAKsH,eAAiC,iBAARyD,GAAoBznC,OAAOyF,KAAKgiC,GAAMnmC,OAAS,IAAe,IAATmmC,EAAiBhE,EAAG3K,KAAKuB,eAAeoN,EAAMhE,EAAGK,MAAM7zB,QAChJy9B,EAAIpT,OAASmN,EACbiG,EAAI5I,WAAarB,EAAGqB,WAAa,qBAAuBrB,EAAG3K,KAAKa,YAAYuY,IAC5ExE,EAAI1I,cAAgBvB,EAAGuB,cAAgB,sBAAwBvB,EAAG3K,KAAKmD,eAAeiW,IAEpFnjB,GADE6f,EACK,IAAG,EAAuB,MAAK,EAAuB,mBAAkB,EAAa,eAAc,EAAY,OAAM,EAAY,IAAG,EAAuB,YAAW,EAAY,aAAY,EAAY,MAAK,EAAuB,IAAG,EAAY,MAErP,aAAY,EAAY,OAAM,EAAa,OAEpD7f,GAAO,QAAW0U,EAAGgH,WAAWyH,IAAe,SAAQ,EAAY,QACnExE,EAAInD,UAAY9G,EAAG3K,KAAK8B,YAAY6I,EAAG8G,UAAW0G,EAAMxN,EAAG/G,KAAK5B,cAC5D4M,EAAYrM,EAAQ,IAAM4V,EAAO,IACrCvD,EAAI9H,YAAY2I,GAAY0C,EACxB9I,EAAQ1E,EAAG97B,SAAS+lC,GACxBA,EAAInN,OAASwN,EACTtK,EAAG3K,KAAKmB,cAAckO,EAAOqG,GAAa,EAC5Czf,GAAO,IAAO0U,EAAG3K,KAAKqB,WAAWgO,EAAOqG,EAAW9G,GAAc,IAEjE3Y,GAAO,QAAO,EAAiB,MAAK,EAAiB,KAAI,EAAa,IAEpEkW,IACFlW,GAAO,SAAQ,EAAkB,aAEnCA,GAAO,MACHkW,IACFlW,GAAO,SAAQ,EAAkB,aAEnCA,GAAO,OACHkW,IACFlW,GAAO,QAAO,EAAkB,OAChC+e,GAAkB,KAK9B,CAIE,OAHI7I,IACFlW,GAAO,IAAG,EAAsB,QAAO,EAAa,iBAE/CA,CACT,G,IhBlTEiP,e,UiB3BFA,GAAiB,SAAgCyF,EAAIC,EAAUC,GAC7D,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BuJ,EAAQ,SAAWzJ,EACnBkJ,EAAMjK,EAAG3K,KAAKC,KAAK0K,GAEvBiK,EAAIjJ,QACJ,IAAIkJ,EAAa,QAAUD,EAAIjJ,MAE/B,GADA1V,GAAO,OAAM,EAAa,aACrB0U,EAAG/G,KAAKsH,eAAoC,iBAAXY,GAAuB5kC,OAAOyF,KAAKm/B,GAAStjC,OAAS,IAAkB,IAAZsjC,EAAoBnB,EAAG3K,KAAKuB,eAAeuK,EAASnB,EAAGK,MAAM7zB,KAAO,CACnKy9B,EAAIpT,OAASsK,EACb8I,EAAI5I,WAAaD,EACjB6I,EAAI1I,cAAgBD,EACpB,IAAIkM,EAAO,MAAQzM,EACjB8J,EAAO,MAAQ9J,EACfuC,EAAK,IAAMvC,EACX+N,EAAe,OAAUtB,EAAO,OAEhCzC,EAAY,QADDd,EAAI/I,UAAYlB,EAAGkB,UAAY,GAE1CuM,EAAkB,iBAAmB1M,EACrCoK,EAAiBnL,EAAG/G,KAAKmS,cACzBd,EAAiBtK,EAAGlD,OAClBqO,IACF7f,GAAO,QAAO,EAAuB,kBAGrCA,GADE6f,EACK,IAAG,EAAuB,MAAK,EAAuB,mBAAkB,EAAa,eAAc,EAAY,OAAM,EAAY,IAAG,EAAuB,YAAW,EAAY,aAAY,EAAY,MAAK,EAAuB,IAAG,EAAY,MAErP,aAAY,EAAY,OAAM,EAAa,OAEpD7f,GAAO,iBAAgB,EAAY,cACnC,IAAI2Y,EAAYuJ,EACZ9C,EAAgB1K,EAAGgC,cACvBhC,EAAGgC,cAAgBiI,EAAIjI,eAAgB,EACvC,IAAI0C,EAAQ1E,EAAG97B,SAAS+lC,GACxBA,EAAInN,OAASwN,EACTtK,EAAG3K,KAAKmB,cAAckO,EAAOqG,GAAa,EAC5Czf,GAAO,IAAO0U,EAAG3K,KAAKqB,WAAWgO,EAAOqG,EAAW9G,GAAc,IAEjE3Y,GAAO,QAAO,EAAiB,MAAK,EAAiB,KAAI,EAAa,IAExE0U,EAAGgC,cAAgBiI,EAAIjI,cAAgB0I,EACvCpf,GAAO,SAAQ,EAAkB,gBAAe,EAAU,aAAY,EAAY,KAAI,EAAU,YAAW,EAAU,iBAAgB,EAAU,oBAAmB,EAAY,sBACtJ,IAApB0U,EAAG4B,cACLtW,GAAO,8DAAiF0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,+BAA+B,EAAoB,QACjM,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,iCAAkC,EAAoB,oBAE3D0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACF0U,EAAGgC,eAAiBR,IAEnBxB,EAAGY,MACLtV,GAAO,wCAEPA,GAAO,8CAGPkW,IACFlW,GAAO,YAETA,GAAO,MACX,CAIE,OAHIkW,IACFlW,GAAO,SAAgC,EAAa,iBAE/CA,CACT,G,IjBnDE2P,U,UkB5BFA,GAAiB,SAA2B+E,EAAIC,EAAUC,GACxD,IAAI5U,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EACnB0H,EAAUzI,EAAG/G,KAAKrB,OAASuJ,GAAWA,EAAQvJ,MAE9C6Q,IACFnd,GAAO,cAAa,EAAY,MAAS0U,EAAG3K,KAAKsC,QAAQwJ,EAAQvJ,MAAOqJ,EAAUjB,EAAGmC,aAAgB,MAKvG,IAAI2J,EAAW,SAAW/K,EAC1B,IAAK0H,EACH,GAAItH,EAAQtjC,OAASmiC,EAAG/G,KAAKqV,cAAgBtO,EAAGnJ,OAAOzb,YAAc7e,OAAOyF,KAAKg+B,EAAGnJ,OAAOzb,YAAYvd,OAAQ,CAC7G,IAAIwwC,EAAY,GACZjL,EAAOjC,EACX,GAAIiC,EAGF,IAFA,IAAIiI,EAAWmD,GAAK,EAClBjL,EAAKH,EAAKvlC,OAAS,EACd2wC,EAAKjL,GAAI,CACd8H,EAAYjI,EAAKoL,GAAM,GACvB,IAAIO,EAAe/O,EAAGnJ,OAAOzb,WAAWiwB,GAClC0D,IAAiB/O,EAAG/G,KAAKsH,eAAyC,iBAAhBwO,GAA4BxyC,OAAOyF,KAAK+sC,GAAclxC,OAAS,IAAuB,IAAjBkxC,EAAyB/O,EAAG3K,KAAKuB,eAAemY,EAAc/O,EAAGK,MAAM7zB,QAClM6hC,EAAUA,EAAUxwC,QAAUwtC,EAE1C,CAEA,MACUgD,EAAYlN,EAGpB,GAAIsH,GAAW4F,EAAUxwC,OAAQ,CAC/B,IAAI0tC,EAAoBvL,EAAG8G,UACzBkI,EAAgBvG,GAAW4F,EAAUxwC,QAAUmiC,EAAG/G,KAAKqV,aACvDnD,EAAiBnL,EAAG/G,KAAKmS,cAC3B,GAAI5J,EAEF,GADAlW,GAAO,eAAc,EAAY,KAC7B0jB,EAAe,CACZvG,IACHnd,GAAO,QAAO,EAAgB,qBAAoB,EAAmB,MAEvE,IAEEqgB,EAAmB,QADnBD,EAAgB,SAAW3K,EAAO,KADhCuC,EAAK,IAAMvC,GACgC,KACA,OAC3Cf,EAAG/G,KAAK2S,yBACV5L,EAAG8G,UAAY9G,EAAG3K,KAAK8B,YAAYoU,EAAmBG,EAAe1L,EAAG/G,KAAK5B,eAE/E/L,GAAO,QAAO,EAAc,YACxBmd,IACFnd,GAAO,cAAa,EAAY,mBAAkB,EAAc,0CAAyC,EAAY,MAAK,EAAc,oBAE1IA,GAAO,aAAY,EAAU,SAAQ,EAAU,MAAK,EAAgB,YAAW,EAAU,SAAQ,EAAc,MAAK,EAAa,IAAG,EAAgB,IAAG,EAAU,oBAC7J6f,IACF7f,GAAO,8CAA6C,EAAa,KAAI,EAAgB,IAAG,EAAU,OAEpGA,GAAO,UAAS,EAAc,cAC1Bmd,IACFnd,GAAO,SAETA,GAAO,UAAS,EAAc,UAC1BqW,EAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,yDAA4E0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,kCAAkC,EAAwB,QACnM,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,gBACH0U,EAAG/G,KAAK2S,uBACVtgB,GAAO,yBAEPA,GAAO,oCAAoC,EAAwB,MAErEA,GAAO,MAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,YACf,KAAa,CACLA,GAAO,SACP,IAwBIqW,EAxBA8B,EAAO4K,EACX,GAAI5K,EAGF,IAFA,IAAkBH,GAAK,EACrBK,EAAKF,EAAK5lC,OAAS,EACdylC,EAAKK,GACVE,EAAeJ,EAAKH,GAAM,GACtBA,IACFhY,GAAO,QAITA,GAAO,SADLkgB,EAAW5T,GADT6T,EAAQzL,EAAG3K,KAAKa,YAAY2N,KAEF,kBAC1BsH,IACF7f,GAAO,8CAA6C,EAAa,MAAU0U,EAAG3K,KAAKc,aAAa0N,GAAiB,OAEnHvY,GAAO,gBAAe,EAAY,MAAS0U,EAAG3K,KAAK6B,eAAe8I,EAAG/G,KAAK5B,aAAewM,EAAe4H,GAAU,OAGtHngB,GAAO,QAELqgB,EAAmB,QADjBD,EAAgB,UAAY3K,GACe,OAC3Cf,EAAG/G,KAAK2S,yBACV5L,EAAG8G,UAAY9G,EAAG/G,KAAK5B,aAAe2I,EAAG3K,KAAK8B,YAAYoU,EAAmBG,GAAe,GAAQH,EAAoB,MAAQG,IAE9H/J,EAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,yDAA4E0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,kCAAkC,EAAwB,QACnM,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,gBACH0U,EAAG/G,KAAK2S,uBACVtgB,GAAO,yBAEPA,GAAO,oCAAoC,EAAwB,MAErEA,GAAO,MAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAELyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,YACf,MAEM,GAAI0jB,EAAe,CAIjB,IACEtD,EAJGjD,IACHnd,GAAO,QAAO,EAAgB,qBAAoB,EAAmB,MAIrEqgB,EAAmB,QADnBD,EAAgB,SAAW3K,EAAO,KADhCuC,EAAK,IAAMvC,GACgC,KACA,OAC3Cf,EAAG/G,KAAK2S,yBACV5L,EAAG8G,UAAY9G,EAAG3K,KAAK8B,YAAYoU,EAAmBG,EAAe1L,EAAG/G,KAAK5B,eAE3EoR,IACFnd,GAAO,QAAO,EAAgB,sBAAqB,EAAgB,sBAC3C,IAApB0U,EAAG4B,cACLtW,GAAO,yDAA4E0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,kCAAkC,EAAwB,QACnM,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,gBACH0U,EAAG/G,KAAK2S,uBACVtgB,GAAO,yBAEPA,GAAO,oCAAoC,EAAwB,MAErEA,GAAO,MAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAETA,GAAO,0FAAyF,EAAgB,sBAElHA,GAAO,aAAY,EAAU,SAAQ,EAAU,MAAK,EAAgB,YAAW,EAAU,aAAY,EAAa,IAAG,EAAgB,IAAG,EAAU,oBAC9I6f,IACF7f,GAAO,8CAA6C,EAAa,KAAI,EAAgB,IAAG,EAAU,OAEpGA,GAAO,qBACiB,IAApB0U,EAAG4B,cACLtW,GAAO,yDAA4E0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,kCAAkC,EAAwB,QACnM,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,gBACH0U,EAAG/G,KAAK2S,uBACVtgB,GAAO,yBAEPA,GAAO,oCAAoC,EAAwB,MAErEA,GAAO,MAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAETA,GAAO,mFACHmd,IACFnd,GAAO,QAEjB,KAAa,CACL,IAAIsY,EAAOyK,EACX,GAAIzK,EAGF,IAFA,IAAIC,EAAcC,GAAK,EACrBC,EAAKH,EAAK/lC,OAAS,EACdimC,EAAKC,GAAI,CACdF,EAAeD,EAAKE,GAAM,GAC1B,IAAI2H,EAAQzL,EAAG3K,KAAKa,YAAY2N,GAE9B2H,GADAG,EAAmB3L,EAAG3K,KAAKc,aAAa0N,GAC7BjM,EAAQ6T,GACjBzL,EAAG/G,KAAK2S,yBACV5L,EAAG8G,UAAY9G,EAAG3K,KAAKmC,QAAQ+T,EAAmB1H,EAAc7D,EAAG/G,KAAK5B,eAE1E/L,GAAO,SAAQ,EAAgB,kBAC3B6f,IACF7f,GAAO,8CAA6C,EAAa,MAAU0U,EAAG3K,KAAKc,aAAa0N,GAAiB,OAEnHvY,GAAO,qBACiB,IAApB0U,EAAG4B,cACLtW,GAAO,yDAA4E0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,kCAAkC,EAAwB,QACnM,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,gBACH0U,EAAG/G,KAAK2S,uBACVtgB,GAAO,yBAEPA,GAAO,oCAAoC,EAAwB,MAErEA,GAAO,MAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACnB,CAEA,CAEI0U,EAAG8G,UAAYyE,CACnB,MAAa/J,IACTlW,GAAO,gBAET,OAAOA,CACT,G,IlB/OEsQ,a,UmB7BFA,GAAiB,SAA8BoE,EAAIC,EAAUC,GAC3D,IAUEsI,EAVEld,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UACzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EACnB0H,EAAUzI,EAAG/G,KAAKrB,OAASuJ,GAAWA,EAAQvJ,MAQlD,GANI6Q,GACFnd,GAAO,cAAa,EAAY,MAAS0U,EAAG3K,KAAKsC,QAAQwJ,EAAQvJ,MAAOqJ,EAAUjB,EAAGmC,aAAgB,KACrGqG,EAAe,SAAWzH,GAE1ByH,EAAerH,GAEZA,GAAWsH,KAAoC,IAAxBzI,EAAG/G,KAAK2C,YAAuB,CACrD6M,IACFnd,GAAO,QAAO,EAAc,SAAQ,EAAoB,iBAAgB,EAAoB,mBAAkB,EAAc,4BAA2B,EAAoB,kBAAmB,EAAc,qBAE9MA,GAAO,YAAW,EAAa,aAAY,EAAc,6BACzD,IAAI2jB,EAAYjP,EAAGnJ,OAAOuD,OAAS4F,EAAGnJ,OAAOuD,MAAMl4B,KACjDwgC,EAAehmC,MAAMiF,QAAQstC,GAC/B,IAAKA,GAA0B,UAAbA,GAAsC,SAAbA,GAAyBvM,IAAiBuM,EAAUzqC,QAAQ,WAAa,GAAKyqC,EAAUzqC,QAAQ,UAAY,GACrJ8mB,GAAO,uDAAsD,EAAa,QAAO,EAAa,WAAU,EAAc,oCACjH,CACLA,GAAO,yDAAwD,EAAa,QAC5E,IAAI2X,EAAU,iBAAmBP,EAAe,IAAM,IACtDpX,GAAO,QAAW0U,EAAG3K,KAAK4N,GAASgM,EAAW,OAAQjP,EAAG/G,KAAKlE,eAAe,GAAS,eAClF2N,IACFpX,GAAO,sDAETA,GAAO,gDAAiD,EAAc,qEAC5E,CACIA,GAAO,MACHmd,IACFnd,GAAO,SAETA,GAAO,SAAQ,EAAc,SAC7B,IAAIqW,EAAaA,GAAc,GAC/BA,EAAW3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,4DAA+E0U,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,8BAC5I,IAArBtB,EAAG/G,KAAK4I,WACVvW,GAAO,mGAEL0U,EAAG/G,KAAK6I,UACVxW,GAAO,eAELA,GADEmd,EACK,kBAAiB,EAEjB,GAAE,EAEXnd,GAAO,2CAA8C0U,EAAa,WAAI,YAAW,EAAa,KAEhG1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnCA,GAAO,MACHkW,IACFlW,GAAO,WAEb,MACQkW,IACFlW,GAAO,iBAGX,OAAOA,CACT,G,InBtDEpnB,SAAUgrC,O,ID5BRvZ,EAASqG,KAAkBrG,O,OAE/BmB,GAAiB,WACf,IAAIuJ,EAAQ,CACV,CAAEn+B,KAAM,SACN40B,MAAO,CAAE,CAAEoE,QAAW,CAAC,qBACd,CAAEC,QAAW,CAAC,qBAAuB,aAAc,WAC9D,CAAEj5B,KAAM,SACN40B,MAAO,CAAE,YAAa,YAAa,UAAW,WAChD,CAAE50B,KAAM,QACN40B,MAAO,CAAE,WAAY,WAAY,QAAS,WAAY,gBACxD,CAAE50B,KAAM,SACN40B,MAAO,CAAE,gBAAiB,gBAAiB,WAAY,eAAgB,gBAC9D,CAAE1b,WAAc,CAAC,uBAAwB,wBACpD,CAAE0b,MAAO,CAAE,OAAQ,QAAS,OAAQ,MAAO,QAAS,QAAS,QAAS,QAGpEqY,EAAM,CAAE,OAAQ,YA4CpB,OAnCA9O,EAAM7zB,IAAMmpB,EAAOwZ,GACnB9O,EAAM3K,MAAQC,EAFF,CAAE,SAAU,UAAW,SAAU,QAAS,SAAU,UAAW,SAI3E0K,EAAM/2B,QAAQ,SAAU8lC,GACtBA,EAAMtY,MAAQsY,EAAMtY,MAAMl1B,IAAI,SAAU+iC,GACtC,IAAI0K,EACJ,GAAsB,iBAAX1K,EAAqB,CAC9B,IAAIzmC,EAAM3B,OAAOyF,KAAK2iC,GAAS,GAC/B0K,EAAe1K,EAAQzmC,GACvBymC,EAAUzmC,EACVmxC,EAAa/lC,QAAQ,SAAU6Q,GAC7Bg1B,EAAInuC,KAAKmZ,GACTkmB,EAAM7zB,IAAI2N,IAAK,CACzB,EACA,CAOM,OANAg1B,EAAInuC,KAAK2jC,GACEtE,EAAM7zB,IAAIm4B,GAAW,CAC9BA,QAASA,EACTlP,KAAMkU,EAAYhF,GAClBC,WAAYyK,EAGpB,GAEIhP,EAAM7zB,IAAIo2B,SAAW,CACnB+B,QAAS,WACTlP,KAAMkU,EAAY/G,UAGhBwM,EAAMltC,OAAMm+B,EAAM3K,MAAM0Z,EAAMltC,MAAQktC,EAC9C,GAEE/O,EAAMrG,SAAWrE,EAAOwZ,EAAI3tC,OAxCb,CACb,UAAW,MAAO,KAAM,QAAS,SAAU,QAC3C,cAAe,UAAW,cAC1B,WAAY,WAAY,YACxB,mBAAoB,kBACpB,kBAAmB,OAAQ,UAoC7B6+B,EAAMiP,OAAS,GAERjP,CACT,E,sCqB/DA,IAAI1B,EAAkBvI,KAA2BiJ,W,OAEjDuB,GAYA,SAAS2O,EAAa1Y,EAAQ2Y,EAAMC,GAIlC,IAAIxR,EAAO9gC,KACX,GAAoC,mBAAzBA,KAAKw/B,MAAM+S,WACpB,MAAM,IAAIziC,MAAM,2CAEC,mBAARuiC,IACTC,EAAWD,EACXA,OAAO1oC,GAGT,IAAInK,EAAIgzC,EAAiB9Y,GAAQ/2B,KAAK,WACpC,IAAI8vC,EAAY3R,EAAK4R,WAAWhZ,OAAQ/vB,EAAW0oC,GACnD,OAAOI,EAAU1rC,UAAY4rC,EAAcF,EAC/C,GAEMH,GACF9yC,EAAEmD,KACA,SAASe,GAAK4uC,EAAS,KAAM5uC,EAAG,EAChC4uC,GAIJ,OAAO9yC,EAGP,SAASgzC,EAAiB/V,GACxB,IAAIuH,EAAUvH,EAAIuH,QAClB,OAAOA,IAAYlD,EAAK8R,UAAU5O,GACxBoO,EAAazyC,KAAKmhC,EAAM,CAAEG,KAAM+C,IAAW,GAC3ChiC,QAAQC,SACtB,CAGE,SAAS0wC,EAAcF,GACrB,IAAM,OAAO3R,EAAKpB,SAAS+S,EAAW,CACtC,MAAMlwC,GACJ,GAAIA,aAAai/B,EAAiB,OAKpC,SAA2Bj/B,GACzB,IAAI6W,EAAM7W,EAAEo/B,cACZ,GAAIkR,EAAMz5B,GAAM,MAAM,IAAItJ,MAAM,UAAYsJ,EAAM,kBAAoB7W,EAAEm/B,WAAa,uBAErF,IAAIoR,EAAgBhS,EAAKiS,gBAAgB35B,GACpC05B,IACHA,EAAgBhS,EAAKiS,gBAAgB35B,GAAO0nB,EAAKtB,MAAM+S,WAAWn5B,IACpDzW,KAAKqwC,EAAeA,GAGpC,OAAOF,EAAcnwC,KAAK,SAAU85B,GAClC,IAAKoW,EAAMz5B,GACT,OAAOo5B,EAAiB/V,GAAK95B,KAAK,WAC3BkwC,EAAMz5B,IAAM0nB,EAAKmS,UAAUxW,EAAKrjB,OAAKzP,EAAW0oC,EACjE,EAEA,GAAS1vC,KAAK,WACN,OAAOgwC,EAAcF,EAC7B,GAEM,SAASO,WACAlS,EAAKiS,gBAAgB35B,EACpC,CAEM,SAASy5B,EAAMz5B,GACb,OAAO0nB,EAAKzB,MAAMjmB,IAAQ0nB,EAAKxB,SAASlmB,EAChD,CACA,CAhC+C85B,CAAkB3wC,GAC3D,MAAMA,CACZ,CA+BA,CACA,E,08ECvFA,IAAIi5B,EAAa,yBACbgN,G,UCFJ2J,GAAiB,SAAyBtP,EAAIC,EAAUC,GACtD,IAOI8I,EAKFR,EAZEld,EAAM,IACNyV,EAAOf,EAAGgB,MACVC,EAAWjB,EAAGkB,UACdC,EAAUnB,EAAGnJ,OAAOoJ,GACpBmB,EAAcpB,EAAGqB,WAAarB,EAAG3K,KAAKa,YAAY+J,GAClDqB,EAAiBtB,EAAGuB,cAAgB,IAAMtB,EAC1CuB,GAAiBxB,EAAG/G,KAAKwI,UAEzB7J,EAAQ,QAAUqJ,GAAY,IAC9BS,EAAS,QAAUX,EACnByJ,EAAQ,SAAWzJ,EACnB0H,EAAUzI,EAAG/G,KAAKrB,OAASuJ,GAAWA,EAAQvJ,MAE9C6Q,GACFnd,GAAO,cAAa,EAAY,MAAS0U,EAAG3K,KAAKsC,QAAQwJ,EAAQvJ,MAAOqJ,EAAUjB,EAAGmC,aAAgB,KACrGqG,EAAe,SAAWzH,GAE1ByH,EAAerH,EAEjB,IAIImP,EAAUC,EAASC,EAAQC,EAAeC,EAJ1CpM,EAAQnnC,KACVwzC,EAAc,aAAe5P,EAC7B6P,EAAQtM,EAAM6D,WACdkC,EAAiB,GAEnB,GAAI5B,GAAWmI,EAAMhZ,MAAO,CAC1B8Y,EAAgB,kBAAoB3P,EACpC,IAAI8P,EAAkBD,EAAM3I,eAC5B3c,GAAO,QAAO,EAAmB,oBAAoB,EAAgB,sBAAsB,EAAqB,MAAK,EAAmB,YAC5I,KAAS,CAEL,KADAmlB,EAAgBzQ,EAAGiH,cAAc3C,EAAOnD,EAASnB,EAAGnJ,OAAQmJ,IACxC,OACpBwI,EAAe,kBAAoBpH,EACnCsP,EAAgBD,EAAchb,KAC9B6a,EAAWM,EAAMvU,QACjBkU,EAAUK,EAAM9I,OAChB0I,EAASI,EAAMtI,KACnB,CACE,IAAIwI,EAAYJ,EAAgB,UAC9BpN,EAAK,IAAMvC,EACXgQ,EAAW,UAAYhQ,EACvBiQ,EAAgBJ,EAAMhQ,MACxB,GAAIoQ,IAAkBhR,EAAGY,MAAO,MAAM,IAAI3zB,MAAM,gCAahD,GAZMsjC,GAAWC,IACfllB,GAAS,EAAiB,YAE5BA,GAAO,OAAM,EAAa,iBAAgB,EAAc,IACpDmd,GAAWmI,EAAMhZ,QACnByS,GAAkB,IAClB/e,GAAO,QAAO,EAAoB,qBAAoB,EAAc,qBAChEulB,IACFxG,GAAkB,IAClB/e,GAAO,IAAG,EAAc,MAAK,EAAmB,mBAAkB,EAAoB,UAAS,EAAc,SAG7GilB,EACEK,EAAMK,WACR3lB,GAAO,IAAOmlB,EAAsB,SAAI,IAExCnlB,GAAO,IAAG,EAAc,MAASmlB,EAAsB,SAAI,UAExD,GAAID,EAAQ,CACjB,IAAIvG,EAAMjK,EAAG3K,KAAKC,KAAK0K,GACnBqK,EAAiB,GACrBJ,EAAIjJ,QACJ,IAAIkJ,EAAa,QAAUD,EAAIjJ,MAC/BiJ,EAAIpT,OAAS4Z,EAAcvsC,SAC3B+lC,EAAI5I,WAAa,GACjB,IAAIqJ,EAAgB1K,EAAGgC,cACvBhC,EAAGgC,cAAgBiI,EAAIjI,eAAgB,EACvC,IAAI0C,EAAQ1E,EAAG97B,SAAS+lC,GAAK70B,QAAQ,oBAAqBs7B,GAC1D1Q,EAAGgC,cAAgBiI,EAAIjI,cAAgB0I,EACvCpf,GAAO,IAAG,CACd,KAAS,EACDqW,EAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,GACNA,GAAO,KAAI,EAAqB,UAC5B0U,EAAG/G,KAAKkR,YACV7e,GAAO,OAEPA,GAAO,OAELglB,IAA6B,IAAjBM,EAAM/Z,OACpBvL,GAAO,MAAK,EAAa,IAEzBA,GAAO,MAAK,EAAoB,MAAK,EAAa,qBAAwB0U,EAAa,WAAI,IAE7F1U,GAAO,sBACa,MAAhB0U,EAAG8G,YACLxb,GAAO,MAAS0U,EAAY,WAE9B,IAAIwD,EAAcvC,EAAW,QAAWA,EAAW,GAAM,IAAM,aAC7DiQ,EAAsBjQ,EAAWjB,EAAGmC,YAAYlB,GAAY,qBAE1DkQ,EADJ7lB,GAAO,MAAK,EAAmB,MAAK,EAA2B,kBAE/DA,EAAMqW,EAAW5gC,OACI,IAAjB6vC,EAAMvnB,QACRiC,GAAO,IAAG,EAAc,MACpB0lB,IACF1lB,GAAO,UAETA,GAAS,EAA4B,MAInCA,GAFE0lB,EAEK,SADPF,EAAY,eAAiB/P,GACE,kBAAiB,EAAc,YAAW,EAA4B,mBAAkB,EAAc,+CAA8C,EAAiB,gCAE7L,IAAG,EAAiB,YAAW,EAAc,MAAK,EAA4B,IAG7F,CAKE,GAJI6P,EAAMQ,YACR9lB,GAAO,QAAO,EAAmB,KAAI,EAAa,MAAK,EAAmB,IAAG,EAA2B,MAE1GA,GAAO,GAAE,EACLslB,EAAMpoC,MACJg5B,IACFlW,GAAO,qBAEJ,CAcL,IAGIqW,EAhBJrW,GAAO,cACaxkB,IAAhB8pC,EAAMpoC,OACR8iB,GAAO,KAELA,GADEklB,EACK,GAAE,EAEF,GAAE,GAGXllB,GAAO,KAAQslB,EAAMpoC,MAAS,IAEhC8iB,GAAO,OACP0d,EAAgB1E,EAAMK,SAClBhD,EAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACFqW,EAAaA,GAAc,IACpB3gC,KAAKsqB,GAChBA,EAAM,IACkB,IAApB0U,EAAG4B,cACLtW,GAAO,iBAAoB0d,GAAiB,UAAY,oCAA0ChJ,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,0BAA8BgD,EAAa,QAAI,QACvM,IAArBtE,EAAG/G,KAAK4I,WACVvW,GAAO,8BAAiCgZ,EAAa,QAAI,2BAEvDtE,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAET,IAAIyW,EAAQzW,EACZA,EAAMqW,EAAW5gC,OACZi/B,EAAGgC,eAAiBR,EAEnBxB,EAAGY,MACLtV,GAAO,+BAA8B,EAAa,OAElDA,GAAO,uBAAsB,EAAa,oBAG5CA,GAAO,cAAa,EAAa,+EAEnC,IAAI+lB,EAAkB/lB,EACtBA,EAAMqW,EAAW5gC,MACbwvC,EACEK,EAAMvnB,OACY,QAAhBunB,EAAMvnB,SACRiC,GAAO,cAAa,EAAU,IAAG,EAAa,KAAI,EAAU,YAAW,EAAU,aAAY,EAAgB,cAAa,EAAU,UAAS,EAAgB,4BAA2B,EAAgB,kCAAuC0U,EAAY,UAAI,SAAQ,EAAgB,gCAA+B,EAAgB,kBAAiB,EAAsB,QACzWA,EAAG/G,KAAK6I,UACVxW,GAAO,IAAG,EAAgB,aAAY,EAAoB,KAAI,EAAgB,WAAU,EAAa,MAEvGA,GAAO,QAGY,IAAjBslB,EAAMvnB,OACRiC,GAAO,IAAG,EAAuB,KAEjCA,GAAO,QAAO,EAAa,iBAAgB,EAAuB,uBAAsB,EAAU,IAAG,EAAa,KAAI,EAAU,YAAW,EAAU,aAAY,EAAgB,cAAa,EAAU,UAAS,EAAgB,4BAA2B,EAAgB,kCAAuC0U,EAAY,UAAI,SAAQ,EAAgB,gCAA+B,EAAgB,kBAAiB,EAAsB,QAC7aA,EAAG/G,KAAK6I,UACVxW,GAAO,IAAG,EAAgB,aAAY,EAAoB,KAAI,EAAgB,WAAU,EAAa,MAEvGA,GAAO,SAGFklB,GACTllB,GAAO,mBACiB,IAApB0U,EAAG4B,cACLtW,GAAO,iBAAoB0d,GAAiB,UAAY,oCAA0ChJ,EAAY,UAAI,kBAAqBA,EAAG3K,KAAK6B,eAAeoK,GAAmB,0BAA8BgD,EAAa,QAAI,QACvM,IAArBtE,EAAG/G,KAAK4I,WACVvW,GAAO,8BAAiCgZ,EAAa,QAAI,2BAEvDtE,EAAG/G,KAAK6I,UACVxW,GAAO,6BAA4B,EAAmB,mCAAsC0U,EAAa,WAAI,YAAW,EAAa,KAEvI1U,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACF0U,EAAGgC,eAAiBR,IAEnBxB,EAAGY,MACLtV,GAAO,wCAEPA,GAAO,gDAIU,IAAjBslB,EAAMvnB,OACRiC,GAAO,IAAG,EAAuB,KAEjCA,GAAO,sBAAqB,EAAiB,wCAAuC,EAAiB,mCAAkC,EAAiB,yCAAwC,EAAU,IAAG,EAAa,KAAI,EAAU,YAAW,EAAU,aAAY,EAAgB,cAAa,EAAU,UAAS,EAAgB,4BAA2B,EAAgB,kCAAuC0U,EAAY,UAAI,MAAK,EAAgB,kBAAiB,EAAsB,OACneA,EAAG/G,KAAK6I,UACVxW,GAAO,IAAG,EAAgB,aAAY,EAAoB,KAAI,EAAgB,WAAU,EAAa,MAEvGA,GAAO,eAAc,EAAuB,OAGhDA,GAAO,MACHkW,IACFlW,GAAO,WAEb,CACE,OAAOA,CACT,G,ID/NIgmB,E,gCEFJ,IAAIC,EAAanb,G,OAEjBob,GAAiB,CACflR,IAAK,4EACL1F,YAAa,CACX6W,YAAaF,EAAW3W,YAAY6W,aAEtCvvC,KAAM,SACN44B,aAAc,CACZjE,OAAQ,CAAC,YACTe,MAAO,CAAC,YACRqZ,WAAY,CAAC,UACbzoC,MAAO,CAACgyB,IAAK,CAACS,SAAU,CAAC,YAE3B7f,WAAY,CACVlZ,KAAMqvC,EAAWn2B,WAAWlZ,KAC5B20B,OAAQ,CAAC30B,KAAM,WACf+uC,WAAY,CAAC/uC,KAAM,WACnB44B,aAAc,CACZ54B,KAAM,QACNk4B,MAAO,CAACl4B,KAAM,WAEhBqvC,WAAY,CAACrvC,KAAM,UACnBkvC,UAAW,CAAClvC,KAAM,WAClBsG,MAAO,CAACtG,KAAM,WACd01B,MAAO,CAAC11B,KAAM,WACd0+B,MAAO,CAAC1+B,KAAM,WACdmnB,OAAQ,CACNqR,MAAO,CACL,CAACx4B,KAAM,WACP,CAAC84B,MAAO,W,CF5BOgB,G,OAEvB2I,GAAiB,CACf+M,IAcF,SAAoB/M,EAASwD,GAG3B,IAAI9H,EAAQljC,KAAKkjC,MACjB,GAAIA,EAAMrG,SAAS2K,GACjB,MAAM,IAAI13B,MAAM,WAAa03B,EAAU,uBAEzC,IAAKhM,EAAWhM,KAAKgY,GACnB,MAAM,IAAI13B,MAAM,WAAa03B,EAAU,8BAEzC,GAAIwD,EAAY,CACdhrC,KAAKw0C,gBAAgBxJ,GAAY,GAEjC,IAAIrT,EAAWqT,EAAWjmC,KAC1B,GAAIxF,MAAMiF,QAAQmzB,GAChB,IAAK,IAAIp3B,EAAE,EAAGA,EAAEo3B,EAASj3B,OAAQH,IAC/Bk0C,EAASjN,EAAS7P,EAASp3B,GAAIyqC,QAEjCyJ,EAASjN,EAAS7P,EAAUqT,GAG9B,IAAIoJ,EAAapJ,EAAWoJ,WACxBA,IACEpJ,EAAWvQ,OAASz6B,KAAKw/B,MAAM/E,QACjC2Z,EAAa,CACX7W,MAAO,CACL6W,EACA,CAAEnT,KAAQ,qFAIhB+J,EAAWF,eAAiB9qC,KAAKk/B,QAAQkV,GAAY,GAE3D,CAKE,SAASK,EAASjN,EAAS7P,EAAUqT,GAEnC,IADA,IAAI0J,EACKn0C,EAAE,EAAGA,EAAE2iC,EAAMxiC,OAAQH,IAAK,CACjC,IAAIo0C,EAAKzR,EAAM3iC,GACf,GAAIo0C,EAAG5vC,MAAQ4yB,EAAU,CACvB+c,EAAYC,EACZ,KACR,CACA,CAESD,IACHA,EAAY,CAAE3vC,KAAM4yB,EAAUgC,MAAO,IACrCuJ,EAAMr/B,KAAK6wC,IAGb,IAAIhvB,EAAO,CACT8hB,QAASA,EACTwD,WAAYA,EACZmH,QAAQ,EACR7Z,KAAMkQ,EACNf,WAAYuD,EAAWvD,YAEzBiN,EAAU/a,MAAM91B,KAAK6hB,GACrBwd,EAAMiP,OAAO3K,GAAW9hB,CAC5B,CAEE,OA7BAwd,EAAMrG,SAAS2K,GAAWtE,EAAM7zB,IAAIm4B,IAAW,EA6BxCxnC,IACT,EA9EE40C,IAuFF,SAAoBpN,GAElB,IAAI9hB,EAAO1lB,KAAKkjC,MAAMiP,OAAO3K,GAC7B,OAAO9hB,EAAOA,EAAKslB,WAAahrC,KAAKkjC,MAAMrG,SAAS2K,KAAY,CAClE,EA1FE19B,OAmGF,SAAuB09B,GAErB,IAAItE,EAAQljC,KAAKkjC,aACVA,EAAMrG,SAAS2K,UACftE,EAAM7zB,IAAIm4B,UACVtE,EAAMiP,OAAO3K,GACpB,IAAK,IAAIjnC,EAAE,EAAGA,EAAE2iC,EAAMxiC,OAAQH,IAE5B,IADA,IAAIo5B,EAAQuJ,EAAM3iC,GAAGo5B,MACZ7L,EAAE,EAAGA,EAAE6L,EAAMj5B,OAAQotB,IAC5B,GAAI6L,EAAM7L,GAAG0Z,SAAWA,EAAS,CAC/B7N,EAAMvL,OAAON,EAAG,GAChB,KACR,CAGE,OAAO9tB,IACT,EAlHE+G,SA4HF,SAASytC,EAAgBxJ,EAAY6J,GACnCL,EAAgBtoB,OAAS,KACzB,IAAIxoB,EAAI1D,KAAK80C,iBAAmB90C,KAAK80C,kBACF90C,KAAKk/B,QAAQiV,GAAkB,GAElE,GAAIzwC,EAAEsnC,GAAa,OAAO,EAE1B,GADAwJ,EAAgBtoB,OAASxoB,EAAEwoB,OACvB2oB,EACF,MAAM,IAAI/kC,MAAM,yCAA4C9P,KAAKkrC,WAAWxnC,EAAEwoB,SAE9E,OAAO,CACX,G,4aG/IA,IAAI6oB,EAAgB9b,KAChBh3B,EAAU48B,KACVmW,E,wCCDJ,IAAIA,EAAQC,GAAApZ,QAAiB,WAC3B77B,KAAKk1C,OAAS,EAChB,E,OAGAF,EAAMv1C,UAAU01C,IAAM,SAAmBp0C,EAAKqB,GAC5CpC,KAAKk1C,OAAOn0C,GAAOqB,CACrB,EAGA4yC,EAAMv1C,UAAUm1C,IAAM,SAAmB7zC,GACvC,OAAOf,KAAKk1C,OAAOn0C,EACrB,EAGAi0C,EAAMv1C,UAAU21C,IAAM,SAAmBr0C,UAChCf,KAAKk1C,OAAOn0C,EACrB,EAGAi0C,EAAMv1C,UAAU41C,MAAQ,WACtBr1C,KAAKk1C,OAAS,EAChB,E,WDrBYpW,GACRC,EAAeC,KACf6I,EAAkB5I,KAClBoK,E,gCELJ,IAAInR,EAAOe,KAEPqc,EAAO,6BACPC,EAAO,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAC3CC,EAAO,0DACPC,EAAW,wGACX7W,EAAM,+nCAGN8W,EAAc,oLAKdz1B,EAAM,grDACN+W,EAAO,+DACP8D,EAAe,4BACf6a,EAA4B,+DAC5B5a,EAAwB,mDAK5B,SAASsO,EAAQ12B,GAEf,OADAA,EAAe,QAARA,EAAiB,OAAS,OAC1BulB,EAAKC,KAAKkR,EAAQ12B,GAC3B,CA6DA,SAASijC,EAAK1tB,GAEZ,IAAIkJ,EAAUlJ,EAAI0I,MAAM0kB,GACxB,IAAKlkB,EAAS,OAAO,EAErB,IAAIykB,GAAQzkB,EAAQ,GAChB0kB,GAAS1kB,EAAQ,GACjB2kB,GAAO3kB,EAAQ,GAEnB,OAAO0kB,GAAS,GAAKA,GAAS,IAAMC,GAAO,GACnCA,IAAiB,GAATD,GAhBlB,SAAoBD,GAElB,OAAOA,EAAO,GAAM,IAAMA,EAAO,KAAQ,GAAKA,EAAO,KAAQ,EAC/D,CAagCG,CAAWH,GAAQ,GAAKN,EAAKO,GAC7D,CAGA,SAASG,EAAK/tB,EAAKguB,GACjB,IAAI9kB,EAAUlJ,EAAI0I,MAAM4kB,GACxB,IAAKpkB,EAAS,OAAO,EAErB,IAAI+kB,EAAO/kB,EAAQ,GACfglB,EAAShlB,EAAQ,GACjBilB,EAASjlB,EAAQ,GACjBklB,EAAWllB,EAAQ,GACvB,OAAS+kB,GAAQ,IAAMC,GAAU,IAAMC,GAAU,IAChC,IAARF,GAAwB,IAAVC,GAA0B,IAAVC,MAC9BH,GAAQI,EACnB,CA3FAC,GAAiBlN,EAQjBA,EAAQmN,KAAO,CAEbZ,KAAM,6BAENK,KAAM,8EACN,YAAa,0GAEbxhB,IAAK,6CACL,gBAAiB,0EACjB,eAAgBihB,EAChBjlC,IAAKwP,EAILw2B,MAAO,mHACPC,SAAUjB,EAEVkB,KAAM,4EAENC,KAAM,qpCACNC,MAAOA,EAEP3f,KAAMF,EAGN,eAAgB8D,EAChB,4BAA6B6a,EAE7B,wBAAyB5a,GAI3BsO,EAAQ6M,KAAO,CACbN,KAAMA,EACNK,KAAMA,EACN,YAoDF,SAAmB/tB,GAEjB,IAAI4uB,EAAW5uB,EAAIpU,MAAMijC,GACzB,OAA0B,GAAnBD,EAASp2C,QAAek1C,EAAKkB,EAAS,KAAOb,EAAKa,EAAS,IAAI,EACxE,EAvDEriB,IA2DF,SAAavM,GAEX,OAAO8uB,EAAiBxnB,KAAKtH,IAAQ0W,EAAIpP,KAAKtH,EAChD,EA7DE,gBA3DW,yoCA4DX,eAAgBwtB,EAChBjlC,IAAKwP,EACLw2B,MAAO,2IACPC,SAAUjB,EACVkB,KAAM,4EACNC,KAAM,qpCACNC,MAAOA,EACP3f,KAAMF,EACN,eAAgB8D,EAChB,4BAA6B6a,EAC7B,wBAAyB5a,GAsC3B,IAAIgc,EAAsB,QAQtBC,EAAmB,OAOnBC,EAAW,WACf,SAASJ,EAAM3uB,GACb,GAAI+uB,EAASznB,KAAKtH,GAAM,OAAO,EAC/B,IAEE,OADA,IAAIqC,OAAOrC,IACJ,CACX,CAAI,MAAM3lB,GACN,OAAO,CACX,CACA,C,UFtIcwlC,GACVpO,EAAQud,KACRC,E,gCGPJ,IAAIC,EAAW,CACb,aACA,UACA,mBACA,UACA,mBACA,YACA,YACA,UACA,kBACA,WACA,WACA,cACA,gBACA,gBACA,WACA,uBACA,OACA,SACA,S,OAGFpxC,GAAiB,SAAUouC,EAAYiD,GACrC,IAAK,IAAI92C,EAAE,EAAGA,EAAE82C,EAAqB32C,OAAQH,IAAK,CAChD6zC,EAAazvC,KAAK6I,MAAM7I,KAAKL,UAAU8vC,IACvC,IAEItmB,EAFAkN,EAAWqc,EAAqB92C,GAAGuT,MAAM,KACzC+oB,EAAWuX,EAEf,IAAKtmB,EAAE,EAAGA,EAAEkN,EAASt6B,OAAQotB,IAC3B+O,EAAWA,EAAS7B,EAASlN,IAE/B,IAAKA,EAAE,EAAGA,EAAEspB,EAAS12C,OAAQotB,IAAK,CAChC,IAAI/sB,EAAMq2C,EAAStpB,GACf4L,EAASmD,EAAS97B,GAClB24B,IACFmD,EAAS97B,GAAO,CACdw8B,MAAO,CACL7D,EACA,CAAEuH,KAAM,oFAIpB,CACA,CAEE,OAAOmT,CACT,E,GHvCsBkD,GAClBpf,EAAOqf,KAEXvV,GAAiBwV,EAEjBA,EAAI/3C,UAAUsH,SA0Ed,SAAkB0wC,EAAczxC,GAC9B,IAAItC,EACJ,GAA2B,iBAAhB+zC,GAET,KADA/zC,EAAI1D,KAAK4yC,UAAU6E,IACX,MAAM,IAAI3nC,MAAM,8BAAgC2nC,EAAe,SAClE,CACL,IAAIhF,EAAYzyC,KAAK0yC,WAAW+E,GAChC/zC,EAAI+uC,EAAU1rC,UAAY/G,KAAK0/B,SAAS+S,EAC5C,CAEE,IAAIpnC,EAAQ3H,EAAEsC,IACG,IAAbtC,EAAEs/B,SAAiBhjC,KAAKksB,OAASxoB,EAAEwoB,QACvC,OAAO7gB,CACT,EAtFAmsC,EAAI/3C,UAAUy/B,QAgGd,SAAiBxF,EAAQtrB,GACvB,IAAIqkC,EAAYzyC,KAAK0yC,WAAWhZ,OAAQ/vB,EAAWyE,GACnD,OAAOqkC,EAAU1rC,UAAY/G,KAAK0/B,SAAS+S,EAC7C,EAlGA+E,EAAI/3C,UAAUwzC,UA8Gd,SAAmBvZ,EAAQ34B,EAAK22C,EAAiBtpC,GAC/C,GAAI7O,MAAMiF,QAAQk1B,GAAQ,CACxB,IAAK,IAAIn5B,EAAE,EAAGA,EAAEm5B,EAAOh5B,OAAQH,IAAKP,KAAKizC,UAAUvZ,EAAOn5B,QAAIoJ,EAAW+tC,EAAiBtpC,GAC1F,OAAOpO,IACX,CACE,IAAImF,EAAKnF,KAAKigC,OAAOvG,GACrB,QAAW/vB,IAAPxE,GAAiC,iBAANA,EAC7B,MAAM,IAAI2K,MAAM,4BAIlB,OAHA/O,EAAMkB,EAAQi+B,YAAYn/B,GAAOoE,GACjCwyC,EAAY33C,KAAMe,GAClBf,KAAKs/B,SAASv+B,GAAOf,KAAK0yC,WAAWhZ,EAAQge,EAAiBtpC,GAAO,GAC9DpO,IACT,EAzHAw3C,EAAI/3C,UAAUm4C,cAqId,SAAuBle,EAAQ34B,EAAK82C,GAElC,OADA73C,KAAKizC,UAAUvZ,EAAQ34B,EAAK82C,GAAgB,GACrC73C,IACT,EAvIAw3C,EAAI/3C,UAAUqrC,eAiJd,SAAwBpR,EAAQoe,GAC9B,IAAI9T,EAAUtK,EAAOsK,QACrB,QAAgBr6B,IAAZq6B,GAA2C,iBAAXA,EAClC,MAAM,IAAIl0B,MAAM,4BAElB,GADAk0B,EAAUA,GAAWhkC,KAAKw/B,MAAMuY,aAgBlC,SAAqBjX,GACnB,IAAIuR,EAAOvR,EAAKtB,MAAM6S,KAMtB,OALAvR,EAAKtB,MAAMuY,YAA6B,iBAAR1F,EACJvR,EAAKb,OAAOoS,IAASA,EACrBvR,EAAK8R,UAAUoF,GACbA,OACAruC,EACvBm3B,EAAKtB,MAAMuY,WACpB,CAxBiDA,CAAY/3C,OACtDgkC,EAGH,OAFAhkC,KAAKujC,OAAOvkB,KAAK,6BACjBhf,KAAKksB,OAAS,MACP,EAET,IAAI7gB,EAAQrL,KAAK+G,SAASi9B,EAAStK,GACnC,IAAKruB,GAASysC,EAAiB,CAC7B,IAAIrW,EAAU,sBAAwBzhC,KAAKkrC,aAC3C,GAAiC,OAA7BlrC,KAAKw/B,MAAMsL,eACV,MAAM,IAAIh7B,MAAM2xB,GADmBzhC,KAAKujC,OAAOjX,MAAMmV,EAE9D,CACE,OAAOp2B,CACT,EAjKAmsC,EAAI/3C,UAAUmzC,UAqLd,SAAmBqF,GACjB,IAAIxF,EAAYyF,EAAcl4C,KAAMi4C,GACpC,cAAexF,GACb,IAAK,SAAU,OAAOA,EAAU1rC,UAAY/G,KAAK0/B,SAAS+S,GAC1D,IAAK,SAAU,OAAOzyC,KAAK4yC,UAAUH,GACrC,IAAK,YAAa,OAKtB,SAA4B3R,EAAM1nB,GAChC,IAAIwmB,EAAM39B,EAAQy3B,OAAO/5B,KAAKmhC,EAAM,CAAEpH,OAAQ,IAAMtgB,GACpD,GAAIwmB,EAAK,CACP,IAAIlG,EAASkG,EAAIlG,OACbyF,EAAOS,EAAIT,KACXQ,EAASC,EAAID,OACbj8B,EAAIqxC,EAAcp1C,KAAKmhC,EAAMpH,EAAQyF,OAAMx1B,EAAWg2B,GAS1D,OARAmB,EAAKqX,WAAW/+B,GAAO,IAAI2lB,EAAa,CACtC3lB,IAAKA,EACL6X,UAAU,EACVyI,OAAQA,EACRyF,KAAMA,EACNQ,OAAQA,EACR54B,SAAUrD,IAELA,CACX,CACA,CAtB6B00C,CAAmBp4C,KAAMi4C,GAEtD,EA3LAT,EAAI/3C,UAAU44C,aAiOd,SAAsBZ,GACpB,GAAIA,aAAwBltB,OAG1B,OAFA+tB,EAAkBt4C,KAAMA,KAAKs/B,SAAUmY,GACvCa,EAAkBt4C,KAAMA,KAAKq/B,MAAOoY,GAC7Bz3C,KAET,cAAey3C,GACb,IAAK,YAIH,OAHAa,EAAkBt4C,KAAMA,KAAKs/B,UAC7BgZ,EAAkBt4C,KAAMA,KAAKq/B,OAC7Br/B,KAAKk1C,OAAOG,QACLr1C,KACT,IAAK,SACH,IAAIyyC,EAAYyF,EAAcl4C,KAAMy3C,GAIpC,OAHIhF,GAAWzyC,KAAKk1C,OAAOE,IAAI3C,EAAU8F,iBAClCv4C,KAAKs/B,SAASmY,UACdz3C,KAAKq/B,MAAMoY,GACXz3C,KACT,IAAK,SACH,IAAI8zB,EAAY9zB,KAAKw/B,MAAM1L,UACvBykB,EAAWzkB,EAAYA,EAAU2jB,GAAgBA,EACrDz3C,KAAKk1C,OAAOE,IAAImD,GAChB,IAAIpzC,EAAKnF,KAAKigC,OAAOwX,GACjBtyC,IACFA,EAAKlD,EAAQi+B,YAAY/6B,UAClBnF,KAAKs/B,SAASn6B,UACdnF,KAAKq/B,MAAMl6B,IAGxB,OAAOnF,IACT,EA9PAw3C,EAAI/3C,UAAU+4C,UA4Zd,SAAmBpzC,EAAM8H,GACF,iBAAVA,IAAoBA,EAAS,IAAIqd,OAAOrd,IAEnD,OADAlN,KAAKspC,SAASlkC,GAAQ8H,EACflN,IACT,EA/ZAw3C,EAAI/3C,UAAUyrC,WAoYd,SAAoBhf,EAAQ0G,GAE1B,KADA1G,EAASA,GAAUlsB,KAAKksB,QACX,MAAO,YAMpB,IAJA,IAAIusB,OAAkC9uC,KADtCipB,EAAUA,GAAW,IACG6lB,UAA0B,KAAO7lB,EAAQ6lB,UAC7Dnf,OAA8B3vB,IAApBipB,EAAQ0G,QAAwB,OAAS1G,EAAQ0G,QAE3DpgB,EAAO,GACF3Y,EAAE,EAAGA,EAAE2rB,EAAOxrB,OAAQH,IAAK,CAClC,IAAIgC,EAAI2pB,EAAO3rB,GACXgC,IAAG2W,GAAQogB,EAAU/2B,EAAEm2C,SAAW,IAAMn2C,EAAEk/B,QAAUgX,EAC5D,CACE,OAAOv/B,EAAK9U,MAAM,GAAIq0C,EAAU/3C,OAClC,EA/YA82C,EAAI/3C,UAAUizC,WA0Qd,SAAoBhZ,EAAQme,EAAgBxF,EAAMsG,GAChD,GAAqB,iBAAVjf,GAAuC,kBAAVA,EACtC,MAAM,IAAI5pB,MAAM,sCAClB,IAAIgkB,EAAY9zB,KAAKw/B,MAAM1L,UACvBykB,EAAWzkB,EAAYA,EAAU4F,GAAUA,EAC3Ckf,EAAS54C,KAAKk1C,OAAON,IAAI2D,GAC7B,GAAIK,EAAQ,OAAOA,EAEnBD,EAAkBA,IAAgD,IAA7B34C,KAAKw/B,MAAMqZ,cAEhD,IAAI1zC,EAAKlD,EAAQi+B,YAAYlgC,KAAKigC,OAAOvG,IACrCv0B,GAAMwzC,GAAiBhB,EAAY33C,KAAMmF,GAE7C,IACI2zC,EADAC,GAA6C,IAA9B/4C,KAAKw/B,MAAMsL,iBAA6B+M,EAEvDkB,KAAkBD,EAAgB3zC,GAAMA,GAAMlD,EAAQi+B,YAAYxG,EAAOsK,WAC3EhkC,KAAK8qC,eAAepR,GAAQ,GAE9B,IAAImH,EAAY5+B,EAAQw+B,IAAI9gC,KAAKK,KAAM05B,GAEnC+Y,EAAY,IAAI1T,EAAa,CAC/B55B,GAAIA,EACJu0B,OAAQA,EACRmH,UAAWA,EACX0X,SAAUA,EACVlG,KAAMA,IAGK,KAATltC,EAAG,IAAawzC,IAAiB34C,KAAKq/B,MAAMl6B,GAAMstC,GACtDzyC,KAAKk1C,OAAOC,IAAIoD,EAAU9F,GAEtBsG,GAAgBD,GAAe94C,KAAK8qC,eAAepR,GAAQ,GAE/D,OAAO+Y,CACT,EA3SA+E,EAAI/3C,UAAUigC,SA+Sd,SAAkB+S,EAAWtT,GAC3B,GAAIsT,EAAUtK,UAOZ,OANAsK,EAAU1rC,SAAWqiC,EACrBA,EAAa1P,OAAS+Y,EAAU/Y,OAChC0P,EAAald,OAAS,KACtBkd,EAAajK,KAAOA,GAAciK,GACF,IAA5BqJ,EAAU/Y,OAAOsJ,SACnBoG,EAAapG,QAAS,GACjBoG,EAIT,IAAI4P,EAMAt1C,EARJ+uC,EAAUtK,WAAY,EAGlBsK,EAAUJ,OACZ2G,EAAch5C,KAAKw/B,MACnBx/B,KAAKw/B,MAAQx/B,KAAKi5C,WAIpB,IAAMv1C,EAAIqxC,EAAcp1C,KAAKK,KAAMyyC,EAAU/Y,OAAQyF,EAAMsT,EAAU5R,UAAW,CAChF,MAAMt+B,GAEJ,aADOkwC,EAAU1rC,SACXxE,CACV,CACU,QACNkwC,EAAUtK,WAAY,EAClBsK,EAAUJ,OAAMryC,KAAKw/B,MAAQwZ,EACrC,CAME,OAJAvG,EAAU1rC,SAAWrD,EACrB+uC,EAAUhrC,KAAO/D,EAAE+D,KACnBgrC,EAAUrT,OAAS17B,EAAE07B,OACrBqT,EAAUtT,KAAOz7B,EAAEy7B,KACZz7B,EAIP,SAAS0lC,IAEP,IAAI8P,EAAYzG,EAAU1rC,SACtBtE,EAASy2C,EAAUv4C,MAAMX,KAAMS,WAEnC,OADA2oC,EAAald,OAASgtB,EAAUhtB,OACzBzpB,CACX,CACA,EAzVA+0C,EAAI/3C,UAAU2yC,aAAe+G,KAC7B,IAAIC,EAAgBC,KACpB7B,EAAI/3C,UAAU65C,WAAaF,EAAc7E,IACzCiD,EAAI/3C,UAAU85C,WAAaH,EAAcxE,IACzC4C,EAAI/3C,UAAU+5C,cAAgBJ,EAActvC,OAC5C0tC,EAAI/3C,UAAU+0C,gBAAkB4E,EAAcryC,SAE9C,IAAI6gC,EAAegI,KACnB4H,EAAIxP,gBAAkBJ,EAAa7F,WACnCyV,EAAIhW,gBAAkBoG,EAAa1F,WACnCsV,EAAIL,gBAAkBA,EAEtB,IAAIa,EAAiB,yCAEjByB,EAAsB,CAAE,mBAAoB,cAAe,cAAe,kBAC1EC,EAAoB,CAAC,eAQzB,SAASlC,EAAI1b,GACX,KAAM97B,gBAAgBw3C,GAAM,OAAO,IAAIA,EAAI1b,GAC3CA,EAAO97B,KAAKw/B,MAAQtH,EAAKC,KAAK2D,IAAS,GAwbzC,SAAmBgF,GACjB,IAAIyC,EAASzC,EAAKtB,MAAM+D,OACxB,IAAe,IAAXA,EACFzC,EAAKyC,OAAS,CAACoW,IAAKC,EAAM56B,KAAM46B,EAAMttB,MAAOstB,OACxC,CAEL,QADejwC,IAAX45B,IAAsBA,EAASxkB,WACZ,iBAAVwkB,GAAsBA,EAAOoW,KAAOpW,EAAOvkB,MAAQukB,EAAOjX,OACrE,MAAM,IAAIxc,MAAM,qDAClBgxB,EAAKyC,OAASA,CAClB,CACA,CAjcEsW,CAAU75C,MACVA,KAAKs/B,SAAW,GAChBt/B,KAAKq/B,MAAQ,GACbr/B,KAAKm4C,WAAa,GAClBn4C,KAAKspC,SAAWD,EAAQvN,EAAK5uB,QAE7BlN,KAAKk1C,OAASpZ,EAAKge,OAAS,IAAI9E,EAChCh1C,KAAK+yC,gBAAkB,GACvB/yC,KAAKooC,cAAgB,GACrBpoC,KAAKkjC,MAAQvJ,IACb35B,KAAKigC,OAwTP,SAAqBnE,GACnB,OAAQA,EAAK4E,UACX,IAAK,OAAQ,OAAOqZ,EACpB,IAAK,KAAM,OAAO9Z,EAClB,QAAS,OAAO+Z,EAEpB,CA9TgBC,CAAYne,GAE1BA,EAAKqV,aAAerV,EAAKqV,cAAgB7P,IACf,YAAtBxF,EAAKoe,gBAA6Bpe,EAAK2S,wBAAyB,QAC7C9kC,IAAnBmyB,EAAKhI,YAAyBgI,EAAKhI,UAAY+T,GACnD7nC,KAAKi5C,UAgaP,SAA8BnY,GAE5B,IADA,IAAIqZ,EAAWjiB,EAAKC,KAAK2I,EAAKtB,OACrBj/B,EAAE,EAAGA,EAAEk5C,EAAoB/4C,OAAQH,WACnC45C,EAASV,EAAoBl5C,IACtC,OAAO45C,CACT,CAramBC,CAAqBp6C,MAElC87B,EAAKuN,SAwYX,SAA2BvI,GACzB,IAAK,IAAI17B,KAAQ07B,EAAKtB,MAAM6J,QAAS,CACnC,IAAIn8B,EAAS4zB,EAAKtB,MAAM6J,QAAQjkC,GAChC07B,EAAK0X,UAAUpzC,EAAM8H,EACzB,CACA,CA7YoBmtC,CAAkBr6C,MAChC87B,EAAKe,UA+YX,SAA4BiE,GAC1B,IAAK,IAAI17B,KAAQ07B,EAAKtB,MAAM3C,SAAU,CACpC,IAAI2K,EAAU1G,EAAKtB,MAAM3C,SAASz3B,GAClC07B,EAAKwY,WAAWl0C,EAAMoiC,EAC1B,CACA,CApZqB8S,CAAmBt6C,MAiXxC,SAA8B8gC,GAC5B,IAAIyZ,EACAzZ,EAAKtB,MAAM/E,QACb8f,EAAc1K,GACd/O,EAAK8W,cAAc2C,EAAaA,EAAYpX,KAAK,IAEnD,IAAwB,IAApBrC,EAAKtB,MAAM6S,KAAgB,OAC/B,IAAI+B,EAAatE,GACbhP,EAAKtB,MAAM/E,QAAO2Z,EAAa+C,EAAgB/C,EAAYsF,IAC/D5Y,EAAK8W,cAAcxD,EAAY4D,GAAgB,GAC/ClX,EAAKzB,MAAM,iCAAmC2Y,CAChD,CA3XEwC,CAAqBx6C,MACG,iBAAb87B,EAAKuW,MAAkBryC,KAAK43C,cAAc9b,EAAKuW,MACtDvW,EAAKnW,UAAU3lB,KAAKs5C,WAAW,WAAY,CAAClF,WAAY,CAACrvC,KAAM,aA4XrE,SAA2B+7B,GACzB,IAAI2Z,EAAc3Z,EAAKtB,MAAMkb,QAC7B,IAAKD,EAAa,OAClB,GAAIl7C,MAAMiF,QAAQi2C,GAAc3Z,EAAKmS,UAAUwH,QAC1C,IAAK,IAAI15C,KAAO05C,EAAa3Z,EAAKmS,UAAUwH,EAAY15C,GAAMA,EACrE,CAhYE45C,CAAkB36C,KACpB,CA0JA,SAASk4C,EAAcpX,EAAMmX,GAE3B,OADAA,EAASh2C,EAAQi+B,YAAY+X,GACtBnX,EAAKxB,SAAS2Y,IAAWnX,EAAKzB,MAAM4Y,IAAWnX,EAAKqX,WAAWF,EACxE,CA6CA,SAASK,EAAkBxX,EAAM4Z,EAAS7D,GACxC,IAAK,IAAIoB,KAAUyC,EAAS,CAC1B,IAAIjI,EAAYiI,EAAQzC,GACnBxF,EAAUJ,MAAUwE,IAASA,EAAMrnB,KAAKyoB,KAC3CnX,EAAKoU,OAAOE,IAAI3C,EAAU8F,iBACnBmC,EAAQzC,GAErB,CACA,CAkGA,SAAShY,EAAOvG,GAEd,OADIA,EAAOyJ,KAAKnjC,KAAKujC,OAAOvkB,KAAK,qBAAsB0a,EAAOyJ,KACvDzJ,EAAOv0B,EAChB,CAGA,SAAS60C,EAAQtgB,GAEf,OADIA,EAAOv0B,IAAInF,KAAKujC,OAAOvkB,KAAK,oBAAqB0a,EAAOv0B,IACrDu0B,EAAOyJ,GAChB,CAGA,SAAS4W,EAAYrgB,GACnB,GAAIA,EAAOyJ,KAAOzJ,EAAOv0B,IAAMu0B,EAAOyJ,KAAOzJ,EAAOv0B,GAClD,MAAM,IAAI2K,MAAM,mCAClB,OAAO4pB,EAAOyJ,KAAOzJ,EAAOv0B,EAC9B,CA8EA,SAASwyC,EAAY7W,EAAM37B,GACzB,GAAI27B,EAAKxB,SAASn6B,IAAO27B,EAAKzB,MAAMl6B,GAClC,MAAM,IAAI2K,MAAM,0BAA4B3K,EAAK,mBACrD,CAwBA,SAASy0C,IAAO,C,kteIrfVpC,GAAOoD,IAAwBC,GAExBC,GAAqBC,GAE5BnoB,GAAwB,CAC1B0R,WAAW,EACXK,SAAS,EACTzK,cAAc,GAyBZ,SAAU8gB,GAAU9vC,GACtB,OAvBJ,SAAoBA,EAAkCwuB,GAClD,IACM3yB,EADgB,IAAIywC,GAAI5kB,IACTsM,QAAQxF,GAE7B,MAAO,CACHuhB,QAFYl0C,EAASmE,GAGrBghB,OAAQnlB,EAASmlB,OAEzB,CAeWgvB,CAAWhwC,EAAK6vC,GAC3B,CC9BM,SAAUI,GAAa/hC,GACzB,YAAwCzP,IAAhCyP,EAAoB0N,cAA8Dnd,IAApCyP,EAAoBP,kBAAgElP,IAAlCyP,EAAoBgE,SAChI,CCJA,SAASg+B,GAAa71B,EAAuC81B,EAAYt+B,GACrE,IAAMu+B,EAA0B,iBAARv+B,EACxB,OAAQwI,GACJ,IAAK,KACD,OAAO,SAACg2B,GAAa,OAAAD,GAAoC,iBAAjBC,EAASF,GAAmBE,EAASF,GAAIG,SAAWz+B,EAAMw+B,EAASF,KAAQt+B,CAA9F,EACzB,IAAK,KACD,OAAO,SAACw+B,GAAa,OAAAD,GAAoC,iBAAjBC,EAASF,GAAmBE,EAASF,GAAIG,SAAWz+B,EAAMw+B,EAASF,KAAQt+B,CAA9F,EACzB,IAAK,IACD,OAAO,SAACw+B,GAAa,OAAAA,EAASF,GAAMt+B,CAAf,EACzB,IAAK,KACD,OAAO,SAACw+B,GAAa,OAAAA,EAASF,IAAOt+B,CAAhB,EACzB,IAAK,IACD,OAAO,SAACw+B,GAAa,OAAAA,EAASF,GAAMt+B,CAAf,EACzB,IAAK,KACD,OAAO,SAACw+B,GAAa,OAAAA,EAASF,IAAOt+B,CAAhB,EACzB,QACI,MAAM,IAAIjN,MAAM,8BAAAzL,OAA8BkhB,IAE1D,CAEA,IAAAk2B,GAAA,SAAAj2C,GA2CI,SAAAi2C,IACI,OAAAj2C,EAAK7F,KAAAK,OAAEA,IACX,CAgGJ,OA7ImCJ,EAAA67C,EAAAj2C,GAwB/Bi2C,EAAAh8C,UAAAsH,SAAA,SAASkN,GACL,IAAMjL,EAA2B,GAejC,OAdKhJ,KAAKsU,qBACNtL,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,gBACjBE,IAAK,0BAAA9P,OAA0BrE,KAAKuU,cAAa,KACjDH,KAAM,cAAA/P,OAAcM,KAAKL,UAAUtE,KAAKwU,sBAG3CxU,KAAK07C,oBACN1yC,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,eACjBE,IAAK,yBAAA9P,OAAyBrE,KAAK4U,aAAY,KAC/CR,KAAM,cAAA/P,OAAcM,KAAKL,UAAUtE,KAAKmH,kBAGzC6B,CACX,EAQAyyC,EAAAh8C,UAAA0L,MAAA,SAAMnI,GACF,OAAKvC,UAAUC,QACfV,KAAKoL,OAASpI,EACPhD,MAFuBA,KAAKoL,MAGvC,EAEAqwC,EAAAh8C,UAAA4L,MAAA,WACI,OAAOrL,KAAKuV,qBAAuBvV,KAAKsV,oBAC5C,EAEAmmC,EAAAh8C,UAAAgL,MAAA,WACI,MAAO,CACHiK,cAAe1U,KAAKuU,cACpBI,aAAc3U,KAAK4U,aACnB2Q,UAAWvlB,KAAKulB,YAChBI,SAAU3lB,KAAK2lB,WAEvB,EAEA81B,EAAAh8C,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KACFuU,YAAYrJ,EAAIwJ,eAChBE,WAAW1J,EAAIyJ,cACf4Q,UAAUra,EAAIqa,WACdI,SAASza,EAAIya,SAEtB,EAEO81B,EAAAxwC,QAAP,SAAeC,GACX,OAAO,IAAIuwC,GAAgBxwC,QAAQC,EACvC,EAEAuwC,EAAAh8C,UAAAiH,KAAA,WACI,OAAOE,UAAQ,CACX2N,YAAavU,KAAKuU,cAClBK,WAAY5U,KAAK4U,aACjB2Q,UAAWvlB,KAAKulB,YAChBI,SAAU3lB,KAAK2lB,YAEvB,EAEA81B,EAAAh8C,UAAA0H,YAAA,WACI,OAAOnH,KAAKoL,OAAOnE,WAAWxC,IAAI,SAAA2B,GAAS,OAAAA,EAAMjB,EAAN,EAC/C,EAEAs2C,EAAAh8C,UAAA+U,gBAAA,WACI,OAAOxU,KAAKoL,OAAOoJ,kBAAkB/P,IAAI,SAAA2B,GAAS,OAAAA,EAAMjB,EAAN,EACtD,EAEAs2C,EAAAh8C,UAAAk8C,aAAA,SAAaC,GACT,IAAM/uC,EAAK7M,KAAKuU,cAChB,OAAOqnC,EAAgBn3C,IAAI,SAAAo3C,GACvB,IAAM7yC,EAAS6yC,EAAIhvC,GACnB,MAAsB,iBAAX7D,EACAA,EAAOwyC,OAEXxyC,CACX,EACJ,EAEAyyC,EAAAh8C,UAAAq8C,wBAAA,SAAwBF,GACpB,OAAQ57C,KAAKulB,aACT,IAAK,KACL,IAAK,QACD,MAAO,GAAAlhB,OAAGrE,KAAK4U,aAAY,KAAAvQ,OAAIrE,KAAKulB,YAAW,MAAAlhB,OAAKrE,KAAK27C,aAAaC,GAAiBl3C,KAAK,MAAK,KACrG,QACI,MAAO,GAAAL,OAAGrE,KAAK4U,aAAY,KAAAvQ,OAAIrE,KAAKulB,YAAW,KAAAlhB,OAAIrE,KAAK27C,aAAaC,GAAiB,IAElG,EAEAH,EAAAh8C,UAAA27C,aAAA,SAAaQ,GACT,IAAMP,EAAKr7C,KAAK4U,aACVmnC,EAAQ/7C,KAAK27C,aAAaC,GAChC,OAAQ57C,KAAKulB,aACT,IAAK,QACD,OAAIvlB,KAAK2lB,aAAeo2B,EAAMr7C,OAAS,GAAKq7C,EAAM,KAAOA,EAAM,IACpD,SAACR,GAAa,UAElB,SAACA,GAAa,OAAAA,EAASF,IAAOU,EAAM,IAAMR,EAASF,IAAOU,EAAM,EAAlD,EACzB,IAAK,KACD,OAAI/7C,KAAK2lB,YAA+B,IAAjBo2B,EAAMr7C,OAClB,SAAC66C,GAAa,UAElB,SAACA,GAAa,OAAAQ,EAAMC,KAAK,SAAAC,GAAM,MAAwB,iBAAjBV,EAASF,GAAmBE,EAASF,GAAIG,SAAWS,EAAKV,EAASF,KAAQY,CAAjF,EAAjB,EACzB,QACI,IAAMC,EAAMH,EAAM,GAClB,OAAI/7C,KAAK2lB,YAAeu2B,SAA6C,KAARA,EAGtDd,GAAap7C,KAAKulB,YAAa81B,EAAIa,GAF/B,SAACX,GAAa,UAIrC,EApIA36C,EAAA,CALC8J,UAAQ,KAAM,MAAO,gBAAiB,WAAiC,OAAO1K,KAAKwU,iBAAmB,EAAG,CACtG9I,UAAU,EACVE,QAAS,SAACC,GAA8B,OAACA,EAAET,OAAOlC,QAAV,EACxCnC,SAAU,SAAC8E,GAA8B,OAAAA,EAAE2I,kBAAkBnN,QAAQwE,EAAE0I,gBAAkB,CAAhD,I,2BAEVknC,EAAAh8C,UAAA,sBAQnCmB,EAAA,CALC8J,UAAQ,KAAM,MAAO,eAAgB,WAAiC,OAAO1K,KAAKmH,aAAe,EAAG,CACjGuE,UAAU,EACVE,QAAS,SAACC,GAA8B,OAACA,EAAET,OAAOlC,QAAV,EACxCnC,SAAU,SAAC8E,GAA8B,OAAAA,EAAE1E,cAAcE,QAAQwE,EAAE+I,eAAiB,CAA3C,I,2BAEX6mC,EAAAh8C,UAAA,qBAIlCmB,EAAA,CADC8J,UAAQ,KAAM,MAAO,gBAAiB,CAAC,KAAM,KAAM,IAAK,KAAM,IAAK,KAAM,QAAS,O,2BAC9B+wC,EAAAh8C,UAAA,oBAErDmB,EAAA,CADC8J,WAAQ,EAAO,UAAW,uB,2BACM+wC,EAAAh8C,UAAA,mBAuHrCg8C,C,CA7IA,CAAmCpzC,eA8InCozC,GAAch8C,UAAUgJ,QAAU,iBAElC,IAAA0zC,GAAA,SAAA32C,GAmCI,SAAA22C,IACI,OAAA32C,EAAK7F,KAAAK,OAAEA,IACX,CA+FJ,OApIkCJ,EAAAu8C,EAAA32C,GAa9B22C,EAAA18C,UAAAsH,SAAA,SAASkN,GACL,IAAIjL,EAA2B,GAC1BhJ,KAAKkU,gBACNlL,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,YAAA5P,OAAWrE,KAAKkJ,UACjCiL,IAAK,qBAAA9P,OAAqBrE,KAAKkJ,SAAQ,KACvCkL,KAAM,cAAA/P,OAAcM,KAAKL,UAAUtE,KAAKqU,uBAG5CrU,KAAKqV,iBAAmD,IAAhCrV,KAAKo8C,gBAAgB17C,QAC7CsI,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,YAAA5P,OAAWrE,KAAKkJ,UACjCiL,IAAK,uBAAA9P,OAAuBrE,KAAKkJ,SAAQ,KACzCkL,KAAM,kCAGd,IAAsB,IAAA/N,EAAA,EAAA+C,EAAApJ,KAAKo8C,gBAAL/1C,EAAA+C,EAAA1I,OAAA2F,IAAsB,CAAvC,IAAM2d,EAAO5a,EAAA/C,GACd2C,EAASA,EAAO3E,OAAO2f,EAAQjd,SAAS,GAAA1C,OAAG4P,EAAM,KAAA5P,OAAIrE,KAAKkJ,SAAQ,cACtE,CACA,OAAOF,CACX,EAQAmzC,EAAA18C,UAAA0L,MAAA,SAAMnI,GACF,OAAKvC,UAAUC,QACfV,KAAKoL,OAASpI,EACPhD,MAFuBA,KAAKoL,MAGvC,EAEA+wC,EAAA18C,UAAA4L,MAAA,WACI,QAASrL,KAAKkJ,UAAYlJ,KAAKo8C,gBAAgB17C,OAAS,CAC5D,EAEAy7C,EAAA18C,UAAAgL,MAAA,WACI,MAAO,CACHyP,OAAQla,KAAKkJ,SACb2a,SAAU7jB,KAAKq8C,cAEvB,EAEAF,EAAA18C,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KACFkJ,OAAOgC,EAAIgP,QACXmiC,YAAYnxC,EAAI2Y,SAEzB,EAEOs4B,EAAAlxC,QAAP,SAAeC,GACX,OAAO,IAAIixC,GAAelxC,QAAQC,EACtC,EAIAixC,EAAA18C,UAAA48C,YAAA,SAAYr5C,GACR,OAAKvC,UAAUC,QACfV,KAAK6jB,SAAS7gB,EAAEyB,IAAI,SAAAuf,GAAW,OAAAy3B,GAAcxwC,QAAQ+Y,EAAtB,IACxBhkB,MAFuBA,KAAKo8C,gBAAgB33C,IAAI,SAAAuf,GAAW,OAAAA,EAAQvZ,OAAR,EAGtE,EAEA0xC,EAAA18C,UAAA4U,iBAAA,WACI,OAAOrU,KAAKoL,OAAOiJ,kBACvB,EAEA8nC,EAAA18C,UAAAiH,KAAA,WACI,OAAOE,UAAQ,CACXsC,OAAQlJ,KAAKkJ,SACb2a,SAAU7jB,KAAKo8C,gBAAgB33C,IAAI,SAAAuf,GAAW,OAAAA,EAAQtd,MAAR,GAC9CgD,UAAW1J,KAAKoV,mBAExB,EAEA+mC,EAAA18C,UAAA28C,cAAA,WACI,OAAOp8C,KAAK6jB,WAAW1d,OAAO,SAAA6d,GAAW,OAAAA,EAAQ3Y,OAAR,EAC7C,EAEA8wC,EAAA18C,UAAA68C,eAAA,SAAez4B,GACX,IAAsB,IAAAxd,EAAA,EAAAk2C,EAAA14B,EAAAxd,EAAAk2C,EAAA77C,OAAA2F,IAAU,CAA3B,IAAM2d,EAAOu4B,EAAAl2C,GACdrG,KAAK6jB,WAAWhgB,MAAK,IAAI43C,IACpBtwC,MAAMnL,MACNuU,YAAYyP,EAAQzP,aACpBK,WAAWoP,EAAQpP,YACnB2Q,UAAUvB,EAAQuB,WAE3B,CACA,OAAOvlB,IACX,EAEAm8C,EAAA18C,UAAAwH,SAAA,WACI,OAAOjH,KAAKoL,OAAOnE,UACvB,EAEAk1C,EAAA18C,UAAAuV,UAAA,WACI,OAAOhV,KAAKoL,OAAO0S,cAAc9d,KAAKkJ,SAC1C,EAEAizC,EAAA18C,UAAA+U,gBAAA,WACI,OAAOxU,KAAKgV,YAAYE,gBAAgBC,iBAC5C,EAEAgnC,EAAA18C,UAAA2V,gBAAA,WACI,OAAOpV,KAAKgV,YAAYtL,WAC5B,EAEAyyC,EAAA18C,UAAA27C,aAAA,WACI,IAAM1xC,EAAY1J,KAAKoV,kBACjBonC,EAAiBx8C,KAAKo8C,gBAAgB33C,IAAI,SAAAuf,GAAW,OAAAA,EAAQo3B,aAAa1xC,EAArB,GAC3D,OAAO,SAACzE,GAAyB,OAAAu3C,EAAevR,MAAM,SAAAwR,GAAiB,OAAAA,EAAcx3C,EAAd,EAAtC,CACrC,EAEAk3C,EAAA18C,UAAAq8C,wBAAA,WACI,IAAMpyC,EAAY1J,KAAKoV,kBAEvB,OAD2BpV,KAAKo8C,gBAAgB33C,IAAI,SAAAuf,GAAW,OAAAA,EAAQ83B,wBAAwBpyC,EAAhC,GACrChF,KAAK,KACnC,EA5HA9D,EAAA,CAJC8J,UAAQ,KAAM,MAAO,WAAY,WAAgC,OAAO1K,KAAKqU,kBAAoB,EAAG,CACjG3I,UAAU,EACV3E,SAAU,SAAC8E,GAA6B,OAAAA,EAAEwI,mBAAmBhN,QAAQwE,EAAE3C,WAAa,CAA5C,I,2BAEdizC,EAAA18C,UAAA,iBAI9BmB,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,WAAY,KAAM,CAAEiB,WAAY8vC,K,2BACrBU,EAAA18C,UAAA,mBAyH7C08C,C,CApIA,CAAkC9zC,eAqIlC8zC,GAAa18C,UAAUgJ,QAAU,UAEjC,IAAAi0C,GAAA,SAAAl3C,GA+BI,SAAAk3C,IACI,OAAAl3C,EAAK7F,KAAAK,OAAEA,IACX,CA2EJ,OA5GkCJ,EAAA88C,EAAAl3C,GAmB9Bk3C,EAAAj9C,UAAAsH,SAAA,SAASkN,GACL,IAAMjL,EAA2B,GAQjC,OAPKhJ,KAAK07C,oBACN1yC,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,eACjBE,IAAK,yBAAA9P,OAAyBrE,KAAK4U,aAAY,KAC/CR,KAAM,cAAA/P,OAAcM,KAAKL,UAAUtE,KAAKmH,kBAGzC6B,CACX,EAQA0zC,EAAAj9C,UAAA0L,MAAA,SAAMnI,GACF,OAAKvC,UAAUC,QACfV,KAAKoL,OAASpI,EACPhD,MAFuBA,KAAKoL,MAGvC,EAIAsxC,EAAAj9C,UAAAk9C,YAAA,SAAY35C,GACR,OAAyB,IAArBvC,UAAUC,OAED,WADDV,KAAK48C,aAEG58C,KAAKoC,QAGN,GAAKpC,KAAKoC,SAG7BpC,KAAKoC,MAAMY,GACM,iBAANA,EACPhD,KAAK48C,UAAU,UAEf58C,KAAK48C,UAAU,UAEZ58C,KACX,EAEA08C,EAAAj9C,UAAA4L,MAAA,WACI,OAAOrL,KAAKuV,qBAAuBvV,KAAKyL,cAC5C,EAEAixC,EAAAj9C,UAAAgL,MAAA,WACI,MAAO,CACHkK,aAAc3U,KAAK4U,aACnB2Q,UAAWvlB,KAAKulB,YAChBnjB,MAAOpC,KAAK28C,cAEpB,EAEAD,EAAAj9C,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KACF4U,WAAW1J,EAAIyJ,cACf4Q,UAAUra,EAAIqa,WACdo3B,YAAYzxC,EAAI9I,MAEzB,EAEOs6C,EAAAzxC,QAAP,SAAeC,GACX,OAAO,IAAIwxC,GAAezxC,QAAQC,EACtC,EAEAwxC,EAAAj9C,UAAAiH,KAAA,WACI,OAAOE,UAAQ,CACXgO,WAAY5U,KAAK4U,aACjB2Q,UAAWvlB,KAAKulB,YAChBnjB,MAAOpC,KAAKoC,QACZw6C,UAAW58C,KAAK48C,aAExB,EAEAF,EAAAj9C,UAAA0H,YAAA,WACI,OAAOnH,KAAKoL,OAAOnE,WAAWxC,IAAI,SAAA2B,GAAS,OAAAA,EAAMjB,EAAN,EAC/C,EAEAu3C,EAAAj9C,UAAAq8C,wBAAA,WACI,MAAO,GAAAz3C,OAAGrE,KAAK4U,aAAY,KAAAvQ,OAAIrE,KAAKulB,YAAW,KAAAlhB,OAAIrE,KAAK28C,cAC5D,EAEAD,EAAAj9C,UAAA27C,aAAA,WACI,OAAOA,GAAap7C,KAAKulB,YAAavlB,KAAK4U,aAAc5U,KAAK28C,cAClE,EApGA/7C,EAAA,CAJC8J,UAAQ,KAAM,MAAO,eAAgB,WAAiC,OAAO1K,KAAKmH,aAAe,EAAG,CACjGuE,UAAU,EACV3E,SAAU,SAAC8E,GAA6B,OAAAA,EAAE1E,cAAcE,QAAQwE,EAAE+I,eAAiB,CAA3C,I,2BAEV8nC,EAAAj9C,UAAA,qBAIlCmB,EAAA,CADC8J,UAAQ,KAAM,MAAO,gBAAiB,CAAC,KAAM,KAAM,IAAK,KAAM,IAAK,O,2BACfgyC,EAAAj9C,UAAA,oBAErDmB,EAAA,CADC8J,UAAQ,GAAI,MAAO,gB,2BAC4BgyC,EAAAj9C,UAAA,gBAIhDmB,EAAA,CADC8J,UAAQ,SAAU,MAAO,oBAAqB,CAAC,SAAU,W,2BACZgyC,EAAAj9C,UAAA,oBA2FlDi9C,C,CA5GA,CAAkCr0C,eA6GlCq0C,GAAaj9C,UAAUgJ,QAAU,gBAIjC,IAAAo0C,GAAA,SAAAr3C,GAkBI,SAAAq3C,EAAoB3uC,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,M,CAEpB,CAsGJ,OA1H6BtO,EAAAi9C,EAAAr3C,GAUzBq3C,EAAAp9C,UAAAsH,SAAA,WAEI,IADA,IAAIiC,EAA2B,GACV3C,EAAA,EAAA+C,EAAApJ,KAAK88C,eAALz2C,EAAA+C,EAAA1I,OAAA2F,IAAqB,CAArC,IAAMF,EAAMiD,EAAA/C,GACb2C,EAASA,EAAO3E,OAAO8B,EAAOY,SAAS,UAC3C,CACA,OAAOiC,CACX,EAMA6zC,EAAAp9C,UAAAgL,MAAA,WACI,MAAO,CACH1F,KAAM,SACN8gB,WAAY7lB,KAAK6lB,aAEzB,EAEAg3B,EAAAp9C,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KACF6lB,WAAW3a,EAAI2a,WAExB,EAEOg3B,EAAA5xC,QAAP,SAAe0F,EAAsBzF,GACjC,OAAO,IAAI2xC,EAAQlsC,GAAI1F,QAAQC,EACnC,EAIA2xC,EAAAp9C,UAAAomB,WAAA,SAAW7iB,GACP,IAAKvC,UAAUC,OAAQ,OAAOV,KAAK88C,eAAer4C,IAAI,SAAA0B,GAAU,OAAAA,EAAOsE,OAAP,GAChE,IAAMsyC,EAAgC,GAChCC,EAAgC,GAUtC,OATAh6C,EAAEmJ,QAAQ,SAAA6J,GACFinC,GAAKC,mBAAmBlnC,GACxB+mC,EAAcl5C,KAAKs4C,GAAalxC,QAAQ+K,IAExCgnC,EAAcn5C,KAAK64C,GAAazxC,QAAQ+K,GAEhD,GACAhW,KAAKm9C,aAAaJ,GAClB/8C,KAAKo9C,aAAaJ,GACXh9C,IACX,EAEA68C,EAAAp9C,UAAA4U,iBAAA,WACI,OAAOrU,KAAKkO,IAAI4G,YACpB,EAEA+nC,EAAAp9C,UAAAqe,cAAA,SAAcu/B,GACV,OAAOr9C,KAAKkO,IAAI+G,QAAQooC,EAC5B,EAGAR,EAAAp9C,UAAAiH,KAAA,WACI,OAAOE,UAAQ5G,KAAK88C,eAAer4C,IAAI,SAAA3B,GACnC,MAAO,CACHqD,OAAQrD,EAAE4D,OAElB,GACJ,EAEAm2C,EAAAp9C,UAAAqH,OAAA,WACI,OAAO9G,KAAK88C,eAAep8C,OAAS,CACxC,EAEAm8C,EAAAp9C,UAAAuH,UAAA,WACI,OAAOhH,KAAKs9C,qBAAqB74C,IAAI,SAAA0B,GAAU,OAAAA,EAAO+C,QAAP,EACnD,EAEA2zC,EAAAp9C,UAAAqI,iBAAA,SAAiBL,GACbjC,EAAA/F,UAAMqI,iBAAgBnI,KAAAK,KAACyH,GAEvB,IADA,IAAMmQ,EAA0B,GACXvR,EAAA,EAAA+C,EAAApJ,KAAKs9C,qBAALj3C,EAAA+C,EAAA1I,OAAA2F,IAA2B,CAG5C,IAHC,IAAMF,EAAMiD,EAAA/C,GACP6P,EAAe/P,EAAO6O,YAAYE,gBAClCqoC,EAA2B,GACXh9B,EAAA,EAAAC,EAAAra,EAAOi2C,gBAAP77B,EAAAC,EAAA9f,OAAA6f,IAAwB,CAAzC,IAAMyD,EAAOxD,EAAAD,GACd3I,EAAc/T,KAAKmgB,EAAQpP,cAC3B2oC,EAAe15C,KAAKmgB,EAAQzP,cAChC,CACA2B,EAAa1O,cAAcC,EAAM81C,EACrC,CACA/3C,EAAA/F,UAAMoI,gBAAelI,KAAAK,KAACyH,EAAMmQ,EAChC,EAEAilC,EAAAp9C,UAAAsI,KAAA,WACI,OAAOvC,EAAA/F,UAAMsI,KAAIpI,KAAAK,KACrB,EAEA68C,EAAAp9C,UAAAyI,YAAA,WACI,IAAMlC,EAAOR,EAAA/F,UAAMyI,YAAWvI,KAAAK,MAC9B,GAAoB,IAAhBgG,EAAKtF,SAAiBV,KAAK8G,SAAU,OAAOd,EAChD,IAAM4f,EAAU5lB,KAAK88C,eAAer4C,IAAI,SAAA0B,GAAU,OAAAA,EAAOi1C,cAAP,GAClD,OAAOp1C,EAAKG,OAAO,SAAAlB,GACf,OAAO2gB,EAAQqlB,MAAM,SAAA9kC,GAAU,OAAAA,EAAOlB,EAAP,EACnC,EACJ,EAGA43C,EAAAp9C,UAAA69C,mBAAA,WACI,OAAOt9C,KAAKm9C,eAAeh3C,OAAO,SAAAA,GAAU,OAAAA,EAAOkF,OAAP,EAChD,EAEAwxC,EAAAp9C,UAAA+9C,mBAAA,WACI,OAAOx9C,KAAKo9C,eAAej3C,OAAO,SAAAA,GAAU,OAAAA,EAAOkF,OAAP,EAChD,EAEAwxC,EAAAp9C,UAAAq9C,aAAA,WACI,OAAAh5C,IAAA,GAAW9D,KAAKs9C,sBAAoB,GAAKt9C,KAAKw9C,sBAAoB,EACtE,EAxHOX,EAAAY,OAAStB,GACTU,EAAAa,QAAUjC,GAGjB76C,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,gBAAiB,KAAM,CAAEiB,WAAYwwC,K,2BACvBU,EAAAp9C,UAAA,uBAG5CmB,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,gBAAiB,KAAM,CAAEiB,WAAY+wC,K,2BACvBG,EAAAp9C,UAAA,uBAkHhDo9C,C,CA1HA,CAA6Bt3C,GA2H7Bs3C,GAAQp9C,UAAUgJ,QAAU,WCthB5B,IAAAk1C,GAAA,SAAAn4C,GAsBI,SAAAm4C,IACI,OAAAn4C,EAAK7F,KAAAK,OAAEA,IACX,CAmCJ,OA3DmCJ,EAAA+9C,EAAAn4C,GAU/Bm4C,EAAAl+C,UAAAsH,SAAA,SAASkN,GACL,IAAMjL,EAA2B,GAQjC,OAPKhJ,KAAK49C,eACN50C,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,UACjBE,IAAK,oBAAA9P,OAAoBrE,KAAKiD,QAAO,KACrCmR,KAAM,YAAA/P,OAAYM,KAAKL,UAAUtE,KAAK69C,cAGvC70C,CACX,EAQA20C,EAAAl+C,UAAA0L,MAAA,SAAMnI,GACF,OAAKvC,UAAUC,QACfV,KAAKoL,OAASpI,EACPhD,MAFuBA,KAAKoL,MAGvC,EAEAuyC,EAAAl+C,UAAA4L,MAAA,WACI,QAASrL,KAAKiD,OAClB,EAEA06C,EAAAl+C,UAAAgL,MAAA,WACI,OAAOzK,KAAKiD,OAChB,EAEA06C,EAAAl+C,UAAAwL,QAAA,SAAQhI,GACJ,OAAOjD,KACFiD,MAAMA,EAEf,EAEO06C,EAAA1yC,QAAP,SAAehI,GACX,OAAO,IAAI06C,GAAgB1yC,QAAQhI,EACvC,EAEA06C,EAAAl+C,UAAAiH,KAAA,WACI,OAAOE,UAAQ5G,KAAKiD,QACxB,EAEA06C,EAAAl+C,UAAAo+C,QAAA,WACI,OAAO79C,KAAKoL,OAAOhE,YACvB,EAnDAxG,EAAA,CAJC8J,eAAQf,EAAW,MAAO,QAAS,WAAiC,OAAO3J,KAAK69C,SAAW,EAAG,CAC3FnyC,UAAU,EACV3E,SAAU,SAAC8E,GAA8B,OAAAA,EAAEgyC,UAAUx2C,QAAQwE,EAAE5I,UAAY,CAAlC,I,2BAEhB06C,EAAAl+C,UAAA,gBAoDjCk+C,C,CA3DA,CAAmCt1C,eA4DnCs1C,GAAcl+C,UAAUgJ,QAAU,iBASlC,IAAMq1C,GAAsC,CACxCx0C,MALJ,SAAoBy0C,EAAezL,GAC/B,OAAOyL,EAAOr9C,MAClB,EAIIs9C,IAAKC,MACLC,IAAKC,MACLC,KAAMC,OACNC,OAAQC,SACRC,SAAUC,WACVC,UAAWC,YACXC,IAAKC,OAITC,GAAA,SAAAt5C,GAiDI,SAAAs5C,IACI,OAAAt5C,EAAK7F,KAAAK,OAAEA,IACX,CA+EJ,OAlIoCJ,EAAAk/C,EAAAt5C,GAsBhCs5C,EAAAr/C,UAAAs/C,kBAAA,WACI,OAAQ/+C,KAAKuH,YAAcvH,KAAKg/C,YAAkC,UAApBh/C,KAAKg/C,UACvD,EAEAF,EAAAr/C,UAAAw/C,uBAAA,WACI,OAAQj/C,KAAKuH,YAAcvH,KAAKg/C,YAAkC,SAApBh/C,KAAKg/C,UACvD,EAEAF,EAAAr/C,UAAAsH,SAAA,SAASkN,GACL,IAAMjL,EAA2B,GAejC,OAdKhJ,KAAKk/C,oBACNl2C,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,KAAA5P,OAAIrE,KAAKuH,UAAS,eACnC4M,IAAK,yBAAA9P,OAAyBrE,KAAKm/C,aAAY,KAC/C/qC,KAAM,YAAA/P,OAAYM,KAAKL,UAAUtE,KAAK69C,cAGzC79C,KAAKo/C,yBACNp2C,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,KAAA5P,OAAIrE,KAAKuH,UAAS,eACnC4M,IAAK,8BAAA9P,OAA8BrE,KAAKq/C,kBAAiB,KACzDjrC,KAAM,YAAA/P,OAAYM,KAAKL,UAAUtE,KAAK69C,cAGvC70C,CACX,EAQA81C,EAAAr/C,UAAA0L,MAAA,SAAMnI,GACF,OAAKvC,UAAUC,QACfV,KAAKoL,OAASpI,EACPhD,MAFuBA,KAAKoL,MAGvC,EAEA0zC,EAAAr/C,UAAA4L,MAAA,WACI,QAASrL,KAAKuH,SAClB,EAEAu3C,EAAAr/C,UAAAgL,MAAA,WACI,MAAwB,UAApBzK,KAAKg/C,WACE,CACHz3C,QAASvH,KAAKuH,UACdxC,KAAM,SAGP,CACHwC,QAASvH,KAAKuH,UACdxC,KAAM/E,KAAKg/C,WACX58B,UAAWpiB,KAAKm/C,aAChB78B,iBAAkBtiB,KAAKq/C,kBAE/B,EAEAP,EAAAr/C,UAAAwL,QAAA,SAAQC,GACJ,IAAMlC,EAAShJ,KACVuH,QAAQ2D,EAAI3D,SACZy3C,SAAS9zC,EAAInG,MAMlB,MAJiB,UAAbmG,EAAInG,OACJiE,EAAOm2C,WAAWj0C,EAAIkX,WACtBpZ,EAAOq2C,gBAAgBn0C,EAAIoX,mBAExBtZ,CACX,EAEO81C,EAAA7zC,QAAP,SAAeC,GACX,OAAO,IAAI4zC,GAAiB7zC,QAAQC,EACxC,EAEA4zC,EAAAr/C,UAAAiH,KAAA,WACI,OAAOE,UAAQ,CACX3D,MAAOjD,KAAKuH,UACZy3C,SAAUh/C,KAAKg/C,WACfG,WAAYn/C,KAAKm/C,cAEzB,EAEAL,EAAAr/C,UAAAo+C,QAAA,WACI,OAAO79C,KAAKoL,OAAOhE,YACvB,EAEA03C,EAAAr/C,UAAA6/C,UAAA,WACI,OAAOt/C,KAAK69C,UAAUn9C,MAC1B,EAEAo+C,EAAAr/C,UAAA8/C,UAAA,SAAUC,GAAV,IAAA/5C,EAAAzF,KACI,OAAO89C,GAAO99C,KAAKg/C,YAAsBQ,EAAQ,SAAAC,GAAQ,OAACA,EAAKh6C,EAAK05C,aAAX,EAC7D,EAEAL,EAAAr/C,UAAAigD,SAAA,WACI,IAAMA,EAAW5B,GAAO99C,KAAKg/C,YACvBG,EAAan/C,KAAKm/C,aAClBE,EAAkBr/C,KAAKq/C,kBAC7B,OAAIA,EACO,SAACG,GACJ,OAAOE,EAASF,EAAQ,SAAAC,GAAQ,OAACA,EAAKN,IAAeM,EAAKJ,EAA1B,EACpC,EAEO,SAACG,GACJ,OAAOE,EAASF,EAAQ,SAAAC,GAAQ,OAACA,EAAKN,EAAN,EACpC,CAER,EA7HAv+C,EAAA,CADC8J,UAAQ,KAAM,SAAU,eAAgB,KAAM,CAAEgB,UAAU,EAAME,QAAS,SAACC,GAAsB,OAACA,EAAEyzC,WAAH,I,2BAClER,EAAAr/C,UAAA,kBAE/BmB,EAAA,CADC8J,UAAQ,QAAS,MAAO,mBAAoB,CAAC,QAAS,MAAO,MAAO,MAAO,OAAQ,SAAU,WAAY,aAAc,CAAEgB,UAAU,EAAME,QAAS,SAACC,GAAsB,OAACA,EAAEtE,SAAH,I,2BACnIu3C,EAAAr/C,UAAA,mBAMvCmB,EAAA,CALC8J,UAAQ,KAAM,MAAO,oBAAqB,WAAkC,OAAO1K,KAAK69C,SAAW,EAAG,CACnGnyC,UAAU,EACVE,QAAS,SAACC,GAAsB,OAAAA,EAAEkzC,mBAAF,EAChCh4C,SAAU,SAAC8E,GAA+B,OAAAA,EAAEgyC,UAAUx2C,QAAQwE,EAAEszC,eAAiB,CAAvC,I,2BAEZL,EAAAr/C,UAAA,qBAOlCmB,EAAA,CALC8J,UAAQ,KAAM,MAAO,mBAAoB,WAAkC,OAAO1K,KAAK69C,SAAW,EAAG,CAClGnyC,UAAU,EACVE,QAAS,SAACC,GAAsB,OAAAA,EAAEozC,wBAAF,EAChCl4C,SAAU,SAAC8E,GAA+B,OAAAA,EAAEgyC,UAAUx2C,QAAQwE,EAAEwzC,oBAAsB,CAA5C,I,2BAEPP,EAAAr/C,UAAA,0BA+G3Cq/C,C,CAlIA,CAAoCz2C,eAmIpCy2C,GAAer/C,UAAUgJ,QAAU,kBAGnC,IAAAk3C,GAAA,SAAAn6C,GAsBI,SAAAm6C,IACI,OAAAn6C,EAAK7F,KAAAK,OAAEA,IACX,CA+LJ,OAvN6BJ,EAAA+/C,EAAAn6C,GAWzBm6C,EAAAlgD,UAAAsH,SAAA,WAEI,IADA,IAAIiC,EAA2B,GACR3C,EAAA,EAAA+C,EAAApJ,KAAK4/C,eAALv5C,EAAA+C,EAAA1I,OAAA2F,IAAqB,CAAvC,IAAMw5C,EAAQz2C,EAAA/C,GACf2C,EAASA,EAAO3E,OAAOw7C,EAAS94C,SAAS,kBAC7C,CACA,IAAkB,IAAAwZ,EAAA,EAAAC,EAAAxgB,KAAK8/C,sBAALv/B,EAAAC,EAAA9f,OAAA6f,IAA4B,CAAzC,IAAMw/B,EAAGv/B,EAAAD,GACVvX,EAASA,EAAO3E,OAAO07C,EAAIh5C,SAAS,0BACxC,CACA,OAAOiC,CACX,EAMA22C,EAAAlgD,UAAAgL,MAAA,WACI,MAAO,CACH1F,KAAM,UACN8d,WAAY7iB,KAAK0H,WACjBob,WAAY9iB,KAAK8iB,aAEzB,EAEA68B,EAAAlgD,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KACF0H,SAASwD,EAAI2X,YACbC,WAAW5X,EAAI4X,WAExB,EAEO68B,EAAA10C,QAAP,SAAeC,GACX,OAAO,IAAIy0C,GAAU10C,QAAQC,EACjC,EAIAy0C,EAAAlgD,UAAAiI,SAAA,SAAS1E,GACL,OAAKvC,UAAUC,QACfV,KAAKggD,OAAOh9C,EAAEyB,IAAI,SAAA8C,GAAW,OAAAo2C,GAAc1yC,QAAQ1D,EAAtB,IACtBvH,MAFuBA,KAAK4/C,eAAen7C,IAAI,SAAAw7C,GAAM,OAAAA,EAAGx1C,OAAH,EAGhE,EAIAk1C,EAAAlgD,UAAAqjB,WAAA,SAAW9f,GACP,OAAKvC,UAAUC,QACfV,KAAKkgD,eAAel9C,EAAEyB,IAAI,SAAAu6C,GAAY,OAAAF,GAAe7zC,QAAQ+zC,EAAvB,IAC/Bh/C,MAFuBA,KAAK8/C,sBAAsBr7C,IAAI,SAAAuG,GAAM,OAAAA,EAAGP,OAAH,EAGvE,EAGAk1C,EAAAlgD,UAAAiH,KAAA,WACI,OAAOE,UAAQ,CACXgc,QAAS5iB,KAAKggD,SAASv7C,IAAI,SAAAw7C,GAAM,OAAAA,EAAGv5C,MAAH,GACjCw5C,eAAgBlgD,KAAKkgD,iBAAiBz7C,IAAI,SAAAuG,GAAM,OAAAA,EAAGtE,MAAH,IAExD,EAEAi5C,EAAAlgD,UAAA0gD,eAAA,SAAetC,GACX,IAAqB,IAAAx3C,EAAA,EAAA+5C,EAAAvC,EAAAx3C,EAAA+5C,EAAA1/C,OAAA2F,IAAS,CAAzB,IAAM25C,EAAMI,EAAA/5C,GACbrG,KAAKggD,SAASn8C,MAAK,IAAI85C,IAClBxyC,MAAMnL,MACNiD,MAAM+8C,EAAO55C,OAEtB,CACA,OAAOpG,IACX,EAEA2/C,EAAAlgD,UAAAmgD,aAAA,WACI,OAAO5/C,KAAKggD,SAAS75C,OAAO,SAAAyc,GAAW,OAAAA,EAAQvX,OAAR,EAC3C,EAEAs0C,EAAAlgD,UAAAqH,OAAA,WACI,OAAO9G,KAAK4/C,eAAel/C,OAAS,CACxC,EAEAi/C,EAAAlgD,UAAA2H,WAAA,WACI,OAAOpH,KAAKiH,WAAWxC,IAAI,SAAA2B,GAAS,OAAAA,EAAMjB,EAAN,EACxC,EAEAw6C,EAAAlgD,UAAA2G,MAAA,SAAMmB,GACF,IAAoB,IAAAlB,EAAA,EAAA+C,EAAApJ,KAAKiH,WAALZ,EAAA+C,EAAA1I,OAAA2F,IAAiB,CAAhC,IAAMD,EAAKgD,EAAA/C,GACZ,GAAID,EAAMjB,KAAOoC,EACb,OAAOnB,CAEf,CACA,OAAO,IACX,EAEAu5C,EAAAlgD,UAAA4gD,qBAAA,SAAqBC,GACjB,IAA6B,IAAAj6C,EAAA,EAAAk6C,EAAAD,EAAAj6C,EAAAk6C,EAAA7/C,OAAA2F,IAAiB,CAAzC,IAAMm6C,EAAcD,EAAAl6C,GACfo6C,GAAY,IAAI3B,IACjB3zC,MAAMnL,MACNuH,QAAQi5C,EAAev9C,OACvB+7C,SAASwB,EAAez7C,WAEC,IAA1By7C,EAAeR,QACfS,EAAUtB,WAAWqB,EAAeR,QAExChgD,KAAKkgD,iBAAiBr8C,KAAK48C,EAC/B,CACA,OAAOzgD,IACX,EAEA2/C,EAAAlgD,UAAAqgD,oBAAA,WACI,OAAO9/C,KAAKkgD,iBAAiB/5C,OAAO,SAAAu6C,GAAiB,OAAAA,EAAcr1C,OAAd,EACzD,EAEAs0C,EAAAlgD,UAAAkhD,kBAAA,WACI,OAAO3gD,KAAK8/C,sBAAsBp/C,OAAS,CAC/C,EAEAi/C,EAAAlgD,UAAAyH,cAAA,SAAcD,GAAd,IAAAxB,EAAAzF,KACI,IAAKA,KAAK8G,SAAU,OAAOtB,EAAA/F,UAAMyH,cAAavH,KAAAK,KAACiH,GAG/C,IAFA,IAAM+B,EAAwB,GACxB43C,EAA0B5gD,KAAK4/C,eACfv5C,EAAA,EAAAw6C,EAAAD,EAAAv6C,EAAAw6C,EAAAngD,OAAA2F,IAAQ,CAAzB,IAAMuc,EAAOi+B,EAAAx6C,GACRy6C,EAAe9gD,KAAKoG,MAAMwc,EAAQ3f,SAClCmD,EAAQ,CACVrB,KAAM+7C,EAAeA,EAAa/7C,KAAO,SACzCI,GAAIyd,EAAQ3f,SAEhB+F,EAAOnF,KAAKuC,EAChB,CACA,IAAiB,IAAAgD,EAAA,EAAAmX,EAAAvgB,KAAKkgD,iBAAL92C,EAAAmX,EAAA7f,OAAA0I,IAAuB,CAAnC,IAAM4B,EAAEuV,EAAAnX,GACT,GAAI4B,EAAGzD,UAAW,CACd,IAAMm5C,EAA6B,CAC/Bv7C,GAAI6F,EAAGzD,UACPxC,KAAM,UAEViE,EAAOnF,KAAK68C,EAChB,CACJ,CACA,GAAI1gD,KAAK+gD,UAAW,CAChB,IAAIC,EAA+Bh4C,EACnC,GAAIhJ,KAAK8G,SAAU,CACf,IAAMm6C,EAAoB,CACtB97C,GAAI,SACJJ,KAAM,UACNM,SAAU,IAEd2D,EAAOnF,KAAKo9C,GACZD,EAAgBC,EAAK57C,QACzB,CACA,IAAM67C,EAAUN,EAAOn8C,IAAI,SAAAme,GAAW,OAAAA,EAAQ3f,OAAR,GACtC+9C,EAAcn9C,KAAIlD,MAAlBqgD,EAAsBhhD,KAAKiH,WAAWd,OAAO,SAAAC,GACzC,OAAOX,EAAK07C,eAAiBD,EAAQ75C,QAAQjB,EAAMjB,IAAM,CAC7D,GACJ,CACA,OAAO,WAAM,OAAA6D,CAAA,CACjB,EAEA22C,EAAAlgD,UAAAqI,iBAAA,SAAiBL,GACbjC,EAAA/F,UAAMqI,iBAAgBnI,KAAAK,KAACyH,GAEvB,IADA,IAAMC,EAAqB,GACVrB,EAAA,EAAA+C,EAAApJ,KAAK4/C,eAALv5C,EAAA+C,EAAA1I,OAAA2F,IAAqB,CAAjC,IAAM45C,EAAE72C,EAAA/C,GACTqB,EAAS7D,KAAKo8C,EAAGh9C,QACrB,CACA,IAAiB,IAAAsd,EAAA,EAAAC,EAAAxgB,KAAK8/C,sBAALv/B,EAAAC,EAAA9f,OAAA6f,IAA4B,CAAxC,IAAMvV,EAAEwV,EAAAD,GACLvV,EAAGm0C,cACHz3C,EAAS7D,KAAKmH,EAAGm0C,aAEzB,CACA35C,EAAA/F,UAAMoI,gBAAelI,KAAAK,KAACyH,EAAMC,EAChC,EAEAi4C,EAAAlgD,UAAAyI,YAAA,WACI,IAAMlC,EAAOR,EAAA/F,UAAMyI,YAAWvI,KAAAK,MAC9B,GAAoB,IAAhBgG,EAAKtF,SAAiBV,KAAK8G,SAAU,OAAOd,EAChD,IAAMo7C,EAAyBphD,KAAK4/C,eAAen7C,IAAI,SAAAw7C,GAAM,OAAAA,EAAGh9C,OAAH,GACvDi9C,EAAiBlgD,KAAK8/C,sBAAsBr7C,IAAI,SAAAuG,GAClD,MAAO,CAAE/H,MAAO+H,EAAGzD,UAAWm4C,SAAU10C,EAAG00C,WAC/C,GACM12C,EAASq4C,SACVtgD,IAAI,SAACkE,GAEF,IADA,IAAIlE,EAAM,GACiBsF,EAAA,EAAAi7C,EAAAF,EAAA/6C,EAAAi7C,EAAA5gD,OAAA2F,IAAc,CACrCtF,GAAO,IAAMkE,EADMq8C,EAAAj7C,GAEvB,CACA,OAAOtF,CACX,GACCwgD,QAAQv7C,GAAkBvB,IAAI,SAAA+8C,GAC3B,IAAMv8C,EAEFu8C,SACGv8C,EAAIlE,IACX,IAA2B,IAAAsF,EAAA,EAAAo7C,EAAAL,EAAA/6C,EAAAo7C,EAAA/gD,OAAA2F,IAAc,CAApC,IAAMq7C,EAAYD,EAAAp7C,GACnBpB,EAAIy8C,GAAgBz8C,EAAIu6C,OAAO,GAAGkC,EACtC,CACA,IAAiB,IAAAt4C,EAAA,EAAAu4C,EAAAzB,EAAA92C,EAAAu4C,EAAAjhD,OAAA0I,IAAgB,CAA5B,IAAM4B,EAAE22C,EAAAv4C,GACTnE,EAAI+F,EAAG/H,OAAS+H,EAAG00C,SAASz6C,EAAIu6C,OACpC,CACA,OAAOv6C,CACX,GAEEiB,EAAYlG,KAAKkG,YACvB,OAAO8C,EAAOvE,IAAI,SAAAQ,GAEd,IADA,IAAM+D,EAAS,GACK3C,EAAA,EAAAu7C,EAAA17C,EAAAG,EAAAu7C,EAAAlhD,OAAA2F,IAAW,CAA1B,IAAMD,EAAKw7C,EAAAv7C,GACZ2C,EAAO5C,EAAMjB,IAAMF,EAAImB,EAAMjB,GACjC,CACA,OAAO6D,CACX,EACJ,EAnNApI,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,iBAAkB,KAAM,CAAEiB,WAAYgyC,K,2BAC7BgC,EAAAlgD,UAAA,iBAEvCmB,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,kBAAmB,KAAM,CAAEiB,WAAYmzC,K,2BACrBa,EAAAlgD,UAAA,yBAEhDmB,EAAA,CADC8J,WAAQ,EAAO,UAAW,gB,2BACKi1C,EAAAlgD,UAAA,kBAEhCmB,EAAA,CADC8J,WAAQ,EAAO,UAAW,kC,2BACSi1C,EAAAlgD,UAAA,sBA8MxCkgD,C,CAvNA,CAA6Bp6C,GAwN7Bo6C,GAAQlgD,UAAUgJ,QAAU,WCjb5B,IAAAo5C,GAAA,SAAAr8C,GAMI,SAAAq8C,IACI,OAAAr8C,EAAK7F,KAAAK,OAAEA,IACX,CAkCJ,OA1C2BJ,EAAAiiD,EAAAr8C,GAUvBq8C,EAAApiD,UAAAgL,MAAA,WACI,MAAO,CACH1F,KAAM,QACNkhB,MAAOjmB,KAAKihD,OAEpB,EAEAY,EAAApiD,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KACFihD,KAAK/1C,EAAI+a,MAElB,EAEO47B,EAAA52C,QAAP,SAAeC,GACX,OAAO,IAAI22C,GAAQ52C,QAAQC,EAC/B,EAEA22C,EAAApiD,UAAAiH,KAAA,WACI,OAAOE,UAAQ,CACXqf,MAAOjmB,KAAKihD,QAEpB,EAEAY,EAAApiD,UAAAqH,OAAA,WACI,OAAO9G,KAAK8hD,eAAiB9hD,KAAKihD,OAAS,CAC/C,EAEAY,EAAApiD,UAAAyI,YAAA,WACI,IAAMlC,EAAOR,EAAA/F,UAAMyI,YAAWvI,KAAAK,MAC9B,OAAoB,IAAhBgG,EAAKtF,QAAiBV,KAAK8G,SACxBd,EAAK5B,MAAM,EAAG+K,KAAK6uC,IAAIh+C,KAAKihD,OAAQj7C,EAAKtF,SADAsF,CAEpD,EAtCApF,EAAA,CADC8J,eAAQf,EAAW,SAAU,gB,2BACUk4C,EAAApiD,UAAA,eAuC5CoiD,C,CA1CA,CAA2Bt8C,GA2C3Bs8C,GAAMpiD,UAAUgJ,QAAU,SC3C1B,IAAAs5C,GAAA,SAAAv8C,GAiCI,SAAAu8C,IACI,OAAAv8C,EAAK7F,KAAAK,OAAEA,IACX,CA+BJ,OAlEqCJ,EAAAmiD,EAAAv8C,GAcjCu8C,EAAAtiD,UAAAsH,SAAA,SAASkN,GACL,IAAMjL,EAA2B,GAejC,OAdKhJ,KAAKyU,eACNzL,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,UACjBE,IAAK,oBAAA9P,OAAoBrE,KAAKoC,QAAO,KACrCgS,KAAM,qBAGTpU,KAAKgiD,kBACNh5C,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,aACjBE,IAAK,oBAAA9P,OAAoBrE,KAAKwkB,WAAU,KACxCpQ,KAAM,qBAGPpL,CACX,EAQA+4C,EAAAtiD,UAAA0L,MAAA,SAAMnI,GACF,OAAKvC,UAAUC,QACfV,KAAKoL,OAASpI,EACPhD,MAFuBA,KAAKoL,MAGvC,EAEA22C,EAAAtiD,UAAA4L,MAAA,WACI,QAASrL,KAAKoC,WAAapC,KAAKwkB,UACpC,EAEAu9B,EAAAtiD,UAAAgL,MAAA,WACI,MAAO,CACHrI,MAAOpC,KAAKoC,QACZoiB,SAAUxkB,KAAKwkB,WAEvB,EAEAu9B,EAAAtiD,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KACFoC,MAAM8I,EAAI9I,OACVoiB,SAAStZ,EAAIsZ,SAEtB,EAEOu9B,EAAA92C,QAAP,SAAeC,GACX,OAAO,IAAI62C,GAAkB92C,QAAQC,EACzC,EA3DAtK,EAAA,CAHC8J,UAAQ,KAAM,MAAO,qBAAiBf,EAAW,CAC9C5C,SAAU,SAAC8E,GAAgC,OAAEA,EAAEzJ,UAAYyJ,EAAE2Y,cAAkB3Y,EAAEzJ,WAAayJ,EAAE2Y,UAArD,I,2BAErBu9B,EAAAtiD,UAAA,gBAK1BmB,EAAA,CAHC8J,UAAQ,KAAM,MAAO,iBAAaf,EAAW,CAC1C5C,SAAU,SAAC8E,GAAgC,OAAEA,EAAEzJ,UAAYyJ,EAAE2Y,cAAkB3Y,EAAEzJ,WAAayJ,EAAE2Y,UAArD,I,2BAElBu9B,EAAAtiD,UAAA,mBAuDjCsiD,C,CAlEA,CAAqC15C,eAmErC05C,GAAgBtiD,UAAUgJ,QAAU,mBASpC,IAAAw5C,GAAA,SAAAz8C,GA4FI,SAAAy8C,IACI,OAAAz8C,EAAK7F,KAAAK,OAAEA,IACX,CAoQJ,OAlWmCJ,EAAAqiD,EAAAz8C,GAgC/By8C,EAAAxiD,UAAAyiD,eAAA,WACI,OAAQliD,KAAKiD,SAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,QAAS,OAAOoE,QAAQrH,KAAK+E,QAAU,CAC7F,EAEAk9C,EAAAxiD,UAAA0iD,eAAA,WACI,OAAQniD,KAAKiD,SAAW,CAAC,IAAK,IAAK,IAAK,KAAKoE,QAAQrH,KAAK+E,QAAU,CACxE,EAEAk9C,EAAAxiD,UAAA2iD,eAAA,WACI,OAAQpiD,KAAKiD,SAAW,CAAC,OAAOoE,QAAQrH,KAAK+E,QAAU,CAC3D,EAEAk9C,EAAAxiD,UAAAoL,kBAAA,WACI,OAAQ7K,KAAKqiD,aACjB,EAEAJ,EAAAxiD,UAAAsH,SAAA,SAASkN,GACL,IAAMjL,EAA2B,GAqBjC,OApBKhJ,KAAKsiD,iBACNt5C,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,KAAA5P,OAAIrE,KAAKiD,SAC1BkR,IAAK,sBAAA9P,OAAsBrE,KAAKuiD,UAAS,KACzCnuC,KAAM,cAAA/P,OAAcM,KAAKL,UAAUtE,KAAK69C,cAG3C79C,KAAKwiD,iBACNx5C,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,KAAA5P,OAAIrE,KAAKiD,SAC1BkR,IAAK,qBAAA9P,OAAqBrE,KAAKyiD,UAAS,KACxCruC,KAAM,cAAA/P,OAAcM,KAAKL,UAAUtE,KAAK69C,cAG3C79C,KAAKoiD,kBACNpiD,KAAK0iD,wBAAwBv2C,QAAQ,SAAAw2C,GAAM,OAAAA,EAAG57C,SAAS,GAAA1C,OAAG4P,EAAM,YAArB,GAE1CjU,KAAK6K,qBACN7K,KAAK4iD,mBAAmBz2C,QAAQ,SAAAnB,GAAM,OAAAA,EAAGjE,SAAS,GAAA1C,OAAG4P,EAAM,eAArB,GAEnCjL,CACX,EAEAi5C,EAAAxiD,UAAA4iD,YAAA,WACI,IAAKriD,KAAKiD,QAAS,OAAO,EAC1B,GAAoB,MAAhBjD,KAAK+E,OAAgB,OAAO,EAChC,IAAK/E,KAAKuiD,UAAW,OAAO,EAC5B,IAAMn8C,EAASpG,KAAKoL,OAAuBhF,MAAMpG,KAAKuiD,WACtD,SAAIn8C,GAAwB,YAAfA,EAAMrB,OAAsBqB,EAAMf,SAInD,EAEA48C,EAAAxiD,UAAA4F,SAAA,WACI,IAAMe,EAASpG,KAAKoL,OAAuBhF,MAAMpG,KAAKuiD,WACtD,OAAIn8C,GAAwB,YAAfA,EAAMrB,KACRqB,EAAMf,SAEV,EACX,EAQA48C,EAAAxiD,UAAA0L,MAAA,SAAMnI,GACF,OAAKvC,UAAUC,QACfV,KAAKoL,OAASpI,EACPhD,MAFuBA,KAAKoL,MAGvC,EAEA62C,EAAAxiD,UAAA4L,MAAA,WACI,QAASrL,KAAKiD,OAClB,EAEAg/C,EAAAxiD,UAAAijD,sBAAA,WACI,OAAO1iD,KAAKgkB,UAAU7d,OAAO,SAAA6E,GAAM,OAAAA,EAAGK,OAAH,EACvC,EAEA42C,EAAAxiD,UAAAmjD,iBAAA,WACI,OAAO5iD,KAAK6iD,aAAa18C,OAAO,SAAA6E,GAAM,OAAAA,EAAGK,OAAH,EAC1C,EAEA42C,EAAAxiD,UAAAqjD,eAAA,WACI,OAAO9iD,KAAK4iD,mBAAmBliD,MACnC,EAEAuhD,EAAAxiD,UAAAgL,MAAA,WACI,OAAQzK,KAAK+E,QACT,IAAK,QACD,MAAO,CACHwC,QAASvH,KAAKiD,QACd8B,KAAM,QACNyd,cAAexiB,KAAKuiD,UACpB9/B,OAAQziB,KAAK+iD,cAErB,IAAK,WACD,MAAO,CACHx7C,QAASvH,KAAKiD,QACd8B,KAAM,WACNi+C,SAAUhjD,KAAKgjD,YAEvB,IAAK,IACD,IAAMrgC,EAAkB3iB,KAAK4iD,mBAAmBn+C,IAAI,SAAAuG,GAAM,OAAAA,EAAGP,OAAH,GAC1D,MAAO,CACHlD,QAASvH,KAAKiD,QACd8B,KAAM,IACNyd,cAAexiB,KAAKuiD,UACpB5/B,gBAAiBA,EAAgBjiB,OAASiiB,OAAkBhZ,GAEpE,IAAK,MACD,MAAO,CACHpC,QAASvH,KAAKiD,QACd8B,KAAM,MACNyd,cAAexiB,KAAKuiD,UACpBz3C,QAAS9K,KAAK8K,UACd+Y,SAAU7jB,KAAK0iD,wBAAwBj+C,IAAI,SAAAk+C,GAAM,OAAAA,EAAGl4C,OAAH,IAEzD,QACI,MAAO,CACHlD,QAASvH,KAAKiD,QACd8B,KAAM/E,KAAK+E,OACXk+C,eAAgBjjD,KAAKuiD,UACrBW,eAAgBljD,KAAKyiD,WAGrC,EAEAR,EAAAxiD,UAAAwL,QAAA,SAAQC,GACJ,IAAMlC,EAAShJ,KACViD,MAAMiI,EAAI3D,SACVxC,KAAKmG,EAAInG,MAEd,OAAQmG,EAAInG,MACR,IAAK,QACDiE,EACKu5C,QAAQr3C,EAAIsX,eACZugC,WAAW73C,EAAIuX,QAEpB,MACJ,IAAK,WACDzZ,EACKg6C,SAAS93C,EAAI83C,UAElB,MACJ,IAAK,IACDh6C,EACKu5C,QAAQr3C,EAAIsX,eACZqgC,WAAW33C,EAAIyX,gBAAkBzX,EAAIyX,gBAAgBle,IAAI,SAAA0+C,GAAkB,OAAAlB,EAAch3C,QAAQk4C,EAAtB,GAAyC,IAEzH,MACJ,IAAK,MACDn6C,EACKu5C,QAAQr3C,EAAIsX,eACZ1X,QAAQI,EAAIJ,SACZkZ,QAAQ9Y,EAAI2Y,SAAW3Y,EAAI2Y,SAASpf,IAAI,SAAAuf,GAAW,OAAA+9B,GAAgB92C,QAAQ+Y,EAAxB,GAAoC,IAE5F,MACJ,QACIhb,EACKu5C,QAAQr3C,EAAI+3C,gBACZR,QAAQv3C,EAAIg4C,gBAGzB,OAAOl6C,CACX,EAEOi5C,EAAAh3C,QAAP,SAAeC,GACX,OAAO,IAAI+2C,GAAgBh3C,QAAQC,EACvC,EAEA+2C,EAAAxiD,UAAAiH,KAAA,WACI,OAAOE,UAAQ5G,KAAKyK,QACxB,EAEAw3C,EAAAxiD,UAAAo+C,QAAA,WACI,OAAO79C,KAAKoL,OAAO1D,UACvB,EAEAu6C,EAAAxiD,UAAAihD,cAAA,eAAAj7C,EAAAzF,KACI,OAAQA,KAAK+E,QACT,IAAK,IACD,IAAI69C,EAAmB5iD,KAAK4iD,mBAY5B,OAXgC,IAA5BA,EAAiBliD,QAAgBV,KAAKqiD,gBAEtCO,EAAmB5iD,KAAKqF,WAAWZ,IAAI,SAAC2+C,GACpC,OAAO,IAAInB,GACN92C,MAAM1F,GACNxC,MAAMmgD,EAAMj+C,IACZJ,KAAK,KACLw9C,QAAQa,EAAMj+C,GAEvB,IAEGhF,IAAA,GACAH,KAAKoL,OAAOhF,MAAMpG,KAAKuiD,YAAU,CACpCp9C,GAAInF,KAAKiD,QACToC,SAAUu9C,EAAiBliD,OAASkiD,EAAiBn+C,IAAI,SAAAuG,GAAM,OAAAA,EAAG01C,eAAH,QAAsB/2C,IAE7F,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,QACD,MAAO,CAAExE,GAAInF,KAAKiD,QAAS8B,KAAM,UACrC,IAAK,WACD,MAAO,CAAEI,GAAInF,KAAKiD,QAAS8B,KAAM,UACrC,IAAK,MACD,MAAO,CAAEI,GAAInF,KAAKiD,QAAS8B,KAAM,UAEzC,MAAO,CAAEI,GAAInF,KAAKiD,QAAS8B,KAAM,SACrC,EAEAk9C,EAAAxiD,UAAA4jD,WAAA,SAAW7H,GACP,IAAMmF,EAAoB3gD,KAAK8iD,iBACzB5C,EAAiBlgD,KAAK4iD,mBAAmBn+C,IAAI,SAAAuG,GAC/C,MAAO,CACH/H,MAAO+H,EAAG/H,QACV8f,KAAM/X,EAAGs4C,YAAY9H,GAE7B,GACA,OAAO,SAACv2C,GAEJ,IADA,IAAM+D,EAASwyC,GAAQmF,EAAoB,GAAIxgD,EAAA,GAAM8E,GACpCoB,EAAA,EAAAs7C,EAAAzB,EAAA75C,EAAAs7C,EAAAjhD,OAAA2F,IAAgB,CAA5B,IAAM2E,EAAE22C,EAAAt7C,GACT2C,EAAOgC,EAAG/H,OAAS+H,EAAG+X,KAAK9d,EAC/B,CAIA,OAHIu2C,GAAQmF,IACR33C,EAAiB,SAAI/D,GAElB+D,CACX,CACJ,EAEAi5C,EAAAxiD,UAAA6jD,YAAA,SAAY9H,GAAZ,IAAA/1C,EAAAzF,KACUuiD,EAAUviD,KAAKuiD,UACfE,EAAUziD,KAAKyiD,UACrB,OAAQziD,KAAK+E,QACT,IAAK,IACD,OAAI/E,KAAK8iD,iBACE,SAAC79C,GAGJ,OADUA,EAAIs9C,GAASgB,KAAO/+C,UAAQS,EAAIs9C,GAASgB,KAAOt+C,EAAIs9C,GAASgB,IAAMt+C,EAAIs9C,IACxE99C,IAAIgB,EAAK49C,WAAW7H,GACjC,EAEG,SAACv2C,GACJ,OAAOA,EAAIs9C,EACf,EACJ,IAAK,IACD,OAAO,SAACt9C,GACJ,OAAQA,EAAIs9C,IAAYt9C,EAAIw9C,EAChC,EACJ,IAAK,IACD,OAAO,SAACx9C,GACJ,OAAQA,EAAIs9C,IAAYt9C,EAAIw9C,EAChC,EACJ,IAAK,IACD,OAAO,SAACx9C,GACJ,OAAQA,EAAIs9C,KAAYt9C,EAAIw9C,EAChC,EACJ,IAAK,IACD,OAAO,SAACx9C,GACJ,OAAQA,EAAIs9C,IAAYt9C,EAAIw9C,EAChC,EACJ,IAAK,QACD,IAAMe,EAAaxjD,KAAK+iD,aACxB,OAAO,SAAC99C,GACJ,OAAQA,EAAIs9C,GAAWiB,CAC3B,EACJ,IAAK,WACD,IAAMC,EAAWzjD,KAAKgjD,WACtB,OAAO,SAAC/9C,GACJ,OAAOy+C,UAAQV,SAASS,EAAUx+C,EACtC,EACJ,IAAK,MAGD,IAFA,IAAM0+C,EAAW3jD,KAAK8K,UAChByxC,EAAW,GACKl2C,EAAA,EAAA+C,EAAApJ,KAAKgkB,UAAL3d,EAAA+C,EAAA1I,OAAA2F,IAAgB,CAAjC,IAAM2d,EAAO5a,EAAA/C,GACdk2C,EAASv4B,EAAQ5hB,SAAW4hB,EAAQQ,UACxC,CACA,OAAO,SAACvf,GACJ,OAAOs3C,EAASt3C,EAAIs9C,KAAaoB,CACrC,EACJ,QACI,OAAO,SAAC1+C,GACJ,OAAOA,EAAIs9C,EACf,EAEZ,EAGAN,EAAAxiD,UAAAiI,SAAA,WACI,IAAMtB,EAASpG,KAAKoL,OAAuBhF,MAAMpG,KAAKuiD,WACtD,GAAIn8C,EACA,OAAQA,EAAMrB,MACV,IAAK,UACD,OAAOqB,EAAMf,SAASZ,IAAI,SAAA2B,GAAS,OAAAA,EAAMjB,EAAN,GACvC,IAAK,SACD,OAAO/F,OAAOyF,KAAKuB,EAAM2F,QAGrC,MAAO,EACX,EAEAk2C,EAAAxiD,UAAA2G,MAAA,SAAMmB,GACF,IAAMnB,EAASpG,KAAKoL,OAAuBhF,MAAMpG,KAAKuiD,WACtD,GAAIn8C,EACA,OAAQA,EAAMrB,MACV,IAAK,UACD,IAAgB,IAAAsB,EAAA,EAAA+C,EAAAhD,EAAMf,SAANgB,EAAA+C,EAAA1I,OAAA2F,IAAgB,CAA3B,IAAMvD,EAACsG,EAAA/C,GACR,GAAIvD,EAAEqC,KAAOoC,EACT,OAAOzE,CAEf,CACA,MACJ,IAAK,SACD,OAAOsD,EAAM2F,OAAOxE,GAIpC,EA7VA3G,EAAA,CADC8J,UAAQ,KAAM,SAAU,QAAS,KAAM,CAAEgB,UAAU,I,2BACvBu2C,EAAAxiD,UAAA,gBAE7BmB,EAAA,CADC8J,UAAQ,UAAW,MAAO,eAAgB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,QAAS,WAAY,OAAQ,CAAEgB,UAAU,EAAME,QAAS,SAAAC,GAAK,OAACA,EAAE5I,OAAH,I,2BAChGg/C,EAAAxiD,UAAA,eAMlCmB,EAAA,CALC8J,UAAQ,KAAM,MAAO,UAAW,WAAiC,OAAO1K,KAAK69C,SAAW,EAAG,CACxFnyC,UAAU,EACVE,QAAS,SAACC,GAAqB,OAAAA,EAAEq2C,gBAAF,EAC/Bn7C,SAAU,SAAC8E,GAA8B,OAAAA,EAAEgyC,UAAUx2C,QAAQwE,EAAE02C,YAAc,CAApC,I,2BAEdN,EAAAxiD,UAAA,kBAO/BmB,EAAA,CALC8J,UAAQ,KAAM,MAAO,UAAW,WAAiC,OAAO1K,KAAK69C,SAAW,EAAG,CACxFnyC,UAAU,EACVE,QAAS,SAACC,GAAqB,OAAAA,EAAEs2C,gBAAF,EAC/Bp7C,SAAU,SAAC8E,GAA8B,OAAAA,EAAEgyC,UAAUx2C,QAAQwE,EAAE42C,YAAc,CAApC,I,2BAEdR,EAAAxiD,UAAA,kBAG/BmB,EAAA,CADC8J,UAAQ,KAAM,SAAU,cAAe,KAAM,CAAEgB,UAAU,EAAME,QAAS,SAACC,GAAqB,OAACA,EAAE5I,SAAW,CAAC,SAASoE,QAAQwE,EAAE9G,QAAU,CAA5C,I,2BAC7Dk9C,EAAAxiD,UAAA,qBAElCmB,EAAA,CADC8J,UAAQ,KAAM,SAAU,WAAY,KAAM,CAAEgB,UAAU,EAAME,QAAS,SAACC,GAAqB,OAACA,EAAE5I,SAAW,CAAC,YAAYoE,QAAQwE,EAAE9G,QAAU,CAA/C,I,2BAC5Dk9C,EAAAxiD,UAAA,mBAEhCmB,EAAA,CADC8J,UAAQ,KAAM,MAAO,gBAAiB,KAAM,CAAEgB,UAAU,EAAME,QAAS,SAACC,GAAqB,OAACA,EAAE5I,SAAW,CAAC,OAAOoE,QAAQwE,EAAE9G,QAAU,CAA1C,I,2BAClEk9C,EAAAxiD,UAAA,kBAE5BmB,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,gBAAiB,KAAM,CAAEiB,WAAYo2C,GAAiBn2C,QAAS,SAACC,GAAqB,OAAAA,EAAEu2C,gBAAF,I,2BACzEH,EAAAxiD,UAAA,kBAE1CmB,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,eAAgB,KAAM,CAAEiB,WAAYs2C,EAAer2C,QAAS,SAACC,GAAqB,OAAAA,EAAEhB,mBAAF,I,2BACrEo3C,EAAAxiD,UAAA,qBAoU/CwiD,C,CAlWA,CAAmC55C,eAmWnC45C,GAAcxiD,UAAUgJ,QAAU,iBAElC,IAAAm7C,GAAA,SAAAp+C,GAQI,SAAAo+C,IACI,OAAAp+C,EAAK7F,KAAAK,OAAEA,IACX,CAiEJ,OA3EgCJ,EAAAgkD,EAAAp+C,GAY5Bo+C,EAAAnkD,UAAAiH,KAAA,WACI,OAAOE,UAAQ5G,KAAKyK,QACxB,EAIAm5C,EAAAnkD,UAAA0L,MAAA,SAAMnI,GACF,OAAKvC,UAAUC,QACfV,KAAKoL,OAASpI,EACPhD,MAFuBA,KAAKoL,MAGvC,EAEAw4C,EAAAnkD,UAAA4L,MAAA,WACI,QAASrL,KAAKiD,SAAWjD,KAAK6jD,mBAAmBnjD,OAAS,CAC9D,EAEAkjD,EAAAnkD,UAAAsH,SAAA,SAASkN,GAEL,IADA,IAAIjL,EAA2B,GACd3C,EAAA,EAAA+C,EAAApJ,KAAK6jD,mBAALx9C,EAAA+C,EAAA1I,OAAA2F,IAAyB,CAArC,IAAM2E,EAAE5B,EAAA/C,GACT2C,EAASA,EAAO3E,OAAO2G,EAAGjE,SAAS,GAAA1C,OAAG4P,EAAM,oBAChD,CACA,OAAOjL,CACX,EAEA46C,EAAAnkD,UAAAgL,MAAA,WACI,MAAO,CACHlD,QAASvH,KAAKiD,QACd8B,KAAM,QACN4d,gBAAiB3iB,KAAK2iB,kBAE9B,EAEAihC,EAAAnkD,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KACFiD,MAAMiI,EAAI3D,SACVob,gBAAgBzX,EAAIyX,gBAE7B,EAEOihC,EAAA34C,QAAP,SAAeC,GACX,OAAO,IAAI04C,GAAa34C,QAAQC,EACpC,EAEA04C,EAAAnkD,UAAAokD,iBAAA,WACI,OAAO7jD,KAAK8jD,cAAc39C,OAAO,SAAAu6C,GAAiB,OAAAA,EAAcr1C,OAAd,EACtD,EAIAu4C,EAAAnkD,UAAAkjB,gBAAA,SAAgB3f,GACZ,OAAKvC,UAAUC,QACfV,KAAK8jD,YAAY9gD,EAAEyB,IAAI,SAAA0+C,GAAkB,OAAAlB,GAAch3C,QAAQk4C,EAAtB,IAClCnjD,MAFuBA,KAAK6jD,mBAAmBp/C,IAAI,SAAAuG,GAAM,OAAAA,EAAGP,OAAH,EAGpE,EAGAm5C,EAAAnkD,UAAAiI,SAAA,WACI,OAAO1H,KAAKoL,OAAO1D,UACvB,EAEAk8C,EAAAnkD,UAAA2G,MAAA,SAAMmB,GACF,OAAOvH,KAAKoL,OAAOhF,MAAMmB,EAC7B,EAtEA3G,EAAA,CADC8J,UAAQ,GAAI,SAAU,S,2BACMk5C,EAAAnkD,UAAA,gBAE7BmB,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,eAAgB,KAAM,CAAEiB,WAAYs2C,K,2BACtB2B,EAAAnkD,UAAA,sBAqEhDmkD,C,CA3EA,CAAgCv7C,eA4EhCu7C,GAAWnkD,UAAUgJ,QAAU,cAE/B,IAAAs7C,GAAA,SAAAv+C,GAiBI,SAAAu+C,IACI,IAAAt+C,EAAAD,EAAK7F,KAAAK,OAAEA,K,OAfXyF,EAAAu+C,gBAAiB,EACjBv+C,EAAAw+C,OAAQ,E,CAeR,CAgKJ,OAnLiCrkD,EAAAmkD,EAAAv+C,GAS7Bu+C,EAAAtkD,UAAAsH,SAAA,WAEI,IADA,IAAIiC,EAA2B,GACd3C,EAAA,EAAA+C,EAAApJ,KAAK8/C,sBAALz5C,EAAA+C,EAAA1I,OAAA2F,IAA4B,CAAxC,IAAM2E,EAAE5B,EAAA/C,GACT2C,EAASA,EAAO3E,OAAO2G,EAAGjE,SAAS,GAAA1C,OAAGrE,KAAKkkD,UAAS,oBACxD,CACA,OAAOl7C,CACX,EAQA+6C,EAAAtkD,UAAAkjB,gBAAA,SAAgB3f,GACZ,OAAKvC,UAAUC,QACfV,KAAKkgD,eAAel9C,EAAEyB,IAAI,SAAA0+C,GACtB,MACS,UADDA,EAAep+C,KAER6+C,GAAW34C,QAAQk4C,GAEnBlB,GAAch3C,QAAQk4C,EAEzC,IACOnjD,MATuBA,KAAK8/C,sBAAsBr7C,IAAI,SAAAuG,GAAM,OAAAA,EAAGP,OAAH,EAUvE,EAEAs5C,EAAAtkD,UAAAqH,OAAA,WACI,OAAO9G,KAAK8/C,sBAAsBp/C,OAAS,CAC/C,EAGAqjD,EAAAtkD,UAAAiI,SAAA,WACI,OAAO1H,KAAKiH,WAAWxC,IAAI,SAAA2B,GAAS,OAAAA,EAAMjB,EAAN,EACxC,EAEA4+C,EAAAtkD,UAAA2G,MAAA,SAAMmB,GACF,IAAoB,IAAAlB,EAAA,EAAA+C,EAAApJ,KAAKiH,WAALZ,EAAA+C,EAAA1I,OAAA2F,IAAiB,CAAhC,IAAMD,EAAKgD,EAAA/C,GACZ,GAAID,EAAMjB,KAAOoC,EACb,OAAOnB,CAEf,CACA,OAAO,IACX,EAGA29C,EAAAtkD,UAAA0kD,oBAAA,WACInkD,KAAKkgD,eAAe,GACxB,EAEA6D,EAAAtkD,UAAA4gD,qBAAA,SAAqBH,GACjB,IAA6B,IAAA75C,EAAA,EAAA+9C,EAAAlE,EAAA75C,EAAA+9C,EAAA1jD,OAAA2F,IAAgB,CAAxC,IAAMm6C,EAAc4D,EAAA/9C,GACfo6C,GAAY,IAAIwB,IACjB92C,MAAMnL,MACNiD,MAAMu9C,EAAev9C,OACrB8B,KAAKy7C,EAAez7C,WAEK,IAA1By7C,EAAeR,QACfS,EAAU8B,QAAQ/B,EAAeR,QAErChgD,KAAKkgD,iBAAiBr8C,KAAK48C,EAC/B,CACA,OAAOzgD,IACX,EAEA+jD,EAAAtkD,UAAAqgD,oBAAA,WACI,OAAO9/C,KAAKkgD,iBAAiB/5C,OAAO,SAAAu6C,GAAiB,OAAAA,EAAcr1C,OAAd,EACzD,EAEA04C,EAAAtkD,UAAAkhD,kBAAA,WACI,OAAO3gD,KAAK8/C,sBAAsBp/C,MACtC,EAEAqjD,EAAAtkD,UAAAyH,cAAA,SAAcD,GACV,IAAKjH,KAAK8G,SAAU,OAAOtB,EAAA/F,UAAMyH,cAAavH,KAAAK,KAACiH,GAG/C,IAFA,IAAI+B,EAAwB,GACtBq7C,EAAwC,GAC7Bh+C,EAAA,EAAA+C,EAAApJ,KAAK8/C,sBAALz5C,EAAA+C,EAAA1I,OAAA2F,IAA4B,CAAxC,IAAM2E,EAAE5B,EAAA/C,GACT,GAAI2E,aAAc44C,GACd,IAAkB,IAAArjC,EAAA,EAAAC,EAAAxV,EAAG64C,mBAAHtjC,EAAAC,EAAA9f,OAAA6f,IAAuB,CAApC,IACKmgC,EADIlgC,EAAAD,GACgBmgC,gBAC1B13C,EAAOnF,KAAK68C,GACZ2D,EAAU3D,EAAcv7C,KAAM,CAClC,KACG,CACGu7C,EAAgB11C,EAAG01C,gBACzB13C,EAAOnF,KAAK68C,GACZ2D,EAAU3D,EAAcv7C,KAAM,CAClC,CACJ,CACA,GAAInF,KAAKikD,OAASjkD,KAAK2gD,qBACnB,GAAI3gD,KAAKgkD,eAAgB,CACftD,EAAgB,CAClBv7C,GAAI,WACJJ,KAAM,UAEViE,EAAOnF,KAAK68C,GACZ2D,EAAU3D,EAAcv7C,KAAM,CAClC,OAEA6D,EAASA,EAAO3E,OAAO4C,EAASd,OAAO,SAAAC,GAAS,OAACi+C,EAAUj+C,EAAMjB,GAAjB,IAEpD,OAAO,WAAM,OAAA6D,CAAA,CACjB,EAEA+6C,EAAAtkD,UAAAqI,iBAAA,SAAiBL,GACbjC,EAAA/F,UAAMqI,iBAAgBnI,KAAAK,KAACyH,GAEvB,IADA,IAAMC,EAAqB,GACVrB,EAAA,EAAA+C,EAAApJ,KAAK8/C,sBAALz5C,EAAA+C,EAAA1I,OAAA2F,IAA4B,CAAxC,IAAM2E,EAAE5B,EAAA/C,GACT,GAAI2E,aAAc44C,GACd,IAAkB,IAAArjC,EAAA,EAAAC,EAAAxV,EAAG64C,mBAAHtjC,EAAAC,EAAA9f,OAAA6f,IAAuB,CAApC,IAAM+jC,EAAG9jC,EAAAD,GACV7Y,EAAS7D,KAAKygD,EAAI/B,WACd+B,EAAI7B,WACJ/6C,EAAS7D,KAAKygD,EAAI7B,UAE1B,MAEA,GAAkB,aAAdz3C,EAAGjG,OACH,IAAsB,IAAA+b,EAAA,EAAAC,EAAA2iC,UAAQa,eAAev5C,EAAGg4C,YAA1BliC,EAAAC,EAAArgB,OAAAogB,IAAuC,CAAxD,IAAMvZ,EAAOwZ,EAAAD,GACdpZ,EAAS7D,KAAK0D,EAClB,MAEAG,EAAS7D,KAAKmH,EAAGu3C,WACbv3C,EAAGy3C,WACH/6C,EAAS7D,KAAKmH,EAAGy3C,UAIjC,CACAj9C,EAAA/F,UAAMoI,gBAAelI,KAAAK,KAACyH,EAAMC,EAChC,EAEAq8C,EAAAtkD,UAAA4jD,WAAA,WAII,IAJJ,IAAA59C,EAAAzF,KACUw7C,EAAOx7C,KAAKikD,MACZtD,EAAoB3gD,KAAK2gD,oBACzBT,EAAiB,GACN75C,EAAA,EAAA+C,EAAApJ,KAAK8/C,sBAALz5C,EAAA+C,EAAA1I,OAAA2F,IAA4B,CAAxC,IAAM2E,EAAE5B,EAAA/C,GACT,GAAI2E,aAAc44C,GACd,IAAkB,IAAArjC,EAAA,EAAAC,EAAAxV,EAAG64C,mBAAHtjC,EAAAC,EAAA9f,OAAA6f,IAAuB,CAApC,IAAM+jC,EAAG9jC,EAAAD,GACV2/B,EAAer8C,KAAK,CAChBZ,MAAOqhD,EAAIrhD,QACX8f,KAAMuhC,EAAIhB,YAAY9H,IAE9B,MAEA0E,EAAer8C,KAAK,CAChBZ,MAAO+H,EAAG/H,QACV8f,KAAM/X,EAAGs4C,YAAY9H,IAGjC,CACA,OAAO,SAACv2C,GAEJ,IADA,IAAM+D,EAASwyC,GAAQmF,EAAoB,GAAIxgD,EAAA,GAAM8E,GACpCoB,EAAA,EAAAm+C,EAAAtE,EAAA75C,EAAAm+C,EAAA9jD,OAAA2F,IAAgB,CAA5B,IAAM2E,EAAEw5C,EAAAn+C,GACT2C,EAAOgC,EAAG/H,OAAS+H,EAAG+X,KAAK9d,EAC/B,CAMA,OALIu2C,GAAQmF,GACJl7C,EAAKu+C,iBACLh7C,EAAiB,SAAI/D,GAGtB+D,CACX,CACJ,EAEA+6C,EAAAtkD,UAAAyI,YAAA,WACI,IAAMlC,EAAOR,EAAA/F,UAAMyI,YAAWvI,KAAAK,MAC9B,OAAoB,IAAhBgG,EAAKtF,QAAiBV,KAAK8G,SACxBd,EAAKvB,IAAIzE,KAAKqjD,cAD2Br9C,CAEpD,EAjLO+9C,EAAA9B,cAAgBA,GAMvBrhD,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,kBAAmB,KAAM,CAAEiB,WAAYs2C,GAAewC,eAAe,I,2BAClCV,EAAAtkD,UAAA,yBA4KrEskD,C,CAnLA,CAAiCx+C,GAqLjCm/C,GAAA,SAAAl/C,GAAA,SAAAk/C,I,8CAuBA,QAvB6B9kD,EAAA8kD,EAAAl/C,GAEzBk/C,EAAAjlD,UAAAgL,MAAA,WACI,MAAO,CACH1F,KAAM,UACN4d,gBAAiB3iB,KAAK2iB,kBAE9B,EAEA+hC,EAAAjlD,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KAAK2iB,gBAAgBzX,EAAIyX,gBACpC,EAEO+hC,EAAAz5C,QAAP,SAAeC,GACX,OAAO,IAAIw5C,GAAUz5C,QAAQC,EACjC,EAEAw5C,EAAAjlD,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMnB,EAAA/F,UAAMiH,KAAI/G,KAAAK,KAAAG,EAAA,CACb+K,IAAKlL,KAAKyK,SACP9D,GAEX,EACJ+9C,CAAA,CAvBA,CAA6BX,IAwB7BW,GAAQjlD,UAAUgJ,QAAU,WAE5B,IAAAk8C,GAAA,SAAAn/C,GAEI,SAAAm/C,IACI,IAAAl/C,EAAAD,EAAK7F,KAAAK,OAAEA,K,OACPyF,EAAKw+C,OAAQ,EACbx+C,EAAKu+C,gBAAiB,E,CAC1B,CAiCJ,OAvC8BpkD,EAAA+kD,EAAAn/C,GAQ1Bm/C,EAAAllD,UAAAgL,MAAA,WACI,MAAO,CACH1F,KAAM,WACN4d,gBAAiB3iB,KAAK2iB,kBAE9B,EAEAgiC,EAAAllD,UAAAwL,QAAA,SAAQ0U,GACJ,IAAMzU,EAAMyU,GAAQ,CAAEgD,gBAAiB,IACvC,OAAO3iB,KACF2iB,gBAAgBzX,EAAIyX,gBAE7B,EAEOgiC,EAAA15C,QAAP,SAAeC,GACX,OAAO,IAAIy5C,GAAW15C,QAAQC,EAClC,EAEAy5C,EAAAllD,UAAAiH,KAAA,SAAKC,GACD,YADC,IAAAA,MAAA,IACMnB,EAAA/F,UAAMiH,KAAI/G,KAAAK,KAAAG,EAAA,CACb+K,IAAKlL,KAAKyK,SACP9D,GAEX,EAEAg+C,EAAAllD,UAAAqI,iBAAA,SAAiBL,GACb,GAAIzH,KAAK2gD,oBACL,OAAOn7C,EAAA/F,UAAMqI,iBAAgBnI,KAAAK,KAACyH,GAElCzH,KAAK6H,gBAAgBJ,EAAMzH,KAAKiH,WAAWd,OAAO,SAAArD,GAAK,MAAS,aAATA,EAAEqC,EAAF,GAAqBV,IAAI,SAAA3B,GAAK,OAAAA,EAAEqC,EAAF,GACzF,EACJw/C,CAAA,CAvCA,CAA8BZ,IAwC9BY,GAASllD,UAAUgJ,QAAU,YCrvB7B,IAAAm8C,GAAA,SAAAp/C,GAwBI,SAAAo/C,IACI,OAAAp/C,EAAK7F,KAAAK,OAAEA,IACX,CAgDJ,OA1EgCJ,EAAAglD,EAAAp/C,GAY5Bo/C,EAAAnlD,UAAAsH,SAAA,SAASkN,GACL,IAAMjL,EAA2B,GAQjC,OAPKhJ,KAAK6kD,iBACN77C,EAAOnF,KAAK,CACRqF,OAAQ,GAAA7E,OAAG4P,EAAM,YACjBE,IAAK,qBAAA9P,OAAqBrE,KAAKuH,WAC/B6M,KAAM,YAAA/P,OAAYM,KAAKL,UAAUtE,KAAK0H,eAGvCsB,CACX,EAQA47C,EAAAnlD,UAAA0L,MAAA,SAAMnI,GACF,OAAKvC,UAAUC,QACfV,KAAKoL,OAASpI,EACPhD,MAFuBA,KAAKoL,MAGvC,EAEAw5C,EAAAnlD,UAAA4L,MAAA,WACI,QAASrL,KAAKuH,SAClB,EAEAq9C,EAAAnlD,UAAAgL,MAAA,WACI,MAAO,CACHlD,QAASvH,KAAKuH,UACdye,WAAYhmB,KAAKgmB,aAEzB,EAEA4+B,EAAAnlD,UAAAwL,QAAA,SAAQC,GACJ,OAAOlL,KACFuH,QAAQ2D,EAAI3D,SACZye,WAAW9a,EAAI8a,WAExB,EAEO4+B,EAAA35C,QAAP,SAAeC,GACX,OAAO,IAAI05C,GAAa35C,QAAQC,EACpC,EAEA05C,EAAAnlD,UAAAiH,KAAA,WACI,OAAOE,UAAQ,CACXk+C,WAAY9kD,KAAKuH,UACjBye,WAAYhmB,KAAKgmB,cAEzB,EAEA4+B,EAAAnlD,UAAAiI,SAAA,WACI,OAAO1H,KAAKoL,OAAO1D,UACvB,EAEAk9C,EAAAnlD,UAAA2G,MAAA,SAAMjB,GACF,OAAOnF,KAAKoL,OAAOnE,WAAWd,OAAO,SAAAC,GACjC,OAAAA,EAAMjB,KAAOA,CAAb,GACF,EACN,EAlEAvE,EAAA,CAJC8J,UAAQ,KAAM,MAAO,aAAc,WAA8B,OAAO1K,KAAK0H,UAAY,EAAG,CACzFgE,UAAU,EACV3E,SAAU,SAAC8E,GAA2B,OAAAA,EAAEnE,WAAWL,QAAQwE,EAAEtE,YAAc,CAArC,I,2BAEXq9C,EAAAnlD,UAAA,kBAG/BmB,EAAA,CADC8J,WAAQ,EAAO,UAAW,c,2BACQk6C,EAAAnlD,UAAA,qBAgEvCmlD,C,CA1EA,CAAgCv8C,eA2EhCu8C,GAAWnlD,UAAUgJ,QAAU,cAG/B,IAAAs8C,GAAA,SAAAv/C,GAcI,SAAAu/C,IACI,OAAAv/C,EAAK7F,KAAAK,OAAEA,IACX,CA0EJ,OA1F0BJ,EAAAmlD,EAAAv/C,GAMtBu/C,EAAAtlD,UAAAsH,SAAA,WAEI,IADA,IAAIiC,EAA2B,GACd3C,EAAA,EAAA+C,EAAApJ,KAAKglD,cAAL3+C,EAAA+C,EAAA1I,OAAA2F,IAAoB,CAAhC,IAAM4+C,EAAE77C,EAAA/C,GACT2C,EAASA,EAAO3E,OAAO4gD,EAAGl+C,SAAS,eACvC,CACA,OAAOiC,CACX,EAMA+7C,EAAAtlD,UAAAgL,MAAA,WACI,MAAO,CACH1F,KAAM,OACN8gB,WAAY7lB,KAAK6lB,aAEzB,EAEAk/B,EAAAtlD,UAAAwL,QAAA,SAAQC,GAEJ,OADAlL,KAAK6lB,WAAW3a,EAAI2a,YACb7lB,IACX,EAEO+kD,EAAA95C,QAAP,SAAeC,GACX,OAAO,IAAI65C,GAAO95C,QAAQC,EAC9B,EAIA65C,EAAAtlD,UAAAomB,WAAA,SAAW7iB,GACP,OAAKvC,UAAUC,QACfV,KAAKggD,OAAOh9C,EAAEyB,IAAI,SAAA8gB,GAAa,OAAAq/B,GAAW35C,QAAQsa,EAAnB,IACxBvlB,MAFuBA,KAAKglD,cAAcvgD,IAAI,SAAAu7C,GAAU,OAAAA,EAAOv1C,OAAP,EAGnE,EAGAs6C,EAAAtlD,UAAAiH,KAAA,WACI,OAAOE,UAAQ,CACXm+C,KAAM/kD,KAAKggD,SAASv7C,IAAI,SAAAwgD,GAAM,OAAAA,EAAGv+C,MAAH,IAEtC,EAEAq+C,EAAAtlD,UAAAqI,iBAAA,SAAiBL,GACbjC,EAAA/F,UAAMqI,iBAAgBnI,KAAAK,KAACyH,GACvBjC,EAAA/F,UAAMoI,gBAAelI,KAAAK,KAACyH,EAAMzH,KAAKglD,cAAcvgD,IAAI,SAAAygD,GAAU,OAAAA,EAAO39C,SAAP,GACjE,EAEAw9C,EAAAtlD,UAAAulD,YAAA,WACI,OAAOhlD,KAAKggD,SAAS75C,OAAO,SAAA++C,GAAU,OAAAA,EAAO39C,SAAP,EAC1C,EAEAw9C,EAAAtlD,UAAAqH,OAAA,WACI,OAAO9G,KAAKglD,cAActkD,OAAS,CACvC,EAEAqkD,EAAAtlD,UAAAiI,SAAA,WACI,OAAO1H,KAAKiH,WAAWxC,IAAI,SAAA2B,GAAS,OAAAA,EAAMjB,EAAN,EACxC,EAEA4/C,EAAAtlD,UAAAyI,YAAA,WAGI,IAFA,IAAMlC,EAAOR,EAAA/F,UAAMyI,YAAWvI,KAAAK,MACxBmlD,EAA8D,GAC/C9+C,EAAA,EAAA+C,EAAApJ,KAAKglD,cAAL3+C,EAAA+C,EAAA1I,OAAA2F,IAAoB,CAApC,IAAM6+C,EAAM97C,EAAA/C,GACb8+C,EAAUthD,KAAK,CACXwS,QAAS6uC,EAAOl/B,aAAeo/B,aAAeC,YAC9ClgD,GAAI+/C,EAAO39C,WAEnB,CAEA,OAAI49C,EAAUzkD,OACHoD,EAAA,GAAIkC,GAAI,GAAE8f,KAAK,SAAC3hB,EAAQjD,GAC3B,IAAmB,IAAAmF,EAAA,EAAAi/C,EAAAH,EAAA9+C,EAAAi/C,EAAA5kD,OAAA2F,IAAW,CAAzB,IAAMg7B,EAAIikB,EAAAj/C,GACLkJ,EAAU8xB,EAAKhrB,QAAQlS,EAAEk9B,EAAKl8B,IAAKjE,EAAEmgC,EAAKl8B,KAChD,GAAgB,IAAZoK,EACA,OAAOA,CAEf,CACA,OAAO,CACX,GAGGvJ,CACX,EAxFO++C,EAAAQ,OAASX,GAGhBhkD,EAAA,CADC8J,UAAQ,GAAI,gBAAiB,iBAAkB,KAAM,CAAEiB,WAAYi5C,K,2BAChCG,EAAAtlD,UAAA,iBAsFxCslD,C,CA1FA,CAA0Bx/C,GA2F1Bw/C,GAAKtlD,UAAUgJ,QAAU,QCnKzB,IAAA+8C,GAAA,SAAAhgD,GAoEI,SAAAggD,EAAoBt3C,EAAuBgM,GACvC,IAAAzU,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,MAEhBzI,EAAK4E,IAAM6P,EACXzU,EAAK+E,YAAc,IAAIkO,GAASjT,EAAKyI,KACrCzI,EAAKggD,SAAW,IAAI5I,GAAQp3C,EAAKyI,KACjCzI,EAAKigD,SAAW,IAAIhB,GACpBj/C,EAAKkgD,SAAW,IAAIhG,GACpBl6C,EAAKmgD,MAAQ,IAAIb,GACjBt/C,EAAK2lC,OAAS,IAAIyW,GAClBp8C,EAAKogD,iB,CACT,CAuBJ,OArGmCjmD,EAAA4lD,EAAAhgD,GAM/BggD,EAAA/lD,UAAA8K,WAAA,SAAWvH,GACP,OAAKvC,UAAUC,QACfV,KAAKwK,YAAcxH,EACnBhD,KAAK6lD,iBACE7lD,MAHuBA,KAAKwK,WAIvC,EAMAg7C,EAAA/lD,UAAAmmB,QAAA,SAAQ5iB,GACJ,OAAKvC,UAAUC,QACfV,KAAKylD,SAAWziD,EAChBhD,KAAK6lD,iBACE7lD,MAHuBA,KAAKylD,QAIvC,EAMAD,EAAA/lD,UAAAijB,QAAA,SAAQ1f,GACJ,OAAKvC,UAAUC,QACfV,KAAK0lD,SAAW1iD,EAChBhD,KAAK6lD,iBACE7lD,MAHuBA,KAAK0lD,QAIvC,EAMAF,EAAA/lD,UAAAmjB,QAAA,SAAQ5f,GACJ,OAAKvC,UAAUC,QACfV,KAAK2lD,SAAW3iD,EAChBhD,KAAK6lD,iBACE7lD,MAHuBA,KAAK2lD,QAIvC,EAMAH,EAAA/lD,UAAAqmB,KAAA,SAAK9iB,GACD,OAAKvC,UAAUC,QACfV,KAAK4lD,MAAQ5iD,EACbhD,KAAK6lD,iBACE7lD,MAHuBA,KAAK4lD,KAIvC,EAMAJ,EAAA/lD,UAAAwmB,MAAA,SAAMjjB,GACF,OAAKvC,UAAUC,QACfV,KAAKorC,OAASpoC,EACdhD,KAAK6lD,iBACE7lD,MAHuBA,KAAKorC,MAIvC,EAgBAoa,EAAA/lD,UAAA+I,WAAA,SAAWxF,GAEP,OADewC,EAAA/F,UAAM+I,WAAW7H,MAAMX,KAAMS,UAEhD,EAEQ+kD,EAAA/lD,UAAAomD,eAAR,WACI7lD,KAAKwI,WAAW,CACZxI,KAAKuK,aACLvK,KAAK4lB,UACL5lB,KAAK0iB,UACL1iB,KAAK4iB,UACL5iB,KAAK8lB,OACL9lB,KAAKimB,SAEb,EAEAu/B,EAAA/lD,UAAA0V,gBAAA,WACI,OAAOnV,KAAK+I,OAAO7C,WACvB,EAjGAtF,EAAA,CADC8J,UAAQ,KAAM,SAAU,iB,yBACiB86C,EAAA/lD,UAAA,sBAW1CmB,EAAA,CADC8J,UAAQ,KAAM,SAAU,kB,gBACfmyC,KAAQ2I,EAAA/lD,UAAA,mBAWlBmB,EAAA,CADC8J,UAAQ,KAAM,SAAU,W,gBACfg6C,KAAQc,EAAA/lD,UAAA,mBAWlBmB,EAAA,CADC8J,UAAQ,KAAM,SAAU,Y,gBACfi1C,KAAQ6F,EAAA/lD,UAAA,mBAWlBmB,EAAA,CADC8J,UAAQ,KAAM,SAAU,Q,gBAClBq6C,KAAKS,EAAA/lD,UAAA,gBAWZmB,EAAA,CADC8J,UAAQ,KAAM,SAAU,gB,gBACjBm3C,KAAM2D,EAAA/lD,UAAA,iBA2ClB+lD,C,CArGA,CAAmC98C,GCVnCo9C,GAAA,SAAAtgD,GAAA,SAAAsgD,I,8CAQA,QAR8BlmD,EAAAkmD,EAAAtgD,GAC1BsgD,EAAArmD,UAAAiH,KAAA,WACI,OAAOlB,EAAA/F,UAAMiH,KAAI/G,KAAAK,KACrB,EAEA8lD,EAAArmD,UAAAwP,OAAA,SAAOjL,EAAcsF,GACjB,OAAOtH,QAAQC,QAAQ,GAC3B,EACJ6jD,CAAA,CARA,CAA8BN,IAS9BM,GAASrmD,UAAUgJ,QAAU,YCJ7B,IAAAs9C,GAAA,SAAAvgD,GAKI,SAAAugD,EAAY56C,EAA4B66C,GACpC,IAAAvgD,EAAAD,EAAK7F,KAAAK,OAAEA,K,OACPyF,EAAK2F,OAASD,EACd1F,EAAKwgD,aAAeD,EACpBvgD,EAAKygD,cAAgB,SACrBzgD,EAAK0gD,SAAQ,GACb1gD,EAAK2gD,kBAAkB,SACvB3gD,EAAK4gD,iBAAiB,SACtB5gD,EAAK6gD,kBAAkB,U,CAC3B,CAiDJ,OA/DmC1mD,EAAAmmD,EAAAvgD,GAiB/BugD,EAAAtmD,UAAAsxB,KAAA,SAAK/tB,GACD,OAAKvC,UAAUC,QACXV,KAAKumD,OAASvmD,KAAKumD,QAAUvjD,GAC7BhD,KAAKumD,MAAMC,aACNC,UAAS,GACTC,SAGT1mD,KAAKumD,MAAQvjD,EACbhD,KAAKoL,OAAOu7C,cAAc3mD,KAAKimD,cACxBjmD,MATuBA,KAAKumD,KAUvC,EAEAR,EAAAtmD,UAAA+W,MAAA,SAAMowC,EAAS3xC,GACX2xC,EAAQC,cAAcC,MAAMx/B,SAAW,WACvC,IAAMy/B,EAAe/mD,KAAK4d,SAAwBQ,QAC9C2oC,IACA/mD,KAAKoe,MAAM2oC,GACV/mD,KAAK4d,SAAwBopC,cAAa,IAE/CxhD,EAAA/F,UAAM+W,MAAK7W,KAAAK,KAAC4mD,EAAS3xC,EACzB,EAEA8wC,EAAAtmD,UAAA2I,OAAA,SAAOw+C,EAAS3xC,GACZjV,KAAKinD,SAASjnD,KAAKknD,KAAKnkD,EAAI,MAC5B/C,KAAKmnD,UAAUnnD,KAAKknD,KAAK9iC,EAAI,MAC7B5e,EAAA/F,UAAM2I,OAAMzI,KAAAK,KAAC4mD,EAAS3xC,EAC1B,EAEA8wC,EAAAtmD,UAAA2nD,KAAA,SAAKR,EAAS3xC,GACVzP,EAAA/F,UAAM2nD,KAAIznD,KAAAK,KAAC4mD,EAAS3xC,GACCjV,KAAK4d,SAAwBQ,SAE7Cpe,KAAK4d,SAAwBopC,cAAa,EAEnD,EAEAjB,EAAAtmD,UAAA4nD,WAAA,WACI7hD,EAAA/F,UAAM4nD,WAAU1nD,KAAAK,MACZA,KAAKumD,OACLvmD,KAAKumD,MAAMC,aACNC,UAAS,GACTC,QAGb,EACJX,CAAA,CA/DA,CAAmCuB,SAgEnCvB,GAActmD,UAAUgJ,QAAU,4BAgBlC,IAAA8+C,GAAA,SAAA/hD,GA+BI,SAAA+hD,IACI,IAAA9hD,EAAAD,EAAK7F,KAAAK,OAAEA,K,OA7BXyF,EAAA+gD,cAAe,IAAIgB,gBAAetoC,OAAO,aAAauoC,QAAQ,UACzDC,GAAG,QAAS,WACTjiD,EAAKkiD,OAAO52B,KAAKtrB,GACjB,IACMmiD,EADKniD,EAAKoiD,sBAAsB,CAAC,gCAAiC,6BACtDC,SAAQ,GACpBC,EAAKtiD,EAAKkiD,OAAO/pC,SACjBoqC,EAASviD,EAAK+gD,aAAasB,UACjCriD,EAAKkiD,OACAvuB,IAAI,CACDhV,GAAIwjC,EAAOxjC,EAAI4jC,EAAO5jC,EAAI4jC,EAAOC,MAAQF,EAAGG,WAC5CnlD,GAAI6kD,EAAO7kD,EAAIilD,EAAOjlD,EAAIilD,EAAOG,SAEpCC,OAAO,CAAEH,MAAOF,EAAGG,WAAYC,OAAQJ,EAAGM,cAC1ClC,QAAQ1gD,EAAK+gD,aAAaC,YAC1BC,OAAO,SAAC4B,GACL,IAAMC,EAAiB,IAAMD,EAAMnjD,KAAO,mCACpCm9B,EAAOgmB,EAAMrzC,UAAUqtB,OAC7B,GAAIA,EAAM,CACA,IAAAl5B,EAAoBk5B,EAAKkmB,cAAcD,GAAgBE,wBAArDN,EAAM/+C,EAAA++C,OAAEF,EAAK7+C,EAAA6+C,MACrBK,EAAMI,eAAeT,EAAOE,EAChC,CACJ,EAER,GAQA1iD,EAAKkjD,aAAeljD,EAAKmjD,UACzBnjD,EAAKojD,eAAc/kD,EAAA,CAAI2B,EAAK+gD,aAAc,IAAIsC,UAAarjD,EAAKkjD,cAAY,G,CAChF,CAWJ,OA/CmC/oD,EAAA2nD,EAAA/hD,GAsC/B+hD,EAAA9nD,UAAA6oD,MAAA,SAAMtlD,GACF,OAAKvC,UAAUC,QACfV,KAAK2nD,OAAS3kD,EACThD,KAAK2nD,QACN3nD,KAAKwmD,aAAaC,UAAS,GAE/BzmD,KAAK4oD,QAAQ5oD,KAAK2nD,OAAS3nD,KAAK6oD,eAAiB7oD,KAAK2oD,cAC/C3oD,MANuBA,KAAK2nD,MAOvC,EACJJ,CAAA,CA/CA,CAAmCwB,cAgDnCxB,GAAc9nD,UAAUgJ,QAAU,4BAWlC8+C,GAAc9nD,UAAUiL,QAAQ,sBAAuB,GAAI,UAC3D68C,GAAc9nD,UAAUiL,QAAQ,WAAY,IAAK,SAAU,aAC3D68C,GAAc9nD,UAAUiL,QAAQ,YAAa,IAAK,SAAU,cCnI5D,IAAMs+C,GAAgE,CAClEC,MAAKA,QAAEC,UAASA,YAChBC,KAAIA,OAAEC,OAAMA,SAAEC,IAAGA,MAAE9D,OAAMA,SAAE+D,QAAOA,UAAEC,OAAMA,SAAEC,KAAIA,OAAEC,IAAGA,MAAEC,MAAKA,QAAEC,UAASA,YAAEC,QAAOA,UAAEC,KAAIA,OAAEC,UAASA,YACjGC,qBAAsBC,qBAAoBC,mBAAoBC,mBAAkBC,YAAaC,UAAQD,YACrGE,eAAcA,iBAAEC,eAAcA,iBAAEC,UAASA,aAEhCC,GAAa,GAC1B,IAAK,IAAMzpD,MAAOioD,GACdwB,GAAW3mD,KAAK9C,IA+BpB,SAAS0pD,GAAW1lD,GAChB,OA7BJ,SAAmBA,GAEf,OADeikD,GAAWjkD,IACTkkD,OACrB,CA0BWyB,CAAU3lD,GAAM4lD,UAAY,EACvC,CAEA,IAAAC,GAAA,SAAAplD,GAoEI,SAAAolD,EAAsB18C,EAAuBgH,GACzC,IAAAzP,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADWyF,EAAAyI,MAkFtBzI,EAAAolD,YAA0C,GAC1CplD,EAAAqlD,gBAA8C,GAC9CrlD,EAAAK,UAAmC,GAlF/BL,EAAKslD,eAAiB71C,EACtBzP,EAAKoe,SAAS,IAAI8gC,IAClBl/C,EAAKulD,WAAW,IAAIzD,IACpB9hD,EAAKwlD,c,CACT,CAuNJ,OAjSmCrrD,EAAAgrD,EAAAplD,GAS/BolD,EAAAnrD,UAAA6e,WAAA,SAAWtb,GACP,OAAKvC,UAAUC,QACXV,KAAKkrD,cAAgBloD,GACrBhD,KAAKgrD,aAAalqD,OAAO,MAE7Bd,KAAKkrD,YAAcloD,EACZhD,MALuBA,KAAKkrD,WAMvC,EAMAN,EAAAnrD,UAAA8e,UAAA,SAAUvb,EAAa4B,GACnB,IAAKnE,UAAUC,OAAQ,OAAOV,KAAKmrD,WAMnC,IAL8B,IAA1BX,GAAWnjD,QAAQrE,KACnBA,EAAI,SAERhD,KAAKmrD,WAAanoD,EAClBhD,KAAKirD,cACDrmD,EAAO,CACP,IAAMgZ,EAAS5d,KAAKgrD,aAAaptC,SACjC,IAAK,IAAM0c,KAAQ11B,EACa,mBAAjBgZ,EAAO0c,IACd1c,EAAO0c,GAAM11B,EAAM01B,GAG/B,CACA,OAAOt6B,IACX,EAaA4qD,EAAAnrD,UAAAurD,WAAA,SAAWhoD,GAAX,IAAAyC,EAAAzF,KACI,IAAKS,UAAUC,OAAQ,OAAOV,KAAKorD,YAMnC,IAAK,IAAMrqD,KALXf,KAAKorD,YAAcpoD,EACnBhD,KAAKorD,YACA1D,GAAG,QAAS,SAACziD,EAAUomD,EAAaxP,EAAcl1C,GAAS,OAAAlB,EAAK6lD,MAAMrmD,EAAKomD,EAAKxP,EAAKl1C,EAA1B,GAC3D+gD,GAAG,eAAgB,SAACziD,EAAUomD,EAAaxP,GAAiB,OAAAp2C,EAAK8lD,aAAatmD,EAAKomD,EAAKxP,EAA5B,GAE/CmN,GACd,GAAIhpD,KAAKorD,YAAYxtC,mBAAoBorC,GAAWjoD,GAAM,CACtDf,KAAKmrD,WAAapqD,EAClB,KACJ,CAEJ,OAAOf,IACX,EAWA4qD,EAAAnrD,UAAA4U,iBAAA,eAAA5O,EAAAzF,KACI,OAAOA,KAAKkO,IAAI4G,aAAa3O,OAAO,SAAAhB,GAAM,OAAAA,IAAOM,EAAKN,IAAZ,EAC9C,EAGAylD,EAAAnrD,UAAAwrD,YAAA,WACI,GAAIjrD,KAAKwrD,iBAAmBxrD,KAAKmrD,WAAY,CACzCnrD,KAAKwrD,eAAiBxrD,KAAKmrD,WAC3BnrD,KAAKyrD,kBACL,IAAM9tC,EAhHlB,SAAiB5Y,GACb,IACMiE,EAAS,IADIggD,GAAWjkD,IACIkkD,SAkBlC,OAfIjgD,aAAkBkgD,YAClBlgD,EACKjC,UAAS,GACT2kD,mBAAkB,GAEhB1iD,aAAkBshD,kBACzBthD,EACK2iD,UAAU,OACVC,YAAY,SACZC,WAAW,QACXC,YAAY,SACZC,cAAc,OACdC,gBAAgB,SAGlBhjD,CACX,CA2F0BijD,CAAQjsD,KAAKmrD,YAC3BnrD,KAAKgrD,aAAaptC,OAAOD,EAC7B,CACJ,EAIAitC,EAAAnrD,UAAAwe,WAAA,SAAWjb,GACP,OAAKvC,UAAUC,QACfV,KAAKgrD,aAAakB,YAAYlpD,GAEvBhD,MAHuBA,KAAKgrD,aAAal3B,WAIpD,EAEA82B,EAAAnrD,UAAAgsD,gBAAA,WACI,IAAM5nC,EAAW7jB,KAAK6jB,WACtBA,EAASrd,eAAexG,KAAK+qD,gBAC7B,IAAMhL,EAAMl8B,EAASi8B,sBACf74C,EAAW4c,EAAS5c,WACpBklD,EAAQ,GA2Cd,OA1CAtoC,EAASq8B,eAAeuK,GAAWzqD,KAAKmrD,YAAY1mD,IAAI,SAACgpB,EAAO5I,GAC5D,IAAI7b,EAAqC+2C,EAAIl7B,GAC7C,GAAI7b,EACIA,aAAkB46C,IAElB56C,EAAO/F,MAAMwqB,EAAMtoB,SAGvB,GAAIsoB,EAAM2+B,MAAO,CACbpjD,GAAS,IAAI46C,IACRz4C,MAAM0Y,GACN5gB,MAAMwqB,EAAMtoB,IAGjB,IADA,IAAM+6C,EAAkC,GAClB75C,EAAA,EAAAgmD,EAAAplD,EAAAZ,EAAAgmD,EAAA3rD,OAAA2F,IAAU,CAA3B,IAAMimD,EAAOD,EAAAhmD,GACM,QAAfonB,EAAM1oB,MAAkB0oB,EAAM1oB,OAASunD,EAAQvnD,MAAUonD,EAAMG,EAAQnnD,MACxEgnD,EAAMG,EAAQnnD,KAAM,EACpB+6C,EAAer8C,MAAK,IAAIo+C,IACnBh/C,MAAMqpD,EAAQnnD,IACdJ,KAAK,KACLw9C,QAAQ+J,EAAQnnD,KAG7B,CACA6D,EAAO86C,YAAY5D,EACvB,KAAO,CACHl3C,GAAS,IAAIi5C,IACR92C,MAAM0Y,GACN5gB,MAAMwqB,EAAMtoB,IACZJ,KAAK,KAEV,IAAsB,IAAAqE,EAAA,EAAAmjD,EAAAtlD,EAAAmC,EAAAmjD,EAAA7rD,OAAA0I,IAAU,CAArBkjD,EAAOC,EAAAnjD,GACd,IAAoB,QAAfqkB,EAAM1oB,MAAkB0oB,EAAM1oB,OAASunD,EAAQvnD,QAAUonD,EAAMG,EAAQnnD,IAAK,CAC7EgnD,EAAMG,EAAQnnD,KAAM,EACpB6D,EAAOu5C,QAAQ+J,EAAQnnD,IACvB,KACJ,CACJ,CACJ,CAEJ,OAAO6D,CACX,IACOhJ,IACX,EAKA4qD,EAAAnrD,UAAA+sD,YAAA,WACI,IAIIC,EAJE5oC,EAAW7jB,KAAK6jB,WAEhB9X,EAAS8X,EAAS3d,YAClBwmD,EAAW1sD,KAAK2sD,WAAW5gD,GAE7B6gD,EAAe,GACbC,EAAK7sD,KAAKkO,IAAI+G,QAAQjV,KAAK8sD,uBAC7BD,IACAJ,EAAaI,EAAGhpC,WAAW3d,YAC3B0mD,EAAe5sD,KAAK2sD,WAAWF,IAGnC,IAAMM,EAAgB/sD,KAAK6qD,cAAgB9+C,GAAU/L,KAAK8qD,kBAAoB2B,EAC1EM,GACA/sD,KAAK6qD,YAAc9+C,EACM,cAArB/L,KAAKue,cACCyuC,EAAYhtD,KAAKgrD,aAAaptC,UAC1BqvC,cAAcP,EAASjoD,IAAI,SAAA3B,GAAK,OAAAA,EAAEG,OAAF,IAC1C+pD,EAAUE,YAAYN,EAAanoD,IAAI,SAAA3B,GAAK,OAAAA,EAAEG,OAAF,KAE5CjD,KAAKgrD,aAAaj/C,OAAO2gD,EAASvmD,OAAO,SAAArD,GAAK,MAAW,aAAXA,EAAEqC,IAAF,KAGlD4Z,QAAQC,KAAK,MAAA3a,OAAMrE,KAAKmF,KAAI,yBAGhC,IAAMa,EAAO6d,EAAS5b,UAChBklD,EAAcntD,KAAK8F,YAAcE,EACvC,GAAImnD,EAAa,CACbntD,KAAK8F,UAAYE,EACjB,IAEUgnD,EAFJI,EAAaptD,KAAKqtD,SAASX,EAAU1mD,GAC3C,GAAyB,cAArBhG,KAAKue,aAGL,IAFMyuC,EAAYhtD,KAAKgrD,aAAaptC,UAC1B0vC,SAASF,GACfP,EAAI,CACJ,IAAMU,EAAWV,EAAGhpC,WAAW5b,UACzBulD,EAAiBxtD,KAAKqtD,SAAST,EAAcW,GACnDP,EAAUS,MAAMD,EACpB,OAEAxtD,KAAKgrD,aAAahlD,KAAKonD,EAE/B,MACIruC,QAAQC,KAAK,GAAA3a,OAAGrE,KAAKmF,KAAI,qBAG7B,OAAI4nD,GAAiBI,EACVntD,KAAKgrD,aAAa0C,gBAAgB/qD,KAAK,WAAQ,GAEnDX,QAAQC,SACnB,EAEQ2oD,EAAAnrD,UAAAkuD,uBAAR,SAA+B5oD,GAC3B,OAAQA,GACJ,IAAK,UACD,MAAO,SACX,IAAK,UACD,MAAO,UACX,IAAK,SACD,MAAO,SAEX,QACI,MAAO,SAEnB,EAEA6lD,EAAAnrD,UAAAktD,WAAA,SAAW5gD,GAEP,IADA,IAAM/C,EAA2B,GACb3C,EAAA,EAAA+C,EAAA2C,GAAU,GAAV1F,EAAA+C,EAAA1I,OAAA2F,IAAc,CAA7B,IAAMD,EAAKgD,EAAA/C,GACNvD,GAAI,IAAI8qD,WAASC,OAClB9oD,KAAK/E,KAAK2tD,uBAAuBvnD,EAAMrB,OACvCI,GAAGiB,EAAMjB,IACTlC,MAAMmD,EAAMjB,IAEjB,GACS,YADDiB,EAAMrB,KAENjC,EAAEuC,SAASrF,KAAK2sD,WAAWvmD,EAAMf,WAMzC2D,EAAOnF,KAAKf,EAChB,CACA,OAAOkG,CACX,EAEA4hD,EAAAnrD,UAAA4tD,SAAA,SAASthD,EAA0B/F,GAAnC,IAAAP,EAAAzF,KAEI,OADqCwE,UAAQwB,GAAQA,EAAO,CAACA,IAChDvB,IAAI,SAACQ,GAEd,IADA,IAAM+D,EAAS,GACK3C,EAAA,EAAAynD,EAAA/hD,EAAA1F,EAAAynD,EAAAptD,OAAA2F,IAAQ,CAAvB,IAAMD,EAAK0nD,EAAAznD,GACS,WAAjBD,EAAMrB,OACNiE,EAAOnF,KAAK4B,EAAK4nD,SAASjnD,EAAMf,WAAgCJ,EAAImB,EAAMjB,MAAMo+C,KAAOt+C,EAAImB,EAAMjB,QAEjG6D,EAAOnF,KAAKoB,EAAImB,EAAMnD,SAE9B,CACA,OAAO+F,CACX,EACJ,EAEA4hD,EAAAnrD,UAAAsI,KAAA,WACI,IAAMgmD,EAAW,GACjB,GAAI/tD,KAAKguD,6BAA8B,CACnC,IAAMC,EAAqBjuD,KAAK8sD,sBAC1BoB,EAAmBluD,KAAKkO,IAAI+G,QAAQg5C,GACtCC,GACAH,EAASlqD,KAAKqqD,EAAiBpwC,gBAAgB/V,OAEvD,CAEA,IAAM8b,EAAW7jB,KAAK6jB,WAMtB,OALAA,EAASrd,eAAexG,KAAK+qD,gBAC7BgD,EAASlqD,KAAKggB,EAAShd,cAAclE,KAAK,WACtC,OAAOkhB,EAAS9b,MACpB,IAEO/F,QAAQqN,IAAI0+C,EACvB,EAEAnD,EAAAnrD,UAAAoQ,QAAA,eAAApK,EAAAzF,KAEI,OADAA,KAAKgrD,aAAamD,eAAiBnuD,KAAKgrD,aAAamD,gBAC9CnuD,KAAK+H,OAAOpF,KAAK,WAEpB,OADA8C,EAAKulD,aAAaoD,gBAAkB3oD,EAAKulD,aAAaoD,iBAC/C3oD,EAAK+mD,aAChB,EACJ,EAGA5B,EAAAnrD,UAAA6rD,MAAA,SAAMrmD,EAAUomD,EAAaxP,EAAcl1C,GAC3C,EAEAikD,EAAAnrD,UAAA8rD,aAAA,SAAatmD,EAAUomD,EAAaxP,GACpC,EA9RAj7C,EAAA,CADCytD,eAAa,e,2BACezD,EAAAnrD,UAAA,gBAE7BmB,EAAA,CADCytD,eAAa,e,2BACqBzD,EAAAnrD,UAAA,sBAEnCmB,EAAA,CADC8J,UAAQuyC,GAAKqR,cAAc,GAAI,MAAO,OAAQrR,GAAKqR,e,yBACnB1D,EAAAnrD,UAAA,sBAajCmB,EAAA,CADC8J,UAAQ,QAAS,MAAO,OAAQ8/C,I,yBACbI,EAAAnrD,UAAA,qBAsBpBmB,EAAA,CADC8J,UAAQ,KAAM,MAAO,yCAA0C,WAAiC,OAAO1K,KAAKqU,kBAAoB,EAAG,CAAE3I,UAAU,I,2BACrGk/C,EAAAnrD,UAAA,8BAK3CmB,EAAA,CADC8J,UAAQ,KAAM,SAAU,gBAAYf,EAAW,CAAE+8C,QAAQ,EAAO/7C,UAAU,I,2BACzCigD,EAAAnrD,UAAA,mBAElCmB,EAAA,CADC8J,UAAQ,GAAI,SAAU,U,gBACV68C,KAAcqD,EAAAnrD,UAAA,sBAiP/BmrD,C,CAjSA,CAAmCviD,eAkSnCuiD,GAAcnrD,UAAUgJ,QAAU,iBClVlC,IAAA8lD,GAAA,SAAA/oD,GAEI,SAAA+oD,IACI,IAAA9oD,EAAAD,EAAK7F,KAAAK,OAAEA,K,OACPyF,EAAKiE,UAAU,I,CACnB,CAiCJ,OAtC2B9J,EAAA2uD,EAAA/oD,GAOvB+oD,EAAA9uD,UAAA+uD,IAAA,SAAIxrD,GAGA,OAFoB4D,UAAQ5G,KAAK0J,eACd9C,UAAQ5D,KAEvBhD,KAAK0J,UAAU1G,IACR,EAGf,EAEAurD,EAAA9uD,UAAAgvD,cAAA,SAAczoD,GAGV,IAFA,IAAM0oD,EAAgB1uD,KAAK0J,YACrBilD,EAAyB,G,WACpBC,GACHC,OAAK7oD,EAAM,SAACf,EAA6B+oB,GACzC,IAAK,IAAMgyB,KAAU4O,EACjB,GAAIA,EAAO5O,KAAY/6C,EAAI+6C,GACvB,OAAO,EAGf,OAAO,CACX,IACI2O,EAAa9qD,KAAK+qD,E,EATLvoD,EAAA,EAAAyoD,EAAAJ,EAAAroD,EAAAyoD,EAAApuD,OAAA2F,IAAa,C,EAAjByoD,EAAAzoD,GAWhB,CACD,OAAIsoD,EAAajuD,SAAWguD,EAAchuD,SACtCV,KAAK0J,UAAUilD,IACR,EAGf,EACJJ,CAAA,CAtCA,CAA2BlmD,eAuC3BkmD,GAAM9uD,UAAUgJ,QAAU,SAK1B8lD,GAAM9uD,UAAUiL,QAAQ,YAAa,GAAI,QAAS,SAElD,IAAI2V,GAAQ,EACZ0uC,GAAA,SAAAvpD,GAiCI,SAAAupD,EAAoB7gD,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,KACP,IAFgByF,EAAAyI,MAiFZzI,EAAAupD,QAA2B,GAsB3BvpD,EAAAwpD,cAAe,EApGf5uC,KACA5a,EAAK4E,IAAM,KAAAhG,OAAKgc,IACX5a,EAAKyI,IAAIghD,cAAczpD,EAAK4E,OAIrC,IAAM8kD,EAAO,IAAI3J,GAAc//C,EAAKyI,IAAKzI,EAAK4E,K,OAC9C5E,EAAKyP,cAAci6C,GACnB1pD,EAAK2pD,eAAiB,IAAIxE,GAAcnlD,EAAKyI,IAAKzI,EAAKyP,iBAClD/P,GAAG,OAAAd,OAAOgc,KACVjC,MAAM,WAAA/Z,OAAWgc,KAEtB5a,EAAK2pD,eAAepE,aAAa7lD,GAAG,MAAAd,OAAMgc,KAC1C5a,EAAKqY,cAAcrY,EAAK2pD,gBACxB3pD,EAAKwe,MAAM,IAAIsqC,I,CACnB,CAiIJ,OApL6B3uD,EAAAmvD,EAAAvpD,GAWzBupD,EAAAtvD,UAAAqe,cAAA,SAAc9a,GAAd,IAAAyC,EAAAzF,KACI,OAAKS,UAAUC,QACfV,KAAKqvD,eAAiBrsD,EACtBhD,KAAKqvD,eACA3H,GAAG,QAAS,SAAClG,EAAyB6J,EAAaxP,EAAcl1C,GAC9D,GAAIA,GAAQA,EAAK+C,UACbjE,EAAKiE,UAAUmyC,EAAMl1C,EAAK+C,UAAUjF,IAAI,SAAAvD,GAAK,OAAAA,EAAEouD,UAAYpuD,CAAd,GAAmB,QAC7D,CACH,IAAM+D,EAAaT,UAAQg9C,GAAQA,EAAO,CAACA,GAC3C/7C,EAAKiE,UAAUmyC,EAAM52C,EAAIR,IAAI,SAAAvD,GAAK,OAAAA,EAAEouD,UAAYpuD,CAAd,GAAmB,GACzD,CACJ,GACCwmD,GAAG,eAAgB,SAAClG,EAAyB6J,EAAaxP,GACvD,IAAM52C,EAAaT,UAAQg9C,GAAQA,EAAO,CAACA,GAC3C/7C,EAAKiE,UAAUmyC,EAAM52C,EAAIR,IAAI,SAAAvD,GAAK,OAAAA,EAAEouD,UAAYpuD,CAAd,GAAmB,GACzD,GAEGlB,MAhBuBA,KAAKqvD,cAiBvC,EA0BAN,EAAAtvD,UAAA0F,GAAA,SAAGnC,GACC,IAAMgG,EAASxD,EAAA/F,UAAM0F,GAAGxE,MAAMX,KAAMS,WAIpC,OAHIA,UAAUC,QACVV,KAAKovD,eAAejqD,GAAGnC,GAEpBgG,CACX,EAEA+lD,EAAAtvD,UAAA8e,UAAA,WACI,OAAOve,KAAKovD,eAAe7wC,WAC/B,EAIAwwC,EAAAtvD,UAAAurD,WAAA,SAAWhoD,GACP,OAAKvC,UAAUC,QACfV,KAAKovD,eAAepE,WAAWhoD,GACxBhD,MAFuBA,KAAKovD,eAAepE,YAGtD,EAEA+D,EAAAtvD,UAAAke,MAAA,WACI,OAAO3d,KAAKovD,eAAepE,aAAaptC,QAC5C,EAIAmxC,EAAAtvD,UAAAokB,SAAA,SAAS7gB,GACL,OAAKvC,UAAUC,QACfV,KAAKovD,eAAevrC,SAAS7gB,GACtBhD,MAFuBA,KAAKovD,eAAevrC,UAGtD,EAEAkrC,EAAAtvD,UAAA8vD,SAAA,SAAS/mD,GAIL,OAHAxI,KAAKkV,gBACA1M,WAAWA,GAETxI,IACX,EAEA+uD,EAAAtvD,UAAAuH,UAAA,WACI,IAAMgC,EAAShJ,KAAKkV,gBAAgBlO,YAIpC,OAHIhH,KAAK8d,gBAAgBkwC,8BACrBhlD,EAAOnF,KAAK7D,KAAK8d,gBAAgBgvC,uBAE9B9jD,CACX,EAEA+lD,EAAAtvD,UAAA+vD,UAAA,WACI,OAAOxvD,KAAKkV,eAChB,EAEA65C,EAAAtvD,UAAAgwD,SAAA,WACI,OAAOzvD,KAAK8d,gBAAgBktC,YAChC,EAEA+D,EAAAtvD,UAAAiwD,WAAA,WACI,OAAO1vD,KAAKikB,OAChB,EAGA8qC,EAAAtvD,UAAAysB,OAAA,WACI,OAAOlsB,KAAKgvD,OAChB,EAEAD,EAAAtvD,UAAAsH,SAAA,WACI,IAAK/G,KAAKivD,aACN,MAAO,GAEXjvD,KAAKgvD,QAAU,GAEf,IADA,IACuB3oD,EAAA,EAAA+C,EAAAtF,IAAA,GADN9D,KAAKkV,gBACc1M,cAAY,IAAExI,KAAK6jB,aAAU,GAA1Cxd,EAAA+C,EAAA1I,OAAA2F,IACnB,IADC,IACmBka,EAAA,EAAAC,EADLpX,EAAA/C,GACcU,WAATwZ,EAAAC,EAAA9f,OAAA6f,IAAqB,CAApC,IAAM+L,EAAK9L,EAAAD,GACZvgB,KAAKgvD,QAAQnrD,KAAI8rD,EAAA,CACbC,UAAW5vD,KAAKmF,MACbmnB,GAEX,CAEJ,OAAOtsB,KAAKgvD,OAChB,EAGAD,EAAAtvD,UAAAoQ,QAAA,eAAApK,EAAAzF,KAEUgB,EADUhB,KAAKkV,gBAAgB0Q,UAAUk3B,eAChBr4C,IAAI,SAAA3B,GAAK,OAAAA,EAAEg5C,yBAAF,GAExC,OADA97C,KAAK8d,gBAAgBktC,aAAa3sC,YAAYrd,EAAK0D,KAAK,OACjD1E,KAAK8d,gBAAgBjO,UAAUlN,KAAK,WACvC8C,EAAKwpD,cAAe,EACpB,IAAMjpD,EAAOP,EAAKyP,gBAAgBjN,UACO,cAArCxC,EAAKqY,gBAAgBS,YACjB9Y,EAAKwe,QAAQuqC,IAAG1qD,EAAA,GAAKkC,GAAI,KACzBP,EAAKoqD,mBAGLpqD,EAAKwe,QAAQwqC,cAAczoD,IAC3BP,EAAKoqD,kBAGjB,EACJ,EAKAd,EAAAtvD,UAAAiK,UAAA,SAAU1G,GACN,OAAKvC,UAAUC,QACfV,KAAKikB,QAAQva,UAAU1G,GACvBhD,KAAK6vD,mBACE7vD,MAHuBA,KAAKikB,QAAQva,WAI/C,EAGAqlD,EAAAtvD,UAAAowD,iBAAA,WAEI,IAFJ,IAAApqD,EAAAzF,KACU+tD,EAAiC,GACb1nD,EAAA,EAAA+C,EAAApJ,KAAKkO,IAAI4hD,WAAW9vD,KAAKmF,MAAzBkB,EAAA+C,EAAA1I,OAAA2F,IAAgC,CAArD,IAAM0pD,EAAW3mD,EAAA/C,GAClB0nD,EAASlqD,KAAKksD,EAAYlgD,UAC9B,CACA7N,QAAQqN,IAAI0+C,GAAUprD,KAAK,WACvB8C,EAAKyI,IAAI8hD,gBAAgBvqD,EAC7B,EACJ,EAEAspD,EAAAtvD,UAAAsK,QAAA,SAAQgZ,GACJ,OAAO/iB,KAAKkV,gBAAgBnL,QAAQgZ,EACxC,EA7KAniB,EAAA,CADC8J,UAAQ,KAAM,SAAU,a,2BACmBqkD,EAAAtvD,UAAA,wBAE5CmB,EAAA,CADC8J,UAAQ,KAAM,SAAU,iB,gBACTkgD,KAAcmE,EAAAtvD,UAAA,yBAuB9BmB,EAAA,CADC8J,UAAQ,KAAM,SAAU,S,2BACGqkD,EAAAtvD,UAAA,gBAqJhCsvD,C,CApLA,CAA6B1mD,eAqL7B0mD,GAAQtvD,UAAUgJ,QAAU,OAW5B,IAAAwnD,GAAA,SAAAzqD,GAYI,SAAAyqD,IACI,IAAAxqD,EAAAD,EAAK7F,KAAAK,OAAEA,K,OATHyF,EAAA2Z,aAAoC,CAACtR,GACrCrI,EAAAyqD,UAAuB,GAS3BzqD,EAAK4vC,QACL5vC,EAAK0qD,aAAe,IAAIpB,GAAQtpD,G,CACpC,CAiIJ,OAjJsC7F,EAAAqwD,EAAAzqD,GAkBlCyqD,EAAAxwD,UAAA41C,MAAA,SAAM+a,GACFpwD,KAAKof,kBAAuBzV,IAARymD,EAAoB,CAACtiD,GAAiB9N,KAAKof,aAC/Dpf,KAAKkwD,eAAoBvmD,IAARymD,EAAoB,GAAKpwD,KAAKkwD,UAAU/pD,OAAO,SAAAjH,GAAK,OAAAA,EAAEiG,OAASirD,CAAX,EACzE,EAKAH,EAAAxwD,UAAAsR,SAAA,SAAS/N,GACL,OAAKvC,UAAUC,QACfV,KAAKqwD,UAAYrtD,EACVhD,MAFuBA,KAAKqwD,SAGvC,EAIAJ,EAAAxwD,UAAAoZ,YAAA,SAAY7V,GACR,OAAKvC,UAAUC,QACfV,KAAKof,aAAepc,EACbhD,MAFuBA,KAAKof,YAGvC,EAEA6wC,EAAAxwD,UAAA8K,WAAA,SAAWpF,GACP,OAAOnF,KAAKof,aAAajZ,OAAO,SAAAyS,GAAM,OAAAA,EAAGzT,OAASA,CAAZ,GAAgB,EAC1D,EAEA8qD,EAAAxwD,UAAA6wD,iBAAA,SAAiB13C,GAEb,OADA5Y,KAAKof,aAAavb,KAAK+U,GAChB5Y,IACX,EAEAiwD,EAAAxwD,UAAA8wD,iBAAA,SAAiB33C,GAEb,OADA5Y,KAAKof,aAAepf,KAAKof,aAAajZ,OAAO,SAAAlB,GAAO,OAAAA,IAAQ2T,CAAR,GAC7C5Y,IACX,EAEAiwD,EAAAxwD,UAAA+wD,SAAA,WACI,OAAA1sD,EAAA,GAAW9D,KAAKkwD,WAAS,EAC7B,EAEAD,EAAAxwD,UAAAwV,QAAA,SAAQpJ,GACJ,IAAI7C,EAQJ,OANIA,EADa,iBAAN6C,EACE7L,KAAKkwD,UAAU/pD,OAAO,SAAAsT,GAAO,OAAAA,EAAItU,OAAS0G,CAAb,GAC/BA,aAAa07C,GACXvnD,KAAKkwD,UAAU/pD,OAAO,SAAAzC,GAAK,OAAAA,EAAEsnD,eAAiBn/C,CAAnB,GAE3B7L,KAAKkwD,UAAU/pD,OAAO,SAAAzC,GAAK,OAAAA,EAAE+rD,aAAe5jD,CAAjB,IAE7BnL,OACAsI,EAAO,GAEXhJ,KAAKmwD,YAChB,EAEAF,EAAAxwD,UAAAyvD,cAAA,SAAcrjD,GACV,OAAO7L,KAAKiV,QAAQpJ,KAAO7L,KAAKmwD,YACpC,EAEAF,EAAAxwD,UAAAqV,WAAA,WACI,OAAO9U,KAAKkwD,UAAUzrD,IAAI,SAAAgV,GAAO,OAAAA,EAAItU,IAAJ,EACrC,EAEA8qD,EAAAxwD,UAAAgxD,OAAA,SAAOx7C,GAEH,OADAjV,KAAKkwD,UAAUrsD,KAAKoR,GACbjV,IACX,EAEAiwD,EAAAxwD,UAAAqwD,WAAA,SAAWY,GACP,OAAO1wD,KAAKkwD,UAAU/pD,OAAO,SAAAif,GAEzB,OADkBA,EAASpe,YACVK,QAAQqpD,IAAW,CACxC,EACJ,EAEAT,EAAAxwD,UAAAkxD,MAAA,WACI,OAAO3wD,KAAKkwD,UAAUzrD,IAAI,SAAAgV,GAAO,OAAAA,EAAIvE,eAAJ,EACrC,EAEA+6C,EAAAxwD,UAAA0vD,KAAA,SAAKhqD,GACD,OAAOnF,KAAK2wD,QAAQxqD,OAAO,SAAAgpD,GAAQ,OAAAA,EAAKhqD,OAASA,CAAd,GAAkB,EACzD,EAEA8qD,EAAAxwD,UAAAmxD,iBAAA,SAAiBC,GACb,IAAMC,EAAM,GAgBZ,OAfAD,EAAKpzC,aAAa0J,QAAQ1iB,IAAI,SAACjE,GAC3B,IAAMuwD,IAAkBvwD,EAAEid,aAAaG,OAAOH,aAAaE,MACrDqzC,EAAQxwD,EACRywD,EAASzwD,EAAEid,aAAaG,OACxBszC,EAAUH,EAAgBvwD,EAAEid,aAAaG,OAAOH,aAAaE,MAAQnd,EAAEid,aAAaG,OAAOH,aAAaG,OACxGvT,EAAM7J,EAAEid,aAAaG,OAAOyJ,KAAO7mB,EAAEid,aAAaG,OAAOyJ,KAAO7mB,EAAEid,aAAaG,OAAOH,aAAaG,OAAOyJ,KAChHypC,EAAIzmD,GAAO,CACPlF,GAAIkF,EACJ8mD,QAASD,EAAQnzC,QAAQjK,MAAM,KAAK,GACpCgJ,OAAQo0C,EAAQnzC,QAAQjK,MAAM,KAAK,GACnCvI,KAAM6lD,EAAYJ,EAAO,CAAC,QAAS,SAAU,WAC7CK,MAAOD,EAAYH,EAAQ,CAAC,QAAS,SAAU,WAC/CrzC,OAAQwzC,EAAYF,EAAS,CAAC,WAEtC,GACOJ,EACP,SAASM,EAAYE,EAAIC,GACrB,IAAMT,EAAM,GAIZ,OAHA1xD,OAAOyF,KAAKysD,EAAG7zC,cACVtX,OAAO,SAAA3F,GAAK,OAA4B,IAA5B+wD,EAAalqD,QAAQ7G,EAArB,GACZ2L,QAAQ,SAAA3L,GAAK,OAAAswD,EAAItwD,GAAK8wD,EAAG7zC,aAAajd,EAAzB,GACXswD,CACX,CACJ,EAEAb,EAAAxwD,UAAAsH,SAAA,WACI,IAAIiC,EAA0B,GAI9B,OAHAhJ,KAAKkwD,UAAU/jD,QAAQ,SAAAqlD,GACnBxoD,EAASA,EAAO3E,OAAOmtD,EAAKzqD,WAChC,GACOiC,CACX,EAEAinD,EAAAxwD,UAAAoQ,QAAA,eAAApK,EAAAzF,KACI,OAAOgC,QAAQqN,IAAIrP,KAAKwwD,WAAW/rD,IAAI,SAAAwQ,GAAW,OAAAA,EAAQpF,SAAR,IAAoBlN,KAAK,WACvE,OAAO8C,CACX,EACJ,EAGAwqD,EAAAxwD,UAAAuwD,gBAAA,SAAgBv2C,GAChB,EAxIA7Y,EAAA,CADC8J,UAAQ,GAAI,SAAU,qB,2BACQulD,EAAAxwD,UAAA,kBAE/BmB,EAAA,CADC8J,UAAQ,IAAK,SAAU,e,2BACUulD,EAAAxwD,UAAA,qBAuItCwwD,C,CAjJA,CAAsC5nD,eC3PtC,SAASopD,GAAa/iD,GACpB,IAAKA,EAASgjD,GAAI,MAAM,IAAI5hD,MAAMpB,EAASijD,OAAS,IAAMjjD,EAASkjD,YACnE,OAAOljD,EAASwK,MAClB,CAEe,SAAA24C,GAASpkC,EAAOqkC,GAC7B,OAAOzoD,MAAMokB,EAAOqkC,GAAMnvD,KAAK8uD,GACjC,CDsYAxB,GAAiBxwD,UAAUgJ,QAAU,8BExYrC,IAAAspD,GAAA,SAAAvsD,GAAA,SAAAusD,I,qDAEctsD,EAAAusD,QAA2B,GAC3BvsD,EAAAwsD,UAKN,G,CA2ER,QAnFkCryD,EAAAmyD,EAAAvsD,GAU9BusD,EAAAtyD,UAAAyyD,YAAA,WAGI,OAFKlyD,KAAKgyD,UAAShyD,KAAKgyD,QAAU,IAC7BhyD,KAAKiyD,YAAWjyD,KAAKiyD,UAAY,IAC/BjyD,KAAKgyD,OAChB,EAEAD,EAAAtyD,UAAA0yD,iBAAA,WACI,OAAOnyD,KAAKkyD,cAAcztD,IAAI,SAAAjF,GAAK,OAAAA,EAAEoe,QAAF,EACvC,EAEAm0C,EAAAtyD,UAAA2yD,SAAA,SAASrK,GACL,IAAMyJ,EAAOxxD,KAAKkO,IAAI+G,QAAQ8yC,GACxBsK,EAAaryD,KAAKiV,UAAUqtB,OAC5BgwB,EAAK,IAAIvM,GAAc/lD,KAAMwxD,GAC9B1wD,OAAOuxD,GACPz0C,OAAOmqC,GACPwK,iBAAiBvyD,KAAKmF,MACtBqtD,KAAK,CACFvK,MAAOF,EAAGG,WACVC,OAAQJ,EAAGM,cAEnBroD,KAAKgyD,QAAQnuD,KAAKyuD,GAClBtyD,KAAKiyD,UAAUlK,EAAG5iD,MAAQ,CACtBksD,MAAOiB,EACPG,cAAe1K,EAAGh+C,QAAQ,SAAC5E,GACvB,OAAQA,GACJ,IAAK,WACL,IAAK,YACDmtD,EACKlK,OAAO,CAAEH,MAAOF,EAAGG,WAAYC,OAAQJ,EAAGM,cAC1C3B,SAIjB,IAEJ1mD,KAAKkO,IAAI4hD,WAAW0B,EAAKrsD,MAAMgH,QAAQ,SAAAumD,GACnCA,EAAU50C,gBAAgBktC,aAAa1C,MAAMgK,EACjD,EACJ,EAEAP,EAAAtyD,UAAAkzD,YAAA,SAAY5K,GACR,IAAMyJ,EAAOxxD,KAAKkO,IAAI+G,QAAQ8yC,GAC9B/nD,KAAKkO,IAAI4hD,WAAW0B,EAAKrsD,MAAMgH,QAAQ,SAAAumD,GACnCA,EAAU50C,gBAAgBktC,aAAa1C,MAAM,KACjD,GACAtoD,KAAKiyD,UAAUlK,EAAG5iD,MAAMksD,MAAMvwD,OAAO,MACrCd,KAAKiyD,UAAUlK,EAAG5iD,MAAMstD,cAAc3oD,SACtCi+C,EAAGjnD,OAAO,aACHd,KAAKiyD,UAAUlK,EAAG5iD,MACzBnF,KAAKgyD,QAAUhyD,KAAKgyD,QAAQ7rD,OAAO,SAAA3G,GAAK,OAAAA,EAAEoe,WAAamqC,CAAf,EAC5C,EAEAgK,EAAAtyD,UAAAmzD,WAAA,WAOI,IANA,IAAMC,EAAa7yD,KAAKmyD,mBAClBW,EAAaz8C,UAAQw8C,EAAY7yD,KAAKkO,IAAIsiD,WAC3CrqD,OAAO,SAAA5D,GAAK,MAAmC,WAAnCA,EAAEub,gBAAgBQ,YAAlB,GACZ7Z,IAAI,SAAC+sD,GAAc,OAAAA,EAAK1zC,gBAAgBktC,YAArB,IAGR3kD,EAAA,EAAA+C,EAAA0pD,EAAW1L,KAAX/gD,EAAA+C,EAAA1I,OAAA2F,IAAiB,CAA5B,IAAMwF,EAACzC,EAAA/C,GACRrG,KAAK2yD,YAAY9mD,EACrB,CAEA,IAAgB,IAAA0U,EAAA,EAAAC,EAAAsyC,EAAWt8C,MAAX+J,EAAAC,EAAA9f,OAAA6f,IAAkB,CAAvB1U,EAAC2U,EAAAD,GACRvgB,KAAKoyD,SAASvmD,EAClB,CAEA,OAAO7L,IACX,EAEA+xD,EAAAtyD,UAAAknD,cAAA,WACA,EACJoL,CAAA,CAnFA,CAAkCgB,UCGlCC,GAAA,SAAAxtD,GAEI,SAAAwtD,EAAoB9kD,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,M,CAGpB,CA2GJ,OAhHwCtO,EAAAozD,EAAAxtD,GAOpCwtD,EAAAvzD,UAAAwzD,SAAA,SAASh+C,GACL,OAAIjV,KAAKkzD,iBACEj+C,EAAQ6I,gBAAgBM,MAAQnJ,EAAQ6I,gBAAgBM,QAAUnJ,EAAQ6I,gBAAgB3Y,KAE9F8P,EAAQ9P,IACnB,EAEA6tD,EAAAvzD,UAAA0zD,aAAA,SAAaC,EAAmBlP,EAAiBmP,GAC7C,IAAIC,EAAUF,EAAGh1C,MAAMm1C,UAAUz/C,MAAM,KACnCu/C,GAAWC,EAAQjsD,QAAQ68C,GAAW,EACtCoP,EAAQzvD,KAAKqgD,IACLmP,GAAWC,EAAQjsD,QAAQ68C,GAAW,IAC9CoP,EAAUA,EAAQntD,OAAO,SAAAlF,GAAK,OAAAA,IAAMijD,CAAN,IAElCkP,EAAGh1C,MAAMm1C,UAAYD,EAAQ5uD,KAAK,IACtC,EAEAsuD,EAAAvzD,UAAA+zD,YAAA,SAAY3nD,GACR,IAAMunD,EAAoBpzD,KAAKyzD,iBAAiB5nD,GAC1CoJ,EAAmBjV,KAAKkO,IAAI+G,QAAQpJ,GACpCqgB,EAASjX,EAAQlO,WACvBqsD,EAAGh1C,MAAMnb,MAAQjD,KAAKizD,SAASh+C,GAC/BjV,KAAKmzD,aAAaC,EAAI,QAASlnC,EAAOxrB,OAAS,GAC/C0yD,EAAGh1C,MAAMs1C,QAAUxnC,EAAOznB,IAAI,SAAAkvD,GAAO,SAAAtvD,OAAGsvD,EAAIzqD,OAAM,OAAA7E,OAAMsvD,EAAIx/C,IAAvB,GAA8BzP,KAAK,KAC5E,EAEAsuD,EAAAvzD,UAAAm0D,SAAA,SAAS3+C,GACL,IAAMm+C,EAAKpzD,KAAKyzD,iBAAiBx+C,EAAQ6I,gBAAgBktC,cACrDoI,GACAA,EAAGQ,UAEX,EAEAZ,EAAAvzD,UAAAo0D,YAAA,SAAYhoD,GACR,GAAIA,EAAEioD,mBAAqBjoD,EAAEkoD,mBAAoB,CAC7C,IAAMX,EAAKpzD,KAAKyzD,iBAAiB5nD,GAKjC,OAJAmoD,SAASZ,EAAG9wB,MACPwkB,MAAM,YAAa,GAAAziD,OAAGwH,EAAEq8C,WAAU,OAClCpB,MAAM,aAAc,GAAAziD,OAAGwH,EAAEw8C,YAAW,QAElC,CACX,CACA,OAAO,CACX,EAEA2K,EAAAvzD,UAAAw0D,YAAA,WAKI,IAJA,IAAMC,EAAcl0D,KAAKm0D,UACnBC,EAAc/9C,UAAQ69C,EAAal0D,KAAKkO,IAAIsiD,WAAWrqD,OAAO,SAAA5D,GAAK,MAAmC,WAAnCA,EAAEub,gBAAgBQ,YAAlB,GAA6C7Z,IAAI,SAAAgV,GAAO,OAAAA,EAAIqE,gBAAgBktC,YAApB,IAE7HqJ,GAAQ,EACIhuD,EAAA,EAAA+C,EAAAgrD,EAAYhN,KAAZ/gD,EAAA+C,EAAA1I,OAAA2F,IAAkB,CAA7B,IAAMwF,EAACzC,EAAA/C,GACRrG,KAAKs0D,aAAazoD,EACtB,CAEA,IAAgB,IAAA0U,EAAA,EAAAC,EAAA4zC,EAAY59C,MAAZ+J,EAAAC,EAAA9f,OAAA6f,IAAmB,CAAxB1U,EAAC2U,EAAAD,GAAP,IACKtL,EAAmBjV,KAAKkO,IAAI+G,QAAQpJ,GAC1C7L,KAAKu0D,UAAU1oD,EAAG7L,KAAKizD,SAASh+C,GAAU,oBAAgBtL,EAAW3J,KAAKkzD,sBAAmBvpD,EAAY3J,MACzGq0D,EAAQr0D,KAAK6zD,YAAYhoD,IAAMwoD,CACnC,CAEA,IAAgB,IAAAvzC,EAAA,EAAAC,EAAAqzC,EAAYhsD,OAAZ0Y,EAAAC,EAAArgB,OAAAogB,IAAoB,CAAzBjV,EAACkV,EAAAD,GACR9gB,KAAKwzD,YAAY3nD,GACjBwoD,EAAQr0D,KAAK6zD,YAAYhoD,IAAMwoD,CACnC,CAMA,OAJIA,GACAr0D,KAAKq0D,QAGFr0D,IACX,EAGAgzD,EAAAvzD,UAAA+0D,gBAAA,SAAgB3oD,EAAWunD,GACvB5tD,EAAA/F,UAAM+0D,gBAAe70D,KAAAK,KAAC6L,EAAGunD,GACzBpzD,KAAK2mD,cAAc3mD,KAAKkO,IAAI+G,QAAQpJ,IACpC,IAAkB,IAAAxF,EAAA,EAAA+C,EAAApJ,KAAKy0D,iBAALpuD,EAAA+C,EAAA1I,OAAA2F,IAAuB,CAApC,IAAMquD,EAAGtrD,EAAA/C,GACNquD,IAAQtB,GACRsB,EAAIC,SAAS,UACb30D,KAAKmzD,aAAauB,EAAK,UAAU,GACjCA,EAAIt2C,MAAMw2C,UAAY,WAEtBF,EAAIG,YAAY,UAChB70D,KAAKmzD,aAAauB,EAAK,UAAU,GACjCA,EAAIt2C,MAAMw2C,UAAY,GAE9B,CACJ,EAEA5B,EAAAvzD,UAAAknD,cAAA,SAAcltC,GACd,EAGAu5C,EAAAvzD,UAAAq1D,SAAA,SAASjpD,EAAWunD,GAChB,IAAMjuD,EAAKnF,KAAKkO,IAAI+G,QAAQpJ,GAAG1G,KACzB6D,EAAS+rD,OAAOC,QAAQ,kBAAA3wD,OAAkBc,EAAE,OAMlD,OALI6D,IACAhJ,KAAKkO,IAAImnC,MAAMlwC,GACfnF,KAAKi0D,cACLj0D,KAAK2mD,mBAAch9C,IAEhBX,CACX,EAEAgqD,EAAAvzD,UAAAmzD,WAAA,WAAe,EACnBI,CAAA,CAhHA,CAAwCiC,aAiHxCjC,GAAmBvzD,UAAUgJ,QAAU,iCACvCuqD,GAAmBvzD,UAAUy1D,MAAMnD,ICjHnC,IAAAoD,GAAA,SAAA3vD,GAEI,SAAA2vD,EAAoBjnD,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,MADZzI,EAAA2vD,aAAe,GAInB3vD,EAAK4vD,YAAW,GAChB5vD,EAAK6vD,eAAe,KACpB7vD,EAAK8vD,mBAAmB,G,CAC5B,CAsLJ,OA9LmC31D,EAAAu1D,EAAA3vD,GAS/B2vD,EAAA11D,UAAA+1D,WAAA,SAAWpN,EAAQqN,EAAgCC,QAAhC,IAAAD,MAAA,QAAgC,IAAAC,OAAA,GAC/ClwD,EAAA/F,UAAM+1D,WAAU71D,KAAAK,KAACooD,EAAQqN,EAAoBC,GAC7C11D,KAAKo1D,aAAep1D,KAAKmnB,UAAU1iB,IAAI,SAAAkxD,GACnC,MAAO,CACHxwD,GAAIwwD,EAAW/3C,SAASzY,KACxBmiB,SAAU,CACNquC,EAAWpuC,UACXouC,EAAWnuC,UACXmuC,EAAWluC,cACXkuC,EAAWjuC,eAGvB,EACJ,EACAytC,EAAA11D,UAAAm2D,UAAA,SAAU5yD,GACN,GAAIA,EACA,GAAKA,EAAU6yD,KAAM,CACjB,IAAMC,EAQd,SAAqBC,EAAc9U,EAAM+U,GACrC,IAAMlF,EAAM,GAEZ,OADAmF,EAAKF,EAAaF,KAAM,EAAG,EAAG5U,EAAM+U,GAC7BlF,EACP,SAASmF,EAAK7tC,EAAGhE,EAAGrhB,EAAG8I,EAAGqqD,GAClB9tC,EAAE/iB,SACa,eAAX+iB,EAAErjB,KACoB,eAAlBqjB,EAAE+tC,YACF/tC,EAAE/iB,SAAS8G,QAAQ,SAACi3C,EAAO7iD,GACvB,IAAM61D,EAAKhuC,EAAEiuC,MAAM91D,GAAKsL,EAClBqV,EAAKg1C,EACLI,EAAW,IAAN/1D,EAAU6jB,EAAIA,EAAIgE,EAAEiuC,MAAM,GAAKxqD,EACpC0qD,EAAKxzD,EACXkzD,EAAK7tC,EAAE/iB,SAAS9E,GAAI+1D,EAAIC,EAAIH,EAAIl1C,EACpC,GACyB,aAAlBkH,EAAE+tC,YACT/tC,EAAE/iB,SAAS8G,QAAQ,SAACi3C,EAAO7iD,GACvB,IAAM61D,EAAKvqD,EACLqV,EAAKkH,EAAEiuC,MAAM91D,GAAK21D,EAClBI,EAAKlyC,EACLmyC,EAAW,IAANh2D,EAAUwC,EAAIA,EAAIqlB,EAAEiuC,MAAM,GAAKH,EAC1CD,EAAK7tC,EAAE/iB,SAAS9E,GAAI+1D,EAAIC,EAAIH,EAAIl1C,EACpC,GAEAnC,QAAQuN,MAAM,OAEA,aAAXlE,EAAErjB,MACTqjB,EAAE/iB,SAAS8G,QAAQ,SAACi3C,EAAO7iD,GACvB,IAAM61D,EAAKvqD,EACLqV,EAAKkH,EAAEiuC,MAAM91D,GAAK21D,EAClBI,EAAKlyC,EACLmyC,EAAW,IAANh2D,EAAUwC,EAAIA,EAAIqlB,EAAEiuC,MAAM,GAAKH,EAC1CD,EAAK7tC,EAAE/iB,SAAS9E,GAAI+1D,EAAIC,EAAIH,EAAIl1C,EACpC,GAGJ4vC,EAAIjtD,KAAK,CAACugB,EAAGrhB,EAAG8I,EAAGqqD,GAAGzxD,IAAI0K,KAAKqnD,OAEvC,CACJ,CA/CgCC,CAAYzzD,EAAG,GAAI,IAC3ChD,KAAKo1D,aAAeU,CACxB,MAAW9yD,aAAazD,QACpBS,KAAKo1D,aAAepyD,GAG5B,OAAOhD,IA0CX,EACAm1D,EAAA11D,UAAAynB,OAAA,WACI,OAAOlnB,KAAKo1D,YAChB,EACAD,EAAA11D,UAAA00D,QAAA,WACI,OAAOn0D,KAAKmnB,UAAU1iB,IAAI,SAAAxD,GAAK,OAAAA,EAAE2c,QAAF,EACnC,EACAu3C,EAAA11D,UAAAyzD,eAAA,WACI,OAAO,CACX,EACAiC,EAAA11D,UAAAg0D,iBAAA,WACA,EAEA0B,EAAA11D,UAAAwzD,SAAA,SAASh+C,GACL,OAAIjV,KAAKkzD,iBACEj+C,EAAQ6I,gBAAgBM,MAAQnJ,EAAQ6I,gBAAgBM,QAAUnJ,EAAQ6I,gBAAgB3Y,KAE9F8P,EAAQ9P,IACnB,EAEAgwD,EAAA11D,UAAA+zD,YAAA,SAAY3nD,GACR,IAAMN,EAAavL,KAAK02D,cAAc7qD,EAAE1G,MAClC8P,EAAmBjV,KAAKkO,IAAI+G,QAAQpJ,GACpConD,EAAWjzD,KAAKizD,SAASh+C,GAC9B1J,EAAKqS,SACDQ,MAAM60C,EAEf,EAEAkC,EAAA11D,UAAAm0D,SAAA,SAAS3+C,GACT,EAEAkgD,EAAA11D,UAAA60D,aAAA,SAAazoD,GACT,IAAMN,EAAOvL,KAAK02D,cAAc7qD,EAAE1G,MAClCnF,KAAK22D,aAAaprD,EACtB,EAEA4pD,EAAA11D,UAAAo0D,YAAA,SAAYhoD,GACR,SAAIA,EAAEioD,oBAAqBjoD,EAAEkoD,sBACN/zD,KAAK02D,cAAc7qD,EAAE1G,MACnC8P,UACA6xC,MAAM,YAAa,GAAAziD,OAAGwH,EAAEq8C,WAAU,OAClCpB,MAAM,aAAc,GAAAziD,OAAGwH,EAAEw8C,YAAW,QAElC,EAGf,EAEA8M,EAAA11D,UAAAw0D,YAAA,WAII,IAJJ,IAAAxuD,EAAAzF,KACUk0D,EAAcl0D,KAAKm0D,UACnBC,EAAc/9C,UAAQ69C,EAAal0D,KAAKkO,IAAIsiD,WAAWrqD,OAAO,SAAA5D,GAAK,MAAmC,WAAnCA,EAAEub,gBAAgBQ,YAAlB,GAA6C7Z,IAAI,SAAAgV,GAAO,OAAAA,EAAIqE,gBAAgBktC,YAApB,IAEjH3kD,EAAA,EAAA+C,EAAAgrD,EAAYhN,KAAZ/gD,EAAA+C,EAAA1I,OAAA2F,IAAkB,CAA7B,IAAMwF,EAACzC,EAAA/C,GACRrG,KAAKs0D,aAAazoD,EACtB,CAIA,IADA,IAAM+qD,EAAkB,G,WACbh5C,GACP,IAAM3I,EAAmB4hD,EAAK3oD,IAAI+G,QAAQ2I,GACpCrd,EAAIs2D,EAAK1vC,UAAUzmB,OACzB,GAAIm2D,EAAKzB,cAAgByB,EAAKzB,aAAa70D,GAAI,CAC3C,IAAM2mB,EAAU2vC,EAAKzB,aAAqBvG,KAAK,SAAAruD,GAAK,OAAAA,EAAE2E,KAAOyY,EAAOzY,IAAhB,GACpD,GAAI+hB,EAAQ,CACF,IAAAlG,EAAekG,EAAOI,SAArBlD,EAACpD,EAAA,GAAEje,EAACie,EAAA,GAAEnV,EAACmV,EAAA,GAAEk1C,EAACl1C,EAAA,GACjB61C,EAAKC,WAAW/zD,EAAGqhB,EAAGnP,EAAQ6I,gBAAgBktC,aAAc,GAAIkL,EAAGrqD,EAGvE,MACI+qD,EAAgB/yD,KAAKoR,EAAQ6I,gBAAgBktC,aAErD,MACI4L,EAAgB/yD,KAAKoR,EAAQ6I,gBAAgBktC,a,SAdhCzqC,EAAA,EAAAC,EAAA4zC,EAAY59C,MAAZ+J,EAAAC,EAAA9f,OAAA6f,IAAiB,C,EAArBC,EAAAD,GAgBhB,CACD,IAAIw2C,EAAU/2D,KAAKmnB,UAAU+K,OAAO,SAAC8kC,EAAMC,GAAS,OAAA9nD,KAAK+uC,IAAI8Y,EAAMC,EAAKzvC,UAAYyvC,EAAKvvC,cAArC,EAAqD,GACzGkvC,EAAgBzqD,QAAQ,SAAA47C,GACpBtiD,EAAKqxD,WAAWC,EAAS,EAAGhP,EAAI,GAAI,EAAG,GACvCgP,GAAW,CACf,GACA,IAAgB,IAAAj2C,EAAA,EAAAC,EAAAqzC,EAAYhsD,OAAZ0Y,EAAAC,EAAArgB,OAAAogB,IAAoB,CAAzBjV,EAACkV,EAAAD,GACR9gB,KAAKwzD,YAAY3nD,EACrB,CACA,OAAO7L,IACX,EAGAm1D,EAAA11D,UAAA+0D,gBAAA,SAAgB3oD,EAAWunD,GACvBpzD,KAAK2mD,cAAc3mD,KAAKkO,IAAI+G,QAAQpJ,GACxC,EAEAspD,EAAA11D,UAAAy3D,oBAAA,WACI1xD,EAAA/F,UAAMy3D,oBAAmBv3D,KAAAK,MACzB,IAAMymD,EAAWzmD,KAAKm3D,cAAcviB,MAChC6R,EAAS/lD,OAAS,GAClBV,KAAKw0D,gBAAgB/N,EAAS,GAAG7oC,OAAOA,SAEhD,EAEAu3C,EAAA11D,UAAAknD,cAAA,SAAcltC,GACd,EAGA07C,EAAA11D,UAAAq1D,SAAA,SAASjpD,EAAWunD,GAChB,IAAMjuD,EAAKnF,KAAKkO,IAAI+G,QAAQpJ,GAAG1G,KACzB6D,EAAS+rD,OAAOC,QAAQ,kBAAA3wD,OAAkBc,EAAE,OAMlD,OALI6D,IACAhJ,KAAKkO,IAAImnC,MAAMlwC,GACfnF,KAAKi0D,cACLj0D,KAAK2mD,mBAAch9C,IAEhBX,CACX,EAEAmsD,EAAA11D,UAAAmzD,WAAA,WAAe,EACnBuC,CAAA,CA9LA,CAAmCiC,QA+LnCjC,GAAc11D,UAAUgJ,QAAU,4BAClC0sD,GAAc11D,UAAUy1D,MAAMnD,ICpL9B,IAAMxuB,GAAS8zB,eAAa,uBAK5BC,GAAA,WAGI,SAAAA,IACA,CAoGJ,OAlGIA,EAAA73D,UAAA41C,MAAA,WACIr1C,KAAKu3D,SAAW,EACpB,EAEAD,EAAA73D,UAAA0F,GAAA,SAAGqyD,GACC,OAAIA,aAAennD,EACR,GAAAhM,OAAGmzD,EAAI/mD,MAAK,KAAApM,OAAImzD,EAAI9mD,QACpB8mD,aAAe9gD,EACf,GAAArS,OAAGmzD,EAAI/mD,MAAK,KAAApM,OAAImzD,EAAI5gD,WAAU,KAAAvS,OAAImzD,EAAI3gD,WACtC2gD,aAAejlD,EACf,GAAAlO,OAAGmzD,EAAI/mD,MAAK,KAAApM,OAAImzD,EAAI9kD,UAExB8kD,EAAIryD,IACf,EAEAmyD,EAAA73D,UAAAg4D,WAAA,SAAWD,GACP,OAAOx3D,KAAKu3D,SAASv3D,KAAKmF,GAAGqyD,IAAM5+C,GAAGzT,IAC1C,EAEAmyD,EAAA73D,UAAAi4D,UAAA,SAAUC,GACN,OAAIA,aAAiB1lD,EACVjS,KAAKy3D,WAAWE,EAAMptD,aAAa+F,MACnCqnD,aAAiBjgD,IAEjBigD,aAAiBz/C,IAEjBy/C,aAAiBhiD,EAHjB3V,KAAKy3D,WAAWE,EAAMptD,aAAakJ,gBAGvC,CAGX,EAEA6jD,EAAA73D,UAAAgxD,OAAA,SAAOmH,GACH,IAAMC,EAA6BD,aAAel/C,GAAWk/C,EAAIrtD,aAAeqtD,EAC1Ex+C,EAAqBw+C,aAAel/C,GAAWk/C,EAAI5+C,qBAAkBrP,EACrEmuD,EAAQD,EAAQ1yD,KAChByT,EAAqBi/C,aAAmB1nD,EAAW0nD,EAAQvnD,KAAOunD,aAAmBpgD,IAAkCogD,aAAmBtkD,EAAvCskD,EAAQpkD,UAAgEokD,EAC3Kz3C,EAAOpgB,KAAKmF,GAAGyT,GAChB5Y,KAAKu3D,SAASn3C,KACfpgB,KAAKu3D,SAASn3C,GAAQ,CAClBxH,GAAEA,EACFnW,OAAQ,KAGXzC,KAAKu3D,SAASn3C,GAAM3d,OAAOq1D,KAC5B93D,KAAKu3D,SAASn3C,GAAM3d,OAAOq1D,GAAS,CAChCD,QAAOA,EACPz+C,IAAGA,GAGf,EAEAk+C,EAAA73D,UAAAs4D,OAAA,WACI,IAAM/uD,EAAgC,G,WAC3BjI,GACP,IAAMmK,EAAM2rD,EAAKU,SAASx2D,GAAK6X,GAAGnO,QAGlC,GAAiB,UAAbS,EAAInG,MAAiC,UAAbmG,EAAInG,MAAiC,SAAbmG,EAAInG,KAAiB,CACrE,IAAMizD,EAA6C,G,WACxCC,GACP,IAAM/6C,EAAO25C,EAAKU,SAASx2D,GAAK0B,OAAOw1D,GAAMJ,QAAQptD,QAC/ChD,EAAyB,CAC3BmL,OAAQ,GACRhL,QAAS,IAGb,IAAK,IAAMswD,KADXrB,EAAKU,SAASx2D,GAAK0B,OAAOw1D,GAAM7+C,IAAItR,iBAAiBL,GAC3BA,EAAKmL,OAC3BnL,EAAKmL,OAAOslD,GAAa/rD,QAAQ,SAAA5E,GAC7BywD,EAAOzwD,GAAY2V,EAAatK,OAAOzM,OAAO,SAAAlB,GAAO,OAAAA,EAAIE,KAAOoC,CAAX,GAAoB,EAC7E,E,EAVR,IAAK,IAAM0wD,KAAQpB,EAAKU,SAASx2D,GAAK0B,O,EAA3Bw1D,GAcX,IAAK,IAAME,KADXjtD,EAAI0H,OAAS,GACKolD,EACd9sD,EAAI0H,OAAO/O,KAAKm0D,EAAOG,GAE/B,CAGA,GAAiB,aAAbjtD,EAAInG,MAAoC,UAAbmG,EAAInG,MAAiC,UAAbmG,EAAInG,MAAiC,SAAbmG,EAAInG,KAAiB,CAChG,IAAM6C,EAA+C,GACrD,IAAK,IAAMqwD,KAAQpB,EAAKU,SAASx2D,GAAK0B,OAAQ,CAC1C,IAAMya,EAAO25C,EAAKU,SAASx2D,GAAK0B,OAAOw1D,GAAMJ,QAAQptD,QACrD,GAAkB,aAAdyS,EAAKnY,MAAqC,UAAdmY,EAAKnY,MAAkC,UAAdmY,EAAKnY,MAAkC,SAAdmY,EAAKnY,KACnF,IAAK,IAAMqzD,KAAYl7C,EAAKtV,QACxBA,EAAQwwD,GAAYl7C,EAAKtV,QAAQwwD,EAG7C,CAEA,IAAK,IAAMC,KADXntD,EAAItD,QAAU,GACIA,EACdsD,EAAItD,QAAQywD,GAAOzwD,EAAQywD,EAEnC,CACArvD,EAAOnF,KAAKqH,E,SAzChB,IAAK,IAAMnK,KAAOf,KAAKu3D,S,EAAZx2D,GA2CX,OAAOiI,CACX,EACJsuD,CAAA,CAxGA,GA0GAgB,GAAA,WAMI,SAAAA,EAAYC,GAHJv4D,KAAAw4D,cAAsC,IAAIlB,GAC1Ct3D,KAAAy4D,aAAkE,GAGtEz4D,KAAK04D,WAAaH,EAClBv4D,KAAKkO,IAAMlO,KAAK04D,WAAWlnD,kBAC/B,CA4QJ,OA1QI8mD,EAAA74D,UAAAinB,iBAAA,WACI,IAAkB,IAAArgB,EAAA,EAAA+C,EAAApJ,KAAKkO,IAAIsiD,WAATnqD,EAAA+C,EAAA1I,OAAA2F,IAAqB,CAAlC,IAAMoT,EAAGrQ,EAAA/C,GACVrG,KAAKw4D,cAAc/H,OAAOh3C,EAAIvE,gBAAgB3K,aAClD,CACA,OAAOvK,KAAKw4D,cAAcT,QAC9B,EAEAO,EAAA74D,UAAAk5D,aAAA,SAAa/yC,GACT,GAAKA,EAAQ9e,SACb,OAAO8e,EAAQnb,OACnB,EAEA6tD,EAAA74D,UAAAmiB,YAAA,SAAYg3C,EAAyBjoD,GACjC,OAAOksC,GAAQ5xC,QAAQ0F,EAAIioD,EAC/B,EAEAN,EAAA74D,UAAAo5D,aAAA,SAAan2C,GACT,GAAKA,EAAQ5b,SACb,OAAO4b,EAAQjY,OACnB,EAEA6tD,EAAA74D,UAAAq5D,YAAA,SAAYC,GACR,OAAOrU,GAAQz5C,QAAQ8tD,EAC3B,EAEAT,EAAA74D,UAAAu5D,cAAA,SAAcn1C,GACV,OAAKA,EAAS/c,SACP+c,EAASpZ,QADe,CAAE1F,KAAM,WAAY4d,gBAAiB,GAExE,EAEA21C,EAAA74D,UAAAqiB,aAAA,SAAai3C,GACT,OAAOpU,GAAS15C,QAAQ8tD,EAC5B,EAEAT,EAAA74D,UAAAw5D,aAAA,SAAahZ,GACT,GAAKA,EAAGn5C,SACR,OAAOm5C,EAAGx1C,OACd,EAEA6tD,EAAA74D,UAAAkiB,YAAA,SAAYu3C,GACR,OAAOvZ,GAAQ10C,QAAQiuD,EAC3B,EAEAZ,EAAA74D,UAAA05D,UAAA,SAAUrzC,GACN,GAAKA,EAAKhf,SACV,OAAOgf,EAAKrb,OAChB,EAEA6tD,EAAA74D,UAAAoiB,SAAA,SAASu3C,GACL,OAAOrU,GAAK95C,QAAQmuD,EACxB,EAEAd,EAAA74D,UAAA45D,WAAA,SAAWpzC,GACP,GAAKA,EAAMnf,SACX,OAAOmf,EAAMxb,OACjB,EAEA6tD,EAAA74D,UAAA65D,UAAA,SAAUC,GACN,OAAO1X,GAAM52C,QAAQsuD,EACzB,EAEAjB,EAAA74D,UAAA+5D,kBAAA,SAAkBC,EAA+BC,EAAoBloD,GAArE,IAAA/L,EAAAzF,KACI,GAAIi9C,GAAKjjC,cAAcy/C,GAAW,CAC9B,IAAMnpD,EAAKtQ,KAAKy4D,aAAagB,EAASt0D,IACtCu0D,EAASvvD,aAAamG,EAAGoB,OAAO+nD,EAAS/nD,QAAQvM,KACrD,MAAO,GAAI83C,GAAKhjC,kBAAkBw/C,GAAW,CACzCC,EAASvvD,aAAa,GAAA9F,OAAGo1D,EAASt0D,GAAE,KAAAd,OAAIo1D,EAAS/nD,SACnCgoD,EAAS1gD,gBAElBhG,QAAQymD,EAASzmD,QAAQvO,IAAI,SAAAoI,GAC1B,OAAOmH,EAAM/I,QAAQxF,EAAKyI,IAAKrB,EACnC,GAER,MACI6sD,EAASvvD,aAAasvD,EAASt0D,IAEnC,OAAOnF,IACX,EAEAs4D,EAAA74D,UAAAk6D,gBAAA,SAAgBxK,GAAhB,IAAA1pD,EAAAzF,KACI,OAAOmvD,EAAK3mD,aAAa/D,IAAI,SAAAoE,GACzB,OAAIA,aAAoBg0C,GACbp3C,EAAKkzD,aAAa9vD,GAClBA,aAAoB67C,GACpBj/C,EAAKozD,aAAahwD,GAClBA,aAAoB82C,GACpBl6C,EAAKwzD,aAAapwD,GAClBA,aAAoBk8C,GACpBt/C,EAAK0zD,UAAUtwD,GACfA,aAAoBg5C,GACpBp8C,EAAK4zD,WAAWxwD,GAChBA,aAAoB87C,GACpBl/C,EAAKuzD,cAAcnwD,QACnBA,aAAoB6P,IAG3B6qB,GAAOq2B,QAAQ,0BAAAv1D,OAA0BwE,EAASq7C,YAE1D,GAAG/9C,OAAO,SAAA0C,GAAY,QAAEA,CAAF,EAC1B,EAEAyvD,EAAA74D,UAAAo6D,mBAAA,SAAmB/7C,GACf,MAAO,CACH3Y,GAAI2Y,EAAcktC,aAAa7lD,KAC/BiZ,MAAON,EAAcM,QACrBC,YAAaP,EAAcO,cAC3BC,WAAYR,EAAcQ,aAC1BC,UAAWT,EAAcS,YACzBR,QAASD,EAAcktC,aAAaptC,SAASsmC,UAC7CrgC,SAAU7jB,KAAKg5D,cAAcl7C,EAAc+F,YAC3C5F,WAAYH,EAAcG,aAC1B6uC,oBAAqBhvC,EAAcgvC,sBAE3C,EAEAwL,EAAA74D,UAAAq6D,kBAAA,SAAkBC,EAA6Bj8C,GAC3C,IAAM+F,EAAW7jB,KAAK8hB,aAAai4C,EAAOl2C,UAW1C,OAVA/F,EAAcktC,aAAa7lD,GAAG40D,EAAO50D,IACrC2Y,EACKM,MAAM27C,EAAO37C,OACbC,YAAY07C,EAAO17C,aACnBC,WAAWy7C,EAAOz7C,YAClBC,UAAUw7C,EAAOx7C,WACjBN,WAAW87C,EAAO97C,YAClB4F,SAASA,GACTipC,oBAAoBiN,EAAOjN,qBAEzB9sD,IACX,EAEAs4D,EAAA74D,UAAAu6D,oBAAA,SAAoBrC,GAChB,IAAM3uD,EAAS2uD,EAAMltD,QAErB,OADAzB,EAAO7D,GAAKnF,KAAKw4D,cAAcd,UAAUC,IAAU3uD,EAAO7D,GACnD6D,CACX,EAEAsvD,EAAA74D,UAAAw6D,cAAA,WAGI,IAHJ,IAAAx0D,EAAAzF,KAEUk6D,EAA8B,CAAEtnD,OAAQ,GAAIhL,QAAS,IACrCvB,EAAA,EAAA+C,EAAApJ,KAAKkO,IAAIsiD,WAATnqD,EAAA+C,EAAA1I,OAAA2F,IAAqB,CAAzB+C,EAAA/C,GACNyX,gBAAgB+F,WAAW/b,iBAAiBoyD,EACxD,CAEA,OAAOl6D,KAAKkO,IAAIsiD,WAAW/rD,IAAI,SAAAwQ,GAC3B,IAAMk6C,EAAOl6C,EAAQC,gBACfwkD,EAAWvK,EAAK5kD,aACtB,GAAImvD,aAAoBhhD,GAAU,CAC9B,IAAMi/C,EAAQ+B,EAAS1gD,gBAOvB,MANe,CACX7T,GAAI8P,EAAQ9P,KACZoF,WAAY9E,EAAKu0D,oBAAoBrC,GACrCnvD,WAAY/C,EAAKk0D,gBAAgBxK,GACjCrxC,cAAerY,EAAKo0D,mBAAmB5kD,EAAQ6I,iBAGvD,CACA,MAAM,IAAIhO,MAAM,oBACpB,EACJ,EAEAwoD,EAAA74D,UAAAmnB,gBAAA,WACI,MAAO,CACHxhB,KAAMtG,EACNgoB,QAAS/nB,EACTo7D,aAAcn7D,EACdkoB,OAAQlnB,KAAK04D,WAAWxxC,SAEhC,EAEAoxC,EAAA74D,UAAA26D,aAAA,SAAaC,GACT,IAAsB,IAAAh0D,EAAA,EAAAi0D,EAAAD,EAAAh0D,EAAAi0D,EAAA55D,OAAA2F,IAAU,CAA3B,IAAMk0D,EAAOD,EAAAj0D,GACR4O,EAAU,IAAI85C,GAAQ/uD,KAAKkO,KAAK/I,GAAGo1D,EAAQp1D,IACjDnF,KAAKkO,IAAIuiD,OAAOx7C,GAChB,IAAMC,EAAgBD,EAAQC,gBAC9BlV,KAAKw5D,kBAAkBe,EAAQhwD,WAAY2K,EAAc3K,aAA0BvK,KAAKkO,KACxF,IAAuB,IAAA9E,EAAA,EAAAmX,EAAAg6C,EAAQ/xD,WAARY,EAAAmX,EAAA7f,OAAA0I,IAAoB,CAAtC,IAAMP,EAAQ0X,EAAAnX,GACf,GAAI6zC,GAAKud,kBAAkB3xD,GAAW,CAClC,IAAM6Z,EAAU1iB,KAAK84D,YAAYjwD,GACjCqM,EAAcwN,QAAQA,EAC1B,CACA,GAAIu6B,GAAKwd,iBAAiB5xD,GAAW,CACjC,IAAM+c,EAAU5lB,KAAK4hB,YAAY/Y,EAAU7I,KAAKkO,KAChDgH,EAAc0Q,QAAQA,EAC1B,CACA,GAAIq3B,GAAKyd,kBAAkB7xD,GAAW,CAClC,IAAM+Z,EAAU5iB,KAAK2hB,YAAY9Y,GACjCqM,EAAc0N,QAAQA,EAC1B,CACA,GAAIq6B,GAAK0d,eAAe9xD,GAAW,CAC/B,IAAMid,EAAO9lB,KAAK6hB,SAAShZ,GAC3BqM,EAAc4Q,KAAKA,EACvB,CACA,GAAIm3B,GAAK2d,gBAAgB/xD,GAAW,CAChC,IAAMod,EAAQjmB,KAAKs5D,UAAUzwD,GAC7BqM,EAAc+Q,MAAMA,EACxB,CACJ,CACAjmB,KAAK85D,kBAAkBS,EAAQz8C,cAAe7I,EAAQ6I,gBAC1D,CACJ,EAEAw6C,EAAA74D,UAAAo7D,eAAA,SAAe58C,GACPA,GAAcA,EAAWiJ,QACzBlnB,KAAK04D,WAAW9C,UAAU33C,EAAWiJ,OAE7C,EAEAoxC,EAAA74D,UAAAonB,MAAA,WAaI,OAZA7mB,KAAKw4D,cAAcnjB,QACS,CACxBvuB,QAAS,QACTC,UAAW,CACP3hB,KAAMtG,EACNgoB,QAAS/nB,GAEb8Z,YAAa7Y,KAAK0mB,mBAClBtJ,UAAWpd,KAAKi6D,gBAChBh8C,WAAYje,KAAK4mB,kBACjBk0C,gBAAiB96D,KAAK04D,WAAWqC,aAGzC,EAEAzC,EAAA74D,UAAAu7D,KAAA,SAAK9vD,GACDlL,KAAKw4D,cAAcnjB,QACnB,IAAoB,IAAAhvC,EAAA,EAAA+C,EAAA8B,EAAI2N,YAAJxS,EAAA+C,EAAA1I,OAAA2F,IAAiB,CAAhC,IAAM40D,EAAK7xD,EAAA/C,GACZ,OAAQ40D,EAAMl2D,MACV,IAAK,WACD/E,KAAKkO,IAAIoiD,iBAAiBtjD,EAAS/B,QAAQgwD,IAC3C,MACJ,IAAK,OACDj7D,KAAKkO,IAAIoiD,iBAAiBxkD,EAAKb,QAAQgwD,IACvC,MACJ,IAAK,cACDj7D,KAAKkO,IAAIoiD,iBAAiBp+C,EAAYjH,QAAQjL,KAAKkO,IAAK+sD,IACxD,MACJ,IAAK,WACD,IAAM3qD,EAAKD,EAAGpF,QAAQjL,KAAKkO,IAAK+sD,GAEhC,IAAK,IAAM1qD,KADXvQ,KAAKy4D,aAAanoD,EAAGnL,MAAQmL,EACJ2qD,EAAMrzD,QAC3B5H,KAAKkO,IAAIoiD,iBAAiBhgD,EAAGoB,OAAOnB,IAExC,MACJ,IAAK,QACL,IAAK,QACD,IAAMmD,EAAKgD,EAAazL,QAAQjL,KAAKkO,IAAK+sD,GAE1C,IAAK,IAAM1qD,KADXvQ,KAAKy4D,aAAa/kD,EAAGvO,MAAQuO,EACJunD,EAAMrzD,QAC3B5H,KAAKkO,IAAIoiD,iBAAiB74C,GAAYxM,QAAQjL,KAAKkO,IAAKwF,EAAInD,IAEhE,MACJ,IAAK,OACD,IAAM2qD,EAAM3oD,EAAYtH,QAAQjL,KAAKkO,IAAK+sD,GAE1C,IAAK,IAAM1qD,KADXvQ,KAAKy4D,aAAayC,EAAI/1D,MAAQ+1D,EACLD,EAAMrzD,QAC3B5H,KAAKkO,IAAIoiD,iBAAiB/8C,EAAWtI,QAAQjL,KAAKkO,IAAKgtD,EAAK3qD,IAEhE,MACJ,QACIgzB,GAAOq2B,QAAQ,gCAAAv1D,OAAiC42D,EAAcl2D,KAAI,MAE9E,CACA/E,KAAKo6D,aAAalvD,EAAIkS,WACtBpd,KAAK66D,eAAe3vD,EAAI+S,YACxBje,KAAK04D,WAAWqC,WAAW7vD,EAAI4vD,gBACnC,EACJxC,CAAA,CArRA,GC1HA6C,GAAA,oBAAAA,IACIn7D,KAAAo7D,WAA2B,EAqB/B,QAnBID,EAAA17D,UAAAgxD,OAAA,SAAO4K,GACEr7D,KAAKo7D,WAAWC,EAAWC,UAC5Bt7D,KAAKo7D,WAAWC,EAAWC,QAAU,IAEzCt7D,KAAKo7D,WAAWC,EAAWC,QAAQD,EAAWE,QAAS,CAC3D,EAEAJ,EAAA17D,UAAAonB,MAAA,WACI,IAAM20C,EAAqB,GAC3B,IAAK,IAAMC,KAAYz7D,KAAKo7D,WAAY,CACpC,IAAMM,EAAqB,GAC3B,IAAK,IAAMxX,KAAWlkD,KAAKo7D,WAAWK,GAClCC,EAAS73D,KAAKqgD,GAElBwX,EAAS51C,OACT01C,EAAS33D,KAAK,YAAAQ,OAAYq3D,EAASh3D,KAAK,MAAK,aAAAL,OAAYo3D,EAAQ,MACrE,CACA,OAAOD,EAAS92D,KAAK,KACzB,EACJy2D,CAAA,CAtBA,GA4CA,IAAAQ,GAAA,WAMI,SAAAA,EAAYpD,GAsDZv4D,KAAA47D,OAAqC,GArDjC57D,KAAK04D,WAAaH,EAClBv4D,KAAKkO,IAAMlO,KAAK04D,WAAWlnD,mBAC3BxR,KAAK67D,YAAc,IAAIvD,GAAWt4D,KAAK04D,YACvC14D,KAAK87D,WAAa97D,KAAK67D,YAAYh1C,OACvC,CAgSJ,OA9RI80C,EAAAl8D,UAAAs8D,YAAA,SAAY9nD,EAAgB+nD,EAAiBC,QAAA,IAAAA,MAAA,IAEzC,IADA,IAAIjzD,EAAmB,GACJ3C,EAAA,EAAA+C,EAAA4yD,EAAGE,sBAAH71D,EAAA+C,EAAA1I,OAAA2F,IAA0B,CAAxC,IAAMgsC,EAAIjpC,EAAA/C,GACX,GAAK21D,EAAW3pB,EAAKltC,GAAK,aACtB,OAAQktC,EAAKttC,MACT,IAAK,SACL,IAAK,MACDiE,EAAOnF,KAAK,GAAAQ,OAAG4P,EAAM,KAAA5P,OAAIguC,EAAKltC,GAAE,MAAAd,OAAM23D,EAAW3pB,EAAKltC,MAAK,MAAAd,OAAK43D,EAAO,MACvE,MACJ,IAAK,SACL,IAAK,UACDjzD,EAAOnF,KAAK,GAAAQ,OAAG4P,EAAM,KAAA5P,OAAIguC,EAAKltC,GAAE,KAAAd,OAAK23D,EAAW3pB,EAAKltC,MAAK,KAAAd,OAAI43D,EAAO,MACrE,MACJ,IAAK,SACDjzD,EAASA,EAAO3E,OAAOrE,KAAK+7D,YAAY,GAAA13D,OAAG4P,EAAM,KAAA5P,OAAIguC,EAAKltC,GAAE,MAAO62D,EAAW3pB,EAAKltC,QACnF,MACJ,IAAK,gBACGktC,EAAK8pB,KACLnzD,EAAOnF,KAAK,GAAAQ,OAAG4P,EAAM,KAAA5P,OAAIguC,EAAKltC,GAAE,MAAAd,OAAM23D,EAAW3pB,EAAKltC,MAAK,MAAAd,OAAK43D,EAAO,MAM3F,CACA,OAAOjzD,CACX,EAEA2yD,EAAAl8D,UAAA28D,UAAA,SAAUC,GACN,MAAO,EACX,EAEQV,EAAAl8D,UAAA68D,OAAR,SAAen3D,GACX,OAAKA,EACEA,EAAG8S,QAAQ,KAAM,KAAKA,QAAQ,MAAO,KAD5B9S,CAEpB,EAEQw2D,EAAAl8D,UAAA88D,gBAAR,SAAwBpN,GACpB,IAAMn2C,EAAgBm2C,EAAK5kD,WAC3B,OAAI0yC,GAAKhjC,kBAAkBjB,GAChB,GAAA3U,OAAGrE,KAAKs8D,OAAOtjD,EAAc7T,IAAG,KAAAd,OAAIrE,KAAKs8D,OAAOtjD,EAActH,QAAO,KAAArN,OAAIrE,KAAKs8D,OAAOnN,EAAKhqD,KAC1F83C,GAAKjjC,cAAchB,GACnB,GAAA3U,OAAGrE,KAAKs8D,OAAOtjD,EAAc7T,IAAG,KAAAd,OAAIrE,KAAKs8D,OAAOtjD,EAActH,SAElE,GAAArN,OAAGrE,KAAKs8D,OAAOtjD,EAAc7T,IACxC,EAGQw2D,EAAAl8D,UAAA+8D,gBAAR,SAAwBrN,GACpB,IAAMn2C,EAAgBm2C,EAAK5kD,WACrBvB,EAAmB,GACnBuB,EAAavK,KAAK87D,WAAWjjD,YAAY1S,OAAO,SAAAyS,GAAM,OAAAA,EAAGzT,KAAO6T,EAAc7T,EAAxB,GAA4B,GAClFizD,EAAYp/C,EAAsBtH,OAClCvM,EAAKnF,KAAKu8D,gBAAgBpN,GAChC,IAAKnvD,KAAK47D,OAAOz2D,GAEb,OADAnF,KAAK47D,OAAOz2D,IAAM,EACVoF,EAAWxF,MACf,IAAK,WACD,IAAM03D,EAAOz8D,KAAKs8D,OAAOnN,EAAK5kD,WAAWpF,IACpCnF,KAAK47D,OAAOa,KACbz8D,KAAK47D,OAAOa,IAAQ,EACpBzzD,EAAOnF,KAAK,oBAAAQ,OAAoBo4D,EAAI,0CAAAp4D,OAC5CkG,EAAWkG,IAAG,uBAAApM,OACbkG,EAAWmG,KAAI,mBAGZ1H,EAAOnF,KAAK,oBAAAQ,OAAoBc,EAAE,8CAAAd,OACxCo4D,EAAI,4BAAAp4D,OACK+zD,EAAQ,gCAAA/zD,OACLC,EAAUiG,EAAW3C,QAAQwwD,GAAUrsD,QAAO,iBAEpD,MACJ,IAAK,cACD/C,EAAOnF,KAAK,oBAAAQ,OAAoBc,EAAE,mDAAAd,OACtCkG,EAAWkG,IAAG,8BAAApM,OACNkG,EAAW4H,YAAW,gCAAA9N,OACpBC,EAAUiG,EAAWwB,QAAO,iBAElC,MACJ,IAAK,QACL,IAAK,QACD,IAAM4H,EAAY3T,KAAKs8D,OAAOnN,EAAK5kD,WAAWpF,IACzCnF,KAAK47D,OAAOjoD,KACb3T,KAAK47D,OAAOjoD,IAAa,EACzB3K,EAAOnF,KAAK,oBAAAQ,OAAoBsP,EAAS,sDAAAtP,OACjDkG,EAAWkG,IAAG,2BAAApM,OACTkG,EAAWqM,SAAQ,0BAAAvS,OACpBkG,EAAWsM,QAAO,+BAAAxS,OACbC,EAAUiG,EAAWqI,QAAO,kBAGjC,IAAM8pD,EAAW/oD,EAAY,IAAM3T,KAAKs8D,OAAOlE,GAC1Cp4D,KAAK47D,OAAOc,KACb18D,KAAK47D,OAAOc,IAAY,EACxB1zD,EAAOnF,KAAK,oBAAAQ,OAAoBq4D,EAAQ,wDAAAr4D,OAC7CsP,EAAS,4BAAAtP,OACL+zD,EAAQ,gCAAA/zD,OACLC,EAAUiG,EAAW3C,QAAQwwD,GAAUrsD,QAAO,kBAGpD/C,EAAOnF,KAAK,oBAAAQ,OAAoBc,EAAE,8DAAAd,OAChCq4D,EAAQ,iCAAAr4D,OACFC,EAAW0U,EAAwChG,SAAQ,iBAEnE,MACJ,IAAK,WAEGhK,EAAOnF,KAAK,oBAAAQ,OAAoBc,EAAE,mDAAAd,OACvCkG,EAAW2C,OAAM,yBAAA7I,OACjBM,KAAKL,UAAUiG,EAAW4C,SAAQ,iBAGjC,MACJ,IAAK,OAGG,IADA,IAAMwvD,EAAuB,GACTt2D,EAAA,EAAA+C,EAAAmB,EAAWwB,OAAX1F,EAAA+C,EAAA1I,OAAA2F,IAAmB,CAAlC,IAAMD,EAAKgD,EAAA/C,GACZs2D,EAAW94D,KAAK,uCAAAQ,OAAuC+B,EAAMjB,GAAE,gBAAAd,OAAe+B,EAAM0E,SAAW,GAAE,MACrG,CACA9B,EAAOnF,KAAK,oBAAAQ,OAAoBc,EAAE,iEAAAd,OAE5Cs4D,EAAWj4D,KAAK,mBAAkB,4BAOxC,OAAOsE,CACX,EAEQ2yD,EAAAl8D,UAAAm9D,cAAR,SAAsB/zD,GAClB,OAAQA,EAAS9D,MACb,IAAK,SACD,MAAO,yCAAAV,OAAyCC,EAAUuE,EAASgd,YAAW,KAClF,IAAK,UACD,MAAO,4CAAAxhB,OAA4CC,EAAUuE,EAAS8Z,iBAAgB,KAC1F,IAAK,UACD,MAAO,qCAAAte,OAAqCM,KAAKL,UAAUuE,EAASga,YAAW,iBAAAxe,OAAgBC,EAAUuE,EAASia,YAAW,KACjI,IAAK,OACD,MAAO,oCAAAze,OAAoCC,EAAUuE,EAASgd,YAAW,KAC7E,IAAK,QACD,MAAO,+BAAAxhB,OAA+BwE,EAASod,MAAK,KACxD,IAAK,WACD,MAAO,6CAAA5hB,OAA6CC,EAAUuE,EAAS8Z,iBAAgB,KAEnG,EAEAg5C,EAAAl8D,UAAAo9D,iBAAA,SAAiBb,GAEb,IADA,IAAMhzD,EAAmB,GACN3C,EAAA,EAAA+C,EAAA4yD,EAAGE,sBAAH71D,EAAA+C,EAAA1I,OAAA2F,IAA0B,CAAxC,IAAMgsC,EAAIjpC,EAAA/C,GACN21D,EAAW3pB,EAAKltC,GAAK,gBAA8B,WAAZktC,EAAKltC,IAC7C6D,EAAOnF,KAAK,IAAAQ,OAAIguC,EAAKltC,GAAE,KAAAd,OAAIM,KAAKL,UAAW03D,EAAW3pB,EAAKltC,OAAM,KAEzE,CACA,OAAO6D,CACX,EAEQ2yD,EAAAl8D,UAAAq9D,eAAR,SAAuBl4D,EAA+Bm4D,EAAkBC,EAAiBC,GAAzF,IAEQ5qB,EAFR5sC,EAAAzF,KACQgJ,EAAiB,GAOrB,IAAK,IAAMsxB,KALP11B,EAAMmZ,UACNs0B,EAAO6qB,eAAat4D,EAAMmZ,SAC1Bg/C,EAAQtM,OAAOpe,GACfrpC,GAAU,OAAA3E,OAAOguC,EAAKkpB,MAAK,OAEZ32D,EACf,GAAa,YAAT01B,QACG,GAAI91B,UAAQI,EAAM01B,IAAQ,CAC7B,IAAMiB,EAAM,GAAAl3B,OAAIO,EAAM01B,GAAgB71B,IAAI,SAAA48B,GAAQ,OAAA57B,EAAKq3D,eAAez7B,EAAM07B,EAASC,EAAU,WAAY,GAAzD,GAA8Dt4D,KAAK,IAAAL,OAAI24D,EAAO,cAC5HzhC,IACAvyB,GAAU,GAAA3E,OAAG24D,EAAO,SAAA34D,OAAQi2B,EAAI,MAAAj2B,OAAK24D,EAAO,YAAA34D,OAAWk3B,GAAGl3B,OAAG24D,EAAO,UAAA34D,OAAS44D,GAErF,MACIj0D,GAAU,GAAA3E,OAAG24D,EAAO,SAAA34D,OAAQi2B,EAAI,KAAAj2B,OAAIM,KAAKL,UAAUM,EAAM01B,IAAM,KAAAj2B,OAAI44D,GAG3E,OAAOj0D,CACX,EAEQ2yD,EAAAl8D,UAAA09D,YAAR,SAAoBC,EAAsBL,GACtC,MAAO,oBAAA14D,OAAoB+4D,EAASt/C,cAAc3Y,GAAE,oDAAAd,OAC7C+4D,EAASt/C,cAAc3Y,GAAE,wBAAAd,OACtB+4D,EAASt/C,cAAcM,MAAK,wBAAA/Z,OAC5BrE,KAAK88D,eAAeM,EAASt/C,cAAcG,WAAmB,OAAU8+C,EAAS,aAAc,IAAG,eAEhH,EAEQpB,EAAAl8D,UAAA49D,aAAR,SAAqBD,GAEjB,IADA,IAAM50D,EAAuB,CAAC,QAAAnE,OAAQrE,KAAKu8D,gBAAgBa,KACpC/2D,EAAA,EAAA+C,EAAAg0D,EAAS50D,WAATnC,EAAA+C,EAAA1I,OAAA2F,IAAqB,CAAvC,IAAMwC,EAAQO,EAAA/C,GACfmC,EAAW3E,KAAK7D,KAAK48D,cAAc/zD,GACvC,CAEA,IADA,IAAMsc,EAAoB,GACA5E,EAAA,EAAAC,EAAAxgB,KAAKkO,IAAI4hD,WAAWsN,EAASj4D,IAA7Bob,EAAAC,EAAA9f,OAAA6f,IAAkC,CAAvD,IAAMwvC,EAAWvvC,EAAAD,GAClB4E,EAAQthB,KAAK,GAAAQ,OAAG0rD,EAAY5qD,KAAI,eACpC,CACA,MAAO,WAAAd,OACP+4D,EAASj4D,GAAE,4CAAAd,OACR+4D,EAASj4D,GAAE,iCAAAd,OAEZmE,EAAW9D,KAAK,eAAc,sEAAAL,OAEkBC,EAAU84D,EAASt/C,cAAc+F,SAASlB,iBAAgB,4BAAAte,OAC9F+4D,EAASt/C,cAAc3Y,GAAE,oDAAAd,OAErC8gB,EAAQzgB,KAAK,cAAa,2BAAAL,OAGlC+4D,EAASj4D,GAAE,uCAAAd,OACM+4D,EAASt/C,cAAcQ,WAAU,kCAAAja,OACxB+4D,EAASt/C,cAAcgvC,qBAAuB,GAAE,yBAAAzoD,OAEhE+4D,EAASj4D,GAAE,OAEnB,EAEQw2D,EAAAl8D,UAAAinB,iBAAR,WAEI,IADA,IAAI1d,EAAmB,GACA3C,EAAA,EAAA+C,EAAApJ,KAAK87D,WAAW1+C,UAAhB/W,EAAA+C,EAAA1I,OAAA2F,IAA2B,CAA7C,IAAM+2D,EAAQh0D,EAAA/C,GACf2C,EAASA,EAAO3E,OAAOrE,KAAKw8D,gBAAgBY,GAChD,CACA,OAAOp0D,CACX,EAEQ2yD,EAAAl8D,UAAA69D,aAAR,WAGI,IAFA,IAAMC,EAAkB,GAClBR,EAAU,IAAI5B,GACG90D,EAAA,EAAA+C,EAAApJ,KAAK87D,WAAW1+C,UAAhB/W,EAAA+C,EAAA1I,OAAA2F,IAA2B,CAA7C,IAAM+2D,EAAQh0D,EAAA/C,GACfk3D,EAAM15D,KAAK7D,KAAKm9D,YAAYC,EAAUL,GAC1C,CACA,MAAO,CACHS,cAAeT,EAAQl2C,QACvB42C,WAAYF,EAAM74D,KAAK,QAE/B,EAEQi3D,EAAAl8D,UAAAi+D,cAAR,WAEI,IADA,IAAI10D,EAAS,GACU3C,EAAA,EAAA+C,EAAApJ,KAAK87D,WAAW1+C,UAAhB/W,EAAA+C,EAAA1I,OAAA2F,IAA2B,CAA7C,IAAM+2D,EAAQh0D,EAAA/C,GACf2C,GAAUhJ,KAAKq9D,aAAaD,EAChC,CACA,OAAOp0D,CACX,EAEA2yD,EAAAl8D,UAAAk+D,iBAAA,WACI,IAAMxJ,EAAUn0D,KAAKs9D,eAErB,MAAO,GAAAj5D,OACb8vD,EAAQqJ,cAAa,6KAAAn5D,OAOrBrE,KAAK0mB,mBAAmBhiB,KAAK,MAAK,4BAAAL,OAIlC8vD,EAAQsJ,WAAU,qDAAAp5D,OAIlBrE,KAAK09D,gBAAgBliB,OAAM,sVAAAn3C,OAcZC,EAAUtE,KAAK04D,WAAWxxC,UAAS,0DAAA7iB,OAKtCM,KAAKL,UAAUtE,KAAK87D,YAAW,MAEzC,EACJH,CAAA,CA3SA,GCtDA,SAASiC,GAAYC,EAAKzkD,QACX,IAARA,IAAiBA,EAAM,IAC5B,IAAI0kD,EAAW1kD,EAAI0kD,SAEnB,GAAKD,GAA2B,oBAAbE,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DnX,EAAQiX,SAASG,cAAc,SACnCpX,EAAM/hD,KAAO,WAEI,QAAb+4D,GACEE,EAAKG,WACPH,EAAKI,aAAatX,EAAOkX,EAAKG,YAKhCH,EAAKK,YAAYvX,GAGfA,EAAMwX,WACRxX,EAAMwX,WAAWC,QAAUV,EAE3B/W,EAAMuX,YAAYN,SAASS,eAAeX,GAnBW,CAqBzD,C,gTCMA,IAAAY,GAAA,SAAAj5D,GA6KI,SAAAi5D,EAAoBvwD,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,MAzKZzI,EAAAi5D,mBAAoB,IAAIlX,gBAAetoC,OAAO,mBAAmBuoC,QAAQ,kBAC5EhB,UAAS,GACTiB,GAAG,QAAS,WACLjiD,EAAKk5D,sBAAsBxJ,IAC3B1vD,EAAKk5D,WACAtJ,WAAW5vD,EAAKi5D,kBAAkBjY,YAClCmY,YAGb,GAEIn5D,EAAAo5D,YAAa,IAAIC,UAAS5/C,OAAO,WAAWuoC,QAAQ,UACvDC,GAAG,QAAS,WACT,IAAMqX,EAAU,IAAIhQ,GAAQtpD,EAAKyI,KACjCzI,EAAKyI,IAAIuiD,OAAOsO,GAChBt5D,EAAKioD,gBAAgB/qD,KAAK,WACtBo8D,EAAQlvD,UAAUlN,KAAK,WACnB8C,EAAKmuD,SAASmL,EAClB,EACJ,EACJ,GAEIt5D,EAAAu5D,eAAgB,IAAIF,UAAS5/C,OAAO,YAAYuoC,QAAQ,aAC3DwX,SAAQ,GACRvX,GAAG,QAAS,WACT,IAAM8J,EAAO/rD,EAAKy5D,YACd1N,GAAQuD,OAAOC,QAAQ,kBAAA3wD,OAAkBmtD,EAAKrsD,KAAI,SAClDM,EAAKyI,IAAImnC,MAAMmc,EAAKrsD,MACpBM,EAAKioD,gBAAgB/qD,KAAK,WACtB8C,EAAKkhD,mBAAch9C,EACvB,GAER,GAEIlE,EAAA05D,eAAgB,IAAIL,UAAS5/C,OAAO,cAAcuoC,QAAQ,aAC7DC,GAAG,QAAS,WACT,IAAM0X,EAAO35D,EAAK45D,OAClB55D,EAAKyI,IAAImnC,QACT5vC,EAAKkhD,mBAAch9C,GACnBlE,EAAKioD,gBAAgB/qD,KAAK,WACtB8C,EAAK65D,QAAQF,GACb35D,EAAKioD,gBAAgB/qD,KAAK,WACtB8C,EAAKyI,IAAI2B,UAAUlN,KAAK,WACxB,EACJ,EACJ,EACJ,GAEI8C,EAAA85D,aAAc,IAAIT,UAAS5/C,OAAO,eAAeuoC,QAAQ,eAC5DC,GAAG,QAAS,WACT1lD,QAAQqN,IAAI,CACRwiD,GAAO,mGACPA,GAAO,mGACPA,GAAO,kGACRlvD,KAAK,SAACyG,GAAC,IAAAo2D,EAAQp2D,EAAA,GAAEq2D,EAAQr2D,EAAA,GAAEs2D,EAAKt2D,EAAA,GACzBu2D,EAAel6D,EAAKm6D,QAAQ,QAAS,CACvC76D,KAAM,OACNI,GAAI,gBACJ4G,OAAQ,CAAC,CACLhH,KAAM,SACNI,GAAI,WACL,CACCJ,KAAM,SACNI,GAAI,cAGZw6D,EAAa7hD,gBACRM,MAAM,iBACNE,WAAW,UACXC,UAAU,aAEf,IAAMshD,EAAkBp6D,EAAKq6D,YAAY,WAAYN,EAAU,MAC3D,EACI,IAAI50D,GAAYrD,QAAQ,QAAQxC,KAAK,WACrC,IAAI6F,GAAYrD,QAAQ,QAAQxC,KAAK,WACrC,IAAI6F,GAAYrD,QAAQ,SAASxC,KAAK,WAE1C,IAAI83C,GAAQp3C,EAAKyI,KAAKivC,aAAa,EAC/B,IAAIN,GAAQY,QAASv0C,OAAOy2D,EAAax6D,MAAM0e,SAAS,EAAC,IAAIg5B,GAAQa,SAAUnpC,YAAY,WAAWK,WAAW,QAAQ+Q,UAAS,QAEtI,IAAIo/B,IAAO/E,OAAO,EAAC,IAAI+E,GAAKQ,QAASh+C,QAAQ,SAASye,YAAW,MAErE65C,EAAgB7U,aAAa5sC,MAAM,YACnC,IAAM2hD,EAAiBt6D,EAAKq6D,YAAY,WAAYL,EAAU,MAC1D,EACI,IAAI70D,GAAYrD,QAAQ,QAAQxC,KAAK,WACrC,IAAI6F,GAAYrD,QAAQ,QAAQxC,KAAK,WACrC,IAAI6F,GAAYrD,QAAQ,SAASxC,KAAK,WAE1C,IAAI83C,GAAQp3C,EAAKyI,KAAKivC,aAAa,EAC/B,IAAIN,GAAQY,QAASv0C,OAAOy2D,EAAax6D,MAAM0e,SAAS,EAAC,IAAIg5B,GAAQa,SAAUnpC,YAAY,WAAWK,WAAW,QAAQ+Q,UAAS,QAEtI,IAAIo/B,IAAO/E,OAAO,EAAC,IAAI+E,GAAKQ,QAASh+C,QAAQ,SAASye,YAAW,MAErE+5C,EAAe/U,aAAa5sC,MAAM,YAClC,IAAM4hD,EAAev6D,EAAKq6D,YAAY,QAASJ,EAAO,MAClD,GACA,IAAI7iB,GAAQp3C,EAAKyI,KAAKivC,aAAa,EAC/B,IAAIN,GAAQY,QAASv0C,OAAO22D,EAAgB16D,MAAM0e,SAAS,EAAC,IAAIg5B,GAAQa,SAAUnpC,YAAY,QAAQK,WAAW,cACjH,IAAIioC,GAAQY,QAASv0C,OAAO62D,EAAe56D,MAAM0e,SAAS,EAAC,IAAIg5B,GAAQa,SAAUnpC,YAAY,QAAQK,WAAW,WAAW+Q,UAAS,QAG5I,OADAq6C,EAAahV,aAAa5sC,MAAM,SACzBpc,QAAQqN,IAAI,CACfswD,EAAa9vD,UACbgwD,EAAgBhwD,UAChBkwD,EAAelwD,UACfmwD,EAAanwD,WAErB,GAAGlN,KAAK,WACJ8C,EAAKihD,QACT,EACJ,GA4DAjhD,EAAKyI,IAAIw5C,GAAG,kBAAmB,SAACjuC,GAC5BhU,EAAKuqD,gBAAgBv2C,EACzB,GACAhU,EAAKmjD,QAAQ,CAACnjD,EAAKi5D,kBAAmB,IAAI5V,SAAUrjD,EAAKo5D,WAAYp5D,EAAKu5D,cAAe,IAAIlW,SAAUrjD,EAAK05D,cAAe,IAAIrW,SAAUrjD,EAAK85D,cAC9I95D,EAAKw6D,gBAAgB,Q,CACzB,CAqHJ,OAzS+BrgE,EAAA6+D,EAAAj5D,GAqH3Bi5D,EAAAh/D,UAAAqgE,YAAA,SAAY78D,EAAekK,EAAiBD,EAAwCE,QAAxC,IAAAF,MAAA,O,IAAqE,IAAA1E,EAAA,GAAAnC,EAAA,EAAAA,EAAA5F,UAAAC,OAAA2F,IAAAmC,EAAAnC,EAAA,GAAA5F,UAAA4F,GAC7G,IAAMkT,GAAW,IAAIvM,GAAW7H,GAAGlC,GAAOiK,OAAOA,GAAQC,QAAQA,GAC7DC,EAAe1M,OAAS,GACxB6Y,EAASnM,eAAeA,GAE5BpN,KAAKkO,IAAIoiD,iBAAiB/2C,GAC1B,IAAMwlD,EAAU,IAAIhQ,GAAQ/uD,KAAKkO,KAC3B0K,EAAKmmD,EAAQ7pD,gBAAgB3K,aAC/BqO,aAAcF,IACdE,EAAGzO,aAAaoP,EAASpU,MAE7B,IAAuB,IAAAiE,EAAA,EAAA82D,EAAA13D,EAAAY,EAAA82D,EAAAx/D,OAAA0I,IAAY,CAA9B,IAAMP,EAAQq3D,EAAA92D,GACXP,aAAoBg0C,GACpBkiB,EAAQ7pD,gBAAgB0Q,QAAQ/c,GACzBA,aAAoB67C,GAC3Bqa,EAAQ7pD,gBAAgBwN,QAAQ7Z,GACzBA,aAAoB82C,GAC3Bof,EAAQ7pD,gBAAgB0N,QAAQ/Z,GACzBA,aAAoBk8C,GAC3Bga,EAAQ7pD,gBAAgB4Q,KAAKjd,GACtBA,aAAoBg5C,IAC3Bkd,EAAQ7pD,gBAAgB+Q,MAAMpd,EAEtC,CAEA,OADA7I,KAAKkO,IAAIuiD,OAAOsO,GACTA,CACX,EAEAN,EAAAh/D,UAAAmgE,QAAA,SAAQ38D,EAAeiI,GACnB,IAAMqO,GAAW,IAAIzN,GAAO3G,GAAGlC,GAAOgI,QAAQC,GAC9ClL,KAAKkO,IAAIoiD,iBAAiB/2C,GAC1B,IAAMwlD,EAAU,IAAIhQ,GAAQ/uD,KAAKkO,KAC3B0K,EAAKmmD,EAAQ7pD,gBAAgB3K,aAKnC,OAJIqO,aAAcF,IACdE,EAAGzO,aAAaoP,EAASpU,MAE7BnF,KAAKkO,IAAIuiD,OAAOsO,GACTA,CACX,EAEON,EAAAv+D,OAAP,SAAcY,EAAgBoK,GAC1B,OAAO,IAAIlJ,QAAQ,SAACC,EAASC,GACzB,IAAMyO,EAAK,IAAIs/C,GACTsI,EAAY,IAAIkG,EAAU9tD,GAC3B7P,OAAOA,GACPoyD,gBAAe,GACflM,cAAa,GACbsY,QAAQp0D,GACRw7C,OAAO,SAAA76C,GACJ8E,EAAGd,UAAUlN,KAAK,WACdV,EAAQs2D,EACZ,EACJ,EACR,EACJ,EAWAkG,EAAAh/D,UAAAwgE,gBAAA,SAAgBttD,GAAhB,IAAAlN,EAAAzF,UAAgB,IAAA2S,MAAA,SACE,SAATA,GAAqB3S,KAAK2+D,sBAAsB3L,MAAkC,SAATrgD,GAAqB3S,KAAK2+D,sBAAsBxJ,MAC1Hn1D,KAAK2+D,YAAuB,SAAThsD,EAAkB,IAAIqgD,GAAmBhzD,KAAKkO,KAAO,IAAIinD,GAAcn1D,KAAKkO,KAAKmnD,WAAWr1D,KAAKgnD,iBAC/GU,GAAG,gBAAiB,SAAC8J,GAClB/rD,EAAKkhD,cAAc6K,EACvB,GAEJxxD,KAAK4d,OAAO5d,KAAK2+D,YAEzB,EAEAF,EAAAh/D,UAAA+R,iBAAA,WACI,OAAOxR,KAAKkO,GAChB,EAKAuwD,EAAAh/D,UAAAs7D,WAAA,SAAW/3D,GACP,OAAKvC,UAAUC,QACfV,KAAKmgE,YAAcn9D,EACZhD,MAFuBA,KAAKmgE,WAGvC,EAIA1B,EAAAh/D,UAAAyL,IAAA,SAAIlI,GACA,IAAMo9D,EAAa,IAAI9H,GAAWt4D,MAClC,OAAKS,UAAUC,QACfV,KAAKkO,IAAImnC,QACT+qB,EAAWpF,KAAKh4D,GACThD,MAHuBogE,EAAWv5C,OAI7C,EAGA43C,EAAAh/D,UAAAm2D,UAAA,SAAU5yD,GAEN,OADAhD,KAAK2+D,WAAW/I,UAAU5yD,GACnBhD,IACX,EAEAy+D,EAAAh/D,UAAA4/D,KAAA,WAEI,OADmB,IAAI/G,GAAWt4D,MAChB6mB,OACtB,EAEA43C,EAAAh/D,UAAA6/D,QAAA,SAAQt8D,EAAgB0jD,GAAxB,IAAAjhD,EAAAzF,KASI,YAToB,IAAA0mD,OAAA,GACpB1mD,KAAKigE,gBAAgBj9D,GAAKA,EAAEib,YAAcjb,EAAEib,WAAWiJ,kBAAkB3nB,MAAQ,OAAS,QACvE,IAAI+4D,GAAWt4D,MACvBg7D,KAAKh4D,GACZ0jD,GACA1mD,KAAK0tD,gBAAgB/qD,KAAK,WACtB8C,EAAKyI,IAAI2B,SACb,GAEG7P,IACX,EAEAy+D,EAAAh/D,UAAA4gE,UAAA,SAAUn1D,EAAmC4F,EAAkBJ,EAAeuW,QAAA,IAAAA,MAAA,IAC1E,IAAM/J,EAAoBi+B,GAAajwC,GAAOA,EAAM8b,GAAQ9b,EAAK4F,EAASJ,GAAM,EAAMuW,GACtF,OAAOjnB,KAAKs/D,QAAQpiD,GAAM,EAC9B,EAEAuhD,EAAAh/D,UAAA6gE,WAAA,WAEI,OADkB,IAAI3E,GAAkB37D,MACvB29D,kBACrB,EAEAc,EAAAh/D,UAAAynB,OAAA,WACI,OAAOlnB,KAAK2+D,WAAWz3C,QAC3B,EAEAu3C,EAAAh/D,UAAA00D,QAAA,WACI,OAAOn0D,KAAK2+D,WAAWxK,SAC3B,EAEAsK,EAAAh/D,UAAAm0D,SAAA,SAAS3+C,GACLjV,KAAK2+D,WAAW/K,SAAS3+C,EAC7B,EAIAwpD,EAAAh/D,UAAAyzD,eAAA,SAAelwD,GACX,OAAKvC,UAAUC,QACfV,KAAK2+D,WAAWzL,eAAelwD,GACxBhD,MAFuBA,KAAK2+D,WAAWzL,gBAGlD,EAEAuL,EAAAh/D,UAAA8gE,kBAAA,WACIvgE,KAAK0+D,kBAAkBO,QAAQj/D,KAAK2+D,sBAAsBxJ,IAAezO,SACzE1mD,KAAKg/D,cAAcC,aAA6Bt1D,IAArB3J,KAAKk/D,aAA2BxY,QAC/D,EAEA+X,EAAAh/D,UAAA2I,OAAA,SAAOw+C,EAAsB3xC,GACzBjV,KAAK2+D,WAAW1K,cAChBzuD,EAAA/F,UAAM2I,OAAMzI,KAAAK,KAAC4mD,EAAS3xC,GACtBjV,KAAKugE,mBACT,EAGA9B,EAAAh/D,UAAAknD,cAAA,SAAcltC,GACVzZ,KAAKk/D,YAAczlD,EACnBzZ,KAAKg/D,cAAcC,aAAgBt1D,IAAR8P,GAAmBitC,QAClD,EAEA+X,EAAAh/D,UAAAuwD,gBAAA,SAAgBv2C,GAChB,EAEAglD,EAAAh/D,UAAAinD,OAAA,SAAOpU,GAEH,OADAtyC,KAAK2+D,WAAW/L,aACTptD,EAAA/F,UAAMinD,OAAM/mD,KAAAK,KAAC,SAAA6L,GACZymC,GACAA,EAASzmC,EAEjB,EACJ,EACJ4yD,CAAA,CAzSA,CAA+B1V,cA0S/B0V,GAAUh/D,UAAUgJ,QAAU,uB,OClU9B,IAAA+3D,GAAA,SAAAh7D,GAAA,SAAAg7D,I,qDACI/6D,EAAAg7D,QAAkB,WAClBh7D,EAAAi7D,YAAa,IAAIC,cAAajZ,GAAG,UAAW,SAACkZ,GACzCn7D,EAAKo7D,aACT,GACAp7D,EAAAq7D,aAAc,IAAI7X,SACbpL,QAAQ,CAAC,WAAY,UAAW,UAAW,W,CA6CpD,QAnD+Bj+C,EAAA4gE,EAAAh7D,GAW3Bg7D,EAAA/gE,UAAAyL,IAAA,SAAIlI,GACA,OAAKvC,UAAUC,QACfV,KAAK0gE,WAAWtB,KAAKp8D,GACrBhD,KAAK6gE,cACE7gE,MAHuBA,KAAK0gE,WAAWtB,MAIlD,EAEAoB,EAAA/gE,UAAAohE,YAAA,WACI,IACI,IAAMzB,EAAOp/D,KAAKkL,MAClB,IACU,IAAA9B,EAAsB4xC,GAAUokB,GAA9BnkB,EAAO7xC,EAAA6xC,QAAE/uB,EAAM9iB,EAAA8iB,OACnB+uB,EACAj7C,KAAK8gE,YAAY96D,KAAK,IAEtBhG,KAAK8gE,YAAY96D,KAAKkmB,EAAOznB,IAAI,SAAA6nB,GAAS,OAACA,EAAMosB,SAAUpsB,EAAMkb,QAASlb,EAAMmV,QAAS98B,KAAKL,UAAUgoB,EAAM3U,QAApE,GAElD,CAAE,MAAOpV,GACLvC,KAAK8gE,YAAY96D,KAAK,CAAC,CAAC,GAAI,oBAAqB,GAAI,KACzD,CACJ,CAAE,MAAOzD,GACLvC,KAAK8gE,YAAY96D,KAAK,CAAC,CAAC,MAAO,eAAgB,GAAI,KACvD,CACIhG,KAAK+gE,cACL/gE,KAAK8gE,YAAYlC,YAEzB,EAEA4B,EAAA/gE,UAAA+W,MAAA,SAAMowC,EAAS3xC,GACXzP,EAAA/F,UAAM+W,MAAK7W,KAAAK,KAAC4mD,EAAS3xC,GACrBjV,KACKu0D,UAAUv0D,KAAK0gE,YACfnM,UAAUv0D,KAAK8gE,YAExB,EAEAN,EAAA/gE,UAAA2I,OAAA,SAAOw+C,EAASoa,GACZx7D,EAAA/F,UAAM2I,OAAMzI,KAAAK,KAAC4mD,EAASoa,EAC1B,EAEJR,CAAA,CAnDA,CAA+BS,cAoD/BT,GAAU/gE,UAAUgJ,QAAU,wBCrC9B,IAAAy4D,GAAA,WAQI,SAAAA,EAAoBhzD,GAAAlO,KAAAkO,MAPZlO,KAAAmhE,YAA2C,GAC3CnhE,KAAAohE,UAAuC,GACvCphE,KAAAqhE,QAAmC,GACnCrhE,KAAAshE,UAAuB,GACvBthE,KAAAstD,SAAqB,GACrBttD,KAAAytD,MAAgB,EAGxB,CAyQJ,OAvQIyT,EAAAzhE,UAAA41C,MAAA,WACIr1C,KAAKmhE,YAAc,GACnBnhE,KAAKohE,UAAY,GACjBphE,KAAKqhE,QAAU,GAEfrhE,KAAKshE,UAAY,GACjBthE,KAAKstD,SAAW,GAChBttD,KAAKytD,MAAQ,EACjB,EAEAyT,EAAAzhE,UAAA8hE,eAAA,SAAep8D,EAAYlC,EAAe+C,GACtC,IAAIgD,EAAmBhJ,KAAKmhE,YAAYh8D,GAaxC,OAZK6D,IACDA,GAAS,IAAIw4D,YAGR3jB,QAAQ,CAAC,OACT73C,KAAK,CAAC,CAACA,KAEZhG,KAAKmhE,YAAYh8D,GAAM6D,GAE3BhJ,KAAKstD,SAASzpD,KAAKmF,GACnBA,EAAOoV,MAAM,GAAA/Z,OAAGpB,IAChB+F,EAAO8+C,SAAQ,GACR9+C,CACX,EAEAk4D,EAAAzhE,UAAAgiE,aAAA,SAAat8D,EAAYlC,EAAe+C,EAAmByhD,EAAsBia,QAAtB,IAAAja,MAAA,SAAsB,IAAAia,MAAA,WAC7E,IAAI14D,EAAiBhJ,KAAKohE,UAAUj8D,GAgBpC,OAfK6D,IACDA,GAAS,IAAI24D,UACR9jB,QAAQ,CAAC,OACT73C,KAAK,CAAC,CAACA,KACP47D,cAAc,GAEnB5hE,KAAKohE,UAAUj8D,GAAM6D,GAEzBhJ,KAAKstD,SAASzpD,KAAKmF,GACnBA,EACK64D,wBAAwBH,GACxBxoD,KAAKuuC,EAAU,GAAApjD,OAAGpB,EAAK,MAAAoB,OAAKojD,GAAY,GAAApjD,OAAGpB,IAC3CwkD,QAAQA,GAEbz+C,EAAO8+C,SAAQ,GACR9+C,CACX,EAEAk4D,EAAAzhE,UAAAqiE,WAAA,SAAWzkB,EAAkB0kB,GACzB,IAAMC,EAAS,GAAA39D,OAAGg5C,EAAQ,MAAAh5C,OAAK09D,GAC3B/4D,EAAShJ,KAAKqhE,QAAQW,GAS1B,OARKh5D,IACDA,GAAS,IAAIi5D,QACRC,aAAaliE,KAAKohE,UAAU/jB,IAC5B8kB,aAAaniE,KAAKohE,UAAUW,IAEjC/hE,KAAKqhE,QAAQW,GAAUh5D,GAE3BhJ,KAAKytD,MAAM5pD,KAAKmF,GACTA,CACX,EAEAk4D,EAAAzhE,UAAA2iE,iBAAA,SAAiB/F,GAIb,GAHIA,aAAqB3jD,KACrB2jD,EAAYA,EAAU3yD,YAAYa,cAElC8xD,aAAqBlsD,EAAU,CAC/B,IAAMkyD,EAAW,GAAAh+D,OAAGg4D,EAAU5rD,OACxB6xD,EAAmBtiE,KAAKuhE,eAAec,EAAU,GAAAh+D,OAAGg+D,IACpD5F,EAAO,GAAAp4D,OAAGg4D,EAAU5rD,MAAK,KAAApM,OAAIg4D,EAAU3rD,QACvCJ,EAAetQ,KAAKuhE,eAAe9E,EAAM,GAAAp4D,OAAGg4D,EAAU3rD,SAC5D1Q,KAAKshE,UAAUz9D,KAAK,CAAE0+D,OAAQD,EAAQlf,MAAO9yC,IAC7C,IAAMosD,EAAW,GAAAr4D,OAAGo4D,EAAI,KAAAp4D,OAAIg4D,EAAU9rD,cAChC9N,EAAiBzC,KAAKyhE,aAAa/E,EAAUL,EAAU9rD,aAAc,CAAE1H,SAAUwzD,IAEvF,OADAr8D,KAAKshE,UAAUz9D,KAAK,CAAE0+D,OAAQjyD,EAAI8yC,MAAO3gD,IAClCi6D,CACX,CAAO,GAAIL,aAAqBnqD,EAAa,CACnCmwD,EAAW,GAAAh+D,OAAGg4D,EAAU5rD,OACxB6xD,EAAmBtiE,KAAKuhE,eAAec,EAAU,GAAAh+D,OAAGg+D,IAD1D,IAEMG,EAAO,GAAAn+D,OAAGg+D,EAAQ,KAAAh+D,OAAIg4D,EAAUlqD,eAChCkpC,EAAar7C,KAAKyhE,aAAae,EAAMnG,EAAUlqD,cAAe,CAAEtJ,SAAUwzD,IAEhF,OADAr8D,KAAKshE,UAAUz9D,KAAK,CAAE0+D,OAAQD,EAAQlf,MAAO/H,IACtCmnB,CACX,CAAO,GAAInG,aAAqB3kD,GAAgB,CACtC2qD,EAAW,GAAAh+D,OAAGg4D,EAAU5rD,OACxB6xD,EAAmBtiE,KAAKuhE,eAAec,EAAU,GAAAh+D,OAAGg+D,IAD1D,IAEMI,EAAYpG,EAAU1oD,YACtB+uD,EAAoB1iE,KAAKuhE,eAAekB,EAAWpG,EAAUzlD,YACnE5W,KAAKshE,UAAUz9D,KAAK,CAAE0+D,OAAQD,EAAQlf,MAAOsf,IAC7C,IAAMC,EAAUF,EAChBziE,KAAKshE,UAAUz9D,KAAK,CAChB0+D,OAAQG,EACRtf,MAAOpjD,KAAKyhE,aAAakB,EAAStG,EAAUxlD,aAEhD,IAAM+rD,EAAgB,GAAAv+D,OAAGo+D,EAAS,KAAAp+D,OAAIg4D,EAAU9rD,cAMhD,OALAvQ,KAAKshE,UAAUz9D,KAAK,CAChB0+D,OAAQG,EACRtf,MAAOpjD,KAAKyhE,aAAamB,EAAevG,EAAU9rD,aAAc,CAAE1H,SAAUwzD,MAEhFr8D,KAAK8hE,WAAWa,EAASC,GAClBA,CACX,CAAO,GAAIvG,aAAqB5kD,GAAa,CACnC4qD,EAAW,GAAAh+D,OAAGg4D,EAAU5oD,UAAUhD,OAClC6xD,EAAmBtiE,KAAKuhE,eAAec,EAAU,GAAAh+D,OAAGg+D,IAD1D,IAEMQ,EAAaxG,EAAU1oD,YACvBiD,EAAqB5W,KAAKuhE,eAAesB,EAAYxG,EAAU5oD,UAAUmD,YAC/E5W,KAAKshE,UAAUz9D,KAAK,CAAE0+D,OAAQD,EAAQlf,MAAOxsC,IAC7C,IAAMC,EAAU,GAAAxS,OAAGw+D,EAAU,KAAAx+D,OAAIg4D,EAAU5oD,UAAUoD,WAC/CM,EAAkBnX,KAAKuhE,eAAe1qD,EAASwlD,EAAU5oD,UAAUoD,WACzE7W,KAAKshE,UAAUz9D,KAAK,CAAE0+D,OAAQ3rD,EAAUwsC,MAAOjsC,IACzCulD,EAAW,GAAAr4D,OAAGwS,EAAO,KAAAxS,OAAIg4D,EAAU9rD,cAMzC,OALAvQ,KAAKshE,UAAUz9D,KAAK,CAChB0+D,OAAQprD,EACRisC,MAAOpjD,KAAKyhE,aAAa/E,EAAUL,EAAU9rD,aAAc,CAAE1H,SAAUwzD,MAE3Er8D,KAAK8hE,WAAWjrD,EAAS6lD,GAClBA,CACX,CAAO,GAAIL,aAAqB1mD,EAAe,CACrC0sD,EAAW,GAAAh+D,OAAGg4D,EAAU5rD,OACxB6xD,EAAmBtiE,KAAKuhE,eAAec,EAAU,GAAAh+D,OAAGg+D,IACpDI,EAAYpG,EAAU1oD,YACtB+uD,EAAoB1iE,KAAKuhE,eAAekB,EAAWpG,EAAU3pD,UACnE1S,KAAKshE,UAAUz9D,KAAK,CAAE0+D,OAAQD,EAAQlf,MAAOsf,IACvCC,EAAUF,EAChBziE,KAAKshE,UAAUz9D,KAAK,CAChB0+D,OAAQG,EACRtf,MAAOpjD,KAAKyhE,aAAakB,EAAStG,EAAU3pD,YAE1CkwD,EAAgB,GAAAv+D,OAAGo+D,EAAS,KAAAp+D,OAAIg4D,EAAU9rD,cAMhD,OALAvQ,KAAKshE,UAAUz9D,KAAK,CAChB0+D,OAAQG,EACRtf,MAAOpjD,KAAKyhE,aAAamB,EAAevG,EAAU9rD,aAAc,CAAE1H,SAAUwzD,MAEhFr8D,KAAK8hE,WAAWa,EAASC,GAClBA,CACX,CAAO,GAAIvG,aAAqB9oD,EAAY,CAClC8uD,EAAW,GAAAh+D,OAAGg4D,EAAU5oD,UAAUhD,OAClC6xD,EAAmBtiE,KAAKuhE,eAAec,EAAU,GAAAh+D,OAAGg+D,IAD1D,IAEM1uD,EAAY0oD,EAAU1oD,YACtBmvD,EAAW,GAAAz+D,OAAGg+D,EAAQ,KAAAh+D,OAAIg4D,EAAU5oD,UAAUf,UAC9CA,EAAmB1S,KAAKuhE,eAAe5tD,EAAW0oD,EAAU5oD,UAAUf,UAC5E1S,KAAKshE,UAAUz9D,KAAK,CAAE0+D,OAAQD,EAAQlf,MAAO1wC,IACvCgqD,EAAW,GAAAr4D,OAAGy+D,EAAQ,KAAAz+D,OAAIg4D,EAAU9rD,cAM1C,OALAvQ,KAAKshE,UAAUz9D,KAAK,CAChB0+D,OAAQ7vD,EACR0wC,MAAOpjD,KAAKyhE,aAAa/E,EAAUL,EAAU9rD,aAAc,CAAE1H,SAAUwzD,MAE3Er8D,KAAK8hE,WAAWgB,EAAUpG,GACnBA,CACX,CAAO,GAAIL,aAAqBvwD,EAAM,CAClC,IAAM3G,EAAKk3D,EAAU31D,OAErB,OADA1G,KAAKyhE,aAAat8D,EAAIk3D,EAAUp5D,QAAS,CAAE4F,SAAUwzD,IAC9Cl3D,CACX,CAAO,GAAIk3D,aAAqBrvD,EAAU,CAChC7H,EAAKk3D,EAAUl3D,KAErB,OADAnF,KAAKyhE,aAAat8D,EAAIk3D,EAAUp5D,QAAS,CAAE4F,SAAUwzD,IAC9Cl3D,CACX,CACUA,EAAKk3D,EAAU31D,OAErB,OADA1G,KAAKyhE,aAAat8D,EAAIk3D,EAAUp5D,QAAS,CAAE4F,SAAUwzD,IAC9Cl3D,CAEf,EAEA+7D,EAAAzhE,UAAAsjE,eAAA,SAAe1lB,EAAkB8R,EAAetmD,EAAoB5F,GAChE,IAAMy/D,EAAoB1iE,KAAKuhE,eAAepS,EAAKhqD,KAAM,GAAAd,OAAG8qD,EAAKhqD,MAAQ,CAAEgqD,KAAIA,IAC3EuS,EAAY,KACZja,EAAU,GACd,GAAI5+C,EAAS/B,SAAU,CACnB,IAAMolB,EAASrjB,EAAS9B,WACpBmlB,EAAOxrB,SACPghE,EAAY,OACZja,EAAUv7B,EAAOznB,IAAI,SAAA6nB,GAAS,SAAAjoB,OAAGioB,EAAMpjB,OAAM,OAAA7E,OAAMioB,EAAMnY,IAA3B,GAAkCzP,KAAK,MAE7E,MACIg9D,EAAY,YAEhB,IAAMsB,EAAiBhjE,KAAKyhE,aAAa54D,EAAS1D,KAAMlC,GAAS,GAAAoB,OAAGwE,EAASq7C,WAAa,CAAEiL,KAAIA,EAAEtmD,SAAQA,GAAI4+C,EAASia,GAKvH,OAJIrkB,GACAr9C,KAAK8hE,WAAWzkB,EAAUx0C,EAAS1D,MAEvCnF,KAAKshE,UAAUz9D,KAAK,CAAE0+D,OAAQG,EAAStf,MAAO4f,IACvCn6D,EAAS1D,IACpB,EAEA+7D,EAAAzhE,UAAAwjE,YAAA,eAAAx9D,EAAAzF,KACIA,KAAKshE,UAAY,GACjBthE,KAAKstD,SAAW,GAChBttD,KAAKytD,MAAQ,GAEbztD,KAAKkO,IAAIsiD,WAAWrkD,QAAQ,SAAA5J,GACxBkD,EAAK28D,iBAAiB7/D,EAAE2S,gBAAgB3K,aAC5C,GAGA,IADA,IAAM24D,EAAoC,GACvB78D,EAAA,EAAA+C,EAAApJ,KAAKkO,IAAIsiD,WAATnqD,EAAA+C,EAAA1I,OAAA2F,IAAqB,CAGpC,IAHC,IACKkpD,GADCJ,EAAI/lD,EAAA/C,IACW6O,gBAClBiuD,EAASnjE,KAAKoiE,iBAAiB7S,EAAShlD,cACrBgW,EAAA,EAAAC,EAAA+uC,EAAS/mD,aAAT+X,EAAAC,EAAA9f,OAAA6f,IAAuB,CAAzC,IAAM1X,EAAQ2X,EAAAD,GACf4iD,EAASnjE,KAAK+iE,eAAeI,EAAQhU,EAAMtmD,EAC/C,CACA,IACMgb,GADA/F,EAAgBqxC,EAAKrxC,iBACI+F,WACzBu/C,EAAkBpjE,KAAK+iE,eAAeI,EAAQhU,EAAMtrC,EAAU,YAC9Dw/C,EAAgB,GAAAh/D,OAAGyZ,EAAc3Y,KAAI,OACrCu9D,EAAoB1iE,KAAKuhE,eAAe8B,EAAe,gBAAiB,CAAEvlD,cAAaA,IAC7F9d,KAAKshE,UAAUz9D,KAAK,CAChB0+D,OAAQviE,KAAKmhE,YAAYhS,EAAKhqD,MAC9Bi+C,MAAOsf,IAEX1iE,KAAKshE,UAAUz9D,KAAK,CAChB0+D,OAAQG,EACRtf,MAAOpjD,KAAKohE,UAAUv9C,EAAS1e,QAEnC,IAAMm+D,EAAc,GAAAj/D,OAAGyZ,EAAc3Y,KAAI,QACnCo+D,EAAuBvjE,KAAKyhE,aAAa6B,EAAaxlD,EAAcktC,aAAaptC,SAASsmC,UAAW,CAAEiL,KAAIA,EAAEnE,WAAYltC,EAAcktC,eAC7IhrD,KAAK8hE,WAAWsB,EAAiBE,GACjCtjE,KAAKshE,UAAUz9D,KAAK,CAChB0+D,OAAQG,EACRtf,MAAOmgB,IAEX,IAAMC,EAAgB,GAAAn/D,OAAGyZ,EAAc3Y,KAAI,UACrCs+D,EAAsBzjE,KAAKyhE,aAAa+B,EAAe,YAAa,CAAErU,KAAIA,EAAElrC,MAAOkrC,EAAKlrC,UAC9FjkB,KAAK8hE,WAAWwB,EAAaE,GACxB1/C,OAAO,IACP4/C,gBAAgB,OAChBxqD,KAAK,WAEVlZ,KAAK8hE,WAAWqB,EAAQK,GACxBxjE,KAAKshE,UAAUz9D,KAAK,CAChB0+D,OAAQviE,KAAKmhE,YAAYhS,EAAKhqD,MAC9Bi+C,MAAOqgB,IAEXN,EAASK,EACTN,EAAO3T,EAASpqD,MAAQg+D,CAC5B,CAGA,IAAmB,IAAAriD,EAAA,EAAAC,EAAA/gB,KAAKkO,IAAIsiD,WAAT1vC,EAAAC,EAAArgB,OAAAogB,IAAqB,CAAnC,IACKhD,GADCqxC,EAAIpuC,EAAAD,IACgBhD,gBACrBowC,EAAmBluD,KAAKkO,IAAI+G,QAAQ6I,EAAcgvC,uBACxD,GAAIoB,EAAkB,CACZrqC,EAAWqqC,EAAiBpwC,gBAAgB+F,WAClD7jB,KAAK8hE,WAAWj+C,EAAS1e,KAAM,GAAAd,OAAGyZ,EAAc3Y,KAAI,QACxD,CACJ,CAEA,IAAkB,IAAA6b,EAAA,EAAAC,EAAAjhB,KAAKkO,IAAIsiD,WAATxvC,EAAAC,EAAAvgB,OAAAsgB,IAEd,IAFC,IACKmuC,EACmBjuC,EAAA,EAAAC,GADnBguC,EADIluC,EAAAD,GACO9L,iBACa/L,iBAAL+X,EAAAC,EAAAzgB,OAAAwgB,IAAuB,CAA3C,IAAMyiD,EAAUxiD,EAAAD,GACjBlhB,KAAK8hE,WAAWoB,EAAOljE,KAAKkO,IAAI+G,QAAQ0uD,EAAW3/D,MAAMkR,gBAAgB/P,MAAOw+D,EAAW5/D,GAAGoB,MACzF2e,OAAO,IACP4/C,gBAAgB,OAChBxqD,KAAK,UAEd,CAGJ,MAAO,CACHo0C,SAAUttD,KAAKstD,SACfG,MAAOztD,KAAKytD,MACZ6T,UAAWthE,KAAKshE,UAExB,EACJJ,CAAA,CAlRA,GCPA0C,GAAA,SAAAp+D,GA4GI,SAAAo+D,EAAoB11D,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,MA1GZzI,EAAAo5D,YAAa,IAAIC,UAAS5/C,OAAO,WAAWuoC,QAAQ,UACvDC,GAAG,QAAS,WACT,IAAMplB,EAAO78B,EAAKo5D,WAAW5pD,UAAUqtB,OACjCuhC,EAAOvhC,EAAKmmB,wBACdhjD,EAAKq+D,aAAaC,KAAK,CACvBjjE,OAAQwhC,EACR0hC,cAAe1hC,EACf2hC,QAASJ,EAAKK,KACdC,QAASN,EAAKO,QAGtB,GAEI3+D,EAAAu5D,eAAgB,IAAIF,UAAS5/C,OAAO,YAAYuoC,QAAQ,aAC3DwX,SAAQ,GACRvX,GAAG,QAAS,WACTjiD,EAAKqE,QACT,GAEIrE,EAAA4+D,cAAe,IAAIvF,UAAS5/C,OAAO,YAAYuoC,QAAQ,YAC1DwX,SAAQ,GACRvX,GAAG,QAAS,WACLjiD,EAAK6+D,eACD7+D,EAAK6+D,wBAAwBt3D,EAC7BvH,EAAK8uC,IAAIvnC,EAAS/B,QAAQxF,EAAK6+D,aAAa75D,SAAS,IAC9ChF,EAAK6+D,wBAAwBx4D,EACpCrG,EAAK8uC,IAAIzoC,EAAKb,QAAQxF,EAAK6+D,aAAa75D,SAAS,IAC1ChF,EAAK6+D,wBAAwBpyD,EACpCzM,EAAK8uC,IAAIriC,EAAYjH,QAAQxF,EAAKyI,IAAKzI,EAAK6+D,aAAa75D,SAAS,IAC3DhF,EAAK6+D,wBAAwB/wD,EACpC9N,EAAK8uC,IAAI,IAAIhhC,EAAW9N,EAAKyI,KACxBuF,QAAQlB,EAAYtH,QAAQxF,EAAKyI,IAAKzI,EAAK6+D,aAAa7wD,UAAUhJ,SAAS,IAC3E8F,WAAW9K,EAAK6+D,aAAa/zD,eAE3B9K,EAAK6+D,wBAAwBn0D,EACpC1K,EAAK8uC,IAAI,IAAIpkC,EAAS1K,EAAKyI,KACtBoC,GAAGD,EAAGpF,QAAQxF,EAAKyI,IAAKzI,EAAK6+D,aAAah0D,KAAK7F,SAAS,IACxD8F,WAAW9K,EAAK6+D,aAAa/zD,eAE3B9K,EAAK6+D,wBAAwB7sD,GACpChS,EAAK8uC,IAAI,IAAI98B,GAAYhS,EAAKyI,KACzBuF,QAAQiD,EAAazL,QAAQxF,EAAKyI,IAAKzI,EAAK6+D,aAAa7wD,UAAUhJ,SAAS,IAC5E8F,WAAW9K,EAAK6+D,aAAa/zD,eAGlCwO,QAAQC,KAAK,0BAGzB,GAEIvZ,EAAA85D,aAAc,IAAIT,UAAS5/C,OAAO,eAAeuoC,QAAQ,eAC5DC,GAAG,QAAS,WACTmK,GAAO,mGAAmGlvD,KAAK,SAAA4hE,GAC3G9+D,EAAK8uC,KAAI,IAAIvnC,GAAWE,OAAO,OAAOC,QAAQo3D,GAClD,GACA1S,GAAO,mGAAmGlvD,KAAK,SAAA4hE,GAC3G9+D,EAAK8uC,KAAI,IAAIvnC,GAAWE,OAAO,OAAOC,QAAQo3D,GAClD,GACA1S,GAAO,gGAAgGlvD,KAAK,SAAA4hE,GACxG9+D,EAAK8uC,KAAI,IAAIvnC,GAAWE,OAAO,OAAOC,QAAQo3D,GAClD,GACA9+D,EAAK8uC,IAAI,IAAIhhC,EAAW9N,EAAKyI,KACxBuF,QAAQ,IAAIlB,EAAY9M,EAAKyI,KACzBuC,IAAI,iCACJiC,OAAO,sBACPI,cAAc,EACX,IAAIR,GAAY/K,QAAQ,QACxB,IAAI+K,GAAY/K,QAAQ,WAE/BgJ,WAAW,YAEhB9K,EAAK8uC,IAAI,IAAIpkC,EAAS1K,EAAKyI,KACtBoC,GAAG,IAAID,EAAG5K,EAAKyI,KAAKuC,IAAI,sCAAsCC,KAAK,qBACnEH,WAAW,aAEhB9K,EAAK8uC,IAAI,IAAIriC,EAAYzM,EAAKyI,KACzBuC,IAAI,sCACJ0B,YAAY,4BAEjB,IAAMqyD,EAAU,IAAI9tD,EAAajR,EAAKyI,KACjCuC,IAAI,sCACJmG,SAAS,SACTC,QAAQ,gBAEbpR,EAAK8uC,IAAI,IAAI98B,GAAYhS,EAAKyI,KACzBuF,QAAQ+wD,GACRj0D,WAAW,WAEhB9K,EAAK8uC,KAAI,IAAIzoC,GACRI,WAAW,EACR,IAAItB,GAAY7F,KAAK,UAAUwC,QAAQ,MAAMnF,MAAM,IACnD,IAAIwI,GAAYrD,QAAQ,cAAcnF,MAAM,SAC5C,IAAIwI,GAAYrD,QAAQ,aAAanF,MAAM,QAC3C,IAAIwI,GAAYrD,QAAQ,UAAUuD,QAAQ,MAC1C,IAAIF,GAAY7F,KAAK,UAAUwC,QAAQ,UAG/C9B,EAAKihD,QACT,GAEIjhD,EAAAg/D,SAAW,IAAIxb,QAQnBxjD,EACKmjD,QAAQ,CAACnjD,EAAKo5D,WAAYp5D,EAAKu5D,cAAe,IAAIlW,SAAUrjD,EAAK4+D,aAAc,IAAIvb,SAAUrjD,EAAK85D,cAClG3hD,OAAOnY,EAAKg/D,UACZ5mB,QAAQ,CAAC,KAAM,OAAQ,eACvB6J,GAAG,QAAS,SAACziD,EAAKomD,EAAKxP,GACpBp2C,EAAK6+D,aAAer/D,EAAIqqD,SACpBzT,GAA0B,IAAnB52C,EAAIy/D,YAA+B,UAAXz/D,EAAI0/D,GACnCl/D,EAAKm/D,YAAc3/D,EAAIqqD,gBAEhB7pD,EAAKm/D,YAEhBn/D,EAAKu5D,cAAcC,aAA6Bt1D,IAArBlE,EAAKm/D,aAA2Ble,SAC3DjhD,EAAK4+D,aAAapF,aAA8Bt1D,IAAtBlE,EAAK6+D,cAA4B5d,QAC/D,GAGJjhD,EAAKo/D,W,CACT,CA+FJ,OA9N6BjlE,EAAAgkE,EAAAp+D,GAiIzBo+D,EAAAnkE,UAAAolE,SAAA,eAAAp/D,EAAAzF,KACU8kE,EAAW,IAAIC,kBAGrBD,EAASE,WAAW,gBAAiB,CACjC/hE,MAAO,kBACPgiE,QAAS,WACLx/D,EAAK8uC,IAAI,IAAIpkC,EAAS1K,EAAKyI,KAC/B,IAGJ42D,EAASE,WAAW,kBAAmB,CACnC/hE,MAAO,eACPgiE,QAAS,WACLx/D,EAAK8uC,IAAI,IAAIriC,EAAYzM,EAAKyI,KAClC,IAGJ42D,EAASE,WAAW,YAAa,CAC7B/hE,MAAO,gBACPgiE,QAAS,WACLx/D,EAAK8uC,IAAI,IAAI98B,GAAYhS,EAAKyI,KAClC,IAGJ42D,EAASE,WAAW,WAAY,CAC5B/hE,MAAO,OACPgiE,QAAS,WACLx/D,EAAK8uC,IAAI,IAAIhhC,EAAW9N,EAAKyI,KACjC,IAGJ42D,EAASE,WAAW,eAAgB,CAChC/hE,MAAO,WACPgiE,QAAS,WACLx/D,EAAK8uC,IAAI,IAAIvnC,EACjB,IAGJ83D,EAASE,WAAW,WAAY,CAC5B/hE,MAAO,OACPgiE,QAAS,WACLx/D,EAAK8uC,IAAI,IAAIzoC,EACjB,IAGJ9L,KAAK8jE,aAAe,IAAIoB,cAAY,CAAEJ,SAAQA,IAC9C9kE,KAAK8jE,aAAaqB,QAAQ,CAAEC,QAAS,gBAAiBC,SAAU,mBAChErlE,KAAK8jE,aAAaqB,QAAQ,CAAEC,QAAS,kBAAmBC,SAAU,mBAClErlE,KAAK8jE,aAAaqB,QAAQ,CAAEC,QAAS,YAAaC,SAAU,mBAC5DrlE,KAAK8jE,aAAaqB,QAAQ,CAAEC,QAAS,WAAYC,SAAU,mBAC3DrlE,KAAK8jE,aAAaqB,QAAQ,CAAEC,QAAS,eAAgBC,SAAU,mBAC/DrlE,KAAK8jE,aAAaqB,QAAQ,CAAEC,QAAS,WAAYC,SAAU,kBAC/D,EAEAzB,EAAAnkE,UAAA80C,IAAA,SAAI37B,GACA5Y,KAAKkO,IAAIoiD,iBAAiB13C,GAC1B5Y,KAAK0mD,QACT,EAEAkd,EAAAnkE,UAAAqK,OAAA,WACQ9J,KAAK4kE,cACL5kE,KAAKkO,IAAIqiD,iBAAiBvwD,KAAK4kE,aAC/B5kE,KAAK0mD,SAEb,EAGAkd,EAAAnkE,UAAAinD,OAAA,SAAOpU,GACH,IAAM7qC,EAAO,GACbzH,KAAKkO,IAAIsiD,WAAWrkD,QAAQ,SAAA5J,GACxB,IAAIqW,EAAKrW,EAAE2S,gBAAgB3K,aACvBqO,aAAcF,KACdE,EAAKA,EAAGrO,mBAEUZ,IAAlBlC,EAAKmR,EAAGzT,QACRsC,EAAKmR,EAAGzT,MAAQ,GAEpBsC,EAAKmR,EAAGzT,OACZ,GACA,IAAMa,EAAOhG,KAAKkO,IAAI2K,cAAc1S,OAAO,SAAAyS,GAAM,MAAY,UAAZA,EAAGzT,IAAH,GAAqBV,IAAI,SAAAmU,GAItE,YAHsBjP,IAAlBlC,EAAKmR,EAAGzT,QACRsC,EAAKmR,EAAGzT,MAAQ,GAEb,CAACyT,EAAGzT,KAAMyT,EAAGsrC,UAAWz8C,EAAKmR,EAAGzT,OAAS,EAAGyT,EACvD,GACM0sD,EAAS3gE,KAAKL,UAAUmD,GAK9B,OAJIzH,KAAKulE,cAAgBD,IACrBtlE,KAAKulE,YAAcD,EACnBtlE,KAAKgG,KAAKA,IAEPR,EAAA/F,UAAMinD,OAAM/mD,KAAAK,KAACsyC,EACxB,EACJsxB,CAAA,CA9NA,CAA6B7a,cCV7Byc,GAAA,SAAAhgE,GAII,SAAAggE,EAAoBt3D,GAChB,IAAAzI,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAAyI,MAFZzI,EAAAggE,SAAW,IAAIxc,QAInBxjD,EACKuhD,cAAa,GACbppC,OAAOnY,EAAKggE,UACZ5nB,QAAQ,CAAC,KAAM,U,CAExB,CAcJ,OAzB6Bj+C,EAAA4lE,EAAAhgE,GAczBggE,EAAA/lE,UAAAinD,OAAA,SAAOpU,GACH,IAAMtsC,EAAOhG,KAAKkO,IAAIsiD,WAAW/rD,IAAI,SAAA+sD,GACjC,MAAO,CAACA,EAAKrsD,KAAMqsD,EAAK1zC,gBAAgBM,QAASozC,EACrD,GACM8T,EAAS1+D,UAAQZ,EAAKvB,IAAI,SAAAQ,GAAO,OAAAA,EAAI,EAAJ,IAKvC,OAJIjF,KAAKulE,cAAgBD,IACrBtlE,KAAKulE,YAAcD,EACnBtlE,KAAKgG,KAAKA,IAEPR,EAAA/F,UAAMinD,OAAM/mD,KAAAK,KAACsyC,EACxB,EACJkzB,CAAA,CAzBA,CAA6Bzc,c,8HCe7B,IAAA2c,GAAA,SAAAlgE,GAAA,SAAAkgE,I,qDAYIjgE,EAAAkgE,eAAkC,G,CAoBtC,QAhCsC/lE,EAAA8lE,EAAAlgE,GAKlCkgE,EAAAjmE,UAAAwD,MAAA,SAAMD,GACF,OAAKvC,UAAUC,QACfV,KAAK4lE,OAAS5iE,EACdhD,KAAKynD,QAAQzkD,GACNhD,MAHuBA,KAAK4lE,MAIvC,EAKAF,EAAAjmE,UAAAysB,OAAA,SAAOlpB,GACH,OAAKvC,UAAUC,QACfV,KAAK2lE,eAAiB3iE,EACtBhD,KAAK6lE,QAAQ,QAAS7iE,EAAEtC,OAAS,GAE7BsC,EAAEtC,OACFV,KAAKynD,QAAQzkD,EAAEyB,IAAI,SAAAkvD,GACf,IAAMmS,EAAiBnS,EAAIzqD,OAAO4K,MAAM,KAExC,OADAgyD,EAAe13C,OAAO,EAAG,GAClB,GAAA/pB,OAAGyhE,EAAephE,KAAK,KAAI,OAAAL,OAAMsvD,EAAIx/C,IAChD,GAAGzP,KAAK,OAER1E,KAAKynD,QAAQznD,KAAK4lE,QAEtB5lE,KAAK0mD,SACE1mD,MAduBA,KAAK2lE,cAevC,EACJD,CAAA,CAhCA,CAAsCK,mBAkCtCC,GAAA,SAAAxgE,GA+CI,SAAAwgE,EAAY76D,GACR,IAAA1F,EAAAD,EAAK7F,KAAAK,OAAEA,K,OA7CXyF,EAAA8E,YAAa,IAAIm7D,IAA0BxmD,OAAO,eAAejc,MAAM,cAAcwjD,UAAS,GAC9FhhD,EAAAU,QAAS,IAAIu/D,IAA0BxmD,OAAO,aAAajc,MAAM,UACjEwC,EAAAid,SAAU,IAAIgjD,IAA0BxmD,OAAO,aAAajc,MAAM,WAClEwC,EAAAmd,SAAU,IAAI8iD,IAA0BxmD,OAAO,mBAAmBjc,MAAM,YACxEwC,EAAAqgB,MAAO,IAAI4/C,IAA0BxmD,OAAO,qBAAqBjc,MAAM,QACvEwC,EAAAwgB,OAAQ,IAAIy/C,IAA0BxmD,OAAO,cAAcjc,MAAM,SACjEwC,EAAAoe,UAAW,IAAI6hD,IAA0BxmD,OAAO,aAAajc,MAAM,YACnEwC,EAAAulD,YAAa,IAAI0a,IAA0BxmD,OAAO,iBAAiBjc,MAAM,iBACzEwC,EAAAwe,OAAQ,IAAIyhD,IAA0BxmD,OAAO,qBAAqBjc,MAAM,SACxEwC,EAAAwgE,OAAQ,IAAIP,IAA0BxmD,OAAO,UAAUjc,MAAM,SAC7DwC,EAAA4J,KAAM,IAAIq2D,IAA0BxmD,OAAO,WAAWjc,MAAM,OAE5DwC,EAAAygE,aAA8B,IAAIC,kBAC7BC,aAAY,GACZC,eAAc,GACdC,YAAW,GAGR7gE,EAAA8gE,SAAW,CACf9gE,EAAK8E,WACL9E,EAAKU,OACLV,EAAKid,QACLjd,EAAKmd,QACLnd,EAAKqgB,KACLrgB,EAAKwgB,MACL,IAAI6iC,SACJrjD,EAAKoe,SACLpe,EAAKulD,WACL,IAAIlC,SACJrjD,EAAKwe,MACLxe,EAAKwgE,MACL,IAAInd,SACJrjD,EAAK4J,KAET5J,EAAA+gE,gBAA2C/gE,EAAK8E,WACxC9E,EAAAghE,oBAAqB,IAAIC,gBAC5B9d,QAAQnjD,EAAK8gE,UAAU7e,GAAG,WAAY,SAAAzC,GACnCx/C,EAAK+gE,gBAAkBvhB,EACvBx/C,EAAK2Y,MAAM6mC,EAAGhiD,SAASyjD,QAC3B,GAOAjhD,EAAK2F,OAASD,EACd1F,EAAKmjD,QAAQ,CAACnjD,EAAKghE,qBACnBhhE,EAAK2Y,MAAM3Y,EAAK8E,WAAWtH,SAC3BuC,EAAA/F,UAAMme,OAAMje,KAAA8F,EAACA,EAAKygE,aAClBzgE,EAAKygE,YAAYn8D,QAAQ,SAAC5E,EAAYqf,EAAemiD,EAAez9D,GAC5DA,IAAWzD,EAAKygE,cAChBzgE,EAAKmhE,YAAYzhE,EAAIqf,EAAUmiD,EAAUz9D,GACzCzD,EAAKohE,cAEb,G,CACJ,CAuNJ,OAlR4BjnE,EAAAomE,EAAAxgE,GA6DxBwgE,EAAAvmE,UAAAqnE,iBAAA,WACI,OAAO9mE,KAAKymE,mBAAmB7d,UAAUziD,OAAO,SAAAhH,GAAK,OAAAA,aAAaumE,EAAb,EACzD,EAKAM,EAAAvmE,UAAAsnE,QAAA,SAAQ/jE,GACJ,OAAKvC,UAAUC,QACfV,KAAKgnE,SAAWhkE,EACThD,MAFuBA,KAAKgnE,QAGvC,EAEQhB,EAAAvmE,UAAAwnE,eAAR,WACI,OAAIjnE,KAAKgnE,oBAAoB58D,GAElBpK,KAAKgnE,oBAAoBtuD,GADzB1Y,KAAKgnE,SAGLhnE,KAAKgnE,oBAAoBE,GACzBlnE,KAAKgnE,SAAS9xD,gBAAgB3K,kBADlC,CAGX,EAEQy7D,EAAAvmE,UAAA0nE,WAAR,WACI,OAAInnE,KAAKgnE,oBAAoBnqB,GAClB78C,KAAKgnE,SACLhnE,KAAKgnE,oBAAoBE,GACzBlnE,KAAKgnE,SAAS9xD,gBAAgB0Q,eADlC,CAGX,EAEQogD,EAAAvmE,UAAA2nE,YAAR,WACI,OAAIpnE,KAAKgnE,oBAAoBtiB,GAClB1kD,KAAKgnE,SACLhnE,KAAKgnE,oBAAoBE,GACzBlnE,KAAKgnE,SAAS9xD,gBAAgBwN,eADlC,CAGX,EAEQsjD,EAAAvmE,UAAA4nE,YAAR,WACI,OAAIrnE,KAAKgnE,oBAAoBrnB,GAClB3/C,KAAKgnE,SACLhnE,KAAKgnE,oBAAoBE,GACzBlnE,KAAKgnE,SAAS9xD,gBAAgB0N,eADlC,CAGX,EAEQojD,EAAAvmE,UAAA6nE,SAAR,WACI,OAAItnE,KAAKgnE,oBAAoBjiB,GAClB/kD,KAAKgnE,SACLhnE,KAAKgnE,oBAAoBE,GACzBlnE,KAAKgnE,SAAS9xD,gBAAgB4Q,YADlC,CAGX,EAEQkgD,EAAAvmE,UAAA8nE,UAAR,WACI,OAAIvnE,KAAKgnE,oBAAoBnlB,GAClB7hD,KAAKgnE,SACLhnE,KAAKgnE,oBAAoBE,GACzBlnE,KAAKgnE,SAAS9xD,gBAAgB+Q,aADlC,CAGX,EAEQ+/C,EAAAvmE,UAAA+nE,aAAR,WACI,OAAIxnE,KAAKgnE,oBAAoBriB,GAClB3kD,KAAKgnE,SACLhnE,KAAKgnE,oBAAoBE,GACzBlnE,KAAKgnE,SAASlpD,gBAAgB+F,WAC9B7jB,KAAKgnE,oBAAoBpc,GACzB5qD,KAAKgnE,SAASnjD,gBADlB,CAGX,EAEQmiD,EAAAvmE,UAAAgoE,eAAR,WACI,OAAIznE,KAAKgnE,oBAAoBje,cAElB/oD,KAAKgnE,oBAAoBpc,GADzB5qD,KAAKgnE,SAGLhnE,KAAKgnE,oBAAoBE,GACzBlnE,KAAKgnE,SAASlpD,qBADlB,CAGX,EAEQkoD,EAAAvmE,UAAAioE,UAAR,WACI,OAAI1nE,KAAKgnE,oBAAoBzY,GAClBvuD,KAAKgnE,SACLhnE,KAAKgnE,oBAAoBE,GACzBlnE,KAAKgnE,SAAS/iD,aADlB,CAGX,EAEA+hD,EAAAvmE,UAAAkoE,gBAAA,WACI,GAAI3nE,KAAKwmE,iBAAmBxmE,KAAKwmE,gBAAgBvH,UAC7C,OAAOj/D,KAAKwmE,gBAEhB,IAAiB,IAAAngE,EAAA,EAAA+C,EAAApJ,KAAK8mE,mBAALzgE,EAAA+C,EAAA1I,OAAA2F,IAAyB,CAArC,IAAMuhE,EAAEx+D,EAAA/C,GACT,GAAIuhE,EAAG3I,UAEH,OADA2I,EAAGnhB,UAAS,GACLmhB,CAEf,CAEJ,EAIA5B,EAAAvmE,UAAA2I,OAAA,SAAOw+C,EAAS3xC,GACZzP,EAAA/F,UAAM2I,OAAMzI,KAAAK,KAAC4mD,EAAS3xC,GACtBjV,KAAK6mE,cACL,IAAMgB,EAAiB7nE,KAAK2nE,kBAC5B,GAAI3nE,KAAK8nE,eAAiB9nE,KAAKgnE,UAAYhnE,KAAK+nE,sBAAwBF,EAAgB,CAGpF,GAFA7nE,KAAK8nE,aAAe9nE,KAAKgnE,SACzBhnE,KAAK+nE,oBAAsBF,EACvB7nE,KAAKgnE,UAAYa,EACjB,OAAQA,GACJ,KAAK7nE,KAAKuK,WACNvK,KAAKkmE,YAAYtoD,OAAO5d,KAAKinE,kBAC7B,MACJ,KAAKjnE,KAAKmG,OACNnG,KAAKkmE,YAAYtoD,OAAO5d,KAAKmnE,cAC7B,MACJ,KAAKnnE,KAAK0iB,QACN1iB,KAAKkmE,YAAYtoD,OAAO5d,KAAKonE,eAC7B,MACJ,KAAKpnE,KAAK4iB,QACN5iB,KAAKkmE,YAAYtoD,OAAO5d,KAAKqnE,eAC7B,MACJ,KAAKrnE,KAAK8lB,KACN9lB,KAAKkmE,YAAYtoD,OAAO5d,KAAKsnE,YAC7B,MACJ,KAAKtnE,KAAKimB,MACNjmB,KAAKkmE,YAAYtoD,OAAO5d,KAAKunE,aAC7B,MACJ,KAAKvnE,KAAK6jB,SACN7jB,KAAKkmE,YAAYtoD,OAAO5d,KAAKwnE,gBAC7B,MACJ,KAAKxnE,KAAKgrD,WACNhrD,KAAKkmE,YAAYtoD,OAAO5d,KAAKynE,kBAC7B,MACJ,KAAKznE,KAAKikB,MACNjkB,KAAKkmE,YAAYtoD,OAAO5d,KAAK0nE,aAC7B,MACJ,KAAK1nE,KAAKqP,IACNrP,KAAKkmE,YAAYtoD,OAAO5d,KAAKgnE,eAIrChnE,KAAKkmE,YAAYtoD,YAAOjU,GAE5B3J,KAAKoL,OAAO48D,YAAYhoE,KAAKkmE,YAAYtoD,SAC7C,CACJ,EAEAooD,EAAAvmE,UAAA8gE,kBAAA,SAAkBvE,EAAI/W,GAClBA,EAAGga,UAAUjD,GACb/W,EAAG/4B,SAAS8vC,GAAMA,EAAGj1D,YAAc,GACvC,EAEAi/D,EAAAvmE,UAAAonE,YAAA,eAAAphE,EAAAzF,KACIA,KAAK8mE,mBAAmB36D,QAAQ,SAAA84C,GAC5B,GAAIA,aAAcygB,IACVjgE,EAAKwiE,oBAAoB5gE,QAAQ49C,EAAGhiD,UAAY,EAChDwC,EAAK86D,uBAAkB52D,EAAWs7C,OAF1C,CAOA,OAAQA,GACJ,KAAKx/C,EAAK8E,WACN9E,EAAK86D,kBAAkB96D,EAAKwhE,iBAAkBhiB,GAC9C,MACJ,KAAKx/C,EAAKU,OACNV,EAAK86D,kBAAkB96D,EAAK0hE,aAAcliB,GAC1C,MACJ,KAAKx/C,EAAKid,QACNjd,EAAK86D,kBAAkB96D,EAAK2hE,cAAeniB,GAC3C,MACJ,KAAKx/C,EAAKmd,QACNnd,EAAK86D,kBAAkB96D,EAAK4hE,cAAepiB,GAC3C,MACJ,KAAKx/C,EAAKqgB,KACNrgB,EAAK86D,kBAAkB96D,EAAK6hE,WAAYriB,GACxC,MACJ,KAAKx/C,EAAKwgB,MACNxgB,EAAK86D,kBAAkB96D,EAAK8hE,YAAatiB,GACzC,MACJ,KAAKx/C,EAAKoe,SACNpe,EAAK86D,kBAAkB96D,EAAK+hE,eAAgBviB,GAC5C,MACJ,KAAKx/C,EAAKulD,WACN,IAAMjD,EAAKtiD,EAAKgiE,iBAChBxiB,EAAGga,UAAUlX,GACb,MACJ,KAAKtiD,EAAKwe,MACN,IAAMikD,EAAKziE,EAAKiiE,YAChBziB,EAAGga,UAAUiJ,GACb,MACJ,KAAKziE,EAAKwgE,MACNhhB,EAAGga,SAAQ,GACX,MACJ,KAAKx5D,EAAK4J,IACN41C,EAAGga,UAAUx5D,EAAKuhE,UAGtB/hB,EAAGwB,YACHhhD,EAAK2Y,MAAM6mC,EAAGga,UAAYha,EAAGhiD,QAAU,GAxC3C,CA0CJ,EACJ,EAGA+iE,EAAAvmE,UAAAmnE,YAAA,SAAYzhE,EAAYqf,EAAemiD,EAAez9D,GACtD,EApOAtI,EAAA,CADC8J,UAAQ,GAAI,QAAS,2B,2BACqBs7D,EAAAvmE,UAAA,4BAqO/CumE,C,CAlRA,CAA4Bjd,cAmR5Bid,GAAcvmE,UAAUgJ,QAAU,4BAElC,IAAA0/D,GAAA,SAAA3iE,GAyBI,SAAA2iE,IACI,IAAA1iE,EAAAD,EAAK7F,KAAAK,OAAEA,K,OAxBHyF,EAAA2iE,OAAQ,IAAItJ,UAAS5/C,OAAO,WAAWuoC,QAAQ,QAClDC,GAAG,QAAS,WACT,IAAM7+C,EAAWpD,EAAKoD,WAClBA,GAAaA,EAAiBoC,SAC7BpC,EAAiBoC,QAAQxF,EAAK4iE,YAAYjJ,QAE/C35D,EAAK6iE,eACT,GAEI7iE,EAAA8iE,QAAS,IAAIzJ,UAAS5/C,OAAO,WAAWuoC,QAAQ,SACnDC,GAAG,QAAS,WACTjiD,EAAK4iE,YACAnvD,KAAKzT,EAAK+iE,YACV5J,aAELn5D,EAAK6iE,eACT,GAEI7iE,EAAA4iE,aAAc,IAAI1H,cACrBjZ,GAAG,UAAW,SAACkZ,GACZn7D,EAAK6iE,eACT,GAIA7iE,EAAKgjE,UAAU7f,QAAQ,CAACnjD,EAAK2iE,MAAO3iE,EAAK8iE,SACzC9iE,EAAKmY,OAAOnY,EAAK4iE,a,CACrB,CAsCJ,OAnEyBzoE,EAAAuoE,EAAA3iE,GAkCrB2iE,EAAA1oE,UAAAoJ,SAAA,SAAS7F,GACL,YAAU,IAANA,EAAqBhD,KAAKgO,WAC1BhO,KAAKgO,YAAchL,IACnBhD,KAAKgO,UAAYhL,SACVhD,KAAK0oE,WAET1oE,KACX,EAEAmoE,EAAA1oE,UAAA+oE,SAAA,WACI,IAAM3/D,EAAW7I,KAAK6I,WACtB,OAAOA,GAAaA,EAAiB4B,MAAQ9F,KAAKL,UAAWuE,EAAiB4B,aAASd,EAAW,GAAK,EAC3G,EAGAw+D,EAAA1oE,UAAA2I,OAAA,SAAOw+C,EAAS3xC,GACZzP,EAAA/F,UAAM2I,OAAMzI,KAAAK,KAAC4mD,EAAS3xC,GACtB,IAAMmqD,EAAOp/D,KAAKwoE,WACZG,EAAa3oE,KAAKqoE,YAAYnvD,YACZvP,IAAnB3J,KAAK0oE,WAA2B1oE,KAAK0oE,YAAcC,GAAe3oE,KAAK0oE,YAActJ,IACtFp/D,KAAK0oE,UAAYtJ,EACjBp/D,KAAKqoE,YAAYnvD,KAAKkmD,IAE1Bp/D,KAAKsoE,eACT,EAEAH,EAAA1oE,UAAA6oE,cAAA,WACI,IAAMz/D,EAAW7I,KAAK6I,WAChBu2D,EAAOp/D,KAAKwoE,WACZG,EAAa3oE,KAAKqoE,YAAYnvD,OACpClZ,KAAKooE,MAAMnJ,QAAQp2D,GAAYA,EAASoC,SAAWm0D,IAASuJ,GAAY/J,aACxE5+D,KAAKuoE,OAAOtJ,QAAQG,IAASuJ,GAAY/J,YAC7C,EACJuJ,CAAA,CAnEA,CAAyBpf,cAqEzB6f,GAAA,SAAApjE,GAWI,SAAAojE,IACI,IAAAnjE,EAAAD,EAAK7F,KAAAK,OAAEA,K,OAXHyF,EAAAojE,eAAiB,IAAI7C,GAAcvgE,GAAMiiD,GAAG,cAAe,SAACviD,EAAYqf,EAAemiD,EAAez9D,GAC1GzD,EAAKmhE,YAAYzhE,EAAIqf,EAAUmiD,EAAUz9D,EAC7C,GACQzD,EAAAqjE,cAAgB,IAAIC,WACpBtjE,EAAAujE,eAAiB,IAAIb,GACrB1iE,EAAAwjE,iBAAkB,IAAIC,mBAAkBC,YAAW,GAOvD1jE,EAAKqjE,cACAvU,UAAU9uD,EAAKwjE,gBAAiB,QAChC1U,UAAU9uD,EAAKujE,eAAgB,OAEpCvjE,EACK8uD,UAAU9uD,EAAKojE,gBACftU,UAAU9uD,EAAKqjE,e,CAExB,CA2CJ,OAhEwClpE,EAAAgpE,EAAApjE,GAuBpCojE,EAAAnpE,UAAA2pE,cAAA,SAAcpN,GACVh8D,KAAK6oE,eACA9B,QAAQ/K,GACRtV,QAET,EAEAkiB,EAAAnpE,UAAAuoE,YAAA,SAAYn/D,GACRA,EAAWA,aAAoB+hD,GAAgB/hD,EAASgb,WAAahb,EACrE7I,KAAKipE,gBACA1+D,WAAW,IAAIwD,EAAgBlF,aAAoBtD,EAAWsD,OAAWc,IACzEi1D,aAEL5+D,KAAKgpE,eACAngE,SAASA,GACT+1D,YAET,EAEAgK,EAAAnpE,UAAA4pE,eAAA,eAAA5jE,EAAAzF,KACU4Y,EAAK5Y,KAAKipE,gBAAgB1+D,aAC5BqO,EACAA,EAAG7Q,OAAOpF,KAAK,WACX8C,EAAKwjE,gBACAK,aACA1K,aAELn5D,EAAKujE,eACApK,YAET,GAEA5+D,KAAKgpE,eACApK,YAGb,EAGAgK,EAAAnpE,UAAAmnE,YAAA,SAAYzhE,EAAYqf,EAAemiD,EAAez9D,GACtD,EAtDAtI,EAAA,CADCytD,eAAa,kB,2BAC6Bua,EAAAnpE,UAAA,4BAuD/CmpE,C,CAhEA,CAAwC3H,c,i2FC7XxC,IAAM19B,GAAS8zB,eAAa,oBAM5B8Q,GAAA,SAAA3iE,GAuBI,SAAA2iE,EAAoBoB,GAChB,IAAA9jE,EAAAD,EAAK7F,KAAAK,OAAEA,K,OADSyF,EAAA8jE,SArBZ9jE,EAAA2iE,OAAQ,IAAItJ,UAAS5/C,OAAO,WAAWuoC,QAAQ,QAClDC,GAAG,QAAS,WACT,IAAMj/B,EAAM9jB,KAAK6I,MAAM/H,EAAK4iE,YAAYnvD,QACxCzT,EAAK8jE,OAAOlJ,UAAU53C,GACtBhjB,EAAK6iE,eACT,GAEI7iE,EAAA8iE,QAAS,IAAIzJ,UAAS5/C,OAAO,WAAWuoC,QAAQ,SACnDC,GAAG,QAAS,WACTjiD,EAAK4iE,YACAnvD,KAAKzT,EAAKka,MACVi/C,aAELn5D,EAAK6iE,eACT,GAEI7iE,EAAA4iE,aAAc,IAAI1H,cACrBjZ,GAAG,UAAW,SAACkZ,GACZn7D,EAAK6iE,eACT,GAIA7iE,EAAKgjE,UAAU7f,QAAQ,CAACnjD,EAAK2iE,MAAO3iE,EAAK8iE,SACzC9iE,EAAKmY,OAAOnY,EAAK4iE,a,CACrB,CAuBJ,OAlDyBzoE,EAAAuoE,EAAA3iE,GA8BrB2iE,EAAA1oE,UAAAyL,IAAA,SAAIlI,GAEA,OADAhD,KAAK2f,KAAOhb,KAAKL,UAAUtB,OAAG2G,EAAW,GAClC3J,IACX,EAGAmoE,EAAA1oE,UAAA2I,OAAA,SAAOw+C,EAAS3xC,GACZzP,EAAA/F,UAAM2I,OAAMzI,KAAAK,KAAC4mD,EAAS3xC,GAClBjV,KAAK0oE,YAAc1oE,KAAK2f,OACxB3f,KAAK0oE,UAAY1oE,KAAK2f,KACtB3f,KAAKqoE,YAAYnvD,KAAKlZ,KAAK2f,OAE/B3f,KAAKsoE,eACT,EAEAH,EAAA1oE,UAAA6oE,cAAA,WACI,IAAMK,EAAa3oE,KAAKqoE,YAAYnvD,OACpClZ,KAAKooE,MAAMnJ,QAAQj/D,KAAK2f,OAASgpD,GAAY/J,aAC7C5+D,KAAKuoE,OAAOtJ,QAAQj/D,KAAK2f,OAASgpD,GAAY/J,YAClD,EACJuJ,CAAA,CAlDA,CAAyBpf,cAoDzBygB,GAAA,SAAAhkE,GAyEI,SAAAgkE,IACI,IAAA/jE,EAAAD,EAAK7F,KAAAK,KAAC,eAAaA,K,OAxEfyF,EAAAgkE,kBAAsC,IAAIxZ,GAE1CxqD,EAAAikE,UAAY,IAAIX,WAChBtjE,EAAAkkE,cAA2B,IAAIlL,GAAUh5D,EAAKgkE,mBACjD/hB,GAAG,gBAAiB,SAAC8J,EAAe4B,GACjC3tD,EAAKmkE,MAAMnkE,EAAKkkE,cAAenY,EACnC,GACC9J,GAAG,kBAAmB,SAAC8J,GACpB,IAA0B,IAAAnrD,EAAA,EAAA+C,EAAA3D,EAAKgkE,kBAAkB3Z,WAAW0B,EAAKrsD,MAAvCkB,EAAA+C,EAAA1I,OAAA2F,IAA8C,CAAnE,IAAM0pD,EAAW3mD,EAAA/C,GACdZ,EAAKmkE,UAAY7Z,GACjBtqD,EAAKokE,cAAcR,gBAE3B,CACJ,GAEI5jE,EAAAqkE,cAAyB,IAAItE,GAAQ//D,EAAKgkE,mBAC7C/hB,GAAG,QAAS,SAACziD,EAAUomD,EAAaxP,EAAcsgB,GAC/C12D,EAAKmkE,MAAMnkE,EAAKqkE,cAAe7kE,EAAIqqD,UACnC7pD,EAAKokE,cAAcR,gBACvB,GAEI5jE,EAAAskE,gBAA2B,IAAInG,GAAQn+D,EAAKgkE,mBAC/C/hB,GAAG,QAAS,SAACziD,EAAUomD,EAAaxP,EAAcsgB,GAC/C12D,EAAKmkE,MAAMnkE,EAAKskE,gBAAiB9kE,EAAIqqD,UACrC7pD,EAAKokE,cAAcR,gBACvB,GAEI5jE,EAAAukE,cAAgB,IAAI9I,GAAaz7D,EAAKgkE,mBACtChkE,EAAAwkE,cAAsB,IAAIC,SAC7BhjD,OAAO,aACPijD,eAAc,GACdC,oBAAmB,GACnB1iB,GAAG,eAAgB,SAACziD,EAAUomD,EAAaxP,EAAcsgB,GACtD,IAAM1zC,EAAkBxjB,EAAIqqD,SAAS,IAAM,GAC3C7pD,EAAKmkE,MAAMnkE,EAAKwkE,aAAcxhD,EAAIxE,OAASwE,EAAIuiC,YAAcviC,EAAI3K,eAAiB2K,EAAI5f,UAAY4f,EAAI0mC,KAC1G,GACCzH,GAAG,qBAAsB,SAACziD,EAAUomD,EAAaxP,EAAcsgB,GAChE,GAEI12D,EAAA4kE,eAAiB,IAAItB,WACrBtjE,EAAA6kE,mBAAqB,IAAInC,GAAW1iE,GACpCA,EAAA8kE,oBAAqB,IAAI5J,cAAavB,KAAKtkB,IAC3Cr1C,EAAA+kE,kBAAoB,IAAIC,WACxBhlE,EAAAilE,iBAAqC,IAAIza,GACzCxqD,EAAAklE,eAA4B,IAAIlM,GAAUh5D,EAAKilE,kBAAkBxX,gBAAe,GAAMlM,cAAa,GACnGvhD,EAAAmlE,eAAiB,IAAIjK,aACrBl7D,EAAAolE,eAAiB,IAAIlK,aAErBl7D,EAAAokE,cAAgB,IAAIjB,GAyGpBnjE,EAAAqlE,eAAoD,G,CAhF5D,CA+WJ,OA1b2BlrE,EAAA4pE,EAAAhkE,GAyDhBgkE,EAAAtpE,OAAP,SAAcY,EAAgBoK,EAAoC4F,EAAkBJ,GAChF,OAAO,IAAI1O,QAAQ,SAACC,EAASC,GACzB,IAAM6oE,GAAQ,IAAIvB,GACb1oE,OAAOA,GACP4lD,OAAO,SAAC76C,GACDX,EACAW,EAAEw0D,UAAUn1D,EAAK4F,EAASJ,GAAM/N,KAAK,WACjCV,EAAQ8oE,EACZ,GAEA9oE,EAAQ8oE,EAEhB,EACR,EACJ,EAMAvB,EAAA/pE,UAAA+R,iBAAA,WACI,OAAOxR,KAAKypE,iBAChB,EAEAD,EAAA/pE,UAAA41C,MAAA,eAAA5vC,EAAAzF,KAMI,OALAA,KAAKqqE,eAAe/V,aAAat0D,KAAK4qE,gBACtC5qE,KAAKqqE,eAAe/V,aAAat0D,KAAK6qE,gBACtC7qE,KAAKypE,kBAAkBp0B,QACvBr1C,KAAKgqE,cAAc30B,QACnBr1C,KAAK4pE,MAAM5pE,KAAK2pE,mBAAehgE,GACxB3J,KAAKgrE,gBAAgBroE,KAAK,WAC7B,OAAO8C,EAAKgkE,kBAAkB55D,SAClC,GAAGlN,KAAK,SAAAgO,GAER,EACJ,EAEA64D,EAAA/pE,UAAA4/D,KAAA,WACI,OAAOr/D,KAAK2pE,cAActK,MAC9B,EAEAmK,EAAA/pE,UAAA6/D,QAAA,SAAQF,GAAR,IAAA35D,EAAAzF,KAEI,OADAA,KAAK0pE,UAAUuB,OAAOjrE,KAAK2pE,eACpB3pE,KAAKq1C,QAAQ1yC,KAAK,WAIrB,OAHA8C,EAAKkkE,cAAcrK,QAAQF,GAC3B35D,EAAKqkE,cAAcpjB,SACnBjhD,EAAKskE,gBAAgBrjB,SACdjhD,EAAKkkE,cAAcjc,gBAAgB/qD,KAAK,WAC3C,IAAM6tD,EAAW/qD,EAAKgkE,kBAAkBjZ,WAIxC,OAHIA,EAAS9vD,QACT+E,EAAKkkE,cAAc/V,SAASpD,EAAS,IAElC/qD,EAAKgkE,kBAAkB55D,SAClC,GAAGlN,KAAK,WAEJ,IADA,IAAIuoE,GAAW,EACK7kE,EAAA,EAAA+C,EAAA3D,EAAKgkE,kBAAkB1iE,WAAvBV,EAAA+C,EAAA1I,OAAA2F,IAAmC,CAAlD,IAAMimB,EAAKljB,EAAA/C,GACZ6kE,GAAW,EACX3nC,GAAOq2B,QAAQttC,EAAMsjC,UAAY,KAAOtjC,EAAMpjB,OAAS,OAASojB,EAAMnY,IAC1E,CACI+2D,GAEAzlE,EAAKkkE,cAAcjc,eAE3B,EACJ,EACJ,EAEA8b,EAAA/pE,UAAA4gE,UAAA,SAAUn1D,EAAmC4F,EAAkBJ,EAAeuW,QAAA,IAAAA,MAAA,IAC1E,IAAM/J,EAAoBi+B,GAAajwC,GAAOA,EAAM8b,GAAQ9b,EAAK4F,EAASJ,GAAM,EAAMuW,GAChFje,EAAShJ,KAAKs/D,QAAQpiD,GAc5B,OAbIi+B,GAAajwC,IACblL,KAAK6qE,eAAezL,KAAKliD,GACzBld,KAAKqqE,eACA9V,UAAUv0D,KAAK6qE,eAAgB,aAGpC7qE,KAAK4qE,eAAexL,KAAKl0D,GACzBlL,KAAK6qE,eAAezL,KAAKliD,GACzBld,KAAKqqE,eACA9V,UAAUv0D,KAAK4qE,eAAgB,MAC/BrW,UAAUv0D,KAAK6qE,eAAgB,aAGjC7hE,CACX,EAEAwgE,EAAA/pE,UAAA0rE,UAAA,WACI,IAAIniE,EAAShJ,KAAK0pE,UAAUuB,SAI5B,OAHIjiE,IAAWhJ,KAAKqqE,iBAChBrhE,EAAShJ,KAAKqqE,eAAeY,UAE1BjiE,CACX,EAEAwgE,EAAA/pE,UAAA2rE,UAAA,WACI,OAAOprE,KAAK6pE,aAChB,EAIQL,EAAA/pE,UAAA4rE,eAAR,WACI,IAAM3c,EAAgB1uD,KAAK4pE,QAC3B,OAAOlb,aAAyBK,GAAUL,OAAgB/kD,CAC9D,EAIQ6/D,EAAA/pE,UAAAmqE,MAAR,SAAc1gE,EAAiBm4B,GAC3B,OAAK5gC,UAAUC,QACXV,KAAK8qE,eAAe5hE,EAAO/D,QAAUk8B,IACrCrhC,KAAK8qE,eAAe5hE,EAAO/D,MAAQk8B,EACnCrhC,KAAKsrE,gBAEFtrE,MALuBA,KAAK8qE,eAAe9qE,KAAKmrE,YAAYhmE,KAMvE,EAEAqkE,EAAA/pE,UAAA6rE,aAAA,WACItrE,KAAK6pE,cAAcT,cAAcppE,KAAK4pE,QAC1C,EAEAJ,EAAA/pE,UAAA8rE,cAAA,WACI,OAAIvrE,KAAKmrE,cAAgBnrE,KAAK8pE,cACnB9pE,KAAK8pE,cAAcpc,gBAEvB1rD,QAAQC,aAAQ0H,EAC3B,EAEA6/D,EAAA/pE,UAAA+rE,gBAAA,WACI,OAAIxrE,KAAKmrE,cAAgBnrE,KAAK+pE,gBACnB/pE,KAAK+pE,gBAAgBrc,gBAEzB1rD,QAAQC,aAAQ0H,EAC3B,EAEA6/D,EAAA/pE,UAAAurE,cAAA,WACI,OAAIhrE,KAAKmrE,cAAgBnrE,KAAK2pE,eAC1B3pE,KAAKypE,kBAAkB1iE,WAChB/G,KAAK2pE,cAAcjc,iBAEvB1rD,QAAQC,aAAQ0H,EAC3B,EAEA6/D,EAAA/pE,UAAAgsE,UAAA,WACIzrE,KAAKiqE,aACAjkE,KAAI7F,EAAA,GAAMH,KAAKgqE,cAAc/G,gBAAiB,GAE/CjjE,KAAKmrE,cAAgBnrE,KAAKiqE,cAC1BjqE,KAAKiqE,aACArL,YAGb,EAEA4K,EAAA/pE,UAAAisE,QAAA,WACI1rE,KAAKsqE,mBACAp/D,IAAIlL,KAAK2pE,cAAcz+D,OAExBlL,KAAKmrE,cAAgBnrE,KAAKsqE,oBAC1BtqE,KAAKsqE,mBACA1L,YAGb,EAEA4K,EAAA/pE,UAAAksE,eAAA,WACI3rE,KAAKwqE,kBACAlK,WAAWtgE,KAAK2pE,cAAcrJ,cAE/BtgE,KAAKmrE,cAAgBnrE,KAAKwqE,mBAC1BxqE,KAAKwqE,kBACA5L,YAGb,EAEA4K,EAAA/pE,UAAAmsE,UAAA,eAAAnmE,EAAAzF,KACUo/D,EAAOp/D,KAAKq/D,OAClBr/D,KAAK0qE,iBAAiBr1B,QACtBr1C,KAAK2qE,eAAejd,gBAAgB/qD,KAAK,WACrC8C,EAAKklE,eAAerL,QAAQF,GAC5B35D,EAAKklE,eAAejd,gBAAgB/qD,KAAK,WACrC,OAAO8C,EAAKilE,iBAAiB76D,SACjC,GAAGlN,KAAK,WACJ,IAAoB,IAAA0D,EAAA,EAAA+C,EAAA3D,EAAKilE,iBAAiB3jE,WAAtBV,EAAA+C,EAAA1I,OAAA2F,IAAkC,CAAjD,IAAMimB,EAAKljB,EAAA/C,GACZk9B,GAAOq2B,QAAQttC,EAAMsjC,UAAY,KAAOtjC,EAAMpjB,OAAS,OAASojB,EAAMnY,IAC1E,CACJ,EACJ,EACJ,EAEAq1D,EAAA/pE,UAAAolE,SAAA,eAAAp/D,EAAAzF,KACU8kE,EAAW,IAAIC,kBAGrBD,EAASE,WAAW,WAAY,CAC5B/hE,MAAO,WACPgiE,QAAS,WACL,IAAMlG,EAAU,IAAIhQ,GAAQtpD,EAAKgkE,mBACjChkE,EAAKgkE,kBAAkBhZ,OAAOsO,GAC9Bt5D,EAAKulE,gBAAgBroE,KAAK,WACtBo8D,EAAQlvD,UAAUlN,KAAK,WACnB8C,EAAKkkE,cAAc/V,SAASmL,EAChC,EACJ,EACJ,IAGJ+F,EAASE,WAAW,aAAc,CAC9B/hE,MAAO,QACPgiE,QAAS,WACLx/D,EAAK4vC,OACT,IAGJyvB,EAASE,WAAW,YAAa,CAC7B/hE,MAAO,OACPgiE,QAAS,WACL,IAAM/rD,EAAOvU,KAAKL,UAAUmB,EAAK45D,OAAQ,KAAM,MAC/C3b,UAAQmoB,eAAe,OAAQ3yD,EAAM,QACzC,IAGJ4rD,EAASE,WAAW,YAAa,CAC7B/hE,MAAO,OACPgiE,QAAS,WACLx/D,EAAKqmE,UAAUC,SAAS,SAAU,gBAClCtmE,EAAKqmE,UAAUxpC,OAAOgpB,OAC1B,IAIJ,IAAM0gB,EAAU,IAAIC,iBAAe,CAAEnH,SAAQA,IAC7CkH,EAAQ7G,QAAQ,CAAEC,QAAS,cAAe8G,SAAU,aACpDF,EAAQ7G,QAAQ,CAAEC,QAAS,UAAW8G,SAAU,aAChDF,EAAQ7G,QAAQ,CAAEC,QAAS,SAAU8G,SAAU,aAC/CF,EAAQ7mE,GAAK,UAEb,IAAMgnE,EAAc,IAAIjH,cAAY,CAAEJ,SAAQA,IAE9CqH,EAAYhH,QAAQ,CAAEC,QAAS,WAAYC,SAAU,IAAAhhE,OAAIrE,KAAK2pE,cAAcxkE,QAC5EgnE,EAAYhH,QAAQ,CAAEC,QAAS,aAAcC,SAAU,IAAAhhE,OAAIrE,KAAK2pE,cAAcxkE,QAC9EgnE,EAAYhH,QAAQ,CAAEpgE,KAAM,YAAasgE,SAAU,IAAAhhE,OAAIrE,KAAK2pE,cAAcxkE,QAE1EgnE,EAAYhH,QAAQ,CAAEC,QAAS,YAAaC,SAAU,IAAAhhE,OAAIrE,KAAKmF,QAC/DgnE,EAAYhH,QAAQ,CAAEC,QAAS,YAAaC,SAAU,IAAAhhE,OAAIrE,KAAKmF,QAE/D44D,SAASqO,iBAAiB,cAAe,SAACC,GAClCF,EAAYpI,KAAKsI,IACjBA,EAAMC,gBAEd,EACJ,EAEA9C,EAAA/pE,UAAAqgE,YAAA,SAAY78D,EAAekK,EAAiBD,GAA5C,IAAAzH,EAAAzF,KACUuZ,GAAW,IAAIvM,GAAW7H,GAAGlC,GAAOiK,OAAOA,GAAQC,QAAQA,GACjEnN,KAAKypE,kBAAkBnZ,iBAAiB/2C,GACxC,IAAMwlD,EAAU,IAAIhQ,GAAQ/uD,KAAKypE,mBAC3B7wD,EAAKmmD,EAAQ7pD,gBAAgB3K,aAC/BqO,aAAcF,IACdE,EAAGzO,aAAaoP,EAASpU,MAE7BnF,KAAKypE,kBAAkBhZ,OAAOsO,GAC9B/+D,KAAKgrE,gBAAgBroE,KAAK,WACtBo8D,EAAQlvD,UAAUlN,KAAK,WACnB8C,EAAKkkE,cAAc/V,SAASmL,EAChC,EACJ,EACJ,EAEAyK,EAAA/pE,UAAA+W,MAAA,SAAMowC,EAAS3xC,GAAf,IAAAxP,EAAAzF,KACIwF,EAAA/F,UAAM+W,MAAK7W,KAAAK,KAAC4mD,EAAS3xC,GACrBjV,KACKu0D,UAAUv0D,KAAK0pE,WACfnV,UAAUv0D,KAAK6pE,eAEpB7pE,KAAK0pE,UACAnV,UAAUv0D,KAAK2pE,cAAe,aAC9BpV,UAAUv0D,KAAK8pE,cAAe,aAC9BvV,UAAUv0D,KAAK+pE,gBAAiB,eAChCxV,UAAUv0D,KAAKiqE,aAAc,YAC7B1V,UAAUv0D,KAAKqqE,eAAgB,SAC/B3iB,GAAG,kBAAmB,SAAC77C,GACpB,OAAQA,GACJ,KAAKpG,EAAKqkE,cAGV,KAAKrkE,EAAKskE,gBAGV,KAAKtkE,EAAKkkE,cACNlkE,EAAK6lE,eACL,MACJ,KAAK7lE,EAAKwkE,aACNxkE,EAAK6lE,eACL7lE,EAAKgmE,YACL,MACJ,KAAKhmE,EAAK4kE,eACN5kE,EAAK4kE,eAAe7V,gBAAgB/uD,EAAK4kE,eAAeY,UAGpE,GAEJjrE,KAAKqqE,eACA9V,UAAUv0D,KAAKsqE,mBAAoB,MACnC/V,UAAUv0D,KAAKuqE,mBAAoB,UACnChW,UAAUv0D,KAAKwqE,kBAAmB,MAClCjW,UAAUv0D,KAAK2qE,eAAgB,SAC/BjjB,GAAG,kBAAmB,SAAC77C,GACpB,OAAQA,GACJ,KAAKpG,EAAK6kE,mBACN7kE,EAAK6lE,eACL7lE,EAAKimE,UACL,MACJ,KAAKjmE,EAAK+kE,kBACN/kE,EAAK6lE,eACL7lE,EAAKkmE,iBACL,MACJ,KAAKlmE,EAAKklE,eACNllE,EAAKmmE,YAGjB,GAGJ5rE,KAAK6kE,WACL7kE,KAAK6pE,cAAcniB,GAAG,cAAe,SAACviD,EAAYqf,EAAemiD,EAAez9D,GAC5E,IAAMqjE,EAAc9mE,EAAK4lE,iBAQzB,OAPIkB,EACAA,EAAY18D,UAAUlN,KAAK,WACvB8C,EAAKokE,cAAcR,gBACvB,GAEA5jE,EAAKokE,cAAcR,iBAEf5jE,EAAK0lE,aACT,KAAK1lE,EAAKkkE,cACNlkE,EAAKulE,gBACL,MACJ,KAAKvlE,EAAKskE,gBACNtkE,EAAKgkE,kBAAkB55D,UACvB,MACJ,KAAKpK,EAAKwkE,aACNxkE,EAAKgmE,YACL,MACJ,KAAKhmE,EAAK6kE,mBACN7kE,EAAKimE,UACL,MACJ,KAAKjmE,EAAKklE,eACNllE,EAAKmmE,YAGjB,GAEA,IAAMY,EAAUxsE,KAChBA,KAAK8rE,UAAY72D,EAAQw7C,OAAO,SAC3Bgc,KAAK,OAAQ,QACbV,SAAS,SAAU,gBACnBjlB,MAAM,UAAW,QACjBY,GAAG,SAAU,WAGV,IAFA,IAAInnD,EAAI,EACJuC,EAAI9C,KAAK0sE,MAAMnsE,GACZuC,GAAG,CACN,IAAM6pE,EAAS,IAAIC,WACnBD,EAAOE,OAAS,WACZ,OAAO,SAAUtqE,GACb,IACI,IAAME,EAASlD,MAAMiF,QAAQjC,EAAEzB,OAAO2B,QAAUF,EAAEzB,OAAO2B,OAAO,GAAKF,EAAEzB,OAAO2B,OACxE28D,EAAOz6D,KAAK6I,MAAM/K,GACxB+pE,EAAQnM,UAAUjB,EACtB,CAAE,MAAO0N,GACLC,MAAM,kCAAoCD,EAC9C,CACJ,CACH,CAVe,GAWhBH,EAAOK,WAAWlqE,GAClBA,EAAI9C,KAAK0sE,QAAQnsE,GACjB,KACJ,CACJ,EAER,EAEAipE,EAAA/pE,UAAA2I,OAAA,SAAOw+C,EAAS3xC,GACZzP,EAAA/F,UAAM2I,OAAMzI,KAAAK,KAAC4mD,EAAS3xC,EAC1B,EApYArU,EAAA,CADCytD,eAAa,iB,2BAC6Bmb,EAAA/pE,UAAA,4BAqY/C+pE,C,CA1bA,CAA2BvI,cA2b3BuI,GAAM/pE,UAAUgJ,QAAU,mB,28BRtepB,SAAUszD,EAAYC,GAExB,IADA,IAAMhzD,EAAiC,GACpB3C,EAAA,EAAA+C,EAAA4yD,EAAGE,sBAAH71D,EAAA+C,EAAA1I,OAAA2F,IAA0B,CAAxC,IAAMgsC,EAAIjpC,EAAA/C,GACX,GAAI21D,EAAG3pB,EAAKltC,GAAK,gBAA8B,WAAZktC,EAAKltC,GAAiB,CACrD,IAAM4X,EAAMi/C,EAAG3pB,EAAKltC,MACpB,GACS,kBADDktC,EAAKttC,KACT,CACI,IAAMkoE,EAAgBlwD,EAAItY,IAAIs3D,GAC1BkR,IACAjkE,EAAOqpC,EAAKltC,IAAM8nE,EAEtB,MAEAjkE,EAAOqpC,EAAKltC,IAAM4X,CAE9B,CACJ,CACA,OAAO/T,CACX,E,uHvFiBM,SAAgC/D,GAClC,OAAOA,CACX,C","ignoreList":[]}
|