@bitblit/ratchet-common 4.0.229-alpha → 4.0.232-alpha
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/lib/index.mjs +1 -1
- package/lib/index.mjs.map +1 -1
- package/package.json +3 -1
package/lib/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t from"util";import e from"jsonwebtoken";import{DateTime as r}from"luxon";import{$enum as n}from"ts-enum-util";import s from"url";import o from"cross-fetch";var i,a,l,c,u;!function(t){t.error="error",t.warn="warn",t.info="info",t.verbose="verbose",t.debug="debug",t.silly="silly"}(i||(i={}));class g{_lastLogMessage={messageSource:"No message yet",timestamp:(new Date).getTime(),lvl:i.info};_buffer=[];_bufferIdx=0;_lastSnapshotIdx=0;_bufferSize;constructor(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t}get currentIndex(){return this._bufferIdx}get lastSnapshotIdx(){return this._lastSnapshotIdx}set bufferSize(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t,this.clearRingBuffer()}getMessages(t=null,e=!1,r=!1){let n=null;if(this._bufferIdx<this._bufferSize){const e=null==t?0:t;n=this._buffer.slice(e,this._bufferIdx)}else{n=[];const e=this._bufferIdx-this._bufferSize;for(let r=t?Math.max(t,e):e;r<this._bufferIdx;r++)n.push(this._buffer[r%this._bufferSize])}return e&&this.clearRingBuffer(),r&&(n=n.reverse()),n}takeSnapshot(){const t=Math.max(0,this._bufferIdx-this._bufferSize),e={messages:this.getMessages(this._lastSnapshotIdx),logMessagesTruncated:Math.max(0,t-this._lastSnapshotIdx)};return this._lastSnapshotIdx=this._bufferIdx,e}getLastLogMessage(){return Object.assign({},this._lastLogMessage)}clearRingBuffer(){this._buffer=[],this._bufferIdx=0,this._lastSnapshotIdx=0}addToRingBuffer(t){this._lastLogMessage=t,this._buffer[this._bufferIdx%this._bufferSize]=t,this._bufferIdx++}}!function(t){t.Console="Console",t.ConsoleNoDebug="ConsoleNoDebug",t.StdOut="StdOut"}(a||(a={}));class h{static LOG_LEVELS_IN_ORDER=[i.error,i.warn,i.info,i.verbose,i.debug,i.silly];static handlerFunctionMap(t=a.Console){const e=new Map;if(t===a.StdOut){if(!process?.stdout?.write)throw new Error("Cannot use standard out - process.stdout.write not found");const t=(t,e)=>process.stdout.write(t,"utf-8",e);e.set(i.error,t),e.set(i.warn,t),e.set(i.info,t),e.set(i.verbose,t),e.set(i.debug,t),e.set(i.silly,t)}else e.set(i.error,console.error),e.set(i.warn,console.warn),e.set(i.info,console.info),e.set(i.verbose,t===a.ConsoleNoDebug?console.log:console.debug),e.set(i.debug,t===a.ConsoleNoDebug?console.log:console.debug),e.set(i.silly,t===a.ConsoleNoDebug?console.log:console.debug);return e}static defaultHandlerFunction(){return console.info}static levelIsEnabled(t,e){const r=h.LOG_LEVELS_IN_ORDER.indexOf(t),n=h.LOG_LEVELS_IN_ORDER.indexOf(e);return r>-1&&n>-1&&n>=r}}!function(t){t.ClassicSingleLine="ClassicSingleLine",t.StructuredJson="StructuredJson",t.None="None"}(l||(l={}));class f{formatMessage(e,r){let n=null;return e&&(n="",n+=r.options.trace?r.options.trace+" ":"",n+="["+e.lvl+"] ",n+=t.format(e.messageSource,...e.subsVars)),n}}class d{formatMessage(t,e){return null}}class p{formatMessage(e,r){let n=null;if(e){const s=Object.assign({},r.options.globalVars||{},e.params||{});s.msg=t.format(e.messageSource,...e.subsVars),s.utcDateTime=new Date(e.timestamp).toISOString(),s.logLevel=e.lvl,r.options.trace&&(s.trace=r.options.trace),s.logName=r.loggerInstanceName,s.logId=r.loggerInstanceId,n=JSON.stringify(s)+"\n"}return n}}class m{static isNullOrUndefined(t){return null==t}static notNullOrUndefined(t,e="object"){if(m.isNullOrUndefined(t))throw new Error(e+" may not be null or undefined")}static notNullUndefinedOrOnlyWhitespaceString(t,e="string"){if(m.isNullOrUndefined(t)||""===t.trim())throw new Error(e+" may not be null or undefined or only whitespace string")}static notNullUndefinedOrEmptyArray(t,e="string"){if(m.isNullOrUndefined(t)||0===t.length)throw new Error(e+" may not be null or undefined or an empty array")}static equal(t,e,r="Values must be equal"){if(t!==e)throw new Error(r)}static true(t,e="Value must be true"){m.equal(t,!0,e)}static noNullOrUndefinedValuesInArray(t,e=null,r=null){if(m.notNullOrUndefined(t,"Source array may not be null"),null!==e&&t.length!==e)throw new Error(`Expected array of length ${e} but was ${t.length} ${r}`);for(let e=0;e<t.length;e++)if(m.isNullOrUndefined(t[e]))throw new Error(`Array index ${e} was null or undefined ${r}`)}static noNullOrUndefinedValuesInRestArgs(t,...e){if(m.notNullOrUndefined(e,"Source array may not be null"),null!==t&&e.length!==t)throw new Error(`Expected array of length ${t} but was ${e.length}`);for(let t=0;t<e.length;t++)if(m.isNullOrUndefined(e[t]))throw new Error(`Array index ${t} was null or undefined`)}static constructorArgumentsMatchLengthAndAreNonNull(){const t=Array.from(arguments),e=this.constructor.length;return m.noNullOrUndefinedValuesInArray(t,e)}}class y{static RFC_3986_RESERVED=["!","*","'","(",")",";",":","@","&","=","+","$",",","/","?","#","[","]","%"];static DIGITS="0123456789";static HEXITS=y.DIGITS+"ABCDEF";static UPPER_CASE_LATIN="ABCDEFGHIJKLMNOPQRSTUVWXYZ";static LOWER_CASE_LATIN="abcdefghijklmnopqrstuvwxyz";static CASE_INSENSITIVE_LATIN=y.UPPER_CASE_LATIN+y.LOWER_CASE_LATIN;static stringIsInGivenAlphabet(t,e){let r=!1;if(t&&e)for(let n=0;n<t.length&&!r;n++)r=e.includes(t.charAt(n));return r}static stringToUint8Array(t){return t?(new TextEncoder).encode(t):null}static uint8ArrayToString(t){return t?(new TextDecoder).decode(t):null}static attemptJsonParse(t){let e=null;if(y.trimToNull(t))try{e=JSON.parse(t)}catch(t){e=null}return e}static canParseAsJson(t){return!!y.attemptJsonParse(t)}static allUnique(t){let e=!0;if(t){const r=new Set;for(let n=0;n<t.length&&e;n++){const s=t.charAt(n);e=!r.has(s),r.add(s)}}return e}static allPermutationsOfLength(t,e){const r=[];if(t>0&&e&&e.length>0){m.true(y.allUnique(e),"Alphabet must be unique");const n=1===t?[""]:y.allPermutationsOfLength(t-1,e);for(let t=0;t<e.length;t++)n.forEach((n=>r.push(e.charAt(t)+n)))}return r}static createType4Guid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){const e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))}static createRandomHexString(t=10){let e="";for(let r=0;r<t;r++)e+=Math.floor(16*Math.random()).toString(16);return e}static canonicalize(t){let e=t?t.toLowerCase():"";return e=e.replace(" ","-"),y.RFC_3986_RESERVED.forEach((t=>{e=e.replace(t,"")})),e}static formatBytes(t,e=2){if(0==t)return"0 Bytes";const r=e||2,n=Math.floor(Math.log(t)/Math.log(1024));return parseFloat((t/Math.pow(1024,n)).toFixed(r))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][n]}static safeString(t){let e=null;if(null!=t){e="string"==typeof t?t:String(t)}return e}static stringContainsOnlyNumbers(t){return/^[0-9]+$/.test(t)}static stringContainsOnlyAlphanumeric(t){return/^[0-9a-zA-Z]+$/.test(t)}static stringContainsOnlyHex(t){return/^[0-9a-fA-F]+$/.test(t)}static stringContainsOnly(t,e){const r=t||"",n=e||"";let s=!0;for(let t=0;t<r.length&&s;t++)s=n.indexOf(r.charAt(t))>=0;return s}static obscure(t,e=2,r=2){if(!t)return t;const n=t.length;let s=e,o=r;for(;n>0&&n<s+o+1;)s=Math.max(0,s-1),o=Math.max(0,o-1);const i=n-(s+o);let a="";a+=t.substring(0,s);for(let t=0;t<i;t++)a+="*";return a+=t.substring(n-o),a}static leadingZeros(t,e){const r="00000000000000000000000000000000000000000000000000";let n=!1,s=String(t);if(s.startsWith("-")&&(n=!0,s=s.substring(1)),e>50)throw new Error("Cannot format number that large");let o=(r+s).slice(-1*e);return n&&(o="-"+o),o}static trimToEmpty(t){return(t?y.safeString(t):"").trim()}static trimToNull(t){const e=y.trimToEmpty(t);return e.length>0?e:null}static trimAllStringPropertiesToNullInPlace(t){return y.trimAllStringPropertiesInPlace(t,!1)}static trimAllStringPropertiesToEmptyInPlace(t){return y.trimAllStringPropertiesInPlace(t,!0)}static trimAllStringPropertiesInPlace(t,e){return Object.keys(t).forEach((r=>{const n=t[r];null!=n&&"string"==typeof n&&(t[r]=e?y.trimToEmpty(t[r]):y.trimToNull(t[r]))})),t}static stripNonNumeric(t){let e=t;if(null!=t&&!y.stringContainsOnlyNumbers(t)){e="";for(let r=0;r<t.length;r++){const n=t.charAt(r);(y.stringContainsOnlyNumbers(n)||0===r&&"-"===n)&&(e+=n)}}return e}static csvSafe(t){let e=y.trimToEmpty(y.safeString(t));return e.split('"').join('\\"'),-1===e.indexOf(",")&&-1===e.indexOf('"')&&-1===e.indexOf("'")||(e='"'+e+'"'),e}static stripNonAscii(t){return[...t].reduce(((t,e)=>e.charCodeAt(0)>127?t:t+e))}}class E{loggerInstanceName;_loggerMeta;_ringBuffer;_formatter;_level;_handlerFunctionMap;_options;constructor(t="default",e){this.loggerInstanceName=t,this.options=e}addPreProcessor(t){return t&&(this._options.preProcessors=this._options.preProcessors||[],this._options.preProcessors.push(t)),Object.assign([],this._options.preProcessors)}get ringBuffer(){return this._ringBuffer}dumpConfigurationIntoLog(){this.error("ERROR enabled"),this.warn("WARN enabled"),this.info("INFO enabled"),this.verbose("VERBOSE enabled"),this.debug("DEBUG enabled"),this.silly("SILLY enabled")}dumpOptionsIntoLog(){if(this.info("Options: %j",this.options),this?.options?.preProcessors?.length){const t=this.options.preProcessors.map((t=>y.trimToNull(t.label())||"Unlabelled"));this.info("Preprocessors: %j",t)}}changeRingBufferSize(t){this._ringBuffer=null,t&&(this._ringBuffer=new g(t),this._options.ringBufferSize=t)}updateTracePrefix(t){this._options.trace=t}get options(){return Object.assign({},this._options)}set options(t){switch(this._options=Object.assign({},t),this._options.ringBufferSize&&(this._ringBuffer=new g(this._options.ringBufferSize)),this._options.formatType){case l.None:this._formatter=new d;break;case l.StructuredJson:this._formatter=new p;break;default:this._formatter=new f}this._level=this._options.initialLevel,this._handlerFunctionMap=h.handlerFunctionMap(this._options.outputFunction);const e=this._loggerMeta?this._loggerMeta.loggerInstanceId:null;this._loggerMeta={options:this._options,loggerInstanceName:this.loggerInstanceName,loggerInstanceId:e||y.createRandomHexString(8)}}get level(){return this._level}set level(t){if(!t)throw new Error("Cannot set level to null/undefined");this._level=t}consoleLogPassThru(t,...e){if(h.levelIsEnabled(t,this._level)){let r=this._options.trace||"";r+="["+t+"] ",e.unshift(r);(this._handlerFunctionMap.get(t)||h.defaultHandlerFunction)(...e)}}createLogMessage(t,e,r,...n){return{lvl:t,timestamp:Date.now(),messageSource:r,subsVars:n,params:e}}formatMessage(t){return t?this._formatter.formatMessage(t,this._loggerMeta):null}formatMessages(t){return(t||[]).map((t=>this.formatMessage(t))).filter((t=>!!t))}recordMessageBuilder(t){return this.recordMessage(t.toMessage())}recordMessage(t){let e=null;if(h.levelIsEnabled(t.lvl,this._level)){let r=Object.assign({},t);if(this._options.preProcessors?.length)for(let t=0;t<this._options.preProcessors.length;t++)r=this._options.preProcessors[t].process(r);if(e=this.formatMessage(r),e){(this._handlerFunctionMap.get(r.lvl)||h.defaultHandlerFunction)(e),this._ringBuffer&&this._ringBuffer.addToRingBuffer(r)}}return e}error(t,...e){const r=this.createLogMessage(i.error,{},t,...e);return this.recordMessage(r)}errorP(...t){this.consoleLogPassThru(i.error,...t)}warn(t,...e){const r=this.createLogMessage(i.warn,{},t,...e);return this.recordMessage(r)}warnP(...t){this.consoleLogPassThru(i.warn,...t)}info(t,...e){const r=this.createLogMessage(i.info,{},t,...e);return this.recordMessage(r)}infoP(...t){this.consoleLogPassThru(i.info,...t)}verbose(t,...e){const r=this.createLogMessage(i.verbose,{},t,...e);return this.recordMessage(r)}verboseP(...t){this.consoleLogPassThru(i.verbose,...t)}debug(t,...e){const r=this.createLogMessage(i.debug,{},t,...e);return this.recordMessage(r)}debugP(...t){this.consoleLogPassThru(i.debug,...t)}silly(t,...e){const r=this.createLogMessage(i.silly,{},t,...e);return this.recordMessage(r)}sillyP(...t){this.consoleLogPassThru(i.silly,...t)}logByLevel(t,e,...r){const n=this.createLogMessage(t,{},e,...r);this.recordMessage(n)}importMessages(t,e="",r=!0){const n=e||"";t&&t.length>0&&(this.silly("Received import data : %d msgs",t.length),t.forEach((t=>{if(t.messageSource){let e=n;if(r){e+=" ("+String(new Date).substring(15,24)+") : ",e+=t.messageSource}this.logByLevel(t.lvl,e)}})))}}class w{static LOGGER_INSTANCES=new Map;static DEFAULT_OPTIONS={initialLevel:i.info,formatType:l.ClassicSingleLine,trace:null,globalVars:{},outputFunction:a.Console,ringBufferSize:0,preProcessors:[]};static applyDefaultsToOptions(t){const e=t||{};return e.initialLevel=e.initialLevel??w.DEFAULT_OPTIONS.initialLevel,e.formatType=e.formatType??w.DEFAULT_OPTIONS.formatType,e.trace=e.trace??w.DEFAULT_OPTIONS.trace,e.globalVars=e.globalVars??w.DEFAULT_OPTIONS.globalVars,e.outputFunction=e.outputFunction??w.DEFAULT_OPTIONS.outputFunction,e.ringBufferSize=e.ringBufferSize??w.DEFAULT_OPTIONS.ringBufferSize,e}static changeDefaultOptions(t,e){if(!t||!t.initialLevel||!t.formatType)throw new Error("Default options must be non-null, and provide initial level and format type");w.DEFAULT_OPTIONS=Object.assign({},t),e&&Array.from(w.LOGGER_INSTANCES.values()).forEach((e=>e.options=t))}static getLogger(t="default",e){let r=w.LOGGER_INSTANCES.get(t);if(!r){const n=w.applyDefaultsToOptions(e);r=new E(t,n),w.LOGGER_INSTANCES.set(t,r)}return r}static recordMessageBuilder(t){return w.getLogger().recordMessageBuilder(t)}static recordMessage(t){return w.getLogger().recordMessage(t)}static formatMessages(t){return w.getLogger().formatMessages(t)}static updateTracePrefix(t){return w.getLogger().updateTracePrefix(t)}static changeRingBufferSize(t){return w.getLogger().changeRingBufferSize(t)}static getRingBuffer(){return w.getLogger().ringBuffer}static dumpConfigurationIntoLog(){return w.getLogger().dumpConfigurationIntoLog()}static dumpOptionsIntoLog(){return w.getLogger().dumpOptionsIntoLog()}static getLevel(){return w.getLogger().level}static setLevel(t){w.getLogger().level=t}static getOptions(){return w.getLogger().options}static getMessages(t=null,e=!1,r=!1){const n=w.getLogger().ringBuffer;return n?n.getMessages(t,e,r):null}static consoleLogPassThru(t,...e){return w.getLogger().consoleLogPassThru(t,...e)}static error(t,...e){return w.getLogger().error(t,...e)}static errorP(...t){return w.getLogger().errorP(...t)}static warn(t,...e){return w.getLogger().warn(t,...e)}static warnP(...t){return w.getLogger().warnP(...t)}static info(t,...e){return w.getLogger().info(t,...e)}static infoP(...t){return w.getLogger().infoP(...t)}static verbose(t,...e){return w.getLogger().verbose(t,...e)}static verboseP(...t){return w.getLogger().verboseP(...t)}static debug(t,...e){return w.getLogger().debug(t,...e)}static debugP(...t){return w.getLogger().debugP(...t)}static silly(t,...e){return w.getLogger().silly(t,...e)}static sillyP(...t){return w.getLogger().sillyP(...t)}static takeSnapshot(){const t=w.getLogger().ringBuffer;return t?t.takeSnapshot():null}static logByLevel(t,e,...r){return w.getLogger().logByLevel(t,e,...r)}static importMessages(t,e="",r=!0){return w.getLogger().importMessages(t,e,r)}static getLastLogMessage(){const t=w.getLogger().ringBuffer;return t?t.getLastLogMessage():null}}class b{static MAX_LEADING_ZEROS_FORMAT_LENGTH=1e3;static toFixedDecimalNumber(t,e){const r=b.safeNumber(t);return null==r?r:b.safeNumber(r.toFixed(e))}static leadingZeros(t,e){const r=String(t);if(r.length<e){let t="0000";if(e>b.MAX_LEADING_ZEROS_FORMAT_LENGTH)throw"Cannot format number that large (max length is "+b.MAX_LEADING_ZEROS_FORMAT_LENGTH+")";for(;t.length<e;)t+=t;return(t+r).slice(-1*e)}return r}static between(t,e,r){const n=b.safeNumber(t),s=b.safeNumber(e),o=b.safeNumber(r);return n>=s&&n<=o||n>=o&&n<=s}static safeNumber(t,e=null,r){let n;if(null!=t){const r=typeof t;"number"==r?n=t:"string"==r?n=0===t.trim().length?e:Number.parseFloat(t):(w.warn("Value is of type %s, returning default",r),n=e),isNaN(n)&&(w.debug("Parsed string to NaN - using NaN value from param"),n=e)}else n=void 0===r?null:r?e:t;return n}static numberCSVToList(t){let e=null;return t&&(e=t.split(",").map((t=>b.safeNumber(t.trim()))),e=e.filter((t=>"number"==typeof t&&!isNaN(t)))),e}static fitToWindow(t,e,r){let n=t;if(null===t||null===e||null===r||e<0||r<0||t<0)throw new Error("All values must be non-null and larger than 0");const s=Math.min(e,r),o=Math.max(e,r),i=o-s;if(o===s)n=o;else{for(;n<s;)n+=i;for(;n>o;)n-=i}return n}static groupNumbersIntoContiguousRanges(t,e=3){m.notNullOrUndefined(t);const r=Object.assign([],t);r.sort(((t,e)=>t-e));const n=[],s=[];let o=0;for(let t=1;t<r.length;t++)if(r[t]===r[t-1]+1);else{if(o===t-1)n.push(r[t-1]);else{if(t-o<e)for(let e=o;e<t;e++)n.push(r[e]);else s.push({min:r[o],max:r[t-1]})}o=t}return{singles:n,ranges:s}}static distributeItemsEvenly(t,e){m.notNullOrUndefined(t,"items"),m.notNullOrUndefined(e,"buckets"),m.true(t>0&&t===Math.floor(t),"Items integer larger than 0"),m.true(e>0&&e===Math.floor(e),"Buckets integer larger than 0");const r=e/t,n=[];for(let t=0;t<e;t++)n.push(0);let s=0,o=t;for(;o>0;)n[Math.floor(s)%e]++,o--,s+=r;return n}static createRange(t,e,r=1){const n=[];let s=t;for(;s<e;)n.push(s),s+=r;return n}}class L{static allTrue(t,e=!1){let r=null;return r=!!t&&(t.length>0?t.reduce(((t,e)=>t&&e),!0):e),r}static anyTrue(t,e=!1){let r=null;return r=!!t&&(t.length>0?t.reduce(((t,e)=>t||e),!1):e),r}static parseBool(t){return!0===t||null!=t&&"string"==typeof t&&"true"===t.toLowerCase()}static intToBool(t){return null!=t&&0!==b.safeNumber(t)}static boolToInt(t){return L.parseBool(t)?1:0}}class T{constructor(){}static translateToOriginVector(t){let e=null;return T.validPoints(t)&&(e={x:null,y:null},t.forEach((t=>{e.x=null===e.x||t.x<e.x?t.x:e.x,e.y=null===e.y||t.y<e.y?t.y:e.y})),e.x*=-1,e.y*=-1),e}static minimalContainingPlane(t){let e=null;return T.validPoints(t)&&(e={width:0,height:0},t.forEach((t=>{e.width=Math.max(e.width,t.x+1),e.height=Math.max(e.height,t.y+1)}))),e}static scaleVector(t,e){let r=null;return T.validPlane(t)&&T.validPlane(e)&&(r={x:e.width/t.width,y:e.height/t.height}),r}static samePoint(t,e){return!!t&&!!e&&t.x===e.x&&t.y===e.y}static atLeastOneDimensionShared(t,e){return!(!t||!e||t.x!==e.x&&t.y!==e.y)}static validPlane(t){return!!t&&!!t.height&&!!t.width}static validLine(t){return!!t&&T.validPoint(t.p1)&&T.validPoint(t.p2)&&!T.samePoint(t.p1,t.p2)}static validLines(t){return!!t&&L.allTrue(t.map((t=>T.validLine(t))))}static validPolyLine(t){return!!t&&t.pts?.length>1&&L.allTrue(t.pts.map((t=>T.validPoint(t))))}static polyLineToLines(t){let e=null;if(T.validPolyLine(t)){e=[];for(let r=1;r<t.pts.length;r++)e.push({p1:t.pts[r-1],p2:t.pts[r]})}return e}static lastPointOnPolyLine(t){return T.validPolyLine(t)?t.pts[t.pts.length-1]:null}static lineToPolyLine(t){return T.validLine(t)?{pts:[t.p1,t.p2]}:null}static linesToPolyLines(t){let e=null;if(T.validLines(t)){e=[];let r=T.lineToPolyLine(t[0]);for(let n=1;n<t.length;n++)T.samePoint(T.lastPointOnPolyLine(r),t[n].p1)?r.pts.push(t[n].p2):(e.push(r),r=T.lineToPolyLine(t[n]));e.push(r)}return e}static validPoint(t){return!!t&&null!=t.x&&null!=t.x&&null!==t.y&&void 0!==t.y}static validPoints(t){return!!t&&L.allTrue(t.map((t=>T.validPoint(t))),!1)}static planeContainsPoint(t,e){return T.validPlane(e)&&T.validPoint(t)&&t.x>=0&&t.x<e.width&&t.y>=0&&t.y<e.height}static planeContainsPoints(t,e){return t&&t.map((t=>T.planeContainsPoint(t,e))).reduce(((t,e)=>t&&e),!0)}static linesToPoints(t){let e=null;return T.validLines(t)&&(e=t.map((t=>[t.p1,t.p2])).flat()),e}static pointsToLines(t){let e=null;if(T.validPoints(t)){if(t.length%2!=0)throw new Error("Cannot convert non-even array of points into lines");e=[];for(let r=0;r<t.length;r+=2)e.push({p1:t[r],p2:t[r+1]})}return e}static rotateRightAboutOrigin90Degrees(t,e=1){let r=null,n={x:0,y:0};if(T.validPoints(t)){r=Object.assign([],t),n=T.translateToOriginVector(r),r=T.translate(r,n);let e=T.minimalContainingPlane(r);r=T.xToY(r),e={width:e.height,height:e.width},n={x:-1*n.y,y:-1*n.x},r=T.mirrorPointsOnPlane(r,e,!0,!1),r=T.translate(r,n)}const s=e>4?e%4:e;return s>1&&(r=T.rotateRightAboutOrigin90Degrees(r,s-1)),r}static planeContainsLines(t,e){return t&&T.planeContainsPoints(t.map((t=>[t.p1,t.p2])).flat(),e)}static planeContainsPolyLine(t,e){return T.planeContainsLines(T.polyLineToLines(t),e)}static planeContainsLine(t,e){return T.validPlane(e)&&T.validLine(t)&&T.planeContainsPoint(t.p1,e)&&T.planeContainsPoint(t.p2,e)}static xToY(t){let e=null;return T.validPoints(t)&&(e=t.map((t=>({x:t.y,y:t.x})))),e}static translate(t,e){let r=null;return T.validPoints(t)&&T.validPoint(e)&&(r=t.map((t=>({x:t.x+e.x,y:t.y+e.y})))),r}static mirrorPointsOnPlane(t,e,r,n){let s=null;return T.validPoints(t)&&T.validPlane(e)&&(s=r||n?t.map((t=>({x:r?e.width-1-t.x:t.x,y:n?e.height-1-t.y:t.y}))):Object.assign([],t)),s}static transformPointsToNewPlane(t,e,r){let n=null;if(T.validPoints(t)&&T.validPlane(e)&&T.validPlane(r)){const s=T.scaleVector(e,r);n=t.map((t=>({x:t.x*s.x,y:t.y*s.y}))),n=T.mirrorPointsOnPlane(n,r,r.rightToLeft!==e.rightToLeft,r.topToBottom!==e.topToBottom)}return n}static transformPointToNewPlane(t,e,r){const n=T.transformPointsToNewPlane([t],e,r);return 1===n.length?n[0]:null}static transformLines(t,e,r){return null}static fitCurve(t,e){if(t.sort(((t,e)=>t.x-e.x)),e<=t[0].x)return t[0].y;if(e>=t[t.length-1].x)return t[t.length-1].y;{let r=0;for(;t[r+1].x<e;)r++;const n=t[r+1].x-t[r].x,s=t[r+1].y-t[r].y,o=(e-t[r].x)/n*s;return t[r].y+o}}}class S{constructor(){}static buildInformation(){return{version:"229",hash:"67a18925c1017214a7cc68cadc46883143585fa5",branch:"alpha-2023-09-25-3",tag:"alpha-2023-09-25-3",timeBuiltISO:"2023-09-25T13:09:38-0700",notes:"No notes"}}}class _{entries=[];update(t,e=1){if(t){const r=this.entries.find((e=>e.item===t));r?r.count+=e:this.entries.push({item:t,count:e})}}sort(){this.entries.sort(((t,e)=>{let r=e.count-t.count;return 0===r&&(r=String(e.item).localeCompare(String(t.item))),r}))}sortKeys(){this.entries.sort(((t,e)=>String(e.item).localeCompare(String(t.item))))}reverse(){this.entries.reverse()}getEntries(){return this.entries}getTotalCount(){let t=0;return this.entries.forEach((e=>t+=e.count)),t}countForValue(t){const e=this.entries.find((e=>e.item===t));return e?e.count:0}percentForValue(t){const e=this.getTotalCount();return 0===e?0:this.countForValue(t)/e}}!function(t){t[t.RETURN_NULL=0]="RETURN_NULL",t[t.THROW_EXCEPTION=1]="THROW_EXCEPTION",t[t.ADD_FLAG=2]="ADD_FLAG"}(c||(c={}));class O{static formatMsDuration(t,e=!1){const r=Math.floor(t%1e3),n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,o=Math.floor(t/36e5)%24,i=Math.floor(t/864e5),a=b.leadingZeros;let l=a(o,2)+"h"+a(s,2)+"m";return l+=e?a(n,2)+"."+a(r,3)+"s":a(n,2)+"s",i>0&&(l=i+"d"+l),l}static colonFormatMsDuration(t,e=!1){const r=t%1e3,n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,o=Math.floor(t/36e5),i=b.leadingZeros;let a=i(o,2)+":"+i(s,2)+":";return a+=e?i(n,2)+"."+i(r,3):i(n,2),a}static daysBetween(t,e){return r.fromJSDate(t).diff(r.fromJSDate(e)).days}static createSteps(t,e,n,s,o){let i=r.fromMillis(t).setZone(n);const a=r.fromMillis(e),l=[];for(;i<a;)l.push(i.toFormat(s)),i=i.plus(o);return l}}class M{_encryptionKeyPromise;_decryptKeysPromise;_jtiGenerator;_decryptOnlyKeyUseLogLevel;_parseFailureLogLevel;static EXPIRED_FLAG_NAME="__jwtServiceExpiredFlag";constructor(t,e,r=y.createType4Guid,n=i.info,s=i.debug){this._encryptionKeyPromise=t,this._decryptKeysPromise=e,this._jtiGenerator=r,this._decryptOnlyKeyUseLogLevel=n,this._parseFailureLogLevel=s,m.notNullOrUndefined(t,"encryptionKeyPromise")}get encryptionKeyPromise(){return this._encryptionKeyPromise}get decryptKeysPromise(){return this._decryptKeysPromise}get jtiGenerator(){return this._jtiGenerator}get decryptOnlyKeyUseLogLevel(){return this._decryptOnlyKeyUseLogLevel}get parseFailureLogLevel(){return this._parseFailureLogLevel}static hasExpiredFlag(t){return t&&!0===t[M.EXPIRED_FLAG_NAME]}static async invalidSafeDecode(t,r,n=i.silly){let s=null;try{s=e.verify(t,r,{ignoreExpiration:!0})}catch(t){w.logByLevel(n,"Caught %s - ignoring",t)}return s}static async secondsRemainingUntilExpiration(t){let e=null;if(y.trimToNull(t)){const r=await M.decodeTokenNoVerify(t),n=Math.floor(Date.now()/1e3);if(r.exp){const t=r.exp>100*n?Math.floor(r.exp/1e3):r.exp;e=Math.max(0,t-n)}}return e}static async msRemainingUntilExpiration(t){const e=await M.secondsRemainingUntilExpiration(t);let r=null;return null!=e&&(r=1e3*e),r}async decodeToken(t,e=c.RETURN_NULL){const r=await this.encryptionKeyArray();let n=Object.assign([],r);this.decryptKeysPromise&&(n=n.concat(await this.decryptKeysPromise));const s=[];let o=null;for(let e=0;e<n.length&&!o;e++){s.push(y.obscure(n[e],1,1));const a=e===n.length-1&&this.parseFailureLogLevel?this.parseFailureLogLevel:i.silly;o=await M.invalidSafeDecode(t,n[e],a),o&&e>=r.length&&w.logByLevel(this.decryptOnlyKeyUseLogLevel,"Used old key to decode token : %s",y.obscure(n[e],2))}if(o){const t=Math.floor(Date.now()/1e3),r=o?.exp&&o.exp>100*t?Math.floor(o.exp/1e3):o?.exp,n=o?.nbf&&o.nbf>100*t?Math.floor(o.nbf/1e3):o?.nbf;if(r&&t>=r||n&&t<=n){const n=t-r;switch(w.debug("JWT token expired or before NBF : on %d, %s ago",o.exp,O.formatMsDuration(1e3*n)),e){case c.THROW_EXCEPTION:throw new Error("JWT Token was expired");case c.ADD_FLAG:o[M.EXPIRED_FLAG_NAME]=!0;break;default:o=null}}}else w.warn("Unable to parse a payload (Tried %j) from : %s",s,t);return o}async encryptionKeyArray(){const t=await this.encryptionKeyPromise,e=Array.isArray(t)?t:[t];if(e.length<1)throw new Error("Cannot create JwtRatchet with empty encryption key set");return e}async selectRandomEncryptionKey(){const t=await this.encryptionKeyArray();return t[Math.floor(Math.random()*t.length)]}async createTokenString(t,r,n){const s=y.trimToNull(n)?y.trimToNull(n):await this.selectRandomEncryptionKey();if(m.notNullOrUndefined(t,"payload"),t.jti=this.jtiGenerator?this.jtiGenerator():null,r){const e=Math.floor(Date.now()/1e3)+r;w.debug("Forcing expiration to %d",e),t.exp=e}return e.sign(t,s)}async refreshJWTString(t,e,r){const n=e?c.ADD_FLAG:c.THROW_EXCEPTION,s=await this.decodeToken(t,n),o=s.exp&&s.iat?s.exp-s.iat:null,i=r||o;M.removeJwtFields(s),M.removeExpiredFlag(s);return await this.createTokenString(s,i)}static decodeTokenNoVerify(t){return e.decode(t)}static removeJwtFields(t){t&&["iss","sub","aud","exp","nbf","iat","jti"].forEach((e=>{delete t[e]}))}static removeExpiredFlag(t){t&&delete t[M.EXPIRED_FLAG_NAME]}}class x{static safeStringifyErr(t,e=!0){let r="ERR WAS NULL";if(t)if(t.message)r=t.message;else try{r=JSON.stringify(t)}catch(e){w.error("Failed to json stringify"),r=String(t)}return e&&w.error("%s",r,t),r}static asErr(t){let e=null;return t&&(e=t instanceof Error?t:new Error("Force-Cast to error : "+String(t))),e}static fErr(e,...r){const n=t.format(e,...r);return new Error(n)}static throwFormattedErr(t,...e){throw x.fErr(t,...e)}}class N{static expandNestedKeysToObjects(t,e="."){if(!e||1!==e.length)throw new Error("Invalid separator (must be single character)");const r={};return Object.keys(t).forEach((n=>{const s=n.split(e);let o=r;for(;s.length>1;)o[s[0]]=o[s[0]]||{},o=o[s[0]],s.splice(0,1);o[s[0]]=t[n]})),r}static mapByUniqueProperty(t,e){if(!t||!e)throw new Error("Neither input nor propName can be null");const r=new Map;return t.forEach((t=>{const n=t?t[e]:null;if(null==n)throw new Error("No value for "+e+" found in "+JSON.stringify(t));if(r.has(n))throw new Error("Multiple values found for "+n);r.set(n,t)})),r}static groupByProperty(t,e){if(!t||!e)throw new Error("Neither input nor propName can be null");const r=new Map;return t.forEach((t=>{const n=t?t[e]:null;if(null==n)throw x.fErr("No value for %s found in %j",e,t);r.has(n)||r.set(n,[]),r.get(n).push(t)})),r}static findValue(t,e){return e&&0!=e.length?t?N.findValue(t[e[0]],e.slice(1)):null:t}static findValueDotPath(t,e){return e&&0!=e.length?t?N.findValue(t,e.split(".")):null:t}static simpleDeepCompare(t,e){return null==t&&null==e||null!=t&&null!=e&&JSON.stringify(t)==JSON.stringify(e)}static toKeyValueList(t){const e=[];for(const r of Object.keys(t))e.push({key:r,value:t[r]});return e}static fromKeyValueList(t){const e={};return t.forEach((t=>e[t.key]=t.value)),e}static cleanup(t,e=!1,r=!0,n=!0,s=!0){if(null==t||"object"!=typeof t)return t;const o=JSON.parse(JSON.stringify(t));return Object.keys(o).forEach((t=>{if(o[t]&&"object"==typeof o[t])if(Array.isArray(o[t]))for(let e=0;e<o[t].length;e++)o[t][e]=N.cleanup(o[t][e]);else o[t]=N.cleanup(o[t]);else void 0===o[t]&&n||null===o[t]&&r||""===o[t]&&s||0===o[t]&&e?delete o[t]:o[t]=o[t]})),o}static extractValueFromMapIgnoreCase(t,e){let r=null;if(t&&e){const n=e.toLowerCase();Object.keys(t).forEach((s=>{if(s.toLowerCase()===n){const n=t[s];r&&w.warn("Multiple entries found for %s (replacing %s with %s",e,r,n),r=n}}))}return r}static safeCallFunction(t,e){let r=!1;if(t&&t[e]&&"function"==typeof t[e])try{t[e](),r=!0}catch(r){w.warn("Error calling %s on %s : %s",e,t,r,r)}return r}static caseInsensitiveAccess(t,e){let r=null;if(t&&e&&(r=t[e],!r)){const n=Object.keys(t).find((t=>t.toLowerCase()===e.toLowerCase()));n&&(r=t[n])}return r}}class P{static wrapElementsInArray(t){return t.map((t=>[t]))}static compareTwoArrays(t,e,r){t.sort(r),e.sort(r);let n=0,s=0;const o={matching:[],setOneOnly:[],setTwoOnly:[]};for(;n<t.length&&s<e.length;){const i=t[n],a=e[s],l=r(i,a);0===l?(o.matching.push(i),n++,s++):l<0?(o.setOneOnly.push(i),n++):(o.setTwoOnly.push(a),s++)}return n<t.length-1&&(o.setOneOnly=o.setOneOnly.concat(t.slice(n))),s<e.length-1&&(o.setTwoOnly=o.setTwoOnly.concat(e.slice(s))),o}static extractSubarrayFromSortedByNumberField(t,e,r,n){if(!t||0===t.length)return t;let s=null===r?0:P.findSplit(t,e,r)||0;const o=null===n?t.length:P.findSplit(t,e,n),i=N.findValueDotPath(t[s],e);return s===t.length-1&&i<r?[]:(s<t.length&&s<o&&i<r&&s++,t.slice(s,o+1))}static findSplit(t,e,r){if(m.notNullOrUndefined(t),m.notNullOrUndefined(e),m.notNullOrUndefined(r),0===t.length||N.findValueDotPath(t[0],e)>r)return null;let n=0,s=t.length,o=null;for(;null===o;){const i=Math.floor((n+s)/2),a=N.findValueDotPath(t[i],e);n===s||n===s-1?o=n:a<=r?n=i:s=i}return o}}class v{static UTF8_ENCODER=new TextEncoder;static UTF8_DECODER=new TextDecoder("utf-8");static safeObjectToBase64JSON(t){return t?v.generateBase64VersionOfString(JSON.stringify(t)):null}static safeBase64JSONParse(t){let e={};try{t&&(e=JSON.parse(v.base64StringToString(t)))}catch(r){w.warn("Error parsing b64/json : %s as json, got %s",t,r,r),e={}}return e}static generateBase64VersionOfBlob(t){return new Promise((function(e,r){if(t&&0!=t.size){const r=new FileReader;r.onloadend=function(){e(r.result.toString())},r.readAsDataURL(t)}else r("Wont convert null or non-blob or empty blob")}))}static generateBase64VersionOfString(t){return v.generateBase64VersionOfUint8Array(v.UTF8_ENCODER.encode(t))}static generateBase64VersionOfUint8Array(t){return btoa(v.UTF8_DECODER.decode(t))}static base64StringToUint8Array(t){return new Uint8Array(atob(t).split("").map((function(t){return t.charCodeAt(0)})))}static base64StringToString(t,e="utf8"){return new TextDecoder(e).decode(v.base64StringToUint8Array(t))}}class A{sources;mostRecent;constructor(t,e=!0){if(!t||0==t.length)throw Error("Cannot create composite provider with null/empty sources");this.sources=t,this.mostRecent=e}lastSuccess(){let t=null;return this.sources.forEach((e=>{const r=e.lastSuccess();null!=r&&(t=null==t||r>t&&this.mostRecent||r<t&&!this.mostRecent?r:t)})),t}}class I{static COMMON_US_DATE_FORMAT="MM/dd/yyyy";static DEFAULT_DATE_FORMAT="yyyy-MM-dd";static FULL_DATE_FORMAT="yyyy-MM-dd_HH_mm_ss";static PACIFIC_TIME_ZONE="America/Los_Angeles";static UTC_TIME_ZONE="etc/UTC";static formatFullDate(t){return r.fromJSDate(t).toFormat(I.FULL_DATE_FORMAT)}static formatDefaultDateOnly(t){return r.fromJSDate(t).toFormat(I.DEFAULT_DATE_FORMAT)}static parseDefaultDate(t){return r.fromFormat(t,I.DEFAULT_DATE_FORMAT).toJSDate()}static parseCommonUsDate(t){let e=null;if(t){let n=I.COMMON_US_DATE_FORMAT;2===t.indexOf("-")&&(n=n.split("/").join("-")),e=r.fromFormat(t,n).toJSDate()}return e}}class R{static listEnumKeys(t){return n(t).getValues()}static keyToEnum(t,e,r=!1){const s=n(t);let o=null;if(e&&(o=s.asValueOrDefault(e,null),!o&&!r)){const r=R.listEnumKeys(t).find((t=>t.toUpperCase()===e.toUpperCase()));r&&(o=s.asValueOrDefault(r,null))}return o}static parseCsvToEnumArray(t,e){return y.trimToEmpty(e).split(",").map((t=>t.trim())).map((e=>R.keyToEnum(t,e))).filter((t=>!!t))}}class C{static fetchDirName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return s.fileURLToPath(new URL(".",t))}static fetchFileName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return s.fileURLToPath(t)}}class F{_config;_cacheObject;_lastUpdatedEpochMS;_timeRemainingMS;constructor(t){this._config=Object.assign({},this.defaultConfig(),t||{}),this._config.overrideTimeRemainingMS&&this._config.timeToLiveMS&&x.throwFormattedErr("Cannot define both time to live and overrideTimeRemainingMS"),this._config.overrideTimeRemainingMS||this._config.timeToLiveMS||x.throwFormattedErr("Must define exactly one of timeToLiveMS or overrideTimeRemainingMS"),this._config.initialValue&&this.update(this._config.initialValue),this._timeRemainingMS=this._config.overrideTimeRemainingMS||this.defaultTimeRemainingMS}defaultConfig(){return{generator:null,initialValue:null,logLevel:i.debug,overrideTimeRemainingMS:null,timeToLiveMS:6e4}}async defaultTimeRemainingMS(t){let e=0;if(t){const r=(new Date).getTime()-t;e=Math.max(0,this._config.timeToLiveMS-r)}return e}update(t,e=!1){this._cacheObject=t,e||(this._lastUpdatedEpochMS=(new Date).getTime()),w.logByLevel(this._config.logLevel,"Updated cache value to %j",t)}async fetchCacheObjectTimeRemainingMS(){return this._timeRemainingMS(this._lastUpdatedEpochMS)}async fetch(){if(await this._timeRemainingMS(this._lastUpdatedEpochMS)||(this._cacheObject=null,this._lastUpdatedEpochMS=null),!this._cacheObject&&this._config.generator){const t=await this._config.generator();w.logByLevel(this._config.logLevel,"Auto call to generator returned %j",t),this.update(t)}return this._cacheObject}}class D{timeToLiveMS;generator;initialValue;logLevel;overrideTimeRemainingMS}class U{constructor(){}static distanceBetweenLocations(t,e,r,n,s="M"){const o=s?s.toUpperCase():"";if(-1===["M","K","N","F","E"].indexOf(o))throw new Error("Invalid unit");if(t==r&&e==n)return 0;{const s=Math.PI*t/180,i=Math.PI*r/180,a=e-n,l=Math.PI*a/180;let c=Math.sin(s)*Math.sin(i)+Math.cos(s)*Math.cos(i)*Math.cos(l);return c>1&&(c=1),c=Math.acos(c),c=180*c/Math.PI,c=60*c*1.1515,"F"===o&&(c*=5280),"K"===o&&(c*=1.609344),"E"===o&&(c*=1609.344),"N"===o&&(c*=.8684),c}}static distanceBetweenRatchetGeoLocations(t,e,r="M"){return U.distanceBetweenLocations(t.lat,t.lng,e.lat,e.lng,r)}static degreeOfLatLngInMiles(t=0){const e=t*Math.PI/180,r=Math.cos(e);return b.safeNumber((69.172*r).toFixed(4))}static milesInDegLatLng(t,e=0){m.notNullOrUndefined(t),m.true(t>=0);return t/U.degreeOfLatLngInMiles(e)}static centerOfBounds(t){return m.notNullOrUndefined(t),{lat:(t.extent.lat+t.origin.lat)/2,lng:(t.extent.lng+t.origin.lng)/2}}static calculateSplits(t,e,r){m.notNullOrUndefined(t),m.notNullOrUndefined(e),m.notNullOrUndefined(r),t.sort(((t,e)=>t.origin[r]-e.origin[r]));const n=t.map((t=>U.centerOfBounds(t))).map((t=>t[r])),s=[];for(let t=1;t<n.length;t++){const r=n[t]-n[t-1];s.length<e?(s.push({idx:t,size:r}),s.sort(((t,e)=>t.size-e.size))):r>s[0].size?(s[0]={idx:t,size:r},s.sort(((t,e)=>t.size-e.size))):w.silly("Skipping, size : %d, %j",r,s)}return w.info("Splits at : %j",s),s.sort(((t,e)=>t.idx-e.idx)),s}static clusterGeoBounds(t,e=2,r=5){let n=null;if(e*r<2&&x.throwFormattedErr("Cannot set slices to less than 2 : %d x %d",e,r),t){n=[];const s=Object.assign([],t);s.sort(((t,e)=>t.origin.lng-e.origin.lng));const o=U.calculateSplits(t,r-1,"lng");o.sort(((t,e)=>t.idx-e.idx));for(let t=0;t<=o.length;t++){const r=0===t?0:o[t-1].idx,i=t===o.length?s.length:o[t].idx,a=s.slice(r,i);a.sort(((t,e)=>t.origin.lat-e.origin.lat));const l=U.calculateSplits(a,e-1,"lat");for(let t=0;t<=l.length;t++){const e=0==t?0:l[t-1].idx,r=t===l.length?a.length:l[t].idx,s=a.slice(e,r);n.push(U.combineBounds(s))}}w.info("New bounds : %j",n)}return n}static canonicalizeBounds(t,e=!1){m.notNullOrUndefined(t,"RatchetLocationBounds");const r=Math.min(t.extent.lat,t.origin.lat),n=Math.max(t.extent.lat,t.origin.lat),s=Math.min(t.extent.lng,t.origin.lng),o=Math.max(t.extent.lng,t.origin.lng);if(r<0&&n>0||r>0&&n<0||(r<0&&n>0||r>0&&n<0)){if(e)return t;throw new Error("Cannot canonicalize, bounds crosses over boundary")}return{origin:{lat:r,lng:s},extent:{lat:n,lng:o}}}static combineBounds(t){let e=null;return t&&t.length>0&&(e={origin:{lat:t.map((t=>t.origin.lat)).reduce(((t,e)=>Math.min(t,e))),lng:t.map((t=>t.origin.lng)).reduce(((t,e)=>Math.min(t,e)))},extent:{lat:t.map((t=>t.extent.lat)).reduce(((t,e)=>Math.max(t,e))),lng:t.map((t=>t.extent.lng)).reduce(((t,e)=>Math.max(t,e)))}}),e}static roundLocation(t,e){return{lat:b.safeNumber(t.lat.toFixed(e)),lng:b.safeNumber(t.lng.toFixed(e))}}static locationToBounds(t,e){const r=U.milesInDegLatLng(e,t.lat);return{origin:{lat:t.lat-r,lng:t.lng-r},extent:{lat:t.lat+r,lng:t.lng+r}}}static sameLocation(t,e){return!!t&&!!e&&t.lat===e.lat&&t.lng===e.lng}static pointInBounds(t,e){return!!t&&!!e&&b.between(t.lat,e.origin.lat,e.extent.lat)&&b.between(t.lng,e.origin.lng,e.extent.lng)}static pointInAnyBound(t,e,r=10){let n=!1;if(e.length>r){const r=U.buildRatchetLocationBoundsMap(e);n=U.pointInRatchetLocationBoundsMap(t,r)}else for(let r=0;r<e.length&&!n;r++)n=U.pointInBounds(t,e[r]);return n}static pointInRatchetLocationBoundsMap(t,e){let r=!1;const n=U.findRatchetLocationBoundsMapEntry(t,e);if(n){const e=n.bounds;for(let n=0;n<e.length&&!r;n++)r=U.pointInBounds(t,e[n])}return r}static findRatchetLocationBoundsMapEntry(t,e){let r=null;if(t.lat>=e.latOffset&&t.lat<=e.maxLat&&t.lng>=e.lngOffset&&t.lng<=e.maxLng){const n=Math.trunc(t.lat)-e.latOffset,s=Math.trunc(t.lng)-e.lngOffset;r=e.mapping[n][s]}return r}static buildRatchetLocationBoundsMap(t){const e=t.map((t=>t.origin.lat)).reduce(((t,e)=>Math.min(t,e))),r=t.map((t=>t.origin.lng)).reduce(((t,e)=>Math.min(t,e))),n=t.map((t=>t.extent.lat)).reduce(((t,e)=>Math.max(t,e))),s=t.map((t=>t.extent.lng)).reduce(((t,e)=>Math.max(t,e))),o=Math.trunc(e)-1,i=Math.trunc(r)-1,a=Math.trunc(n)-o+1,l=Math.trunc(s)-i+1,c=[];for(let t=0;t<a;t++){const e=[];for(let r=0;r<l;r++)e.push({lat:o+t,lng:i+r,bounds:[]});c.push(e)}return t.forEach((t=>{for(let e=Math.trunc(t.origin.lat);e<=Math.trunc(t.extent.lat);e++){const r=c[e-o];for(let e=Math.trunc(t.origin.lng);e<=Math.trunc(t.extent.lng);e++){r[e-i].bounds.push(t)}}})),{latOffset:o,lngOffset:i,maxLat:o+a,maxLng:i+l,mapping:c}}}class B{constructor(){}static fetchGlobalRecord(t){let e=null;if(process?.env?(w.silly("Using process.env as global"),e=process.env):global?.process?.env?(w.silly("Using global.process.env as global"),e=global.process.env):global&&(w.silly("Using process.env as global"),e=global),!e){if(!t)throw x.fErr("Could not find process.env OR global in scope");w.silly("Returning null as global"),e=null}return e}static fetchGlobalVar(t){m.notNullOrUndefined(t,"envVar");return B.fetchGlobalRecord()[t]}static setGlobalVar(t,e){m.notNullOrUndefined(t,"envVar"),m.notNullOrUndefined(e,"value");B.fetchGlobalRecord()[t]=e}}class j{key;value}class k{static op(...t){}}class V{title;timeoutMS;__timeoutTokenFlagField=!0;constructor(t,e){this.title=t,this.timeoutMS=e}writeToLog(t=i.warn){w.logByLevel(t,"Timed out after %d ms waiting for results of %s",this.timeoutMS,this.title)}static isTimeoutToken(t){return!!t&&!!t.__timeoutTokenFlagField}}class G{label;starts=new Map;ends=new Map;createTime=Date.now();constructor(t=y.createRandomHexString(4)){this.label=t}start(t){m.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.starts.set(y.trimToNull(t),e),e}stop(t){m.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.ends.set(y.trimToNull(t),e),e}reset(t){m.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.delete(y.trimToNull(t)),this.ends.delete(y.trimToNull(t))}hasTimer(t){return m.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.has(t)}log(t,e,r=i.info){w.logByLevel(r,this.dump(t,e))}logExpected(t,e,r,n=i.info){w.logByLevel(n,this.dumpExpected(t,e,r))}timerNames(){return Array.from(this.starts.keys())}dumpAll(t=", ",e){const r=this.timerNames().map((t=>this.dump(t,e)));let n="Overall: "+this.dump(null,e);return r.length>0&&(n+=t,n+=r.join(t)),n}dump(t,e){let r=this.label+" ";const n=y.trimToNull(t);if(n&&!this.hasTimer(n))r+="No such timer : "+n;else{const s=t?this.starts.get(n):this.createTime,o=t?this.ends.get(n):Date.now();r+=(n||"Default")+" ",s&&o?r+="completed in "+O.formatMsDuration(o-s,!e):s&&(r+="running for "+O.formatMsDuration(Date.now()-s,!e))}return r}dumpExpected(t,e,r){let n=this.label+" ";const s=y.trimToNull(e);if(s&&!this.hasTimer(s))n+="No such timer : "+s;else if(!t||t<=0)n+="Cannot generate output for 0 percent complete";else if(t>1)n+="Cannot generate output for percent > 1";else{n+=(s||"Default")+" ";const o=e?this.starts.get(s):this.createTime,i=e?this.ends.get(s):Date.now();if(o&&i)n+="completed in "+O.formatMsDuration(i-o,!r);else if(o){const e=Date.now()-o,s=e/t-e;n+="running for "+O.formatMsDuration(e,!r)+" approx "+O.formatMsDuration(s,!r)+" remaining"}}return n}expectedRemainingMS(t,e){let r=null;if(!t||t<=0);else if(t>1);else{const n=y.trimToNull(e),s=e?this.starts.get(n):this.createTime,o=e?this.ends.get(n):Date.now();if(s&&o)r=o-s;else if(s){const e=Date.now()-s;r=e/t-e}}return r}elapsedMS(t){let e=null;const r=y.trimToNull(t);if(r&&!this.hasTimer(r))e=null;else{const n=t?this.starts.get(r):this.createTime,s=t?this.ends.get(r):Date.now();n&&s?e=s-n:n&&(e=Date.now()-n)}return e}}class z{static resolveOnEvent(t,e,r=[],n=null){return t&&e&&0!==e.length&&t.on||Promise.reject("Cannot continue - missing source object or name, or the object is not an event source"),new Promise(((s,o)=>{e.forEach((e=>{t.on(e,(()=>{s(n)}))})),r&&r.forEach((e=>{t.on(e,(t=>{o(t)}))}))}))}static timeout(t,e,r){return Promise.race([t,z.createTimeoutPromise(e,r)])}static createTimeoutPromise(t,e){return new Promise(((r,n)=>{const s=setTimeout((()=>{clearTimeout(s);const n=new V(t,e);r(n)}),e)}))}static async wait(t){await z.createTimeoutPromise("Wait "+t,t),w.silly("Finished wait of %d ms",t)}static dumpResult(t,e=!1){w.info("Success, result was : \n\n%s\n\n",JSON.stringify(t)),process.exit(0)}static dumpError(t,e=!1){w.warn("Failure, err was : \n\n%s\n\n -- \n\n%s\n\n",JSON.stringify(t),String(t)),console.trace(),process.exit(1)}static logErrorAndReturnNull(t,e=!1){return w.warn("Failure, err was : \n\n%s\n\n -- \n\n%s\n\n",JSON.stringify(t),String(t)),null}static runPromiseAndDump(t){t.then(z.dumpResult).catch(z.dumpError)}static async waitFor(t,e,r,n,s="waitFor",o=0){if(null==e||r<50||n<1||o<0||"function"!=typeof t)return w.warn("%s: Invalid configuration for waitFor - exiting immediately",s),w.warn("ExpectedValue : %s ; interval: %d ; maxCycles: %d ; test : %s",e,r,n,typeof t),!1;let i=null;try{i=t(o)}catch(t){return w.warn("%s: Caught error while waiting, giving up",s),!1}return null===i?(w.debug("%s:CurVal was null - aborting",s),!1):i==e?(w.debug("%s:Found expected value",s),!0):o>n?(w.debug("%s:Exceeded max cycles, giving up",s),!1):(w.debug("%s : value not reached yet, waiting (count = %d of %d)",s,o,n),await z.wait(r),z.waitFor(t,e,r,n,s,o+1))}static async runBoundedParallel(t,e,r,n=1,s=i.debug){const o=new G;let a=[],l=e;w.logByLevel(s,"Processing %d total elements %d at a time",e.length,n);const c=r||this;let u=0;const g=l.length;for(;l.length>0;){const e=l.slice(0,Math.min(l.length,n));l=l.slice(e.length);const r=e.map((e=>t.apply(c,e))),i=await Promise.all(r);u+=r.length,a=a.concat(i);const h=u/g;w.logByLevel(s,"%d elements remain : %s",l.length,o.dumpExpected(h))}return o.log(),a}static async runBoundedParallelSingleParam(t,e,r,n=1,s=i.debug){const o=P.wrapElementsInArray(e);return z.runBoundedParallel(t,o,r,n,s)}static async asyncForEachSerial(t,e){for(let r=0;r<t.length;r++)await e(t[r],r,t)}static async asyncForEachParallel(t,e){const r=[];for(let n=0;n<t.length;n++)r.push(e(t[n],n,t));await Promise.all(r)}constructor(){}}class K{static PACIFIC=new K("America/Los_Angeles");timezone;constructor(t){if(!t)throw"Timezone cannot be null";this.timezone=t}currentHour(){return r.local().setZone(this.timezone).hour}toEpochSeconds(t){return Math.round(t.toMillis()/1e3)}startOfTodayEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({hour:0,minute:0,second:0,millisecond:0}))}startOfMatchingDayEpochSeconds(t){return this.toEpochSeconds(r.fromMillis(t).set({hour:0,minute:0,second:0,millisecond:0}))}startOfMatchingDayEpochMS(t){return 1e3*this.startOfMatchingDayEpochSeconds(t)}startOfCurrentHourEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({minute:0,second:0,millisecond:0}))}startOfCurrentMinuteEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({second:0,millisecond:0}))}startOfCurrentSecondEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({millisecond:0}))}startOfTodayEpochMS(){return r.local().setZone(this.timezone).set({hour:0,minute:0,second:0,millisecond:0}).toMillis()}dailySlotCount(t){return Math.ceil(864e5/t)}currentTimeSlotIdx(t){if(t<1)throw new Error("Cannot process with slot less than one ms wide");const e=this.startOfTodayEpochMS(),r=(new Date).getTime()-e;return Math.floor(r/t)}matchingTimeSlotIdx(t,e){if(e<1)throw new Error("Cannot process with slot less than one ms wide");const r=t-this.startOfMatchingDayEpochMS(t);return Math.floor(r/e)}startOfCurrentSlotEpochMS(t){return this.startOfTodayEpochMS()+this.currentTimeSlotIdx(t)*t}startOfMatchingSlotEpochMS(t,e){return this.startOfMatchingDayEpochMS(t)+this.matchingTimeSlotIdx(t,e)*e}}class W{constructor(){}static mergeArrays(t){let e=null;if(t?.length){let r=0;t.forEach((t=>{r+=t.length})),e=new Uint8Array(r);let n=0;t.forEach((t=>{e.set(t,n),n+=t.length}))}return e}}class H{constructor(){}static async webReadableStreamToUint8Array(t){const e=[],r=new WritableStream({write:async(t,r)=>("string"==typeof t?e.push(y.stringToUint8Array(t)):e.push(t),null),abort(t){x.throwFormattedErr("StringWebWritableStream failure : %s",t)}},{highWaterMark:3,size:()=>1});return await t.pipeTo(r),W.mergeArrays(e)}static async webReadableStreamToString(t){const e=await H.webReadableStreamToUint8Array(t);return(new TextDecoder).decode(e)}static stringToWebReadableStream(t){return new ReadableStream({start:e=>(t&&e.enqueue(t),e.close(),null)},{highWaterMark:t?t.length:null})}}class J{wrapped;constructor(t,e){if(!t)throw Error("Cannot set level to null/undefined");this.wrapped={lvl:t,timestamp:Date.now(),messageSource:e}}clone(){const t=new J(this.wrapped.lvl,this.wrapped.messageSource);return t.wrapped=Object.assign({},this.wrapped),t}level(t){if(!t)throw Error("Cannot set level to null/undefined");return this.wrapped.lvl=t,this}timestamp(t){if(!t)throw Error("Cannot set timestamp to null/undefined");return this.wrapped.timestamp=t,this}messageSource(t){return this.wrapped.messageSource=t,this}subVars(t){return this.wrapped.subsVars=t||[],this}params(t){return this.wrapped.params=t||{},this}p(t,e){return this.wrapped.params=this.wrapped.params||{},this.wrapped.params[t]=e,this}toMessage(){return Object.assign({},this.wrapped)}}class Z{static LOCAL_IP=null;static findLocalIp(t=!0){return w.info("Attempting to find local IP (V 2)"),Z.LOCAL_IP&&t?Promise.resolve(Z.LOCAL_IP):"undefined"!=typeof window?new Promise((function(t,e){try{const e=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(e){const r=new e({iceServers:[]}),n=Object.create(null);n["0.0.0.0"]=!1,r.createDataChannel("",{reliable:!1}),r.onicecandidate=function(e){e.candidate&&Z.grepSDP("a="+e.candidate.candidate,n,t)},r.createOffer((function(e){Z.grepSDP(e.sdp,n,t),r.setLocalDescription(e)}),(function(e){w.warn("Offer failed : %s",e),t(Z.updateLocalIP("FIND_UNSUPPORTED"))}))}else w.warn("IP Address find not supported on this device"),t(Z.updateLocalIP("FIND_UNSUPPORTED"))}catch(e){w.warn("Error finding local ip address : %s",e),t(Z.updateLocalIP("ERROR"))}})):(w.warn("Window not found, cannot calculate local ip"),Promise.resolve(Z.updateLocalIP("NO_WINDOW")))}static parseUrl(t){const e=t.match(/^(https?\:)\/\/(([^:\/?#]*)(?:\:([0-9]+))?)([\/]{0,1}[^?#]*)(\?[^#]*|)(#.*|)$/);return e&&{href:t,protocol:e[1],host:e[2],hostname:e[3],port:e[4],pathname:e[5],search:e[6],hash:e[7]}}static updateLocalIP(t){return Z.LOCAL_IP=t,Z.LOCAL_IP}static grepSDP(t,e,r){t.split("\r\n").forEach((function(t){if(~t.indexOf("a=candidate")){const n=t.split(" "),s=n[4];"host"===n[7]&&Z.updateAddressList(s,e,r)}else if(~t.indexOf("c=")){const n=t.split(" ")[2];Z.updateAddressList(n,e,r)}}))}static updateAddressList(t,e,r){if(t in e)return;e[t]=!0;const n=Object.keys(e).filter((function(t){return e[t]}));if(n&&1==n.length)r(Z.updateLocalIP(n[0]));else{const t=n.sort().join(",");w.warn("Multiple addresses found, returning sorted join : %s",t),r(Z.updateLocalIP(t))}}}class q{currentIp="UNSET";constructor(){Z.findLocalIp(!1).then((t=>{w.info("Setting local IP to %s",t),this.currentIp=t})).catch((t=>{w.warn("Unable to set current IP - leaving as UNSET : %s",t)}))}ready(){return"UNSET"!==this.currentIp}currentLocalIpAddress(){return this.currentIp}}class X{fixed;constructor(t){this.fixed=t}currentLocalIpAddress(){return this.fixed}}class $ extends Error{static RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY="__ratchetRestfulApiHttpErrorFlag";_httpStatusCode=500;_errors;_detailErrorCode;_endUserErrors;_details;_requestId;_wrappedError;constructor(...t){super($.combineErrorStringsWithDefault(t)),Object.setPrototypeOf(this,$.prototype),this._errors=t,this[$.RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY]=!0}static combineErrorStringsWithDefault(t,e="Internal Server Error"){return t&&t.length>0?t.join(","):e}setFormattedErrorMessage(e,...r){const n=t.format(e,...r);this.errors=[n]}withFormattedErrorMessage(t,...e){return this.setFormattedErrorMessage(t,...e),this}withHttpStatusCode(t){return this.httpStatusCode=t,this}withErrors(t){return this.errors=t,this}withDetailErrorCode(t){return this._detailErrorCode=t,this}withEndUserErrors(t){return this._endUserErrors=t,this}withDetails(t){return this._details=t,this}withRequestId(t){return this._requestId=t,this}withWrappedError(t){return this._wrappedError=t,this}isWrappedError(){return!!this._wrappedError}static wrapError(t){let e=null;return e=$.objectIsRestfulApiHttpError(t)?t:new $(t.message).withWrappedError(t).withHttpStatusCode(500),e}static objectIsRestfulApiHttpError(t){return t&&!0===t[$.RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY]}get httpStatusCode(){return this._httpStatusCode}get errors(){return this._errors}get detailErrorCode(){return this._detailErrorCode}get endUserErrors(){return this._endUserErrors}get details(){return this._details}get requestId(){return this._requestId}get wrappedError(){return this._wrappedError}set httpStatusCode(t){this._httpStatusCode=t||500}set errors(t){this._errors=t||["Internal Server Error"],this.message=$.combineErrorStringsWithDefault(this._errors)}set detailErrorCode(t){this._detailErrorCode=t}set endUserErrors(t){this._endUserErrors=t}set details(t){this._details=t}set requestId(t){this._requestId=t||"MISSING"}set wrappedError(t){this._wrappedError=t}static errorIsX0x(t,e){let r=!1;if(t&&$.objectIsRestfulApiHttpError(t)){const n=t,s=b.safeNumber(n.httpStatusCode),o=100*e;r=s>=o&&s<=o+99}return r}static errorIs40x(t){return $.errorIsX0x(t,4)}static errorIs50x(t){return $.errorIsX0x(t,5)}}class Y{static GOOGLE_VERIFY_URL="https://www.google.com/recaptcha/api/siteverify?secret={{KEY}}&response={{TOKEN}}";static async verifyRecaptchaToken(t,e,r=o){w.debug("Verifying recaptcha token : %s",e);let n=null;if(!y.safeString(e))return w.warn("Recaptcha validation error, no token passed : %s",e),n;w.info("Validating Recaptcha via Google API : %s",e);let s=Y.GOOGLE_VERIFY_URL;s=s.split("{{KEY}}").join(t),s=s.split("{{TOKEN}}").join(e);try{const t=await r(s),e=await t.json();n=e&&e.success}catch(t){w.error("Failed to read from google : %s",t),n=!1}return n}}class Q{accountSid;authToken;outBoundNumber;static TWILLIO_BASE_API_URL="https://api.twilio.com/2010-04-01";constructor(t,e,r){this.accountSid=t,this.authToken=e,this.outBoundNumber=r,m.notNullOrUndefined(t,"accountSid"),m.notNullOrUndefined(e,"authToken"),m.notNullOrUndefined(r,"outBoundNumber"),m.true(Q.isValidE164Number(r),"outBoundNumber invalid format")}static async sendMessageDirect(t,e,r,n,s){const o=new Q(t,e,r);return await o.sendMessage(n,s)}static generateTwilioBasicAuth(t,e){return"Basic "+v.generateBase64VersionOfString(t+":"+e)}async sendMessage(t,e){const r=[];if(m.notNullOrUndefined(t,"recipientPhoneNumbers"),m.notNullOrUndefined(y.trimToNull(e),"message"),m.true(t.length>0,"recipientPhoneNumbers non-empty"),t.forEach((t=>{m.true(Q.isValidE164Number(t),t+" is not valid")})),t&&t.length>0&&y.trimToNull(e)){w.info("Sending %s to %j",e,t);for(let n=0;n<t.length;n++){const s=t[n];if(w.info("To: %s",s),!Q.isValidE164Number(s))throw new Error("number must be E164 format!");const i="Body="+encodeURIComponent(e)+"&From="+encodeURIComponent(this.outBoundNumber)+"&To="+encodeURIComponent(s),a={method:"post",headers:{authorization:Q.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:i},l=await o(Q.TWILLIO_BASE_API_URL+"/Accounts/"+this.accountSid+"/Messages.json",a),c=await l.json();w.debug("TwilioRatchet: For %s got %j",s,c),r.push(c)}}else w.warn("Not sending empty message / empty recipients");return r}static isValidE164Number(t){return/^\+?[1-9]\d{1,14}$/.test(t)}}class tt{static keysOnly(t){return{transform:(e,r,n)=>r?t.transform(e,r,n):e}}static valuesOnly(t){return{transform:(e,r,n)=>r?e:t.transform(e,r,n)}}static stringReplaceTransform(t,e){return{transform:(r,n,s)=>r==t?e:r}}static stripStringTransform(t){return{transform:(e,r,n)=>e==t?null:e}}static retainAll(t){return{transform:(e,r,n)=>-1==t.indexOf(e)?null:e}}static removeAll(t){return{transform:(e,r,n)=>t.indexOf(e)>-1?null:e}}static snakeToCamelCase(){return{transform(t,e,r){let n=t;return"string"==typeof t&&(n=t.replace(/_([a-z0-9])/gi,(function(t,e){return e.toUpperCase()}))),n}}}static stringToNumber(){return{transform(t,e,r){let n=t;if("string"==typeof t){const e=b.safeNumber(t);null!==e&&(n=e)}return n}}}static camelToSnakeCase(){return{transform(t,e,r){let n=t;return"string"==typeof t&&(n=t.replace(/\.?([A-Z]+)/g,(function(t,e){return"_"+e.toLowerCase()})).replace(/^_/,"")),n}}}static concatenateToNewField(t,e,r=!0){return{transform(n,s,o){if("object"==typeof n){let s="";e.forEach((t=>{if(null!=s){const e=n[t];s=null==e&&r?null:null==e?s:s+String(e)}})),null!=s&&(n[t]=s,e.forEach((t=>delete n[t])))}return n}}}static numberToBool(t){return{transform:(e,r,n)=>("object"==typeof e&&t.forEach((t=>{const r=e[t];if("number"==typeof r){const n=0!=r;e[t]=n}})),e)}}static boolToNumber(t){return{transform:(e,r,n)=>("object"==typeof e&&t.forEach((t=>{const r=e[t];if("boolean"==typeof r){const n=r?1:0;e[t]=n}})),e)}}static makeDuplicateField(t,e){return{transform(r,n,s){if("object"==typeof r){const n=r[t];null!=n&&(r[e]=n)}return r}}}static addField(t,e){return{transform:(r,n,s)=>("object"==typeof r&&(r[t]=e),r)}}static reformatDateFields(t,e,n){return{transform:(s,o,i)=>("object"==typeof s&&t.forEach((t=>{const o=s[t];if(null!=o)try{const i=r.fromFormat(o,e).toFormat(n);s[t]=i}catch(t){w.warn("Failed to reparse date %s in format %s : %s",o,e,t)}})),s)}}}class et{static transform(t,e=[]){return et.transformGeneric(t,e,!1,null)}static transformGeneric(t,e=[],r,n){let s=null;const o=typeof t;switch(o){case"undefined":case"symbol":case"function":s=t;break;case"number":case"string":case"boolean":s=et.applyTransformToPrimitive(t,e,r,n);break;case"object":s=et.applyTransformToObject(t,e,r,n);break;default:throw new Error("Unrecognized type "+o)}return s}static applyTransformToObject(t,e=[],r,n=null){w.silly("Tranform: %j, %s, %j",t,r,n);let s=null;return null!=t&&(Array.isArray(t)?(s=[],t.forEach((n=>{const o=et.transformGeneric(n,e,r,t);null!=o&&s.push(o)}))):(s={},Object.keys(t).forEach((r=>{const n=t[r],o=et.applyTransformToPrimitive(r,e,!0,t);if(null!=o){let r=et.transformGeneric(n,e,!1,t);r=et.applyTransformToPrimitive(r,e,!1,t),null!=r&&(s[o]=r)}})),s=et.applyTransformToPrimitive(s,e,!1,t))),s}static applyTransformToPrimitive(t,e=[],r,n){let s=t;return e.forEach((t=>{s=null==s?null:t.transform(s,r,n)})),s}}!function(t){t.Success="Success",t.RolledBack="RolledBack",t.RollbackFailed="RollbackFailed"}(u||(u={}));class rt{static async execute(t,e,r){m.notNullOrUndefined(t,"steps"),m.notNullOrUndefined(e,"initialContext"),m.true(t.length>0,"steps may not be empty");const n=Object.assign({},r||{});n.stepLogLevel=n.stepLogLevel||i.info;const s={finalContext:e,finalState:null},o=t.map(((t,e)=>t.name||"Step "+e));w.info("Beginning transaction of %d steps",t.length);let a=0;do{w.logByLevel(n.stepLogLevel,"Processing step %d of %d (%s)",a+1,t.length,o[a]);try{await t[a].execute(s.finalContext,a),a++}catch(t){w.error("Failure detected on step %d : %s : %s : Rolling back",a,o[a],t,t),s.error=t,s.errorStep=a}}while(!s.error&&a<t.length);if(s.error)do{w.logByLevel(n.stepLogLevel,"Rolling back step %d of %d (%s)",a+1,t.length,o[a]);try{t[a].rollback?await t[a].rollback(s.finalContext,a):w.info("Skipping - no rollback defined")}catch(t){w.error("Very bad - rollback code failed on step %d : %s : Aborting in invalid state: %s",a,o[a],t,t),s.rollbackError=t,s.rollbackErrorStep=a}a--}while(a>=0);if(s.finalState=s.rollbackError?u.RollbackFailed:s.error?u.RolledBack:u.Success,w.info("Transaction completed with status : %s",s.finalState),n?.executeAfterRollback&&s.finalState!==u.Success)try{w.info("Applying executeAfterRollback"),await n.executeAfterRollback(s)}catch(t){w.error("Very bad - failure in executeAfterRollback : %s",t,t)}if(n?.executeAfterRollbackFailure&&s.finalState!==u.Success)try{w.info("Applying executeAfterRollbackFailure"),await n.executeAfterRollbackFailure(s)}catch(t){w.error("Very bad - failure in executeAfterRollbackFailure : %s",t,t)}return s}}export{P as ArrayRatchet,v as Base64Ratchet,L as BooleanRatchet,q as BrowserLocalIpProvider,tt as BuiltInTransforms,f as ClassicSingleLineLogMessageFormatter,A as CompositeLastSuccessProvider,I as DateRatchet,O as DurationRatchet,R as EnumRatchet,x as ErrorRatchet,C as EsmRatchet,c as ExpiredJwtHandling,F as ExpiringObject,D as ExpiringObjectConfig,X as FixedLocalIpProvider,U as GeolocationRatchet,B as GlobalRatchet,Y as GoogleRecaptchaRatchet,_ as Histogram,M as JwtRatchet,j as KeyValue,J as LogMessageBuilder,l as LogMessageFormatType,w as Logger,E as LoggerInstance,i as LoggerLevelName,a as LoggerOutputFunction,g as LoggerRingBuffer,h as LoggerUtil,N as MapRatchet,Z as NetworkRatchet,k as No,d as NoneLogMessageFormatter,b as NumberRatchet,z as PromiseRatchet,T as Ratchet2d,S as RatchetInfo,m as RequireRatchet,$ as RestfulApiHttpError,G as StopWatch,y as StringRatchet,p as StructuredJsonLogMessageFormatter,K as TimeZoneRatchet,V as TimeoutToken,u as TransactionFinalState,rt as TransactionRatchet,et as TransformRatchet,Q as TwilioRatchet,W as Uint8ArrayRatchet,H as WebStreamRatchet};
|
|
1
|
+
import t from"util";import e from"jsonwebtoken";import{DateTime as r}from"luxon";import{Base64 as n}from"js-base64";import{$enum as s}from"ts-enum-util";import o from"url";import i from"cross-fetch";var a,l,c,u,g;!function(t){t.error="error",t.warn="warn",t.info="info",t.verbose="verbose",t.debug="debug",t.silly="silly"}(a||(a={}));class h{_lastLogMessage={messageSource:"No message yet",timestamp:(new Date).getTime(),lvl:a.info};_buffer=[];_bufferIdx=0;_lastSnapshotIdx=0;_bufferSize;constructor(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t}get currentIndex(){return this._bufferIdx}get lastSnapshotIdx(){return this._lastSnapshotIdx}set bufferSize(t){if(!t)throw new Error("Cannot create ring buffer of size 0");this._bufferSize=t,this.clearRingBuffer()}getMessages(t=null,e=!1,r=!1){let n=null;if(this._bufferIdx<this._bufferSize){const e=null==t?0:t;n=this._buffer.slice(e,this._bufferIdx)}else{n=[];const e=this._bufferIdx-this._bufferSize;for(let r=t?Math.max(t,e):e;r<this._bufferIdx;r++)n.push(this._buffer[r%this._bufferSize])}return e&&this.clearRingBuffer(),r&&(n=n.reverse()),n}takeSnapshot(){const t=Math.max(0,this._bufferIdx-this._bufferSize),e={messages:this.getMessages(this._lastSnapshotIdx),logMessagesTruncated:Math.max(0,t-this._lastSnapshotIdx)};return this._lastSnapshotIdx=this._bufferIdx,e}getLastLogMessage(){return Object.assign({},this._lastLogMessage)}clearRingBuffer(){this._buffer=[],this._bufferIdx=0,this._lastSnapshotIdx=0}addToRingBuffer(t){this._lastLogMessage=t,this._buffer[this._bufferIdx%this._bufferSize]=t,this._bufferIdx++}}!function(t){t.Console="Console",t.ConsoleNoDebug="ConsoleNoDebug",t.StdOut="StdOut"}(l||(l={}));class f{static LOG_LEVELS_IN_ORDER=[a.error,a.warn,a.info,a.verbose,a.debug,a.silly];static handlerFunctionMap(t=l.Console){const e=new Map;if(t===l.StdOut){if(!process?.stdout?.write)throw new Error("Cannot use standard out - process.stdout.write not found");const t=(t,e)=>process.stdout.write(t,"utf-8",e);e.set(a.error,t),e.set(a.warn,t),e.set(a.info,t),e.set(a.verbose,t),e.set(a.debug,t),e.set(a.silly,t)}else e.set(a.error,console.error),e.set(a.warn,console.warn),e.set(a.info,console.info),e.set(a.verbose,t===l.ConsoleNoDebug?console.log:console.debug),e.set(a.debug,t===l.ConsoleNoDebug?console.log:console.debug),e.set(a.silly,t===l.ConsoleNoDebug?console.log:console.debug);return e}static defaultHandlerFunction(){return console.info}static levelIsEnabled(t,e){const r=f.LOG_LEVELS_IN_ORDER.indexOf(t),n=f.LOG_LEVELS_IN_ORDER.indexOf(e);return r>-1&&n>-1&&n>=r}}!function(t){t.ClassicSingleLine="ClassicSingleLine",t.StructuredJson="StructuredJson",t.None="None"}(c||(c={}));class d{formatMessage(e,r){let n=null;return e&&(n="",n+=r.options.trace?r.options.trace+" ":"",n+="["+e.lvl+"] ",n+=t.format(e.messageSource,...e.subsVars)),n}}class p{formatMessage(t,e){return null}}class m{formatMessage(e,r){let n=null;if(e){const s=Object.assign({},r.options.globalVars||{},e.params||{});s.msg=t.format(e.messageSource,...e.subsVars),s.utcDateTime=new Date(e.timestamp).toISOString(),s.logLevel=e.lvl,r.options.trace&&(s.trace=r.options.trace),s.logName=r.loggerInstanceName,s.logId=r.loggerInstanceId,n=JSON.stringify(s)+"\n"}return n}}class y{static isNullOrUndefined(t){return null==t}static notNullOrUndefined(t,e="object"){if(y.isNullOrUndefined(t))throw new Error(e+" may not be null or undefined")}static notNullUndefinedOrOnlyWhitespaceString(t,e="string"){if(y.isNullOrUndefined(t)||""===t.trim())throw new Error(e+" may not be null or undefined or only whitespace string")}static notNullUndefinedOrEmptyArray(t,e="string"){if(y.isNullOrUndefined(t)||0===t.length)throw new Error(e+" may not be null or undefined or an empty array")}static equal(t,e,r="Values must be equal"){if(t!==e)throw new Error(r)}static true(t,e="Value must be true"){y.equal(t,!0,e)}static noNullOrUndefinedValuesInArray(t,e=null,r=null){if(y.notNullOrUndefined(t,"Source array may not be null"),null!==e&&t.length!==e)throw new Error(`Expected array of length ${e} but was ${t.length} ${r}`);for(let e=0;e<t.length;e++)if(y.isNullOrUndefined(t[e]))throw new Error(`Array index ${e} was null or undefined ${r}`)}static noNullOrUndefinedValuesInRestArgs(t,...e){if(y.notNullOrUndefined(e,"Source array may not be null"),null!==t&&e.length!==t)throw new Error(`Expected array of length ${t} but was ${e.length}`);for(let t=0;t<e.length;t++)if(y.isNullOrUndefined(e[t]))throw new Error(`Array index ${t} was null or undefined`)}static constructorArgumentsMatchLengthAndAreNonNull(){const t=Array.from(arguments),e=this.constructor.length;return y.noNullOrUndefinedValuesInArray(t,e)}}class E{static RFC_3986_RESERVED=["!","*","'","(",")",";",":","@","&","=","+","$",",","/","?","#","[","]","%"];static DIGITS="0123456789";static HEXITS=E.DIGITS+"ABCDEF";static UPPER_CASE_LATIN="ABCDEFGHIJKLMNOPQRSTUVWXYZ";static LOWER_CASE_LATIN="abcdefghijklmnopqrstuvwxyz";static CASE_INSENSITIVE_LATIN=E.UPPER_CASE_LATIN+E.LOWER_CASE_LATIN;static stringIsInGivenAlphabet(t,e){let r=!1;if(t&&e)for(let n=0;n<t.length&&!r;n++)r=e.includes(t.charAt(n));return r}static stringToUint8Array(t){return t?(new TextEncoder).encode(t):null}static uint8ArrayToString(t){return t?(new TextDecoder).decode(t):null}static attemptJsonParse(t){let e=null;if(E.trimToNull(t))try{e=JSON.parse(t)}catch(t){e=null}return e}static canParseAsJson(t){return!!E.attemptJsonParse(t)}static allUnique(t){let e=!0;if(t){const r=new Set;for(let n=0;n<t.length&&e;n++){const s=t.charAt(n);e=!r.has(s),r.add(s)}}return e}static allPermutationsOfLength(t,e){const r=[];if(t>0&&e&&e.length>0){y.true(E.allUnique(e),"Alphabet must be unique");const n=1===t?[""]:E.allPermutationsOfLength(t-1,e);for(let t=0;t<e.length;t++)n.forEach((n=>r.push(e.charAt(t)+n)))}return r}static createType4Guid(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){const e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))}static createRandomHexString(t=10){let e="";for(let r=0;r<t;r++)e+=Math.floor(16*Math.random()).toString(16);return e}static canonicalize(t){let e=t?t.toLowerCase():"";return e=e.replace(" ","-"),E.RFC_3986_RESERVED.forEach((t=>{e=e.replace(t,"")})),e}static formatBytes(t,e=2){if(0==t)return"0 Bytes";const r=e||2,n=Math.floor(Math.log(t)/Math.log(1024));return parseFloat((t/Math.pow(1024,n)).toFixed(r))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][n]}static safeString(t){let e=null;if(null!=t){e="string"==typeof t?t:String(t)}return e}static stringContainsOnlyNumbers(t){return/^[0-9]+$/.test(t)}static stringContainsOnlyAlphanumeric(t){return/^[0-9a-zA-Z]+$/.test(t)}static stringContainsOnlyHex(t){return/^[0-9a-fA-F]+$/.test(t)}static stringContainsOnly(t,e){const r=t||"",n=e||"";let s=!0;for(let t=0;t<r.length&&s;t++)s=n.indexOf(r.charAt(t))>=0;return s}static obscure(t,e=2,r=2){if(!t)return t;const n=t.length;let s=e,o=r;for(;n>0&&n<s+o+1;)s=Math.max(0,s-1),o=Math.max(0,o-1);const i=n-(s+o);let a="";a+=t.substring(0,s);for(let t=0;t<i;t++)a+="*";return a+=t.substring(n-o),a}static leadingZeros(t,e){const r="00000000000000000000000000000000000000000000000000";let n=!1,s=String(t);if(s.startsWith("-")&&(n=!0,s=s.substring(1)),e>50)throw new Error("Cannot format number that large");let o=(r+s).slice(-1*e);return n&&(o="-"+o),o}static trimToEmpty(t){return(t?E.safeString(t):"").trim()}static trimToNull(t){const e=E.trimToEmpty(t);return e.length>0?e:null}static trimAllStringPropertiesToNullInPlace(t){return E.trimAllStringPropertiesInPlace(t,!1)}static trimAllStringPropertiesToEmptyInPlace(t){return E.trimAllStringPropertiesInPlace(t,!0)}static trimAllStringPropertiesInPlace(t,e){return Object.keys(t).forEach((r=>{const n=t[r];null!=n&&"string"==typeof n&&(t[r]=e?E.trimToEmpty(t[r]):E.trimToNull(t[r]))})),t}static stripNonNumeric(t){let e=t;if(null!=t&&!E.stringContainsOnlyNumbers(t)){e="";for(let r=0;r<t.length;r++){const n=t.charAt(r);(E.stringContainsOnlyNumbers(n)||0===r&&"-"===n)&&(e+=n)}}return e}static csvSafe(t){let e=E.trimToEmpty(E.safeString(t));return e.split('"').join('\\"'),-1===e.indexOf(",")&&-1===e.indexOf('"')&&-1===e.indexOf("'")||(e='"'+e+'"'),e}static stripNonAscii(t){return[...t].reduce(((t,e)=>e.charCodeAt(0)>127?t:t+e))}}class b{loggerInstanceName;_loggerMeta;_ringBuffer;_formatter;_level;_handlerFunctionMap;_options;constructor(t="default",e){this.loggerInstanceName=t,this.options=e}addPreProcessor(t){return t&&(this._options.preProcessors=this._options.preProcessors||[],this._options.preProcessors.push(t)),Object.assign([],this._options.preProcessors)}get ringBuffer(){return this._ringBuffer}dumpConfigurationIntoLog(){this.error("ERROR enabled"),this.warn("WARN enabled"),this.info("INFO enabled"),this.verbose("VERBOSE enabled"),this.debug("DEBUG enabled"),this.silly("SILLY enabled")}dumpOptionsIntoLog(){if(this.info("Options: %j",this.options),this?.options?.preProcessors?.length){const t=this.options.preProcessors.map((t=>E.trimToNull(t.label())||"Unlabelled"));this.info("Preprocessors: %j",t)}}changeRingBufferSize(t){this._ringBuffer=null,t&&(this._ringBuffer=new h(t),this._options.ringBufferSize=t)}updateTracePrefix(t){this._options.trace=t}get options(){return Object.assign({},this._options)}set options(t){switch(this._options=Object.assign({},t),this._options.ringBufferSize&&(this._ringBuffer=new h(this._options.ringBufferSize)),this._options.formatType){case c.None:this._formatter=new p;break;case c.StructuredJson:this._formatter=new m;break;default:this._formatter=new d}this._level=this._options.initialLevel,this._handlerFunctionMap=f.handlerFunctionMap(this._options.outputFunction);const e=this._loggerMeta?this._loggerMeta.loggerInstanceId:null;this._loggerMeta={options:this._options,loggerInstanceName:this.loggerInstanceName,loggerInstanceId:e||E.createRandomHexString(8)}}get level(){return this._level}set level(t){if(!t)throw new Error("Cannot set level to null/undefined");this._level=t}consoleLogPassThru(t,...e){if(f.levelIsEnabled(t,this._level)){let r=this._options.trace||"";r+="["+t+"] ",e.unshift(r);(this._handlerFunctionMap.get(t)||f.defaultHandlerFunction)(...e)}}createLogMessage(t,e,r,...n){return{lvl:t,timestamp:Date.now(),messageSource:r,subsVars:n,params:e}}formatMessage(t){return t?this._formatter.formatMessage(t,this._loggerMeta):null}formatMessages(t){return(t||[]).map((t=>this.formatMessage(t))).filter((t=>!!t))}recordMessageBuilder(t){return this.recordMessage(t.toMessage())}recordMessage(t){let e=null;if(f.levelIsEnabled(t.lvl,this._level)){let r=Object.assign({},t);if(this._options.preProcessors?.length)for(let t=0;t<this._options.preProcessors.length;t++)r=this._options.preProcessors[t].process(r);if(e=this.formatMessage(r),e){(this._handlerFunctionMap.get(r.lvl)||f.defaultHandlerFunction)(e),this._ringBuffer&&this._ringBuffer.addToRingBuffer(r)}}return e}error(t,...e){const r=this.createLogMessage(a.error,{},t,...e);return this.recordMessage(r)}errorP(...t){this.consoleLogPassThru(a.error,...t)}warn(t,...e){const r=this.createLogMessage(a.warn,{},t,...e);return this.recordMessage(r)}warnP(...t){this.consoleLogPassThru(a.warn,...t)}info(t,...e){const r=this.createLogMessage(a.info,{},t,...e);return this.recordMessage(r)}infoP(...t){this.consoleLogPassThru(a.info,...t)}verbose(t,...e){const r=this.createLogMessage(a.verbose,{},t,...e);return this.recordMessage(r)}verboseP(...t){this.consoleLogPassThru(a.verbose,...t)}debug(t,...e){const r=this.createLogMessage(a.debug,{},t,...e);return this.recordMessage(r)}debugP(...t){this.consoleLogPassThru(a.debug,...t)}silly(t,...e){const r=this.createLogMessage(a.silly,{},t,...e);return this.recordMessage(r)}sillyP(...t){this.consoleLogPassThru(a.silly,...t)}logByLevel(t,e,...r){const n=this.createLogMessage(t,{},e,...r);this.recordMessage(n)}importMessages(t,e="",r=!0){const n=e||"";t&&t.length>0&&(this.silly("Received import data : %d msgs",t.length),t.forEach((t=>{if(t.messageSource){let e=n;if(r){e+=" ("+String(new Date).substring(15,24)+") : ",e+=t.messageSource}this.logByLevel(t.lvl,e)}})))}}class w{static LOGGER_INSTANCES=new Map;static DEFAULT_OPTIONS={initialLevel:a.info,formatType:c.ClassicSingleLine,trace:null,globalVars:{},outputFunction:l.Console,ringBufferSize:0,preProcessors:[]};static applyDefaultsToOptions(t){const e=t||{};return e.initialLevel=e.initialLevel??w.DEFAULT_OPTIONS.initialLevel,e.formatType=e.formatType??w.DEFAULT_OPTIONS.formatType,e.trace=e.trace??w.DEFAULT_OPTIONS.trace,e.globalVars=e.globalVars??w.DEFAULT_OPTIONS.globalVars,e.outputFunction=e.outputFunction??w.DEFAULT_OPTIONS.outputFunction,e.ringBufferSize=e.ringBufferSize??w.DEFAULT_OPTIONS.ringBufferSize,e}static changeDefaultOptions(t,e){if(!t||!t.initialLevel||!t.formatType)throw new Error("Default options must be non-null, and provide initial level and format type");w.DEFAULT_OPTIONS=Object.assign({},t),e&&Array.from(w.LOGGER_INSTANCES.values()).forEach((e=>e.options=t))}static getLogger(t="default",e){let r=w.LOGGER_INSTANCES.get(t);if(!r){const n=w.applyDefaultsToOptions(e);r=new b(t,n),w.LOGGER_INSTANCES.set(t,r)}return r}static recordMessageBuilder(t){return w.getLogger().recordMessageBuilder(t)}static recordMessage(t){return w.getLogger().recordMessage(t)}static formatMessages(t){return w.getLogger().formatMessages(t)}static updateTracePrefix(t){return w.getLogger().updateTracePrefix(t)}static changeRingBufferSize(t){return w.getLogger().changeRingBufferSize(t)}static getRingBuffer(){return w.getLogger().ringBuffer}static dumpConfigurationIntoLog(){return w.getLogger().dumpConfigurationIntoLog()}static dumpOptionsIntoLog(){return w.getLogger().dumpOptionsIntoLog()}static getLevel(){return w.getLogger().level}static setLevel(t){w.getLogger().level=t}static getOptions(){return w.getLogger().options}static getMessages(t=null,e=!1,r=!1){const n=w.getLogger().ringBuffer;return n?n.getMessages(t,e,r):null}static consoleLogPassThru(t,...e){return w.getLogger().consoleLogPassThru(t,...e)}static error(t,...e){return w.getLogger().error(t,...e)}static errorP(...t){return w.getLogger().errorP(...t)}static warn(t,...e){return w.getLogger().warn(t,...e)}static warnP(...t){return w.getLogger().warnP(...t)}static info(t,...e){return w.getLogger().info(t,...e)}static infoP(...t){return w.getLogger().infoP(...t)}static verbose(t,...e){return w.getLogger().verbose(t,...e)}static verboseP(...t){return w.getLogger().verboseP(...t)}static debug(t,...e){return w.getLogger().debug(t,...e)}static debugP(...t){return w.getLogger().debugP(...t)}static silly(t,...e){return w.getLogger().silly(t,...e)}static sillyP(...t){return w.getLogger().sillyP(...t)}static takeSnapshot(){const t=w.getLogger().ringBuffer;return t?t.takeSnapshot():null}static logByLevel(t,e,...r){return w.getLogger().logByLevel(t,e,...r)}static importMessages(t,e="",r=!0){return w.getLogger().importMessages(t,e,r)}static getLastLogMessage(){const t=w.getLogger().ringBuffer;return t?t.getLastLogMessage():null}}class L{static MAX_LEADING_ZEROS_FORMAT_LENGTH=1e3;static toFixedDecimalNumber(t,e){const r=L.safeNumber(t);return null==r?r:L.safeNumber(r.toFixed(e))}static leadingZeros(t,e){const r=String(t);if(r.length<e){let t="0000";if(e>L.MAX_LEADING_ZEROS_FORMAT_LENGTH)throw"Cannot format number that large (max length is "+L.MAX_LEADING_ZEROS_FORMAT_LENGTH+")";for(;t.length<e;)t+=t;return(t+r).slice(-1*e)}return r}static between(t,e,r){const n=L.safeNumber(t),s=L.safeNumber(e),o=L.safeNumber(r);return n>=s&&n<=o||n>=o&&n<=s}static safeNumber(t,e=null,r){let n;if(null!=t){const r=typeof t;"number"==r?n=t:"string"==r?n=0===t.trim().length?e:Number.parseFloat(t):(w.warn("Value is of type %s, returning default",r),n=e),isNaN(n)&&(w.debug("Parsed string to NaN - using NaN value from param"),n=e)}else n=void 0===r?null:r?e:t;return n}static numberCSVToList(t){let e=null;return t&&(e=t.split(",").map((t=>L.safeNumber(t.trim()))),e=e.filter((t=>"number"==typeof t&&!isNaN(t)))),e}static fitToWindow(t,e,r){let n=t;if(null===t||null===e||null===r||e<0||r<0||t<0)throw new Error("All values must be non-null and larger than 0");const s=Math.min(e,r),o=Math.max(e,r),i=o-s;if(o===s)n=o;else{for(;n<s;)n+=i;for(;n>o;)n-=i}return n}static groupNumbersIntoContiguousRanges(t,e=3){y.notNullOrUndefined(t);const r=Object.assign([],t);r.sort(((t,e)=>t-e));const n=[],s=[];let o=0;for(let t=1;t<r.length;t++)if(r[t]===r[t-1]+1);else{if(o===t-1)n.push(r[t-1]);else{if(t-o<e)for(let e=o;e<t;e++)n.push(r[e]);else s.push({min:r[o],max:r[t-1]})}o=t}return{singles:n,ranges:s}}static distributeItemsEvenly(t,e){y.notNullOrUndefined(t,"items"),y.notNullOrUndefined(e,"buckets"),y.true(t>0&&t===Math.floor(t),"Items integer larger than 0"),y.true(e>0&&e===Math.floor(e),"Buckets integer larger than 0");const r=e/t,n=[];for(let t=0;t<e;t++)n.push(0);let s=0,o=t;for(;o>0;)n[Math.floor(s)%e]++,o--,s+=r;return n}static createRange(t,e,r=1){const n=[];let s=t;for(;s<e;)n.push(s),s+=r;return n}}class T{static allTrue(t,e=!1){let r=null;return r=!!t&&(t.length>0?t.reduce(((t,e)=>t&&e),!0):e),r}static anyTrue(t,e=!1){let r=null;return r=!!t&&(t.length>0?t.reduce(((t,e)=>t||e),!1):e),r}static parseBool(t){return!0===t||null!=t&&"string"==typeof t&&"true"===t.toLowerCase()}static intToBool(t){return null!=t&&0!==L.safeNumber(t)}static boolToInt(t){return T.parseBool(t)?1:0}}class S{constructor(){}static translateToOriginVector(t){let e=null;return S.validPoints(t)&&(e={x:null,y:null},t.forEach((t=>{e.x=null===e.x||t.x<e.x?t.x:e.x,e.y=null===e.y||t.y<e.y?t.y:e.y})),e.x*=-1,e.y*=-1),e}static minimalContainingPlane(t){let e=null;return S.validPoints(t)&&(e={width:0,height:0},t.forEach((t=>{e.width=Math.max(e.width,t.x+1),e.height=Math.max(e.height,t.y+1)}))),e}static scaleVector(t,e){let r=null;return S.validPlane(t)&&S.validPlane(e)&&(r={x:e.width/t.width,y:e.height/t.height}),r}static samePoint(t,e){return!!t&&!!e&&t.x===e.x&&t.y===e.y}static atLeastOneDimensionShared(t,e){return!(!t||!e||t.x!==e.x&&t.y!==e.y)}static validPlane(t){return!!t&&!!t.height&&!!t.width}static validLine(t){return!!t&&S.validPoint(t.p1)&&S.validPoint(t.p2)&&!S.samePoint(t.p1,t.p2)}static validLines(t){return!!t&&T.allTrue(t.map((t=>S.validLine(t))))}static validPolyLine(t){return!!t&&t.pts?.length>1&&T.allTrue(t.pts.map((t=>S.validPoint(t))))}static polyLineToLines(t){let e=null;if(S.validPolyLine(t)){e=[];for(let r=1;r<t.pts.length;r++)e.push({p1:t.pts[r-1],p2:t.pts[r]})}return e}static lastPointOnPolyLine(t){return S.validPolyLine(t)?t.pts[t.pts.length-1]:null}static lineToPolyLine(t){return S.validLine(t)?{pts:[t.p1,t.p2]}:null}static linesToPolyLines(t){let e=null;if(S.validLines(t)){e=[];let r=S.lineToPolyLine(t[0]);for(let n=1;n<t.length;n++)S.samePoint(S.lastPointOnPolyLine(r),t[n].p1)?r.pts.push(t[n].p2):(e.push(r),r=S.lineToPolyLine(t[n]));e.push(r)}return e}static validPoint(t){return!!t&&null!=t.x&&null!=t.x&&null!==t.y&&void 0!==t.y}static validPoints(t){return!!t&&T.allTrue(t.map((t=>S.validPoint(t))),!1)}static planeContainsPoint(t,e){return S.validPlane(e)&&S.validPoint(t)&&t.x>=0&&t.x<e.width&&t.y>=0&&t.y<e.height}static planeContainsPoints(t,e){return t&&t.map((t=>S.planeContainsPoint(t,e))).reduce(((t,e)=>t&&e),!0)}static linesToPoints(t){let e=null;return S.validLines(t)&&(e=t.map((t=>[t.p1,t.p2])).flat()),e}static pointsToLines(t){let e=null;if(S.validPoints(t)){if(t.length%2!=0)throw new Error("Cannot convert non-even array of points into lines");e=[];for(let r=0;r<t.length;r+=2)e.push({p1:t[r],p2:t[r+1]})}return e}static rotateRightAboutOrigin90Degrees(t,e=1){let r=null,n={x:0,y:0};if(S.validPoints(t)){r=Object.assign([],t),n=S.translateToOriginVector(r),r=S.translate(r,n);let e=S.minimalContainingPlane(r);r=S.xToY(r),e={width:e.height,height:e.width},n={x:-1*n.y,y:-1*n.x},r=S.mirrorPointsOnPlane(r,e,!0,!1),r=S.translate(r,n)}const s=e>4?e%4:e;return s>1&&(r=S.rotateRightAboutOrigin90Degrees(r,s-1)),r}static planeContainsLines(t,e){return t&&S.planeContainsPoints(t.map((t=>[t.p1,t.p2])).flat(),e)}static planeContainsPolyLine(t,e){return S.planeContainsLines(S.polyLineToLines(t),e)}static planeContainsLine(t,e){return S.validPlane(e)&&S.validLine(t)&&S.planeContainsPoint(t.p1,e)&&S.planeContainsPoint(t.p2,e)}static xToY(t){let e=null;return S.validPoints(t)&&(e=t.map((t=>({x:t.y,y:t.x})))),e}static translate(t,e){let r=null;return S.validPoints(t)&&S.validPoint(e)&&(r=t.map((t=>({x:t.x+e.x,y:t.y+e.y})))),r}static mirrorPointsOnPlane(t,e,r,n){let s=null;return S.validPoints(t)&&S.validPlane(e)&&(s=r||n?t.map((t=>({x:r?e.width-1-t.x:t.x,y:n?e.height-1-t.y:t.y}))):Object.assign([],t)),s}static transformPointsToNewPlane(t,e,r){let n=null;if(S.validPoints(t)&&S.validPlane(e)&&S.validPlane(r)){const s=S.scaleVector(e,r);n=t.map((t=>({x:t.x*s.x,y:t.y*s.y}))),n=S.mirrorPointsOnPlane(n,r,r.rightToLeft!==e.rightToLeft,r.topToBottom!==e.topToBottom)}return n}static transformPointToNewPlane(t,e,r){const n=S.transformPointsToNewPlane([t],e,r);return 1===n.length?n[0]:null}static transformLines(t,e,r){return null}static fitCurve(t,e){if(t.sort(((t,e)=>t.x-e.x)),e<=t[0].x)return t[0].y;if(e>=t[t.length-1].x)return t[t.length-1].y;{let r=0;for(;t[r+1].x<e;)r++;const n=t[r+1].x-t[r].x,s=t[r+1].y-t[r].y,o=(e-t[r].x)/n*s;return t[r].y+o}}}class _{constructor(){}static buildInformation(){return{version:"232",hash:"bcce209de9712e649cb0c1ea207f3297337b39e3",branch:"alpha-2023-09-25-6",tag:"alpha-2023-09-25-6",timeBuiltISO:"2023-09-25T20:00:31-0700",notes:"No notes"}}}class O{entries=[];update(t,e=1){if(t){const r=this.entries.find((e=>e.item===t));r?r.count+=e:this.entries.push({item:t,count:e})}}sort(){this.entries.sort(((t,e)=>{let r=e.count-t.count;return 0===r&&(r=String(e.item).localeCompare(String(t.item))),r}))}sortKeys(){this.entries.sort(((t,e)=>String(e.item).localeCompare(String(t.item))))}reverse(){this.entries.reverse()}getEntries(){return this.entries}getTotalCount(){let t=0;return this.entries.forEach((e=>t+=e.count)),t}countForValue(t){const e=this.entries.find((e=>e.item===t));return e?e.count:0}percentForValue(t){const e=this.getTotalCount();return 0===e?0:this.countForValue(t)/e}}!function(t){t[t.RETURN_NULL=0]="RETURN_NULL",t[t.THROW_EXCEPTION=1]="THROW_EXCEPTION",t[t.ADD_FLAG=2]="ADD_FLAG"}(u||(u={}));class M{static formatMsDuration(t,e=!1){const r=Math.floor(t%1e3),n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,o=Math.floor(t/36e5)%24,i=Math.floor(t/864e5),a=L.leadingZeros;let l=a(o,2)+"h"+a(s,2)+"m";return l+=e?a(n,2)+"."+a(r,3)+"s":a(n,2)+"s",i>0&&(l=i+"d"+l),l}static colonFormatMsDuration(t,e=!1){const r=t%1e3,n=Math.floor(t/1e3)%60,s=Math.floor(t/6e4)%60,o=Math.floor(t/36e5),i=L.leadingZeros;let a=i(o,2)+":"+i(s,2)+":";return a+=e?i(n,2)+"."+i(r,3):i(n,2),a}static daysBetween(t,e){return r.fromJSDate(t).diff(r.fromJSDate(e)).days}static createSteps(t,e,n,s,o){let i=r.fromMillis(t).setZone(n);const a=r.fromMillis(e),l=[];for(;i<a;)l.push(i.toFormat(s)),i=i.plus(o);return l}}class x{_encryptionKeyPromise;_decryptKeysPromise;_jtiGenerator;_decryptOnlyKeyUseLogLevel;_parseFailureLogLevel;static EXPIRED_FLAG_NAME="__jwtServiceExpiredFlag";constructor(t,e,r=E.createType4Guid,n=a.info,s=a.debug){this._encryptionKeyPromise=t,this._decryptKeysPromise=e,this._jtiGenerator=r,this._decryptOnlyKeyUseLogLevel=n,this._parseFailureLogLevel=s,y.notNullOrUndefined(t,"encryptionKeyPromise")}get encryptionKeyPromise(){return this._encryptionKeyPromise}get decryptKeysPromise(){return this._decryptKeysPromise}get jtiGenerator(){return this._jtiGenerator}get decryptOnlyKeyUseLogLevel(){return this._decryptOnlyKeyUseLogLevel}get parseFailureLogLevel(){return this._parseFailureLogLevel}static hasExpiredFlag(t){return t&&!0===t[x.EXPIRED_FLAG_NAME]}static async invalidSafeDecode(t,r,n=a.silly){let s=null;try{s=e.verify(t,r,{ignoreExpiration:!0})}catch(t){w.logByLevel(n,"Caught %s - ignoring",t)}return s}static async secondsRemainingUntilExpiration(t){let e=null;if(E.trimToNull(t)){const r=await x.decodeTokenNoVerify(t),n=Math.floor(Date.now()/1e3);if(r.exp){const t=r.exp>100*n?Math.floor(r.exp/1e3):r.exp;e=Math.max(0,t-n)}}return e}static async msRemainingUntilExpiration(t){const e=await x.secondsRemainingUntilExpiration(t);let r=null;return null!=e&&(r=1e3*e),r}async decodeToken(t,e=u.RETURN_NULL){const r=await this.encryptionKeyArray();let n=Object.assign([],r);this.decryptKeysPromise&&(n=n.concat(await this.decryptKeysPromise));const s=[];let o=null;for(let e=0;e<n.length&&!o;e++){s.push(E.obscure(n[e],1,1));const i=e===n.length-1&&this.parseFailureLogLevel?this.parseFailureLogLevel:a.silly;o=await x.invalidSafeDecode(t,n[e],i),o&&e>=r.length&&w.logByLevel(this.decryptOnlyKeyUseLogLevel,"Used old key to decode token : %s",E.obscure(n[e],2))}if(o){const t=Math.floor(Date.now()/1e3),r=o?.exp&&o.exp>100*t?Math.floor(o.exp/1e3):o?.exp,n=o?.nbf&&o.nbf>100*t?Math.floor(o.nbf/1e3):o?.nbf;if(r&&t>=r||n&&t<=n){const n=t-r;switch(w.debug("JWT token expired or before NBF : on %d, %s ago",o.exp,M.formatMsDuration(1e3*n)),e){case u.THROW_EXCEPTION:throw new Error("JWT Token was expired");case u.ADD_FLAG:o[x.EXPIRED_FLAG_NAME]=!0;break;default:o=null}}}else w.warn("Unable to parse a payload (Tried %j) from : %s",s,t);return o}async encryptionKeyArray(){const t=await this.encryptionKeyPromise,e=Array.isArray(t)?t:[t];if(e.length<1)throw new Error("Cannot create JwtRatchet with empty encryption key set");return e}async selectRandomEncryptionKey(){const t=await this.encryptionKeyArray();return t[Math.floor(Math.random()*t.length)]}async createTokenString(t,r,n){const s=E.trimToNull(n)?E.trimToNull(n):await this.selectRandomEncryptionKey();if(y.notNullOrUndefined(t,"payload"),t.jti=this.jtiGenerator?this.jtiGenerator():null,r){const e=Math.floor(Date.now()/1e3)+r;w.debug("Forcing expiration to %d",e),t.exp=e}return e.sign(t,s)}async refreshJWTString(t,e,r){const n=e?u.ADD_FLAG:u.THROW_EXCEPTION,s=await this.decodeToken(t,n),o=s.exp&&s.iat?s.exp-s.iat:null,i=r||o;x.removeJwtFields(s),x.removeExpiredFlag(s);return await this.createTokenString(s,i)}static decodeTokenNoVerify(t){return e.decode(t)}static removeJwtFields(t){t&&["iss","sub","aud","exp","nbf","iat","jti"].forEach((e=>{delete t[e]}))}static removeExpiredFlag(t){t&&delete t[x.EXPIRED_FLAG_NAME]}}class N{static safeStringifyErr(t,e=!0){let r="ERR WAS NULL";if(t)if(t.message)r=t.message;else try{r=JSON.stringify(t)}catch(e){w.error("Failed to json stringify"),r=String(t)}return e&&w.error("%s",r,t),r}static asErr(t){let e=null;return t&&(e=t instanceof Error?t:new Error("Force-Cast to error : "+String(t))),e}static fErr(e,...r){const n=t.format(e,...r);return new Error(n)}static throwFormattedErr(t,...e){throw N.fErr(t,...e)}}class P{static expandNestedKeysToObjects(t,e="."){if(!e||1!==e.length)throw new Error("Invalid separator (must be single character)");const r={};return Object.keys(t).forEach((n=>{const s=n.split(e);let o=r;for(;s.length>1;)o[s[0]]=o[s[0]]||{},o=o[s[0]],s.splice(0,1);o[s[0]]=t[n]})),r}static mapByUniqueProperty(t,e){if(!t||!e)throw new Error("Neither input nor propName can be null");const r=new Map;return t.forEach((t=>{const n=t?t[e]:null;if(null==n)throw new Error("No value for "+e+" found in "+JSON.stringify(t));if(r.has(n))throw new Error("Multiple values found for "+n);r.set(n,t)})),r}static groupByProperty(t,e){if(!t||!e)throw new Error("Neither input nor propName can be null");const r=new Map;return t.forEach((t=>{const n=t?t[e]:null;if(null==n)throw N.fErr("No value for %s found in %j",e,t);r.has(n)||r.set(n,[]),r.get(n).push(t)})),r}static findValue(t,e){return e&&0!=e.length?t?P.findValue(t[e[0]],e.slice(1)):null:t}static findValueDotPath(t,e){return e&&0!=e.length?t?P.findValue(t,e.split(".")):null:t}static simpleDeepCompare(t,e){return null==t&&null==e||null!=t&&null!=e&&JSON.stringify(t)==JSON.stringify(e)}static toKeyValueList(t){const e=[];for(const r of Object.keys(t))e.push({key:r,value:t[r]});return e}static fromKeyValueList(t){const e={};return t.forEach((t=>e[t.key]=t.value)),e}static cleanup(t,e=!1,r=!0,n=!0,s=!0){if(null==t||"object"!=typeof t)return t;const o=JSON.parse(JSON.stringify(t));return Object.keys(o).forEach((t=>{if(o[t]&&"object"==typeof o[t])if(Array.isArray(o[t]))for(let e=0;e<o[t].length;e++)o[t][e]=P.cleanup(o[t][e]);else o[t]=P.cleanup(o[t]);else void 0===o[t]&&n||null===o[t]&&r||""===o[t]&&s||0===o[t]&&e?delete o[t]:o[t]=o[t]})),o}static extractValueFromMapIgnoreCase(t,e){let r=null;if(t&&e){const n=e.toLowerCase();Object.keys(t).forEach((s=>{if(s.toLowerCase()===n){const n=t[s];r&&w.warn("Multiple entries found for %s (replacing %s with %s",e,r,n),r=n}}))}return r}static safeCallFunction(t,e){let r=!1;if(t&&t[e]&&"function"==typeof t[e])try{t[e](),r=!0}catch(r){w.warn("Error calling %s on %s : %s",e,t,r,r)}return r}static caseInsensitiveAccess(t,e){let r=null;if(t&&e&&(r=t[e],!r)){const n=Object.keys(t).find((t=>t.toLowerCase()===e.toLowerCase()));n&&(r=t[n])}return r}}class v{static wrapElementsInArray(t){return t.map((t=>[t]))}static compareTwoArrays(t,e,r){t.sort(r),e.sort(r);let n=0,s=0;const o={matching:[],setOneOnly:[],setTwoOnly:[]};for(;n<t.length&&s<e.length;){const i=t[n],a=e[s],l=r(i,a);0===l?(o.matching.push(i),n++,s++):l<0?(o.setOneOnly.push(i),n++):(o.setTwoOnly.push(a),s++)}return n<t.length-1&&(o.setOneOnly=o.setOneOnly.concat(t.slice(n))),s<e.length-1&&(o.setTwoOnly=o.setTwoOnly.concat(e.slice(s))),o}static extractSubarrayFromSortedByNumberField(t,e,r,n){if(!t||0===t.length)return t;let s=null===r?0:v.findSplit(t,e,r)||0;const o=null===n?t.length:v.findSplit(t,e,n),i=P.findValueDotPath(t[s],e);return s===t.length-1&&i<r?[]:(s<t.length&&s<o&&i<r&&s++,t.slice(s,o+1))}static findSplit(t,e,r){if(y.notNullOrUndefined(t),y.notNullOrUndefined(e),y.notNullOrUndefined(r),0===t.length||P.findValueDotPath(t[0],e)>r)return null;let n=0,s=t.length,o=null;for(;null===o;){const i=Math.floor((n+s)/2),a=P.findValueDotPath(t[i],e);n===s||n===s-1?o=n:a<=r?n=i:s=i}return o}}class A{static UTF8_ENCODER=new TextEncoder;static UTF8_DECODER=new TextDecoder("utf-8");static safeObjectToBase64JSON(t){return t?A.generateBase64VersionOfString(JSON.stringify(t)):null}static safeBase64JSONParse(t){let e={};try{t&&(e=JSON.parse(A.base64StringToString(t)))}catch(r){w.warn("Error parsing b64/json : %s as json, got %s",t,r,r),e={}}return e}static generateBase64VersionOfBlob(t){return new Promise((function(e,r){if(t&&0!=t.size){const r=new FileReader;r.onloadend=function(){e(r.result.toString())},r.readAsDataURL(t)}else r("Wont convert null or non-blob or empty blob")}))}static generateBase64VersionOfString(t){return A.generateBase64VersionOfUint8Array(A.UTF8_ENCODER.encode(t))}static generateBase64VersionOfUint8Array(t){return n.btoa(A.UTF8_DECODER.decode(t))}static base64StringToUint8Array(t){return new Uint8Array(n.atob(t).split("").map((function(t){return t.charCodeAt(0)})))}static base64StringToString(t,e="utf8"){return new TextDecoder(e).decode(A.base64StringToUint8Array(t))}}class I{sources;mostRecent;constructor(t,e=!0){if(!t||0==t.length)throw Error("Cannot create composite provider with null/empty sources");this.sources=t,this.mostRecent=e}lastSuccess(){let t=null;return this.sources.forEach((e=>{const r=e.lastSuccess();null!=r&&(t=null==t||r>t&&this.mostRecent||r<t&&!this.mostRecent?r:t)})),t}}class R{static COMMON_US_DATE_FORMAT="MM/dd/yyyy";static DEFAULT_DATE_FORMAT="yyyy-MM-dd";static FULL_DATE_FORMAT="yyyy-MM-dd_HH_mm_ss";static PACIFIC_TIME_ZONE="America/Los_Angeles";static UTC_TIME_ZONE="etc/UTC";static formatFullDate(t){return r.fromJSDate(t).toFormat(R.FULL_DATE_FORMAT)}static formatDefaultDateOnly(t){return r.fromJSDate(t).toFormat(R.DEFAULT_DATE_FORMAT)}static parseDefaultDate(t){return r.fromFormat(t,R.DEFAULT_DATE_FORMAT).toJSDate()}static parseCommonUsDate(t){let e=null;if(t){let n=R.COMMON_US_DATE_FORMAT;2===t.indexOf("-")&&(n=n.split("/").join("-")),e=r.fromFormat(t,n).toJSDate()}return e}}class C{static listEnumKeys(t){return s(t).getValues()}static keyToEnum(t,e,r=!1){const n=s(t);let o=null;if(e&&(o=n.asValueOrDefault(e,null),!o&&!r)){const r=C.listEnumKeys(t).find((t=>t.toUpperCase()===e.toUpperCase()));r&&(o=n.asValueOrDefault(r,null))}return o}static parseCsvToEnumArray(t,e){return E.trimToEmpty(e).split(",").map((t=>t.trim())).map((e=>C.keyToEnum(t,e))).filter((t=>!!t))}}class F{static fetchDirName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return o.fileURLToPath(new URL(".",t))}static fetchFileName(t){if(!t)throw new Error("Need to provide root (should be import.meta.url)");return o.fileURLToPath(t)}}class D{_config;_cacheObject;_lastUpdatedEpochMS;_timeRemainingMS;constructor(t){this._config=Object.assign({},this.defaultConfig(),t||{}),this._config.overrideTimeRemainingMS&&this._config.timeToLiveMS&&N.throwFormattedErr("Cannot define both time to live and overrideTimeRemainingMS"),this._config.overrideTimeRemainingMS||this._config.timeToLiveMS||N.throwFormattedErr("Must define exactly one of timeToLiveMS or overrideTimeRemainingMS"),this._config.initialValue&&this.update(this._config.initialValue),this._timeRemainingMS=this._config.overrideTimeRemainingMS||this.defaultTimeRemainingMS}defaultConfig(){return{generator:null,initialValue:null,logLevel:a.debug,overrideTimeRemainingMS:null,timeToLiveMS:6e4}}async defaultTimeRemainingMS(t){let e=0;if(t){const r=(new Date).getTime()-t;e=Math.max(0,this._config.timeToLiveMS-r)}return e}update(t,e=!1){this._cacheObject=t,e||(this._lastUpdatedEpochMS=(new Date).getTime()),w.logByLevel(this._config.logLevel,"Updated cache value to %j",t)}async fetchCacheObjectTimeRemainingMS(){return this._timeRemainingMS(this._lastUpdatedEpochMS)}async fetch(){if(await this._timeRemainingMS(this._lastUpdatedEpochMS)||(this._cacheObject=null,this._lastUpdatedEpochMS=null),!this._cacheObject&&this._config.generator){const t=await this._config.generator();w.logByLevel(this._config.logLevel,"Auto call to generator returned %j",t),this.update(t)}return this._cacheObject}}class U{timeToLiveMS;generator;initialValue;logLevel;overrideTimeRemainingMS}class B{constructor(){}static distanceBetweenLocations(t,e,r,n,s="M"){const o=s?s.toUpperCase():"";if(-1===["M","K","N","F","E"].indexOf(o))throw new Error("Invalid unit");if(t==r&&e==n)return 0;{const s=Math.PI*t/180,i=Math.PI*r/180,a=e-n,l=Math.PI*a/180;let c=Math.sin(s)*Math.sin(i)+Math.cos(s)*Math.cos(i)*Math.cos(l);return c>1&&(c=1),c=Math.acos(c),c=180*c/Math.PI,c=60*c*1.1515,"F"===o&&(c*=5280),"K"===o&&(c*=1.609344),"E"===o&&(c*=1609.344),"N"===o&&(c*=.8684),c}}static distanceBetweenRatchetGeoLocations(t,e,r="M"){return B.distanceBetweenLocations(t.lat,t.lng,e.lat,e.lng,r)}static degreeOfLatLngInMiles(t=0){const e=t*Math.PI/180,r=Math.cos(e);return L.safeNumber((69.172*r).toFixed(4))}static milesInDegLatLng(t,e=0){y.notNullOrUndefined(t),y.true(t>=0);return t/B.degreeOfLatLngInMiles(e)}static centerOfBounds(t){return y.notNullOrUndefined(t),{lat:(t.extent.lat+t.origin.lat)/2,lng:(t.extent.lng+t.origin.lng)/2}}static calculateSplits(t,e,r){y.notNullOrUndefined(t),y.notNullOrUndefined(e),y.notNullOrUndefined(r),t.sort(((t,e)=>t.origin[r]-e.origin[r]));const n=t.map((t=>B.centerOfBounds(t))).map((t=>t[r])),s=[];for(let t=1;t<n.length;t++){const r=n[t]-n[t-1];s.length<e?(s.push({idx:t,size:r}),s.sort(((t,e)=>t.size-e.size))):r>s[0].size?(s[0]={idx:t,size:r},s.sort(((t,e)=>t.size-e.size))):w.silly("Skipping, size : %d, %j",r,s)}return w.info("Splits at : %j",s),s.sort(((t,e)=>t.idx-e.idx)),s}static clusterGeoBounds(t,e=2,r=5){let n=null;if(e*r<2&&N.throwFormattedErr("Cannot set slices to less than 2 : %d x %d",e,r),t){n=[];const s=Object.assign([],t);s.sort(((t,e)=>t.origin.lng-e.origin.lng));const o=B.calculateSplits(t,r-1,"lng");o.sort(((t,e)=>t.idx-e.idx));for(let t=0;t<=o.length;t++){const r=0===t?0:o[t-1].idx,i=t===o.length?s.length:o[t].idx,a=s.slice(r,i);a.sort(((t,e)=>t.origin.lat-e.origin.lat));const l=B.calculateSplits(a,e-1,"lat");for(let t=0;t<=l.length;t++){const e=0==t?0:l[t-1].idx,r=t===l.length?a.length:l[t].idx,s=a.slice(e,r);n.push(B.combineBounds(s))}}w.info("New bounds : %j",n)}return n}static canonicalizeBounds(t,e=!1){y.notNullOrUndefined(t,"RatchetLocationBounds");const r=Math.min(t.extent.lat,t.origin.lat),n=Math.max(t.extent.lat,t.origin.lat),s=Math.min(t.extent.lng,t.origin.lng),o=Math.max(t.extent.lng,t.origin.lng);if(r<0&&n>0||r>0&&n<0||(r<0&&n>0||r>0&&n<0)){if(e)return t;throw new Error("Cannot canonicalize, bounds crosses over boundary")}return{origin:{lat:r,lng:s},extent:{lat:n,lng:o}}}static combineBounds(t){let e=null;return t&&t.length>0&&(e={origin:{lat:t.map((t=>t.origin.lat)).reduce(((t,e)=>Math.min(t,e))),lng:t.map((t=>t.origin.lng)).reduce(((t,e)=>Math.min(t,e)))},extent:{lat:t.map((t=>t.extent.lat)).reduce(((t,e)=>Math.max(t,e))),lng:t.map((t=>t.extent.lng)).reduce(((t,e)=>Math.max(t,e)))}}),e}static roundLocation(t,e){return{lat:L.safeNumber(t.lat.toFixed(e)),lng:L.safeNumber(t.lng.toFixed(e))}}static locationToBounds(t,e){const r=B.milesInDegLatLng(e,t.lat);return{origin:{lat:t.lat-r,lng:t.lng-r},extent:{lat:t.lat+r,lng:t.lng+r}}}static sameLocation(t,e){return!!t&&!!e&&t.lat===e.lat&&t.lng===e.lng}static pointInBounds(t,e){return!!t&&!!e&&L.between(t.lat,e.origin.lat,e.extent.lat)&&L.between(t.lng,e.origin.lng,e.extent.lng)}static pointInAnyBound(t,e,r=10){let n=!1;if(e.length>r){const r=B.buildRatchetLocationBoundsMap(e);n=B.pointInRatchetLocationBoundsMap(t,r)}else for(let r=0;r<e.length&&!n;r++)n=B.pointInBounds(t,e[r]);return n}static pointInRatchetLocationBoundsMap(t,e){let r=!1;const n=B.findRatchetLocationBoundsMapEntry(t,e);if(n){const e=n.bounds;for(let n=0;n<e.length&&!r;n++)r=B.pointInBounds(t,e[n])}return r}static findRatchetLocationBoundsMapEntry(t,e){let r=null;if(t.lat>=e.latOffset&&t.lat<=e.maxLat&&t.lng>=e.lngOffset&&t.lng<=e.maxLng){const n=Math.trunc(t.lat)-e.latOffset,s=Math.trunc(t.lng)-e.lngOffset;r=e.mapping[n][s]}return r}static buildRatchetLocationBoundsMap(t){const e=t.map((t=>t.origin.lat)).reduce(((t,e)=>Math.min(t,e))),r=t.map((t=>t.origin.lng)).reduce(((t,e)=>Math.min(t,e))),n=t.map((t=>t.extent.lat)).reduce(((t,e)=>Math.max(t,e))),s=t.map((t=>t.extent.lng)).reduce(((t,e)=>Math.max(t,e))),o=Math.trunc(e)-1,i=Math.trunc(r)-1,a=Math.trunc(n)-o+1,l=Math.trunc(s)-i+1,c=[];for(let t=0;t<a;t++){const e=[];for(let r=0;r<l;r++)e.push({lat:o+t,lng:i+r,bounds:[]});c.push(e)}return t.forEach((t=>{for(let e=Math.trunc(t.origin.lat);e<=Math.trunc(t.extent.lat);e++){const r=c[e-o];for(let e=Math.trunc(t.origin.lng);e<=Math.trunc(t.extent.lng);e++){r[e-i].bounds.push(t)}}})),{latOffset:o,lngOffset:i,maxLat:o+a,maxLng:i+l,mapping:c}}}class j{constructor(){}static fetchGlobalRecord(t){let e=null;if(process?.env?(w.silly("Using process.env as global"),e=process.env):global?.process?.env?(w.silly("Using global.process.env as global"),e=global.process.env):global&&(w.silly("Using process.env as global"),e=global),!e){if(!t)throw N.fErr("Could not find process.env OR global in scope");w.silly("Returning null as global"),e=null}return e}static fetchGlobalVar(t){y.notNullOrUndefined(t,"envVar");return j.fetchGlobalRecord()[t]}static setGlobalVar(t,e){y.notNullOrUndefined(t,"envVar"),y.notNullOrUndefined(e,"value");j.fetchGlobalRecord()[t]=e}}class k{key;value}class V{static op(...t){}}class G{title;timeoutMS;__timeoutTokenFlagField=!0;constructor(t,e){this.title=t,this.timeoutMS=e}writeToLog(t=a.warn){w.logByLevel(t,"Timed out after %d ms waiting for results of %s",this.timeoutMS,this.title)}static isTimeoutToken(t){return!!t&&!!t.__timeoutTokenFlagField}}class z{label;starts=new Map;ends=new Map;createTime=Date.now();constructor(t=E.createRandomHexString(4)){this.label=t}start(t){y.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.starts.set(E.trimToNull(t),e),e}stop(t){y.notNullUndefinedOrOnlyWhitespaceString(t,"name");const e=Date.now();return this.ends.set(E.trimToNull(t),e),e}reset(t){y.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.delete(E.trimToNull(t)),this.ends.delete(E.trimToNull(t))}hasTimer(t){return y.notNullUndefinedOrOnlyWhitespaceString(t,"name"),this.starts.has(t)}log(t,e,r=a.info){w.logByLevel(r,this.dump(t,e))}logExpected(t,e,r,n=a.info){w.logByLevel(n,this.dumpExpected(t,e,r))}timerNames(){return Array.from(this.starts.keys())}dumpAll(t=", ",e){const r=this.timerNames().map((t=>this.dump(t,e)));let n="Overall: "+this.dump(null,e);return r.length>0&&(n+=t,n+=r.join(t)),n}dump(t,e){let r=this.label+" ";const n=E.trimToNull(t);if(n&&!this.hasTimer(n))r+="No such timer : "+n;else{const s=t?this.starts.get(n):this.createTime,o=t?this.ends.get(n):Date.now();r+=(n||"Default")+" ",s&&o?r+="completed in "+M.formatMsDuration(o-s,!e):s&&(r+="running for "+M.formatMsDuration(Date.now()-s,!e))}return r}dumpExpected(t,e,r){let n=this.label+" ";const s=E.trimToNull(e);if(s&&!this.hasTimer(s))n+="No such timer : "+s;else if(!t||t<=0)n+="Cannot generate output for 0 percent complete";else if(t>1)n+="Cannot generate output for percent > 1";else{n+=(s||"Default")+" ";const o=e?this.starts.get(s):this.createTime,i=e?this.ends.get(s):Date.now();if(o&&i)n+="completed in "+M.formatMsDuration(i-o,!r);else if(o){const e=Date.now()-o,s=e/t-e;n+="running for "+M.formatMsDuration(e,!r)+" approx "+M.formatMsDuration(s,!r)+" remaining"}}return n}expectedRemainingMS(t,e){let r=null;if(!t||t<=0);else if(t>1);else{const n=E.trimToNull(e),s=e?this.starts.get(n):this.createTime,o=e?this.ends.get(n):Date.now();if(s&&o)r=o-s;else if(s){const e=Date.now()-s;r=e/t-e}}return r}elapsedMS(t){let e=null;const r=E.trimToNull(t);if(r&&!this.hasTimer(r))e=null;else{const n=t?this.starts.get(r):this.createTime,s=t?this.ends.get(r):Date.now();n&&s?e=s-n:n&&(e=Date.now()-n)}return e}}class K{static resolveOnEvent(t,e,r=[],n=null){return t&&e&&0!==e.length&&t.on||Promise.reject("Cannot continue - missing source object or name, or the object is not an event source"),new Promise(((s,o)=>{e.forEach((e=>{t.on(e,(()=>{s(n)}))})),r&&r.forEach((e=>{t.on(e,(t=>{o(t)}))}))}))}static timeout(t,e,r){return Promise.race([t,K.createTimeoutPromise(e,r)])}static createTimeoutPromise(t,e){return new Promise(((r,n)=>{const s=setTimeout((()=>{clearTimeout(s);const n=new G(t,e);r(n)}),e)}))}static async wait(t){await K.createTimeoutPromise("Wait "+t,t),w.silly("Finished wait of %d ms",t)}static dumpResult(t,e=!1){w.info("Success, result was : \n\n%s\n\n",JSON.stringify(t)),process.exit(0)}static dumpError(t,e=!1){w.warn("Failure, err was : \n\n%s\n\n -- \n\n%s\n\n",JSON.stringify(t),String(t)),console.trace(),process.exit(1)}static logErrorAndReturnNull(t,e=!1){return w.warn("Failure, err was : \n\n%s\n\n -- \n\n%s\n\n",JSON.stringify(t),String(t)),null}static runPromiseAndDump(t){t.then(K.dumpResult).catch(K.dumpError)}static async waitFor(t,e,r,n,s="waitFor",o=0){if(null==e||r<50||n<1||o<0||"function"!=typeof t)return w.warn("%s: Invalid configuration for waitFor - exiting immediately",s),w.warn("ExpectedValue : %s ; interval: %d ; maxCycles: %d ; test : %s",e,r,n,typeof t),!1;let i=null;try{i=t(o)}catch(t){return w.warn("%s: Caught error while waiting, giving up",s),!1}return null===i?(w.debug("%s:CurVal was null - aborting",s),!1):i==e?(w.debug("%s:Found expected value",s),!0):o>n?(w.debug("%s:Exceeded max cycles, giving up",s),!1):(w.debug("%s : value not reached yet, waiting (count = %d of %d)",s,o,n),await K.wait(r),K.waitFor(t,e,r,n,s,o+1))}static async runBoundedParallel(t,e,r,n=1,s=a.debug){const o=new z;let i=[],l=e;w.logByLevel(s,"Processing %d total elements %d at a time",e.length,n);const c=r||this;let u=0;const g=l.length;for(;l.length>0;){const e=l.slice(0,Math.min(l.length,n));l=l.slice(e.length);const r=e.map((e=>t.apply(c,e))),a=await Promise.all(r);u+=r.length,i=i.concat(a);const h=u/g;w.logByLevel(s,"%d elements remain : %s",l.length,o.dumpExpected(h))}return o.log(),i}static async runBoundedParallelSingleParam(t,e,r,n=1,s=a.debug){const o=v.wrapElementsInArray(e);return K.runBoundedParallel(t,o,r,n,s)}static async asyncForEachSerial(t,e){for(let r=0;r<t.length;r++)await e(t[r],r,t)}static async asyncForEachParallel(t,e){const r=[];for(let n=0;n<t.length;n++)r.push(e(t[n],n,t));await Promise.all(r)}constructor(){}}class W{static PACIFIC=new W("America/Los_Angeles");timezone;constructor(t){if(!t)throw"Timezone cannot be null";this.timezone=t}currentHour(){return r.local().setZone(this.timezone).hour}toEpochSeconds(t){return Math.round(t.toMillis()/1e3)}startOfTodayEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({hour:0,minute:0,second:0,millisecond:0}))}startOfMatchingDayEpochSeconds(t){return this.toEpochSeconds(r.fromMillis(t).set({hour:0,minute:0,second:0,millisecond:0}))}startOfMatchingDayEpochMS(t){return 1e3*this.startOfMatchingDayEpochSeconds(t)}startOfCurrentHourEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({minute:0,second:0,millisecond:0}))}startOfCurrentMinuteEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({second:0,millisecond:0}))}startOfCurrentSecondEpochSeconds(){return this.toEpochSeconds(r.local().setZone(this.timezone).set({millisecond:0}))}startOfTodayEpochMS(){return r.local().setZone(this.timezone).set({hour:0,minute:0,second:0,millisecond:0}).toMillis()}dailySlotCount(t){return Math.ceil(864e5/t)}currentTimeSlotIdx(t){if(t<1)throw new Error("Cannot process with slot less than one ms wide");const e=this.startOfTodayEpochMS(),r=(new Date).getTime()-e;return Math.floor(r/t)}matchingTimeSlotIdx(t,e){if(e<1)throw new Error("Cannot process with slot less than one ms wide");const r=t-this.startOfMatchingDayEpochMS(t);return Math.floor(r/e)}startOfCurrentSlotEpochMS(t){return this.startOfTodayEpochMS()+this.currentTimeSlotIdx(t)*t}startOfMatchingSlotEpochMS(t,e){return this.startOfMatchingDayEpochMS(t)+this.matchingTimeSlotIdx(t,e)*e}}class H{constructor(){}static mergeArrays(t){let e=null;if(t?.length){let r=0;t.forEach((t=>{r+=t.length})),e=new Uint8Array(r);let n=0;t.forEach((t=>{e.set(t,n),n+=t.length}))}return e}}class J{constructor(){}static async webReadableStreamToUint8Array(t){const e=[],r=new WritableStream({write:async(t,r)=>("string"==typeof t?e.push(E.stringToUint8Array(t)):e.push(t),null),abort(t){N.throwFormattedErr("StringWebWritableStream failure : %s",t)}},{highWaterMark:3,size:()=>1});return await t.pipeTo(r),H.mergeArrays(e)}static async webReadableStreamToString(t){const e=await J.webReadableStreamToUint8Array(t);return(new TextDecoder).decode(e)}static stringToWebReadableStream(t){return new ReadableStream({start:e=>(t&&e.enqueue(t),e.close(),null)},{highWaterMark:t?t.length:null})}}class Z{wrapped;constructor(t,e){if(!t)throw Error("Cannot set level to null/undefined");this.wrapped={lvl:t,timestamp:Date.now(),messageSource:e}}clone(){const t=new Z(this.wrapped.lvl,this.wrapped.messageSource);return t.wrapped=Object.assign({},this.wrapped),t}level(t){if(!t)throw Error("Cannot set level to null/undefined");return this.wrapped.lvl=t,this}timestamp(t){if(!t)throw Error("Cannot set timestamp to null/undefined");return this.wrapped.timestamp=t,this}messageSource(t){return this.wrapped.messageSource=t,this}subVars(t){return this.wrapped.subsVars=t||[],this}params(t){return this.wrapped.params=t||{},this}p(t,e){return this.wrapped.params=this.wrapped.params||{},this.wrapped.params[t]=e,this}toMessage(){return Object.assign({},this.wrapped)}}class q{static LOCAL_IP=null;static findLocalIp(t=!0){return w.info("Attempting to find local IP (V 2)"),q.LOCAL_IP&&t?Promise.resolve(q.LOCAL_IP):"undefined"!=typeof window?new Promise((function(t,e){try{const e=window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection;if(e){const r=new e({iceServers:[]}),n=Object.create(null);n["0.0.0.0"]=!1,r.createDataChannel("",{reliable:!1}),r.onicecandidate=function(e){e.candidate&&q.grepSDP("a="+e.candidate.candidate,n,t)},r.createOffer((function(e){q.grepSDP(e.sdp,n,t),r.setLocalDescription(e)}),(function(e){w.warn("Offer failed : %s",e),t(q.updateLocalIP("FIND_UNSUPPORTED"))}))}else w.warn("IP Address find not supported on this device"),t(q.updateLocalIP("FIND_UNSUPPORTED"))}catch(e){w.warn("Error finding local ip address : %s",e),t(q.updateLocalIP("ERROR"))}})):(w.warn("Window not found, cannot calculate local ip"),Promise.resolve(q.updateLocalIP("NO_WINDOW")))}static parseUrl(t){const e=t.match(/^(https?\:)\/\/(([^:\/?#]*)(?:\:([0-9]+))?)([\/]{0,1}[^?#]*)(\?[^#]*|)(#.*|)$/);return e&&{href:t,protocol:e[1],host:e[2],hostname:e[3],port:e[4],pathname:e[5],search:e[6],hash:e[7]}}static updateLocalIP(t){return q.LOCAL_IP=t,q.LOCAL_IP}static grepSDP(t,e,r){t.split("\r\n").forEach((function(t){if(~t.indexOf("a=candidate")){const n=t.split(" "),s=n[4];"host"===n[7]&&q.updateAddressList(s,e,r)}else if(~t.indexOf("c=")){const n=t.split(" ")[2];q.updateAddressList(n,e,r)}}))}static updateAddressList(t,e,r){if(t in e)return;e[t]=!0;const n=Object.keys(e).filter((function(t){return e[t]}));if(n&&1==n.length)r(q.updateLocalIP(n[0]));else{const t=n.sort().join(",");w.warn("Multiple addresses found, returning sorted join : %s",t),r(q.updateLocalIP(t))}}}class X{currentIp="UNSET";constructor(){q.findLocalIp(!1).then((t=>{w.info("Setting local IP to %s",t),this.currentIp=t})).catch((t=>{w.warn("Unable to set current IP - leaving as UNSET : %s",t)}))}ready(){return"UNSET"!==this.currentIp}currentLocalIpAddress(){return this.currentIp}}class ${fixed;constructor(t){this.fixed=t}currentLocalIpAddress(){return this.fixed}}class Y extends Error{static RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY="__ratchetRestfulApiHttpErrorFlag";_httpStatusCode=500;_errors;_detailErrorCode;_endUserErrors;_details;_requestId;_wrappedError;constructor(...t){super(Y.combineErrorStringsWithDefault(t)),Object.setPrototypeOf(this,Y.prototype),this._errors=t,this[Y.RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY]=!0}static combineErrorStringsWithDefault(t,e="Internal Server Error"){return t&&t.length>0?t.join(","):e}setFormattedErrorMessage(e,...r){const n=t.format(e,...r);this.errors=[n]}withFormattedErrorMessage(t,...e){return this.setFormattedErrorMessage(t,...e),this}withHttpStatusCode(t){return this.httpStatusCode=t,this}withErrors(t){return this.errors=t,this}withDetailErrorCode(t){return this._detailErrorCode=t,this}withEndUserErrors(t){return this._endUserErrors=t,this}withDetails(t){return this._details=t,this}withRequestId(t){return this._requestId=t,this}withWrappedError(t){return this._wrappedError=t,this}isWrappedError(){return!!this._wrappedError}static wrapError(t){let e=null;return e=Y.objectIsRestfulApiHttpError(t)?t:new Y(t.message).withWrappedError(t).withHttpStatusCode(500),e}static objectIsRestfulApiHttpError(t){return t&&!0===t[Y.RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY]}get httpStatusCode(){return this._httpStatusCode}get errors(){return this._errors}get detailErrorCode(){return this._detailErrorCode}get endUserErrors(){return this._endUserErrors}get details(){return this._details}get requestId(){return this._requestId}get wrappedError(){return this._wrappedError}set httpStatusCode(t){this._httpStatusCode=t||500}set errors(t){this._errors=t||["Internal Server Error"],this.message=Y.combineErrorStringsWithDefault(this._errors)}set detailErrorCode(t){this._detailErrorCode=t}set endUserErrors(t){this._endUserErrors=t}set details(t){this._details=t}set requestId(t){this._requestId=t||"MISSING"}set wrappedError(t){this._wrappedError=t}static errorIsX0x(t,e){let r=!1;if(t&&Y.objectIsRestfulApiHttpError(t)){const n=t,s=L.safeNumber(n.httpStatusCode),o=100*e;r=s>=o&&s<=o+99}return r}static errorIs40x(t){return Y.errorIsX0x(t,4)}static errorIs50x(t){return Y.errorIsX0x(t,5)}}class Q{static GOOGLE_VERIFY_URL="https://www.google.com/recaptcha/api/siteverify?secret={{KEY}}&response={{TOKEN}}";static async verifyRecaptchaToken(t,e,r=i){w.debug("Verifying recaptcha token : %s",e);let n=null;if(!E.safeString(e))return w.warn("Recaptcha validation error, no token passed : %s",e),n;w.info("Validating Recaptcha via Google API : %s",e);let s=Q.GOOGLE_VERIFY_URL;s=s.split("{{KEY}}").join(t),s=s.split("{{TOKEN}}").join(e);try{const t=await r(s),e=await t.json();n=e&&e.success}catch(t){w.error("Failed to read from google : %s",t),n=!1}return n}}class tt{accountSid;authToken;outBoundNumber;static TWILLIO_BASE_API_URL="https://api.twilio.com/2010-04-01";constructor(t,e,r){this.accountSid=t,this.authToken=e,this.outBoundNumber=r,y.notNullOrUndefined(t,"accountSid"),y.notNullOrUndefined(e,"authToken"),y.notNullOrUndefined(r,"outBoundNumber"),y.true(tt.isValidE164Number(r),"outBoundNumber invalid format")}static async sendMessageDirect(t,e,r,n,s){const o=new tt(t,e,r);return await o.sendMessage(n,s)}static generateTwilioBasicAuth(t,e){return"Basic "+A.generateBase64VersionOfString(t+":"+e)}async sendMessage(t,e){const r=[];if(y.notNullOrUndefined(t,"recipientPhoneNumbers"),y.notNullOrUndefined(E.trimToNull(e),"message"),y.true(t.length>0,"recipientPhoneNumbers non-empty"),t.forEach((t=>{y.true(tt.isValidE164Number(t),t+" is not valid")})),t&&t.length>0&&E.trimToNull(e)){w.info("Sending %s to %j",e,t);for(let n=0;n<t.length;n++){const s=t[n];if(w.info("To: %s",s),!tt.isValidE164Number(s))throw new Error("number must be E164 format!");const o="Body="+encodeURIComponent(e)+"&From="+encodeURIComponent(this.outBoundNumber)+"&To="+encodeURIComponent(s),a={method:"post",headers:{authorization:tt.generateTwilioBasicAuth(this.accountSid,this.authToken),"Content-Type":"application/x-www-form-urlencoded"},body:o},l=await i(tt.TWILLIO_BASE_API_URL+"/Accounts/"+this.accountSid+"/Messages.json",a),c=await l.json();w.debug("TwilioRatchet: For %s got %j",s,c),r.push(c)}}else w.warn("Not sending empty message / empty recipients");return r}static isValidE164Number(t){return/^\+?[1-9]\d{1,14}$/.test(t)}}class et{static keysOnly(t){return{transform:(e,r,n)=>r?t.transform(e,r,n):e}}static valuesOnly(t){return{transform:(e,r,n)=>r?e:t.transform(e,r,n)}}static stringReplaceTransform(t,e){return{transform:(r,n,s)=>r==t?e:r}}static stripStringTransform(t){return{transform:(e,r,n)=>e==t?null:e}}static retainAll(t){return{transform:(e,r,n)=>-1==t.indexOf(e)?null:e}}static removeAll(t){return{transform:(e,r,n)=>t.indexOf(e)>-1?null:e}}static snakeToCamelCase(){return{transform(t,e,r){let n=t;return"string"==typeof t&&(n=t.replace(/_([a-z0-9])/gi,(function(t,e){return e.toUpperCase()}))),n}}}static stringToNumber(){return{transform(t,e,r){let n=t;if("string"==typeof t){const e=L.safeNumber(t);null!==e&&(n=e)}return n}}}static camelToSnakeCase(){return{transform(t,e,r){let n=t;return"string"==typeof t&&(n=t.replace(/\.?([A-Z]+)/g,(function(t,e){return"_"+e.toLowerCase()})).replace(/^_/,"")),n}}}static concatenateToNewField(t,e,r=!0){return{transform(n,s,o){if("object"==typeof n){let s="";e.forEach((t=>{if(null!=s){const e=n[t];s=null==e&&r?null:null==e?s:s+String(e)}})),null!=s&&(n[t]=s,e.forEach((t=>delete n[t])))}return n}}}static numberToBool(t){return{transform:(e,r,n)=>("object"==typeof e&&t.forEach((t=>{const r=e[t];if("number"==typeof r){const n=0!=r;e[t]=n}})),e)}}static boolToNumber(t){return{transform:(e,r,n)=>("object"==typeof e&&t.forEach((t=>{const r=e[t];if("boolean"==typeof r){const n=r?1:0;e[t]=n}})),e)}}static makeDuplicateField(t,e){return{transform(r,n,s){if("object"==typeof r){const n=r[t];null!=n&&(r[e]=n)}return r}}}static addField(t,e){return{transform:(r,n,s)=>("object"==typeof r&&(r[t]=e),r)}}static reformatDateFields(t,e,n){return{transform:(s,o,i)=>("object"==typeof s&&t.forEach((t=>{const o=s[t];if(null!=o)try{const i=r.fromFormat(o,e).toFormat(n);s[t]=i}catch(t){w.warn("Failed to reparse date %s in format %s : %s",o,e,t)}})),s)}}}class rt{static transform(t,e=[]){return rt.transformGeneric(t,e,!1,null)}static transformGeneric(t,e=[],r,n){let s=null;const o=typeof t;switch(o){case"undefined":case"symbol":case"function":s=t;break;case"number":case"string":case"boolean":s=rt.applyTransformToPrimitive(t,e,r,n);break;case"object":s=rt.applyTransformToObject(t,e,r,n);break;default:throw new Error("Unrecognized type "+o)}return s}static applyTransformToObject(t,e=[],r,n=null){w.silly("Tranform: %j, %s, %j",t,r,n);let s=null;return null!=t&&(Array.isArray(t)?(s=[],t.forEach((n=>{const o=rt.transformGeneric(n,e,r,t);null!=o&&s.push(o)}))):(s={},Object.keys(t).forEach((r=>{const n=t[r],o=rt.applyTransformToPrimitive(r,e,!0,t);if(null!=o){let r=rt.transformGeneric(n,e,!1,t);r=rt.applyTransformToPrimitive(r,e,!1,t),null!=r&&(s[o]=r)}})),s=rt.applyTransformToPrimitive(s,e,!1,t))),s}static applyTransformToPrimitive(t,e=[],r,n){let s=t;return e.forEach((t=>{s=null==s?null:t.transform(s,r,n)})),s}}!function(t){t.Success="Success",t.RolledBack="RolledBack",t.RollbackFailed="RollbackFailed"}(g||(g={}));class nt{static async execute(t,e,r){y.notNullOrUndefined(t,"steps"),y.notNullOrUndefined(e,"initialContext"),y.true(t.length>0,"steps may not be empty");const n=Object.assign({},r||{});n.stepLogLevel=n.stepLogLevel||a.info;const s={finalContext:e,finalState:null},o=t.map(((t,e)=>t.name||"Step "+e));w.info("Beginning transaction of %d steps",t.length);let i=0;do{w.logByLevel(n.stepLogLevel,"Processing step %d of %d (%s)",i+1,t.length,o[i]);try{await t[i].execute(s.finalContext,i),i++}catch(t){w.error("Failure detected on step %d : %s : %s : Rolling back",i,o[i],t,t),s.error=t,s.errorStep=i}}while(!s.error&&i<t.length);if(s.error)do{w.logByLevel(n.stepLogLevel,"Rolling back step %d of %d (%s)",i+1,t.length,o[i]);try{t[i].rollback?await t[i].rollback(s.finalContext,i):w.info("Skipping - no rollback defined")}catch(t){w.error("Very bad - rollback code failed on step %d : %s : Aborting in invalid state: %s",i,o[i],t,t),s.rollbackError=t,s.rollbackErrorStep=i}i--}while(i>=0);if(s.finalState=s.rollbackError?g.RollbackFailed:s.error?g.RolledBack:g.Success,w.info("Transaction completed with status : %s",s.finalState),n?.executeAfterRollback&&s.finalState!==g.Success)try{w.info("Applying executeAfterRollback"),await n.executeAfterRollback(s)}catch(t){w.error("Very bad - failure in executeAfterRollback : %s",t,t)}if(n?.executeAfterRollbackFailure&&s.finalState!==g.Success)try{w.info("Applying executeAfterRollbackFailure"),await n.executeAfterRollbackFailure(s)}catch(t){w.error("Very bad - failure in executeAfterRollbackFailure : %s",t,t)}return s}}export{v as ArrayRatchet,A as Base64Ratchet,T as BooleanRatchet,X as BrowserLocalIpProvider,et as BuiltInTransforms,d as ClassicSingleLineLogMessageFormatter,I as CompositeLastSuccessProvider,R as DateRatchet,M as DurationRatchet,C as EnumRatchet,N as ErrorRatchet,F as EsmRatchet,u as ExpiredJwtHandling,D as ExpiringObject,U as ExpiringObjectConfig,$ as FixedLocalIpProvider,B as GeolocationRatchet,j as GlobalRatchet,Q as GoogleRecaptchaRatchet,O as Histogram,x as JwtRatchet,k as KeyValue,Z as LogMessageBuilder,c as LogMessageFormatType,w as Logger,b as LoggerInstance,a as LoggerLevelName,l as LoggerOutputFunction,h as LoggerRingBuffer,f as LoggerUtil,P as MapRatchet,q as NetworkRatchet,V as No,p as NoneLogMessageFormatter,L as NumberRatchet,K as PromiseRatchet,S as Ratchet2d,_ as RatchetInfo,y as RequireRatchet,Y as RestfulApiHttpError,z as StopWatch,E as StringRatchet,m as StructuredJsonLogMessageFormatter,W as TimeZoneRatchet,G as TimeoutToken,g as TransactionFinalState,nt as TransactionRatchet,rt as TransformRatchet,tt as TwilioRatchet,H as Uint8ArrayRatchet,J as WebStreamRatchet};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/lib/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/logger/logger-level-name.ts","../src/logger/logger-output-function.ts","../src/logger/log-message-format-type.ts","../src/jwt/expired-jwt-handling.ts","../src/tx/transaction-final-state.ts","../src/logger/logger-ring-buffer.ts","../src/logger/logger-util.ts","../src/logger/classic-single-line-log-message-formatter.ts","../src/logger/none-log-message-formatter.ts","../src/logger/structured-json-log-message-formatter.ts","../src/lang/require-ratchet.ts","../src/lang/string-ratchet.ts","../src/logger/logger-instance.ts","../src/logger/logger.ts","../src/lang/number-ratchet.ts","../src/lang/boolean-ratchet.ts","../src/2d/ratchet-2d.ts","../src/build/ratchet-common-info.ts","../src/histogram/histogram.ts","../src/lang/duration-ratchet.ts","../src/jwt/jwt-ratchet.ts","../src/lang/error-ratchet.ts","../src/lang/map-ratchet.ts","../src/lang/array-ratchet.ts","../src/lang/base64-ratchet.ts","../src/lang/composite-last-success-provider.ts","../src/lang/date-ratchet.ts","../src/lang/enum-ratchet.ts","../src/lang/esm-ratchet.ts","../src/lang/expiring-object.ts","../src/lang/geolocation-ratchet.ts","../src/lang/global-ratchet.ts","../src/lang/key-value.ts","../src/lang/no.ts","../src/lang/timeout-token.ts","../src/lang/stop-watch.ts","../src/lang/promise-ratchet.ts","../src/lang/time-zone-ratchet.ts","../src/lang/uint-8-array-ratchet.ts","../src/lang/web-stream-ratchet.ts","../src/logger/log-message-builder.ts","../src/network/network-ratchet.ts","../src/network/browser-local-ip-provider.ts","../src/network/fixed-local-ip-provider.ts","../src/network/restful-api-http-error.ts","../src/third-party/google/google-recaptcha-ratchet.ts","../src/third-party/twilio/twilio-ratchet.ts","../src/transform/built-in-transforms.ts","../src/transform/transform-ratchet.ts","../src/tx/transaction-ratchet.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["LoggerLevelName","LoggerOutputFunction","LogMessageFormatType","ExpiredJwtHandling","TransactionFinalState","LoggerRingBuffer","_lastLogMessage","messageSource","timestamp","Date","getTime","lvl","info","_buffer","_bufferIdx","_lastSnapshotIdx","_bufferSize","constructor","size","Error","this","currentIndex","lastSnapshotIdx","bufferSize","newSize","clearRingBuffer","getMessages","inStartFrom","clear","reverseSort","rval","start","slice","firstIdx","i","Math","max","push","reverse","takeSnapshot","trailingEdge","messages","logMessagesTruncated","getLastLogMessage","Object","assign","addToRingBuffer","newMsg","LoggerUtil","static","error","warn","verbose","debug","silly","handlerFunctionMap","outputFn","Console","output","Map","StdOut","process","stdout","write","myStdOut","chunk","cb","set","console","ConsoleNoDebug","log","defaultHandlerFunction","levelIsEnabled","targetLevel","currentEnabled","idxTarget","LOG_LEVELS_IN_ORDER","indexOf","ClassicSingleLineLogMessageFormatter","formatMessage","msg","meta","tmp","options","trace","util","format","subsVars","NoneLogMessageFormatter","StructuredJsonLogMessageFormatter","globalVars","params","toISOString","loggerInstanceName","loggerInstanceId","JSON","stringify","RequireRatchet","isNullOrUndefined","ob","notNullOrUndefined","name","notNullUndefinedOrOnlyWhitespaceString","trim","notNullUndefinedOrEmptyArray","length","equal","ob1","ob2","message","noNullOrUndefinedValuesInArray","arr","expectedLength","customMsg","noNullOrUndefinedValuesInRestArgs","restArgs","constructorArgumentsMatchLengthAndAreNonNull","args","Array","from","arguments","len","StringRatchet","DIGITS","UPPER_CASE_LATIN","LOWER_CASE_LATIN","stringIsInGivenAlphabet","input","alphabet","includes","charAt","stringToUint8Array","val","TextEncoder","encode","uint8ArrayToString","TextDecoder","decode","attemptJsonParse","trimToNull","parse","err","canParseAsJson","allUnique","check","Set","test","has","add","allPermutationsOfLength","true","step","forEach","s","createType4Guid","replace","c","r","random","toString","createRandomHexString","floor","canonicalize","value","toLowerCase","RFC_3986_RESERVED","formatBytes","bytes","decimals","dm","parseFloat","pow","toFixed","safeString","String","stringContainsOnlyNumbers","stringContainsOnlyAlphanumeric","stringContainsOnlyHex","stringContainsOnly","inVal","validCharsIn","validChars","obscure","prefixLength","suffixLength","pl","sl","rem","substring","leadingZeros","pad","negative","sVal","startsWith","trimToEmpty","x","trimAllStringPropertiesToNullInPlace","trimAllStringPropertiesInPlace","trimAllStringPropertiesToEmptyInPlace","toEmpty","keys","key","stripNonNumeric","csvSafe","split","join","stripNonAscii","reduce","previousValue","currentValue","charCodeAt","LoggerInstance","_loggerMeta","_ringBuffer","_formatter","_level","_handlerFunctionMap","_options","inOptions","addPreProcessor","proc","preProcessors","ringBuffer","dumpConfigurationIntoLog","dumpOptionsIntoLog","labels","map","p","label","changeRingBufferSize","ringBufferSize","updateTracePrefix","newValue","newOpts","formatType","None","StructuredJson","initialLevel","outputFunction","oldId","level","newLevel","consoleLogPassThru","passThruPrefix","unshift","get","createLogMessage","now","formatMessages","msgs","m","filter","recordMessageBuilder","msgBuild","recordMessage","toMessage","inMsg","errorP","warnP","infoP","verboseP","debugP","sillyP","logByLevel","importMessages","prefixIn","addTimestamp","prefix","mOut","Logger","ClassicSingleLine","applyDefaultsToOptions","DEFAULT_OPTIONS","changeDefaultOptions","retroactive","LOGGER_INSTANCES","values","li","getLogger","loggerName","inst","getRingBuffer","getLevel","setLevel","getOptions","buf","NumberRatchet","toFixedDecimalNumber","placesAfterPoint","v","safeNumber","MAX_LEADING_ZEROS_FORMAT_LENGTH","between","inTest","inP1","inP2","p1","p2","ifNotNumber","useDefaultForNullAndUndefined","type","Number","isNaN","undefined","numberCSVToList","inputCSV","fitToWindow","b1","b2","low","min","high","windowSize","groupNumbersIntoContiguousRanges","inputData","minRangeSize","sort","a","b","singles","ranges","j","distributeItemsEvenly","items","buckets","offset","loc","createRange","minInclusive","maxExclusive","BooleanRatchet","allTrue","vals","emptyArraysReturn","anyTrue","parseBool","intToBool","boolToInt","Ratchet2d","translateToOriginVector","points","validPoints","y","minimalContainingPlane","width","height","scaleVector","src","dst","validPlane","samePoint","atLeastOneDimensionShared","plane","validLine","line","validPoint","validLines","lines","l","validPolyLine","pline","pts","polyLineToLines","lastPointOnPolyLine","polyLine","lineToPolyLine","linesToPolyLines","currentPLine","pt","planeContainsPoint","planeContainsPoints","linesToPoints","flat","pointsToLines","rotateRightAboutOrigin90Degrees","times","translate","xToY","mirrorPointsOnPlane","timesToRotate","planeContainsLines","planeContainsPolyLine","planeContainsLine","xlate","mirrorX","mirrorY","transformPointsToNewPlane","scale","rightToLeft","topToBottom","transformPointToNewPlane","point","transformLines","fitCurve","curveDef","inputX","idx","xSpread","ySpread","yAdd","RatchetInfo","buildInformation","version","hash","branch","tag","timeBuiltISO","notes","Histogram","entries","update","addValue","entry","find","e","item","count","localeCompare","sortKeys","getEntries","getTotalCount","h","countForValue","percentForValue","total","DurationRatchet","formatMsDuration","ms","includeMS","rem_ms","seconds","minutes","hours","days","f","colonFormatMsDuration","daysBetween","d1","d2","DateTime","fromJSDate","diff","createSteps","startEpochMS","endEpochMS","timezone","outputFormat","stepUnit","curDate","fromMillis","setZone","endDate","toFormat","plus","JwtRatchet","_encryptionKeyPromise","_decryptKeysPromise","_jtiGenerator","_decryptOnlyKeyUseLogLevel","_parseFailureLogLevel","encryptionKeyPromise","decryptKeysPromise","jtiGenerator","decryptOnlyKeyUseLogLevel","parseFailureLogLevel","hasExpiredFlag","EXPIRED_FLAG_NAME","invalidSafeDecode","payloadString","decryptKey","logLevel","jwt","verify","ignoreExpiration","secondsRemainingUntilExpiration","decodeTokenNoVerify","nowSecond","exp","expSeconds","msRemainingUntilExpiration","secs","decodeToken","expiredHandling","RETURN_NULL","encKeys","encryptionKeyArray","decKeys","concat","keysTried","payload","nowSeconds","nbfSeconds","nbf","age","THROW_EXCEPTION","ADD_FLAG","encKey","isArray","selectRandomEncryptionKey","createTokenString","expirationSeconds","overrideEncryptionKey","jti","expires","sign","refreshJWTString","tokenString","allowExpired","handling","originalDurationSeconds","iat","newExpirationSeconds","removeJwtFields","removeExpiredFlag","token","k","ErrorRatchet","safeStringifyErr","err2","asErr","fErr","throwFormattedErr","MapRatchet","expandNestedKeysToObjects","separator","path","target","splice","mapByUniqueProperty","propName","groupByProperty","findValue","toSearch","findValueDotPath","dotPath","simpleDeepCompare","object1","object2","toKeyValueList","returnArray","fromKeyValueList","list","cleanup","obj","stripZero","stripNull","stripUndefined","stripEmptyString","o","extractValueFromMapIgnoreCase","finder","newVal","safeCallFunction","fnName","caseInsensitiveAccess","keyName","keyNameCI","ArrayRatchet","wrapElementsInArray","compareTwoArrays","ar1","ar2","fn","id1","id2","matching","setOneOnly","setTwoOnly","aVal","pVal","comp","extractSubarrayFromSortedByNumberField","fieldDotPath","bottomIdx","findSplit","topIdx","bottomValue","curIdx","curVal","Base64Ratchet","safeObjectToBase64JSON","generateBase64VersionOfString","safeBase64JSONParse","base64StringToString","generateBase64VersionOfBlob","blob","Promise","resolve","reject","reader","FileReader","onloadend","result","readAsDataURL","generateBase64VersionOfUint8Array","UTF8_ENCODER","btoa","UTF8_DECODER","base64StringToUint8Array","b64encoded","Uint8Array","atob","encoding","CompositeLastSuccessProvider","sources","mostRecent","mostRecentSrc","lastSuccess","DateRatchet","formatFullDate","FULL_DATE_FORMAT","formatDefaultDateOnly","DEFAULT_DATE_FORMAT","parseDefaultDate","fromFormat","toJSDate","parseCommonUsDate","templ","COMMON_US_DATE_FORMAT","EnumRatchet","listEnumKeys","enumeration","$enum","getValues","keyToEnum","caseSensitive","asValueOrDefault","mKey","toUpperCase","parseCsvToEnumArray","EsmRatchet","fetchDirName","root","url","fileURLToPath","URL","fetchFileName","ExpiringObject","_config","_cacheObject","_lastUpdatedEpochMS","_timeRemainingMS","inputConfig","defaultConfig","overrideTimeRemainingMS","timeToLiveMS","initialValue","defaultTimeRemainingMS","generator","lastUpdatedEpochMS","ageMS","doNotUpdateClock","fetchCacheObjectTimeRemainingMS","fetch","ExpiringObjectConfig","GeolocationRatchet","distanceBetweenLocations","lat1","lon1","lat2","lon2","unit","uU","radlat1","PI","radlat2","theta","radtheta","dist","sin","cos","acos","distanceBetweenRatchetGeoLocations","loc1","loc2","lat","lng","degreeOfLatLngInMiles","latitudeInDecimalDegress","latInRads","cosLat","milesInDegLatLng","miles","centerOfBounds","bounds","extent","origin","calculateSplits","slices","field","splits","clusterGeoBounds","inputVal","latSlices","lngSlices","lngSplits","lngStartIdx","lngEndIdx","lngBatch","latSplits","latStartIdx","latEndIdx","latBatch","combineBounds","canonicalizeBounds","inp","allowCrossover","minLat","maxLat","minLng","maxLng","roundLocation","roundDigits","locationToBounds","radiusMiles","sameLocation","pointInBounds","bound","pointInAnyBound","inBounds","minPointsBeforeMapping","mp","buildRatchetLocationBoundsMap","pointInRatchetLocationBoundsMap","findRatchetLocationBoundsMapEntry","latOffset","lngOffset","ltIdx","trunc","lngIdx","mapping","latEntries","lngEntries","newRow","row","GlobalRatchet","fetchGlobalRecord","returnNullOnNone","env","global","fetchGlobalVar","envVar","setGlobalVar","KeyValue","No","op","TimeoutToken","title","timeoutMS","__timeoutTokenFlagField","writeToLog","isTimeoutToken","StopWatch","starts","ends","createTime","stop","reset","delete","hasTimer","shortForm","dump","logExpected","pctComplete","dumpExpected","timerNames","dumpAll","outs","cleanName","end","elapsedMS","remainMS","expectedRemainingMS","PromiseRatchet","resolveOnEvent","evtSrc","okEvtNames","errEvtNames","res","rej","on","timeout","srcPromise","race","createTimeoutPromise","id","setTimeout","clearTimeout","wait","time","dumpResult","autoDebug","exit","dumpError","logErrorAndReturnNull","runPromiseAndDump","promise","then","catch","waitFor","testFunction","expectedValue","intervalMS","maxCycles","runBoundedParallel","promiseFn","context","maxConcurrent","sw","remain","ctx","processed","totalCount","curBatch","proms","apply","all","pct","runBoundedParallelSingleParam","wrappedParams","asyncForEachSerial","array","callback","index","asyncForEachParallel","TimeZoneRatchet","currentHour","local","hour","toEpochSeconds","dt","round","toMillis","startOfTodayEpochSeconds","minute","second","millisecond","startOfMatchingDayEpochSeconds","inputTS","startOfMatchingDayEpochMS","startOfCurrentHourEpochSeconds","startOfCurrentMinuteEpochSeconds","startOfCurrentSecondEpochSeconds","startOfTodayEpochMS","dailySlotCount","slotWidthMs","ceil","currentTimeSlotIdx","startOfToday","delta","matchingTimeSlotIdx","startOfCurrentSlotEpochMS","startOfMatchingSlotEpochMS","Uint8ArrayRatchet","mergeArrays","myArrays","WebStreamRatchet","webReadableStreamToUint8Array","stream","out","writer","WritableStream","async","controller","abort","reason","highWaterMark","pipeTo","webReadableStreamToString","stringToWebReadableStream","ReadableStream","enqueue","close","LogMessageBuilder","wrapped","clone","subVars","NetworkRatchet","findLocalIp","useCache","LOCAL_IP","window","RTCPeerConnection","rtc","iceServers","addrs","create","createDataChannel","reliable","onicecandidate","evt","candidate","grepSDP","createOffer","offerDesc","sdp","setLocalDescription","updateLocalIP","parseUrl","href","match","protocol","host","hostname","port","pathname","search","newIp","parts","addr","updateAddressList","newAddr","displayAddrs","multi","BrowserLocalIpProvider","currentIp","ready","currentLocalIpAddress","FixedLocalIpProvider","fixed","RestfulApiHttpError","_httpStatusCode","_errors","_detailErrorCode","_endUserErrors","_details","_requestId","_wrappedError","errors","super","combineErrorStringsWithDefault","setPrototypeOf","prototype","RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY","defMessage","setFormattedErrorMessage","withFormattedErrorMessage","withHttpStatusCode","httpStatusCode","withErrors","withDetailErrorCode","detailErrorCode","withEndUserErrors","endUserErrors","withDetails","details","withRequestId","requestId","withWrappedError","isWrappedError","wrapError","objectIsRestfulApiHttpError","wrappedError","errorIsX0x","errIn","xClass","bot","errorIs40x","errorIs50x","GoogleRecaptchaRatchet","verifyRecaptchaToken","keySecret","fetchFn","GOOGLE_VERIFY_URL","resp","body","json","success","TwilioRatchet","accountSid","authToken","outBoundNumber","isValidE164Number","sendMessageDirect","recipientPhoneNumbers","ratchet","sendMessage","generateTwilioBasicAuth","sid","phoneNumber","encodeURIComponent","post","method","headers","authorization","TWILLIO_BASE_API_URL","parsedResponse","num","BuiltInTransforms","keysOnly","rule","transform","isKey","valuesOnly","stringReplaceTransform","stripStringTransform","retainAll","removeAll","snakeToCamelCase","group1","stringToNumber","camelToSnakeCase","concatenateToNewField","newFieldName","oldFieldNamesInOrder","abortIfFieldMissing","n","temp","numberToBool","fieldNames","oldVal","boolToNumber","makeDuplicateField","oldName","newName","addField","valueToAdd","reformatDateFields","oldFormat","newFormat","oldValue","TransformRatchet","toTransform","rules","transformGeneric","applyTransformToPrimitive","applyTransformToObject","newKey","TransactionRatchet","execute","steps","initialContext","inConfiguration","config","stepLogLevel","finalContext","finalState","stepNames","errorStep","rollback","rollbackError","rollbackErrorStep","RollbackFailed","RolledBack","Success","executeAfterRollback","executeAfterRollbackFailure"],"mappings":"wKAAYA,ECAAC,ECAAC,ECAAC,ECAAC,GJAZ,SAAYJ,GACVA,EAAA,MAAA,QACAA,EAAA,KAAA,OACAA,EAAA,KAAA,OACAA,EAAA,QAAA,UACAA,EAAA,MAAA,QACAA,EAAA,MAAA,OACD,CAPD,CAAYA,IAAAA,EAOX,CAAA,UKHYK,EACHC,gBAA8B,CAAEC,cAAe,iBAAkBC,WAAW,IAAIC,MAAOC,UAAWC,IAAKX,EAAgBY,MAEvHC,QAAwB,GACxBC,WAAa,EACbC,iBAAmB,EACnBC,YAER,WAAAC,CAAYC,GACV,IAAKA,EACH,MAAM,IAAIC,MAAM,uCAElBC,KAAKJ,YAAcE,CACpB,CAED,gBAAWG,GACT,OAAOD,KAAKN,UACb,CAED,mBAAWQ,GACT,OAAOF,KAAKL,gBACb,CAED,cAAWQ,CAAWC,GACpB,IAAKA,EACH,MAAM,IAAIL,MAAM,uCAElBC,KAAKJ,YAAcQ,EACnBJ,KAAKK,iBACN,CAEM,WAAAC,CAAYC,EAAsB,KAAMC,GAAQ,EAAOC,GAAc,GAC1E,IAAIC,EAAqB,KACzB,GAAIV,KAAKN,WAAaM,KAAKJ,YAAa,CACtC,MAAMe,EAA+B,MAAfJ,EAAsB,EAAIA,EAChDG,EAAOV,KAAKP,QAAQmB,MAAMD,EAAOX,KAAKN,WACvC,KAAM,CACLgB,EAAO,GAEP,MAAMG,EAAWb,KAAKN,WAAaM,KAAKJ,YAGxC,IAAK,IAAIkB,EAFSP,EAAcQ,KAAKC,IAAIT,EAAaM,GAAYA,EAE1CC,EAAId,KAAKN,WAAYoB,IAC3CJ,EAAKO,KAAKjB,KAAKP,QAAQqB,EAAId,KAAKJ,aAEnC,CAUD,OARIY,GACFR,KAAKK,kBAGHI,IACFC,EAAOA,EAAKQ,WAGPR,CACR,CAEM,YAAAS,GACL,MAAMC,EAAeL,KAAKC,IAAI,EAAGhB,KAAKN,WAAaM,KAAKJ,aAClDc,EAAoB,CACxBW,SAAUrB,KAAKM,YAAYN,KAAKL,kBAChC2B,qBAAsBP,KAAKC,IAAI,EAAGI,EAAepB,KAAKL,mBAIxD,OADAK,KAAKL,iBAAmBK,KAAKN,WACtBgB,CACR,CAEM,iBAAAa,GACL,OAAOC,OAAOC,OAAO,CAAE,EAAEzB,KAAKd,gBAC/B,CAEO,eAAAmB,GACNL,KAAKP,QAAU,GACfO,KAAKN,WAAa,EAClBM,KAAKL,iBAAmB,CACzB,CAEM,eAAA+B,CAAgBC,GACrB3B,KAAKd,gBAAkByC,EACvB3B,KAAKP,QAAQO,KAAKN,WAAaM,KAAKJ,aAAe+B,EACnD3B,KAAKN,YACN,GJvFH,SAAYb,GACVA,EAAA,QAAA,UACAA,EAAA,eAAA,iBACAA,EAAA,OAAA,QACD,CAJD,CAAYA,IAAAA,EAIX,CAAA,UKDY+C,EACHC,2BAAgD,CACtDjD,EAAgBkD,MAChBlD,EAAgBmD,KAChBnD,EAAgBY,KAChBZ,EAAgBoD,QAChBpD,EAAgBqD,MAChBrD,EAAgBsD,OAGX,yBAAOC,CAAmBC,EAAiCvD,EAAqBwD,SACrF,MAAMC,EAAiD,IAAIC,IAC3D,GAAIH,IAAavD,EAAqB2D,OAAQ,CAC5C,IAAKC,SAASC,QAAQC,MACpB,MAAM,IAAI5C,MAAM,4DAIlB,MAAM6C,EAA6B,CAACC,EAAOC,IAAOL,QAAQC,OAAOC,MAAME,EAAO,QAASC,GACvFR,EAAOS,IAAInE,EAAgBkD,MAAOc,GAClCN,EAAOS,IAAInE,EAAgBmD,KAAMa,GACjCN,EAAOS,IAAInE,EAAgBY,KAAMoD,GACjCN,EAAOS,IAAInE,EAAgBoD,QAASY,GACpCN,EAAOS,IAAInE,EAAgBqD,MAAOW,GAClCN,EAAOS,IAAInE,EAAgBsD,MAAOU,EACnC,MACCN,EAAOS,IAAInE,EAAgBkD,MAAOkB,QAAQlB,OAC1CQ,EAAOS,IAAInE,EAAgBmD,KAAMiB,QAAQjB,MACzCO,EAAOS,IAAInE,EAAgBY,KAAMwD,QAAQxD,MACzC8C,EAAOS,IAAInE,EAAgBoD,QAASI,IAAavD,EAAqBoE,eAAiBD,QAAQE,IAAMF,QAAQf,OAC7GK,EAAOS,IAAInE,EAAgBqD,MAAOG,IAAavD,EAAqBoE,eAAiBD,QAAQE,IAAMF,QAAQf,OAC3GK,EAAOS,IAAInE,EAAgBsD,MAAOE,IAAavD,EAAqBoE,eAAiBD,QAAQE,IAAMF,QAAQf,OAE7G,OAAOK,CACR,CAEM,6BAAOa,GACZ,OAAOH,QAAQxD,IAChB,CAEM,qBAAO4D,CAAeC,EAA8BC,GACzD,MAAMC,EAAoB3B,EAAW4B,oBAAoBC,QAAQJ,GAC3D9D,EAAcqC,EAAW4B,oBAAoBC,QAAQH,GAC3D,OAAOC,GAAa,GAAKhE,GAAO,GAAKA,GAAOgE,CAC7C,GJ/CH,SAAYzE,GACVA,EAAA,kBAAA,oBACAA,EAAA,eAAA,iBACAA,EAAA,KAAA,MACD,CAJD,CAAYA,IAAAA,EAIX,CAAA,UKCY4E,EACJ,aAAAC,CAAcC,EAAiBC,GACpC,IAAIC,EAAc,KASlB,OAPIF,IACFE,EAAM,GACNA,GAAOD,EAAKE,QAAQC,MAAQH,EAAKE,QAAQC,MAAQ,IAAM,GAEvDF,GAAO,IAAMF,EAAIrE,IAAM,KACvBuE,GAAOG,EAAKC,OAAON,EAAIzE,iBAAkByE,EAAIO,WAExCL,CACR,QCZUM,EACJ,aAAAT,CAAcC,EAAiBC,GACpC,OAAO,IACR,QCHUQ,EACJ,aAAAV,CAAcC,EAAiBC,GACpC,IAAInD,EAAe,KACnB,GAAIkD,EAAK,CACP,MAAME,EAAwBtC,OAAOC,OAAO,CAAE,EAAEoC,EAAKE,QAAQO,YAAc,CAAA,EAAIV,EAAIW,QAAU,CAAE,GAC/FT,EAAS,IAAIG,EAAKC,OAAON,EAAIzE,iBAAkByE,EAAIO,UACnDL,EAAiB,YAAI,IAAIzE,KAAKuE,EAAIxE,WAAWoF,cAC7CV,EAAc,SAAIF,EAAIrE,IAClBsE,EAAKE,QAAQC,QACfF,EAAW,MAAID,EAAKE,QAAQC,OAE9BF,EAAa,QAAID,EAAKY,mBACtBX,EAAW,MAAID,EAAKa,iBAEpBhE,EAAOiE,KAAKC,UAAUd,GAAO,IAE9B,CACD,OAAOpD,CACR,QCnBUmE,EAEJ,wBAAOC,CAAkBC,GAC9B,OAAOA,OACR,CAGM,yBAAOC,CAAmBD,EAASE,EAAO,UAC/C,GAAIJ,EAAeC,kBAAkBC,GACnC,MAAM,IAAIhF,MAAMkF,EAAO,gCAE1B,CAEM,6CAAOC,CAAuCH,EAAYE,EAAe,UAC9E,GAAIJ,EAAeC,kBAAkBC,IAAqB,KAAdA,EAAGI,OAC7C,MAAM,IAAIpF,MAAMkF,EAAO,0DAE1B,CAEM,mCAAOG,CAA6BL,EAAWE,EAAe,UACnE,GAAIJ,EAAeC,kBAAkBC,IAAqB,IAAdA,EAAGM,OAC7C,MAAM,IAAItF,MAAMkF,EAAO,kDAE1B,CAGM,YAAOK,CAAMC,EAAUC,EAAUC,EAAU,wBAChD,GAAIF,IAAQC,EACV,MAAM,IAAIzF,MAAM0F,EAEnB,CAEM,WAAO,CAAKV,EAAaU,EAAU,sBACxCZ,EAAeS,MAAMP,GAAI,EAAMU,EAChC,CAEM,qCAAOC,CAA+BC,EAAYC,EAAyB,KAAMC,EAAoB,MAE1G,GADAhB,EAAeG,mBAAmBW,EAAK,gCAChB,OAAnBC,GAA2BD,EAAIN,SAAWO,EAC5C,MAAM,IAAI7F,MAAM,4BAA4B6F,aAA0BD,EAAIN,UAAUQ,KAEtF,IAAK,IAAI/E,EAAI,EAAGA,EAAI6E,EAAIN,OAAQvE,IAC9B,GAAI+D,EAAeC,kBAAkBa,EAAI7E,IACvC,MAAM,IAAIf,MAAM,eAAee,2BAA2B+E,IAG/D,CAEM,wCAAOC,CAAkCF,KAA2BG,GAEzE,GADAlB,EAAeG,mBAAmBe,EAAU,gCACrB,OAAnBH,GAA2BG,EAASV,SAAWO,EACjD,MAAM,IAAI7F,MAAM,4BAA4B6F,aAA0BG,EAASV,UAEjF,IAAK,IAAIvE,EAAI,EAAGA,EAAIiF,EAASV,OAAQvE,IACnC,GAAI+D,EAAeC,kBAAkBiB,EAASjF,IAC5C,MAAM,IAAIf,MAAM,eAAee,0BAGpC,CAEM,mDAAOkF,GAEZ,MAAMC,EAAcC,MAAMC,KAAKC,WACzBC,EAAcrG,KAAKH,YAAYwF,OACrC,OAAOR,EAAea,+BAA+BO,EAAMI,EAC5D,QC/DUC,EAEJzE,yBAAoC,CACzC,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAGKA,cAAiC,aACjCA,cAAiCyE,EAAcC,OAAS,SACxD1E,wBAA2C,6BAC3CA,wBAA2C,6BAC3CA,8BAAiDyE,EAAcE,iBAAmBF,EAAcG,iBAEhG,8BAAOC,CAAwBC,EAAeC,GACnD,IAAIlG,GAAgB,EACpB,GAAIiG,GAASC,EACX,IAAK,IAAI9F,EAAI,EAAGA,EAAI6F,EAAMtB,SAAW3E,EAAMI,IACzCJ,EAAOkG,EAASC,SAASF,EAAMG,OAAOhG,IAG1C,OAAOJ,CACR,CAEM,yBAAOqG,CAAmBC,GAC/B,OAAOA,GAAM,IAAIC,aAAcC,OAAOF,GAAO,IAC9C,CAEM,yBAAOG,CAAmBH,GAC/B,OAAOA,GAAM,IAAII,aAAcC,OAAOL,GAAO,IAC9C,CAIM,uBAAOM,CAAiBN,GAC7B,IAAItG,EAAY,KAChB,GAAI4F,EAAciB,WAAWP,GAC3B,IACEtG,EAAOiE,KAAK6C,MAAMR,EACnB,CAAC,MAAOS,GACP/G,EAAO,IACR,CAEH,OAAOA,CACR,CAGM,qBAAOgH,CAAeV,GAC3B,QAASV,EAAcgB,iBAAiBN,EACzC,CAEM,gBAAOW,CAAUhB,GACtB,IAAIjG,GAAgB,EACpB,GAAIiG,EAAO,CACT,MAAMiB,EAAqB,IAAIC,IAC/B,IAAK,IAAI/G,EAAI,EAAGA,EAAI6F,EAAMtB,QAAU3E,EAAMI,IAAK,CAC7C,MAAMgH,EAAenB,EAAMG,OAAOhG,GAClCJ,GAAQkH,EAAMG,IAAID,GAClBF,EAAMI,IAAIF,EACX,CACF,CACD,OAAOpH,CACR,CAEM,8BAAOuH,CAAwB5B,EAAaO,GACjD,MAAMlG,EAAiB,GACvB,GAAI2F,EAAM,GAAKO,GAAYA,EAASvB,OAAS,EAAG,CAC9CR,EAAeqD,KAAK5B,EAAcqB,UAAUf,GAAW,2BACvD,MAAMuB,EAAyB,IAAR9B,EAAY,CAAC,IAAMC,EAAc2B,wBAAwB5B,EAAM,EAAGO,GACzF,IAAK,IAAI9F,EAAI,EAAGA,EAAI8F,EAASvB,OAAQvE,IACnCqH,EAAKC,SAASC,GAAM3H,EAAKO,KAAK2F,EAASE,OAAOhG,GAAKuH,IAEtD,CACD,OAAO3H,CACR,CAEM,sBAAO4H,GACZ,MAAO,uCAAuCC,QAAQ,SAAS,SAAUC,GACvE,MAAMC,EAAqB,GAAhB1H,KAAK2H,SAAiB,EAEjC,OADW,KAALF,EAAWC,EAAS,EAAJA,EAAW,GACxBE,SAAS,GACpB,GACD,CAEM,4BAAOC,CAAsBvC,EAAM,IACxC,IAAIoC,EAAI,GACR,IAAK,IAAI3H,EAAI,EAAGA,EAAIuF,EAAKvF,IACvB2H,GAAK1H,KAAK8H,MAAsB,GAAhB9H,KAAK2H,UAAeC,SAAS,IAE/C,OAAOF,CACR,CAEM,mBAAOK,CAAaC,GACzB,IAAIrI,EAAOqI,EAAQA,EAAMC,cAAgB,GAOzC,OALAtI,EAAOA,EAAK6H,QAAQ,IAAK,KACzBjC,EAAc2C,kBAAkBb,SAASC,IACvC3H,EAAOA,EAAK6H,QAAQF,EAAG,GAAG,IAGrB3H,CACR,CAGM,kBAAOwI,CAAYC,EAAeC,EAAW,GAClD,GAAa,GAATD,EAAY,MAAO,UACvB,MACEE,EAAKD,GAAY,EAEjBtI,EAAIC,KAAK8H,MAAM9H,KAAKmC,IAAIiG,GAASpI,KAAKmC,IAH9B,OAIV,OAAOoG,YAAYH,EAAQpI,KAAKwI,IAJtB,KAI6BzI,IAAI0I,QAAQH,IAAO,IAFhD,CAAC,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAEQvI,EACvE,CAIM,iBAAO2I,CAAW9C,GACvB,IAAIjG,EAAe,KACnB,GAAa,MAATiG,EAAe,CAGfjG,EADU,iBADgBiG,EAEnBA,EAEA+C,OAAO/C,EAEjB,CACD,OAAOjG,CACR,CAEM,gCAAOiJ,CAA0BhD,GAEtC,MADsB,WAAWmB,KAAKnB,EAEvC,CACM,qCAAOiD,CAA+BjD,GAE3C,MADsB,iBAAiBmB,KAAKnB,EAE7C,CACM,4BAAOkD,CAAsBlD,GAElC,MADsB,iBAAiBmB,KAAKnB,EAE7C,CACM,yBAAOmD,CAAmBC,EAAeC,GAC9C,MAAMrD,EAAiBoD,GAAQ,GACzBE,EAAsBD,GAAe,GAC3C,IAAItJ,GAAO,EAEX,IAAK,IAAII,EAAI,EAAGA,EAAI6F,EAAMtB,QAAU3E,EAAMI,IACxCJ,EAAOuJ,EAAWxG,QAAQkD,EAAMG,OAAOhG,KAAO,EAEhD,OAAOJ,CACR,CAEM,cAAOwJ,CAAQvD,EAAewD,EAAe,EAAGC,EAAe,GACpE,IAAKzD,EACH,OAAOA,EAET,MAAMN,EAAcM,EAAMtB,OAC1B,IAAIgF,EAAaF,EACbG,EAAaF,EAEjB,KAAO/D,EAAM,GAAKA,EAAMgE,EAAKC,EAAK,GAChCD,EAAKtJ,KAAKC,IAAI,EAAGqJ,EAAK,GACtBC,EAAKvJ,KAAKC,IAAI,EAAGsJ,EAAK,GAExB,MAAMC,EAAMlE,GAAOgE,EAAKC,GAExB,IAAI5J,EAAO,GACXA,GAAQiG,EAAM6D,UAAU,EAAGH,GAE3B,IAAK,IAAIvJ,EAAI,EAAGA,EAAIyJ,EAAKzJ,IACvBJ,GAAQ,IAGV,OADAA,GAAQiG,EAAM6D,UAAUnE,EAAMiE,GACvB5J,CACR,CAGM,mBAAO+J,CAAaV,EAAYjK,GACrC,MAAM4K,EAAM,qDACZ,IAAIC,GAAW,EACXC,EAAOlB,OAAOK,GAMlB,GALIa,EAAKC,WAAW,OAClBF,GAAW,EACXC,EAAOA,EAAKJ,UAAU,IAGpB1K,EAAO4K,GACT,MAAM,IAAI3K,MAAM,mCAGlB,IAAIW,GAAgBgK,EAAME,GAAMhK,OAAO,EAAId,GAI3C,OAHI6K,IACFjK,EAAO,IAAMA,GAERA,CACR,CAEM,kBAAOoK,CAAYnE,GAExB,OADkBA,EAAQL,EAAcmD,WAAW9C,GAAS,IACnDxB,MACV,CAEM,iBAAOoC,CAAWZ,GACvB,MAAMoE,EAAYzE,EAAcwE,YAAYnE,GAC5C,OAAOoE,EAAE1F,OAAS,EAAI0F,EAAI,IAC3B,CAEM,2CAAOC,CAAwCrE,GACpD,OAAOL,EAAc2E,+BAA+BtE,GAAO,EAC5D,CAEM,4CAAOuE,CAAyCvE,GACrD,OAAOL,EAAc2E,+BAA+BtE,GAAO,EAC5D,CAEO,qCAAOsE,CAAkCtE,EAAUwE,GAQzD,OAPiB3J,OAAO4J,KAAKzE,GACpByB,SAASiD,IAChB,MAAMrE,EAAML,EAAM0E,GACP,MAAPrE,GAA8B,iBAARA,IACxBL,EAAM0E,GAAOF,EAAU7E,EAAcwE,YAAYnE,EAAM0E,IAAQ/E,EAAciB,WAAWZ,EAAM0E,IAC/F,IAEI1E,CACR,CAEM,sBAAO2E,CAAgB3E,GAC5B,IAAIjG,EAAeiG,EACnB,GAAa,MAATA,IAAkBL,EAAcqD,0BAA0BhD,GAAQ,CAEpEjG,EAAO,GACP,IAAK,IAAII,EAAI,EAAGA,EAAI6F,EAAMtB,OAAQvE,IAAK,CACrC,MAAM0H,EAAY7B,EAAMG,OAAOhG,IAC3BwF,EAAcqD,0BAA0BnB,IAAa,IAAN1H,GAAiB,MAAN0H,KAC5D9H,GAAQ8H,EAEX,CACF,CAED,OAAO9H,CACR,CAGM,cAAO6K,CAAQ5E,GACpB,IAAIjG,EAAe4F,EAAcwE,YAAYxE,EAAcmD,WAAW9C,IAKtE,OAJAjG,EAAK8K,MAAM,KAAKC,KAAK,QACM,IAAvB/K,EAAK+C,QAAQ,OAAsC,IAAvB/C,EAAK+C,QAAQ,OAAsC,IAAvB/C,EAAK+C,QAAQ,OACvE/C,EAAO,IAAMA,EAAO,KAEfA,CACR,CAGM,oBAAOgL,CAAc3C,GAQ1B,MAPgB,IAAIA,GAAO4C,QAAO,CAACC,EAAuBC,IAC/BA,EAAaC,WAAW,GAClC,IACNF,EAEFA,EAAgBC,GAG1B,QC5QUE,EASStH,mBARZuH,YAEAC,YACAC,WACAC,OACAC,oBACAC,SAER,WAAAxM,CAAoB4E,EAA6B,UAAW6H,GAAxCtM,KAAkByE,mBAAlBA,EAClBzE,KAAK+D,QAAUuI,CAChB,CAEM,eAAAC,CAAgBC,GAKrB,OAJIA,IACFxM,KAAKqM,SAASI,cAAgBzM,KAAKqM,SAASI,eAAiB,GAC7DzM,KAAKqM,SAASI,cAAcxL,KAAKuL,IAE5BhL,OAAOC,OAAO,GAAIzB,KAAKqM,SAASI,cACxC,CAED,cAAWC,GACT,OAAO1M,KAAKiM,WACb,CAEM,wBAAAU,GACL3M,KAAK8B,MAAM,iBACX9B,KAAK+B,KAAK,gBACV/B,KAAKR,KAAK,gBACVQ,KAAKgC,QAAQ,mBACbhC,KAAKiC,MAAM,iBACXjC,KAAKkC,MAAM,gBACZ,CAEM,kBAAA0K,GAEL,GADA5M,KAAKR,KAAK,cAAeQ,KAAK+D,SAC1B/D,MAAM+D,SAAS0I,eAAepH,OAAQ,CACxC,MAAMwH,EAAmB7M,KAAK+D,QAAQ0I,cAAcK,KAAKC,GAAMzG,EAAciB,WAAWwF,EAAEC,UAAY,eACtGhN,KAAKR,KAAK,oBAAqBqN,EAChC,CACF,CAGM,oBAAAI,CAAqB7M,GAC1BJ,KAAKiM,YAAc,KACf7L,IACFJ,KAAKiM,YAAc,IAAIhN,EAAiBmB,GACxCJ,KAAKqM,SAASa,eAAiB9M,EAElC,CAEM,iBAAA+M,CAAkBC,GACvBpN,KAAKqM,SAASrI,MAAQoJ,CACvB,CAED,WAAWrJ,GACT,OAAOvC,OAAOC,OAAO,CAAE,EAAEzB,KAAKqM,SAC/B,CAED,WAAWtI,CAAQsJ,GAMjB,OALArN,KAAKqM,SAAW7K,OAAOC,OAAO,CAAE,EAAE4L,GAC9BrN,KAAKqM,SAASa,iBAChBlN,KAAKiM,YAAc,IAAIhN,EAAiBe,KAAKqM,SAASa,iBAGhDlN,KAAKqM,SAASiB,YACpB,KAAKxO,EAAqByO,KACxBvN,KAAKkM,WAAa,IAAI9H,EACtB,MACF,KAAKtF,EAAqB0O,eACxBxN,KAAKkM,WAAa,IAAI7H,EACtB,MACF,QACErE,KAAKkM,WAAa,IAAIxI,EAG1B1D,KAAKmM,OAASnM,KAAKqM,SAASoB,aAC5BzN,KAAKoM,oBAAsBxK,EAAWO,mBAAmBnC,KAAKqM,SAASqB,gBAEvE,MAAMC,EAAgB3N,KAAKgM,YAAchM,KAAKgM,YAAYtH,iBAAmB,KAC7E1E,KAAKgM,YAAc,CACjBjI,QAAS/D,KAAKqM,SACd5H,mBAAoBzE,KAAKyE,mBACzBC,iBAAkBiJ,GAASrH,EAAcsC,sBAAsB,GAElE,CAED,SAAWgF,GACT,OAAO5N,KAAKmM,MACb,CAED,SAAWyB,CAAMC,GACf,IAAKA,EACH,MAAM,IAAI9N,MAAM,sCAElBC,KAAKmM,OAAS0B,CACf,CAEM,kBAAAC,CAAmBF,KAA2BjH,GACnD,GAAI/E,EAAWwB,eAAewK,EAAO5N,KAAKmM,QAAS,CACjD,IAAI4B,EAAyB/N,KAAKqM,SAASrI,OAAS,GACpD+J,GAAkB,IAAMH,EAAQ,KAChCjH,EAAMqH,QAAQD,IACe/N,KAAKoM,oBAAoB6B,IAAIL,IAAUhM,EAAWuB,2BACzEwD,EACP,CACF,CAEM,gBAAAuH,CAAiBN,EAAwBrJ,EAAgCL,KAAmByC,GAQjG,MAPyB,CACvBpH,IAAKqO,EACLxO,UAAWC,KAAK8O,MAChBhP,cAAe+E,EACfC,SAAUwC,EACVpC,OAAQA,EAGX,CAEM,aAAAZ,CAAcC,GAEnB,OADqBA,EAAM5D,KAAKkM,WAAWvI,cAAcC,EAAK5D,KAAKgM,aAAe,IAEnF,CAEM,cAAAoC,CAAeC,GAEpB,OADwBA,GAAQ,IAAIvB,KAAKwB,GAAMtO,KAAK2D,cAAc2K,KAAIC,QAAQD,KAAQA,GAEvF,CAEM,oBAAAE,CAAqBC,GAC1B,OAAOzO,KAAK0O,cAAcD,EAASE,YACpC,CAEM,aAAAD,CAAcE,GACnB,IAAIlO,EAAe,KACnB,GAAIkB,EAAWwB,eAAewL,EAAMrP,IAAKS,KAAKmM,QAAS,CACrD,IAAIvI,EAAkBpC,OAAOC,OAAO,CAAE,EAAEmN,GAExC,GAAI5O,KAAKqM,SAASI,eAAepH,OAC/B,IAAK,IAAIvE,EAAI,EAAGA,EAAId,KAAKqM,SAASI,cAAcpH,OAAQvE,IACtD8C,EAAM5D,KAAKqM,SAASI,cAAc3L,GAAG2B,QAAQmB,GAKjD,GADAlD,EAAOV,KAAK2D,cAAcC,GACtBlD,EAAM,EACqBV,KAAKoM,oBAAoB6B,IAAIrK,EAAIrE,MAAQqC,EAAWuB,wBAC9EzC,GACCV,KAAKiM,aACPjM,KAAKiM,YAAYvK,gBAAgBkC,EAEpC,CAGF,CACD,OAAOlD,CACR,CAEM,KAAAoB,CAAMoC,KAAmByC,GAC9B,MAAM/C,EAAkB5D,KAAKkO,iBAAiBtP,EAAgBkD,MAAO,GAAIoC,KAAWyC,GACpF,OAAO3G,KAAK0O,cAAc9K,EAC3B,CAEM,MAAAiL,IAAUlI,GACf3G,KAAK8N,mBAAmBlP,EAAgBkD,SAAU6E,EACnD,CAEM,IAAA5E,CAAKmC,KAAmByC,GAC7B,MAAM/C,EAAkB5D,KAAKkO,iBAAiBtP,EAAgBmD,KAAM,GAAImC,KAAWyC,GACnF,OAAO3G,KAAK0O,cAAc9K,EAC3B,CAEM,KAAAkL,IAASnI,GACd3G,KAAK8N,mBAAmBlP,EAAgBmD,QAAS4E,EAClD,CAEM,IAAAnH,CAAK0E,KAAmByC,GAC7B,MAAM/C,EAAkB5D,KAAKkO,iBAAiBtP,EAAgBY,KAAM,GAAI0E,KAAWyC,GACnF,OAAO3G,KAAK0O,cAAc9K,EAC3B,CAEM,KAAAmL,IAASpI,GACd3G,KAAK8N,mBAAmBlP,EAAgBY,QAASmH,EAClD,CAEM,OAAA3E,CAAQkC,KAAmByC,GAChC,MAAM/C,EAAkB5D,KAAKkO,iBAAiBtP,EAAgBoD,QAAS,GAAIkC,KAAWyC,GACtF,OAAO3G,KAAK0O,cAAc9K,EAC3B,CAEM,QAAAoL,IAAYrI,GACjB3G,KAAK8N,mBAAmBlP,EAAgBoD,WAAY2E,EACrD,CAEM,KAAA1E,CAAMiC,KAAmByC,GAC9B,MAAM/C,EAAkB5D,KAAKkO,iBAAiBtP,EAAgBqD,MAAO,GAAIiC,KAAWyC,GACpF,OAAO3G,KAAK0O,cAAc9K,EAC3B,CAEM,MAAAqL,IAAUtI,GAEf3G,KAAK8N,mBAAmBlP,EAAgBqD,SAAU0E,EACnD,CAEM,KAAAzE,CAAMgC,KAAmByC,GAC9B,MAAM/C,EAAkB5D,KAAKkO,iBAAiBtP,EAAgBsD,MAAO,GAAIgC,KAAWyC,GACpF,OAAO3G,KAAK0O,cAAc9K,EAC3B,CAEM,MAAAsL,IAAUvI,GACf3G,KAAK8N,mBAAmBlP,EAAgBsD,SAAUyE,EACnD,CAEM,UAAAwI,CAAWvB,EAAwB1J,KAAmByC,GAC3D,MAAM/C,EAAkB5D,KAAKkO,iBAAiBN,EAAO,CAAA,EAAI1J,KAAWyC,GACpE3G,KAAK0O,cAAc9K,EACpB,CAEM,cAAAwL,CAAef,EAAoBgB,EAAW,GAAIC,GAAe,GACtE,MAAMC,EAAiBF,GAAY,GAC/BhB,GAAQA,EAAKhJ,OAAS,IACxBrF,KAAKkC,MAAM,iCAAkCmM,EAAKhJ,QAGlDgJ,EAAKjG,SAASkG,IACZ,GAAIA,EAAEnP,cAAe,CACnB,IAAIqQ,EAAeD,EACnB,GAAID,EAAc,CAEhBE,GAAQ,KADW9F,OAAO,IAAIrK,MAAQmL,UAAU,GAAI,IAChC,OACpBgF,GAAQlB,EAAEnP,aACX,CACDa,KAAKmP,WAAWb,EAAE/O,IAAKiQ,EACxB,KAGN,QCvOUC,EACH5N,wBAAuD,IAAIU,IAC3DV,uBAAwC,CAC9C4L,aAAc7O,EAAgBY,KAC9B8N,WAAYxO,EAAqB4Q,kBACjC1L,MAAO,KACPM,WAAY,CAAE,EACdoJ,eAAgB7O,EAAqBwD,QACrC6K,eAAgB,EAChBT,cAAe,IAGV,6BAAOkD,CAAuBhJ,GACnC,MAAMjG,EAAsBiG,GAAS,GAQrC,OAPAjG,EAAK+M,aAAe/M,EAAK+M,cAAgBgC,EAAOG,gBAAgBnC,aAChE/M,EAAK4M,WAAa5M,EAAK4M,YAAcmC,EAAOG,gBAAgBtC,WAC5D5M,EAAKsD,MAAQtD,EAAKsD,OAASyL,EAAOG,gBAAgB5L,MAClDtD,EAAK4D,WAAa5D,EAAK4D,YAAcmL,EAAOG,gBAAgBtL,WAC5D5D,EAAKgN,eAAiBhN,EAAKgN,gBAAkB+B,EAAOG,gBAAgBlC,eACpEhN,EAAKwM,eAAiBxM,EAAKwM,gBAAkBuC,EAAOG,gBAAgB1C,eAE7DxM,CACR,CAEM,2BAAOmP,CAAqBlJ,EAAsBmJ,GACvD,IAAKnJ,IAAUA,EAAM8G,eAAiB9G,EAAM2G,WAC1C,MAAM,IAAIvN,MAAM,+EAElB0P,EAAOG,gBAAkBpO,OAAOC,OAAO,CAAE,EAAEkF,GAEvCmJ,GACF5J,MAAMC,KAAKsJ,EAAOM,iBAAiBC,UAAU5H,SAAS6H,GAAQA,EAAGlM,QAAU4C,GAE9E,CAEM,gBAAOuJ,CAAUC,EAAqB,UAAW7D,GACtD,IAAI8D,EAAuBX,EAAOM,iBAAiB9B,IAAIkC,GACvD,IAAKC,EAAM,CACT,MAAMrM,EAAyB0L,EAAOE,uBAAuBrD,GAC7D8D,EAAO,IAAIrE,EAAeoE,EAAYpM,GACtC0L,EAAOM,iBAAiBhN,IAAIoN,EAAYC,EACzC,CACD,OAAOA,CACR,CAIM,2BAAO5B,CAAqBC,GACjC,OAAOgB,EAAOS,YAAY1B,qBAAqBC,EAChD,CAEM,oBAAOC,CAAc9K,GAC1B,OAAO6L,EAAOS,YAAYxB,cAAc9K,EACzC,CAEM,qBAAOwK,CAAeC,GAC3B,OAAOoB,EAAOS,YAAY9B,eAAeC,EAC1C,CAEM,wBAAOlB,CAAkBC,GAC9B,OAAOqC,EAAOS,YAAY/C,kBAAkBC,EAC7C,CAEM,2BAAOH,CAAqBG,GACjC,OAAOqC,EAAOS,YAAYjD,qBAAqBG,EAChD,CAEM,oBAAOiD,GACZ,OAAOZ,EAAOS,YAAYxD,UAC3B,CAEM,+BAAOC,GACZ,OAAO8C,EAAOS,YAAYvD,0BAC3B,CAEM,yBAAOC,GACZ,OAAO6C,EAAOS,YAAYtD,oBAC3B,CAEM,eAAO0D,GACZ,OAAOb,EAAOS,YAAYtC,KAC3B,CAEM,eAAO2C,CAAS1C,GACrB4B,EAAOS,YAAYtC,MAAQC,CAC5B,CAEM,iBAAO2C,GACZ,OAAOf,EAAOS,YAAYnM,OAC3B,CAEM,kBAAOzD,CAAYC,EAAsB,KAAMC,GAAQ,EAAOC,GAAc,GACjF,MAAMgQ,EAAwBhB,EAAOS,YAAYxD,WACjD,OAAO+D,EAAMA,EAAInQ,YAAYC,EAAaC,EAAOC,GAAe,IACjE,CAEM,yBAAOqN,CAAmBF,KAA2BjH,GAC1D,OAAO8I,EAAOS,YAAYpC,mBAAmBF,KAAUjH,EACxD,CAEM,YAAO7E,CAAMoC,KAAmByC,GACrC,OAAO8I,EAAOS,YAAYpO,MAAMoC,KAAWyC,EAC5C,CAEM,aAAOkI,IAAUlI,GACtB,OAAO8I,EAAOS,YAAYrB,UAAUlI,EACrC,CAEM,WAAO5E,CAAKmC,KAAmByC,GACpC,OAAO8I,EAAOS,YAAYnO,KAAKmC,KAAWyC,EAC3C,CAEM,YAAOmI,IAASnI,GACrB,OAAO8I,EAAOS,YAAYpB,SAASnI,EACpC,CAEM,WAAOnH,CAAK0E,KAAmByC,GACpC,OAAO8I,EAAOS,YAAY1Q,KAAK0E,KAAWyC,EAC3C,CAEM,YAAOoI,IAASpI,GACrB,OAAO8I,EAAOS,YAAYnB,SAASpI,EACpC,CAEM,cAAO3E,CAAQkC,KAAmByC,GACvC,OAAO8I,EAAOS,YAAYlO,QAAQkC,KAAWyC,EAC9C,CAEM,eAAOqI,IAAYrI,GACxB,OAAO8I,EAAOS,YAAYlB,YAAYrI,EACvC,CAEM,YAAO1E,CAAMiC,KAAmByC,GACrC,OAAO8I,EAAOS,YAAYjO,MAAMiC,KAAWyC,EAC5C,CAEM,aAAOsI,IAAUtI,GACtB,OAAO8I,EAAOS,YAAYjB,UAAUtI,EACrC,CAEM,YAAOzE,CAAMgC,KAAmByC,GACrC,OAAO8I,EAAOS,YAAYhO,MAAMgC,KAAWyC,EAC5C,CAEM,aAAOuI,IAAUvI,GACtB,OAAO8I,EAAOS,YAAYhB,UAAUvI,EACrC,CAEM,mBAAOxF,GACZ,MAAMsP,EAAwBhB,EAAOS,YAAYxD,WACjD,OAAO+D,EAAMA,EAAItP,eAAiB,IACnC,CAEM,iBAAOgO,CAAWvB,EAAwB1J,KAAmByC,GAClE,OAAO8I,EAAOS,YAAYf,WAAWvB,EAAO1J,KAAWyC,EACxD,CAEM,qBAAOyI,CAAef,EAAoBgB,EAAW,GAAIC,GAAe,GAC7E,OAAOG,EAAOS,YAAYd,eAAef,EAAMgB,EAAUC,EAC1D,CAEM,wBAAO/N,GACZ,MAAMkP,EAAwBhB,EAAOS,YAAYxD,WACjD,OAAO+D,EAAMA,EAAIlP,oBAAsB,IACxC,QCjLUmP,EACH7O,uCAAyC,IAE1C,2BAAO8O,CAAqBhK,EAAwBiK,GACzD,MAAMC,EAAYH,EAAcI,WAAWnK,GAE3C,OAAOkK,QAAgCA,EAAIH,EAAcI,WAAWD,EAAErH,QAAQoH,GAC/E,CAGM,mBAAOnG,CAAazD,EAAUlH,GACnC,MAAM8K,EAAOlB,OAAO1C,GACpB,GAAI4D,EAAKvF,OAASvF,EAAM,CACtB,IAAI4K,EAAM,OACV,GAAI5K,EAAO4Q,EAAcK,gCACvB,KAAM,kDAAoDL,EAAcK,gCAAkC,IAE5G,KAAOrG,EAAIrF,OAASvF,GAClB4K,GAAYA,EAGd,OAAQA,EAAME,GAAMhK,OAAO,EAAId,EAChC,CACC,OAAO8K,CAEV,CAEM,cAAOoG,CAAQC,EAAgBC,EAAcC,GAClD,MAAMrJ,EAAe4I,EAAcI,WAAWG,GACxCG,EAAaV,EAAcI,WAAWI,GACtCG,EAAaX,EAAcI,WAAWK,GAE5C,OAAQrJ,GAAQsJ,GAAMtJ,GAAQuJ,GAAQvJ,GAAQuJ,GAAMvJ,GAAQsJ,CAC7D,CASM,iBAAON,CAAWnK,EAAY2K,EAAsB,KAAMC,GAC/D,IAAI7Q,EACJ,GAAIiG,QAAuC,CACzC,MAAM6K,SAAsB7K,EAChB,UAAR6K,EACF9Q,EAAOiG,EACU,UAAR6K,EAEP9Q,EAD0B,IAAxBiG,EAAMxB,OAAOE,OACRiM,EAEAG,OAAOnI,WAAW3C,IAG3B8I,EAAO1N,KAAK,yCAA0CyP,GACtD9Q,EAAO4Q,GAGLI,MAAMhR,KACR+O,EAAOxN,MAAM,qDACbvB,EAAO4Q,EAEV,MAIG5Q,OAHoCiR,IAAlCJ,EAGK,KAEAA,EAAgCD,EAAc3K,EAIzD,OAAOjG,CACR,CAEM,sBAAOkR,CAAgBC,GAC5B,IAAInR,EAAiB,KAOrB,OANImR,IACFnR,EAAOmR,EAASrG,MAAM,KAAKsB,KAAKzE,GACvBqI,EAAcI,WAAWzI,EAAElD,UAEpCzE,EAAOA,EAAK6N,QAAQ9F,GAAmB,iBAANA,IAAmBiJ,MAAMjJ,MAErD/H,CACR,CAEM,kBAAOoR,CAAY9K,EAAa+K,EAAYC,GACjD,IAAItR,EAAesG,EACnB,GAAY,OAARA,GAAuB,OAAP+K,GAAsB,OAAPC,GAAeD,EAAK,GAAKC,EAAK,GAAKhL,EAAM,EAC1E,MAAM,IAAIjH,MAAM,iDAElB,MAAMkS,EAAclR,KAAKmR,IAAIH,EAAIC,GAC3BG,EAAepR,KAAKC,IAAI+Q,EAAIC,GAC5BI,EAAqBD,EAAOF,EAClC,GAAIE,IAASF,EAEXvR,EAAOyR,MACF,CAEL,KAAOzR,EAAOuR,GACZvR,GAAQ0R,EAEV,KAAO1R,EAAOyR,GACZzR,GAAQ0R,CAEX,CAED,OAAO1R,CACR,CAEM,uCAAO2R,CAAiCC,EAAqBC,EAAe,GACjF1N,EAAeG,mBAAmBsN,GAClC,MAAM3L,EAAkBnF,OAAOC,OAAO,GAAI6Q,GAC1C3L,EAAM6L,MAAK,CAACC,EAAGC,IAAMD,EAAIC,IAEzB,MAAMC,EAAoB,GACpBC,EAAwB,GAC9B,IAAIjS,EAAQ,EACZ,IAAK,IAAIG,EAAI,EAAGA,EAAI6F,EAAMtB,OAAQvE,IAChC,GAAI6F,EAAM7F,KAAO6F,EAAM7F,EAAI,GAAK,OAEzB,CAEL,GAAIH,IAAUG,EAAI,EAChB6R,EAAQ1R,KAAK0F,EAAM7F,EAAI,QAClB,CAEL,GAD0BA,EAAIH,EACd4R,EACd,IAAK,IAAIM,EAAIlS,EAAOkS,EAAI/R,EAAG+R,IACzBF,EAAQ1R,KAAK0F,EAAMkM,SAGrBD,EAAO3R,KAAK,CACViR,IAAKvL,EAAMhG,GACXK,IAAK2F,EAAM7F,EAAI,IAGpB,CAEDH,EAAQG,CACT,CAEH,MAAO,CACL6R,QAASA,EACTC,OAAQA,EAEX,CAIM,4BAAOE,CAAsBC,EAAeC,GACjDnO,EAAeG,mBAAmB+N,EAAO,SACzClO,EAAeG,mBAAmBgO,EAAS,WAC3CnO,EAAeqD,KAAK6K,EAAQ,GAAKA,IAAUhS,KAAK8H,MAAMkK,GAAQ,+BAC9DlO,EAAeqD,KAAK8K,EAAU,GAAKA,IAAYjS,KAAK8H,MAAMmK,GAAU,iCAEpE,MAAMC,EAAiBD,EAAUD,EAC3BrS,EAAiB,GACvB,IAAK,IAAII,EAAI,EAAGA,EAAIkS,EAASlS,IAC3BJ,EAAKO,KAAK,GAGZ,IAAIiS,EAAc,EACd3I,EAAcwI,EAElB,KAAOxI,EAAM,GACX7J,EAAKK,KAAK8H,MAAMqK,GAAOF,KACvBzI,IACA2I,GAAOD,EAGT,OAAOvS,CACR,CAGM,kBAAOyS,CAAYC,EAAsBC,EAAsBlL,EAAe,GACnF,MAAMzH,EAAiB,GACvB,IAAIsG,EAAcoM,EAClB,KAAOpM,EAAMqM,GACX3S,EAAKO,KAAK+F,GACVA,GAAOmB,EAET,OAAOzH,CACR,QCzLU4S,EACJ,cAAOC,CAAQC,EAAiBC,GAA6B,GAClE,IAAI/S,EAAgB,KAWpB,OARIA,IAFE8S,IACAA,EAAKnO,OAAS,EACTmO,EAAK7H,QAAO,CAAC8G,EAAG3R,IAAM2R,GAAK3R,IAAG,GAE9B2S,GAMJ/S,CACR,CAEM,cAAOgT,CAAQF,EAAiBC,GAA6B,GAClE,IAAI/S,EAAgB,KAWpB,OARIA,IAFE8S,IACAA,EAAKnO,OAAS,EACTmO,EAAK7H,QAAO,CAAC8G,EAAG3R,IAAM2R,GAAK3R,IAAG,GAE9B2S,GAMJ/S,CACR,CAGM,gBAAOiT,CAAU3M,GACtB,OAAe,IAARA,GAAiBA,SAAoD,iBAARA,GAA0C,SAAtBA,EAAIgC,aAC7F,CAGM,gBAAO4K,CAAU5M,GACtB,OAAIA,SAGqC,IAAlC0J,EAAcI,WAAW9J,EACjC,CAGM,gBAAO6M,CAAU7M,GACtB,OAAOsM,EAAeK,UAAU3M,GAAO,EAAI,CAC5C,QC/CU8M,EAGX,WAAAjU,GAAwB,CAEjB,8BAAOkU,CAAwBC,GACpC,IAAItT,EAAgB,KAcpB,OAbIoT,EAAUG,YAAYD,KACxBtT,EAAO,CACLqK,EAAG,KACHmJ,EAAG,MAELF,EAAO5L,SAAS2E,IACdrM,EAAKqK,EAAe,OAAXrK,EAAKqK,GAAcgC,EAAEhC,EAAIrK,EAAKqK,EAAIgC,EAAEhC,EAAIrK,EAAKqK,EACtDrK,EAAKwT,EAAe,OAAXxT,EAAKwT,GAAcnH,EAAEmH,EAAIxT,EAAKwT,EAAInH,EAAEmH,EAAIxT,EAAKwT,CAAC,IAGzDxT,EAAKqK,IAAM,EACXrK,EAAKwT,IAAM,GAENxT,CACR,CAEM,6BAAOyT,CAAuBH,GACnC,IAAItT,EAAgB,KAWpB,OAVIoT,EAAUG,YAAYD,KACxBtT,EAAO,CACL0T,MAAO,EACPC,OAAQ,GAEVL,EAAO5L,SAAS2E,IACdrM,EAAK0T,MAAQrT,KAAKC,IAAIN,EAAK0T,MAAOrH,EAAEhC,EAAI,GACxCrK,EAAK2T,OAAStT,KAAKC,IAAIN,EAAK2T,OAAQtH,EAAEmH,EAAI,EAAE,KAGzCxT,CACR,CAEM,kBAAO4T,CAAYC,EAAcC,GACtC,IAAI9T,EAAgB,KAOpB,OANIoT,EAAUW,WAAWF,IAAQT,EAAUW,WAAWD,KACpD9T,EAAO,CACLqK,EAAGyJ,EAAIJ,MAAQG,EAAIH,MACnBF,EAAGM,EAAIH,OAASE,EAAIF,SAGjB3T,CACR,CAEM,gBAAOgU,CAAUtD,EAAaC,GACnC,QAASD,KAAQC,GAAMD,EAAGrG,IAAMsG,EAAGtG,GAAKqG,EAAG8C,IAAM7C,EAAG6C,CACrD,CAEM,gCAAOS,CAA0BvD,EAAaC,GACnD,SAASD,IAAQC,GAAOD,EAAGrG,IAAMsG,EAAGtG,GAAKqG,EAAG8C,IAAM7C,EAAG6C,EACtD,CAEM,iBAAOO,CAAWG,GACvB,QAASA,KAAWA,EAAMP,UAAYO,EAAMR,KAC7C,CAEM,gBAAOS,CAAUC,GACtB,QAASA,GAAQhB,EAAUiB,WAAWD,EAAK1D,KAAO0C,EAAUiB,WAAWD,EAAKzD,MAAQyC,EAAUY,UAAUI,EAAK1D,GAAI0D,EAAKzD,GACvH,CAEM,iBAAO2D,CAAWC,GACvB,QAASA,GAAS3B,EAAeC,QAAQ0B,EAAMnI,KAAKoI,GAAMpB,EAAUe,UAAUK,KAC/E,CAEM,oBAAOC,CAAcC,GAC1B,QAASA,GAASA,EAAMC,KAAKhQ,OAAS,GAAKiO,EAAeC,QAAQ6B,EAAMC,IAAIvI,KAAKC,GAAM+G,EAAUiB,WAAWhI,KAC7G,CAEM,sBAAOuI,CAAgBF,GAC5B,IAAI1U,EAAiB,KACrB,GAAIoT,EAAUqB,cAAcC,GAAQ,CAClC1U,EAAO,GACP,IAAK,IAAII,EAAI,EAAGA,EAAIsU,EAAMC,IAAIhQ,OAAQvE,IACpCJ,EAAKO,KAAK,CAAEmQ,GAAIgE,EAAMC,IAAIvU,EAAI,GAAIuQ,GAAI+D,EAAMC,IAAIvU,IAEnD,CACD,OAAOJ,CACR,CAEM,0BAAO6U,CAAoBC,GAChC,OAAO1B,EAAUqB,cAAcK,GAAYA,EAASH,IAAIG,EAASH,IAAIhQ,OAAS,GAAK,IACpF,CAEM,qBAAOoQ,CAAeX,GAC3B,OAAOhB,EAAUe,UAAUC,GAAQ,CAAEO,IAAK,CAACP,EAAK1D,GAAI0D,EAAKzD,KAAQ,IAClE,CAGM,uBAAOqE,CAAiBT,GAC7B,IAAIvU,EAAqB,KACzB,GAAIoT,EAAUkB,WAAWC,GAAQ,CAC/BvU,EAAO,GACP,IAAIiV,EAA2B7B,EAAU2B,eAAeR,EAAM,IAC9D,IAAK,IAAInU,EAAI,EAAGA,EAAImU,EAAM5P,OAAQvE,IAC5BgT,EAAUY,UAAUZ,EAAUyB,oBAAoBI,GAAeV,EAAMnU,GAAGsQ,IAC5EuE,EAAaN,IAAIpU,KAAKgU,EAAMnU,GAAGuQ,KAE/B3Q,EAAKO,KAAK0U,GACVA,EAAe7B,EAAU2B,eAAeR,EAAMnU,KAGlDJ,EAAKO,KAAK0U,EACX,CACD,OAAOjV,CACR,CAEM,iBAAOqU,CAAWa,GACvB,QAASA,GAAc,MAARA,EAAG7K,GAAqB4G,MAARiE,EAAG7K,GAA2B,OAAT6K,EAAG1B,QAAuBvC,IAATiE,EAAG1B,CACzE,CAEM,kBAAOD,CAAY2B,GACxB,QACIA,GACFtC,EAAeC,QACbqC,EAAG9I,KAAKC,GAAM+G,EAAUiB,WAAWhI,MACnC,EAGL,CAEM,yBAAO8I,CAAmBD,EAAahB,GAC5C,OAAOd,EAAUW,WAAWG,IAAUd,EAAUiB,WAAWa,IAAOA,EAAG7K,GAAK,GAAK6K,EAAG7K,EAAI6J,EAAMR,OAASwB,EAAG1B,GAAK,GAAK0B,EAAG1B,EAAIU,EAAMP,MAChI,CAEM,0BAAOyB,CAAoBF,EAAehB,GAC/C,OAAOgB,GAAMA,EAAG9I,KAAKC,GAAM+G,EAAU+B,mBAAmB9I,EAAG6H,KAAQjJ,QAAO,CAAC8G,EAAG3R,IAAM2R,GAAK3R,IAAG,EAC7F,CAEM,oBAAOiV,CAAcd,GAC1B,IAAIvU,EAAkB,KAItB,OAHIoT,EAAUkB,WAAWC,KACvBvU,EAAOuU,EAAMnI,KAAKoI,GAAM,CAACA,EAAE9D,GAAI8D,EAAE7D,MAAK2E,QAEjCtV,CACR,CAEM,oBAAOuV,CAAcjC,GAC1B,IAAItT,EAAiB,KACrB,GAAIoT,EAAUG,YAAYD,GAAS,CACjC,GAAIA,EAAO3O,OAAS,GAAK,EAMvB,MAAM,IAAItF,MAAM,sDALhBW,EAAO,GACP,IAAK,IAAII,EAAI,EAAGA,EAAIkT,EAAO3O,OAAQvE,GAAK,EACtCJ,EAAKO,KAAK,CAAEmQ,GAAI4C,EAAOlT,GAAIuQ,GAAI2C,EAAOlT,EAAI,IAK/C,CACD,OAAOJ,CACR,CAEM,sCAAOwV,CAAgClC,EAAmBmC,EAAgB,GAC/E,IAAIzV,EAAkB,KAClB0V,EAAqB,CAAErL,EAAG,EAAGmJ,EAAG,GACpC,GAAIJ,EAAUG,YAAYD,GAAS,CACjCtT,EAAOc,OAAOC,OAAO,GAAIuS,GACzBoC,EAAYtC,EAAUC,wBAAwBrT,GAC9CA,EAAOoT,EAAUsC,UAAU1V,EAAM0V,GACjC,IAAIxB,EAAiBd,EAAUK,uBAAuBzT,GAEtDA,EAAOoT,EAAUuC,KAAK3V,GACtBkU,EAAQ,CAAER,MAAOQ,EAAMP,OAAQA,OAAQO,EAAMR,OAC7CgC,EAAY,CAAErL,GAAkB,EAAfqL,EAAUlC,EAAQA,GAAkB,EAAfkC,EAAUrL,GAChDrK,EAAOoT,EAAUwC,oBAAoB5V,EAAMkU,GAAO,GAAM,GAExDlU,EAAOoT,EAAUsC,UAAU1V,EAAM0V,EAClC,CACD,MAAMG,EAAwBJ,EAAQ,EAAIA,EAAQ,EAAIA,EAKtD,OAJII,EAAgB,IAClB7V,EAAOoT,EAAUoC,gCAAgCxV,EAAM6V,EAAgB,IAGlE7V,CACR,CAEM,yBAAO8V,CAAmBvB,EAAiBL,GAChD,OAAOK,GAASnB,EAAUgC,oBAAoBb,EAAMnI,KAAKoI,GAAM,CAACA,EAAE9D,GAAI8D,EAAE7D,MAAK2E,OAAQpB,EACtF,CAEM,4BAAO6B,CAAsBrB,EAAmBR,GACrD,OAAOd,EAAU0C,mBAAmB1C,EAAUwB,gBAAgBF,GAAQR,EACvE,CAEM,wBAAO8B,CAAkB5B,EAAcF,GAC5C,OACEd,EAAUW,WAAWG,IACrBd,EAAUe,UAAUC,IACpBhB,EAAU+B,mBAAmBf,EAAK1D,GAAIwD,IACtCd,EAAU+B,mBAAmBf,EAAKzD,GAAIuD,EAEzC,CAEM,WAAOyB,CAAKrC,GACjB,IAAItT,EAAkB,KAOtB,OANIoT,EAAUG,YAAYD,KACxBtT,EAAOsT,EAAOlH,KAAKC,IACK,CAAEhC,EAAGgC,EAAEmH,EAAGA,EAAGnH,EAAEhC,OAIlCrK,CACR,CAEM,gBAAO0V,CAAUpC,EAAmB2C,GACzC,IAAIjW,EAAkB,KAUtB,OATIoT,EAAUG,YAAYD,IAAWF,EAAUiB,WAAW4B,KACxDjW,EAAOsT,EAAOlH,KAAKC,IACK,CACpBhC,EAAGgC,EAAEhC,EAAI4L,EAAM5L,EACfmJ,EAAGnH,EAAEmH,EAAIyC,EAAMzC,OAKdxT,CACR,CAEM,0BAAO4V,CAAoBtC,EAAmBO,EAAcqC,EAAkBC,GACnF,IAAInW,EAAkB,KAetB,OAdIoT,EAAUG,YAAYD,IAAWF,EAAUW,WAAWF,KAEtD7T,EADEkW,GAAWC,EACN7C,EAAOlH,KAAKC,IACK,CACpBhC,EAAG6L,EAAUrC,EAAIH,MAAQ,EAAIrH,EAAEhC,EAAIgC,EAAEhC,EACrCmJ,EAAG2C,EAAUtC,EAAIF,OAAS,EAAItH,EAAEmH,EAAInH,EAAEmH,MAMnC1S,OAAOC,OAAO,GAAIuS,IAGtBtT,CACR,CAEM,gCAAOoW,CAA0B9C,EAAmBO,EAAcC,GACvE,IAAI9T,EAAkB,KACtB,GAAIoT,EAAUG,YAAYD,IAAWF,EAAUW,WAAWF,IAAQT,EAAUW,WAAWD,GAAM,CAC3F,MAAMuC,EAAiBjD,EAAUQ,YAAYC,EAAKC,GAClD9T,EAAOsT,EAAOlH,KAAKC,IACK,CAAEhC,EAAGgC,EAAEhC,EAAIgM,EAAMhM,EAAGmJ,EAAGnH,EAAEmH,EAAI6C,EAAM7C,MAG3DxT,EAAOoT,EAAUwC,oBAAoB5V,EAAM8T,EAAKA,EAAIwC,cAAgBzC,EAAIyC,YAAaxC,EAAIyC,cAAgB1C,EAAI0C,YAC9G,CACD,OAAOvW,CACR,CAEM,+BAAOwW,CAAyBC,EAAgB5C,EAAcC,GACnE,MAAM1Q,EAAiBgQ,EAAUgD,0BAA0B,CAACK,GAAQ5C,EAAKC,GACzE,OAAsB,IAAf1Q,EAAIuB,OAAevB,EAAI,GAAK,IACpC,CAEM,qBAAOsT,CAAenC,EAAiBV,EAAcC,GAC1D,OAAO,IACR,CAIM,eAAO6C,CAASC,EAAqBC,GAK1C,GAJAD,EAAS9E,MAAK,CAACC,EAAGC,IACTD,EAAE1H,EAAI2H,EAAE3H,IAGbwM,GAAUD,EAAS,GAAGvM,EACxB,OAAOuM,EAAS,GAAGpD,EACd,GAAIqD,GAAUD,EAASA,EAASjS,OAAS,GAAG0F,EACjD,OAAOuM,EAASA,EAASjS,OAAS,GAAG6O,EAChC,CACL,IAAIsD,EAAM,EACV,KAAOF,EAASE,EAAM,GAAGzM,EAAIwM,GAC3BC,IAEF,MAAMC,EAAkBH,EAASE,EAAM,GAAGzM,EAAIuM,EAASE,GAAKzM,EACtD2M,EAAkBJ,EAASE,EAAM,GAAGtD,EAAIoD,EAASE,GAAKtD,EAEtDyD,GADeJ,EAASD,EAASE,GAAKzM,GAAK0M,EACtBC,EAC3B,OAAOJ,EAASE,GAAKtD,EAAIyD,CAC1B,CACF,QCjSUC,EAGX,WAAA/X,GAAwB,CAEjB,uBAAOgY,GASZ,MAR8B,CAC5BC,QAAS,iBACTC,KAAM,aACNC,OAAQ,eACRC,IAAK,YACLC,aAAc,iBACdC,MAAO,cAGV,QCZUC,EACHC,QAA+B,GAEhC,MAAAC,CAAOtR,EAAQuR,EAAW,GAC/B,GAAIvR,EAAK,CACP,MAAMwR,EAA2BxY,KAAKqY,QAAQI,MAAMC,GAAMA,EAAEC,OAAS3R,IACjEwR,EACFA,EAAMI,OAASL,EAEfvY,KAAKqY,QAAQpX,KAAK,CAChB0X,KAAM3R,EACN4R,MAAOL,GAGZ,CACF,CAEM,IAAA/F,GACLxS,KAAKqY,QAAQ7F,MAAK,CAACC,EAAGC,KACpB,IAAIhS,EAAegS,EAAEkG,MAAQnG,EAAEmG,MAI/B,OAHa,IAATlY,IACFA,EAAOgJ,OAAOgJ,EAAEiG,MAAME,cAAcnP,OAAO+I,EAAEkG,QAExCjY,CAAI,GAEd,CAGM,QAAAoY,GACL9Y,KAAKqY,QAAQ7F,MAAK,CAACC,EAAGC,IAAMhJ,OAAOgJ,EAAEiG,MAAME,cAAcnP,OAAO+I,EAAEkG,QACnE,CAEM,OAAAzX,GACLlB,KAAKqY,QAAQnX,SACd,CAEM,UAAA6X,GACL,OAAO/Y,KAAKqY,OACb,CAEM,aAAAW,GACL,IAAItY,EAAO,EAEX,OADAV,KAAKqY,QAAQjQ,SAAS6Q,GAAOvY,GAAQuY,EAAEL,QAChClY,CACR,CAEM,aAAAwY,CAAclS,GACnB,MAAMwR,EAA2BxY,KAAKqY,QAAQI,MAAM3Q,GAASA,EAAK6Q,OAAS3R,IAC3E,OAAOwR,EAAQA,EAAMI,MAAQ,CAC9B,CAEM,eAAAO,CAAgBnS,GACrB,MAAMoS,EAAgBpZ,KAAKgZ,gBAC3B,OAAiB,IAAVI,EAAc,EAAIpZ,KAAKkZ,cAAclS,GAAOoS,CACpD,Gf3DH,SAAYra,GACVA,EAAAA,EAAA,YAAA,GAAA,cACAA,EAAAA,EAAA,gBAAA,GAAA,kBACAA,EAAAA,EAAA,SAAA,GAAA,UACD,CAJD,CAAYA,IAAAA,EAIX,CAAA,UgBGYsa,EACJ,uBAAOC,CAAiBC,EAAYC,GAAY,GACrD,MAAMC,EAAS1Y,KAAK8H,MAAM0Q,EAAK,KACzBG,EAAU3Y,KAAK8H,MAAM0Q,EAAK,KAAQ,GAClCI,EAAU5Y,KAAK8H,MAAM0Q,EAAM,KAAc,GACzCK,EAAQ7Y,KAAK8H,MAAM0Q,EAAE,MAAuB,GAC5CM,EAAO9Y,KAAK8H,MAAM0Q,EAAE,OAEpBO,EAAIpJ,EAAcjG,aACxB,IAAI/J,EAAOoZ,EAAEF,EAAO,GAAK,IAAME,EAAEH,EAAS,GAAK,IAK/C,OAJAjZ,GAAQ8Y,EAAYM,EAAEJ,EAAS,GAAK,IAAMI,EAAEL,EAAQ,GAAK,IAAMK,EAAEJ,EAAS,GAAK,IAC3EG,EAAO,IACTnZ,EAAOmZ,EAAO,IAAMnZ,GAEfA,CACR,CAEM,4BAAOqZ,CAAsBR,EAAYC,GAAY,GAC1D,MAAMC,EAASF,EAAK,IACdG,EAAU3Y,KAAK8H,MAAM0Q,EAAK,KAAQ,GAClCI,EAAU5Y,KAAK8H,MAAM0Q,EAAM,KAAc,GACzCK,EAAQ7Y,KAAK8H,MAAM0Q,EAAM,MAEzBO,EAAIpJ,EAAcjG,aACxB,IAAI/J,EAAOoZ,EAAEF,EAAO,GAAK,IAAME,EAAEH,EAAS,GAAK,IAE/C,OADAjZ,GAAQ8Y,EAAYM,EAAEJ,EAAS,GAAK,IAAMI,EAAEL,EAAQ,GAAKK,EAAEJ,EAAS,GAC7DhZ,CACR,CAEM,kBAAOsZ,CAAYC,EAAUC,GAElC,OADsBC,EAASC,WAAWH,GAAII,KAAKF,EAASC,WAAWF,IAC5DL,IACZ,CAEM,kBAAOS,CACZC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAIC,EAAoBT,EAASU,WAAWN,GAAcO,QAAQL,GAClE,MAAMM,EAAoBZ,EAASU,WAAWL,GAExC9Z,EAAiB,GACvB,KAAOka,EAAUG,GACfra,EAAKO,KAAK2Z,EAAQI,SAASN,IAC3BE,EAAUA,EAAQK,KAAKN,GAGzB,OAAOja,CACR,QCvCUwa,EAIDC,sBACAC,oBACAC,cACAC,2BACAC,sBAPF1Z,yBAA4C,0BAEpD,WAAAhC,CACUsb,EACAC,EACAC,EAA8B/U,EAAcgC,gBAC5CgT,EAA8C1c,EAAgBY,KAC9D+b,EAAyC3c,EAAgBqD,OAJzDjC,KAAqBmb,sBAArBA,EACAnb,KAAmBob,oBAAnBA,EACApb,KAAaqb,cAAbA,EACArb,KAA0Bsb,2BAA1BA,EACAtb,KAAqBub,sBAArBA,EAER1W,EAAeG,mBAAmBmW,EAAuB,uBAC1D,CAED,wBAAWK,GACT,OAAOxb,KAAKmb,qBACb,CAED,sBAAWM,GACT,OAAOzb,KAAKob,mBACb,CAED,gBAAWM,GACT,OAAO1b,KAAKqb,aACb,CAED,6BAAWM,GACT,OAAO3b,KAAKsb,0BACb,CAED,wBAAWM,GACT,OAAO5b,KAAKub,qBACb,CAEM,qBAAOM,CAAe9W,GAC3B,OAAOA,IAA2C,IAArCA,EAAGmW,EAAWY,kBAC5B,CAEM,8BAAaC,CAClBC,EACAC,EACAC,EAA4Btd,EAAgBsD,OAE5C,IAAIxB,EAAU,KACd,IACEA,EAAOyb,EAAIC,OAAOJ,EAAeC,EAAY,CAAEI,kBAAkB,GAClE,CAAC,MAAO5U,GACPgI,EAAON,WAAW+M,EAAU,uBAAwBzU,EACrD,CACD,OAAO/G,CACR,CAEM,4CAAa4b,CAAgCN,GAClD,IAAItb,EAAe,KACnB,GAAI4F,EAAciB,WAAWyU,GAAgB,CAC3C,MAAM1Z,QAA6B4Y,EAAWqB,oBAAyBP,GACjEQ,EAAoBzb,KAAK8H,MAAMxJ,KAAK8O,MAAQ,KAClD,GAAI7L,EAAOma,IAAK,CAEd,MAAMC,EAAqBpa,EAAOma,IAAkB,IAAZD,EAAkBzb,KAAK8H,MAAMvG,EAAOma,IAAM,KAAQna,EAAOma,IACjG/b,EAAOK,KAAKC,IAAI,EAAG0b,EAAaF,EACjC,CACF,CACD,OAAO9b,CACR,CAEM,uCAAaic,CAA2BX,GAC7C,MAAMY,QAAqB1B,EAAWoB,gCAAgCN,GACtE,IAAItb,EAAe,KAInB,OAHIkc,UACFlc,EAAc,IAAPkc,GAEFlc,CACR,CAEM,iBAAMmc,CACXb,EACAc,EAAsC/d,EAAmBge,aAEzD,MAAMC,QAA0Bhd,KAAKid,qBACrC,IAAIC,EAAoB1b,OAAOC,OAAO,GAAIub,GACtChd,KAAKyb,qBACPyB,EAAUA,EAAQC,aAAand,KAAKyb,qBAGtC,MAAM2B,EAAsB,GAC5B,IAAIC,EAAa,KAEjB,IAAK,IAAIvc,EAAI,EAAGA,EAAIoc,EAAQ7X,SAAWgY,EAASvc,IAAK,CACnDsc,EAAUnc,KAAKqF,EAAc4D,QAAQgT,EAAQpc,GAAI,EAAG,IAEpD,MAAMob,EACJpb,IAAMoc,EAAQ7X,OAAS,GAAKrF,KAAK4b,qBAAuB5b,KAAK4b,qBAAuBhd,EAAgBsD,MACtGmb,QAAgBnC,EAAWa,kBAAkBC,EAAekB,EAAQpc,GAAIob,GACpEmB,GAAWvc,GAAKkc,EAAQ3X,QAC1BoK,EAAON,WAAWnP,KAAK2b,0BAA2B,oCAAqCrV,EAAc4D,QAAQgT,EAAQpc,GAAI,GAE5H,CAED,GAAIuc,EAAS,CACX,MAAMC,EAAqBvc,KAAK8H,MAAMxJ,KAAK8O,MAAQ,KAE7CuO,EAAqBW,GAASZ,KAAOY,EAAQZ,IAAmB,IAAba,EAAmBvc,KAAK8H,MAAMwU,EAAQZ,IAAM,KAAQY,GAASZ,IAChHc,EAAqBF,GAASG,KAAOH,EAAQG,IAAmB,IAAbF,EAAmBvc,KAAK8H,MAAMwU,EAAQG,IAAM,KAAQH,GAASG,IAEtH,GAAKd,GAAcY,GAAcZ,GAAgBa,GAAcD,GAAcC,EAAa,CAExF,MAAME,EAAcH,EAAaZ,EAEjC,OADAjN,EAAOxN,MAAM,kDAAmDob,EAAQZ,IAAKpD,EAAgBC,iBAAuB,IAANmE,IACtGX,GACN,KAAK/d,EAAmB2e,gBACtB,MAAM,IAAI3d,MAAM,yBAClB,KAAKhB,EAAmB4e,SACtBN,EAAQnC,EAAWY,oBAAqB,EACxC,MACF,QACEuB,EAAU,KAGf,CACF,MACC5N,EAAO1N,KAAK,iDAAkDqb,EAAWpB,GAG3E,OAAOqB,CACR,CAEM,wBAAMJ,GACX,MAAMW,QAAkC5d,KAAKwb,qBACvC9a,EAAiBwF,MAAM2X,QAAQD,GAAUA,EAAS,CAACA,GACzD,GAAIld,EAAK2E,OAAS,EAChB,MAAM,IAAItF,MAAM,0DAElB,OAAOW,CACR,CAEM,+BAAMod,GACX,MAAMF,QAAyB5d,KAAKid,qBAEpC,OADqBW,EAAO7c,KAAK8H,MAAM9H,KAAK2H,SAAWkV,EAAOvY,QAE/D,CAEM,uBAAM0Y,CAAkBV,EAAcW,EAA4BC,GACvE,MAAML,EAAiBtX,EAAciB,WAAW0W,GAC5C3X,EAAciB,WAAW0W,SACnBje,KAAK8d,4BAIf,GAFAjZ,EAAeG,mBAAmBqY,EAAS,WAC3CA,EAAQa,IAAMle,KAAK0b,aAAe1b,KAAK0b,eAAiB,KACpDsC,EAAmB,CACrB,MACMG,EADapd,KAAK8H,MAAMxJ,KAAK8O,MAAQ,KACd6P,EAC7BvO,EAAOxN,MAAM,2BAA4Bkc,GACzCd,EAAQZ,IAAM0B,CACf,CAED,OADsBhC,EAAIiC,KAAKf,EAASO,EAEzC,CAEM,sBAAMS,CAAiBC,EAAqBC,EAAwBP,GACzE,MAAMQ,EAA+BD,EAAexf,EAAmB4e,SAAW5e,EAAmB2e,gBAC/FL,QAA8Brd,KAAK6c,YAAYyB,EAAaE,GAE5DC,EAAkCpB,EAAQZ,KAAOY,EAAQqB,IAAMrB,EAAQZ,IAAMY,EAAQqB,IAAM,KAC3FC,EAA+BX,GAAqBS,EAE1DvD,EAAW0D,gBAAgBvB,GAC3BnC,EAAW2D,kBAAkBxB,GAE7B,aAD4Brd,KAAK+d,kBAAkBV,EAASsB,EAE7D,CAGM,0BAAOpC,CAA4CuC,GACxD,OAAO3C,EAAI9U,OAAOyX,EACnB,CAGM,sBAAOF,CAAgB7Z,GACxBA,GACF,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAOqD,SAAS2W,WAClDha,EAAGga,EAAE,GAGjB,CAEM,wBAAOF,CAAkB9Z,GAC1BA,UACKA,EAAGmW,EAAWY,kBAExB,QCzMUkD,EAEJ,uBAAOC,CAAiBxX,EAAUvE,GAAM,GAC7C,IAAIxC,EAAO,eACX,GAAI+G,EACF,GAAIA,EAAa,QACf/G,EAAO+G,EAAa,aAEpB,IACE/G,EAAOiE,KAAKC,UAAU6C,EACvB,CAAC,MAAOyX,GACPzP,EAAO3N,MAAM,4BACbpB,EAAOgJ,OAAOjC,EACf,CAML,OAHIvE,GACFuM,EAAO3N,MAAM,KAAMpB,EAAM+G,GAEpB/G,CACR,CAGM,YAAOye,CAAMxY,GAClB,IAAIjG,EAAc,KAQlB,OAPIiG,IAEAjG,EADEiG,aAAiB5G,MACZ4G,EAEA,IAAI5G,MAAM,yBAA2B2J,OAAO/C,KAGhDjG,CACR,CAEM,WAAO0e,CAAKlb,KAAmByC,GACpC,MAAM/C,EAAcK,EAAKC,OAAOA,KAAWyC,GAC3C,OAAO,IAAI5G,MAAM6D,EAClB,CAEM,wBAAOyb,CAAkBnb,KAAmByC,GACjD,MAAMqY,EAAaI,KAAKlb,KAAWyC,EACpC,QCzCU2Y,EAKJ,gCAAOC,CAA6BhL,EAAUiL,EAAoB,KACvE,IAAKA,GAAkC,IAArBA,EAAUna,OAC1B,MAAM,IAAItF,MAAM,gDAElB,MAAMW,EAAU,CAAA,EAWhB,OAVAc,OAAO4J,KAAKmJ,GAAKnM,SAAS2W,IACxB,MAAMU,EAAiBV,EAAEvT,MAAMgU,GAC/B,IAAIE,EAAchf,EAClB,KAAO+e,EAAKpa,OAAS,GACnBqa,EAAOD,EAAK,IAAMC,EAAOD,EAAK,KAAO,GACrCC,EAASA,EAAOD,EAAK,IACrBA,EAAKE,OAAO,EAAG,GAEjBD,EAAOD,EAAK,IAAMlL,EAAIwK,EAAE,IAEnBre,CACR,CAEM,0BAAOkf,CAA0BjZ,EAAYkZ,GAClD,IAAKlZ,IAAUkZ,EACb,MAAM,IAAI9f,MAAM,0CAGlB,MAAMW,EAAkB,IAAI6B,IAW5B,OAVAoE,EAAMyB,SAAStH,IACb,MAAMkG,EAAWlG,EAAIA,EAAE+e,GAAY,KACnC,GAAI7Y,QACF,MAAM,IAAIjH,MAAM,gBAAkB8f,EAAW,aAAelb,KAAKC,UAAU9D,IAE7E,GAAIJ,EAAKqH,IAAIf,GACX,MAAM,IAAIjH,MAAM,6BAA+BiH,GAEjDtG,EAAKqC,IAAIiE,EAAKlG,EAAE,IAEXJ,CACR,CAEM,sBAAOof,CAAsBnZ,EAAYkZ,GAC9C,IAAKlZ,IAAUkZ,EACb,MAAM,IAAI9f,MAAM,0CAGlB,MAAMW,EAAoB,IAAI6B,IAW9B,OAVAoE,EAAMyB,SAAStH,IACb,MAAMkG,EAAWlG,EAAIA,EAAE+e,GAAY,KACnC,GAAI7Y,QACF,MAAMgY,EAAaI,KAAK,8BAA+BS,EAAU/e,GAE9DJ,EAAKqH,IAAIf,IACZtG,EAAKqC,IAAIiE,EAAK,IAEhBtG,EAAKuN,IAAIjH,GAAK/F,KAAKH,EAAE,IAEhBJ,CACR,CAGM,gBAAOqf,CAAUC,EAAeP,GACrC,OAAKA,GAAuB,GAAfA,EAAKpa,OAGZ2a,EACKV,EAAWS,UAAUC,EAASP,EAAK,IAAKA,EAAK7e,MAAM,IAEnD,KALFof,CAQV,CAGM,uBAAOC,CAAiBD,EAAeE,GAC5C,OAAKA,GAA6B,GAAlBA,EAAQ7a,OAGlB2a,EACKV,EAAWS,UAAUC,EAAUE,EAAQ1U,MAAM,MAE7C,KALFwU,CAQV,CAMM,wBAAOG,CAAkBC,EAAcC,GAC5C,OAAe,MAAXD,GAA8B,MAAXC,GACR,MAAXD,GAA8B,MAAXC,GAChB1b,KAAKC,UAAUwb,IAAYzb,KAAKC,UAAUyb,EAClD,CAGM,qBAAOC,CAAevX,GAC3B,MAAMwX,EAA+B,GAErC,IAAK,MAAMxB,KAAKvd,OAAO4J,KAAKrC,GAC1BwX,EAAYtf,KAAK,CACfoK,IAAK0T,EACLhW,MAAOA,EAAMgW,KAIjB,OAAOwB,CACR,CAEM,uBAAOC,CAAoBC,GAChC,MAAM/f,EAAY,CAAA,EAElB,OADA+f,EAAKrY,SAASqK,GAAO/R,EAAK+R,EAAEpH,KAAOoH,EAAE1J,QAC9BrI,CACR,CAMM,cAAOggB,CAAWC,EAAQC,GAAY,EAAOC,GAAY,EAAMC,GAAiB,EAAMC,GAAmB,GAE9G,GAAIJ,SAAoD,iBAARA,EAC9C,OAAOA,EAET,MAAMK,EAAIrc,KAAK6C,MAAM7C,KAAKC,UAAU+b,IAuBpC,OArBAnf,OAAO4J,KAAK4V,GAAG5Y,SAASiD,IACtB,GAAI2V,EAAE3V,IAA0B,iBAAX2V,EAAE3V,GACrB,GAAInF,MAAM2X,QAAQmD,EAAE3V,IAClB,IAAK,IAAIvK,EAAI,EAAGA,EAAIkgB,EAAE3V,GAAKhG,OAAQvE,IACjCkgB,EAAE3V,GAAKvK,GAAKwe,EAAWoB,QAAQM,EAAE3V,GAAKvK,SAGxCkgB,EAAE3V,GAAOiU,EAAWoB,QAAQM,EAAE3V,cAGpBsG,IAAXqP,EAAE3V,IAAsByV,GACb,OAAXE,EAAE3V,IAAiBwV,GACR,KAAXG,EAAE3V,IAAe0V,GACN,IAAXC,EAAE3V,IAAcuV,SAEVI,EAAE3V,GAET2V,EAAE3V,GAAO2V,EAAE3V,EACZ,IAGI2V,CACR,CAGM,oCAAOC,CAA8B1M,EAAUlJ,GACpD,IAAI3K,EAAY,KAChB,GAAI6T,GAAOlJ,EAAK,CACd,MAAM6V,EAAiB7V,EAAIrC,cAC3BxH,OAAO4J,KAAKmJ,GAAKnM,SAASC,IACxB,GAAIA,EAAEW,gBAAkBkY,EAAQ,CAC9B,MAAMC,EAAiB5M,EAAIlM,GACvB3H,GACF+O,EAAO1N,KAAK,sDAAuDsJ,EAAK3K,EAAMygB,GAEhFzgB,EAAOygB,CACR,IAEJ,CACD,OAAOzgB,CACR,CAGM,uBAAO0gB,CAAiBrc,EAASsc,GACtC,IAAI3gB,GAAO,EACX,GAAMqE,GAAQA,EAAGsc,IAAiC,mBAAftc,EAAGsc,GACpC,IACEtc,EAAGsc,KACH3gB,GAAO,CACR,CAAC,MAAO+G,GACPgI,EAAO1N,KAAK,8BAA+Bsf,EAAQtc,EAAI0C,EAAKA,EAC7D,CAEH,OAAO/G,CACR,CAGM,4BAAO4gB,CAAyBvc,EAASwc,GAC9C,IAAI7gB,EAAU,KAEd,GAAMqE,GAAQwc,IACZ7gB,EAAOqE,EAAGwc,IACL7gB,GAAM,CACT,MAAM8gB,EAAoBhgB,OAAO4J,KAAKrG,GAAI0T,MAAMqB,GAAMA,EAAE9Q,gBAAkBuY,EAAQvY,gBAC5EwY,IACJ9gB,EAAOqE,EAAGyc,GAEb,CAEH,OAAO9gB,CACR,QCvMU+gB,EACJ,0BAAOC,CAAoB/a,GAChC,OAAOA,EAAMmG,KAAKhM,GAAM,CAACA,IAC1B,CAEM,uBAAO6gB,CAAoBC,EAAUC,EAAUC,GACpDF,EAAIpP,KAAKsP,GACTD,EAAIrP,KAAKsP,GAET,IAAIC,EAAM,EACNC,EAAM,EACV,MAAMthB,EAAuB,CAC3BuhB,SAAU,GACVC,WAAY,GACZC,WAAY,IAGd,KAAOJ,EAAMH,EAAIvc,QAAU2c,EAAMH,EAAIxc,QAAQ,CAC3C,MAAM+c,EAAUR,EAAIG,GACdM,EAAUR,EAAIG,GACdM,EAAeR,EAAGM,EAAMC,GAEjB,IAATC,GACF5hB,EAAKuhB,SAAShhB,KAAKmhB,GACnBL,IACAC,KACSM,EAAO,GAChB5hB,EAAKwhB,WAAWjhB,KAAKmhB,GACrBL,MAEArhB,EAAKyhB,WAAWlhB,KAAKohB,GACrBL,IAEH,CASD,OAPID,EAAMH,EAAIvc,OAAS,IACrB3E,EAAKwhB,WAAaxhB,EAAKwhB,WAAW/E,OAAOyE,EAAIhhB,MAAMmhB,KAEjDC,EAAMH,EAAIxc,OAAS,IACrB3E,EAAKyhB,WAAazhB,EAAKyhB,WAAWhF,OAAO0E,EAAIjhB,MAAMohB,KAG9CthB,CACR,CAUM,6CAAO6hB,CACZ5b,EACA6b,EACApP,EACAC,GAEA,IAAK1M,GAA0B,IAAjBA,EAAMtB,OAClB,OAAOsB,EAGT,IAAI8b,EAAqC,OAAjBrP,EAAwB,EAAIqO,EAAaiB,UAAU/b,EAAO6b,EAAcpP,IAAiB,EACjH,MAAMuP,EAAkC,OAAjBtP,EAAwB1M,EAAMtB,OAASoc,EAAaiB,UAAU/b,EAAO6b,EAAcnP,GAEpGuP,EAAsBtD,EAAWW,iBAAiBtZ,EAAM8b,GAAYD,GAC1E,OAAIC,IAAc9b,EAAMtB,OAAS,GAAKud,EAAcxP,EAE3C,IAKLqP,EAAY9b,EAAMtB,QAAUod,EAAYE,GAAUC,EAAcxP,GAClEqP,IAGK9b,EAAM/F,MAAM6hB,EAAWE,EAAS,GACxC,CAUM,gBAAOD,CAAU/b,EAAc6b,EAAsB9C,GAK1D,GAJA7a,EAAeG,mBAAmB2B,GAClC9B,EAAeG,mBAAmBwd,GAClC3d,EAAeG,mBAAmB0a,GAEb,IAAjB/Y,EAAMtB,QAAgBia,EAAWW,iBAAiBtZ,EAAM,GAAI6b,GAAgB9C,EAC9E,OAAO,KAGT,IAAIxN,EAAM,EACNlR,EAAc2F,EAAMtB,OACpB3E,EAAe,KAEnB,KAAgB,OAATA,GAAe,CACpB,MAAMmiB,EAAiB9hB,KAAK8H,OAAOqJ,EAAMlR,GAAO,GAC1C8hB,EAAiBxD,EAAWW,iBAAiBtZ,EAAMkc,GAASL,GAC9DtQ,IAAQlR,GAAOkR,IAAQlR,EAAM,EAC/BN,EAAOwR,EACE4Q,GAAUpD,EACnBxN,EAAM2Q,EAEN7hB,EAAM6hB,CAET,CACD,OAAOniB,CACR,QCnHUqiB,EACHlhB,oBAAmC,IAAIoF,YACvCpF,oBAAmC,IAAIuF,YAAY,SAGpD,6BAAO4b,CAAuBrc,GACnC,OAASA,EAAQoc,EAAcE,8BAA8Bte,KAAKC,UAAU+B,IAAU,IACvF,CAEM,0BAAOuc,CAAoBvc,GAChC,IAAIjG,EAAY,CAAA,EAChB,IACMiG,IACFjG,EAAOiE,KAAK6C,MAAMub,EAAcI,qBAAqBxc,IAExD,CAAC,MAAOc,GACPgI,EAAO1N,KAAK,8CAA+C4E,EAAOc,EAAKA,GACvE/G,EAAO,CAAA,CACR,CACD,OAAOA,CACR,CAEM,kCAAO0iB,CAA4BC,GACxC,OAAO,IAAIC,SAAQ,SAAUC,EAASC,GACpC,GAAKH,GAAqB,GAAbA,EAAKvjB,KAEX,CACL,MAAM2jB,EAAS,IAAIC,WACnBD,EAAOE,UAAY,WACjBJ,EAAQE,EAAOG,OAAOjb,WACxB,EACA8a,EAAOI,cAAcR,EACtB,MAPCG,EAAO,8CAQX,GACD,CAEM,oCAAOP,CAA8Btc,GAC1C,OAAOoc,EAAce,kCAAkCf,EAAcgB,aAAa7c,OAAOP,GAC1F,CAEM,wCAAOmd,CAAkCnd,GAE9C,OAAOqd,KAAKjB,EAAckB,aAAa5c,OAAOV,GAC/C,CAEM,+BAAOud,CAAyBC,GACrC,OAAO,IAAIC,WACTC,KAAKF,GACF3Y,MAAM,IACNsB,KAAI,SAAUtE,GACb,OAAOA,EAAEsD,WAAW,EACrB,IAEN,CAEM,2BAAOqX,CAAqBxc,EAAe2d,EAAmB,QACnE,OAAO,IAAIld,YAAYkd,GAAUjd,OAAO0b,EAAcmB,yBAAyBvd,GAChF,QC5DU4d,EACHC,QACAC,WAER,WAAA5kB,CAAY0U,EAA4BmQ,GAAgB,GACtD,IAAKnQ,GAAqB,GAAdA,EAAIlP,OACd,MAAMtF,MAAM,4DAEdC,KAAKwkB,QAAUjQ,EACfvU,KAAKykB,WAAaC,CACnB,CAEM,WAAAC,GACL,IAAIjkB,EAAe,KAWnB,OAVAV,KAAKwkB,QAAQpc,SAASC,IACpB,MAAMrB,EAAcqB,EAAEsc,cACX,MAAP3d,IAEAtG,EADU,MAARA,GAGMsG,EAAMtG,GAAQV,KAAKykB,YAAgBzd,EAAMtG,IAASV,KAAKykB,WAFxDzd,EAE4EtG,EAEtF,IAEIA,CACR,QCnBUkkB,EACJ/iB,6BAA+B,aAC/BA,2BAA6B,aAC7BA,wBAA0B,sBAE1BA,yBAAmC,sBACnCA,qBAA+B,UAE/B,qBAAOgjB,CAAele,GAC3B,OAAOwT,EAASC,WAAWzT,GAAOqU,SAAS4J,EAAYE,iBACxD,CAEM,4BAAOC,CAAsBpe,GAClC,OAAOwT,EAASC,WAAWzT,GAAOqU,SAAS4J,EAAYI,oBACxD,CAEM,uBAAOC,CAAiBte,GAE7B,OADmBwT,EAAS+K,WAAWve,EAAOie,EAAYI,qBAAqBG,UAEhF,CAEM,wBAAOC,CAAkBze,GAC9B,IAAIjG,EAAa,KACjB,GAAMiG,EAAO,CACX,IAAI0e,EAAgBT,EAAYU,sBACL,IAAvB3e,EAAMlD,QAAQ,OAChB4hB,EAAQA,EAAM7Z,MAAM,KAAKC,KAAK,MAEhC/K,EAAOyZ,EAAS+K,WAAWve,EAAO0e,GAAOF,UAC1C,CACD,OAAOzkB,CACR,QC9BU6kB,EACJ,mBAAOC,CAAaC,GAEzB,OADuBC,EAAMD,GAAaE,WAE3C,CAEM,gBAAOC,CAAaH,EAAkBze,EAAa6e,GAAyB,GACjF,MAAMnN,EAAiBgN,EAAMD,GAC7B,IAAI/kB,EAAU,KACd,GAAMsG,IACJtG,EAAOgY,EAAEoN,iBAAiB9e,EAAK,OAC1BtG,IAASmlB,GAAe,CAE3B,MACME,EADiBR,EAAYC,aAAaC,GACtBhN,MAAMsG,GAAMA,EAAEiH,gBAAkBhf,EAAIgf,gBACxDD,IACJrlB,EAAOgY,EAAEoN,iBAAiBC,EAAM,MAEnC,CAEH,OAAOrlB,CACR,CAEM,0BAAOulB,CAAuBR,EAAkB9e,GAKrD,OAJwBL,EAAcwE,YAAYnE,GAC/C6E,MAAM,KACNsB,KAAKzE,GAAMA,EAAElD,SACQ2H,KAAKzE,GAAMkd,EAAYK,UAAaH,EAAapd,KAAIkG,QAAQlG,KAAQA,GAE9F,QCjCU6d,EACJ,mBAAOC,CAAaC,GACzB,IAAKA,EACH,MAAM,IAAIrmB,MAAM,oDAGlB,OADqBsmB,EAAIC,cAAc,IAAIC,IAAI,IAAKH,GAErD,CAEM,oBAAOI,CAAcJ,GAC1B,IAAKA,EACH,MAAM,IAAIrmB,MAAM,oDAGlB,OADqBsmB,EAAIC,cAAcF,EAExC,QCbUK,EACHC,QACAC,aACAC,oBACAC,iBAER,WAAAhnB,CAAYinB,GACV9mB,KAAK0mB,QAAUllB,OAAOC,OAAO,CAAA,EAAIzB,KAAK+mB,gBAAiBD,GAAe,CAAA,GAClE9mB,KAAK0mB,QAAQM,yBAA2BhnB,KAAK0mB,QAAQO,cACvDjI,EAAaK,kBAAkB,+DAE5Brf,KAAK0mB,QAAQM,yBAA4BhnB,KAAK0mB,QAAQO,cACzDjI,EAAaK,kBAAkB,sEAE7Brf,KAAK0mB,QAAQQ,cACflnB,KAAKsY,OAAOtY,KAAK0mB,QAAQQ,cAE3BlnB,KAAK6mB,iBAAmB7mB,KAAK0mB,QAAQM,yBAA2BhnB,KAAKmnB,sBACtE,CAEO,aAAAJ,GAQN,MAPsC,CACpCK,UAAW,KACXF,aAAc,KACdhL,SAAUtd,EAAgBqD,MAC1B+kB,wBAAyB,KACzBC,aAAc,IAGjB,CAEO,4BAAME,CAAuBE,GACnC,IAAI3mB,EAAe,EACnB,GAAI2mB,EAAoB,CACtB,MAAMC,GAAgB,IAAIjoB,MAAOC,UAAY+nB,EAC7C3mB,EAAOK,KAAKC,IAAI,EAAGhB,KAAK0mB,QAAQO,aAAeK,EAChD,CACD,OAAO5mB,CACR,CAEM,MAAA4X,CAAOlL,EAAama,GAA4B,GACrDvnB,KAAK2mB,aAAevZ,EACfma,IACHvnB,KAAK4mB,qBAAsB,IAAIvnB,MAAOC,WAExCmQ,EAAON,WAAWnP,KAAK0mB,QAAQxK,SAAU,4BAA6B9O,EACvE,CAEM,qCAAMoa,GACX,OAAOxnB,KAAK6mB,iBAAiB7mB,KAAK4mB,oBACnC,CAEM,WAAMa,GAMX,SAL+BznB,KAAK6mB,iBAAiB7mB,KAAK4mB,uBAExD5mB,KAAK2mB,aAAe,KACpB3mB,KAAK4mB,oBAAsB,OAExB5mB,KAAK2mB,cACJ3mB,KAAK0mB,QAAQU,UAAW,CAC1B,MAAMha,QAAoBpN,KAAK0mB,QAAQU,YACvC3X,EAAON,WAAWnP,KAAK0mB,QAAQxK,SAAU,qCAAsC9O,GAC/EpN,KAAKsY,OAAOlL,EACb,CAEH,OAAOpN,KAAK2mB,YACb,QAGUe,EACXT,aACAG,UACAF,aACAhL,SACA8K,8BCzEWW,EAGX,WAAA9nB,GAAwB,CAKjB,+BAAO+nB,CAAyBC,EAAcC,EAAcC,EAAcC,EAAcC,EAAO,KACpG,MAAMC,EAAeD,EAAOA,EAAKjC,cAAgB,GAEjD,IAA+C,IAA3C,CAAC,IAAK,IAAK,IAAK,IAAK,KAAKviB,QAAQykB,GACpC,MAAM,IAAInoB,MAAM,gBAElB,GAAI8nB,GAAQE,GAAQD,GAAQE,EAC1B,OAAO,EACF,CACL,MAAMG,EAAmBpnB,KAAKqnB,GAAKP,EAAQ,IACrCQ,EAAmBtnB,KAAKqnB,GAAKL,EAAQ,IACrCO,EAAgBR,EAAOE,EACvBO,EAAoBxnB,KAAKqnB,GAAKE,EAAS,IAC7C,IAAIE,EAAeznB,KAAK0nB,IAAIN,GAAWpnB,KAAK0nB,IAAIJ,GAAWtnB,KAAK2nB,IAAIP,GAAWpnB,KAAK2nB,IAAIL,GAAWtnB,KAAK2nB,IAAIH,GAmB5G,OAlBIC,EAAO,IACTA,EAAO,GAETA,EAAOznB,KAAK4nB,KAAKH,GACjBA,EAAe,IAAPA,EAAcznB,KAAKqnB,GAC3BI,EAAc,GAAPA,EAAY,OACR,MAAPN,IACFM,GAAQ,MAEC,MAAPN,IACFM,GAAQ,UAEC,MAAPN,IACFM,GAAQ,UAEC,MAAPN,IACFM,GAAQ,OAEHA,CACR,CACF,CAEM,yCAAOI,CAAmCC,EAA0BC,EAA0Bb,EAAe,KAClH,OAAON,EAAmBC,yBAAyBiB,EAAKE,IAAKF,EAAKG,IAAKF,EAAKC,IAAKD,EAAKE,IAAKf,EAC5F,CAEM,4BAAOgB,CAAsBC,EAA2B,GAQ7D,MAAMC,EAAqBD,EAA2BnoB,KAAKqnB,GAAM,IAC3DgB,EAAiBroB,KAAK2nB,IAAIS,GAEhC,OADqBzY,EAAcI,YAAqB,OAATsY,GAAiB5f,QAAQ,GAEzE,CAEM,uBAAO6f,CAAiBC,EAAeJ,EAA2B,GACvErkB,EAAeG,mBAAmBskB,GAClCzkB,EAAeqD,KAAKohB,GAAS,GAE7B,OAAOA,EADuB3B,EAAmBsB,sBAAsBC,EAExE,CAEM,qBAAOK,CAAeC,GAE3B,OADA3kB,EAAeG,mBAAmBwkB,GAC3B,CACLT,KAAMS,EAAOC,OAAOV,IAAMS,EAAOE,OAAOX,KAAO,EAC/CC,KAAMQ,EAAOC,OAAOT,IAAMQ,EAAOE,OAAOV,KAAO,EAElD,CAEO,sBAAOW,CAAgBhjB,EAAgCijB,EAAgBC,GAC7EhlB,EAAeG,mBAAmB2B,GAClC9B,EAAeG,mBAAmB4kB,GAClC/kB,EAAeG,mBAAmB6kB,GAElCljB,EAAM6L,MAAK,CAACC,EAAGC,IAAMD,EAAEiX,OAAOG,GAASnX,EAAEgX,OAAOG,KAChD,MACMrW,EADgC7M,EAAMmG,KAAKhM,GAAM6mB,EAAmB4B,eAAezoB,KAC1DgM,KAAKtE,GAAMA,EAAEqhB,KACtCC,EAAuB,GAC7B,IAAK,IAAIhpB,EAAI,EAAGA,EAAI0S,EAAKnO,OAAQvE,IAAK,CACpC,MAAMhB,EAAe0T,EAAK1S,GAAK0S,EAAK1S,EAAI,GACpCgpB,EAAOzkB,OAASukB,GAClBE,EAAO7oB,KAAK,CAAEuW,IAAK1W,EAAGhB,KAAMA,IAC5BgqB,EAAOtX,MAAK,CAACC,EAAGC,IAAMD,EAAE3S,KAAO4S,EAAE5S,QACxBA,EAAOgqB,EAAO,GAAGhqB,MAC1BgqB,EAAO,GAAK,CAAEtS,IAAK1W,EAAGhB,KAAMA,GAC5BgqB,EAAOtX,MAAK,CAACC,EAAGC,IAAMD,EAAE3S,KAAO4S,EAAE5S,QAEjC2P,EAAOvN,MAAM,0BAA2BpC,EAAMgqB,EAEjD,CAGD,OAFAra,EAAOjQ,KAAK,iBAAkBsqB,GAC9BA,EAAOtX,MAAK,CAACC,EAAGC,IAAMD,EAAE+E,IAAM9E,EAAE8E,MACzBsS,CACR,CAEM,uBAAOC,CAAiBC,EAAmCC,EAAY,EAAGC,EAAY,GAC3F,IAAIxpB,EAAgC,KAIpC,GAHIupB,EAAYC,EAAY,GAC1BlL,EAAaK,kBAAkB,6CAA8C4K,EAAWC,GAEpFF,EAAU,CACdtpB,EAAO,GACP,MAAMiG,EAAiCnF,OAAOC,OAAO,GAAIuoB,GACzDrjB,EAAM6L,MAAK,CAACC,EAAGC,IAAMD,EAAEiX,OAAOV,IAAMtW,EAAEgX,OAAOV,MAC7C,MAAMmB,EAA0BxC,EAAmBgC,gBAAgBK,EAAUE,EAAY,EAAG,OAC5FC,EAAU3X,MAAK,CAACC,EAAGC,IAAMD,EAAE+E,IAAM9E,EAAE8E,MACnC,IAAK,IAAI1W,EAAI,EAAGA,GAAKqpB,EAAU9kB,OAAQvE,IAAK,CAC1C,MAAMspB,EAA4B,IAANtpB,EAAU,EAAIqpB,EAAUrpB,EAAI,GAAG0W,IACrD6S,EAAoBvpB,IAAMqpB,EAAU9kB,OAASsB,EAAMtB,OAAS8kB,EAAUrpB,GAAG0W,IACzE8S,EAAoC3jB,EAAM/F,MAAMwpB,EAAaC,GAEnEC,EAAS9X,MAAK,CAACC,EAAGC,IAAMD,EAAEiX,OAAOX,IAAMrW,EAAEgX,OAAOX,MAChD,MAAMwB,EAA0B5C,EAAmBgC,gBAAgBW,EAAUL,EAAY,EAAG,OAC5F,IAAK,IAAIpX,EAAI,EAAGA,GAAK0X,EAAUllB,OAAQwN,IAAK,CAC1C,MAAM2X,EAA2B,GAAL3X,EAAS,EAAI0X,EAAU1X,EAAI,GAAG2E,IACpDiT,EAAoB5X,IAAM0X,EAAUllB,OAASilB,EAASjlB,OAASklB,EAAU1X,GAAG2E,IAC5EkT,EAAoCJ,EAAS1pB,MAAM4pB,EAAaC,GACtE/pB,EAAKO,KAAK0mB,EAAmBgD,cAAcD,GAC5C,CACF,CACDjb,EAAOjQ,KAAK,kBAAmBkB,EAChC,CAOD,OAAOA,CACR,CAIM,yBAAOkqB,CAAmBC,EAA4BC,GAA0B,GACrFjmB,EAAeG,mBAAmB6lB,EAAK,yBACvC,MAAME,EAAiBhqB,KAAKmR,IAAI2Y,EAAIpB,OAAOV,IAAK8B,EAAInB,OAAOX,KACrDiC,EAAiBjqB,KAAKC,IAAI6pB,EAAIpB,OAAOV,IAAK8B,EAAInB,OAAOX,KACrDkC,EAAiBlqB,KAAKmR,IAAI2Y,EAAIpB,OAAOT,IAAK6B,EAAInB,OAAOV,KACrDkC,EAAiBnqB,KAAKC,IAAI6pB,EAAIpB,OAAOT,IAAK6B,EAAInB,OAAOV,KAG3D,GAF2B+B,EAAS,GAAKC,EAAS,GAAOD,EAAS,GAAKC,EAAS,IACrDD,EAAS,GAAKC,EAAS,GAAOD,EAAS,GAAKC,EAAS,GACtD,CACxB,GAAIF,EACF,OAAOD,EAEP,MAAM,IAAI9qB,MAAM,oDAEnB,CAWD,MAVoC,CAClC2pB,OAAQ,CACNX,IAAKgC,EACL/B,IAAKiC,GAEPxB,OAAQ,CACNV,IAAKiC,EACLhC,IAAKkC,GAIV,CAEM,oBAAOP,CAAcE,GAC1B,IAAInqB,EAA8B,KAalC,OAZImqB,GAAOA,EAAIxlB,OAAS,IACtB3E,EAAO,CACLgpB,OAAQ,CACNX,IAAK8B,EAAI/d,KAAKhM,GAAMA,EAAE4oB,OAAOX,MAAKpd,QAAO,CAAC8G,EAAG3R,IAAMC,KAAKmR,IAAIO,EAAG3R,KAC/DkoB,IAAK6B,EAAI/d,KAAKhM,GAAMA,EAAE4oB,OAAOV,MAAKrd,QAAO,CAAC8G,EAAG3R,IAAMC,KAAKmR,IAAIO,EAAG3R,MAEjE2oB,OAAQ,CACNV,IAAK8B,EAAI/d,KAAKhM,GAAMA,EAAE2oB,OAAOV,MAAKpd,QAAO,CAAC8G,EAAG3R,IAAMC,KAAKC,IAAIyR,EAAG3R,KAC/DkoB,IAAK6B,EAAI/d,KAAKhM,GAAMA,EAAE2oB,OAAOT,MAAKrd,QAAO,CAAC8G,EAAG3R,IAAMC,KAAKC,IAAIyR,EAAG3R,QAI9DJ,CACR,CAEM,oBAAOyqB,CAAc1iB,EAAuB2iB,GACjD,MAAO,CACLrC,IAAKrY,EAAcI,WAAWrI,EAAEsgB,IAAIvf,QAAQ4hB,IAC5CpC,IAAKtY,EAAcI,WAAWrI,EAAEugB,IAAIxf,QAAQ4hB,IAE/C,CAEM,uBAAOC,CAAiBnY,EAAyBoY,GACtD,MAAMrY,EAAiB0U,EAAmB0B,iBAAiBiC,EAAapY,EAAI6V,KAW5E,MAVmC,CACjCW,OAAQ,CACNX,IAAK7V,EAAI6V,IAAM9V,EACf+V,IAAK9V,EAAI8V,IAAM/V,GAEjBwW,OAAQ,CACNV,IAAK7V,EAAI6V,IAAM9V,EACf+V,IAAK9V,EAAI8V,IAAM/V,GAIpB,CAEM,mBAAOsY,CAAa1C,EAA0BC,GACnD,QAASD,KAAUC,GAAQD,EAAKE,MAAQD,EAAKC,KAAOF,EAAKG,MAAQF,EAAKE,GACvE,CAEM,oBAAOwC,CAAc5V,EAAwB6V,GAClD,QACI7V,KACA6V,GACF/a,EAAcM,QAAQ4E,EAAGmT,IAAK0C,EAAM/B,OAAOX,IAAK0C,EAAMhC,OAAOV,MAC7DrY,EAAcM,QAAQ4E,EAAGoT,IAAKyC,EAAM/B,OAAOV,IAAKyC,EAAMhC,OAAOT,IAEhE,CAEM,sBAAO0C,CAAgB9V,EAAwB+V,EAAmCC,EAAyB,IAChH,IAAIlrB,GAAO,EACX,GAAIirB,EAAStmB,OAASumB,EAAwB,CAC5C,MAAMC,EAA+BlE,EAAmBmE,8BAA8BH,GACtFjrB,EAAOinB,EAAmBoE,gCAAgCnW,EAAIiW,EAC/D,MACC,IAAK,IAAI/qB,EAAI,EAAGA,EAAI6qB,EAAStmB,SAAW3E,EAAMI,IAC5CJ,EAAOinB,EAAmB6D,cAAc5V,EAAI+V,EAAS7qB,IAGzD,OAAOJ,CACR,CAEM,sCAAOqrB,CAAgCnW,EAAwBiW,GACpE,IAAInrB,GAAO,EACX,MAAM8X,EAAuCmP,EAAmBqE,kCAAkCpW,EAAIiW,GACtG,GAAMrT,EAAO,CACX,MAAMgR,EAAkChR,EAAMgR,OAE9C,IAAK,IAAI1oB,EAAI,EAAGA,EAAI0oB,EAAOnkB,SAAW3E,EAAMI,IAC1CJ,EAAOinB,EAAmB6D,cAAc5V,EAAI4T,EAAO1oB,GAEtD,CAED,OAAOJ,CACR,CAEM,wCAAOsrB,CAAkCpW,EAAwBiW,GACtE,IAAInrB,EAAsC,KAC1C,GAAIkV,EAAGmT,KAAO8C,EAAGI,WAAarW,EAAGmT,KAAO8C,EAAGb,QAAUpV,EAAGoT,KAAO6C,EAAGK,WAAatW,EAAGoT,KAAO6C,EAAGX,OAAQ,CAClG,MAAMiB,EAAgBprB,KAAKqrB,MAAMxW,EAAGmT,KAAO8C,EAAGI,UACxCI,EAAiBtrB,KAAKqrB,MAAMxW,EAAGoT,KAAO6C,EAAGK,UAC/CxrB,EAAOmrB,EAAGS,QAAQH,GAAOE,EAC1B,CAED,OAAO3rB,CACR,CAEM,oCAAOorB,CAA8BH,GAC1C,MAAMZ,EAAiBY,EAAS7e,KAAKhM,GAAMA,EAAE4oB,OAAOX,MAAKpd,QAAO,CAAC8G,EAAG3R,IAAMC,KAAKmR,IAAIO,EAAG3R,KAChFmqB,EAAiBU,EAAS7e,KAAKhM,GAAMA,EAAE4oB,OAAOV,MAAKrd,QAAO,CAAC8G,EAAG3R,IAAMC,KAAKmR,IAAIO,EAAG3R,KAChFkqB,EAAiBW,EAAS7e,KAAKhM,GAAMA,EAAE2oB,OAAOV,MAAKpd,QAAO,CAAC8G,EAAG3R,IAAMC,KAAKC,IAAIyR,EAAG3R,KAChFoqB,EAAiBS,EAAS7e,KAAKhM,GAAMA,EAAE2oB,OAAOT,MAAKrd,QAAO,CAAC8G,EAAG3R,IAAMC,KAAKC,IAAIyR,EAAG3R,KAEhFmrB,EAAoBlrB,KAAKqrB,MAAMrB,GAAU,EACzCmB,EAAoBnrB,KAAKqrB,MAAMnB,GAAU,EACzCsB,EAAqBxrB,KAAKqrB,MAAMpB,GAAUiB,EAAY,EACtDO,EAAqBzrB,KAAKqrB,MAAMlB,GAAUgB,EAAY,EAEtDI,EAA6C,GACnD,IAAK,IAAIxrB,EAAI,EAAGA,EAAIyrB,EAAYzrB,IAAK,CACnC,MAAM2rB,EAA0C,GAChD,IAAK,IAAI5Z,EAAI,EAAGA,EAAI2Z,EAAY3Z,IAC9B4Z,EAAOxrB,KAAK,CACV8nB,IAAKkD,EAAYnrB,EACjBkoB,IAAKkD,EAAYrZ,EACjB2W,OAAQ,KAGZ8C,EAAQrrB,KAAKwrB,EACd,CAaD,OAXAd,EAASvjB,SAASsK,IAChB,IAAK,IAAI5R,EAAIC,KAAKqrB,MAAM1Z,EAAEgX,OAAOX,KAAMjoB,GAAKC,KAAKqrB,MAAM1Z,EAAE+W,OAAOV,KAAMjoB,IAAK,CACzE,MACM4rB,EAAuCJ,EADtBxrB,EAAImrB,GAE3B,IAAK,IAAIpZ,EAAI9R,KAAKqrB,MAAM1Z,EAAEgX,OAAOV,KAAMnW,GAAK9R,KAAKqrB,MAAM1Z,EAAE+W,OAAOT,KAAMnW,IAAK,CAEzE6Z,EADuB7Z,EAAIqZ,GACf1C,OAAOvoB,KAAKyR,EACzB,CACF,KAGI,CACLuZ,UAAWA,EACXC,UAAWA,EACXlB,OAAQiB,EAAYM,EACpBrB,OAAQgB,EAAYM,EACpBF,QAASA,EAEZ,QC/SUK,EAGX,WAAA9sB,GAAwB,CAEjB,wBAAO+sB,CAAkBC,GAC9B,IAAInsB,EAA4B,KAahC,GAZI+B,SAASqqB,KAEXrd,EAAOvN,MAAM,+BACbxB,EAAO+B,QAAQqqB,KACNC,QAAQtqB,SAASqqB,KAE1Brd,EAAOvN,MAAM,sCACbxB,EAAOqsB,OAAOtqB,QAAQqqB,KACbC,SACTtd,EAAOvN,MAAM,+BACbxB,EAAOqsB,SAEJrsB,EAAM,CACT,IAAImsB,EAIF,MAAM7N,EAAaI,KAAK,iDAHxB3P,EAAOvN,MAAM,4BACbxB,EAAO,IAIV,CACD,OAAOA,CACR,CAEM,qBAAOssB,CAAeC,GAC3BpoB,EAAeG,mBAAmBioB,EAAQ,UAG1C,OAFsCN,EAAcC,oBACrBK,EAEhC,CAEM,mBAAOC,CAAaD,EAAgBlkB,GACzClE,EAAeG,mBAAmBioB,EAAQ,UAC1CpoB,EAAeG,mBAAmB+D,EAAO,SACH4jB,EAAcC,oBAC3CK,GAAUlkB,CACpB,QC7CUokB,EACX9hB,IACAtC,YCLWqkB,EAEJ,SAAOC,IAAMpnB,GAEnB,QCFUqnB,EAGSC,MAAuBC,UAFnCC,yBAA0B,EAElC,WAAA5tB,CAAoB0tB,EAAuBC,GAAvBxtB,KAAKutB,MAALA,EAAuBvtB,KAASwtB,UAATA,CAAqB,CAEzD,UAAAE,CAAWxR,EAA4Btd,EAAgBmD,MAC5D0N,EAAON,WAAW+M,EAAU,kDAAmDlc,KAAKwtB,UAAWxtB,KAAKutB,MACrG,CAGM,qBAAOI,CAAe5kB,GAC3B,QAASA,KAAWA,EAA+B,uBACpD,QCLU6kB,EAMS5gB,MALZ6gB,OAA8B,IAAItrB,IAClCurB,KAA4B,IAAIvrB,IAEhCwrB,WAAqB1uB,KAAK8O,MAElC,WAAAtO,CAAoBmN,EAAgB1G,EAAcsC,sBAAsB,IAApD5I,KAAKgN,MAALA,CAA0D,CAEvE,KAAArM,CAAMsE,GACXJ,EAAeK,uCAAuCD,EAAM,QAC5D,MAAMkJ,EAAc9O,KAAK8O,MAEzB,OADAnO,KAAK6tB,OAAO9qB,IAAIuD,EAAciB,WAAWtC,GAAOkJ,GACzCA,CACR,CAEM,IAAA6f,CAAK/oB,GACVJ,EAAeK,uCAAuCD,EAAM,QAC5D,MAAMkJ,EAAc9O,KAAK8O,MAEzB,OADAnO,KAAK8tB,KAAK/qB,IAAIuD,EAAciB,WAAWtC,GAAOkJ,GACvCA,CACR,CAEM,KAAA8f,CAAMhpB,GACXJ,EAAeK,uCAAuCD,EAAM,QAC5DjF,KAAK6tB,OAAOK,OAAO5nB,EAAciB,WAAWtC,IAC5CjF,KAAK8tB,KAAKI,OAAO5nB,EAAciB,WAAWtC,GAC3C,CAEM,QAAAkpB,CAASlpB,GAEd,OADAJ,EAAeK,uCAAuCD,EAAM,QACrDjF,KAAK6tB,OAAO9lB,IAAI9C,EACxB,CAEM,GAAA/B,CAAI+B,EAAempB,EAAqBlS,EAA4Btd,EAAgBY,MACzFiQ,EAAON,WAAW+M,EAAUlc,KAAKquB,KAAKppB,EAAMmpB,GAC7C,CAEM,WAAAE,CAAYC,EAAqBtpB,EAAempB,EAAqBlS,EAA4Btd,EAAgBY,MACtHiQ,EAAON,WAAW+M,EAAUlc,KAAKwuB,aAAaD,EAAatpB,EAAMmpB,GAClE,CAEM,UAAAK,GACL,OAAOvoB,MAAMC,KAAKnG,KAAK6tB,OAAOziB,OAC/B,CAEM,OAAAsjB,CAAQlP,EAAoB,KAAM4O,GACvC,MAAMO,EAAiB3uB,KAAKyuB,aAAa3hB,KAAKzE,GAAMrI,KAAKquB,KAAKhmB,EAAG+lB,KACjE,IAAI1tB,EAAe,YAAcV,KAAKquB,KAAK,KAAMD,GAKjD,OAJIO,EAAKtpB,OAAS,IAChB3E,GAAQ8e,EACR9e,GAAQiuB,EAAKljB,KAAK+T,IAEb9e,CACR,CAEM,IAAA2tB,CAAKppB,EAAempB,GACzB,IAAI1tB,EAAeV,KAAKgN,MAAQ,IAChC,MAAM4hB,EAAoBtoB,EAAciB,WAAWtC,GACnD,GAAI2pB,IAAc5uB,KAAKmuB,SAASS,GAC9BluB,GAAQ,mBAAqBkuB,MACxB,CACL,MAAMjuB,EAAgBsE,EAAOjF,KAAK6tB,OAAO5f,IAAI2gB,GAAa5uB,KAAK+tB,WACzDc,EAAc5pB,EAAOjF,KAAK8tB,KAAK7f,IAAI2gB,GAAavvB,KAAK8O,MAC3DzN,IAASkuB,GAAa,WAAa,IAC7BjuB,GAAWkuB,EACfnuB,GAAQ,gBAAkB2Y,EAAgBC,iBAAiBuV,EAAMluB,GAAQytB,GAC9DztB,IACXD,GAAQ,eAAiB2Y,EAAgBC,iBAAiBja,KAAK8O,MAAQxN,GAAQytB,GAElF,CACD,OAAO1tB,CACR,CAEM,YAAA8tB,CAAaD,EAAqBtpB,EAAempB,GACtD,IAAI1tB,EAAeV,KAAKgN,MAAQ,IAChC,MAAM4hB,EAAoBtoB,EAAciB,WAAWtC,GACnD,GAAI2pB,IAAc5uB,KAAKmuB,SAASS,GAC9BluB,GAAQ,mBAAqBkuB,OAE7B,IAAKL,GAAeA,GAAe,EACjC7tB,GAAQ,qDACH,GAAI6tB,EAAc,EACvB7tB,GAAQ,6CACH,CACLA,IAASkuB,GAAa,WAAa,IACnC,MAAMjuB,EAAgBsE,EAAOjF,KAAK6tB,OAAO5f,IAAI2gB,GAAa5uB,KAAK+tB,WACzDc,EAAc5pB,EAAOjF,KAAK8tB,KAAK7f,IAAI2gB,GAAavvB,KAAK8O,MAC3D,GAAMxN,GAAWkuB,EACfnuB,GAAQ,gBAAkB2Y,EAAgBC,iBAAiBuV,EAAMluB,GAAQytB,QACpE,GAAMztB,EAAO,CAClB,MACMmuB,EADczvB,KAAK8O,MACOxN,EAE1BouB,EAD0BD,EAAYP,EACDO,EAC3CpuB,GACE,eACA2Y,EAAgBC,iBAAiBwV,GAAYV,GAC7C,WACA/U,EAAgBC,iBAAiByV,GAAWX,GAC5C,YACH,CACF,CAEH,OAAO1tB,CACR,CAEM,mBAAAsuB,CAAoBT,EAAqBtpB,GAC9C,IAAIvE,EAAe,KACnB,IAAK6tB,GAAeA,GAAe,QAE5B,GAAIA,EAAc,OAElB,CACL,MAAMK,EAAoBtoB,EAAciB,WAAWtC,GAC7CtE,EAAgBsE,EAAOjF,KAAK6tB,OAAO5f,IAAI2gB,GAAa5uB,KAAK+tB,WACzDc,EAAc5pB,EAAOjF,KAAK8tB,KAAK7f,IAAI2gB,GAAavvB,KAAK8O,MAC3D,GAAMxN,GAAWkuB,EACfnuB,EAAOmuB,EAAMluB,OACR,GAAMA,EAAO,CAClB,MACMmuB,EADczvB,KAAK8O,MACOxN,EAEhCD,EADgCouB,EAAYP,EACnBO,CAC1B,CACF,CACD,OAAOpuB,CACR,CAEM,SAAAouB,CAAU7pB,GACf,IAAIvE,EAAe,KACnB,MAAMkuB,EAAoBtoB,EAAciB,WAAWtC,GACnD,GAAI2pB,IAAc5uB,KAAKmuB,SAASS,GAC9BluB,EAAO,SACF,CACL,MAAMC,EAAgBsE,EAAOjF,KAAK6tB,OAAO5f,IAAI2gB,GAAa5uB,KAAK+tB,WACzDc,EAAc5pB,EAAOjF,KAAK8tB,KAAK7f,IAAI2gB,GAAavvB,KAAK8O,MACrDxN,GAAWkuB,EACfnuB,EAAOmuB,EAAMluB,EACFA,IACXD,EAAOrB,KAAK8O,MAAQxN,EAEvB,CACD,OAAOD,CACR,QC/IUuuB,EAWJ,qBAAOC,CAAkBC,EAAaC,EAAsBC,EAAwB,GAAI3uB,EAAU,MAKvG,OAJKyuB,GAAWC,GAAoC,IAAtBA,EAAW/pB,QAAiB8pB,EAAW,IACnE7L,QAAQE,OAAO,yFAGV,IAAIF,SAAW,CAACgM,EAAKC,KAC1BH,EAAWhnB,SAASsQ,IAClByW,EAAOK,GAAG9W,GAAG,KACX4W,EAAI5uB,EAAK,GACT,IAGE2uB,GACJA,EAAYjnB,SAASsQ,IACnByW,EAAOK,GAAG9W,GAAIjR,IACZ8nB,EAAI9nB,EAAI,GACR,GAEL,GAEJ,CAEM,cAAOgoB,CAAWC,EAAwBnC,EAAeC,GAC9D,OAAOlK,QAAQqM,KAAK,CAACD,EAAYT,EAAeW,qBAAqBrC,EAAOC,IAC7E,CAEM,2BAAOoC,CAAqBrC,EAAeC,GAGhD,OAAO,IAAIlK,SAAsB,CAACC,EAASC,KACzC,MAAMqM,EAAKC,YAAW,KACpBC,aAAaF,GACb,MAAMnvB,EAAqB,IAAI4sB,EAAaC,EAAOC,GACnDjK,EAAQ7iB,EAAK,GACZ8sB,EAAU,GAEhB,CAEM,iBAAawC,CAAKC,SAEjBhB,EAAeW,qBAAqB,QAAUK,EAAMA,GAC1DxgB,EAAOvN,MAAM,yBAA0B+tB,EACxC,CAGM,iBAAOC,CAAWtM,EAAauM,GAAY,GAChD1gB,EAAOjQ,KAAK,mCAAoCmF,KAAKC,UAAUgf,IAI/DnhB,QAAQ2tB,KAAK,EACd,CAGM,gBAAOC,CAAU5oB,EAAU0oB,GAAY,GAC5C1gB,EAAO1N,KAAK,gDAAiD4C,KAAKC,UAAU6C,GAAMiC,OAAOjC,IACzFzE,QAAQgB,QAIRvB,QAAQ2tB,KAAK,EACd,CAGM,4BAAOE,CAAsB7oB,EAAU0oB,GAAY,GAKxD,OAJA1gB,EAAO1N,KAAK,gDAAiD4C,KAAKC,UAAU6C,GAAMiC,OAAOjC,IAIlF,IACR,CAEM,wBAAO8oB,CAAqBC,GACjCA,EAAQC,KAAKxB,EAAeiB,YAAYQ,MAAMzB,EAAeoB,UAC9D,CAMM,oBAAaM,CAClBC,EACAC,EACAC,EACAC,EACA/jB,EAAQ,UACR4L,EAAQ,GAER,GAAqB,MAAjBiY,GAAyBC,EAAa,IAAMC,EAAY,GAAKnY,EAAQ,GAA4B,mBAAhBgY,EAWnF,OAVAnhB,EAAO1N,KAAK,8DAA+DiL,GAE3EyC,EAAO1N,KACL,gEACA8uB,EACAC,EACAC,SACOH,IAGF,EAGT,IAAI9N,EAAc,KAClB,IACEA,EAAS8N,EAAahY,EACvB,CAAC,MAAOnR,GAEP,OADAgI,EAAO1N,KAAK,4CAA6CiL,IAClD,CACR,CAED,OAAe,OAAX8V,GACFrT,EAAOxN,MAAM,gCAAiC+K,IACvC,GACE8V,GAAU+N,GACnBphB,EAAOxN,MAAM,0BAA2B+K,IACjC,GACE4L,EAAQmY,GAEjBthB,EAAOxN,MAAM,oCAAqC+K,IAC3C,IAEPyC,EAAOxN,MAAM,yDAA0D+K,EAAO4L,EAAOmY,SAC/E9B,EAAee,KAAKc,GACnB7B,EAAe0B,QAAQC,EAAcC,EAAeC,EAAYC,EAAW/jB,EAAO4L,EAAQ,GAEpG,CAEM,+BAAaoY,CAClBC,EACA1sB,EACA2sB,EACAC,EAAgB,EAChBjV,EAAWtd,EAAgBqD,OAE3B,MAAMmvB,EAAgB,IAAIxD,EAC1B,IAAIltB,EAAY,GACZ2wB,EAAkB9sB,EACtBkL,EAAON,WAAW+M,EAAU,4CAA6C3X,EAAOc,OAAQ8rB,GAExF,MAAMG,EAAWJ,GAAWlxB,KAC5B,IAAIuxB,EAAY,EAChB,MAAMC,EAAqBH,EAAOhsB,OAElC,KAAOgsB,EAAOhsB,OAAS,GAAG,CACxB,MAAMosB,EAAkBJ,EAAOzwB,MAAM,EAAGG,KAAKmR,IAAImf,EAAOhsB,OAAQ8rB,IAChEE,EAASA,EAAOzwB,MAAM6wB,EAASpsB,QAE/B,MAAMqsB,EAAsBD,EAAS3kB,KAAKtE,GAAMyoB,EAAUU,MAAML,EAAK9oB,KAC/DlG,QAAoBghB,QAAQsO,IAAIF,GACtCH,GAAaG,EAAMrsB,OACnB3E,EAAOA,EAAKyc,OAAO7a,GAEnB,MAAMuvB,EAAcN,EAAYC,EAChC/hB,EAAON,WAAW+M,EAAU,0BAA2BmV,EAAOhsB,OAAQ+rB,EAAG5C,aAAaqD,GACvF,CAED,OADAT,EAAGluB,MACIxC,CACR,CAEM,0CAAaoxB,CAClBb,EACA1sB,EACA2sB,EACAC,EAAgB,EAChBjV,EAAWtd,EAAgBqD,OAE3B,MAAM8vB,EAAyBtQ,EAAaC,oBAAoBnd,GAChE,OAAO0qB,EAAe+B,mBAAsBC,EAAWc,EAAeb,EAASC,EAAejV,EAC/F,CAGM,+BAAa8V,CAAmBC,EAAcC,GACnD,IAAK,IAAIC,EAAQ,EAAGA,EAAQF,EAAM5sB,OAAQ8sB,UAClCD,EAASD,EAAME,GAAQA,EAAOF,EAEvC,CAGM,iCAAaG,CAAqBH,EAAcC,GACrD,MAAMR,EAAwB,GAE9B,IAAK,IAAIS,EAAQ,EAAGA,EAAQF,EAAM5sB,OAAQ8sB,IACxCT,EAAMzwB,KAAKixB,EAASD,EAAME,GAAQA,EAAOF,UAErC3O,QAAQsO,IAAIF,EACnB,CAED,WAAA7xB,GAEC,QC3MUwyB,EACJxwB,eAAiB,IAAIwwB,EAAgB,uBACpC5X,SAER,WAAA5a,CAAY4a,GACV,IAAKA,EACH,KAAM,0BAGRza,KAAKya,SAAWA,CACjB,CAGM,WAAA6X,GAEL,OADanY,EAASoY,QAAQzX,QAAQ9a,KAAKya,UAAU+X,IAEtD,CAEO,cAAAC,CAAeC,GACrB,OAAO3xB,KAAK4xB,MAAMD,EAAGE,WAAa,IACnC,CAGM,wBAAAC,GAIL,OAHqB7yB,KAAKyyB,eACxBtY,EAASoY,QAAQzX,QAAQ9a,KAAKya,UAAU1X,IAAI,CAAEyvB,KAAM,EAAGM,OAAQ,EAAGC,OAAQ,EAAGC,YAAa,IAG7F,CAGM,8BAAAC,CAA+BC,GAEpC,OADqBlzB,KAAKyyB,eAAetY,EAASU,WAAWqY,GAASnwB,IAAI,CAAEyvB,KAAM,EAAGM,OAAQ,EAAGC,OAAQ,EAAGC,YAAa,IAEzH,CAGM,yBAAAG,CAA0BD,GAC/B,OAAsD,IAA/ClzB,KAAKizB,+BAA+BC,EAC5C,CAGM,8BAAAE,GAEL,OADapzB,KAAKyyB,eAAetY,EAASoY,QAAQzX,QAAQ9a,KAAKya,UAAU1X,IAAI,CAAE+vB,OAAQ,EAAGC,OAAQ,EAAGC,YAAa,IAEnH,CAGM,gCAAAK,GAEL,OADarzB,KAAKyyB,eAAetY,EAASoY,QAAQzX,QAAQ9a,KAAKya,UAAU1X,IAAI,CAAEgwB,OAAQ,EAAGC,YAAa,IAExG,CAGM,gCAAAM,GAEL,OADatzB,KAAKyyB,eAAetY,EAASoY,QAAQzX,QAAQ9a,KAAKya,UAAU1X,IAAI,CAAEiwB,YAAa,IAE7F,CAGM,mBAAAO,GAEL,OADqBpZ,EAASoY,QAAQzX,QAAQ9a,KAAKya,UAAU1X,IAAI,CAAEyvB,KAAM,EAAGM,OAAQ,EAAGC,OAAQ,EAAGC,YAAa,IAAKJ,UAErH,CAOM,cAAAY,CAAeC,GACpB,OAAO1yB,KAAK2yB,KAAK,MAAWD,EAC7B,CASM,kBAAAE,CAAmBF,GACxB,GAAIA,EAAc,EAChB,MAAM,IAAI1zB,MAAM,kDAGlB,MAAM6zB,EAAe5zB,KAAKuzB,sBAEpBM,GADM,IAAIx0B,MAAOC,UACHs0B,EAEpB,OADY7yB,KAAK8H,MAAMgrB,EAAQJ,EAEhC,CASM,mBAAAK,CAAoB10B,EAAmBq0B,GAC5C,GAAIA,EAAc,EAChB,MAAM,IAAI1zB,MAAM,kDAGlB,MACM8zB,EAAQz0B,EADKY,KAAKmzB,0BAA0B/zB,GAIlD,OADY2B,KAAK8H,MAAMgrB,EAAQJ,EAEhC,CAQM,yBAAAM,CAA0BN,GAG/B,OAFqBzzB,KAAKuzB,sBACPvzB,KAAK2zB,mBAAmBF,GACRA,CACpC,CAQM,0BAAAO,CAA2B50B,EAAmBq0B,GAGnD,OAFmBzzB,KAAKmzB,0BAA0B/zB,GAC/BY,KAAK8zB,oBAAoB10B,EAAWq0B,GACtBA,CAClC,QC1IUQ,EAGX,WAAAp0B,GAAwB,CAGjB,kBAAOq0B,CAAYC,GACxB,IAAIzzB,EAAmB,KACvB,GAAIyzB,GAAU9uB,OAAQ,CAEpB,IAAIA,EAAS,EACb8uB,EAAS/rB,SAAQuQ,IACftT,GAAUsT,EAAKtT,MAAM,IAIvB3E,EAAO,IAAI0jB,WAAW/e,GACtB,IAAI4N,EAAS,EACbkhB,EAAS/rB,SAAQuQ,IACfjY,EAAKqC,IAAI4V,EAAM1F,GACfA,GAAU0F,EAAKtT,MAAM,GAExB,CACD,OAAO3E,CACR,QClBU0zB,EAGX,WAAAv0B,GAAwB,CAEjB,0CAAaw0B,CAA8BC,GAChD,MAAMC,EAAoB,GACpBC,EAAyB,IAAIC,eACjC,CACEC,MAAW,MAAC7xB,EAAO8xB,KACI,iBAAV9xB,EACT0xB,EAAItzB,KAAKqF,EAAcS,mBAAmBlE,IAE1C0xB,EAAItzB,KAAK4B,GAGJ,MAET,KAAA+xB,CAAMC,GACJ7V,EAAaK,kBAAkB,uCAAwCwV,EACxE,GAEH,CACEC,cAAe,EACfh1B,KAAM,IAAM,IAIhB,aADMw0B,EAAOS,OAAOP,GACbP,EAAkBC,YAAYK,EACtC,CACM,sCAAaS,CAA0BV,GAC5C,MAAM7jB,QAAwB2jB,EAAiBC,8BAA8BC,GAC7E,OAAO,IAAIltB,aAAcC,OAAOoJ,EACjC,CAEM,gCAAOwkB,CAA0BtuB,GAmBtC,OAd6B,IAAIuuB,eAC/B,CACEv0B,MAAMg0B,IACAhuB,GACFguB,EAAWQ,QAAQxuB,GAErBguB,EAAWS,QACJ,OAGX,CACEN,cAAenuB,EAAQA,EAAMtB,OAAS,MAI3C,QC7DUgwB,EACHC,QAER,WAAAz1B,CAAYN,EAAsBJ,GAChC,IAAKI,EACH,MAAMQ,MAAM,sCAEdC,KAAKs1B,QAAU,CAAE/1B,IAAKA,EAAKH,UAAWC,KAAK8O,MAAOhP,cAAeA,EAClE,CAEM,KAAAo2B,GACL,MAAM70B,EAA0B,IAAI20B,EAAkBr1B,KAAKs1B,QAAQ/1B,IAAKS,KAAKs1B,QAAQn2B,eAErF,OADAuB,EAAK40B,QAAU9zB,OAAOC,OAAO,CAAA,EAAIzB,KAAKs1B,SAC/B50B,CACR,CAEM,KAAAkN,CAAMrO,GACX,IAAKA,EACH,MAAMQ,MAAM,sCAGd,OADAC,KAAKs1B,QAAQ/1B,IAAMA,EACZS,IACR,CAEM,SAAAZ,CAAU4H,GACf,IAAKA,EACH,MAAMjH,MAAM,0CAGd,OADAC,KAAKs1B,QAAQl2B,UAAY4H,EAClBhH,IACR,CAEM,aAAAb,CAAc6H,GAEnB,OADAhH,KAAKs1B,QAAQn2B,cAAgB6H,EACtBhH,IACR,CAEM,OAAAw1B,CAAQxuB,GAEb,OADAhH,KAAKs1B,QAAQnxB,SAAW6C,GAAO,GACxBhH,IACR,CAEM,MAAAuE,CAAOyC,GAEZ,OADAhH,KAAKs1B,QAAQ/wB,OAASyC,GAAO,CAAA,EACtBhH,IACR,CAEM,CAAA+M,CAAE9H,EAAc8D,GAGrB,OAFA/I,KAAKs1B,QAAQ/wB,OAASvE,KAAKs1B,QAAQ/wB,QAAU,GAC7CvE,KAAKs1B,QAAQ/wB,OAAOU,GAAQ8D,EACrB/I,IACR,CAEM,SAAA2O,GACL,OAAOnN,OAAOC,OAAO,CAAE,EAAEzB,KAAKs1B,QAC/B,QCnDUG,EACH5zB,gBAA0B,KAE3B,kBAAO6zB,CAAYC,GAAW,GAEnC,OADAlmB,EAAOjQ,KAAK,qCACRi2B,EAAeG,UAAYD,EACtBrS,QAAQC,QAAQkS,EAAeG,UAEhB,oBAAXC,OAEF,IAAIvS,SAAgB,SAAUC,EAASC,GAC5C,IAEE,MAAMsS,EAAoBD,OAA0B,mBAAKA,OAAgC,yBAAKA,OAA6B,qBAE3H,GAAIC,EAAmB,CACrB,MAAMC,EAAM,IAAID,EAAkB,CAAEE,WAAY,KAE1CC,EAAaz0B,OAAO00B,OAAO,MACjCD,EAAM,YAAa,EAIjBF,EAAII,kBAAkB,GAAI,CAAEC,UAAU,IAGxCL,EAAIM,eAAiB,SAAUC,GAGzBA,EAAIC,WACNd,EAAee,QAAQ,KAAOF,EAAIC,UAAUA,UAAWN,EAAO1S,EAElE,EAEAwS,EAAIU,aACF,SAAUC,GACRjB,EAAee,QAAQE,EAAUC,IAAKV,EAAO1S,GAC7CwS,EAAIa,oBAAoBF,EACzB,IACD,SAAUhe,GACRjJ,EAAO1N,KAAK,oBAAqB2W,GACjC6K,EAAQkS,EAAeoB,cAAc,oBACvC,GAEH,MACCpnB,EAAO1N,KAAK,gDACZwhB,EAAQkS,EAAeoB,cAAc,oBAExC,CAAC,MAAOpvB,GACPgI,EAAO1N,KAAK,sCAAuC0F,GACnD8b,EAAQkS,EAAeoB,cAAc,SACtC,CACH,KAEApnB,EAAO1N,KAAK,+CACLuhB,QAAQC,QAAQkS,EAAeoB,cAAc,cAGzD,CAGM,eAAOC,CAASC,GACrB,MAAMC,EAAQD,EAAKC,MAAM,iFAazB,OAXEA,GACC,CACCD,KAAMA,EACNE,SAAUD,EAAM,GAChBE,KAAMF,EAAM,GACZG,SAAUH,EAAM,GAChBI,KAAMJ,EAAM,GACZK,SAAUL,EAAM,GAChBM,OAAQN,EAAM,GACdjf,KAAMif,EAAM,GAGjB,CAGO,oBAAOH,CAAcU,GAE3B,OADA9B,EAAeG,SAAW2B,EACnB9B,EAAeG,QACvB,CAEO,cAAOY,CAAQG,EAAKV,EAAO1S,GAGjCoT,EAAInrB,MAAM,QAAQpD,SAAQ,SAAU0M,GAElC,IAAKA,EAAKrR,QAAQ,eAAgB,CAEhC,MAAM+zB,EAAQ1iB,EAAKtJ,MAAM,KACvBisB,EAAOD,EAAM,GAEF,SADJA,EAAM,IAEb/B,EAAeiC,kBAAkBD,EAAMxB,EAAO1S,EAEjD,MAAM,IAAKzO,EAAKrR,QAAQ,MAAO,CAE9B,MACEg0B,EADY3iB,EAAKtJ,MAAM,KACV,GACfiqB,EAAeiC,kBAAkBD,EAAMxB,EAAO1S,EAC/C,CACH,GACD,CAEO,wBAAOmU,CAAkBC,EAAS1B,EAAO1S,GAC/C,GAAIoU,KAAW1B,EAAO,OACjBA,EAAM0B,IAAW,EACtB,MAAMC,EAAep2B,OAAO4J,KAAK6qB,GAAO1nB,QAAO,SAAUwQ,GACvD,OAAOkX,EAAMlX,EACf,IACA,GAAI6Y,GAAuC,GAAvBA,EAAavyB,OAC/Bke,EAAQkS,EAAeoB,cAAce,EAAa,SAC7C,CACL,MAAMC,EAAQD,EAAaplB,OAAO/G,KAAK,KACvCgE,EAAO1N,KAAK,uDAAwD81B,GACpEtU,EAAQkS,EAAeoB,cAAcgB,GACtC,CACF,QC1HUC,EACHC,UAAY,QAEpB,WAAAl4B,GACE41B,EAAeC,aAAY,GACxBjF,MAAM7M,IACLnU,EAAOjQ,KAAK,yBAA0BokB,GACtC5jB,KAAK+3B,UAAYnU,CAAM,IAExB8M,OAAOjpB,IACNgI,EAAO1N,KAAK,mDAAoD0F,EAAI,GAEzE,CAED,KAAAuwB,GACE,MAA0B,UAAnBh4B,KAAK+3B,SACb,CAED,qBAAAE,GACE,OAAOj4B,KAAK+3B,SACb,QCtBUG,EACSC,MAApB,WAAAt4B,CAAoBs4B,GAAAn4B,KAAKm4B,MAALA,CAAiB,CAErC,qBAAAF,GACE,OAAOj4B,KAAKm4B,KACb,ECIG,MAAOC,UAAsCr4B,MACzC8B,+CAAkE,mCAClEw2B,gBAA0B,IAC1BC,QACAC,iBACAC,eACAC,SACAC,WACAC,cAER,WAAA94B,IAAe+4B,GACbC,MAAMT,EAAoBU,+BAA+BF,IACzDp3B,OAAOu3B,eAAe/4B,KAAMo4B,EAAoBY,WAChDh5B,KAAKs4B,QAAUM,EACf54B,KAAKo4B,EAAoBa,0CAA2C,CACrE,CAEM,qCAAOH,CAA+BF,EAAkBM,EAAqB,yBAClF,OAAON,GAAUA,EAAOvzB,OAAS,EAAIuzB,EAAOntB,KAAK,KAAOytB,CACzD,CAEM,wBAAAC,CAAyBj1B,KAAmByC,GACjD,MAAM/C,EAAcK,EAAKC,OAAOA,KAAWyC,GAC3C3G,KAAK44B,OAAS,CAACh1B,EAChB,CAEM,yBAAAw1B,CAA0Bl1B,KAAmByC,GAElD,OADA3G,KAAKm5B,yBAAyBj1B,KAAWyC,GAClC3G,IACR,CAEM,kBAAAq5B,CAAmBC,GAExB,OADAt5B,KAAKs5B,eAAiBA,EACft5B,IACR,CAEM,UAAAu5B,CAAWX,GAEhB,OADA54B,KAAK44B,OAASA,EACP54B,IACR,CAEM,mBAAAw5B,CAAoBC,GAEzB,OADAz5B,KAAKu4B,iBAAmBkB,EACjBz5B,IACR,CAEM,iBAAA05B,CAAkBC,GAEvB,OADA35B,KAAKw4B,eAAiBmB,EACf35B,IACR,CAEM,WAAA45B,CAAYC,GAEjB,OADA75B,KAAKy4B,SAAWoB,EACT75B,IACR,CAEM,aAAA85B,CAAcC,GAEnB,OADA/5B,KAAK04B,WAAaqB,EACX/5B,IACR,CAEM,gBAAAg6B,CAAiBvyB,GAEtB,OADAzH,KAAK24B,cAAgBlxB,EACdzH,IACR,CAEM,cAAAi6B,GACL,QAASj6B,KAAK24B,aACf,CAEM,gBAAOuB,CAAoBzyB,GAChC,IAAI/G,EAA+B,KAMnC,OAJEA,EADE03B,EAAoB+B,4BAA4B1yB,GAC3CA,EAEA,IAAI2wB,EAAuB3wB,EAAIhC,SAASu0B,iBAAiBvyB,GAAK4xB,mBAAmB,KAEnF34B,CACR,CAEM,kCAAOy5B,CAA4BxZ,GACxC,OAAOA,IAA4E,IAArEA,EAAIyX,EAAoBa,wCACvC,CAED,kBAAIK,GACF,OAAOt5B,KAAKq4B,eACb,CAED,UAAIO,GACF,OAAO54B,KAAKs4B,OACb,CAED,mBAAImB,GACF,OAAOz5B,KAAKu4B,gBACb,CAED,iBAAIoB,GACF,OAAO35B,KAAKw4B,cACb,CAED,WAAIqB,GACF,OAAO75B,KAAKy4B,QACb,CAED,aAAIsB,GACF,OAAO/5B,KAAK04B,UACb,CAED,gBAAI0B,GACF,OAAOp6B,KAAK24B,aACb,CAED,kBAAIW,CAAevwB,GACjB/I,KAAKq4B,gBAAkBtvB,GAAS,GACjC,CAED,UAAI6vB,CAAO7vB,GACT/I,KAAKs4B,QAAUvvB,GAAS,CAAC,yBACzB/I,KAAKyF,QAAU2yB,EAAoBU,+BAA+B94B,KAAKs4B,QACxE,CAED,mBAAImB,CAAgB1wB,GAClB/I,KAAKu4B,iBAAmBxvB,CACzB,CAED,iBAAI4wB,CAAc5wB,GAChB/I,KAAKw4B,eAAiBzvB,CACvB,CAED,WAAI8wB,CAAQ9wB,GACV/I,KAAKy4B,SAAW1vB,CACjB,CAED,aAAIgxB,CAAUhxB,GACZ/I,KAAK04B,WAAa3vB,GAAS,SAC5B,CAED,gBAAIqxB,CAAarxB,GACf/I,KAAK24B,cAAgB5vB,CACtB,CAEM,iBAAOsxB,CAAWC,EAAcC,GACrC,IAAI75B,GAAgB,EACpB,GAAI45B,GAASlC,EAAoB+B,4BAA4BG,GAAQ,CACnE,MAAM7yB,EAA2B6yB,EAE3BtzB,EAAc0J,EAAcI,WAAWrJ,EAAI6xB,gBAC3CkB,EAAuB,IAATD,EAEpB75B,EAAOsG,GAAOwzB,GAAOxzB,GADDwzB,EAAM,EAE3B,CACD,OAAO95B,CACR,CAEM,iBAAO+5B,CAAWhzB,GACvB,OAAO2wB,EAAoBiC,WAAW5yB,EAAK,EAC5C,CAEM,iBAAOizB,CAAWjzB,GACvB,OAAO2wB,EAAoBiC,WAAW5yB,EAAK,EAC5C,QCrKUkzB,EACH94B,yBAA4C,oFAE7C,iCAAa+4B,CAClBC,EACA/b,EACAgc,EAA+ErT,GAE/EhY,EAAOxN,MAAM,iCAAkC6c,GAC/C,IAAIpe,EAAgB,KAEpB,IAAK4F,EAAcmD,WAAWqV,GAE5B,OADArP,EAAO1N,KAAK,mDAAoD+c,GACzDpe,EAGT+O,EAAOjQ,KAAK,2CAA4Csf,GACxD,IAAIuH,EAAcsU,EAAuBI,kBACzC1U,EAAMA,EAAI7a,MAAM,WAAWC,KAAKovB,GAChCxU,EAAMA,EAAI7a,MAAM,aAAaC,KAAKqT,GAClC,IACE,MAAMkc,QAAuBF,EAAQzU,GAC/B4U,QAAkBD,EAAKE,OAC7Bx6B,EAAOu6B,GAAQA,EAAKE,OACrB,CAAC,MAAO1zB,GACPgI,EAAO3N,MAAM,kCAAmC2F,GAChD/G,GAAO,CACR,CACD,OAAOA,CACR,QCxBU06B,EAISC,WAA4BC,UAA2BC,eAFpE15B,4BAA+C,oCAEtD,WAAAhC,CAAoBw7B,EAA4BC,EAA2BC,GAAvDv7B,KAAUq7B,WAAVA,EAA4Br7B,KAASs7B,UAATA,EAA2Bt7B,KAAcu7B,eAAdA,EACzE12B,EAAeG,mBAAmBq2B,EAAY,cAC9Cx2B,EAAeG,mBAAmBs2B,EAAW,aAC7Cz2B,EAAeG,mBAAmBu2B,EAAgB,kBAClD12B,EAAeqD,KAAKkzB,EAAcI,kBAAkBD,GAAiB,gCACtE,CAGM,8BAAaE,CAClBJ,EACAC,EACAC,EACAG,EACAj2B,GAEA,MAAMk2B,EAAyB,IAAIP,EAAcC,EAAYC,EAAWC,GAExE,aAD0BI,EAAQC,YAAYF,EAAuBj2B,EAEtE,CAEM,8BAAOo2B,CAAwBC,EAAaR,GAEjD,MAD2B,SAAWvY,EAAcE,8BAA8B6Y,EAAM,IAAMR,EAE/F,CAEM,iBAAMM,CAAYF,EAAiCj2B,GACxD,MAAM/E,EAAc,GAQpB,GAPAmE,EAAeG,mBAAmB02B,EAAuB,yBACzD72B,EAAeG,mBAAmBsB,EAAciB,WAAW9B,GAAU,WACrEZ,EAAeqD,KAAKwzB,EAAsBr2B,OAAS,EAAG,mCACtDq2B,EAAsBtzB,SAAS2E,IAC7BlI,EAAeqD,KAAKkzB,EAAcI,kBAAkBzuB,GAAIA,EAAI,gBAAgB,IAGxE2uB,GAAyBA,EAAsBr2B,OAAS,GAAOiB,EAAciB,WAAW9B,GAAU,CACtGgK,EAAOjQ,KAAK,mBAAoBiG,EAASi2B,GAEzC,IAAK,IAAI56B,EAAI,EAAGA,EAAI46B,EAAsBr2B,OAAQvE,IAAK,CACrD,MAAMi7B,EAAsBL,EAAsB56B,GAGlD,GAFA2O,EAAOjQ,KAAK,SAAUu8B,IAEjBX,EAAcI,kBAAkBO,GACnC,MAAM,IAAIh8B,MAAM,+BAElB,MAAMk7B,EACJ,QACAe,mBAAmBv2B,GACnB,SACAu2B,mBAAmBh8B,KAAKu7B,gBACxB,OACAS,mBAAmBD,GACfE,EAAY,CAChBC,OAAQ,OACRC,QAAS,CACPC,cAAehB,EAAcS,wBAAwB77B,KAAKq7B,WAAYr7B,KAAKs7B,WAC3E,eAAgB,qCAElBL,KAAMA,GAGF3L,QAAsB7H,EAAM2T,EAAciB,qBAAuB,aAAer8B,KAAKq7B,WAAa,iBAAkBY,GACpHK,QAA4BhN,EAAI4L,OACtCzrB,EAAOxN,MAAM,+BAAgC85B,EAAaO,GAC1D57B,EAAKO,KAAKq7B,EACX,CACF,MACC7sB,EAAO1N,KAAK,gDAGd,OAAOrB,CACR,CAGM,wBAAO86B,CAAkBe,GAC9B,MAAO,qBAAqBz0B,KAAKy0B,EAClC,QCjFUC,GACJ,eAAOC,CAASC,GACrB,MAAO,CACLC,UAAS,CAAC5zB,EAAY6zB,EAAgB1L,IAC7B0L,EAAQF,EAAKC,UAAU5zB,EAAO6zB,EAAO1L,GAAWnoB,EAG5D,CAEM,iBAAO8zB,CAAWH,GACvB,MAAO,CACLC,UAAS,CAAC5zB,EAAY6zB,EAAgB1L,IAC5B0L,EAAgD7zB,EAAxC2zB,EAAKC,UAAU5zB,EAAO6zB,EAAO1L,GAGlD,CAEM,6BAAO4L,CAAuBn2B,EAAerE,GAClD,MAAO,CACLq6B,UAAS,CAAC5zB,EAAY6zB,EAAgB1L,IAC7BnoB,GAASpC,EAAQrE,EAASyG,EAGtC,CAEM,2BAAOg0B,CAAqBp2B,GACjC,MAAO,CACLg2B,UAAS,CAAC5zB,EAAY6zB,EAAgB1L,IAC7BnoB,GAASpC,EAAQ,KAAOoC,EAGpC,CAEM,gBAAOi0B,CAAUr2B,GACtB,MAAO,CACLg2B,UAAS,CAAC5zB,EAAY6zB,EAAgB1L,KACJ,GAAzBvqB,EAAMlD,QAAQsF,GAAe,KAAOA,EAGhD,CAEM,gBAAOk0B,CAAUt2B,GACtB,MAAO,CACLg2B,UAAS,CAAC5zB,EAAY6zB,EAAgB1L,IAC7BvqB,EAAMlD,QAAQsF,IAAU,EAAI,KAAOA,EAG/C,CAEM,uBAAOm0B,GACZ,MAAO,CACL,SAAAP,CAAU5zB,EAAY6zB,EAAgB1L,GACpC,IAAIxwB,EAAOqI,EAOX,MANoB,iBAATA,IAETrI,EAAOqI,EAAMR,QAAQ,iBAAiB,SAAUF,EAAG80B,GACjD,OAAOA,EAAOnX,aAChB,KAEKtlB,CACR,EAEJ,CAEM,qBAAO08B,GACZ,MAAO,CACL,SAAAT,CAAU5zB,EAAY6zB,EAAgB1L,GACpC,IAAIxwB,EAAOqI,EACX,GAAoB,iBAATA,EAAmB,CAC5B,MAAMwzB,EAAc7rB,EAAcI,WAAW/H,GACjC,OAARwzB,IACF77B,EAAO67B,EAEV,CACD,OAAO77B,CACR,EAEJ,CAEM,uBAAO28B,GACZ,MAAO,CACL,SAAAV,CAAU5zB,EAAY6zB,EAAgB1L,GACpC,IAAIxwB,EAAOqI,EASX,MARoB,iBAATA,IAETrI,EAAOqI,EACJR,QAAQ,gBAAgB,SAAUwC,EAAGmJ,GACpC,MAAO,IAAMA,EAAElL,aACjB,IACCT,QAAQ,KAAM,KAEZ7H,CACR,EAEJ,CAEM,4BAAO48B,CACZC,EACAC,EACAC,GAA+B,GAE/B,MAAO,CACL,SAAAd,CAAU5zB,EAAY6zB,EAAgB1L,GACpC,GAAoB,iBAATnoB,EAAmB,CAC5B,IAAIrI,EAAO,GACX88B,EAAqBp1B,SAASs1B,IAC5B,GAAY,MAARh9B,EAAc,CAChB,MAAMi9B,EAAO50B,EAAM20B,GAEjBh9B,EADU,MAARi9B,GAAgBF,EACX,KAEQ,MAARE,EAAej9B,EAAOA,EAAOgJ,OAAOi0B,EAE9C,KAES,MAARj9B,IACFqI,EAAMw0B,GAAgB78B,EACtB88B,EAAqBp1B,SAASs1B,UAAa30B,EAAM20B,KAEpD,CACD,OAAO30B,CACR,EAEJ,CAEM,mBAAO60B,CAAaC,GACzB,MAAO,CACLlB,UAAS,CAAC5zB,EAAY6zB,EAAgB1L,KAChB,iBAATnoB,GACT80B,EAAWz1B,SAASs1B,IAClB,MAAMI,EAAS/0B,EAAM20B,GACrB,GAAqB,iBAAVI,EAAoB,CAC7B,MAAM3c,EAAS,GAAK2c,EACpB/0B,EAAM20B,GAAKvc,CACZ,KAGEpY,GAGZ,CAEM,mBAAOg1B,CAAaF,GACzB,MAAO,CACLlB,UAAS,CAAC5zB,EAAY6zB,EAAgB1L,KAChB,iBAATnoB,GACT80B,EAAWz1B,SAASs1B,IAClB,MAAMI,EAAS/0B,EAAM20B,GACrB,GAAqB,kBAAVI,EAAqB,CAC9B,MAAM3c,EAAS2c,EAAS,EAAI,EAC5B/0B,EAAM20B,GAAKvc,CACZ,KAGEpY,GAGZ,CAEM,yBAAOi1B,CAAmBC,EAAiBC,GAChD,MAAO,CACL,SAAAvB,CAAU5zB,EAAY6zB,EAAgB1L,GACpC,GAAoB,iBAATnoB,EAAmB,CAC5B,MAAM+0B,EAAS/0B,EAAMk1B,GACP,MAAVH,IACF/0B,EAAMm1B,GAAWJ,EAEpB,CACD,OAAO/0B,CACR,EAEJ,CAEM,eAAOo1B,CAASl5B,EAAcm5B,GACnC,MAAO,CACLzB,UAAS,CAAC5zB,EAAY6zB,EAAgB1L,KAChB,iBAATnoB,IACTA,EAAM9D,GAAQm5B,GAETr1B,GAGZ,CAGM,yBAAOs1B,CAAmBR,EAAsBS,EAAmBC,GACxE,MAAO,CACL5B,UAAS,CAAC5zB,EAAY6zB,EAAgB1L,KAChB,iBAATnoB,GACT80B,EAAWz1B,SAASiD,IAClB,MAAMmzB,EAAWz1B,EAAMsC,GACvB,GAAgB,MAAZmzB,EACF,IACE,MACMpxB,EADmB+M,EAAS+K,WAAWsZ,EAAUF,GACvBtjB,SAASujB,GACzCx1B,EAAMsC,GAAO+B,CACd,CAAC,MAAO3F,GACPgI,EAAO1N,KAAK,8CAA+Cy8B,EAAUF,EAAW72B,EACjF,CACF,IAGEsB,GAGZ,QCvMU01B,GAEJ,gBAAO9B,CAAU+B,EAAkBC,EAAyB,IACjE,OAAOF,GAAiBG,iBAAiBF,EAAaC,GAAO,EAAO,KACrE,CAGO,uBAAOC,CAAiBF,EAAkBC,EAAyB,GAAI/B,EAAgB1L,GAC7F,IAAIxwB,EAAY,KAChB,MAAM8Q,SAAsBktB,EAC5B,OAAQltB,GACN,IAAK,YACL,IAAK,SACL,IAAK,WACH9Q,EAAOg+B,EACP,MACF,IAAK,SACL,IAAK,SACL,IAAK,UACHh+B,EAAO+9B,GAAiBI,0BAA0BH,EAAaC,EAAO/B,EAAO1L,GAC7E,MACF,IAAK,SACHxwB,EAAO+9B,GAAiBK,uBAAuBJ,EAAaC,EAAO/B,EAAO1L,GAC1E,MACF,QACE,MAAM,IAAInxB,MAAM,qBAAuByR,GAE3C,OAAO9Q,CACR,CAGO,6BAAOo+B,CAAuBJ,EAAkBC,EAAyB,GAAI/B,EAAgB1L,EAAe,MAClHzhB,EAAOvN,MAAM,uBAAwBw8B,EAAa9B,EAAO1L,GACzD,IAAIxwB,EAAY,KAgChB,OA/BmB,MAAfg+B,IACEx4B,MAAM2X,QAAQ6gB,IAChBh+B,EAAO,GACPg+B,EAAYt2B,SAASpB,IACnB,MAAMma,EAASsd,GAAiBG,iBAAiB53B,EAAK23B,EAAO/B,EAAO8B,GACtD,MAAVvd,GACFzgB,EAAKO,KAAKkgB,EACX,MAIHzgB,EAAO,CAAA,EACPc,OAAO4J,KAAKszB,GAAat2B,SAAS2W,IAEhC,MAAMyf,EAAWE,EAAY3f,GACvBggB,EAASN,GAAiBI,0BAA0B9f,EAAG4f,GAAO,EAAMD,GAC1E,GAAc,MAAVK,EAAgB,CAElB,IAAI3xB,EAAWqxB,GAAiBG,iBAAiBJ,EAAUG,GAAO,EAAOD,GAEzEtxB,EAAWqxB,GAAiBI,0BAA0BzxB,EAAUuxB,GAAO,EAAOD,GAE9D,MAAZtxB,IACF1M,EAAKq+B,GAAU3xB,EAElB,KAGH1M,EAAO+9B,GAAiBI,0BAA0Bn+B,EAAMi+B,GAAO,EAAOD,KAGnEh+B,CACR,CAGO,gCAAOm+B,CAA0BH,EAAkBC,EAAyB,GAAI/B,EAAgB1L,GACtG,IAAIxwB,EAAYg+B,EAIhB,OAHAC,EAAMv2B,SAASK,IACb/H,EAAe,MAARA,EAAe,KAAO+H,EAAEk0B,UAAUj8B,EAAMk8B,EAAO1L,EAAQ,IAEzDxwB,CACR,G5C1FH,SAAY1B,GACVA,EAAA,QAAA,UACAA,EAAA,WAAA,aACAA,EAAA,eAAA,gBACD,CAJD,CAAYA,IAAAA,EAIX,CAAA,U6CWYggC,GACJ,oBAAaC,CAClBC,EACAC,EACAC,GAEAv6B,EAAeG,mBAAmBk6B,EAAO,SACzCr6B,EAAeG,mBAAmBm6B,EAAgB,kBAClDt6B,EAAeqD,KAAKg3B,EAAM75B,OAAS,EAAG,0BAItC,MAAMg6B,EAAsC79B,OAAOC,OAAO,CAAA,EAAI29B,GAAmB,CAAA,GACjFC,EAAOC,aAAeD,EAAOC,cAAgB1gC,EAAgBY,KAE7D,MAAMkB,EAA6B,CACjC6+B,aAAcJ,EACdK,WAAY,MAGRC,EAAsBP,EAAMpyB,KAAI,CAACzE,EAAGmP,IAAQnP,EAAEpD,MAAQ,QAAUuS,IAEtE/H,EAAOjQ,KAAK,oCAAqC0/B,EAAM75B,QACvD,IAAImS,EAAc,EAClB,EAAG,CACD/H,EAAON,WAAWkwB,EAAOC,aAAc,gCAAiC9nB,EAAM,EAAG0nB,EAAM75B,OAAQo6B,EAAUjoB,IACzG,UACQ0nB,EAAM1nB,GAAKynB,QAAQv+B,EAAK6+B,aAAc/nB,GAC5CA,GACD,CAAC,MAAO/P,GACPgI,EAAO3N,MAAM,uDAAwD0V,EAAKioB,EAAUjoB,GAAM/P,EAAKA,GAC/F/G,EAAKoB,MAAQ2F,EACb/G,EAAKg/B,UAAYloB,CAClB,CACF,QAAS9W,EAAKoB,OAAS0V,EAAM0nB,EAAM75B,QAEpC,GAAI3E,EAAKoB,MAEP,EAAG,CACD2N,EAAON,WAAWkwB,EAAOC,aAAc,kCAAmC9nB,EAAM,EAAG0nB,EAAM75B,OAAQo6B,EAAUjoB,IAC3G,IACM0nB,EAAM1nB,GAAKmoB,eACPT,EAAM1nB,GAAKmoB,SAASj/B,EAAK6+B,aAAc/nB,GAE7C/H,EAAOjQ,KAAK,iCAEf,CAAC,MAAOiI,GACPgI,EAAO3N,MAAM,kFAAmF0V,EAAKioB,EAAUjoB,GAAM/P,EAAKA,GAC1H/G,EAAKk/B,cAAgBn4B,EACrB/G,EAAKm/B,kBAAoBroB,CAC1B,CACDA,UACOA,GAAO,GAUlB,GAPA9W,EAAK8+B,WAAa9+B,EAAKk/B,cACnB5gC,EAAsB8gC,eACtBp/B,EAAKoB,MACL9C,EAAsB+gC,WACtB/gC,EAAsBghC,QAC1BvwB,EAAOjQ,KAAK,yCAA0CkB,EAAK8+B,YAEvDH,GAAQY,sBAAwBv/B,EAAK8+B,aAAexgC,EAAsBghC,QAC5E,IACEvwB,EAAOjQ,KAAK,uCACN6/B,EAAOY,qBAAqBv/B,EACnC,CAAC,MAAO+G,GACPgI,EAAO3N,MAAM,kDAAmD2F,EAAKA,EACtE,CAGH,GAAI43B,GAAQa,6BAA+Bx/B,EAAK8+B,aAAexgC,EAAsBghC,QACnF,IACEvwB,EAAOjQ,KAAK,8CACN6/B,EAAOa,4BAA4Bx/B,EAC1C,CAAC,MAAO+G,GACPgI,EAAO3N,MAAM,yDAA0D2F,EAAKA,EAC7E,CAGH,OAAO/G,CACR"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/logger/logger-level-name.ts","../src/logger/logger-output-function.ts","../src/logger/log-message-format-type.ts","../src/jwt/expired-jwt-handling.ts","../src/tx/transaction-final-state.ts","../src/logger/logger-ring-buffer.ts","../src/logger/logger-util.ts","../src/logger/classic-single-line-log-message-formatter.ts","../src/logger/none-log-message-formatter.ts","../src/logger/structured-json-log-message-formatter.ts","../src/lang/require-ratchet.ts","../src/lang/string-ratchet.ts","../src/logger/logger-instance.ts","../src/logger/logger.ts","../src/lang/number-ratchet.ts","../src/lang/boolean-ratchet.ts","../src/2d/ratchet-2d.ts","../src/build/ratchet-common-info.ts","../src/histogram/histogram.ts","../src/lang/duration-ratchet.ts","../src/jwt/jwt-ratchet.ts","../src/lang/error-ratchet.ts","../src/lang/map-ratchet.ts","../src/lang/array-ratchet.ts","../src/lang/base64-ratchet.ts","../src/lang/composite-last-success-provider.ts","../src/lang/date-ratchet.ts","../src/lang/enum-ratchet.ts","../src/lang/esm-ratchet.ts","../src/lang/expiring-object.ts","../src/lang/geolocation-ratchet.ts","../src/lang/global-ratchet.ts","../src/lang/key-value.ts","../src/lang/no.ts","../src/lang/timeout-token.ts","../src/lang/stop-watch.ts","../src/lang/promise-ratchet.ts","../src/lang/time-zone-ratchet.ts","../src/lang/uint-8-array-ratchet.ts","../src/lang/web-stream-ratchet.ts","../src/logger/log-message-builder.ts","../src/network/network-ratchet.ts","../src/network/browser-local-ip-provider.ts","../src/network/fixed-local-ip-provider.ts","../src/network/restful-api-http-error.ts","../src/third-party/google/google-recaptcha-ratchet.ts","../src/third-party/twilio/twilio-ratchet.ts","../src/transform/built-in-transforms.ts","../src/transform/transform-ratchet.ts","../src/tx/transaction-ratchet.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["LoggerLevelName","LoggerOutputFunction","LogMessageFormatType","ExpiredJwtHandling","TransactionFinalState","LoggerRingBuffer","_lastLogMessage","messageSource","timestamp","Date","getTime","lvl","info","_buffer","_bufferIdx","_lastSnapshotIdx","_bufferSize","constructor","size","Error","this","currentIndex","lastSnapshotIdx","bufferSize","newSize","clearRingBuffer","getMessages","inStartFrom","clear","reverseSort","rval","start","slice","firstIdx","i","Math","max","push","reverse","takeSnapshot","trailingEdge","messages","logMessagesTruncated","getLastLogMessage","Object","assign","addToRingBuffer","newMsg","LoggerUtil","static","error","warn","verbose","debug","silly","handlerFunctionMap","outputFn","Console","output","Map","StdOut","process","stdout","write","myStdOut","chunk","cb","set","console","ConsoleNoDebug","log","defaultHandlerFunction","levelIsEnabled","targetLevel","currentEnabled","idxTarget","LOG_LEVELS_IN_ORDER","indexOf","ClassicSingleLineLogMessageFormatter","formatMessage","msg","meta","tmp","options","trace","util","format","subsVars","NoneLogMessageFormatter","StructuredJsonLogMessageFormatter","globalVars","params","toISOString","loggerInstanceName","loggerInstanceId","JSON","stringify","RequireRatchet","isNullOrUndefined","ob","notNullOrUndefined","name","notNullUndefinedOrOnlyWhitespaceString","trim","notNullUndefinedOrEmptyArray","length","equal","ob1","ob2","message","noNullOrUndefinedValuesInArray","arr","expectedLength","customMsg","noNullOrUndefinedValuesInRestArgs","restArgs","constructorArgumentsMatchLengthAndAreNonNull","args","Array","from","arguments","len","StringRatchet","DIGITS","UPPER_CASE_LATIN","LOWER_CASE_LATIN","stringIsInGivenAlphabet","input","alphabet","includes","charAt","stringToUint8Array","val","TextEncoder","encode","uint8ArrayToString","TextDecoder","decode","attemptJsonParse","trimToNull","parse","err","canParseAsJson","allUnique","check","Set","test","has","add","allPermutationsOfLength","true","step","forEach","s","createType4Guid","replace","c","r","random","toString","createRandomHexString","floor","canonicalize","value","toLowerCase","RFC_3986_RESERVED","formatBytes","bytes","decimals","dm","parseFloat","pow","toFixed","safeString","String","stringContainsOnlyNumbers","stringContainsOnlyAlphanumeric","stringContainsOnlyHex","stringContainsOnly","inVal","validCharsIn","validChars","obscure","prefixLength","suffixLength","pl","sl","rem","substring","leadingZeros","pad","negative","sVal","startsWith","trimToEmpty","x","trimAllStringPropertiesToNullInPlace","trimAllStringPropertiesInPlace","trimAllStringPropertiesToEmptyInPlace","toEmpty","keys","key","stripNonNumeric","csvSafe","split","join","stripNonAscii","reduce","previousValue","currentValue","charCodeAt","LoggerInstance","_loggerMeta","_ringBuffer","_formatter","_level","_handlerFunctionMap","_options","inOptions","addPreProcessor","proc","preProcessors","ringBuffer","dumpConfigurationIntoLog","dumpOptionsIntoLog","labels","map","p","label","changeRingBufferSize","ringBufferSize","updateTracePrefix","newValue","newOpts","formatType","None","StructuredJson","initialLevel","outputFunction","oldId","level","newLevel","consoleLogPassThru","passThruPrefix","unshift","get","createLogMessage","now","formatMessages","msgs","m","filter","recordMessageBuilder","msgBuild","recordMessage","toMessage","inMsg","errorP","warnP","infoP","verboseP","debugP","sillyP","logByLevel","importMessages","prefixIn","addTimestamp","prefix","mOut","Logger","ClassicSingleLine","applyDefaultsToOptions","DEFAULT_OPTIONS","changeDefaultOptions","retroactive","LOGGER_INSTANCES","values","li","getLogger","loggerName","inst","getRingBuffer","getLevel","setLevel","getOptions","buf","NumberRatchet","toFixedDecimalNumber","placesAfterPoint","v","safeNumber","MAX_LEADING_ZEROS_FORMAT_LENGTH","between","inTest","inP1","inP2","p1","p2","ifNotNumber","useDefaultForNullAndUndefined","type","Number","isNaN","undefined","numberCSVToList","inputCSV","fitToWindow","b1","b2","low","min","high","windowSize","groupNumbersIntoContiguousRanges","inputData","minRangeSize","sort","a","b","singles","ranges","j","distributeItemsEvenly","items","buckets","offset","loc","createRange","minInclusive","maxExclusive","BooleanRatchet","allTrue","vals","emptyArraysReturn","anyTrue","parseBool","intToBool","boolToInt","Ratchet2d","translateToOriginVector","points","validPoints","y","minimalContainingPlane","width","height","scaleVector","src","dst","validPlane","samePoint","atLeastOneDimensionShared","plane","validLine","line","validPoint","validLines","lines","l","validPolyLine","pline","pts","polyLineToLines","lastPointOnPolyLine","polyLine","lineToPolyLine","linesToPolyLines","currentPLine","pt","planeContainsPoint","planeContainsPoints","linesToPoints","flat","pointsToLines","rotateRightAboutOrigin90Degrees","times","translate","xToY","mirrorPointsOnPlane","timesToRotate","planeContainsLines","planeContainsPolyLine","planeContainsLine","xlate","mirrorX","mirrorY","transformPointsToNewPlane","scale","rightToLeft","topToBottom","transformPointToNewPlane","point","transformLines","fitCurve","curveDef","inputX","idx","xSpread","ySpread","yAdd","RatchetInfo","buildInformation","version","hash","branch","tag","timeBuiltISO","notes","Histogram","entries","update","addValue","entry","find","e","item","count","localeCompare","sortKeys","getEntries","getTotalCount","h","countForValue","percentForValue","total","DurationRatchet","formatMsDuration","ms","includeMS","rem_ms","seconds","minutes","hours","days","f","colonFormatMsDuration","daysBetween","d1","d2","DateTime","fromJSDate","diff","createSteps","startEpochMS","endEpochMS","timezone","outputFormat","stepUnit","curDate","fromMillis","setZone","endDate","toFormat","plus","JwtRatchet","_encryptionKeyPromise","_decryptKeysPromise","_jtiGenerator","_decryptOnlyKeyUseLogLevel","_parseFailureLogLevel","encryptionKeyPromise","decryptKeysPromise","jtiGenerator","decryptOnlyKeyUseLogLevel","parseFailureLogLevel","hasExpiredFlag","EXPIRED_FLAG_NAME","invalidSafeDecode","payloadString","decryptKey","logLevel","jwt","verify","ignoreExpiration","secondsRemainingUntilExpiration","decodeTokenNoVerify","nowSecond","exp","expSeconds","msRemainingUntilExpiration","secs","decodeToken","expiredHandling","RETURN_NULL","encKeys","encryptionKeyArray","decKeys","concat","keysTried","payload","nowSeconds","nbfSeconds","nbf","age","THROW_EXCEPTION","ADD_FLAG","encKey","isArray","selectRandomEncryptionKey","createTokenString","expirationSeconds","overrideEncryptionKey","jti","expires","sign","refreshJWTString","tokenString","allowExpired","handling","originalDurationSeconds","iat","newExpirationSeconds","removeJwtFields","removeExpiredFlag","token","k","ErrorRatchet","safeStringifyErr","err2","asErr","fErr","throwFormattedErr","MapRatchet","expandNestedKeysToObjects","separator","path","target","splice","mapByUniqueProperty","propName","groupByProperty","findValue","toSearch","findValueDotPath","dotPath","simpleDeepCompare","object1","object2","toKeyValueList","returnArray","fromKeyValueList","list","cleanup","obj","stripZero","stripNull","stripUndefined","stripEmptyString","o","extractValueFromMapIgnoreCase","finder","newVal","safeCallFunction","fnName","caseInsensitiveAccess","keyName","keyNameCI","ArrayRatchet","wrapElementsInArray","compareTwoArrays","ar1","ar2","fn","id1","id2","matching","setOneOnly","setTwoOnly","aVal","pVal","comp","extractSubarrayFromSortedByNumberField","fieldDotPath","bottomIdx","findSplit","topIdx","bottomValue","curIdx","curVal","Base64Ratchet","safeObjectToBase64JSON","generateBase64VersionOfString","safeBase64JSONParse","base64StringToString","generateBase64VersionOfBlob","blob","Promise","resolve","reject","reader","FileReader","onloadend","result","readAsDataURL","generateBase64VersionOfUint8Array","UTF8_ENCODER","Base64","btoa","UTF8_DECODER","base64StringToUint8Array","b64encoded","Uint8Array","atob","encoding","CompositeLastSuccessProvider","sources","mostRecent","mostRecentSrc","lastSuccess","DateRatchet","formatFullDate","FULL_DATE_FORMAT","formatDefaultDateOnly","DEFAULT_DATE_FORMAT","parseDefaultDate","fromFormat","toJSDate","parseCommonUsDate","templ","COMMON_US_DATE_FORMAT","EnumRatchet","listEnumKeys","enumeration","$enum","getValues","keyToEnum","caseSensitive","asValueOrDefault","mKey","toUpperCase","parseCsvToEnumArray","EsmRatchet","fetchDirName","root","url","fileURLToPath","URL","fetchFileName","ExpiringObject","_config","_cacheObject","_lastUpdatedEpochMS","_timeRemainingMS","inputConfig","defaultConfig","overrideTimeRemainingMS","timeToLiveMS","initialValue","defaultTimeRemainingMS","generator","lastUpdatedEpochMS","ageMS","doNotUpdateClock","fetchCacheObjectTimeRemainingMS","fetch","ExpiringObjectConfig","GeolocationRatchet","distanceBetweenLocations","lat1","lon1","lat2","lon2","unit","uU","radlat1","PI","radlat2","theta","radtheta","dist","sin","cos","acos","distanceBetweenRatchetGeoLocations","loc1","loc2","lat","lng","degreeOfLatLngInMiles","latitudeInDecimalDegress","latInRads","cosLat","milesInDegLatLng","miles","centerOfBounds","bounds","extent","origin","calculateSplits","slices","field","splits","clusterGeoBounds","inputVal","latSlices","lngSlices","lngSplits","lngStartIdx","lngEndIdx","lngBatch","latSplits","latStartIdx","latEndIdx","latBatch","combineBounds","canonicalizeBounds","inp","allowCrossover","minLat","maxLat","minLng","maxLng","roundLocation","roundDigits","locationToBounds","radiusMiles","sameLocation","pointInBounds","bound","pointInAnyBound","inBounds","minPointsBeforeMapping","mp","buildRatchetLocationBoundsMap","pointInRatchetLocationBoundsMap","findRatchetLocationBoundsMapEntry","latOffset","lngOffset","ltIdx","trunc","lngIdx","mapping","latEntries","lngEntries","newRow","row","GlobalRatchet","fetchGlobalRecord","returnNullOnNone","env","global","fetchGlobalVar","envVar","setGlobalVar","KeyValue","No","op","TimeoutToken","title","timeoutMS","__timeoutTokenFlagField","writeToLog","isTimeoutToken","StopWatch","starts","ends","createTime","stop","reset","delete","hasTimer","shortForm","dump","logExpected","pctComplete","dumpExpected","timerNames","dumpAll","outs","cleanName","end","elapsedMS","remainMS","expectedRemainingMS","PromiseRatchet","resolveOnEvent","evtSrc","okEvtNames","errEvtNames","res","rej","on","timeout","srcPromise","race","createTimeoutPromise","id","setTimeout","clearTimeout","wait","time","dumpResult","autoDebug","exit","dumpError","logErrorAndReturnNull","runPromiseAndDump","promise","then","catch","waitFor","testFunction","expectedValue","intervalMS","maxCycles","runBoundedParallel","promiseFn","context","maxConcurrent","sw","remain","ctx","processed","totalCount","curBatch","proms","apply","all","pct","runBoundedParallelSingleParam","wrappedParams","asyncForEachSerial","array","callback","index","asyncForEachParallel","TimeZoneRatchet","currentHour","local","hour","toEpochSeconds","dt","round","toMillis","startOfTodayEpochSeconds","minute","second","millisecond","startOfMatchingDayEpochSeconds","inputTS","startOfMatchingDayEpochMS","startOfCurrentHourEpochSeconds","startOfCurrentMinuteEpochSeconds","startOfCurrentSecondEpochSeconds","startOfTodayEpochMS","dailySlotCount","slotWidthMs","ceil","currentTimeSlotIdx","startOfToday","delta","matchingTimeSlotIdx","startOfCurrentSlotEpochMS","startOfMatchingSlotEpochMS","Uint8ArrayRatchet","mergeArrays","myArrays","WebStreamRatchet","webReadableStreamToUint8Array","stream","out","writer","WritableStream","async","controller","abort","reason","highWaterMark","pipeTo","webReadableStreamToString","stringToWebReadableStream","ReadableStream","enqueue","close","LogMessageBuilder","wrapped","clone","subVars","NetworkRatchet","findLocalIp","useCache","LOCAL_IP","window","RTCPeerConnection","rtc","iceServers","addrs","create","createDataChannel","reliable","onicecandidate","evt","candidate","grepSDP","createOffer","offerDesc","sdp","setLocalDescription","updateLocalIP","parseUrl","href","match","protocol","host","hostname","port","pathname","search","newIp","parts","addr","updateAddressList","newAddr","displayAddrs","multi","BrowserLocalIpProvider","currentIp","ready","currentLocalIpAddress","FixedLocalIpProvider","fixed","RestfulApiHttpError","_httpStatusCode","_errors","_detailErrorCode","_endUserErrors","_details","_requestId","_wrappedError","errors","super","combineErrorStringsWithDefault","setPrototypeOf","prototype","RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY","defMessage","setFormattedErrorMessage","withFormattedErrorMessage","withHttpStatusCode","httpStatusCode","withErrors","withDetailErrorCode","detailErrorCode","withEndUserErrors","endUserErrors","withDetails","details","withRequestId","requestId","withWrappedError","isWrappedError","wrapError","objectIsRestfulApiHttpError","wrappedError","errorIsX0x","errIn","xClass","bot","errorIs40x","errorIs50x","GoogleRecaptchaRatchet","verifyRecaptchaToken","keySecret","fetchFn","GOOGLE_VERIFY_URL","resp","body","json","success","TwilioRatchet","accountSid","authToken","outBoundNumber","isValidE164Number","sendMessageDirect","recipientPhoneNumbers","ratchet","sendMessage","generateTwilioBasicAuth","sid","phoneNumber","encodeURIComponent","post","method","headers","authorization","TWILLIO_BASE_API_URL","parsedResponse","num","BuiltInTransforms","keysOnly","rule","transform","isKey","valuesOnly","stringReplaceTransform","stripStringTransform","retainAll","removeAll","snakeToCamelCase","group1","stringToNumber","camelToSnakeCase","concatenateToNewField","newFieldName","oldFieldNamesInOrder","abortIfFieldMissing","n","temp","numberToBool","fieldNames","oldVal","boolToNumber","makeDuplicateField","oldName","newName","addField","valueToAdd","reformatDateFields","oldFormat","newFormat","oldValue","TransformRatchet","toTransform","rules","transformGeneric","applyTransformToPrimitive","applyTransformToObject","newKey","TransactionRatchet","execute","steps","initialContext","inConfiguration","config","stepLogLevel","finalContext","finalState","stepNames","errorStep","rollback","rollbackError","rollbackErrorStep","RollbackFailed","RolledBack","Success","executeAfterRollback","executeAfterRollbackFailure"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitblit/ratchet-common",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.232-alpha",
|
|
4
4
|
"description": "Common tools for general use",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -51,9 +51,11 @@
|
|
|
51
51
|
},
|
|
52
52
|
"license": "Apache-2.0",
|
|
53
53
|
"dependencies": {
|
|
54
|
+
"js-base64": "3.7.5",
|
|
54
55
|
"ts-enum-util": "4.0.2"
|
|
55
56
|
},
|
|
56
57
|
"peerDependencies": {
|
|
58
|
+
"js-base64": "^3.7.5",
|
|
57
59
|
"ts-enum-util": "^4.0.2"
|
|
58
60
|
},
|
|
59
61
|
"peerDependenciesMeta": {
|